From 62f0e403c98fb76d39b8f1150d2bf2f026423b85 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 27 五月 2024 00:38:50 +0800 Subject: [PATCH] 工单管理 --- src/views/tigerprojects/wms/inventory/CountMdtlModal.vue | 587 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 302 insertions(+), 285 deletions(-) diff --git a/src/views/tigerprojects/wms/inventory/CountMdtlModal.vue b/src/views/tigerprojects/wms/inventory/CountMdtlModal.vue index 2abb3f8..e998c2e 100644 --- a/src/views/tigerprojects/wms/inventory/CountMdtlModal.vue +++ b/src/views/tigerprojects/wms/inventory/CountMdtlModal.vue @@ -1,313 +1,330 @@ <template> - <BasicModal width="1400px" :height=600 v-bind="$attrs" @register="register" :title="t('鐗╁搧鐩樼偣鏄庣粏鍒楄〃')" @ok="handleSubmit"> + <BasicModal + width="1400px" + :height="600" + v-bind="$attrs" + @register="register" + :title="t('鐗╁搧鐩樼偣鏄庣粏鍒楄〃')" + @ok="handleSubmit" + > <!-- <div class="pt-3px pr-3px"> <BasicForm @register="registerForm" :model="model" /> </div> --> <div> <!-- <a-button type="primary" class="mr-4" @click="handleSelect"> {{ t('鎼滅储') }} </a-button> --> - <BasicTable @register="registerTable" ref="tableRef" :canResize="canResize" - :striped="striped" :loading="loading" :bordered="border" showTableSetting> + <BasicTable + @register="registerTable" + ref="tableRef" + :canResize="canResize" + :striped="striped" + :loading="loading" + :bordered="border" + showTableSetting + > <template #toolbar> <a-button ghost color="success" preIcon="OutR|svg" @click="aoaToExcel"> 瀵煎嚭 </a-button> </template> </BasicTable> - </div> </BasicModal> </template> <script lang="ts"> -import { aoaToSheetXlsx } from '/@/components/Excel'; -import { defineComponent, ref, unref } from 'vue'; -import { BasicModal, useModalInner } from '/@/components/Modal'; -import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; -//import { getTreeList } from '/@/api/tigerapi/dept'; -import { BasicTable, TableAction, TableActionType, useTable } from '/@/components/Table'; -import { MdtlColumns } from './inventory.data'; -import { getMdtlListByPage, optionsListApiMdtlResult, optionsListApiMdtlStatus, getMdtlListByPageOut } from '/@/api/tigerapi/wms/inventory'; -import { iWMS_COUNT_MDTL } from '/@/api/tigerapi/model/warehoueseModel'; -import { useI18n } from '/@/hooks/web/useI18n'; -import { useLocale } from '/@/locales/useLocale'; -import { useMessage } from '/@/hooks/web/useMessage'; + import { aoaToSheetXlsx } from '/@/components/Excel'; + import { defineComponent, ref, unref } from 'vue'; + import { BasicModal, useModalInner } from '/@/components/Modal'; + import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; + //import { getTreeList } from '/@/api/tigerapi/dept'; + import { BasicTable, TableAction, TableActionType, useTable } from '/@/components/Table'; + import { MdtlColumns } from './inventory.data'; + import { + getMdtlListByPage, + optionsListApiMdtlResult, + optionsListApiMdtlStatus, + getMdtlListByPageOut, + } from '/@/api/tigerapi/wms/inventory'; + import { iWMS_COUNT_MDTL } from '/@/api/tigerapi/model/warehoueseModel'; + import { useI18n } from '/@/hooks/web/useI18n'; + import { useLocale } from '/@/locales/useLocale'; + import { useMessage } from '/@/hooks/web/useMessage'; -const { createMessage } = useMessage(); -const { getLocale } = useLocale(); -const { t } = useI18n('WMS.Count'); + const { createMessage } = useMessage(); + const { getLocale } = useLocale(); + const { t } = useI18n('WMS.Count'); -const schemas: FormSchema[] = [ - { - field: 'ITEM_CODE', - component: 'Input', - label: t('鐗╂枡缂栫爜'), - colProps: { - span: 12, - }, - }, - { - field: 'COUNT_NO', - component: 'Input', - label: t('鍗曟嵁缂栫爜'), - colProps: { - span: 12, - }, - show: false, - }, - { - field: 'STATUS', - label: t('鐘舵��'), - component: 'ApiSelect', - colProps: { span: 8 }, - componentProps: { - api: optionsListApiMdtlStatus, - resultField: 'Data', - labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', - valueField: 'Value', - // onChange: (e, v) => { - // alert(e) - // console.log('ApiSelect====>:', e, v); - // }, - }, - }, - { - field: 'RESULT', - label: t('缁撴灉'), - component: 'ApiSelect', - colProps: { span: 8 }, - componentProps: { - api: optionsListApiMdtlResult, - resultField: 'Data', - labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', - valueField: 'Value', - // onChange: (e, v) => { - // alert(e) - // console.log('ApiSelect====>:', e, v); - // }, - }, - } -]; -export default defineComponent({ - components: { BasicModal, BasicForm, BasicTable, TableAction }, - props: { - userData: { type: Object }, - }, - emit: ['success', 'register'], - setup(_, { emit }) { - const modelRef = ref({}); - const tableRef = ref<Nullable<TableActionType>>(null); - const canResize = ref(false); - const loading = ref(true); - const striped = ref(true); - const border = ref(true); - //const pagination = ref<any>(false); - // const [ - // registerForm, - // { - // setFieldsValue, - // validateFields - // // setProps - // //updateSchema, - // //validate - // }, - // ] = useForm({ - // labelWidth: 120, - // schemas, - // showActionButtonGroup: false, - // actionColOptions: { - // span: 24, - // }, - // }); - const checkedKeys = ref<Array<string | number>>([]); - let COUNT_NO = ref(''); - const [registerTable, { reload, getForm }] = useTable({ - title: t('鐗╂枡鍒楄〃'), - api: getMdtlListByPage, - columns: MdtlColumns, - formConfig: { - labelWidth: 120, - schemas: schemas, + const schemas: FormSchema[] = [ + { + field: 'ITEM_CODE', + component: 'Input', + label: t('鐗╂枡缂栫爜'), + colProps: { + span: 12, }, - - useSearchForm: true, - showTableSetting: true, - bordered: true, - canResize: true, - showIndexColumn: false, - rowKey: 'ITEM_CODE', - searchInfo: { COUNT_NO }, - rowSelection: { - selectedRowKeys: checkedKeys, - - type: 'checkbox', - // getCheckboxProps(record: Recordable) { - // // Demo: 绗竴琛岋紙id涓�0锛夌殑閫夋嫨妗嗙鐢� - // if (record.id === '0') { - // return { disabled: true }; - // } else { - // return { disabled: false }; - // } + }, + { + field: 'COUNT_NO', + component: 'Input', + label: t('鍗曟嵁缂栫爜'), + colProps: { + span: 12, + }, + show: false, + }, + { + field: 'STATUS', + label: t('鐘舵��'), + component: 'ApiSelect', + colProps: { span: 8 }, + componentProps: { + api: optionsListApiMdtlStatus, + resultField: 'Data', + labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', + valueField: 'Value', + // onChange: (e, v) => { + // alert(e) + // console.log('ApiSelect====>:', e, v); // }, - onSelect: onSelect, - onSelectAll: onSelectAll, - } - }); - const [register, { setModalProps, closeModal }] = useModalInner((data) => { - setModalProps({ confirmLoading: false }); - data && onDataReceive(data); - }); - //var Mdtl_Data = ref([] as iWMS_COUNT_MDTL[]) - - async function onDataReceive(data) { - // pagination.value = { pageSize: 50 }; - console.log('Data Received', data); - COUNT_NO.value = data.data.COUNT_NO - //鏂瑰紡1; - // setFieldsValue({ - // COUNT_NO: data.data.COUNT_NO, + }, + }, + { + field: 'RESULT', + label: t('缁撴灉'), + component: 'ApiSelect', + colProps: { span: 8 }, + componentProps: { + api: optionsListApiMdtlResult, + resultField: 'Data', + labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', + valueField: 'Value', + // onChange: (e, v) => { + // alert(e) + // console.log('ApiSelect====>:', e, v); + // }, + }, + }, + ]; + export default defineComponent({ + components: { BasicModal, BasicForm, BasicTable, TableAction }, + props: { + userData: { type: Object }, + }, + emit: ['success', 'register'], + setup(_, { emit }) { + const modelRef = ref({}); + const tableRef = ref<Nullable<TableActionType>>(null); + const canResize = ref(false); + const loading = ref(true); + const striped = ref(true); + const border = ref(true); + //const pagination = ref<any>(false); + // const [ + // registerForm, + // { + // setFieldsValue, + // validateFields + // // setProps + // //updateSchema, + // //validate + // }, + // ] = useForm({ + // labelWidth: 120, + // schemas, + // showActionButtonGroup: false, + // actionColOptions: { + // span: 24, + // }, // }); - //Mdtl_Data.value = await getMdtlListByPage(data.data.COUNT_NO) - // if (Mdtl_Data != null) { - // loading.value = false - // } - // // 鏂瑰紡2 - //modelRef.value = { field2: data.data, field1: data.info }; - // const treeData = await getTreeList(); - // updateSchema([ - // { - // field: 'USER_PWD', - // show: !unref(false), - // }, - // { - // field: 'ORG_CODE', - // componentProps: { treeData }, - // }, - // ]); - // setProps({ - // model:{ field2: data.data, field1: data.info } - // }) - } + const checkedKeys = ref<Array<string | number>>([]); + let COUNT_NO = ref(''); + const [registerTable, { reload, getForm }] = useTable({ + title: t('鐗╂枡鍒楄〃'), + api: getMdtlListByPage, + columns: MdtlColumns, + formConfig: { + labelWidth: 120, + schemas: schemas, + }, - // function handleVisibleChange(v) { - // v && props.userData && nextTick(() => onDataReceive(props.userData)); - // } + useSearchForm: true, + showTableSetting: true, + bordered: true, + canResize: true, + showIndexColumn: false, + rowKey: 'ITEM_CODE', + searchInfo: { COUNT_NO }, + rowSelection: { + selectedRowKeys: checkedKeys, - async function handleSubmit() { - try { - - // var values = ''; - // values=checkedKeys.value.join(',') - closeModal(); - emit('success', { - isUpdate: unref(false), - //values: { values, id: 0 }, - }); - - } finally { + type: 'checkbox', + // getCheckboxProps(record: Recordable) { + // // Demo: 绗竴琛岋紙id涓�0锛夌殑閫夋嫨妗嗙鐢� + // if (record.id === '0') { + // return { disabled: true }; + // } else { + // return { disabled: false }; + // } + // }, + onSelect: onSelect, + onSelectAll: onSelectAll, + }, + }); + const [register, { setModalProps, closeModal }] = useModalInner((data) => { setModalProps({ confirmLoading: false }); + data && onDataReceive(data); + }); + //var Mdtl_Data = ref([] as iWMS_COUNT_MDTL[]) + + async function onDataReceive(data) { + // pagination.value = { pageSize: 50 }; + console.log('Data Received', data); + COUNT_NO.value = data.data.COUNT_NO; + //鏂瑰紡1; + // setFieldsValue({ + // COUNT_NO: data.data.COUNT_NO, + // }); + //Mdtl_Data.value = await getMdtlListByPage(data.data.COUNT_NO) + // if (Mdtl_Data != null) { + // loading.value = false + // } + // // 鏂瑰紡2 + //modelRef.value = { field2: data.data, field1: data.info }; + // const treeData = await getTreeList(); + // updateSchema([ + // { + // field: 'USER_PWD', + // show: !unref(false), + // }, + // { + // field: 'ORG_CODE', + // componentProps: { treeData }, + // }, + // ]); + // setProps({ + // model:{ field2: data.data, field1: data.info } + // }) } - } - function onSelect(record, selected) { - if (selected) { - checkedKeys.value = [...checkedKeys.value, record.ITEM_CODE]; - } else { - checkedKeys.value = checkedKeys.value.filter((ITEM_CODE) => ITEM_CODE !== record.ITEM_CODE); + + // function handleVisibleChange(v) { + // v && props.userData && nextTick(() => onDataReceive(props.userData)); + // } + + async function handleSubmit() { + try { + // var values = ''; + // values=checkedKeys.value.join(',') + closeModal(); + emit('success', { + isUpdate: unref(false), + //values: { values, id: 0 }, + }); + } finally { + setModalProps({ confirmLoading: false }); + } } - } - function onSelectAll(selected, selectedRows, changeRows) { - const changeIds = changeRows.map((item) => item.ITEM_CODE); - if (selected) { - checkedKeys.value = [...checkedKeys.value, ...changeIds]; - } else { - checkedKeys.value = checkedKeys.value.filter((ITEM_CODE) => { - return !changeIds.includes(ITEM_CODE); - }); + function onSelect(record, selected) { + if (selected) { + checkedKeys.value = [...checkedKeys.value, record.ITEM_CODE]; + } else { + checkedKeys.value = checkedKeys.value.filter( + (ITEM_CODE) => ITEM_CODE !== record.ITEM_CODE, + ); + } } - } - // async function handleSelect() { - // var data = await validateFields(); - // Mdtl_Data.value = await getMdtlListByPage(data) - // } - let arr: any[] = []; - function aoaToExcel() { - arr = [] - var col = getForm().getFieldsValue(); - col.COUNT_NO = COUNT_NO.value; - getMdtlListByPageOut(col).then((res) => { - res.forEach(element => { - let start = '' - switch (element.STATUS) { - case 0: - start = '寰呯洏鐐�'; - break; - case 1: - start = '宸茬洏鐐�'; - break; - default: - break; - } - let result = '' - switch (element.RESULT) { - case 0: - result = '鏃犵粨鏋�'; - break; - case 1: - result = '骞冲笎'; - break; - case 2: - result = '鐩樼泩'; - break; - case 3: - result = '鐩樹簭'; - break; - default: - break; - } - arr.push({ - '鐗╂枡缂栫爜': element.ITEM_CODE, - '鎿嶄綔鏃堕棿': element.UPDATE_TIME, - '鏉$爜': element.SN, - '鍌ㄤ綅浠g爜': element.LOCATION_CODE, - '鐗╂枡鍚嶇О': element.ITEM_NAME, - '鐘舵��': start, - '缁撴灉': result, - '搴撳瓨鏁伴噺': element.QTY, - '鐩樼偣鏁伴噺': element.ACT_QTY, - '鏈洏鐐规暟閲�': element.NOT_QTY, + function onSelectAll(selected, selectedRows, changeRows) { + const changeIds = changeRows.map((item) => item.ITEM_CODE); + if (selected) { + checkedKeys.value = [...checkedKeys.value, ...changeIds]; + } else { + checkedKeys.value = checkedKeys.value.filter((ITEM_CODE) => { + return !changeIds.includes(ITEM_CODE); + }); + } + } + // async function handleSelect() { + // var data = await validateFields(); + // Mdtl_Data.value = await getMdtlListByPage(data) + // } + let arr: any[] = []; + function aoaToExcel() { + arr = []; + var col = getForm().getFieldsValue(); + col.COUNT_NO = COUNT_NO.value; + getMdtlListByPageOut(col).then((res) => { + res.forEach((element) => { + let start = ''; + switch (element.STATUS) { + case 0: + start = '寰呯洏鐐�'; + break; + case 1: + start = '宸茬洏鐐�'; + break; + default: + break; + } + let result = ''; + switch (element.RESULT) { + case 0: + result = '鏃犵粨鏋�'; + break; + case 1: + result = '骞冲笎'; + break; + case 2: + result = '鐩樼泩'; + break; + case 3: + result = '鐩樹簭'; + break; + default: + break; + } + arr.push({ + 鐗╂枡缂栫爜: element.ITEM_CODE, + 鎿嶄綔鏃堕棿: element.UPDATE_TIME, + 鏉$爜: element.SN, + 鍌ㄤ綅浠g爜: element.LOCATION_CODE, + 鐗╂枡鍚嶇О: element.ITEM_NAME, + 鐘舵��: start, + 缁撴灉: result, + 搴撳瓨鏁伴噺: element.QTY, + 鐩樼偣鏁伴噺: element.ACT_QTY, + 鏈洏鐐规暟閲�: element.NOT_QTY, + }); + }); + const arrHeader = MdtlColumns.map((column) => column.title); + const arrData = arr.map((item) => { + return Object.keys(item).map((key) => item[key]); + }); + // 淇濊瘉data椤哄簭涓巋eader涓�鑷� + aoaToSheetXlsx({ + data: arrData, + header: arrHeader, + filename: '鐩樼偣鐗╁搧鏄庣粏.xlsx', }); }); - const arrHeader = MdtlColumns.map((column) => column.title); - const arrData = arr.map((item) => { - return Object.keys(item).map((key) => item[key]); - }); - // 淇濊瘉data椤哄簭涓巋eader涓�鑷� - aoaToSheetXlsx({ - data: arrData, - header: arrHeader, - filename: '鐩樼偣鐗╁搧鏄庣粏.xlsx' - }); - }) - - } - return { - register, - schemas, - //registerForm, - model: modelRef, - handleSubmit, - registerTable, - onSelect, - onSelectAll, - //setFieldsValue, - //handleSelect, - //validateFields, - //Mdtl_Data, - tableRef, - //pagination, - canResize, - loading, - striped, - border, - t, - aoaToExcel - }; - }, -}); + } + return { + register, + schemas, + //registerForm, + model: modelRef, + handleSubmit, + registerTable, + onSelect, + onSelectAll, + //setFieldsValue, + //handleSelect, + //validateFields, + //Mdtl_Data, + tableRef, + //pagination, + canResize, + loading, + striped, + border, + t, + aoaToExcel, + }; + }, + }); </script> -- Gitblit v1.9.3