From 878bf3d5307fa9fc889539844701f30f91032b9c Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 07 5月 2025 09:08:07 +0800
Subject: [PATCH] 222
---
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx | 690 ++++++++++++++++++++++++++++++---------------------------
1 files changed, 366 insertions(+), 324 deletions(-)
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx"
index 6248a7e..4215656 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx"
@@ -1,324 +1,366 @@
-import {
- ref,
- onMounted,
- reactive,
- computed,
- Ref,
- watch,
- SetupContext,
- h,
-} from 'vue'
-import { injectModel } from '@/libs/Provider/Provider'
-import { WmsMaterialDrawer } from '../Models/WmsMaterialDrawer'
-import { ElMessage } from 'element-plus'
-import isEqual from 'lodash/isEqual'
-import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
-import { cloneDeep } from 'lodash'
-
-export const useWmsMaterialQueryDrawer = (props: any, ctx?: any) => {
- const WmsMaterialDrawer = injectModel<WmsMaterialDrawer>('WmsMaterialDrawer')
- /**
- * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
- */
- 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: 'materialCode',
- el: 'input',
- disabled: disabled,
- placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮�',
- },
- {
- label: '鐗╂枡鍚嶇О',
- prop: 'materialName',
- el: 'input',
- placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
- rules: [{ required: true, message: '鐗╂枡鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }],
- },
- {
- label: '閲囪喘绫诲瀷',
- prop: 'purchaseType',
- el: 'select',
- placeholder: '璇烽�夋嫨閲囪喘绫诲瀷',
- options: [],
- rules: [{ required: true, message: '璇烽�夋嫨閲囪喘绫诲瀷', trigger: 'change' }],
- },
- {
- label: '鐗╂枡绫诲瀷',
- prop: 'materialType',
- el: 'select',
- placeholder: '璇烽�夋嫨鐗╂枡绫诲瀷',
- options: [],
- rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡绫诲瀷', trigger: 'change' }],
- },
- {
- label: '涓诲崟浣�',
- prop: 'primaryUnit',
- el: 'input',
- placeholder: '璇疯緭鍏ヤ富鍗曚綅(濡�: kg, m, 涓�)',
- },
- {
- label: '瑙勬牸/鏍囧噯',
- prop: 'standard',
- el: 'input',
- placeholder: '璇疯緭鍏ヨ鏍�/鏍囧噯(濡�: GB/T 8163-2018)',
- },
- {
- label: '澶栧緞(mm)',
- prop: 'outerDiameter',
- el: (props: any, { attrs }: SetupContext) => {
- return h(inputNumber, {
- ...props,
- clearable: true,
- ...attrs,
- })
- },
- width: '100%',
- placeholder: '璇疯緭鍏ュ寰�',
- step: 0.01,
- precision: 2,
- },
- {
- label: '澹佸帤(mm)',
- prop: 'wallThickness',
- el: (props: any, { attrs }: SetupContext) => {
- return h(inputNumber, {
- ...props,
- clearable: true,
- ...attrs,
- })
- },
- width: '100%',
- placeholder: '璇疯緭鍏ュ鍘�',
- step: 0.01,
- precision: 2,
- },
- {
- label: '鏉愯川',
- prop: 'materialQuality',
- el: 'input',
- placeholder: '璇疯緭鍏ユ潗璐�(濡�: 304涓嶉攬閽�)',
- },
- {
- label: '闀垮害(m)',
- prop: 'length',
- el: (props: any, { attrs }: SetupContext) => {
- return h(inputNumber, {
- ...props,
- clearable: true,
- ...attrs,
- })
- },
- width: '100%',
- placeholder: '璇疯緭鍏ラ暱搴�',
- step: 0.1,
- precision: 2,
- },
- {
- label: '鏄惁涓绘敮绠�',
- prop: 'isMainBranch',
- el: 'select',
- options: [],
- },
- {
- label: '鐢熶骇宸ュ巶',
- prop: 'factory',
- el: 'input',
- placeholder: '璇疯緭鍏ョ敓浜у伐鍘�',
- },
- {
- label: '璇佷功缂栧彿',
- prop: 'certification',
- el: 'input',
- placeholder: '璇疯緭鍏ヨ瘉涔︾紪鍙�',
- },
- {
- label: '澶囨敞',
- prop: 'remark',
- el: 'input',
- type: 'textarea',
- placeholder: '璇疯緭鍏ュ娉�',
- },
- ])
- /**
- * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
- */
- const checkIsEqualObject = () => {
- const data = {
- formData: formData.value,
- }
- const check = isEqual(initiateData.value, data)
- return check
- }
-
- const onClose = (done: () => void) => {
- if (visible.value) {
- if (checkIsEqualObject()) {
- visible.value = false
- done && done()
- } else {
- ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
- .then(() => {
- onConfirmQuery()
- })
- .catch(() => {
- visible.value = false
- done && done()
- })
- }
- }
- }
- /**
- * 纭鏌ヨ
- */
- const onConfirmQuery = async () => {
- alert('浣犳潵鍚婃垜鍐呴儴鏂规硶浜嗗晩');
-
- //await formRef.value?.validate()
- const data = {
- 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,
- }
- if (!current.value) {
- //await WmsMaterialDrawer.addWmsMaterial(data)
- } else {
- const id = current.value.id
- //await WmsMaterialDrawer.updateWmsMaterial(id, data)
- }
- ElMessage.success('淇濆瓨鎴愬姛')
- //ctx.emit('confirmQuery')
- //澧炲姞浼犻�掑弬鏁� 銆怑ditby shaocx,2025-05-03銆�
- debugger
- console.log("鏂颁紶閫掑弬鏁版槸:"+data);
- alert("鏂颁紶閫掑弬鏁版槸:"+data);
- ctx.emit('confirmQuery',data)
- }
-
- 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 materialTypeEnum = await WmsMaterialDrawer.getWmsEnumData({
- EnumName: 'MaterialTypeEnum',
- })
- updateFormItemOptions('materialType', materialTypeEnum)
-
- const purchaseTypeEnum = await WmsMaterialDrawer.getWmsEnumData({
- EnumName: 'PurchaseTypeEnum',
- })
- updateFormItemOptions('purchaseType', purchaseTypeEnum)
-
- const yesOrNoTypeEnum = await WmsMaterialDrawer.getWmsEnumData({
- EnumName: 'YesNoEnum',
- })
- updateFormItemOptions('isMainBranch', yesOrNoTypeEnum)
- }
- commonQueryEnumForFrom();
- /**
- * 寮圭獥鎵撳紑鑾峰彇璇︽儏
- */
- const onOpen = async () => {
-
- if (current.value) {
- const res = await WmsMaterialDrawer.getWmsMaterialDetail(current.value)
-
- formData.value = {
- materialCode: res.materialCode,
- materialName: res.materialName,
- purchaseType: res.purchaseType,
- materialType: res.materialType,
- primaryUnit: res.primaryUnit,
- standard: res.standard,
- outerDiameter: res.outerDiameter,
- wallThickness: res.wallThickness,
- materialQuality: res.materialQuality,
- length: res.length,
- isMainBranch: res.isMainBranch,
- factory: res.factory,
- certification: res.certification,
- remark: res.remark,
- id: res.id,
- }
- disabled.value = true
- updateCheckData()
- } else {
- formData.value = {}
-
- disabled.value = false
- updateCheckData()
- }
- }
-
- watch(() => current.value, onOpen)
-
- return {
- formItems,
- formData,
- visible,
- formRef,
- onOpen,
- onClose,
- onConfirmQuery,
- }
-}
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsMaterialDrawer } from '../Models/WmsMaterialDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsMaterialQueryDrawer = (props: any, ctx?: any) => {
+ const wmsMaterialDrawer = injectModel<WmsMaterialDrawer>('WmsMaterialDrawer')
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ 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: 'materialCode',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮侊紙鍞竴鏍囪瘑锛�',
+ },
+ {
+ label: '鐗╂枡鍚嶇О',
+ prop: 'materialName',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ },
+ {
+ label: '閲囪喘绫诲瀷锛堟灇涓惧�硷級',
+ prop: 'purchaseType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ラ噰璐被鍨嬶紙鏋氫妇鍊硷級',
+ },
+ {
+ label: '鐗╂枡绫诲瀷锛堟灇涓惧�硷級',
+ prop: 'materialType',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ墿鏂欑被鍨嬶紙鏋氫妇鍊硷級',
+ },
+ {
+ label: '涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�',
+ prop: 'primaryUnit',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ヤ富鍗曚綅锛堝锛歬g銆乵銆佷釜锛�',
+ },
+ {
+ label: '瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�',
+ prop: 'standard',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ヨ鏍�/鏍囧噯锛堝锛欸B/T 8163-2018锛�',
+ },
+ {
+ label: '澶栧緞锛堝崟浣嶏細mm锛�',
+ prop: 'outerDiameter',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ step: 0.01,
+ precision: 2,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ寰勶紙鍗曚綅锛歮m锛�',
+ },
+ {
+ label: '澹佸帤锛堝崟浣嶏細mm锛�',
+ prop: 'wallThickness',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ step: 0.01,
+ precision: 2,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ鍘氾紙鍗曚綅锛歮m锛�',
+ },
+ {
+ label: '鏉愯川锛堝锛�304涓嶉攬閽級',
+ prop: 'materialQuality',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ潗璐紙濡傦細304涓嶉攬閽級',
+ },
+ {
+ label: '闀垮害锛堝崟浣嶏細m锛�',
+ prop: 'length',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ step: 0.01,
+ precision: 2,
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ラ暱搴︼紙鍗曚綅锛歮锛�',
+ },
+ {
+ label: '鏄惁涓轰富鏀',
+ prop: 'isMainBranch',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ槸鍚︿负涓绘敮绠�',
+ },
+ {
+ label: '鐢熶骇宸ュ巶',
+ prop: 'factory',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ョ敓浜у伐鍘�',
+ },
+ {
+ label: '璇佷功缂栧彿',
+ prop: 'certification',
+ 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: 'remark',
+ el: 'input',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ュ娉�',
+ },
+ {
+ label: '鏄惁绂佺敤',
+ prop: 'isDisabled',
+ el: 'select',
+ //disabled: disabled,
+ placeholder: '璇疯緭鍏ユ槸鍚︾鐢�',
+ },
+ ])
+ /**
+ * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+ */
+ const checkIsEqualObject = () => {
+ const data = {
+ formData: formData.value,
+ }
+ const check = isEqual(initiateData.value, data)
+ return check
+ }
+ const commonGetFormData=()=>{
+ const data = {
+ 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,
+RedundantField1: formData.value.RedundantField1,
+RedundantField2: formData.value.RedundantField2,
+RedundantField3: formData.value.RedundantField3,
+Remark: formData.value.Remark,
+IsDisabled: formData.value.IsDisabled,
+ 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.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.RedundantField1 = ''
+formData.value.RedundantField2 = ''
+formData.value.RedundantField3 = ''
+formData.value.Remark = ''
+formData.value.IsDisabled = ''
+ 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 purchaseTypeEnumEnum = await wmsMaterialDrawer.getWmsEnumData({
+ EnumName: 'PurchaseTypeEnum',
+})
+updateFormItemOptions('purchaseType', purchaseTypeEnumEnum)
+const materialTypeEnumEnum = await wmsMaterialDrawer.getWmsEnumData({
+ EnumName: 'MaterialTypeEnum',
+})
+updateFormItemOptions('materialType', materialTypeEnumEnum)
+const yesNoEnumEnum = await wmsMaterialDrawer.getWmsEnumData({
+ EnumName: 'YesNoEnum',
+})
+updateFormItemOptions('isMainBranch', yesNoEnumEnum)
+
+ }
+ 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