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/Modal.vue.btl | 90 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/Modal.vue.btl b/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/Modal.vue.btl
new file mode 100644
index 0000000..84af854
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/lemon/sub/Modal.vue.btl
@@ -0,0 +1,90 @@
+<template>
+ <BasicModal
+ v-bind="$attrs"
+ @register="registerModal"
+ :title="getTitle"
+ @ok="handleSubmit"
+ :showOkBtn="!isDetail"
+ :width="900"
+ >
+ <div v-show="isDetail">
+ <Description size="middle" @register="registerDetail" :column="2"/>
+ </div>
+ <div v-show="!isDetail">
+ <BasicForm @register="registerForm" />
+ </div>
+ </BasicModal>
+</template>
+<script lang="ts" setup>
+ import { ref, computed, unref } from 'vue';
+ import { BasicModal, useModalInner } from '/@/components/Modal';
+ import { BasicForm, useForm } from '/@/components/Form/index';
+ import { formSchema, detailSchema } from './${modelCode!}.data';
+ import { getDetail, submitObj } from '/@/api/${serviceCode!}/${modelCode!}';
+ import { Description, useDescription } from '/@/components/Description/index';
+
+ const emit = defineEmits(['success']);
+ const isDetail = ref(true);
+ const isUpdate = ref(true);
+ const rowId = ref('');
+ //璇︽儏
+ const [registerDetail, { setDescProps }] = useDescription({
+ schema: detailSchema,
+ });
+
+ const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
+ labelWidth: 100,
+ schemas: formSchema,
+ showActionButtonGroup: false,
+ baseColProps: {
+ span: 12,
+ },
+ actionColOptions: {
+ span: 23,
+ },
+ });
+
+ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
+ resetFields();
+ setModalProps({ confirmLoading: false });
+ isUpdate.value = !!data?.isUpdate;
+ isDetail.value = !!data?.isDetail;
+ if (unref(isDetail)) {
+ const detail = await getDetail({ id: data.record.id });
+ setDescProps({
+ data: detail,
+ });
+ } else {
+ if (unref(isUpdate)) {
+ rowId.value = data.record.id;
+ const detailData = await getDetail({ id: data.record.id });
+ setFieldsValue({
+ ...detailData,
+ });
+ }
+ }
+ });
+
+ const getTitle = computed(() => {
+ if (unref(isDetail)) {
+ return '鏌ョ湅';
+ } else {
+ return !unref(isUpdate) ? '鏂板' : '缂栬緫';
+ }
+ });
+
+ async function handleSubmit() {
+ try {
+ const values = await validate();
+ setModalProps({ confirmLoading: true });
+ if (unref(isUpdate)) {
+ values.id = rowId.value;
+ }
+ await submitObj(values);
+ closeModal();
+ emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
+ } finally {
+ setModalProps({ confirmLoading: false });
+ }
+ }
+</script>
--
Gitblit v1.10.0