فهرست منبع

升级组件依赖到最新版本

RuoYi 1 سال پیش
والد
کامیت
64036d520f

+ 17 - 16
package.json

@@ -4,6 +4,7 @@
   "description": "若依管理系统",
   "author": "若依",
   "license": "MIT",
+  "type": "module",
   "scripts": {
     "dev": "vite",
     "build:prod": "vite build",
@@ -15,30 +16,30 @@
     "url": "https://gitee.com/y_project/RuoYi-Vue.git"
   },
   "dependencies": {
-    "@element-plus/icons-vue": "2.0.10",
+    "@element-plus/icons-vue": "2.3.1",
     "@vueup/vue-quill": "1.2.0",
-    "@vueuse/core": "9.5.0",
+    "@vueuse/core": "10.6.1",
     "axios": "0.27.2",
-    "echarts": "5.4.0",
-    "element-plus": "2.2.27",
+    "echarts": "5.4.3",
+    "element-plus": "2.4.3",
     "file-saver": "2.0.5",
     "fuse.js": "6.6.2",
-    "js-cookie": "3.0.1",
-    "jsencrypt": "3.3.1",
+    "js-cookie": "3.0.5",
+    "jsencrypt": "3.3.2",
     "nprogress": "0.2.0",
-    "pinia": "2.0.22",
-    "vue": "3.2.45",
-    "vue-cropper": "1.0.3",
-    "vue-router": "4.1.4"
+    "pinia": "2.1.7",
+    "vue": "3.3.9",
+    "vue-cropper": "1.1.1",
+    "vue-router": "4.2.5"
   },
   "devDependencies": {
-    "@vitejs/plugin-vue": "3.1.0",
-    "@vue/compiler-sfc": "3.2.45",
-    "sass": "1.56.1",
-    "unplugin-auto-import": "0.11.4",
-    "vite": "3.2.3",
+    "@vitejs/plugin-vue": "4.5.0",
+    "@vue/compiler-sfc": "3.3.9",
+    "sass": "1.69.5",
+    "unplugin-auto-import": "0.17.1",
+    "vite": "5.0.4",
     "vite-plugin-compression": "0.5.1",
     "vite-plugin-svg-icons": "2.0.1",
-    "unplugin-vue-setup-extend-plus": "0.4.9"
+    "unplugin-vue-setup-extend-plus": "1.0.0"
   }
 }

+ 1 - 1
src/components/Crontab/day.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size="small">
+    <el-form>
         <el-form-item>
             <el-radio v-model='radioValue' :label="1">
                 日,允许的通配符[, - * ? / L W]

+ 1 - 1
src/components/Crontab/hour.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size="small">
+    <el-form>
         <el-form-item>
             <el-radio v-model='radioValue' :label="1">
                 小时,允许的通配符[, - * /]

+ 1 - 1
src/components/Crontab/min.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size="small">
+    <el-form>
         <el-form-item>
             <el-radio v-model='radioValue' :label="1">
                 分钟,允许的通配符[, - * /]

+ 1 - 1
src/components/Crontab/month.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size='small'>
+    <el-form>
         <el-form-item>
             <el-radio v-model='radioValue' :label="1">
                 月,允许的通配符[, - * /]

+ 1 - 1
src/components/Crontab/second.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size="small">
+    <el-form>
         <el-form-item>
             <el-radio v-model='radioValue' :label="1">
                 秒,允许的通配符[, - * /]

