From 8f5009a3d57821c2c97690b8419e428967b5e981 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 03 六月 2024 22:48:41 +0800 Subject: [PATCH] 低代码更新 --- src/views/components/ItemModal.vue | 261 ++++++++++++++++++--------------------------------- 1 files changed, 92 insertions(+), 169 deletions(-) diff --git a/src/views/components/ItemModal.vue b/src/views/components/ItemModal.vue index 7295093..1f59268 100644 --- a/src/views/components/ItemModal.vue +++ b/src/views/components/ItemModal.vue @@ -19,11 +19,10 @@ </div> </BasicModal> </template> -<script lang="ts"> - import { defineComponent, ref, unref } from 'vue'; +<script lang="ts" setup> + import { 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, BasicColumn, TableAction, useTable } from '/@/components/Table'; import { getItemListByPage } from '/@/api/tigerapi/wms/inventory'; import { useI18n } from '/@/hooks/web/useI18n'; @@ -41,7 +40,7 @@ ]; //鐗╂枡鍒楄〃 - export const ItemColumns: BasicColumn[] = [ + const ItemColumns: BasicColumn[] = [ { title: t('鐗╂枡缂栫爜'), dataIndex: 'ITEM_CODE', @@ -56,174 +55,98 @@ sorter: true, width: 180, }, - // { - // title: t('鐗╂枡鎻忚堪'), - // dataIndex: 'ITEM_DESC', - // resizable:true, - // }, - // { - // title: t('鐩樼偣鐘舵��', - // dataIndex: 'STATUS', - // resizable:true, - // }, - // { - // title: t('鐩樼偣缁撴灉', - // dataIndex: 'RESULT', - // resizable:true, - // }, - // { - // title: t('WMS鏁伴噺', - // dataIndex: 'QTY', - // resizable:true, - // }, - // { - // title: t('ACT_QTY', - // dataIndex: 'COUNT_TYPE', - // resizable:true, - // } ]; - export default defineComponent({ - components: { BasicModal, BasicForm, BasicTable, TableAction }, - props: { - userData: { type: Object }, + + const emit = defineEmits(['success', 'register']); + const checkedKeys = ref<Array<string | number>>([]); + const [registerTable, { reload, getForm }] = useTable({ + title: '鍒楄〃淇℃伅', + api: getItemListByPage, + columns: ItemColumns, + formConfig: { + labelWidth: 120, + schemas, }, - emit: ['success', 'register'], - setup(_, { emit }) { - const modelRef = ref({}); - const [ - registerForm, - { - // setFieldsValue, - // setProps - updateSchema, - //validate - }, - ] = useForm({ - labelWidth: 120, - schemas, - showActionButtonGroup: false, - actionColOptions: { - span: 24, - }, - }); - const checkedKeys = ref<Array<string | number>>([]); - const [registerTable, { reload }] = useTable({ - title: '鐗╂枡鍒楄〃', - api: getItemListByPage, - columns: ItemColumns, - formConfig: { - labelWidth: 120, - schemas, - }, - useSearchForm: true, - showTableSetting: true, - rowKey: 'ITEM_CODE', - rowSelection: { - selectedRowKeys: checkedKeys, + useSearchForm: true, + showTableSetting: false, + rowKey: 'ITEM_CODE', + rowSelection: { + selectedRowKeys: checkedKeys, - type: 'checkbox', - // getCheckboxProps(record: Recordable) { - // // Demo: 绗竴琛岋紙id涓�0锛夌殑閫夋嫨妗嗙鐢� - // if (record.id === '0') { - // return { disabled: true }; - // } else { - // return { disabled: false }; - // } - // }, - onSelect: onSelect, - onSelectAll: onSelectAll, - }, - bordered: true, - showIndexColumn: false, - // actionColumn: { - // width: 80, - // title: '鎿嶄綔', - // dataIndex: 'action', - // slots: { customRender: 'action' }, - // fixed: 'right' //undefined, - // }, - }); - const [register, { setModalProps, closeModal }] = useModalInner((data) => { - setModalProps({ confirmLoading: false }); - data && onDataReceive(data); - }); - - async function onDataReceive(data) { - console.log('Data Received', data); - // 鏂瑰紡1; - // setFieldsValue({ - // field2: data.data, - // field1: data.info, - // }); - - // // 鏂瑰紡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 handleVisibleChange(v) { - // v && props.userData && nextTick(() => onDataReceive(props.userData)); - // } - - async function handleSubmit() { - try { - var values = ''; - // checkedKeys.value.forEach(element => { - // values+=element; - // }); - values = checkedKeys.value.join(','); - closeModal(); - emit('success', { - isUpdate: unref(false), - values: { values, id: 0 }, - }); - } finally { - setModalProps({ confirmLoading: false }); - } - } - 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 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); - }); - } - } - - return { - register, - schemas, - registerForm, - model: modelRef, - handleSubmit, - registerTable, - onSelect, - onSelectAll, - }; + type: 'checkbox', + // getCheckboxProps(record: Recordable) { + // // Demo: 绗竴琛岋紙id涓�0锛夌殑閫夋嫨妗嗙鐢� + // if (record.id === '0') { + // return { disabled: true }; + // } else { + // return { disabled: false }; + // } + // }, + onSelect: onSelect, + onSelectAll: onSelectAll, }, + bordered: true, + showIndexColumn: false, + // actionColumn: { + // width: 80, + // title: '鎿嶄綔', + // dataIndex: 'action', + // slots: { customRender: 'action' }, + // fixed: 'right' //undefined, + // }, }); + const [register, { setModalProps, closeModal }] = useModalInner((data) => { + setModalProps({ confirmLoading: false }); + data && onDataReceive(data); + }); + + async function onDataReceive(data) { + console.log('Data Received', data); + // 鏂瑰紡1; + // setFieldsValue({ + // field2: data.data, + // field1: data.info, + // }); + checkedKeys.value = []; + getForm().resetFields(); + reload(); + } + + // function handleVisibleChange(v) { + // v && props.userData && nextTick(() => onDataReceive(props.userData)); + // } + + async function handleSubmit() { + try { + var values = ''; + // checkedKeys.value.forEach(element => { + // values+=element; + // }); + values = checkedKeys.value.join(','); + closeModal(); + emit('success', { + isUpdate: unref(false), + values: { values, id: 0 }, + }); + } finally { + setModalProps({ confirmLoading: false }); + } + } + 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 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); + }); + } + } </script> -- Gitblit v1.9.3