From f1d47feeee1ddb5751847b71f789f2c3b822ec32 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 23 六月 2024 23:55:33 +0800 Subject: [PATCH] 详情页面优化 --- src/views/tigerprojects/bas/MaterialInfo/index.vue | 170 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 100 insertions(+), 70 deletions(-) diff --git a/src/views/tigerprojects/bas/MaterialInfo/index.vue b/src/views/tigerprojects/bas/MaterialInfo/index.vue index 18ce463..531396f 100644 --- a/src/views/tigerprojects/bas/MaterialInfo/index.vue +++ b/src/views/tigerprojects/bas/MaterialInfo/index.vue @@ -2,8 +2,8 @@ <div> <BasicTable @register="registerTable"> <template #toolbar> - <a-button type="primary" @click="handleRenew"> 鎵归噺鏇存柊 </a-button> - <a-button type="primary" @click="handleCreate"> 鏂板鐗╂枡 </a-button> + <!-- <a-button type="primary" @click="handleRenew"> 鎵归噺鏇存柊 </a-button> --> + <a-button type="primary" @click="handleCreate" v-if="HasRole"> 鏂板鐗╂枡 </a-button> </template> <template #action="{ record }"> <!-- b87079a98deb456a9cfa506bfd1a7bc6 --> @@ -22,6 +22,11 @@ confirm: handleDelete.bind(null, record), }, }, + // { + // icon: 'binding|svg', + // tooltip: '缁戝畾宸ヨ壓', + // onClick: handleBinding.bind(null, record), + // }, ]" /> </template> @@ -30,8 +35,7 @@ <MaterialModal @register="registerModal" /> </div> </template> -<script lang="ts"> - import { defineComponent } from 'vue'; +<script lang="ts" setup> import { BasicTable, useTable, TableAction } from '/@/components/Table'; import { useDrawer } from '/@/components/Drawer'; import MaterialDrawer from './MaterialDrawer.vue'; @@ -39,73 +43,99 @@ import { columns, searchFormSchema } from './Material.data'; import { DeleteMaterial, getMaterialListByPage } from '../../../../api/tigerapi/bas/MaterialInfo'; import { useModal } from '/@/components/Modal'; + import { getListByPage } from '/@/api/tigerapi/system'; + import { useGo } from '/@/hooks/web/usePage'; + import { useRouter } from 'vue-router'; + import { onMounted, ref } from 'vue'; + import { getMenuButtons } from '/@/api/sys/menu'; +import { useUserStore } from '/@/store/modules/user'; - export default defineComponent({ - name: 'MaterialManagement', - components: { BasicTable, MaterialDrawer, TableAction, MaterialModal }, - setup() { - const [registerDrawer, { openDrawer }] = useDrawer(); - const [registerModal, { openModal: openMaterialModal }] = useModal(); - const [registerTable, { reload }] = useTable({ - title: '鐗╂枡鍒楄〃', - api: getMaterialListByPage, - columns, - formConfig: { - labelWidth: 120, - schemas: searchFormSchema, - }, - useSearchForm: true, - showTableSetting: true, - bordered: true, - showIndexColumn: false, - actionColumn: { - width: 100, - title: '鎿嶄綔', - dataIndex: 'action', - slots: { customRender: 'action' }, - }, - }); - function handleCreate() { - openDrawer(true, { - isUpdate: false, - }); - } - function handleRenew() { - openMaterialModal(true, { - data: 'content', - info: 'Info', - }); - } - function handleSuccess() { - reload(); - } - - function handleEdit(record: Recordable) { - openDrawer(true, { - record, - isUpdate: true, - }); - } - function handleDelete(record: Recordable) { - console.log(record); - //鍒犻櫎鐗╂枡 - const apiAction = DeleteMaterial(record); - apiAction.then((action) => { - if (action.IsSuccessed) { - reload(); - } - }); - } - return { - registerTable, - registerDrawer, - registerModal, - handleCreate, - handleEdit, - handleDelete, - handleRenew, - handleSuccess, - }; + const go = useGo(); + const { currentRoute } = useRouter(); + const [registerDrawer, { openDrawer }] = useDrawer(); + const [registerModal, { openModal: openMaterialModal }] = useModal(); + const buttons = ref([]); + const HasRole = ref(false); + const [registerTable, { reload }] = useTable({ + title: '鐗╂枡鍒楄〃', + api: getListByPage, + searchInfo: { TABLE_NAME: 'BAS_ITEM' }, + columns, + formConfig: { + labelWidth: 120, + schemas: searchFormSchema, + }, + useSearchForm: true, + showTableSetting: true, + bordered: true, + showIndexColumn: false, + actionColumn: { + width: 100, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, }, }); + function handleCreate() { + openDrawer(true, { + isUpdate: false, + }); + } + function handleRenew() { + openMaterialModal(true, { + data: 'content', + info: 'Info', + }); + } + function handleSuccess() { + reload(); + } + + function handleEdit(record: Recordable) { + openDrawer(true, { + record, + isUpdate: true, + }); + } + function handleDelete(record: Recordable) { + console.log(record); + //鍒犻櫎鐗╂枡 + const apiAction = DeleteMaterial(record); + apiAction.then((action) => { + if (action.IsSuccessed) { + reload(); + } + }); + } + + onMounted(async () => { + buttons.value = (await getMenuButtons(currentRoute.value.meta.menuCode as string)).Data.Items; + const roles = useUserStore().getUserInfo.roles; + HasRole.value = roles.some((item) => item.MENU_CODE === buttons.value[0]['FUNC_CODE']); + }); + + /** + * @description: 璺宠浆浜у搧宸ヨ壓缁戝畾椤甸潰 + * @param {*} record + * @return {*} + */ + function handleBinding(record: Recordable) { + const id = { + ID: record.ID, + Name: 'ProdRouteBinding', + CODE: record.ITEM_CODE, + Title: `浜у搧[${record.ITEM_CODE}]宸ヨ壓缁戝畾`, + colSlots: [], + crudColSlots: [], + dense: true, + pageTitle: `浜у搧宸ヨ壓缁戝畾`, + pageContent: `杩欓噷鏄鐞嗕骇鍝佺殑宸ヨ壓缁戝畾锛屼竴涓骇鍝佸彲浠ョ粦瀹氬涓伐鑹鸿矾绾縛, + }; + go(`/ProdRouteBinding/CP/${encodeURI(JSON.stringify(id))}`); + // let obj = JSON.stringify(id); + // push({ + // path: '/ProdRouteBinding', + // state: {obj}, //HTML5 History API 鐨勪紶鍙傦紝鍙傛暟闅愯棌涓嶅湪鍦板潃鏍忔樉绀猴紙history锛� + // }) + } </script> -- Gitblit v1.9.3