update 优化 升级框架依赖
This commit is contained in:
+19
-19
@@ -22,50 +22,50 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@element-plus/icons-vue": "2.3.2",
|
"@element-plus/icons-vue": "2.3.2",
|
||||||
"@highlightjs/vue-plugin": "2.1.2",
|
"@highlightjs/vue-plugin": "2.1.2",
|
||||||
"@iconify/vue": "^5.0.0",
|
"@iconify/vue": "^5.0.1",
|
||||||
"@vueuse/core": "14.2.1",
|
"@vueuse/core": "14.3.0",
|
||||||
"@wangeditor-next/editor": "5.7.0",
|
"@wangeditor-next/editor": "5.7.3",
|
||||||
"@wangeditor-next/editor-for-vue": "5.1.14",
|
"@wangeditor-next/editor-for-vue": "5.1.14",
|
||||||
"animate.css": "4.1.1",
|
"animate.css": "4.1.1",
|
||||||
"await-to-js": "3.0.0",
|
"await-to-js": "3.0.0",
|
||||||
"axios": "1.15.2",
|
"axios": "1.16.1",
|
||||||
"crypto-js": "4.2.0",
|
"crypto-js": "4.2.0",
|
||||||
"echarts": "6.0.0",
|
"echarts": "6.1.0",
|
||||||
"element-plus": "2.13.7",
|
"element-plus": "2.14.0",
|
||||||
"highlight.js": "11.11.1",
|
"highlight.js": "11.11.1",
|
||||||
"image-conversion": "2.1.1",
|
"image-conversion": "2.1.1",
|
||||||
"jsencrypt": "3.5.4",
|
"jsencrypt": "3.5.4",
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"pinia": "3.0.4",
|
"pinia": "3.0.4",
|
||||||
"vue": "3.5.33",
|
"vue": "3.5.34",
|
||||||
"vue-cropper": "1.1.4",
|
"vue-cropper": "1.1.4",
|
||||||
"vue-i18n": "11.4.0",
|
"vue-i18n": "11.4.4",
|
||||||
"vue-json-pretty": "2.6.0",
|
"vue-json-pretty": "2.6.0",
|
||||||
"vue-router": "5.0.6",
|
"vue-router": "5.0.7",
|
||||||
"vue-types": "6.0.0",
|
"vue-types": "6.0.0",
|
||||||
"vxe-table": "4.18.13"
|
"vxe-table": "4.18.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/crypto-js": "4.2.2",
|
"@types/crypto-js": "4.2.2",
|
||||||
"@types/node": "^25.6.0",
|
"@types/node": "^25.9.1",
|
||||||
"@types/nprogress": "0.2.3",
|
"@types/nprogress": "0.2.3",
|
||||||
"@unocss/preset-attributify": "66.6.8",
|
"@unocss/preset-attributify": "66.6.8",
|
||||||
"@unocss/preset-wind3": "66.6.8",
|
"@unocss/preset-wind3": "66.6.8",
|
||||||
"@vitejs/plugin-vue": "^6.0.6",
|
"@vitejs/plugin-vue": "^6.0.7",
|
||||||
"@vue/compiler-sfc": "3.5.33",
|
"@vue/compiler-sfc": "3.5.34",
|
||||||
"autoprefixer": "10.5.0",
|
"autoprefixer": "10.5.0",
|
||||||
"oxfmt": "^0.46.0",
|
"oxfmt": "^0.51.0",
|
||||||
"oxlint": "^1.61.0",
|
"oxlint": "^1.66.0",
|
||||||
"sass": "1.99.0",
|
"sass": "1.99.0",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"unocss": "66.6.8",
|
"unocss": "66.6.8",
|
||||||
"unplugin-auto-import": "21.0.0",
|
"unplugin-auto-import": "21.0.0",
|
||||||
"unplugin-vue-components": "32.0.0",
|
"unplugin-vue-components": "32.1.0",
|
||||||
"unplugin-vue-setup-extend-plus": "1.0.1",
|
"unplugin-vue-setup-extend-plus": "1.0.1",
|
||||||
"vite": "^8.0.10",
|
"vite": "^8.0.13",
|
||||||
"vite-plugin-svg-icons-ng": "^1.8.0",
|
"vite-plugin-svg-icons-ng": "^1.9.1",
|
||||||
"vitest": "4.1.5",
|
"vitest": "4.1.6",
|
||||||
"vue-tsc": "^3.2.7"
|
"vue-tsc": "^3.3.1"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"Chrome >= 87",
|
"Chrome >= 87",
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
transform: rotate(45deg);
|
transform: rotate(45deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(html.dark) {
|
html.dark {
|
||||||
.tree-border {
|
.tree-border {
|
||||||
background: var(--app-surface-bg);
|
background: var(--app-surface-bg);
|
||||||
border-color: var(--app-surface-border);
|
border-color: var(--app-surface-border);
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
// =============================================================================
|
// =============================================================================
|
||||||
// 全局样式入口(加载顺序即最终 CSS 层叠顺序,后载入的同优先级规则会覆盖先载入的)
|
// 全局样式入口(加载顺序即最终 CSS 层叠顺序,后载入的同优先级规则会覆盖先载入的)
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
@use './variables.module.scss' as *;
|
@use './tokens/sass-vars' as *;
|
||||||
|
@use './tokens/theme';
|
||||||
|
@use './tokens/theme-dark';
|
||||||
@use './mixin.scss';
|
@use './mixin.scss';
|
||||||
@use './transition.scss';
|
@use './transition.scss';
|
||||||
@use './base/document';
|
@use './base/document';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* 侧栏内 el-menu:一级/嵌套项的 hover、active、浅色与 theme-dark 分支(与 _shell 中变量定义配合)。 */
|
/* 侧栏内 el-menu:一级/嵌套项的 hover、active、浅色与 theme-dark 分支(与 _shell 中变量定义配合)。 */
|
||||||
|
|
||||||
@use '../../variables.module.scss' as *;
|
@use '../../tokens/sass-vars' as *;
|
||||||
|
|
||||||
#app {
|
#app {
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* 移动端侧栏:抽屉式滑出、隐藏时 translate;.withoutAnimation 关闭过渡(与布局组件 class 约定一致)。 */
|
/* 移动端侧栏:抽屉式滑出、隐藏时 translate;.withoutAnimation 关闭过渡(与布局组件 class 约定一致)。 */
|
||||||
|
|
||||||
@use '../../variables.module.scss' as *;
|
@use '../../tokens/sass-vars' as *;
|
||||||
|
|
||||||
#app {
|
#app {
|
||||||
.mobile {
|
.mobile {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* 侧栏外壳:固定定位宽度、主区左边距、滚动条与 el-menu 根级样式;与 _menu/_collapsed/_responsive 分工。 */
|
/* 侧栏外壳:固定定位宽度、主区左边距、滚动条与 el-menu 根级样式;与 _menu/_collapsed/_responsive 分工。 */
|
||||||
|
|
||||||
@use '../../variables.module.scss' as *;
|
@use '../../tokens/sass-vars' as *;
|
||||||
|
|
||||||
#app {
|
#app {
|
||||||
// --- 主内容区相对侧栏的偏移 ---
|
// --- 主内容区相对侧栏的偏移 ---
|
||||||
|
|||||||
@@ -145,9 +145,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="消息提醒">
|
<el-form-item label="消息提醒">
|
||||||
<el-checkbox-group v-model="backForm.messageType">
|
<el-checkbox-group v-model="backForm.messageType">
|
||||||
<el-checkbox label="1" name="type" disabled>站内信</el-checkbox>
|
<el-checkbox value="1" name="type" disabled>站内信</el-checkbox>
|
||||||
<el-checkbox label="2" name="type">邮件</el-checkbox>
|
<el-checkbox value="2" name="type">邮件</el-checkbox>
|
||||||
<el-checkbox label="3" name="type">短信</el-checkbox>
|
<el-checkbox value="3" name="type">短信</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="task.flowStatus === 'waiting'" label="附件">
|
<el-form-item v-if="task.flowStatus === 'waiting'" label="附件">
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ const handleCommand = (command: string) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(html.dark) {
|
html.dark {
|
||||||
.navbar.navtop .navtop-logo-shell {
|
.navbar.navtop .navtop-logo-shell {
|
||||||
background: linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.82));
|
background: linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.82));
|
||||||
border-color: rgba(71, 85, 105, 0.42);
|
border-color: rgba(71, 85, 105, 0.42);
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="sidebar-shell" :class="{ 'has-logo': showLogo }" :style="{ backgroundColor: bgColor }">
|
<div class="sidebar-shell" :class="{ 'has-logo': showLogo }" :style="menuStyle">
|
||||||
<logo v-if="showLogo" :collapse="isCollapse" />
|
<logo v-if="showLogo" :collapse="isCollapse" />
|
||||||
<el-scrollbar :class="sideTheme" wrap-class="scrollbar-wrapper">
|
<el-scrollbar :class="sideTheme" wrap-class="scrollbar-wrapper">
|
||||||
<transition :enter-active-class="animateConfig.menuSearchAnimate.enter" mode="out-in">
|
<transition :enter-active-class="animateConfig.menuSearchAnimate.enter" mode="out-in">
|
||||||
<el-menu
|
<el-menu
|
||||||
:default-active="activeMenu"
|
:default-active="activeMenu"
|
||||||
:collapse="isCollapse"
|
:collapse="isCollapse"
|
||||||
:background-color="bgColor"
|
|
||||||
:text-color="textColor"
|
|
||||||
:unique-opened="true"
|
:unique-opened="true"
|
||||||
:active-text-color="theme"
|
|
||||||
:collapse-transition="false"
|
:collapse-transition="false"
|
||||||
:popper-offset="12"
|
:popper-offset="12"
|
||||||
mode="vertical"
|
mode="vertical"
|
||||||
@@ -51,6 +48,12 @@ const activeMenu = computed(() => {
|
|||||||
|
|
||||||
const bgColor = computed(() => (sideTheme.value === 'theme-dark' ? '#111827' : '#ffffff'));
|
const bgColor = computed(() => (sideTheme.value === 'theme-dark' ? '#111827' : '#ffffff'));
|
||||||
const textColor = computed(() => (sideTheme.value === 'theme-dark' ? '#e5edf8' : '#1f2937'));
|
const textColor = computed(() => (sideTheme.value === 'theme-dark' ? '#e5edf8' : '#1f2937'));
|
||||||
|
const menuStyle = computed(() => ({
|
||||||
|
backgroundColor: bgColor.value,
|
||||||
|
'--el-menu-bg-color': bgColor.value,
|
||||||
|
'--el-menu-text-color': textColor.value,
|
||||||
|
'--el-menu-active-color': theme.value
|
||||||
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
class="topbar-menu"
|
class="topbar-menu"
|
||||||
:ellipsis="false"
|
:ellipsis="false"
|
||||||
:default-active="activeMenu"
|
:default-active="activeMenu"
|
||||||
:active-text-color="theme"
|
:style="{ '--el-menu-active-color': theme }"
|
||||||
mode="horizontal"
|
mode="horizontal"
|
||||||
>
|
>
|
||||||
<sidebar-item
|
<sidebar-item
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ const setLayout = () => {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@use '@/assets/styles/mixin.scss';
|
@use '@/assets/styles/mixin.scss';
|
||||||
@use '@/assets/styles/variables.module.scss' as *;
|
@use '@/assets/styles/tokens/sass-vars' as *;
|
||||||
|
|
||||||
.app-wrapper {
|
.app-wrapper {
|
||||||
@include mixin.clearfix;
|
@include mixin.clearfix;
|
||||||
|
|||||||
@@ -6,10 +6,10 @@
|
|||||||
*/
|
*/
|
||||||
export function isPathMatch(pattern: string, path: string) {
|
export function isPathMatch(pattern: string, path: string) {
|
||||||
const regexPattern = pattern
|
const regexPattern = pattern
|
||||||
.replace(/([.+^${}()|\[\]\\])/g, '\\$1')
|
.replace(/([.+^${}()|[\]\\])/g, '\\$1')
|
||||||
.replace(/\*\*/g, '__DOUBLE_STAR__')
|
.replace(/\*\*/g, '__DOUBLE_STAR__')
|
||||||
.replace(/\*/g, '[^\\/]*')
|
.replace(/\*/g, '[^/]*')
|
||||||
.replace(/\?/g, '[^\\/]')
|
.replace(/\?/g, '[^/]')
|
||||||
.replace(/__DOUBLE_STAR__/g, '.*');
|
.replace(/__DOUBLE_STAR__/g, '.*');
|
||||||
const regex = new RegExp(`^${regexPattern}$`);
|
const regex = new RegExp(`^${regexPattern}$`);
|
||||||
return regex.test(path);
|
return regex.test(path);
|
||||||
|
|||||||
@@ -230,8 +230,8 @@ const handleAdd = () => {
|
|||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
const handleUpdate = async (row?: DemoVO) => {
|
const handleUpdate = async (row?: DemoVO) => {
|
||||||
reset();
|
reset();
|
||||||
const _id = row?.id || ids.value[0];
|
const demoId = row?.id || ids.value[0];
|
||||||
const res = await getDemo(_id);
|
const res = await getDemo(demoId);
|
||||||
Object.assign(form.value, res.data);
|
Object.assign(form.value, res.data);
|
||||||
showDialog('修改测试单');
|
showDialog('修改测试单');
|
||||||
};
|
};
|
||||||
@@ -255,9 +255,9 @@ const submitForm = () => {
|
|||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: DemoVO) => {
|
const handleDelete = async (row?: DemoVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const demoIds = row?.id || ids.value;
|
||||||
await modal.confirm('是否确认删除测试单编号为"' + _ids + '"的数据项?');
|
await modal.confirm('是否确认删除测试单编号为"' + demoIds + '"的数据项?');
|
||||||
await delDemo(_ids);
|
await delDemo(demoIds);
|
||||||
modal.msgSuccess('删除成功');
|
modal.msgSuccess('删除成功');
|
||||||
await getList();
|
await getList();
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -362,7 +362,7 @@ const goTarget = (url: string) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(html.dark) {
|
html.dark {
|
||||||
.hero-panel {
|
.hero-panel {
|
||||||
background: radial-gradient(circle at top left, rgba(53, 109, 255, 0.18), transparent 30%), var(--app-surface-bg);
|
background: radial-gradient(circle at top left, rgba(53, 109, 255, 0.18), transparent 30%), var(--app-surface-bg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -401,8 +401,8 @@ const handleAdd = () => {
|
|||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
const handleUpdate = async (row?: ClientVO) => {
|
const handleUpdate = async (row?: ClientVO) => {
|
||||||
resetForm();
|
resetForm();
|
||||||
const _id = row?.id || ids.value[0];
|
const clientId = row?.id || ids.value[0];
|
||||||
const res = await getClient(_id);
|
const res = await getClient(clientId);
|
||||||
Object.assign(form.value, res.data);
|
Object.assign(form.value, res.data);
|
||||||
showDialog('修改客户端管理');
|
showDialog('修改客户端管理');
|
||||||
};
|
};
|
||||||
@@ -427,9 +427,9 @@ const submitForm = () => {
|
|||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: ClientVO) => {
|
const handleDelete = async (row?: ClientVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const clientIds = row?.id || ids.value;
|
||||||
await modal.confirm('是否确认删除客户端管理编号为"' + _ids + '"的数据项?');
|
await modal.confirm('是否确认删除客户端管理编号为"' + clientIds + '"的数据项?');
|
||||||
await delClient(_ids);
|
await delClient(clientIds);
|
||||||
modal.msgSuccess('删除成功');
|
modal.msgSuccess('删除成功');
|
||||||
await getList();
|
await getList();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ td > img {
|
|||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(html.dark) {
|
html.dark {
|
||||||
.user-bind .third-app {
|
.user-bind .third-app {
|
||||||
background: rgba(15, 23, 42, 0.64);
|
background: rgba(15, 23, 42, 0.64);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -268,9 +268,9 @@ const handleView = (row?: LeaveVO) => {
|
|||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: LeaveVO) => {
|
const handleDelete = async (row?: LeaveVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const leaveIds = row?.id || ids.value;
|
||||||
await modal.confirm('是否确认删除请假编号为"' + _ids + '"的数据项?');
|
await modal.confirm('是否确认删除请假编号为"' + leaveIds + '"的数据项?');
|
||||||
await delLeave(_ids);
|
await delLeave(leaveIds);
|
||||||
modal.msgSuccess('删除成功');
|
modal.msgSuccess('删除成功');
|
||||||
await getList();
|
await getList();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -188,7 +188,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-radio-group v-model="form.status">
|
<el-radio-group v-model="form.status">
|
||||||
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">
|
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">
|
||||||
{{ dict.label }}
|
{{ dict.label }}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@@ -300,8 +300,8 @@ const handleAdd = () => {
|
|||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
const handleUpdate = async (row?: SpelVO) => {
|
const handleUpdate = async (row?: SpelVO) => {
|
||||||
resetForm();
|
resetForm();
|
||||||
const _id = row?.id || ids.value[0];
|
const spelId = row?.id || ids.value[0];
|
||||||
const res = await getSpel(_id);
|
const res = await getSpel(spelId);
|
||||||
Object.assign(form.value, res.data);
|
Object.assign(form.value, res.data);
|
||||||
showDialog('修改流程spel表达式定义');
|
showDialog('修改流程spel表达式定义');
|
||||||
};
|
};
|
||||||
@@ -326,9 +326,9 @@ const submitForm = () => {
|
|||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: SpelVO) => {
|
const handleDelete = async (row?: SpelVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const spelIds = row?.id || ids.value;
|
||||||
await modal.confirm('是否确认删除流程spel表达式定义编号为"' + _ids + '"的数据项?');
|
await modal.confirm('是否确认删除流程spel表达式定义编号为"' + spelIds + '"的数据项?');
|
||||||
await delSpel(_ids);
|
await delSpel(spelIds);
|
||||||
modal.msgSuccess('删除成功');
|
modal.msgSuccess('删除成功');
|
||||||
await getList();
|
await getList();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ onMounted(() => {
|
|||||||
--el-button-hover-border-color: var(--el-color-warning-light-5);
|
--el-button-hover-border-color: var(--el-color-warning-light-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(html.dark) {
|
html.dark {
|
||||||
.todo-action-btn {
|
.todo-action-btn {
|
||||||
--el-button-bg-color: rgba(148, 163, 184, 0.12);
|
--el-button-bg-color: rgba(148, 163, 184, 0.12);
|
||||||
--el-button-border-color: rgba(148, 163, 184, 0.3);
|
--el-button-border-color: rgba(148, 163, 184, 0.3);
|
||||||
|
|||||||
Reference in New Issue
Block a user