update 优化 升级框架依赖

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