| | |
| | | import { |
| | | ref, |
| | | onMounted, |
| | | reactive, |
| | | computed, |
| | | Ref, |
| | | watch, |
| | | SetupContext, |
| | | h, |
| | | } from 'vue' |
| | | import { injectModel } from '@/libs/Provider/Provider' |
| | | import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' |
| | | import { ElMessage } from 'element-plus' |
| | | import isEqual from 'lodash/isEqual' |
| | | import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' |
| | | import { cloneDeep } from 'lodash' |
| | | |
| | | export const useWmsTaskQueryDrawer = (props: any, ctx?: any) => { |
| | | const wmsTaskDrawer = injectModel<WmsTaskDrawer>('WmsTaskDrawer') |
| | | /** |
| | | * 用来对比的初始化数据 |
| | | */ |
| | | const initiateData: Ref<Record<string, any>> = ref({}) |
| | | const formData = ref<Record<string, any>>({}) |
| | | // ref |
| | | const formRef = ref() |
| | | |
| | | const disabled = ref(false) |
| | | |
| | | const current = computed(() => { |
| | | return props.row || null |
| | | }) |
| | | |
| | | const inputNumber = (attrs) => { |
| | | return ( |
| | | <el-input-number |
| | | min="1" |
| | | step="1" |
| | | precision="0" |
| | | {...attrs} |
| | | ></el-input-number> |
| | | ) |
| | | } |
| | | |
| | | |
| | | const visible = computed({ |
| | | get() { |
| | | return props.modelValue |
| | | }, |
| | | set(val) { |
| | | ctx.emit('update:modelValue', val) |
| | | }, |
| | | }) |
| | | /** |
| | | * 添加的form字段 |
| | | */ |
| | | const formItems = reactive([ |
| | | { |
| | | label: '巷道', |
| | | prop: 'aisle', |
| | | //disabled: disabled, |
| | | placeholder: '请输入巷道', |
| | | }, |
| | | { |
| | | label: '托盘编号', |
| | | prop: 'containerNo', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入托盘编号', |
| | | }, |
| | | { |
| | | label: '堆垛机ID', |
| | | prop: 'dodeviceId', |
| | | //disabled: disabled, |
| | | placeholder: '请输入堆垛机ID', |
| | | }, |
| | | { |
| | | label: '设备类型', |
| | | prop: 'dodevicetype', |
| | | //disabled: disabled, |
| | | placeholder: '请输入设备类型', |
| | | }, |
| | | { |
| | | label: '下个任务是否生成成功', |
| | | prop: 'isNextTask', |
| | | //disabled: disabled, |
| | | placeholder: '请输入下个任务是否生成成功', |
| | | }, |
| | | { |
| | | label: 'WCS是否可以读取', |
| | | prop: 'isRead', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入WCS是否可以读取', |
| | | }, |
| | | { |
| | | label: '可变变量1', |
| | | prop: 'mutableParam1', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入可变变量1', |
| | | }, |
| | | { |
| | | label: '可变变量2', |
| | | prop: 'mutableParam2', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入可变变量2', |
| | | }, |
| | | { |
| | | label: '可变变量3', |
| | | prop: 'mutableParam3', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入可变变量3', |
| | | }, |
| | | { |
| | | label: '子任务类型', |
| | | prop: 'sonTaskType', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入子任务类型', |
| | | }, |
| | | { |
| | | label: '来源单据号', |
| | | prop: 'sourceOrderNo', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入来源单据号', |
| | | }, |
| | | { |
| | | label: '起始库位', |
| | | prop: 'sourcePlace', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入起始库位', |
| | | }, |
| | | { |
| | | label: '设备任务状态', |
| | | prop: 'taskDodeviceStatus', |
| | | //disabled: disabled, |
| | | placeholder: '请输入设备任务状态', |
| | | }, |
| | | { |
| | | label: '任务等级', |
| | | prop: 'taskLevel', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务等级', |
| | | }, |
| | | { |
| | | label: '任务号', |
| | | prop: 'taskNo', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务号', |
| | | }, |
| | | { |
| | | label: '任务状态', |
| | | prop: 'taskStatus', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务状态', |
| | | }, |
| | | { |
| | | label: '任务类型', |
| | | prop: 'taskType', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务类型', |
| | | }, |
| | | { |
| | | label: '目标库位', |
| | | prop: 'toPlace', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入目标库位', |
| | | }, |
| | | ]) |
| | | /** |
| | | * 校验是否有数据变化 |
| | | */ |
| | | const checkIsEqualObject = () => { |
| | | const data = { |
| | | formData: formData.value, |
| | | } |
| | | const check = isEqual(initiateData.value, data) |
| | | return check |
| | | } |
| | | const commonGetFormData=()=>{ |
| | | const data = { |
| | | Aisle: formData.value.Aisle, |
| | | ContainerNo: formData.value.ContainerNo, |
| | | DodeviceId: formData.value.DodeviceId, |
| | | Dodevicetype: formData.value.Dodevicetype, |
| | | IsNextTask: formData.value.IsNextTask, |
| | | IsRead: formData.value.IsRead, |
| | | MutableParam1: formData.value.MutableParam1, |
| | | MutableParam2: formData.value.MutableParam2, |
| | | MutableParam3: formData.value.MutableParam3, |
| | | SonTaskType: formData.value.SonTaskType, |
| | | SourceOrderNo: formData.value.SourceOrderNo, |
| | | SourcePlace: formData.value.SourcePlace, |
| | | TaskDodeviceStatus: formData.value.TaskDodeviceStatus, |
| | | TaskLevel: formData.value.TaskLevel, |
| | | TaskNo: formData.value.TaskNo, |
| | | TaskStatus: formData.value.TaskStatus, |
| | | TaskType: formData.value.TaskType, |
| | | ToPlace: formData.value.ToPlace, |
| | | } |
| | | return data; |
| | | } |
| | | const onClose = (done: () => void) => { |
| | | if (visible.value) { |
| | | visible.value = false |
| | | const data =commonGetFormData(); |
| | | ctx.emit('close', data) |
| | | } |
| | | } |
| | | /** |
| | | * 确认查询 |
| | | */ |
| | | const onConfirmQuery = async () => { |
| | | const data =commonGetFormData(); |
| | | ctx.emit('confirmQuery', data) |
| | | } |
| | | /** |
| | | * 重置查询 |
| | | */ |
| | | const onReset = async () => { |
| | | formData.value = {} |
| | | formData.value.Aisle = '' |
| | | formData.value.ContainerNo = '' |
| | | formData.value.DodeviceId = '' |
| | | formData.value.Dodevicetype = '' |
| | | formData.value.IsNextTask = '' |
| | | formData.value.IsRead = '' |
| | | formData.value.MutableParam1 = '' |
| | | formData.value.MutableParam2 = '' |
| | | formData.value.MutableParam3 = '' |
| | | formData.value.SonTaskType = '' |
| | | formData.value.SourceOrderNo = '' |
| | | formData.value.SourcePlace = '' |
| | | formData.value.TaskDodeviceStatus = '' |
| | | formData.value.TaskLevel = '' |
| | | formData.value.TaskNo = '' |
| | | formData.value.TaskStatus = '' |
| | | formData.value.TaskType = '' |
| | | formData.value.ToPlace = '' |
| | | //向父组件发送自定义事件 |
| | | ctx.emit('restQuery'); |
| | | } |
| | | |
| | | const updateCheckData = () => { |
| | | initiateData.value = { |
| | | formData: { |
| | | ...formData.value, |
| | | }, |
| | | } |
| | | } |
| | | const updateFormItemOptions = (propName: string, enumData: any[]) => { |
| | | const item = formItems.find((item) => item.prop === propName) |
| | | if (item && enumData) { |
| | | item.options = enumData.map((item) => ({ |
| | | label: item.description, |
| | | value: item.value, |
| | | })) |
| | | } |
| | | } |
| | | /** |
| | | * 通用查询枚举 |
| | | */ |
| | | const commonQueryEnumForFrom = async () => { |
| | | const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'TaskTypeEnum', |
| | | }) |
| | | updateFormItemOptions('taskType', taskTypeEnumEnum) |
| | | const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'WmsTaskStatus', |
| | | }) |
| | | updateFormItemOptions('taskStatus', wmsTaskStatusEnum) |
| | | const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'SonTaskTypeEnum', |
| | | }) |
| | | updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) |
| | | |
| | | } |
| | | commonQueryEnumForFrom() |
| | | /** |
| | | * 弹窗打开获取详情 |
| | | */ |
| | | const onOpen = async () => { |
| | | disabled.value = false |
| | | updateCheckData() |
| | | } |
| | | |
| | | watch(() => current.value, onOpen) |
| | | |
| | | return { |
| | | formItems, |
| | | formData, |
| | | visible, |
| | | formRef, |
| | | onOpen, |
| | | onClose, |
| | | onConfirmQuery, |
| | | onReset, |
| | | } |
| | | } |
| | | import { |
| | | ref, |
| | | onMounted, |
| | | reactive, |
| | | computed, |
| | | Ref, |
| | | watch, |
| | | SetupContext, |
| | | h, |
| | | } from 'vue' |
| | | import { injectModel } from '@/libs/Provider/Provider' |
| | | import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' |
| | | import { ElMessage } from 'element-plus' |
| | | import isEqual from 'lodash/isEqual' |
| | | import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' |
| | | import { cloneDeep } from 'lodash' |
| | | |
| | | export const useWmsTaskQueryDrawer = (props: any, ctx?: any) => { |
| | | const wmsTaskDrawer = injectModel<WmsTaskDrawer>('WmsTaskDrawer') |
| | | /** |
| | | * 用来对比的初始化数据 |
| | | */ |
| | | const initiateData: Ref<Record<string, any>> = ref({}) |
| | | const formData = ref<Record<string, any>>({}) |
| | | // ref |
| | | const formRef = ref() |
| | | |
| | | const disabled = ref(false) |
| | | |
| | | const current = computed(() => { |
| | | return props.row || null |
| | | }) |
| | | |
| | | const inputNumber = (attrs) => { |
| | | return ( |
| | | <el-input-number |
| | | min="1" |
| | | step="1" |
| | | precision="0" |
| | | {...attrs} |
| | | ></el-input-number> |
| | | ) |
| | | } |
| | | |
| | | const datePickerRange = (attrs) => { |
| | | return ( |
| | | <el-date-picker |
| | | type="daterange" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | {...attrs} |
| | | ></el-date-picker> |
| | | ) |
| | | } |
| | | |
| | | const dateTimePickerRange = (attrs) => { |
| | | return ( |
| | | <el-date-picker |
| | | type="datetimerange" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | {...attrs} |
| | | ></el-date-picker> |
| | | ) |
| | | } |
| | | |
| | | const visible = computed({ |
| | | get() { |
| | | return props.modelValue |
| | | }, |
| | | set(val) { |
| | | ctx.emit('update:modelValue', val) |
| | | }, |
| | | }) |
| | | /** |
| | | * 添加的form字段 |
| | | */ |
| | | const formItems = reactive([ |
| | | { |
| | | label: '任务号', |
| | | prop: 'taskNo', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务号', |
| | | }, |
| | | { |
| | | label: '任务类型', |
| | | prop: 'taskType', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务类型', |
| | | }, |
| | | { |
| | | label: '任务等级', |
| | | prop: 'taskLevel', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务等级', |
| | | }, |
| | | { |
| | | label: '任务状态', |
| | | prop: 'taskStatus', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务状态', |
| | | }, |
| | | { |
| | | label: '托盘编号', |
| | | prop: 'containerNo', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入托盘编号', |
| | | }, |
| | | { |
| | | label: '起始库位', |
| | | prop: 'sourcePlace', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入起始库位', |
| | | }, |
| | | { |
| | | label: '目标库位', |
| | | prop: 'toPlace', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入目标库位', |
| | | }, |
| | | { |
| | | label: '巷道', |
| | | prop: 'aisle', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入巷道', |
| | | }, |
| | | { |
| | | label: '堆垛机ID', |
| | | prop: 'dodeviceId', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入堆垛机ID', |
| | | }, |
| | | { |
| | | label: '设备类型', |
| | | prop: 'dodevicetype', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入设备类型', |
| | | }, |
| | | { |
| | | label: '设备任务状态', |
| | | prop: 'taskDodeviceStatus', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入设备任务状态', |
| | | }, |
| | | { |
| | | label: 'WCS是否可以读取', |
| | | prop: 'isRead', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入WCS是否可以读取', |
| | | options: [ |
| | | { label: '是', value: 'true' }, |
| | | { label: '否', value: 'false' }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '子任务类型', |
| | | prop: 'sonTaskType', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入子任务类型', |
| | | }, |
| | | { |
| | | label: '来源单据号', |
| | | prop: 'sourceOrderNo', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入来源单据号', |
| | | }, |
| | | { |
| | | label: '下个任务是否生成成功', |
| | | prop: 'isNextTask', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入下个任务是否生成成功', |
| | | }, |
| | | { |
| | | label: '可变变量1', |
| | | prop: 'mutableParam1', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入可变变量1', |
| | | }, |
| | | { |
| | | label: '可变变量2', |
| | | prop: 'mutableParam2', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入可变变量2', |
| | | }, |
| | | { |
| | | label: '可变变量3', |
| | | prop: 'mutableParam3', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入可变变量3', |
| | | }, |
| | | { |
| | | label: '是否禁用', |
| | | prop: 'isDisabled', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入是否禁用', |
| | | options: [ |
| | | { label: '是', value: 'true' }, |
| | | { label: '否', value: 'false' }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '创建时间', |
| | | prop: 'creationTime', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(dateTimePickerRange, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | //disabled: disabled, |
| | | placeholder: '请输入', |
| | | }, |
| | | ]) |
| | | /** |
| | | * 校验是否有数据变化 |
| | | */ |
| | | const checkIsEqualObject = () => { |
| | | const data = { |
| | | formData: formData.value, |
| | | } |
| | | const check = isEqual(initiateData.value, data) |
| | | return check |
| | | } |
| | | const commonGetFormData = () => { |
| | | const data = { |
| | | taskNo: formData.value.taskNo || '', |
| | | taskType: formData.value.taskType || '', |
| | | taskLevel: formData.value.taskLevel || '', |
| | | taskStatus: formData.value.taskStatus || '', |
| | | containerNo: formData.value.containerNo || '', |
| | | sourcePlace: formData.value.sourcePlace || '', |
| | | toPlace: formData.value.toPlace || '', |
| | | aisle: formData.value.aisle || '', |
| | | dodeviceId: formData.value.dodeviceId || '', |
| | | dodevicetype: formData.value.dodevicetype || '', |
| | | taskDodeviceStatus: formData.value.taskDodeviceStatus || '', |
| | | isRead: formData.value.isRead || '', |
| | | sonTaskType: formData.value.sonTaskType || '', |
| | | sourceOrderNo: formData.value.sourceOrderNo || '', |
| | | isNextTask: formData.value.isNextTask || '', |
| | | mutableParam1: formData.value.mutableParam1 || '', |
| | | mutableParam2: formData.value.mutableParam2 || '', |
| | | mutableParam3: formData.value.mutableParam3 || '', |
| | | isDisabled: formData.value.isDisabled || '', |
| | | creationTime: formData.value.creationTime || '', |
| | | } |
| | | return data |
| | | } |
| | | const onClose = (done: () => void) => { |
| | | if (visible.value) { |
| | | visible.value = false |
| | | const data = commonGetFormData() |
| | | ctx.emit('close', data) |
| | | } |
| | | } |
| | | /** |
| | | * 确认查询 |
| | | */ |
| | | const onConfirmQuery = async () => { |
| | | const data = commonGetFormData() |
| | | ctx.emit('confirmQuery', data) |
| | | } |
| | | /** |
| | | * 重置查询 |
| | | */ |
| | | const onReset = async () => { |
| | | formData.value = {} |
| | | formData.value.TaskNo = '' |
| | | formData.value.TaskType = '' |
| | | formData.value.TaskLevel = '' |
| | | formData.value.TaskStatus = '' |
| | | formData.value.ContainerNo = '' |
| | | formData.value.SourcePlace = '' |
| | | formData.value.ToPlace = '' |
| | | formData.value.Aisle = '' |
| | | formData.value.DodeviceId = '' |
| | | formData.value.Dodevicetype = '' |
| | | formData.value.TaskDodeviceStatus = '' |
| | | formData.value.IsRead = '' |
| | | formData.value.SonTaskType = '' |
| | | formData.value.SourceOrderNo = '' |
| | | formData.value.IsNextTask = '' |
| | | formData.value.MutableParam1 = '' |
| | | formData.value.MutableParam2 = '' |
| | | formData.value.MutableParam3 = '' |
| | | //向父组件发送自定义事件 |
| | | ctx.emit('restQuery') |
| | | } |
| | | |
| | | const updateCheckData = () => { |
| | | initiateData.value = { |
| | | formData: { |
| | | ...formData.value, |
| | | }, |
| | | } |
| | | } |
| | | const updateFormItemOptions = (propName: string, enumData: any[]) => { |
| | | const item = formItems.find((item) => item.prop === propName) |
| | | if (item && enumData) { |
| | | item.options = enumData.map((item) => ({ |
| | | label: item.description, |
| | | value: item.value, |
| | | })) |
| | | } |
| | | } |
| | | /** |
| | | * 通用查询枚举 |
| | | */ |
| | | const commonQueryEnumForFrom = async () => { |
| | | const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'TaskTypeEnum', |
| | | }) |
| | | updateFormItemOptions('taskType', taskTypeEnumEnum) |
| | | const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'WmsTaskStatus', |
| | | }) |
| | | updateFormItemOptions('taskStatus', wmsTaskStatusEnum) |
| | | const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'SonTaskTypeEnum', |
| | | }) |
| | | updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) |
| | | } |
| | | commonQueryEnumForFrom() |
| | | /** |
| | | * 弹窗打开获取详情 |
| | | */ |
| | | const onOpen = async () => { |
| | | disabled.value = false |
| | | updateCheckData() |
| | | } |
| | | |
| | | watch(() => current.value, onOpen) |
| | | |
| | | return { |
| | | formItems, |
| | | formData, |
| | | visible, |
| | | formRef, |
| | | onOpen, |
| | | onClose, |
| | | onConfirmQuery, |
| | | onReset, |
| | | } |
| | | } |