From 37d497d48aa64bb56ae05cc7fe9bf16ff85e3592 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周六, 03 5月 2025 06:38:14 +0800 Subject: [PATCH] 222 --- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx | 102 ++++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts | 44 +++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts | 18 + Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx | 311 +++++++++++++++++++++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx | 64 +++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss | 3 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx | 20 + Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss | 78 ++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts | 58 ++++ 9 files changed, 698 insertions(+), 0 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/components/BaseQueryDrawer/BaseQueryDrawer.module.scss" "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/components/BaseQueryDrawer/BaseQueryDrawer.module.scss" new file mode 100644 index 0000000..a0393bb --- /dev/null +++ "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/components/BaseQueryDrawer/BaseQueryDrawer.module.scss" @@ -0,0 +1,78 @@ +.informationDrawerPosition { + position: relative; +} +.informationDrawer { + background: linear-gradient(180deg, #dee4ff 0%, #ffffff 40%, #ffffff 100%); + box-shadow: 0px -4px 30px 1px rgba(0, 0, 0, 0.16); + + border-radius: 6px 6px 0px 0px; + opacity: 1; + border: 1px solid #f0f3fd; + + @keyframes iconFrames { + 0% { + opacity: 1; + } + 25% { + opacity: 0.66; + } + 50% { + opacity: 0.33; + } + 75% { + opacity: 0.66; + } + + 100% { + opacity: 1; + } + } + .iconPosition { + position: absolute; + top: 38px; + right: 111px; + user-select: none; + -webkit-user-drag: none; + animation: iconFrames 2s infinite linear; + } + :global(.cs-drawer__header) { + padding-top: 36px; + .cs-drawer__close-btn { + margin-top: -16px; + font-size: 16px; + } + + > span { + font-size: 18px; + font-family: Source Han Sans CN, Source Han Sans CN; + font-weight: bold; + color: #464e54; + line-height: 0px; + } + } + :global(.cs-drawer__close-btn) { + margin-top: -16px; + font-size: 16px; + } + :global(.cs-drawer__body) { + padding: 30px; + padding-top: 13px; + } +} + +.modal { + width: var(--drawer-width); + left: calc(100% - var(--drawer-width)) !important; +} + +.csDialogFooter { + padding: 0 18px; + .csBaseBtn { + width: 98px; + height: 26px; + } + .dialogBtn { + background: #efeded; + color: #666666; + } +} 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/components/BaseQueryDrawer/BaseQueryDrawer.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/components/BaseQueryDrawer/BaseQueryDrawer.tsx" new file mode 100644 index 0000000..29201fd --- /dev/null +++ "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/components/BaseQueryDrawer/BaseQueryDrawer.tsx" @@ -0,0 +1,102 @@ +import { computed, defineComponent, onMounted, ref } from 'vue' +import styles from './BaseQueryDrawer.module.scss' +import Icon from '../Icon/Icon' +//@ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + // @ts-ignore + name: 'BaseDrawer', + props: { + // 閬僵鏄惁鍙偣鍑� + clickable: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + width: { + type: String, + default: '', + }, + // modelValue: { + // type: Boolean, + // default: false, + // }, + }, + emits: ['close', 'confirm', 'update:modelValue', 'open', 'beforeClose'], + setup(props: any, { emit, slots, attrs }: any) { + // const size = computed(() => { + // if (attrs.size.includes('px')) { + // return attrs.size + // } + // }) + + // const model = computed(() => { + // if (attrs.model.includes('')) { + // return attrs.model + // } + // }) + + return () => { + return ( + <div + class={styles.drawContent} + //@ts-ignore + // style={props.clickable ? { '--drawer-width': size.value } : {}} + > + <el-drawer + // modal-class={props.clickable ? styles.modal : ''} + class={{ + [styles.informationDrawer]: true, + // [styles.informationDrawerPosition]: props.clickable, + }} + onOpen={() => emit('open')} + onClose={() => emit('close')} + v-slots={{ + footer() { + return ( + <div class={styles.csDialogFooter}> + <el-button + onClick={() => emit('close')} + type="info" + plain + class={{ + [styles.dialogBtn]: true, + [styles.csBaseBtn]: true, + }} + > + 鍏抽棴 + </el-button> + <el-button + onClick={() => emit('confirm')} + type="primary" + class={{ + [styles.csBaseBtn]: true, + }} + > + 鏌ヨ + </el-button> + </div> + ) + }, + }} + {...attrs} + title={props.title} + size={props.width || attrs.size} + > + <Icon + width={167} + height={54} + class={styles.iconPosition} + icon="drawer_bg" + /> + {slots.default?.()} + </el-drawer> + </div> + ) + } + }, +}) 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/WmsMaterial.ts" "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/WmsMaterial.ts" index 3684341..1279e69 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/WmsMaterial.ts" +++ "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/WmsMaterial.ts" @@ -51,6 +51,12 @@ title: '', isAdd: false, }) + const dialogConfigForQuery = reactive({ + visible: false, + title: '', + isAdd: false, + }) + const dialogSettingConfig = reactive({ visible: false, @@ -149,6 +155,16 @@ sort.value = params.totalCount + 1 } + //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€�� + const onAdvancedQuery = () => { + const params = tableRef.value?.getPaginationParams() + current.value = null + dialogConfigForQuery.visible = true + dialogConfigForQuery.isAdd = true + dialogConfigForQuery.title = '楂樼骇鏌ヨ' + sort.value = params.totalCount + 1 + } + const onConfirmWmsMaterial = async () => { dialogConfig.visible = false if (dialogConfig.isAdd) { @@ -236,6 +252,7 @@ dataSource, contextMenu, dialogConfig, + dialogConfigForQuery, dialogSettingConfig, tableRef, current, @@ -254,5 +271,6 @@ onConfirmWmsMaterial, onCheck, onAddWmsMaterial, + onAdvancedQuery } } 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" new file mode 100644 index 0000000..9fa83da --- /dev/null +++ "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" @@ -0,0 +1,311 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterialQueryDrawer } from '../Models/WmsMaterialQueryDrawer' +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 WmsMaterialQueryDrawer = injectModel<WmsMaterialQueryDrawer>('WmsMaterialQueryDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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(() => { + onConfirm() + }) + .catch(() => { + visible.value = false + done && done() + }) + } + } + } + /** + * 淇濆瓨 + */ + const onConfirm = async () => { + 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 WmsMaterialQueryDrawer.addWmsMaterial(data) + } else { + const id = current.value.id + await WmsMaterialQueryDrawer.updateWmsMaterial(id, data) + } + ElMessage.success('淇濆瓨鎴愬姛') + ctx.emit('confirm') + } + + 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 onOpen = async () => { + const materialTypeEnum = await WmsMaterialQueryDrawer.getWmsEnumData({ + EnumName: 'MaterialTypeEnum', + }) + updateFormItemOptions('materialType', materialTypeEnum) + + const purchaseTypeEnum = await WmsMaterialQueryDrawer.getWmsEnumData({ + EnumName: 'PurchaseTypeEnum', + }) + updateFormItemOptions('purchaseType', purchaseTypeEnum) + + const yesOrNoTypeEnum = await WmsMaterialQueryDrawer.getWmsEnumData({ + EnumName: 'YesNoEnum', + }) + updateFormItemOptions('isMainBranch', yesOrNoTypeEnum) + + if (current.value) { + const res = await WmsMaterialQueryDrawer.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, + onConfirm, + } +} 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/Models/Service/WmsMaterialQueryDrawer.ts" "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/Models/Service/WmsMaterialQueryDrawer.ts" new file mode 100644 index 0000000..a31f0fa --- /dev/null +++ "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/Models/Service/WmsMaterialQueryDrawer.ts" @@ -0,0 +1,58 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterial = (data: any) => { + return request.post('/api/v1/hIAWms/wmsMaterial', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWmsMaterial = (id: string) => { + return request.get(`/api/v1/hIAWms/wmsMaterial/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWmsMaterial = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/hIAWms/wmsMaterial/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/hIAWms/WmsEnum', data) +} + +/** + * 鑾峰彇鐗╂枡鍩虹鍒楄〃 + * @returns + */ +export const getWmsDataList = (data: any) => { + return request.post('/api/v1/hIAWms/wmsmaterial/page', data) +} + +/** + * 鑾峰彇浠撳簱鍒楄〃 + * @returns + */ +export const getStoreDataList = () => { + return request.get('/api/v1/hIAWms/WmsEnum/StoreList') +} + +/** + * 鑾峰彇搴撳尯鍒楄〃 + * @returns + */ +export const getAreaAreaDataList = () => { + return request.get('/api/v1/hIAWms/WmsEnum/AreaList') +} 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/Models/WmsMaterialQueryDrawer.ts" "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/Models/WmsMaterialQueryDrawer.ts" new file mode 100644 index 0000000..9818421 --- /dev/null +++ "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/Models/WmsMaterialQueryDrawer.ts" @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWmsMaterial, + getWmsMaterial, + updateWmsMaterial, + getWmsEnumData, +} from './Service/WmsMaterialQueryDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WmsMaterialQueryDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + wmsMaterial: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWmsMaterial(data: Record<string, any>) { + return addWmsMaterial(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWmsMaterial(id: string, data: Record<string, any>) { + return updateWmsMaterial(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWmsMaterialDetail(current: any, id?: string) { + return getWmsMaterial(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} 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/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" "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/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" new file mode 100644 index 0000000..98607dd --- /dev/null +++ "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/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} 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/Views/Pages/Dialog/WmsMaterialQueryDrawer/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/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx" new file mode 100644 index 0000000..14fba7a --- /dev/null +++ "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/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx" @@ -0,0 +1,64 @@ +/* + * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� +*/ +import { SetupContext, defineComponent } from 'vue' +import BaseDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' +import styles from './WmsMaterialQueryDrawer.module.scss' +import { useWmsMaterialQueryDrawer } from '../../../../Controllers/WmsMaterialQueryDrawer.tsx' +import DyForm from '@/components/DyForm/DyForm' + +// @ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + name: '寮圭獥', + props: { + modelValue: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + row: { + type: Object, + }, + sort: { + type: Number, + default: 0, + }, + }, + emits: ['update:modelValue', 'close', 'submit', 'confirm'], + setup(props: Record<string, any>, ctx: SetupContext) { + const { + onClose, + onConfirm, + onOpen, + formRef, + visible, + formItems, + formData, + } = useWmsMaterialQueryDrawer(props, ctx) + return () => ( + <BaseDrawer + class={styles.drawer} + size="800px" + title={props.title || '楂樼骇鏌ヨ'} + v-model={visible.value} + close-on-click-modal={true} + onConfirm={onConfirm} + onOpen={onOpen} + before-close={onClose} + onClose={onClose} + > + <DyForm + ref={formRef} + formData={formData.value} + labelWidth="106px" + formItemProps={formItems} + ></DyForm> + </BaseDrawer> + ) + }, +}) 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/Views/Pages/WmsMaterial/WmsMaterial.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/Views/Pages/WmsMaterial/WmsMaterial.tsx" index a2e2c16..455d508 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/Views/Pages/WmsMaterial/WmsMaterial.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/Views/Pages/WmsMaterial/WmsMaterial.tsx" @@ -5,6 +5,7 @@ import { useWmsMaterial } from '../../../Controllers/WmsMaterial' import IconButton from '@/components/IconButton/IconButton' import WmsMaterialDrawer from '../Dialog/WmsMaterialDrawer/WmsMaterialDrawer' +import WmsMaterialQueryDrawer from '../Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer' import Search from '@/components/Search/Search' import { columns } from './Config' import TdButton from '@/components/TdButton/TdButton' @@ -43,6 +44,7 @@ dataSource, contextMenu, dialogConfig, + dialogConfigForQuery, tableRef, current, search, @@ -54,6 +56,7 @@ onConfirmWmsMaterial, onCheck, onAddWmsMaterial, + onAdvancedQuery, onExport, openDetail, onSuccess, @@ -198,6 +201,14 @@ sort={sort.value} onConfirm={onConfirmWmsMaterial} /> + {/* 楂樼骇鏌ヨ */} + <WmsMaterialQueryDrawer + v-model={dialogConfigForQuery.visible} + title={dialogConfigForQuery.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsMaterial} + /> {/* 鏂板鐨勬煡璇㈣〃鍗� */} <ElForm @@ -299,6 +310,15 @@ 娣诲姞 </IconButton> <el-divider direction="vertical" /> + <IconButton + v-permission="wmsMaterial-add" + icon="add-p" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + <el-divider direction="vertical" /> <el-upload v-permission="wmsMaterial-import" name="file" -- Gitblit v1.9.3