From 0cd95d98fdf7ed22d53398242feb2a3ca185cf09 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周二, 13 5月 2025 15:38:35 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
---
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx | 457 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 457 insertions(+), 0 deletions(-)
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx
new file mode 100644
index 0000000..23d375b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx
@@ -0,0 +1,457 @@
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsMaterialStockDrawer } from '../Models/WmsMaterialStockDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsMaterialStockQueryDrawer = (props: any, ctx?: any) => {
+ const wmsMaterialStockDrawer = injectModel<WmsMaterialStockDrawer>(
+ 'WmsMaterialStockDrawer'
+ )
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ 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: 'materialName',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ },
+ // {
+ // label: '瀹瑰櫒缂栧彿',
+ // prop: 'containerNo',
+ // el: 'input',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+ // },
+ // {
+ // label: '瀹瑰櫒鐘舵��',
+ // prop: 'containerStatus',
+ // el: 'select',
+ // clearable: true,
+ // option: [],
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ鍣ㄧ姸鎬�',
+ // },
+ // {
+ // label: '瀹瑰櫒绫诲瀷',
+ // prop: 'containerType',
+ // el: 'select',
+ // clearable: true,
+ // option: [],
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ鍣ㄧ被鍨�',
+ // },
+ {
+ label: '鐗╂枡缂栧彿',
+ prop: 'materialNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欑紪鍙�',
+ },
+ // {
+ // label: '搴撳瓨鏁伴噺',
+ // prop: 'stockNumber',
+ // el: (props: any, { attrs }: SetupContext) => {
+ // return h(inputNumber, {
+ // ...props,
+ // clearable: true,
+ // ...attrs,
+ // })
+ // },
+ // width: '100%',
+ // step: 1,
+ // precision: 0,
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ簱瀛樻暟閲�',
+ // },
+ {
+ label: '鐗╂枡鎵规',
+ prop: 'materialBatch',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欐壒娆�',
+ },
+ // {
+ // label: '渚涘簲鍟嗙紪鍙�',
+ // prop: 'supplierCode',
+ // el: 'input',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ヤ緵搴斿晢缂栧彿',
+ // },
+ {
+ label: '鍨嬪彿',
+ prop: 'materialModel',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
+ },
+ {
+ label: '搴撲綅缂栧彿',
+ prop: 'placeNo',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ簱浣嶇紪鍙�',
+ },
+ {
+ label: '搴撲綅鐘舵��;',
+ prop: 'placeStatus',
+ el: 'select',
+ clearable: true,
+ option: [],
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ簱浣嶇姸鎬�;',
+ },
+ {
+ label: '搴撲綅绫诲瀷',
+ prop: 'storageTypeNo',
+ el: 'select',
+ clearable: true,
+ option: [],
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ簱浣嶇被鍨�',
+ },
+ {
+ label: '鍖哄煙缂栧彿',
+ prop: 'areaCode',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ尯鍩熺紪鍙�',
+ },
+ // {
+ // label: '搴撳尯鍚嶇О',
+ // prop: 'areaName',
+ // el: 'input',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ簱鍖哄悕绉�',
+ // },
+ // {
+ // label: '妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)',
+ // prop: 'checkStatus',
+ // el: 'select',
+ // clearable: true,
+ // option: [],
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ユ楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)',
+ // },
+ {
+ label: '鏄惁閿佸畾',
+ prop: 'isLock',
+ el: 'select',
+ clearable: true,
+ option: [],
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ槸鍚﹂攣瀹�',
+ },
+ // {
+ // label: '鏄惁绌烘墭(2:鍚�,1:鏄�)',
+ // prop: 'emptyContainer',
+ // el: 'select',
+ // clearable: true,
+ // option: [],
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ユ槸鍚︾┖鎵�(2:鍚�,1:鏄�)',
+ // },
+ {
+ label: '鍏ュ簱鏃堕棿',
+ prop: 'inStockTime',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(dateTimePickerRange, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ叆搴撴椂闂�',
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ娉�',
+ },
+ // {
+ // label: '鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��',
+ // prop: 'redundantField1',
+ // el: 'input',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�1 - 棰勭暀鎵╁睍鐢ㄩ��',
+ // },
+ // {
+ // label: '鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��',
+ // prop: 'redundantField2',
+ // el: 'input',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�2 - 棰勭暀鎵╁睍鐢ㄩ��',
+ // },
+ // {
+ // label: '鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��',
+ // prop: 'redundantField3',
+ // el: 'input',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�3 - 棰勭暀鎵╁睍鐢ㄩ��',
+ // },
+ // {
+ // label: '鍒涘缓鏃堕棿',
+ // prop: 'creationTime',
+ // el: (props: any, { attrs }: SetupContext) => {
+ // return h(dateTimePickerRange, {
+ // ...props,
+ // clearable: true,
+ // ...attrs,
+ // })
+ // },
+ // width: '100%',
+ // //disabled: disabled,
+ // placeholder: '璇疯緭鍏�',
+ // },
+ // {
+ // label: '',
+ // prop: 'lastModificationTime',
+ // 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 = {
+ materialId: formData.value.materialId || '',
+ materialName: formData.value.materialName || '',
+ containerNo: formData.value.containerNo || '',
+ containerStatus: formData.value.containerStatus || '',
+ containerType: formData.value.containerType || '',
+ materialNo: formData.value.materialNo || '',
+ stockNumber: formData.value.stockNumber || '',
+ materialBatch: formData.value.materialBatch || '',
+ supplierCode: formData.value.supplierCode || '',
+ materialModel: formData.value.materialModel || '',
+ placeNo: formData.value.placeNo || '',
+ placeStatus: formData.value.placeStatus || '',
+ storageTypeNo: formData.value.storageTypeNo || 1,
+ areaCode: formData.value.areaCode || '',
+ areaName: formData.value.areaName || '',
+ checkStatus: formData.value.checkStatus || '',
+ isLock: formData.value.isLock || '',
+ emptyContainer: formData.value.emptyContainer || '',
+ inStockTime: formData.value.inStockTime || '',
+ remark: formData.value.remark || '',
+ redundantField1: formData.value.redundantField1 || '',
+ redundantField2: formData.value.redundantField2 || '',
+ redundantField3: formData.value.redundantField3 || '',
+ creationTime: formData.value.creationTime || '',
+ lastModificationTime: formData.value.lastModificationTime || '',
+ }
+ 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.materialId = ''
+ formData.value.materialName = ''
+ formData.value.containerNo = ''
+ formData.value.containerStatus = ''
+ formData.value.containerType = ''
+ formData.value.materialNo = ''
+ formData.value.stockNumber = ''
+ formData.value.materialBatch = ''
+ formData.value.supplierCode = ''
+ formData.value.materialModel = ''
+ formData.value.placeNo = ''
+ formData.value.placeStatus = ''
+ formData.value.storageTypeNo = ''
+ formData.value.areaCode = ''
+ formData.value.areaName = ''
+ formData.value.checkStatus = ''
+ formData.value.isLock = ''
+ formData.value.emptyContainer = ''
+ formData.value.inStockTime = ''
+ formData.value.remark = ''
+ formData.value.redundantField1 = ''
+ formData.value.redundantField2 = ''
+ formData.value.redundantField3 = ''
+ formData.value.deletionTime = ''
+ //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
+ 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 containerStatusEnumEnum = await wmsMaterialStockDrawer.getWmsEnumData(
+ {
+ EnumName: 'ContainerStatusEnum',
+ }
+ )
+ updateFormItemOptions('containerStatus', containerStatusEnumEnum)
+ const containerTypeEnumEnum = await wmsMaterialStockDrawer.getWmsEnumData({
+ EnumName: 'ContainerTypeEnum',
+ })
+ updateFormItemOptions('containerType', containerTypeEnumEnum)
+ const placeStatusEnumEnum = await wmsMaterialStockDrawer.getWmsEnumData({
+ EnumName: 'PlaceStatusEnum',
+ })
+ updateFormItemOptions('placeStatus', placeStatusEnumEnum)
+ const placeTypeEnumEnum = await wmsMaterialStockDrawer.getWmsEnumData({
+ EnumName: 'PlaceTypeEnum',
+ })
+ updateFormItemOptions('storageTypeNo', placeTypeEnumEnum)
+ const materialCheckStatusEnumEnum =
+ await wmsMaterialStockDrawer.getWmsEnumData({
+ EnumName: 'MaterialCheckStatusEnum',
+ })
+ updateFormItemOptions('checkStatus', materialCheckStatusEnumEnum)
+ const yesNoEnumEnum = await wmsMaterialStockDrawer.getWmsEnumData({
+ EnumName: 'YesNoEnum',
+ })
+ updateFormItemOptions('isLock', yesNoEnumEnum)
+ const yesNoEnumEnum2 = await wmsMaterialStockDrawer.getWmsEnumData({
+ EnumName: 'YesNoEnum',
+ })
+ updateFormItemOptions('emptyContainer', yesNoEnumEnum2)
+ }
+ commonQueryEnumForFrom()
+ formData.value.storageTypeNo = 1
+ /**
+ * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+ */
+ const onOpen = async () => {
+ disabled.value = false
+ updateCheckData()
+ }
+
+ watch(() => current.value, onOpen)
+
+ return {
+ formItems,
+ formData,
+ visible,
+ formRef,
+ onOpen,
+ onClose,
+ onConfirmQuery,
+ onReset,
+ }
+}
--
Gitblit v1.9.3