From 17925215d37dd97d744c9296b185aeb16d3e44fb Mon Sep 17 00:00:00 2001
From: Ludc <2870569285@qq.com>
Date: 星期二, 18 十一月 2025 20:06:12 +0800
Subject: [PATCH] URL请求路径安全校验
---
Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/index.vue.btl | 143 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 143 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/index.vue.btl b/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/index.vue.btl
new file mode 100644
index 0000000..5408645
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/index.vue.btl
@@ -0,0 +1,143 @@
+<template>
+ <div>
+ <BasicTable @register="registerTable">
+ <template \#toolbar>
+ <a-button type="primary" v-auth="'${modelCode!}_add'" @click="handleCreate">
+ 鏂板
+ </a-button>
+ </template>
+ <template \#bodyCell="{ column, record }">
+ #for(x in prototypes) {
+ #if(isNotEmpty(x.dictCode)){
+ <template v-if="column.dataIndex === '${x.propertyName!}'">
+ {{ formatDictValue(options['${x.propertyName!}Data'], record.${x.propertyName!}) }}
+ </template>
+ #}
+ #}
+ <template v-if="column.dataIndex === 'action'">
+ <TableAction
+ :actions="[
+ {
+ auth: '${modelCode!}_view',
+ label: '鏌ョ湅',
+ color: 'success',
+ icon: 'clarity:info-standard-line',
+ onClick: handleView.bind(null, record),
+ },
+ {
+ auth: '${modelCode!}_edit',
+ label: '缂栬緫',
+ icon: 'clarity:note-edit-line',
+ onClick: handleEdit.bind(null, record),
+ },
+ {
+ label: '瀛愯〃閰嶇疆',
+ icon: 'clarity:note-edit-line',
+ onClick: handleSubConfig.bind(null, record),
+ },
+ {
+ auth: '${modelCode!}_delete',
+ label: '鍒犻櫎',
+ icon: 'ant-design:delete-outlined',
+ color: 'error',
+ popConfirm: {
+ title: '鏄惁纭鍒犻櫎',
+ confirm: handleDelete.bind(null, record),
+ },
+ },
+ ]"
+ />
+ </template>
+ </template>
+ </BasicTable>
+ <${modelClass!}Modal @register="registerModal" @success="handleSuccess" />
+ <${subModel.modelClass!}Sub @register="registerDrawer" />
+
+ </div>
+</template>
+<script lang="ts" setup name="${modelClass!}">
+ import { ref } from 'vue';
+ import ${modelClass!}Modal from './${modelClass!}Modal.vue';
+ import { BasicTable, useTable, TableAction } from '/@/components/Table';
+ import { getList, remove } from '/@/api/${serviceCode!}/${modelCode!}';
+ import { useModal } from '/@/components/Modal';
+ import { useDrawer } from '/@/components/Drawer';
+ import ${subModel.modelClass!}Sub from './${subModel.modelClass!}Sub.vue';
+ import { columns, searchFormSchema } from './${modelCode!}.data';
+ import { useMessage } from '/@/hooks/web/useMessage';
+ import { formatDictValue } from '/@/utils';
+ import { getDictList } from '/@/api/system/system';
+ //鍒濆鍖栧瓧鍏�
+ let options = ref({});
+ async function fetch() {
+ #for(x in prototypes) {
+ #if(isNotEmpty(x.dictCode)){
+ options.value['${x.propertyName!}Data'] = await getDictList({ code: '${x.dictCode!}' });
+ #}
+ #}
+ }
+ fetch();
+
+ const { createMessage } = useMessage();
+ const [registerModal, { openModal }] = useModal();
+ const [registerDrawer, { openDrawer }] = useDrawer();
+
+ const [registerTable, { reload }] = useTable({
+ api: getList,
+ rowKey: 'id',
+ columns,
+ formConfig: {
+ labelWidth: 120,
+ schemas: searchFormSchema,
+ baseColProps: { xl: 12, xxl: 8 },
+ },
+ useSearchForm: true,
+ actionColumn: {
+ width: 250,
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ },
+ });
+
+ function handleCreate() {
+ openModal(true, {
+ isDetail: false,
+ isUpdate: false,
+ });
+ }
+
+ function handleView(record: Recordable) {
+ openModal(true, {
+ record,
+ isUpdate: false,
+ isDetail: true,
+ });
+ }
+
+ function handleEdit(record: Recordable) {
+ openModal(true, {
+ record,
+ isDetail: false,
+ isUpdate: true,
+ });
+ }
+
+ function handleSubConfig(record: Recordable) {
+ openDrawer(true, {
+ mainId:record.id
+ });
+ }
+
+
+ async function handleDelete(record: Recordable) {
+ await remove({ ids: record.id });
+ createMessage.success('鎿嶄綔鎴愬姛');
+ reload();
+ }
+
+ function handleSuccess() {
+ //鎿嶄綔鎴愬姛鎻愮ず
+ createMessage.success('鎿嶄綔鎴愬姛');
+ reload();
+ }
+</script>
--
Gitblit v1.9.3