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

手术订单新建

上级 664c9a46
......@@ -92,7 +92,7 @@ const getHospitalId = ({ colProps, onChange }: gerPropType) => {
rules: [{ required: true, type: 'object', message: '请选择医院!' }],
},
table: {
customRender: ({ record }) => get(record, 'hospital.name') || '(已删除/不存在)',
customRender: ({ record }) => get(record, 'hospital.name') || record.hospitalName || '(已删除/不存在)',
},
};
};
......@@ -128,7 +128,7 @@ const getDoctorId = ({ colProps }) => {
rules: [{ required: true, type: 'object', message: '请选择医生!' }],
},
table: {
customRender: ({ record }) => get(record, 'hospital.name') || '(已删除/不存在)',
customRender: ({ record }) => get(record, 'doctor.name') || record.doctorName || '(已删除/不存在)',
},
};
};
......@@ -177,7 +177,7 @@ const getSaleUserId = ({ colProps }) => {
},
table: {
customRender: ({ record }) => {
return get(record, 'user.realName') || '(已删除/不存在)';
return get(record, 'user.realName') || record.saleUserName ||'(已删除/不存在)';
},
},
};
......@@ -209,7 +209,7 @@ const getProductLineName = ({ colProps }) => {
rules: [{ required: true, type: 'object', message: '请选择产品线!' }],
},
table: {
customRender: ({ record }) => get(record, 'name') || '(已删除/不存在)',
customRender: ({ record }) => get(record, 'name') || record.productLineName || '(已删除/不存在)',
},
};
};
......
......@@ -2,30 +2,30 @@
<div>
<BasicTable @register="registerTable">
<template #headerTop>
<a-alert type="info" show-icon>
<template #message>
<template v-if="checkedKeys.length > 0">
<span>已选中{{ checkedKeys.length }}条记录</span>
<a-button type="link" @click="checkedKeys = []" size="small">清空</a-button>
<a-popconfirm
v-auth="'AUTH_ORDER_OPERATION_ORDER'"
class="ml-4"
title="确定要全部删除吗?"
ok-text="是"
cancel-text="否"
@confirm="handleBatchDelete"
>
<a href="#" class="text-red-500">删除</a>
</a-popconfirm>
</template>
<template v-else>
<span>未选中任何项目</span>
</template>
</template>
</a-alert>
<!-- <a-alert type="info" show-icon>-->
<!-- <template #message>-->
<!-- <template v-if="checkedKeys.length > 0">-->
<!-- <span>已选中{{ checkedKeys.length }}条记录</span>-->
<!-- <a-button type="link" @click="checkedKeys = []" size="small">清空</a-button>-->
<!-- <a-popconfirm-->
<!-- v-auth="'AUTH_ORDER_OPERATION_ORDER'"-->
<!-- class="ml-4"-->
<!-- title="确定要全部删除吗?"-->
<!-- ok-text="是"-->
<!-- cancel-text="否"-->
<!-- @confirm="handleBatchDelete"-->
<!-- >-->
<!-- <a href="#" class="text-red-500">删除</a>-->
<!-- </a-popconfirm>-->
<!-- </template>-->
<!-- <template v-else>-->
<!-- <span>未选中任何项目</span>-->
<!-- </template>-->
<!-- </template>-->
<!-- </a-alert>-->
</template>
<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 #bodyCell="{ column, record, text }">
<template v-if="[].includes(column.dataIndex)">
......
......@@ -103,48 +103,48 @@ export const schema = {
},
...getHospitalIdAndDoctorId({ colProps }),
getSaleUserId({ colProps }),
{
field: 'saleUserName',
label: '业务员名称',
defaultValue: undefined,
form: {
componentProps: {
allowClear: true,
placeholder: '业务员名称',
},
colProps,
component: 'Input',
},
table: {},
},
{
field: 'doctorName',
label: '医生名称',
defaultValue: undefined,
form: {
componentProps: {
allowClear: true,
placeholder: '医生名称',
},
colProps,
component: 'Input',
},
table: {},
},
{
field: 'HospitalName',
label: '医院名称',
defaultValue: undefined,
form: {
componentProps: {
allowClear: true,
placeholder: '医院名称',
},
colProps,
component: 'Input',
},
table: {},
},
// {
// field: 'saleUserName',
// label: '业务员名称',
// defaultValue: undefined,
// form: {
// componentProps: {
// allowClear: true,
// placeholder: '业务员名称',
// },
// colProps,
// component: 'Input',
// },
// table: {},
// },
// {
// field: 'doctorName',
// label: '医生名称',
// defaultValue: undefined,
// form: {
// componentProps: {
// allowClear: true,
// placeholder: '医生名称',
// },
// colProps,
// component: 'Input',
// },
// table: {},
// },
// {
// field: 'HospitalName',
// label: '医院名称',
// defaultValue: undefined,
// form: {
// componentProps: {
// allowClear: true,
// placeholder: '医院名称',
// },
// colProps,
// component: 'Input',
// },
// table: {},
// },
{
field: 'surgicalName',
label: '手术名称',
......
......@@ -23,6 +23,13 @@
ref="formRef"
: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>
<a-form-item label="业务员" name="saleUserName">
<a-input-group compact>
......@@ -30,7 +37,7 @@
<a-button type="primary" @click="handleShowSaleUser">选择业务员</a-button>
</a-input-group>
</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-form-item>
<a-form-item label="出货仓库" name="exWarehouse">
......@@ -84,6 +91,58 @@
<a-form-item label="备注" name="remark">
<a-input v-model:value="formData.remark"></a-input>
</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-table
:dataSource="productList"
......@@ -119,6 +178,7 @@
>
<a-button type="primary" size="large" @click="handleVerify" :disabled="productNum === 0"> 校验 </a-button>
<a-button
v-if="!isSugery"
type="default"
size="large"
@click="handleSubmitOrder('TO_BE_USE')"
......@@ -146,6 +206,8 @@
</template>
<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 { useRoute, useRouter } from 'vue-router';
import { useGo } from '/@/hooks/web/usePage';
......@@ -164,7 +226,9 @@
import { BatchOrder } from '/@/api/model/batchOrder';
import { message } from 'ant-design-vue';
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 route = useRoute();
const router = useRouter();
......@@ -180,6 +244,10 @@
const navActiveKey = ref(navId); // 一级标签选择
const title = ref(''); // 标题名称
const productList = ref<any>([]);
const isSugery = ref(0); // 是否手术订单
const doctorSelectParams = ref({
hospitalId: undefined,
});
const formData = reactive<BatchOrder>({
saleUserName: undefined,
......@@ -192,6 +260,19 @@
receivePhone: 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[]) => {
arr.some((item) => {
......@@ -206,7 +287,7 @@
// 选择发货方式
const handleChangeDespatch = (val) => {
console.log(val);
};
// 选择业务员
......@@ -247,17 +328,30 @@
});
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(() => {
if (status) {
message.success('保存成功');
} else {
operationOrderApi.add(data).then(() => {
message.success('提交成功');
}
CartApi.removeAll();
go('/main/batch-order/order-list');
});
CartApi.removeAll();
go('/main/order/operation-order')
});
}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({
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论