+ 1 - 1
src/components/Crontab/week.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size='small'>
+    <el-form>
         <el-form-item>
             <el-radio v-model='radioValue' :label="1">
                 周,允许的通配符[, - * ? / L #]

+ 5 - 5
src/components/Crontab/year.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-form size="small">
+    <el-form>
         <el-form-item>
             <el-radio :label="1" v-model='radioValue'>
                 不填,允许的通配符[, - * /]
@@ -15,16 +15,16 @@
         <el-form-item>
             <el-radio :label="3" v-model='radioValue'>
                 周期从
-                <el-input-number v-model='cycle01' :min='fullYear' :max="maxFullYear - 1" /> -
-                <el-input-number v-model='cycle02' :min="cycle01 + 1" :max="maxFullYear" />
+                <el-input-number v-model='cycle01' :min='fullYear' :max="2098"/> -
+                <el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : fullYear + 1" :max="2099"/>
             </el-radio>
         </el-form-item>
 
         <el-form-item>
             <el-radio :label="4" v-model='radioValue'>
-                <el-input-number v-model='average01' :min='fullYear' :max="maxFullYear - 1"/> 年开始,每
-                <el-input-number v-model='average02' :min="1" :max="10" /> 年执行一次
+                <el-input-number v-model='average01' :min='fullYear' :max="2098"/> 年开始,每
+                <el-input-number v-model='average02' :min="1" :max="2099 - average01 || fullYear"/> 年执行一次
             </el-radio>
 
         </el-form-item>

+ 1 - 1
src/components/ImagePreview/index.vue

@@ -4,7 +4,7 @@
     fit="cover"
     :style="`width:${realWidth};height:${realHeight};`"
     :preview-src-list="realSrcList"
-    :preview-teleported="true"
+    preview-teleported
   >
     <template #error>
       <div class="image-slot">

+ 1 - 1
src/components/RightToolbar/index.vue

@@ -10,7 +10,7 @@
       <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
         <el-button circle icon="Menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
         <el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
-          <el-button size="mini" circle icon="Menu" />
+          <el-button circle icon="Menu" />
           <template #dropdown>
             <el-dropdown-menu>
               <template v-for="item in columns" :key="item.key">

+ 7 - 9
src/layout/components/IframeToggle/index.vue

@@ -1,13 +1,11 @@
 <template>
-  <transition-group name="fade-transform" mode="out-in">
-    <inner-link
-      v-for="(item, index) in tagsViewStore.iframeViews"
-      :key="item.path"
-      :iframeId="'iframe' + index"
-      v-show="route.path === item.path"
-      :src="iframeUrl(item.meta.link, item.query)"
-    ></inner-link>
-  </transition-group>
+  <inner-link
+    v-for="(item, index) in tagsViewStore.iframeViews"
+    :key="item.path"
+    :iframeId="'iframe' + index"
+    v-show="route.path === item.path"
+    :src="iframeUrl(item.meta.link, item.query)"
+  ></inner-link>
 </template>
 
 <script setup>

+ 7 - 51
src/layout/components/Settings/index.vue

@@ -38,35 +38,35 @@
     <div class="drawer-item">
       <span>开启 TopNav</span>
       <span class="comp-style">
-        <el-switch v-model="topNav" class="drawer-switch" />
+        <el-switch v-model="settingsStore.topNav" class="drawer-switch" />
       </span>
     </div>
 
     <div class="drawer-item">
       <span>开启 Tags-Views</span>
       <span class="comp-style">
-        <el-switch v-model="tagsView" class="drawer-switch" />
+        <el-switch v-model="settingsStore.tagsView" class="drawer-switch" />
       </span>
     </div>
 
     <div class="drawer-item">
       <span>固定 Header</span>
       <span class="comp-style">
-        <el-switch v-model="fixedHeader" class="drawer-switch" />
+        <el-switch v-model="settingsStore.fixedHeader" class="drawer-switch" />
       </span>
     </div>
 
     <div class="drawer-item">
       <span>显示 Logo</span>
       <span class="comp-style">
-        <el-switch v-model="sidebarLogo" class="drawer-switch" />
+        <el-switch v-model="settingsStore.sidebarLogo" class="drawer-switch" />
       </span>
     </div>
 
     <div class="drawer-item">
       <span>动态标题</span>
       <span class="comp-style">
-        <el-switch v-model="dynamicTitle" class="drawer-switch" />
+        <el-switch v-model="settingsStore.dynamicTitle" class="drawer-switch" />
       </span>
     </div>
 
@@ -80,7 +80,6 @@
 
 <script setup>
 import variables from '@/assets/styles/variables.module.scss'
-import originElementPlus from 'element-plus/theme-chalk/index.css'
 import axios from 'axios'
 import { ElLoading, ElMessage } from 'element-plus'
 import { useDynamicTitle } from '@/utils/dynamicTitle'
@@ -99,55 +98,12 @@ const sideTheme = ref(settingsStore.sideTheme);
 const storeSettings = computed(() => settingsStore);
 const predefineColors = ref(["#409EFF", "#ff4500", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585"]);
 
-/** 是否需要topnav */
-const topNav = computed({
-  get: () => storeSettings.value.topNav,
-  set: (val) => {
-    settingsStore.changeSetting({ key: 'topNav', value: val })
-    if (!val) {
-      appStore.toggleSideBarHide(false);
-      permissionStore.setSidebarRouters(permissionStore.defaultRoutes);
-    }
-  }
-})
-/** 是否需要tagview */
-const tagsView = computed({
-  get: () => storeSettings.value.tagsView,
-  set: (val) => {
-    settingsStore.changeSetting({ key: 'tagsView', value: val })
-  }
-})
-/**是否需要固定头部 */
-const fixedHeader = computed({
-  get: () => storeSettings.value.fixedHeader,
-  set: (val) => {
-    settingsStore.changeSetting({ key: 'fixedHeader', value: val })
-  }
-})
-/**是否需要侧边栏的logo */
-const sidebarLogo = computed({
-  get: () => storeSettings.value.sidebarLogo,
-  set: (val) => {
-    settingsStore.changeSetting({ key: 'sidebarLogo', value: val })
-  }
-})
-/**是否需要侧边栏的动态网页的title */
-const dynamicTitle = computed({
-  get: () => storeSettings.value.dynamicTitle,
-  set: (val) => {
-    settingsStore.changeSetting({ key: 'dynamicTitle', value: val })
-    // 动态设置网页标题
-    useDynamicTitle()
-  }
-})
-
 function themeChange(val) {
-  settingsStore.changeSetting({ key: 'theme', value: val })
-  theme.value = val;
+  settingsStore.theme = val;
   handleThemeStyle(val);
 }
 function handleTheme(val) {
-  settingsStore.changeSetting({ key: 'sideTheme', value: val })
+  settingsStore.sideTheme = val;
   sideTheme.value = val;
 }
 function saveSetting() {

+ 1 - 1
src/layout/components/Sidebar/SidebarItem.vue

@@ -9,7 +9,7 @@
       </app-link>
     </template>
 
-    <el-sub-menu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
+    <el-sub-menu v-else ref="subMenu" :index="resolvePath(item.path)" teleported>
       <template v-if="item.meta" #title>
         <svg-icon :icon-class="item.meta && item.meta.icon" />
         <span class="menu-title" :title="hasTitle(item.meta.title)">{{ item.meta.title }}</span>

+ 2 - 1
src/main.js

@@ -3,7 +3,8 @@ import { createApp } from 'vue'
 import Cookies from 'js-cookie'
 
 import ElementPlus from 'element-plus'
-import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
+import 'element-plus/dist/index.css'
+import locale from 'element-plus/es/locale/lang/zh-cn'
 
 import '@/assets/styles/index.scss' // global css