From 7d26ed0e19bf952e7c037b21bfd687759b46e851 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 25 六月 2024 19:21:33 +0800 Subject: [PATCH] 菜单更新 --- src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts | 7 + src/views/tigerprojects/system/menu/MenuDrawer.vue | 116 +++++++++++----------- src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts | 12 + src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts | 6 + src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts | 12 + src/views/tigerprojects/system/menu/index.vue | 46 +++++---- src/views/tigerprojects/system/menu/menu.data.ts | 28 ++-- src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts | 11 ++ src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts | 6 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts | 4 src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts | 7 + src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts | 12 + 12 files changed, 158 insertions(+), 109 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts index ab2713a..fa231d7 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts @@ -4,13 +4,13 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-23 18:41:06 + * @LastEditTime: 2024-06-25 18:29:58 */ import { Ref, h, unref } from 'vue'; import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system'; import { ActionItem, BasicColumn } from '/@/components/Table'; -import { isNullOrEmpty } from '/@/utils/is'; +import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; import { buildUUID } from '/@/utils/uuid'; import { useUserStore } from '/@/store/modules/user'; import { formatToDateTime } from '/@/utils/dateUtil'; @@ -73,9 +73,15 @@ * @return {*} */ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { - data[1].popConfirm.confirm = DftGrpDel.bind(null, args, params); + if (!isNullOrUnDef(data[1])) { + data[1].popConfirm.confirm = DftGrpDel.bind(null, args, params); + } return data; }, + /** + * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @return {*} + */ GetHomeUrl: () => { const param = { ID: 'BAS_DEFECT_GRP', colSlots: [], crudColSlots: [] }; return `/BAS_DEFECT_GRP/LC/${encodeURI(JSON.stringify(param))}`; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts index 97bb101..e9ad4a0 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts @@ -69,11 +69,22 @@ } return data; }, + /** + * @description: 寮瑰嚭閫夋嫨妗嗘垚鍔熻繑鍥炴柟娉� + * @param {*} d + * @param {*} u + * @return {*} + */ GetSelectSuccess: (d, u) => { return { ITEM_CODE: d.values['val'], }; }, + /** + * @description: 寮瑰嚭閫夋嫨妗嗘墦寮�鏂规硶 + * @param {Fn} openItemModal + * @return {*} + */ OpenSelectItem: (openItemModal: Fn) => { openItemModal(true, { title: '鐗╂枡鍒楄〃', diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts index cf5a5b2..b1609d0 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts @@ -43,6 +43,10 @@ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { return data; }, + /** + * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @return {*} + */ GetHomeUrl: () => { return `/BAS_LABEL_TEMP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_LABEL_TEMP', colSlots: [], crudColSlots: [] }))}`; }, diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts index 594f4d1..f6ddad1 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts @@ -4,13 +4,13 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-25 12:23:19 + * @LastEditTime: 2024-06-25 18:30:25 */ import { Ref } from 'vue'; import { DeleteEntity, getEntity } from '/@/api/tigerapi/system'; import { ActionItem, BasicColumn } from '/@/components/Table'; -import { isNullOrEmpty } from '/@/utils/is'; +import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; import { buildUUID } from '/@/utils/uuid'; import { useUserStore } from '/@/store/modules/user'; import { formatToDateTime } from '/@/utils/dateUtil'; @@ -66,7 +66,9 @@ */ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { /* 閲嶅啓鍒犻櫎鏂规硶 */ - data[1].popConfirm.confirm = custDel.bind(null, args, params); + if (!isNullOrUnDef(data[1])) { + data[1].popConfirm.confirm = custDel.bind(null, args, params); + } return data; }, /** @@ -108,6 +110,10 @@ data.value = _data2; } }, + /** + * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @return {*} + */ GetHomeUrl: () => { return `/BAS_PKG_RULE/LC/${encodeURI(JSON.stringify({ ID: 'BAS_PKG_RULE', colSlots: [], crudColSlots: [] }))}`; }, diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts index 63c5e63..35c6c91 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts @@ -4,10 +4,11 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-22 20:38:07 + * @LastEditTime: 2024-06-25 18:31:56 */ import { ActionItem, BasicColumn } from '/@/components/Table'; +import { isNullOrUnDef } from '/@/utils/is'; import { buildUUID } from '/@/utils/uuid'; function _default() { @@ -61,7 +62,9 @@ * @return {*} */ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { - data[0].onClick = pkgGrpEdit.bind(null, args[5], params); + if (!isNullOrUnDef(data[0])) { + data[0].onClick = pkgGrpEdit.bind(null, args[5], params); + } return data; }, }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts index 6883c59..a4aed52 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-22 00:58:43 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-24 15:50:42 + * @LastEditTime: 2024-06-25 18:30:43 */ /* * @Description: 涓嶈壇鍘熷洜鐩稿叧 @@ -18,7 +18,7 @@ import { Ref, h } from 'vue'; import { DeleteEntity, getEntity } from '/@/api/tigerapi/system'; import { ActionItem, BasicColumn } from '/@/components/Table'; -import { isNullOrEmpty } from '/@/utils/is'; +import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; import { buildUUID } from '/@/utils/uuid'; import { useUserStore } from '/@/store/modules/user'; import { formatToDateTime } from '/@/utils/dateUtil'; @@ -74,7 +74,9 @@ * @return {*} */ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { - data[1].popConfirm.confirm = rsnGrpDel.bind(null, args, params); + if (!isNullOrUnDef(data[1])) { + data[1].popConfirm.confirm = rsnGrpDel.bind(null, args, params); + } return data; }, /** @@ -115,6 +117,10 @@ data.value = _data2; } }, + /** + * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @return {*} + */ GetHomeUrl: () => { return `/BAS_REASON_GRP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_REASON_GRP', colSlots: [], crudColSlots: [] }))}`; }, diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts index d158aea..cc90c02 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts @@ -4,12 +4,13 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-24 15:50:49 + * @LastEditTime: 2024-06-25 18:32:20 */ import { ActionItem, BasicColumn } from '/@/components/Table'; import { buildUUID } from '/@/utils/uuid'; import { useI18n } from '/@/hooks/web/useI18n'; +import { isNullOrUnDef } from '/@/utils/is'; const { t } = useI18n(); @@ -64,7 +65,9 @@ * @return {*} */ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { - data[0].onClick = rsnGrpEdit.bind(null, args, params); //鏇挎崲涓婚〉闈㈢紪杈戞寜閽柟娉曞彉涓鸿烦杞埌楂樼骇椤甸潰 + if (!isNullOrUnDef(data[0])) { + data[0].onClick = rsnGrpEdit.bind(null, args, params); //鏇挎崲涓婚〉闈㈢紪杈戞寜閽柟娉曞彉涓鸿烦杞埌楂樼骇椤甸潰 + } return data; }, GetSelectSuccess: (d, u) => { diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts index c1b3f1f..b4c7f43 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-23 00:38:02 + * @LastEditTime: 2024-06-25 18:30:51 */ import { GetRoutePTree } from '/@/api/tigerapi/mes/router'; @@ -38,6 +38,10 @@ } return icon; }, + /** + * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl + * @return {*} + */ GetHomeUrl: () => { return `/V_BAS_PROD/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD', colSlots: [], crudColSlots: [] }))}`; }, diff --git a/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts b/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts index eccc002..6918bf2 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-24 15:50:03 + * @LastEditTime: 2024-06-25 18:37:56 */ import { ActionItem, BasicColumn } from '/@/components/Table'; @@ -21,8 +21,8 @@ Name: 'ProdRouteBinding', CODE: params['record'].ITEM_CODE, Title: `浜у搧[${params['record'].ITEM_CODE}]宸ヨ壓缁戝畾`, - colSlots: [], - crudColSlots: [], + colSlots: [], /* 琛ㄦ牸鍐呯殑鏌ヨ琛ㄥ崟瀛楁鐨勬彃妲藉垪琛紝涓�鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */ + crudColSlots: [], /* 澧炲垹鏀硅〃鍗曞瓧娈电殑鎻掓Ы鍒楄〃锛屼竴鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */ dense: true, pageTitle: `浜у搧宸ヨ壓缁戝畾`, pageContent: `杩欓噷鏄鐞嗕骇鍝佺殑宸ヨ壓缁戝畾锛屼竴涓骇鍝佸彲浠ョ粦瀹氬涓伐鑹鸿矾绾縛, diff --git a/src/views/tigerprojects/system/menu/MenuDrawer.vue b/src/views/tigerprojects/system/menu/MenuDrawer.vue index aa3d8ac..3707584 100644 --- a/src/views/tigerprojects/system/menu/MenuDrawer.vue +++ b/src/views/tigerprojects/system/menu/MenuDrawer.vue @@ -1,3 +1,11 @@ +<!-- + * @Description: file content + * @Author: Ben Lin + * @version: + * @Date: 2024-06-18 15:09:48 + * @LastEditors: Ben Lin + * @LastEditTime: 2024-06-25 18:55:09 +--> <template> <BasicDrawer v-bind="$attrs" @@ -10,68 +18,60 @@ <BasicForm @register="registerForm" /> </BasicDrawer> </template> -<script lang="ts"> - import { defineComponent, ref, computed, unref } from 'vue'; +<script lang="ts" setup> + import { ref, computed, unref } from 'vue'; import { BasicForm, useForm } from '/@/components/Form/index'; import { formSchema } from './menu.data'; import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; - import { getMenuList, SaveMenu } from '/@/api/tigerapi/system'; - export default defineComponent({ - name: 'MenuDrawer', - components: { BasicDrawer, BasicForm }, - emits: ['success', 'register'], - setup(_, { emit }) { - const isUpdate = ref(true); - - const [registerForm, { resetFields, setFieldsValue, updateSchema, validate }] = useForm({ - labelWidth: 100, - schemas: formSchema, - showActionButtonGroup: false, - baseColProps: { lg: 12, md: 24 }, - }); - - const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { - resetFields(); - setDrawerProps({ confirmLoading: false }); - isUpdate.value = !!data?.isUpdate; - console.log(data.record); - if (unref(isUpdate)) { - setFieldsValue({ - ...data.record, - }); - } - const treeData = await getMenuList(); - updateSchema({ - field: 'parentMenu', - componentProps: { treeData }, - }); - }); - - const getTitle = computed(() => (!unref(isUpdate) ? '鏂板鑿滃崟' : '缂栬緫鑿滃崟')); - - async function handleSubmit() { - try { - const values = await validate(); - setDrawerProps({ confirmLoading: true }); - // TODO custom api - //淇濆瓨鑿滃崟 - const apiAction = SaveMenu(values, unref(isUpdate)); - apiAction.then((action) => { - if (action.IsSuccessed) { - closeDrawer(); - emit('success', { - values: { ...values }, - }); - } - }); - } finally { - setDrawerProps({ confirmLoading: false }); - } - } - - return { registerDrawer, registerForm, getTitle, handleSubmit }; - }, + const emit = defineEmits(['success', 'register']); + const isUpdate = ref(true); + const menuName = ref(''); + const [registerForm, { resetFields, setFieldsValue, updateSchema, validate }] = useForm({ + labelWidth: 100, + schemas: formSchema, + showActionButtonGroup: false, + baseColProps: { lg: 12, md: 24 }, }); + + const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { + resetFields(); + setDrawerProps({ confirmLoading: false }); + isUpdate.value = !!data?.isUpdate; + menuName.value = data?.menuName; + console.log(data.record); + if (unref(isUpdate)) { + setFieldsValue({ + ...data.record, + }); + } + const treeData = await getMenuList({ menuName: data?.menuName, status: undefined }); + updateSchema({ + field: 'parentMenu', + componentProps: { treeData }, + }); + }); + + const getTitle = computed(() => (!unref(isUpdate) ? '鏂板鑿滃崟' : '缂栬緫鑿滃崟')); + + async function handleSubmit() { + try { + const values = await validate(); + setDrawerProps({ confirmLoading: true }); + // TODO custom api + //淇濆瓨鑿滃崟 + SaveMenu(values, unref(isUpdate)).then((action) => { + if (action.IsSuccessed) { + closeDrawer(); + emit('success', { + values: { ...values }, + menuName: menuName.value, + }); + } + }); + } finally { + setDrawerProps({ confirmLoading: false }); + } + } </script> diff --git a/src/views/tigerprojects/system/menu/index.vue b/src/views/tigerprojects/system/menu/index.vue index fabbd90..2b178b9 100644 --- a/src/views/tigerprojects/system/menu/index.vue +++ b/src/views/tigerprojects/system/menu/index.vue @@ -15,14 +15,14 @@ @expanded-rows-change="onExpandedRChg" > <template #toolbar> - <a-button type="primary" @click="handleCreate"> 鏂板鑿滃崟 </a-button> + <a-button type="primary" @click="handleCreate('BS 鑿滃崟')"> 鏂板鑿滃崟 </a-button> </template> <template #action="{ record }"> <TableAction :actions="[ { icon: 'clarity:note-edit-line', - onClick: handleEdit.bind(null, record), + onClick: handleEdit.bind(null, record, 'BS 鑿滃崟'), }, { icon: 'ant-design:delete-outlined', @@ -47,14 +47,14 @@ @expanded-rows-change="onExpandedRChg" > <template #toolbar> - <a-button type="primary" @click="handleCreate"> 鏂板鑿滃崟 </a-button> + <a-button type="primary" @click="handleCreate('PDA')"> 鏂板鑿滃崟 </a-button> </template> <template #action="{ record }"> <TableAction :actions="[ { icon: 'clarity:note-edit-line', - onClick: handleEdit.bind(null, record), + onClick: handleEdit.bind(null, record, 'PDA'), }, { icon: 'ant-design:delete-outlined', @@ -96,14 +96,14 @@ api: getMenuList, searchInfo: { menuName: 'BS 鑿滃崟' }, columns, - // formConfig: { - // labelWidth: 120, - // schemas: searchFormSchema, - // }, + formConfig: { + labelWidth: 120, + schemas: searchFormSchema, + }, isTreeTable: true, // pagination: false, // striped: false, - // // useSearchForm: true, + useSearchForm: true, showTableSetting: true, // bordered: true, // showIndexColumn: false, @@ -118,20 +118,20 @@ rowKey: 'id', }); - const [registerTableSecond, { reloadSecond, expandAllSecond, expandRowsSecond }] = useTable({ + const [registerTableSecond, { reload:reloadSecond, expandAll:expandAllSecond, expandRows:expandRowsSecond }] = useTable({ // const [registerTable, { reload, expandRows }] = useTable({ title: '鑿滃崟鍒楄〃', api: getMenuList, searchInfo: { menuName: 'PDA' }, columns, - // formConfig: { - // labelWidth: 120, - // schemas: searchFormSchema, - // }, + formConfig: { + labelWidth: 120, + schemas: searchFormSchema, + }, isTreeTable: true, // pagination: false, // striped: false, - // // useSearchForm: true, + useSearchForm: true, showTableSetting: true, // bordered: true, // showIndexColumn: false, @@ -146,16 +146,18 @@ rowKey: 'id', }); - function handleCreate() { + function handleCreate(menuName: string) { openDrawer(true, { isUpdate: false, + menuName: menuName, }); } - function handleEdit(record: Recordable) { + function handleEdit(record: Recordable, menuName: string) { openDrawer(true, { record, isUpdate: true, + menuName: menuName, }); } @@ -170,15 +172,19 @@ }); } - function handleSuccess({ values }) { - reload(); + function handleSuccess(d) { + if (d.menuName == 'PDA') { + reloadSecond(); + } else { + reload(); + } nextTick(() => { setTimeout(() => { var tdList = document.querySelectorAll( '.ant-table-cell.ant-table-cell-ellipsis.ant-table-cell-with-append', ); for (var i = 0; i < tdList.length; i++) { - if (tdList[i].attributes['title'].nodeValue == values.menuName) { + if (tdList[i].attributes['title'].nodeValue == d.values.menuName) { tdList[i].scrollIntoView(); } } diff --git a/src/views/tigerprojects/system/menu/menu.data.ts b/src/views/tigerprojects/system/menu/menu.data.ts index 8458342..effe051 100644 --- a/src/views/tigerprojects/system/menu/menu.data.ts +++ b/src/views/tigerprojects/system/menu/menu.data.ts @@ -78,18 +78,18 @@ component: 'Input', colProps: { span: 8 }, }, - { - field: 'status', - label: '鐘舵��', - component: 'Select', - componentProps: { - options: [ - { label: '鍚敤', value: '1' }, - { label: '鍋滅敤', value: '0' }, - ], - }, - colProps: { span: 8 }, - }, + // { + // field: 'status', + // label: '鐘舵��', + // component: 'Select', + // componentProps: { + // options: [ + // { label: '鍚敤', value: '1' }, + // { label: '鍋滅敤', value: '0' }, + // ], + // }, + // colProps: { span: 8 }, + // }, ]; export const formSchema: FormSchema[] = [ @@ -159,14 +159,14 @@ field: 'btnType', label: '鎸夐挳绫诲瀷', component: 'ApiSelect', - defaultValue: '', + defaultValue: 0, componentProps: { api: GetEnum, params: { name: 'SYS_MENU+BUTTON_TYPEs' }, resultField: 'Data', labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', valueField: 'Value', - placeholder: '璇烽�夋嫨鎸夐挳绫诲瀷' + placeholder: '璇烽�夋嫨鎸夐挳绫诲瀷', }, ifShow: ({ values }) => isButton(values.func_type), }, -- Gitblit v1.9.3