diff --git a/docs/template/modules/operate-drawer.vue.vm b/docs/template/modules/operate-drawer.vue.vm
index ca9c071b..b5478c01 100644
--- a/docs/template/modules/operate-drawer.vue.vm
+++ b/docs/template/modules/operate-drawer.vue.vm
@@ -52,7 +52,7 @@ function createDefaultModel(): Model {
return {
#foreach($column in $columns)
#if($column.insert)
- ${column.javaField}:#if($column.javaType == 'String') ''#else null#end#if($foreach.hasNext),#end
+ ${column.javaField}:#if($column.javaType == 'String' && $!column.dictType && $column.dictType == '') ''#else undefined#end#if($foreach.hasNext),#end
#end
#end
};
@@ -91,16 +91,22 @@ function closeDrawer() {
async function handleSubmit() {
await validate();
+ #set($operateColumns = [])
+ #foreach($column in $columns)#if($column.insert || $column.edit)#set($dummy = $operateColumns.add($column))#end#end
+ const { #foreach($column in $operateColumns)$column.javaField#if($foreach.hasNext), #end#end } = model;
+
// request
if (props.operateType === 'add') {
- const { #foreach($column in $columns)#if($column.insert)$column.javaField#if($foreach.hasNext), #end#end#end } = model;
- const { error } = await fetchCreate${BusinessName}({ #foreach($column in $columns)#if($column.insert)$column.javaField#if($foreach.hasNext), #end#end#end });
+ #set($addFields = [])
+ #foreach($column in $columns)#if($column.insert)#set($dummy = $addFields.add($column.javaField))#end#end
+ const { error } = await fetchCreate${BusinessName}({ #foreach($field in $addFields)$field#if($foreach.hasNext), #end#end });
if (error) return;
}
if (props.operateType === 'edit') {
- const { #foreach($column in $columns)#if($column.edit)$column.javaField#if($foreach.hasNext), #end#end#end } = model;
- const { error } = await fetchUpdate${BusinessName}({ #foreach($column in $columns)#if($column.edit)$column.javaField#if($foreach.hasNext), #end#end#end });
+ #set($editFields = [])
+ #foreach($column in $columns)#if($column.edit)#set($dummy = $editFields.add($column.javaField))#end#end
+ const { error } = await fetchUpdate${BusinessName}({ #foreach($field in $editFields)$field#if($foreach.hasNext), #end#end });
if (error) return;
}
@@ -170,13 +176,36 @@ watch(visible, () => {
- #elseif($column.htmlType == "datetime")
+ #elseif($column.htmlType == "checkbox" && "" != $dictType)
+
+
+
+
+
+ #elseif($column.htmlType == "checkbox" && $dictType)
+
+
+
+
+
+ #elseif($column.htmlType == 'datetime')
+ #elseif($column.htmlType == "imageUpload")
+
+ #elseif($column.htmlType == "fileUpload")
+
+ #elseif($column.htmlType == "editor")
+
#else
#end
diff --git a/docs/template/modules/search.vue.vm b/docs/template/modules/search.vue.vm
index 9f347973..b6bfa5ce 100644
--- a/docs/template/modules/search.vue.vm
+++ b/docs/template/modules/search.vue.vm
@@ -50,7 +50,7 @@ async function search() {
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
if (dateRange${AttrName}.value?.length) {
model.value.params!.begin${AttrName} = dateRange${AttrName}.value[0];
- model.value.params!.end${AttrName} = dateRange${AttrName}.value[0];
+ model.value.params!.end${AttrName} = dateRange${AttrName}.value[1];
}
#end
#end
@@ -75,35 +75,28 @@ async function search() {
#set($comment=$column.columnComment)
#end
- #if(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
+ #if(($tool.in($column.htmlType, "select", "radio", "checkbox")) && $dictType && "" != $dictType)
- #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
+ #elseif($tool.in($column.htmlType, "select", "radio", "checkbox"))
- #elseif($column.htmlType.equals('select') || $column.htmlType.equals('radio'))
-
- #elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN")
+ #elseif($column.htmlType == 'datetime' && $column.queryType != "BETWEEN")
- #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+ #elseif($column.htmlType == 'datetime' && $column.queryType == "BETWEEN")
- handleRemove(file)"
- >
-
-
-
-
- 点击或者拖动文件到该区域来上传
-
- 请上传
-
- 大小不超过
- {{ fileSize }}MB
-
-
- ,且格式为
- {{ accept.replaceAll(',', '/') }}
-
- 的文件
-
-
-
-
- 请上传
-
- 大小不超过
- {{ fileSize }}MB
-
-
- ,且格式为
- {{ accept.replaceAll(',', '/') }}
-
- 的文件
-
+
+
handleRemove(file)"
+ >
+
+
+
+
+ 点击或者拖动文件到该区域来上传
+
+ 请上传
+
+ 大小不超过
+ {{ fileSize }}MB
+
+
+ ,且格式为
+ {{ accept.replaceAll(',', '/') }}
+
+ 的文件
+
+
+
+
+ 请上传
+
+ 大小不超过
+ {{ fileSize }}MB
+
+
+ ,且格式为
+ {{ accept.replaceAll(',', '/') }}
+
+ 的文件
+
+
diff --git a/src/components/custom/oss-upload.vue b/src/components/custom/oss-upload.vue
index 953c7151..d4aa4f65 100644
--- a/src/components/custom/oss-upload.vue
+++ b/src/components/custom/oss-upload.vue
@@ -34,7 +34,7 @@ async function handleFetchOssList(ossIds: string[]) {
watch(
value,
async val => {
- const ossIds = val.split(',')?.filter(item => isNotNull(item));
+ const ossIds = val?.split(',')?.filter(item => isNotNull(item)) || [];
const fileIds = new Set(fileList.value.filter(item => item.status === 'finished').map(item => item.id));
if (ossIds.every(item => fileIds.has(item))) {
return;
diff --git a/src/components/custom/tinymce-editor.vue b/src/components/custom/tinymce-editor.vue
new file mode 100644
index 00000000..d5bf7ca4
--- /dev/null
+++ b/src/components/custom/tinymce-editor.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/src/constants/business.ts b/src/constants/business.ts
index a9718f3a..c3cad440 100644
--- a/src/constants/business.ts
+++ b/src/constants/business.ts
@@ -76,7 +76,7 @@ export const genHtmlTypeRecord: Record = {
select: '下拉框',
radio: '单选框',
checkbox: '复选框',
- datetime: '日期控件',
+ datetime: '日期时间控件',
imageUpload: '图片上传',
fileUpload: '文件上传',
editor: '富文本控件'
diff --git a/src/store/modules/route/index.ts b/src/store/modules/route/index.ts
index d45391bb..21aec092 100644
--- a/src/store/modules/route/index.ts
+++ b/src/store/modules/route/index.ts
@@ -42,16 +42,7 @@ export const useRouteStore = defineStore(SetupStoreId.Route, () => {
const authRouteMode = ref(import.meta.env.VITE_AUTH_ROUTE_MODE);
/** Home route key */
- const routeHome = ref(import.meta.env.VITE_ROUTE_HOME);
-
- /**
- * Set route home
- *
- * @param routeKey Route key
- */
- function setRouteHome(routeKey: LastLevelRouteKey) {
- routeHome.value = routeKey;
- }
+ const routeHome = ref(import.meta.env.VITE_ROUTE_HOME || 'home');
/** constant routes */
const constantRoutes = shallowRef([]);
@@ -303,9 +294,7 @@ export const useRouteStore = defineStore(SetupStoreId.Route, () => {
handleConstantAndAuthRoutes();
- setRouteHome('home');
-
- handleUpdateRootRouteRedirect('home');
+ handleUpdateRootRouteRedirect(routeHome.value);
setIsInitAuthRoute(true);
} else {
diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts
index ca897ade..8fa3e241 100644
--- a/src/typings/components.d.ts
+++ b/src/typings/components.d.ts
@@ -151,6 +151,7 @@ declare module 'vue' {
TableSiderLayout: typeof import('./../components/advanced/table-sider-layout.vue')['default']
TenantSelect: typeof import('./../components/custom/tenant-select.vue')['default']
ThemeSchemaSwitch: typeof import('./../components/common/theme-schema-switch.vue')['default']
+ TinymceEditor: typeof import('./../components/custom/tinymce-editor.vue')['default']
UserSelect: typeof import('./../components/custom/user-select.vue')['default']
WaveBg: typeof import('./../components/custom/wave-bg.vue')['default']
WorkflowCategorySelect: typeof import('./../components/custom/workflow-category-select.vue')['default']
diff --git a/src/views/_builtin/social-callback/index.vue b/src/views/_builtin/social-callback/index.vue
index d71443df..6b16e248 100644
--- a/src/views/_builtin/social-callback/index.vue
+++ b/src/views/_builtin/social-callback/index.vue
@@ -31,7 +31,7 @@ const processResponse = async () => {
msg.value = '登录成功,1s 后即将跳转至首页';
}, 1000);
setTimeout(() => {
- routerPushByKey('home');
+ routerPushByKey(import.meta.env.VITE_ROUTE_HOME || 'home');
}, 1000);
};
diff --git a/src/views/system/notice/modules/notice-operate-drawer.vue b/src/views/system/notice/modules/notice-operate-drawer.vue
index cc05dff5..22e10ee8 100644
--- a/src/views/system/notice/modules/notice-operate-drawer.vue
+++ b/src/views/system/notice/modules/notice-operate-drawer.vue
@@ -1,12 +1,7 @@