提交 97cb0c39 authored 作者: leon's avatar leon

手术订单新建

上级 664c9a46
...@@ -92,7 +92,7 @@ const getHospitalId = ({ colProps, onChange }: gerPropType) => { ...@@ -92,7 +92,7 @@ const getHospitalId = ({ colProps, onChange }: gerPropType) => {
rules: [{ required: true, type: 'object', message: '请选择医院!' }], rules: [{ required: true, type: 'object', message: '请选择医院!' }],
}, },
table: { table: {
customRender: ({ record }) => get(record, 'hospital.name') || '(已删除/不存在)', customRender: ({ record }) => get(record, 'hospital.name') || record.hospitalName || '(已删除/不存在)',
}, },
}; };
}; };
...@@ -128,7 +128,7 @@ const getDoctorId = ({ colProps }) => { ...@@ -128,7 +128,7 @@ const getDoctorId = ({ colProps }) => {
rules: [{ required: true, type: 'object', message: '请选择医生!' }], rules: [{ required: true, type: 'object', message: '请选择医生!' }],
}, },
table: { table: {
customRender: ({ record }) => get(record, 'hospital.name') || '(已删除/不存在)', customRender: ({ record }) => get(record, 'doctor.name') || record.doctorName || '(已删除/不存在)',
}, },
}; };
}; };
...@@ -177,7 +177,7 @@ const getSaleUserId = ({ colProps }) => { ...@@ -177,7 +177,7 @@ const getSaleUserId = ({ colProps }) => {
}, },
table: { table: {
customRender: ({ record }) => { customRender: ({ record }) => {
return get(record, 'user.realName') || '(已删除/不存在)'; return get(record, 'user.realName') || record.saleUserName ||'(已删除/不存在)';
}, },
}, },
}; };
...@@ -209,7 +209,7 @@ const getProductLineName = ({ colProps }) => { ...@@ -209,7 +209,7 @@ const getProductLineName = ({ colProps }) => {
rules: [{ required: true, type: 'object', message: '请选择产品线!' }], rules: [{ required: true, type: 'object', message: '请选择产品线!' }],
}, },
table: { table: {
customRender: ({ record }) => get(record, 'name') || '(已删除/不存在)', customRender: ({ record }) => get(record, 'name') || record.productLineName || '(已删除/不存在)',
}, },
}; };
}; };
......
...@@ -2,30 +2,30 @@ ...@@ -2,30 +2,30 @@
<div> <div>
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #headerTop> <template #headerTop>
<a-alert type="info" show-icon> <!-- <a-alert type="info" show-icon>-->
<template #message> <!-- <template #message>-->
<template v-if="checkedKeys.length > 0"> <!-- <template v-if="checkedKeys.length > 0">-->
<span>已选中{{ checkedKeys.length }}条记录</span> <!-- <span>已选中{{ checkedKeys.length }}条记录</span>-->
<a-button type="link" @click="checkedKeys = []" size="small">清空</a-button> <!-- <a-button type="link" @click="checkedKeys = []" size="small">清空</a-button>-->
<a-popconfirm <!-- <a-popconfirm-->
v-auth="'AUTH_ORDER_OPERATION_ORDER'" <!-- v-auth="'AUTH_ORDER_OPERATION_ORDER'"-->
class="ml-4" <!-- class="ml-4"-->
title="确定要全部删除吗?" <!-- title="确定要全部删除吗?"-->
ok-text="是" <!-- ok-text="是"-->
cancel-text="否" <!-- cancel-text="否"-->
@confirm="handleBatchDelete" <!-- @confirm="handleBatchDelete"-->
> <!-- >-->
<a href="#" class="text-red-500">删除</a> <!-- <a href="#" class="text-red-500">删除</a>-->
</a-popconfirm> <!-- </a-popconfirm>-->
</template> <!-- </template>-->
<template v-else> <!-- <template v-else>-->
<span>未选中任何项目</span> <!-- <span>未选中任何项目</span>-->
</template> <!-- </template>-->
</template> <!-- </template>-->
</a-alert> <!-- </a-alert>-->
</template> </template>
<template #toolbar> <template #toolbar>
<a-button v-auth="'AUTH_ORDER_OPERATION_ORDER:ADD'" type="primary" @click="handleCreate"> 新增</a-button> <!-- <a-button v-auth="'AUTH_ORDER_OPERATION_ORDER:ADD'" type="primary" @click="handleCreate"> 新增</a-button>-->
</template> </template>
<template #bodyCell="{ column, record, text }"> <template #bodyCell="{ column, record, text }">
<template v-if="[].includes(column.dataIndex)"> <template v-if="[].includes(column.dataIndex)">
......
...@@ -103,48 +103,48 @@ export const schema = { ...@@ -103,48 +103,48 @@ export const schema = {
}, },
...getHospitalIdAndDoctorId({ colProps }), ...getHospitalIdAndDoctorId({ colProps }),
getSaleUserId({ colProps }), getSaleUserId({ colProps }),
{ // {
field: 'saleUserName', // field: 'saleUserName',
label: '业务员名称', // label: '业务员名称',
defaultValue: undefined, // defaultValue: undefined,
form: { // form: {
componentProps: { // componentProps: {
allowClear: true, // allowClear: true,
placeholder: '业务员名称', // placeholder: '业务员名称',
}, // },
colProps, // colProps,
component: 'Input', // component: 'Input',
}, // },
table: {}, // table: {},
}, // },
{ // {
field: 'doctorName', // field: 'doctorName',
label: '医生名称', // label: '医生名称',
defaultValue: undefined, // defaultValue: undefined,
form: { // form: {
componentProps: { // componentProps: {
allowClear: true, // allowClear: true,
placeholder: '医生名称', // placeholder: '医生名称',
}, // },
colProps, // colProps,
component: 'Input', // component: 'Input',
}, // },
table: {}, // table: {},
}, // },
{ // {
field: 'HospitalName', // field: 'HospitalName',
label: '医院名称', // label: '医院名称',
defaultValue: undefined, // defaultValue: undefined,
form: { // form: {
componentProps: { // componentProps: {
allowClear: true, // allowClear: true,
placeholder: '医院名称', // placeholder: '医院名称',
}, // },
colProps, // colProps,
component: 'Input', // component: 'Input',
}, // },
table: {}, // table: {},
}, // },
{ {
field: 'surgicalName', field: 'surgicalName',
label: '手术名称', label: '手术名称',
......
...@@ -23,6 +23,13 @@ ...@@ -23,6 +23,13 @@
ref="formRef" ref="formRef"
:rules="rulesRef" :rules="rulesRef"
> >
<p>其他信息</p>
<a-form-item label="是否手术订单" name="isSurgery">
<a-radio-group v-model:value="isSugery">
<a-radio :value="0"></a-radio>
<a-radio :value="1"></a-radio>
</a-radio-group>
</a-form-item>
<p>业务员信息</p> <p>业务员信息</p>
<a-form-item label="业务员" name="saleUserName"> <a-form-item label="业务员" name="saleUserName">
<a-input-group compact> <a-input-group compact>
...@@ -30,7 +37,7 @@ ...@@ -30,7 +37,7 @@
<a-button type="primary" @click="handleShowSaleUser">选择业务员</a-button> <a-button type="primary" @click="handleShowSaleUser">选择业务员</a-button>
</a-input-group> </a-input-group>
</a-form-item> </a-form-item>
<a-form-item label="开票公司" name="invoicingCompany"> <a-form-item label="开票公司" name="invoicingCompany" v-if="!isSugery">
<a-input v-model:value="formData.invoicingCompany" disabled></a-input> <a-input v-model:value="formData.invoicingCompany" disabled></a-input>
</a-form-item> </a-form-item>
<a-form-item label="出货仓库" name="exWarehouse"> <a-form-item label="出货仓库" name="exWarehouse">
...@@ -84,6 +91,58 @@ ...@@ -84,6 +91,58 @@
<a-form-item label="备注" name="remark"> <a-form-item label="备注" name="remark">
<a-input v-model:value="formData.remark"></a-input> <a-input v-model:value="formData.remark"></a-input>
</a-form-item> </a-form-item>
<template v-if="isSugery">
<p>手术信息</p>
<a-form-item label="医院" name="_hospital">
<api-select
v-model:value="formData._hospital"
:labelInValue="true"
:api = 'HospitalApi.all'
resultField = "records"
labelField = "name"
valueField = "id"
:allowClear = "false"
placeholder = "医院"
optionFilterProp = "label"
:showSearch = "true"
@change="onHospitalChange"
/>
</a-form-item>
<a-form-item label="医生" name="_doctor">
<api-select
v-model:value="formData._doctor"
:immediate="false"
:labelInValue="true"
:params="doctorSelectParams"
:api = 'DoctorApi.all'
resultField = "records"
labelField = "name"
valueField = "id"
:allowClear = "false"
placeholder = "医生"
optionFilterProp = "label"
:showSearch = "true"
@change="onDoctorChange"
/>
</a-form-item>
<a-form-item label="手术时间" name="surgicalTime">
<a-date-picker
v-model:value="formData.surgicalTime"
format="YYYY-MM-DD"
valueFormat="YYYY-MM-DD HH:mm:ss"
/>
</a-form-item>
<a-form-item label="手术名称" name="surgicalName">
<a-input v-model:value="formData.surgicalName"></a-input>
</a-form-item>
<a-form-item label="期望送达时间" name="deliveryTime">
<a-date-picker
v-model:value="formData.deliveryTime"
format="YYYY-MM-DD"
valueFormat="YYYY-MM-DD HH:mm:ss"
/>
</a-form-item>
</template>
</a-form> </a-form>
<a-table <a-table
:dataSource="productList" :dataSource="productList"
...@@ -119,6 +178,7 @@ ...@@ -119,6 +178,7 @@
> >
<a-button type="primary" size="large" @click="handleVerify" :disabled="productNum === 0"> 校验 </a-button> <a-button type="primary" size="large" @click="handleVerify" :disabled="productNum === 0"> 校验 </a-button>
<a-button <a-button
v-if="!isSugery"
type="default" type="default"
size="large" size="large"
@click="handleSubmitOrder('TO_BE_USE')" @click="handleSubmitOrder('TO_BE_USE')"
...@@ -146,6 +206,8 @@ ...@@ -146,6 +206,8 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import * as operationOrderApi from '/@/api/order/operationOrderApi';
import * as DoctorApi from '/@/api/system/doctorApi';
import { ref, onMounted, reactive, computed } from 'vue'; import { ref, onMounted, reactive, computed } from 'vue';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { useGo } from '/@/hooks/web/usePage'; import { useGo } from '/@/hooks/web/usePage';
...@@ -164,7 +226,9 @@ ...@@ -164,7 +226,9 @@
import { BatchOrder } from '/@/api/model/batchOrder'; import { BatchOrder } from '/@/api/model/batchOrder';
import { message } from 'ant-design-vue'; import { message } from 'ant-design-vue';
import * as CartApi from '/@/api/order/cartApi'; import * as CartApi from '/@/api/order/cartApi';
import {ApiSelect} from '/@/components/Form';
import * as HospitalApi from '/@/api/system/hospitalApi';
import { setHtmlPageLang } from '/@/locales/helper';
const go = useGo(); const go = useGo();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
...@@ -180,6 +244,10 @@ ...@@ -180,6 +244,10 @@
const navActiveKey = ref(navId); // 一级标签选择 const navActiveKey = ref(navId); // 一级标签选择
const title = ref(''); // 标题名称 const title = ref(''); // 标题名称
const productList = ref<any>([]); const productList = ref<any>([]);
const isSugery = ref(0); // 是否手术订单
const doctorSelectParams = ref({
hospitalId: undefined,
});
const formData = reactive<BatchOrder>({ const formData = reactive<BatchOrder>({
saleUserName: undefined, saleUserName: undefined,
...@@ -192,6 +260,19 @@ ...@@ -192,6 +260,19 @@
receivePhone: undefined, receivePhone: undefined,
remark: undefined, remark: undefined,
}); });
const onHospitalChange = (val) => {
formData.hospitalName = val.label;
formData.hospitalId = val.value;
formData.doctorId = undefined;
doctorSelectParams.value.hospitalId = val.value;
};
const onDoctorChange = (val) => {
formData.doctorName = val.label;
formData.doctorId = val.value;
}
const getGrandsonList = (arr: DataItem[]) => { const getGrandsonList = (arr: DataItem[]) => {
arr.some((item) => { arr.some((item) => {
...@@ -206,7 +287,7 @@ ...@@ -206,7 +287,7 @@
// 选择发货方式 // 选择发货方式
const handleChangeDespatch = (val) => { const handleChangeDespatch = (val) => {
console.log(val);
}; };
// 选择业务员 // 选择业务员
...@@ -247,17 +328,30 @@ ...@@ -247,17 +328,30 @@
}); });
formRef.value.validate().then(() => { formRef.value.validate().then(() => {
const api = status ? BatchOrderApi.save : BatchOrderApi.submit; if(isSugery){
const productLineName = navList.value.find(item => item.id === navActiveKey.value)?.name;
const data = Object.assign({ batchOrderDetailList: batchOrder },{ ...formData,productLineName})
api(Object.assign({ batchOrderDetailList: batchOrder }, formData)).then(() => { operationOrderApi.add(data).then(() => {
if (status) {
message.success('保存成功');
} else {
message.success('提交成功'); message.success('提交成功');
} CartApi.removeAll();
CartApi.removeAll(); go('/main/order/operation-order')
go('/main/batch-order/order-list'); });
}); }else {
const api = status ? BatchOrderApi.save : BatchOrderApi.submit;
const data = Object.assign({ batchOrderDetailList: batchOrder }, formData)
api(data).then(() => {
if (status) {
message.success('保存成功');
} else {
message.success('提交成功');
}
CartApi.removeAll();
go('/main/batch-order/order-list');
});
}
}); });
}; };
......
...@@ -43,4 +43,36 @@ export const rulesRef = reactive({ ...@@ -43,4 +43,36 @@ export const rulesRef = reactive({
message: '请输入联系电话', message: '请输入联系电话',
}, },
], ],
_hospital: [
{
required: true,
message: '请选择医院',
type:'object'
},
],
_doctor:[
{
required: true,
message: '请选择医生',
type:'object'
}
],
surgicalTime:[
{
required: true,
message: '请选择手术时间',
}
],
surgicalName:[
{
required: true,
message: '请输入手术名称',
}
],
deliveryTime:[
{
required: true,
message: '请选择期望送达时间',
}
]
}); });
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论