提交 36de5255 authored 作者: 袁伟伟's avatar 袁伟伟
...@@ -8,7 +8,12 @@ import * as DoctorApi from '/@/api/system/doctorApi'; ...@@ -8,7 +8,12 @@ import * as DoctorApi from '/@/api/system/doctorApi';
import * as UserApi from '/@/api/system/userApi'; import * as UserApi from '/@/api/system/userApi';
import { StatusValEnum as DoctorStatusValEnum } from '/@/views/system/doctor/enum'; import { StatusValEnum as DoctorStatusValEnum } from '/@/views/system/doctor/enum';
import { StatusValEnum as UserStatusValEnum } from '/@/views/system/user/enum'; import { StatusValEnum as UserStatusValEnum } from '/@/views/system/user/enum';
import { StatusValEnum as ReceiverStatusValEnum } from '/@/views/system/receiver/enum';
import { RoleEnum } from '/@/views/system/role/enum'; import { RoleEnum } from '/@/views/system/role/enum';
import * as ThirdApi from '/@/api/system/thirdApi';
import * as ReceiverApi from '/@/api/system/receiverApi';
import { useUserStore } from '/@/store/modules/user';
const userStore = useUserStore();
interface gerPropType { interface gerPropType {
colProps?: any; colProps?: any;
onChange?: any; onChange?: any;
...@@ -105,6 +110,7 @@ const getDoctorId = ({ colProps }) => { ...@@ -105,6 +110,7 @@ const getDoctorId = ({ colProps }) => {
api: DoctorApi.all, api: DoctorApi.all,
params: { params: {
status: DoctorStatusValEnum.PASSED, status: DoctorStatusValEnum.PASSED,
distributorId: userStore.getIsDistributor ? userStore.getDistributorId : undefined,
}, },
resultField: 'records', resultField: 'records',
labelField: 'name', labelField: 'name',
...@@ -132,7 +138,7 @@ const getHospitalIdAndDoctorId = ({ colProps }) => { ...@@ -132,7 +138,7 @@ const getHospitalIdAndDoctorId = ({ colProps }) => {
colProps, colProps,
onChange: ({ formActionType, formModel, e }) => { onChange: ({ formActionType, formModel, e }) => {
const { updateSchema } = formActionType; const { updateSchema } = formActionType;
updateSchema([{ field: 'doctorId', componentProps: { params: { hospitalId: e.value, disabled: false } } }]); updateSchema([{ field: 'doctorId', componentProps: { params: { hospitalId: e.value }, disabled: false } }]);
formModel.doctorId = undefined; // 清空医生 formModel.doctorId = undefined; // 清空医生
}, },
}), }),
...@@ -154,6 +160,7 @@ const getSaleUserId = ({ colProps }) => { ...@@ -154,6 +160,7 @@ const getSaleUserId = ({ colProps }) => {
params: { params: {
role: RoleEnum.SALESMAN, role: RoleEnum.SALESMAN,
status: UserStatusValEnum.PASSED, status: UserStatusValEnum.PASSED,
distributorId: userStore.getIsDistributor ? userStore.getDistributorId : undefined,
}, },
resultField: 'records', resultField: 'records',
labelField: 'realName', labelField: 'realName',
...@@ -174,4 +181,101 @@ const getSaleUserId = ({ colProps }) => { ...@@ -174,4 +181,101 @@ const getSaleUserId = ({ colProps }) => {
}, },
}; };
}; };
export { getDistributorText, getDistributorId, getHospitalId, getDoctorId, getHospitalIdAndDoctorId, getSaleUserId };
const getProductLineName = ({ colProps }) => {
return {
field: 'productLineName',
label: '产品线',
defaultValue: undefined,
form: {
itemProps: {
validateTrigger: 'blur',
},
componentProps: {
labelInValue: true,
api: ThirdApi.line,
params: {},
// resultField: 'records',
labelField: 'name',
valueField: 'name',
allowClear: false,
placeholder: '产品线',
optionFilterProp: 'label',
showSearch: true,
},
colProps,
component: 'ApiSelect',
rules: [{ required: true, type: 'object', message: '请选择产品线!' }],
},
table: {
customRender: ({ record }) => get(record, 'name') || '(已删除/不存在)',
},
};
};
const getReceiverId = ({ colProps }) => {
return {
field: 'receiveId',
label: '收货人',
defaultValue: undefined,
form: {
itemProps: {
validateTrigger: 'blur',
},
componentProps: ({ formModel }) => {
return {
labelInValue: true,
api: () => {
return ReceiverApi.all().then((res) => {
// @ts-ignore
res.forEach((item) => {
item.mergeLabel = `${item.receiveName}-${item.address}`;
});
return res;
});
},
onChange: (e: any) => {
const opt = e.option;
if (formModel.receiveName) {
formModel.receiveName = opt.receiveName;
}
if (formModel.receivePhone) {
formModel.receivePhone = opt.receivePhone;
}
if (formModel.address) {
formModel.address = opt.address;
}
},
params: {
status: ReceiverStatusValEnum.PASSED,
distributorId: userStore.getIsDistributor ? userStore.getDistributorId : undefined,
},
// resultField: 'records',
labelField: 'mergeLabel',
valueField: 'id',
allowClear: false,
placeholder: '收货人',
optionFilterProp: 'label',
showSearch: true,
};
},
colProps,
component: 'ApiSelect',
rules: [{ required: true, type: 'object', message: '请选择收货人!' }],
},
table: {
customRender: ({ record }) => record.receiveName || '(已删除/不存在)',
},
};
};
export {
getDistributorText,
getDistributorId,
getHospitalId,
getDoctorId,
getHospitalIdAndDoctorId,
getSaleUserId,
getProductLineName,
getReceiverId,
};
...@@ -32,8 +32,11 @@ import { StrengthMeter } from '/@/components/StrengthMeter'; ...@@ -32,8 +32,11 @@ import { StrengthMeter } from '/@/components/StrengthMeter';
import { IconPicker } from '/@/components/Icon'; import { IconPicker } from '/@/components/Icon';
import { CountdownInput } from '/@/components/CountDown'; import { CountdownInput } from '/@/components/CountDown';
import Test from '/@/views/order/components/Test.vue';
const componentMap = new Map<ComponentType, Component>(); const componentMap = new Map<ComponentType, Component>();
componentMap.set('Test', Test);
componentMap.set('Input', Input); componentMap.set('Input', Input);
componentMap.set('InputGroup', Input.Group); componentMap.set('InputGroup', Input.Group);
componentMap.set('InputPassword', Input.Password); componentMap.set('InputPassword', Input.Password);
......
<template>
<a-button @click="add">加加加</a-button>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
const emit = defineEmits(['change']);
defineProps({
count: Number,
});
const count = ref(0);
const add = () => {
count.value++;
emit('change', count.value);
};
</script>
<style scoped lang="less"></style>
// 物流方式枚举
export enum logisticsValEnum {
SELF = 'SELF',
BAR = 'SELF',
EXPRESS = 'EXPRESS',
SPECIALLY_ASSIGNED = 'SPECIALLY_ASSIGNED',
TRAIN = 'TRAIN',
FLY = 'FLY',
}
export enum logisticsLabelEnum {
SELF = '自提',
BAR = '大巴',
EXPRESS = '快递',
SPECIALLY_ASSIGNED = '专人配送',
TRAIN = '火车',
FLY = '空运',
}
export const logisticsEnumOptions: any[] = [];
for (const key in logisticsLabelEnum) {
logisticsEnumOptions.push({
value: key,
label: logisticsLabelEnum[key],
});
}
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
showFooter showFooter
:confirmDisabled="getConfirmDisabled" :confirmDisabled="getConfirmDisabled"
:title="getTitle" :title="getTitle"
width="1000px" width="600px"
@ok="handleSubmit" @ok="handleSubmit"
> >
<a-spin :spinning="isLoading"> <a-spin :spinning="isLoading">
...@@ -21,8 +21,7 @@ ...@@ -21,8 +21,7 @@
import { useAsyncState } from '@vueuse/core'; import { useAsyncState } from '@vueuse/core';
import * as OperationOrderApi from '/@/api/order/operationOrderApi'; import * as OperationOrderApi from '/@/api/order/operationOrderApi';
import { OperationOrder } from '/@/api/model/operationOrder'; import { OperationOrder } from '/@/api/model/operationOrder';
import { useUserStore } from '/@/store/modules/user';
const userStore = useUserStore();
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const isUpdate = ref(true); const isUpdate = ref(true);
const entityId = ref(0); const entityId = ref(0);
...@@ -50,6 +49,11 @@ ...@@ -50,6 +49,11 @@
); );
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
updateSchema([
{ field: 'address', componentProps: { disabled: true } },
{ field: 'receivePhone', componentProps: { disabled: true } },
{ field: 'receiveName', componentProps: { disabled: true } },
]);
await resetFields(); await resetFields();
setDrawerProps({ confirmLoading: false }); setDrawerProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
......
...@@ -9,7 +9,14 @@ ...@@ -9,7 +9,14 @@
import { BasicColumn } from '/@/components/Table'; import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table'; import { FormSchema } from '/@/components/Table';
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
import { getDistributorId, getHospitalIdAndDoctorId, getSaleUserId } from '/@/commonSchemaProperty'; import {
getDistributorId,
getHospitalIdAndDoctorId,
getSaleUserId,
getProductLineName,
getReceiverId,
} from '/@/commonSchemaProperty';
import { logisticsEnumOptions } from '/@/views/order/enum';
export enum YesNoEnum { export enum YesNoEnum {
YES = '是', YES = '是',
...@@ -37,7 +44,7 @@ for (const key in StatusEnum) { ...@@ -37,7 +44,7 @@ for (const key in StatusEnum) {
} }
const colProps = { xs: { span: 24 }, sm: { span: 24 }, lg: { span: 8 } }; const colProps = { xs: { span: 24 }, sm: { span: 24 }, lg: { span: 8 } };
const colPropsInDrawer = { span: 12 }; const colPropsInDrawer = { span: 24 };
export const schema = { export const schema = {
model: 'OperationOrder', model: 'OperationOrder',
...@@ -74,17 +81,23 @@ export const schema = { ...@@ -74,17 +81,23 @@ export const schema = {
}, },
table: {}, table: {},
}, },
getProductLineName({ colProps }),
{ {
field: 'productLineName', field: 'productSelectField',
label: '产品线名称', label: '产品',
defaultValue: undefined, defaultValue: undefined,
form: { form: {
componentProps: { componentProps: () => {
return {
allowClear: true, allowClear: true,
placeholder: '产品线名称', placeholder: '选择产品',
onChange: (e) => {
console.log('e', e);
},
};
}, },
colProps, colProps,
component: 'Input', component: 'Test',
}, },
table: {}, table: {},
}, },
...@@ -118,6 +131,20 @@ export const schema = { ...@@ -118,6 +131,20 @@ export const schema = {
}, },
table: {}, table: {},
}, },
{
field: 'HospitalName',
label: '医院名称',
defaultValue: undefined,
form: {
componentProps: {
allowClear: true,
placeholder: '医院名称',
},
colProps,
component: 'Input',
},
table: {},
},
{ {
field: 'surgicalName', field: 'surgicalName',
label: '手术名称', label: '手术名称',
...@@ -144,13 +171,14 @@ export const schema = { ...@@ -144,13 +171,14 @@ export const schema = {
placeholder: '手术时间', placeholder: '手术时间',
format: 'YYYY-MM-DD HH:mm:ss', format: 'YYYY-MM-DD HH:mm:ss',
showTime: true, showTime: true,
rules: [{ required: true, message: '请选择手术时间' }],
}, },
}, },
table: {}, table: {},
}, },
{ {
field: 'deliveryTime', field: 'deliveryTime',
label: '送达时间', label: '期望送达时间',
defaultValue: undefined, defaultValue: undefined,
form: { form: {
colProps, colProps,
...@@ -160,22 +188,24 @@ export const schema = { ...@@ -160,22 +188,24 @@ export const schema = {
placeholder: '送达时间', placeholder: '送达时间',
format: 'YYYY-MM-DD HH:mm:ss', format: 'YYYY-MM-DD HH:mm:ss',
showTime: true, showTime: true,
rules: [{ required: true, message: '请选择送达时间' }],
}, },
}, },
table: {}, table: {},
}, },
{ {
field: 'needTool', field: 'needTool',
label: '是否需要配套工具', label: '配套工具',
defaultValue: 'NO', defaultValue: 'NO',
form: { form: {
componentProps: { componentProps: {
allowClear: true, allowClear: true,
placeholder: '是否需要配套工具', placeholder: '配套工具',
options: YesNoEnumOptions, options: YesNoEnumOptions,
}, },
colProps, colProps,
component: 'Select', component: 'Select',
rules: [{ required: true, message: '请选择' }],
}, },
table: { table: {
customRender: ({ text }) => { customRender: ({ text }) => {
...@@ -190,14 +220,17 @@ export const schema = { ...@@ -190,14 +220,17 @@ export const schema = {
defaultValue: undefined, defaultValue: undefined,
form: { form: {
componentProps: { componentProps: {
options: logisticsEnumOptions,
allowClear: true, allowClear: true,
placeholder: '物流方式', placeholder: '物流方式',
}, },
colProps, colProps,
component: 'Input', component: 'Select',
rules: [{ required: true, message: '请选择物流方式' }],
}, },
table: {}, table: {},
}, },
getReceiverId({ colProps }),
{ {
field: 'receiveName', field: 'receiveName',
label: '接收人姓名', label: '接收人姓名',
...@@ -205,7 +238,7 @@ export const schema = { ...@@ -205,7 +238,7 @@ export const schema = {
form: { form: {
componentProps: { componentProps: {
allowClear: true, allowClear: true,
placeholder: '接收人姓名', // placeholder: '接收人姓名',
}, },
colProps, colProps,
component: 'Input', component: 'Input',
...@@ -219,7 +252,7 @@ export const schema = { ...@@ -219,7 +252,7 @@ export const schema = {
form: { form: {
componentProps: { componentProps: {
allowClear: true, allowClear: true,
placeholder: '接收人电话', // placeholder: '接收人电话',
}, },
colProps, colProps,
component: 'Input', component: 'Input',
...@@ -233,7 +266,7 @@ export const schema = { ...@@ -233,7 +266,7 @@ export const schema = {
form: { form: {
componentProps: { componentProps: {
allowClear: true, allowClear: true,
placeholder: '收货地址', // placeholder: '收货地址',
}, },
component: 'InputTextArea', component: 'InputTextArea',
colProps: { span: 24 }, colProps: { span: 24 },
...@@ -393,7 +426,7 @@ const queryFields = [ ...@@ -393,7 +426,7 @@ const queryFields = [
'saleUserName', 'saleUserName',
'doctorId', 'doctorId',
'doctorName', 'doctorName',
'surgicalName', // 'surgicalName',
'surgicalTime', 'surgicalTime',
'deliveryTime', 'deliveryTime',
'needTool', 'needTool',
...@@ -413,20 +446,22 @@ const editFields = [ ...@@ -413,20 +446,22 @@ const editFields = [
// 'distributorId', // 'distributorId',
// 'orderSn', // 'orderSn',
'productLineName', 'productLineName',
'productSelectField',
'hospitalId', 'hospitalId',
'saleUserId',
'saleUserName',
'doctorId', 'doctorId',
'doctorName', 'saleUserId',
'surgicalName', // 'saleUserName',
// 'doctorName',
// 'surgicalName',
'surgicalTime', 'surgicalTime',
'deliveryTime', 'deliveryTime',
'needTool', 'needTool',
'logisticsMode', 'logisticsMode',
'receiveId',
'receiveName', 'receiveName',
'receivePhone', 'receivePhone',
'address', 'address',
'status', // 'status',
// 'type', // 'type',
'remark', 'remark',
// 'deleteStatus', // 'deleteStatus',
...@@ -441,7 +476,7 @@ const tableFields = [ ...@@ -441,7 +476,7 @@ const tableFields = [
'saleUserName', 'saleUserName',
'doctorId', 'doctorId',
'doctorName', 'doctorName',
'surgicalName', // 'surgicalName',
'surgicalTime', 'surgicalTime',
'deliveryTime', 'deliveryTime',
'needTool', 'needTool',
...@@ -468,7 +503,7 @@ const descriptionFields = [ ...@@ -468,7 +503,7 @@ const descriptionFields = [
'saleUserName', 'saleUserName',
'doctorId', 'doctorId',
'doctorName', 'doctorName',
'surgicalName', // 'surgicalName',
'surgicalTime', 'surgicalTime',
'deliveryTime', 'deliveryTime',
'needTool', 'needTool',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论