From 4456f43c6c73185a9f7ce46cdcdf94ab2053f02e Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周三, 07 5月 2025 14:19:43 +0800 Subject: [PATCH] 修改生成器及出入库记录页面 --- HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx | 589 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 308 insertions(+), 281 deletions(-) diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx index f8e1bb1..5c2295b 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx @@ -1,281 +1,308 @@ -import { - ref, - onMounted, - reactive, - computed, - Ref, - watch, - SetupContext, - h, -} from 'vue' -import { injectModel } from '@/libs/Provider/Provider' -import { WmsInOutStockRecordDrawer } from '../Models/WmsInOutStockRecordDrawer' -import { ElMessage } from 'element-plus' -import isEqual from 'lodash/isEqual' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' -import { cloneDeep } from 'lodash' - -export const useWmsInOutStockRecordQueryDrawer = (props: any, ctx?: any) => { - const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>( - 'WmsInOutStockRecordDrawer' - ) - /** - * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 - */ - 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) - }, - }) - /** - * 娣诲姞鐨刦orm瀛楁 - */ - const formItems = reactive([ - { - label: '鍗曟嵁缂栧彿', - prop: 'orderNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ崟鎹紪鍙�', - }, - { - label: '鐗╂枡鍚嶇О', - prop: 'materialName', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', - }, - { - label: '鐗╂枡浠跺彿', - prop: 'materialNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�', - }, - { - label: '鎿嶄綔绫诲瀷', - prop: 'stockType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ搷浣滅被鍨�', - }, - { - label: '瀹瑰櫒缂栧彿', - prop: 'containerNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�', - }, - { - label: '鏈哄瀷', - prop: 'materialModel', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ満鍨�', - }, - { - label: '鎿嶄綔鏃堕棿', - prop: 'operateTime', - type: 'datetimerange', - el: 'date-picker', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ搷浣滄椂闂�', - }, - { - label: '澶囨敞', - prop: 'remark', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ娉�', - }, - { - label: '鐗╂枡ID', - prop: 'materialId', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂橧D', - }, - { - label: '浠诲姟鍙�', - prop: 'taskNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔″彿', - }, - { - label: '璧峰搴撲綅', - prop: 'sourcePlace', - el: 'input', - //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 = { - OrderNo: formData.value.OrderNo, - MaterialName: formData.value.MaterialName, - MaterialNo: formData.value.MaterialNo, - StockType: formData.value.StockType, - ContainerNo: formData.value.ContainerNo, - MaterialModel: formData.value.MaterialModel, - OperateTime: formData.value.OperateTime, - Remark: formData.value.Remark, - MaterialId: formData.value.MaterialId, - TaskNo: formData.value.TaskNo, - SourcePlace: formData.value.SourcePlace, - ToPlace: formData.value.ToPlace, - materialCode: formData.value.materialCode, - materialName: formData.value.materialName, - purchaseType: formData.value.purchaseType, - materialType: formData.value.materialType, - primaryUnit: formData.value.primaryUnit, - standard: formData.value.standard, - outerDiameter: formData.value.outerDiameter, - wallThickness: formData.value.wallThickness, - materialQuality: formData.value.materialQuality, - length: formData.value.length, - isMainBranch: formData.value.isMainBranch, - factory: formData.value.factory, - certification: formData.value.certification, - remark: formData.value.remark, - } - 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.OrderNo = '' - formData.value.MaterialName = '' - formData.value.MaterialNo = '' - formData.value.StockType = '' - formData.value.ContainerNo = '' - formData.value.MaterialModel = '' - formData.value.OperateTime = '' - formData.value.Remark = '' - formData.value.MaterialId = '' - formData.value.TaskNo = '' - formData.value.SourcePlace = '' - formData.value.ToPlace = '' - formData.value.materialCode = '' - formData.value.materialName = '' - formData.value.purchaseType = '' - formData.value.materialType = '' - formData.value.primaryUnit = '' - formData.value.standard = '' - formData.value.outerDiameter = '' - formData.value.wallThickness = '' - formData.value.materialQuality = '' - formData.value.length = '' - formData.value.isMainBranch = '' - formData.value.factory = '' - formData.value.certification = '' - formData.value.remark = '' - //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢 - 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 stockTypeEnumEnum = await wmsInOutStockRecordDrawer.getWmsEnumData({ - EnumName: 'StockTypeEnum', - }) - updateFormItemOptions('stockType', stockTypeEnumEnum) - } - 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 { WmsInOutStockRecordDrawer } from '../Models/WmsInOutStockRecordDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsInOutStockRecordQueryDrawer = (props: any, ctx?: any) => { + const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>('WmsInOutStockRecordDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '鍗曟嵁缂栧彿', + prop: 'orderNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ崟鎹紪鍙�', + }, + { + label: '鐗╂枡鍚嶇О', + prop: 'materialName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', + }, + { + label: '鐗╂枡浠跺彿', + prop: 'materialNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�', + }, + { + label: '鎿嶄綔绫诲瀷', + prop: 'stockType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ搷浣滅被鍨�', + }, + { + label: '瀹瑰櫒缂栧彿', + prop: 'containerNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�', + }, + { + label: '鏈哄瀷', + prop: 'materialModel', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ満鍨�', + }, + { + label: '鎿嶄綔鏃堕棿', + prop: 'operateTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ搷浣滄椂闂�', + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + }, + { + label: '鐗╂枡ID', + prop: 'materialId', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂橧D', + }, + { + label: '浠诲姟鍙�', + prop: 'taskNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔″彿', + }, + { + label: '璧峰搴撲綅', + prop: 'sourcePlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', + }, + { + label: '鐩爣搴撲綅', + prop: 'toPlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', + }, + { + 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%', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏�', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + const commonGetFormData=()=>{ + const data = { + orderNo: formData.value.orderNo || '', +materialName: formData.value.materialName || '', +materialNo: formData.value.materialNo || '', +stockType: formData.value.stockType || '', +containerNo: formData.value.containerNo || '', +materialModel: formData.value.materialModel || '', +operateTime: formData.value.operateTime || '', +remark: formData.value.remark || '', +materialId: formData.value.materialId || '', +taskNo: formData.value.taskNo || '', +sourcePlace: formData.value.sourcePlace || '', +toPlace: formData.value.toPlace || '', +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.OrderNo = '' +formData.value.MaterialName = '' +formData.value.MaterialNo = '' +formData.value.StockType = '' +formData.value.ContainerNo = '' +formData.value.MaterialModel = '' +formData.value.OperateTime = '' +formData.value.Remark = '' +formData.value.MaterialId = '' +formData.value.TaskNo = '' +formData.value.SourcePlace = '' +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 stockTypeEnumEnum = await wmsInOutStockRecordDrawer.getWmsEnumData({ + EnumName: 'StockTypeEnum', +}) +updateFormItemOptions('stockType', stockTypeEnumEnum) + + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + disabled.value = false + updateCheckData() + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirmQuery, + onReset, + } +} -- Gitblit v1.9.3