xiaoma před 3 roky
rodič
revize
620f27b10e

+ 7 - 0
CHANGELOG.md

@@ -2,6 +2,13 @@
 
 ## Pending
 
+## 1.3.6 (2023-02-16)
+
+- 🐞 修复 `fix 多页签关闭全部异常` 
+- 🐞 修复 `搜索菜单跳转异常` 
+- 💎 优化 `列表页面->基础列表` 新建模板
+- `依赖升级`
+
 ## 1.3.5 (2023-02-08)
 
 - 🌟 新增 `项目配置` 开关

+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "naive-admin-element-tenant",
-  "version": "1.3.5",
+  "version": "1.3.6",
   "author": {
     "name": "Ahjung",
     "email": "735878602@qq.com",
@@ -43,7 +43,7 @@
     "cropperjs": "^1.5.12",
     "dayjs": "^1.11.4",
     "echarts": "^5.3.3",
-    "element-plus": "^2.2.26",
+    "element-plus": "^2.2.30",
     "element-resize-detector": "^1.2.4",
     "lodash-es": "^4.17.21",
     "mockjs": "^1.1.0",

+ 58 - 23
pnpm-lock.yaml

@@ -31,7 +31,7 @@ specifiers:
   dayjs: ^1.11.4
   dotenv: ^16.0.1
   echarts: ^5.3.3
-  element-plus: ^2.2.26
+  element-plus: ^2.2.30
   element-resize-detector: ^1.2.4
   eslint: ^8.20.0
   eslint-config-prettier: ^8.5.0
@@ -93,7 +93,7 @@ dependencies:
   cropperjs: 1.5.12
   dayjs: 1.11.4
   echarts: 5.3.3
-  element-plus: 2.2.26_vue@3.2.45
+  element-plus: 2.2.30_vue@3.2.45
   element-resize-detector: 1.2.4
   lodash-es: 4.17.21
   mockjs: 1.1.0
@@ -498,12 +498,12 @@ packages:
       ajv: 8.11.0
     dev: true
 
-  /@commitlint/config-validator/17.1.0:
-    resolution: {integrity: sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==}
+  /@commitlint/config-validator/17.4.0:
+    resolution: {integrity: sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA==}
     engines: {node: '>=v14'}
     dependencies:
-      '@commitlint/types': 17.0.0
-      ajv: 8.11.0
+      '@commitlint/types': 17.4.0
+      ajv: 8.12.0
     dev: true
     optional: true
 
@@ -520,6 +520,12 @@ packages:
     engines: {node: '>=v14'}
     dev: true
 
+  /@commitlint/execute-rule/17.4.0:
+    resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==}
+    engines: {node: '>=v14'}
+    dev: true
+    optional: true
+
   /@commitlint/format/17.0.0:
     resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==}
     engines: {node: '>=v14'}
@@ -566,18 +572,18 @@ packages:
       - '@swc/wasm'
     dev: true
 
-  /@commitlint/load/17.3.0:
-    resolution: {integrity: sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==}
+  /@commitlint/load/17.4.2:
+    resolution: {integrity: sha512-Si++F85rJ9t4hw6JcOw1i2h0fdpdFQt0YKwjuK4bk9KhFjyFkRxvR3SB2dPaMs+EwWlDrDBGL+ygip1QD6gmPw==}
     engines: {node: '>=v14'}
     dependencies:
-      '@commitlint/config-validator': 17.1.0
-      '@commitlint/execute-rule': 17.0.0
-      '@commitlint/resolve-extends': 17.3.0
-      '@commitlint/types': 17.0.0
+      '@commitlint/config-validator': 17.4.0
+      '@commitlint/execute-rule': 17.4.0
+      '@commitlint/resolve-extends': 17.4.0
+      '@commitlint/types': 17.4.0
       '@types/node': 14.18.28
       chalk: 4.1.2
-      cosmiconfig: 7.0.1
-      cosmiconfig-typescript-loader: 4.0.0_3fsfwaqvzqsexvrl2h7z3a7why
+      cosmiconfig: 8.0.0
+      cosmiconfig-typescript-loader: 4.0.0_2j5tjjdccslci6o7rslnanfova
       lodash.isplainobject: 4.0.6
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
@@ -626,12 +632,12 @@ packages:
       resolve-global: 1.0.0
     dev: true
 
-  /@commitlint/resolve-extends/17.3.0:
-    resolution: {integrity: sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==}
+  /@commitlint/resolve-extends/17.4.0:
+    resolution: {integrity: sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ==}
     engines: {node: '>=v14'}
     dependencies:
-      '@commitlint/config-validator': 17.1.0
-      '@commitlint/types': 17.0.0
+      '@commitlint/config-validator': 17.4.0
+      '@commitlint/types': 17.4.0
       import-fresh: 3.3.0
       lodash.mergewith: 4.6.2
       resolve-from: 5.0.0
@@ -669,6 +675,14 @@ packages:
       chalk: 4.1.2
     dev: true
 
+  /@commitlint/types/17.4.0:
+    resolution: {integrity: sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA==}
+    engines: {node: '>=v14'}
+    dependencies:
+      chalk: 4.1.2
+    dev: true
+    optional: true
+
   /@cspotcode/source-map-support/0.8.1:
     resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
     engines: {node: '>=12'}
@@ -1666,6 +1680,16 @@ packages:
       uri-js: 4.4.1
     dev: true
 
+  /ajv/8.12.0:
+    resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+    dependencies:
+      fast-deep-equal: 3.1.3
+      json-schema-traverse: 1.0.0
+      require-from-string: 2.0.2
+      uri-js: 4.4.1
+    dev: true
+    optional: true
+
   /ansi-escapes/4.3.2:
     resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
     engines: {node: '>=8'}
@@ -2293,7 +2317,7 @@ packages:
       - '@swc/wasm'
     dev: true
 
-  /cosmiconfig-typescript-loader/4.0.0_3fsfwaqvzqsexvrl2h7z3a7why:
+  /cosmiconfig-typescript-loader/4.0.0_2j5tjjdccslci6o7rslnanfova:
     resolution: {integrity: sha512-cVpucSc2Tf+VPwCCR7SZzmQTQkPbkk4O01yXsYqXBIbjE1bhwqSyAgYQkRK1un4i0OPziTleqFhdkmOc4RQ/9g==}
     engines: {node: '>=12', npm: '>=6'}
     peerDependencies:
@@ -2303,7 +2327,7 @@ packages:
       typescript: '>=3'
     dependencies:
       '@types/node': 14.18.28
-      cosmiconfig: 7.0.1
+      cosmiconfig: 8.0.0
       ts-node: 10.9.1_i35juvv3q67kl3o6475tyeglwq
       typescript: 4.7.4
     dev: true
@@ -2320,6 +2344,17 @@ packages:
       yaml: 1.10.2
     dev: true
 
+  /cosmiconfig/8.0.0:
+    resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==}
+    engines: {node: '>=14'}
+    dependencies:
+      import-fresh: 3.3.0
+      js-yaml: 4.1.0
+      parse-json: 5.2.0
+      path-type: 4.0.0
+    dev: true
+    optional: true
+
   /crc-32/1.2.2:
     resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
     engines: {node: '>=0.8'}
@@ -2391,7 +2426,7 @@ packages:
       longest: 2.0.1
       word-wrap: 1.2.3
     optionalDependencies:
-      '@commitlint/load': 17.3.0
+      '@commitlint/load': 17.4.2
     transitivePeerDependencies:
       - '@swc/core'
       - '@swc/wasm'
@@ -2635,8 +2670,8 @@ packages:
     resolution: {integrity: sha512-7EZCIDDraA2NUaHewLaAh6T63cZzgBmgDx/iiaeZ/pjSs36bOFEJ3hLIrn1TKCFhV0PEZZKu6qFPrxa/LGAzLg==}
     dev: true
 
-  /element-plus/2.2.26_vue@3.2.45:
-    resolution: {integrity: sha512-O/rdY5m9DkclpVg8r3GynyqCunm7MxSR142xSsjrZA77bi7bcwA3SIy6SPEDqHi5R4KqgkGYgKSp4Q4e3irbYg==}
+  /element-plus/2.2.30_vue@3.2.45:
+    resolution: {integrity: sha512-HYSnmf2VMGa0gmw03evxevodPy3WimbAd4sfenOAhNs7Wl8IdT+YJjQyGAQjgEjRvhmujN4O/CZqhuEffRyOZg==}
     peerDependencies:
       vue: ^3.2.0
     dependencies:

+ 7 - 3
src/components/Application/search/AppSearch.vue

@@ -157,20 +157,24 @@
     });
   }
 
+  function replacePath(path) {
+    return path.replace('//', '/');
+  }
+
   function handlerSearchResult(filterMenu: Menu[], reg: RegExp, parent?: Menu) {
     const ret: SearchResult[] = [];
-    filterMenu.forEach((item) => {
+    filterMenu.forEach((item: Menu) => {
       const { title, path, key, icon, children, meta } = item;
       if (!meta?.hidden && reg.test(title) && !children?.length) {
         ret.push({
           name: parent?.title ? `${parent.title} > ${title}` : title,
-          path: parent?.path ? `${parent.path}/${path}` : path,
+          path: replacePath(path),
           icon,
           key,
         });
       }
       if (!meta?.hideChildrenInMenu && Array.isArray(children) && children.length) {
-        ret.push(...handlerSearchResult(children, reg, item));
+        ret.push(...handlerSearchResult(children as Menu[], reg, item));
       }
     });
     return ret;

+ 1 - 1
src/layout/components/TagsView/index.vue

@@ -294,7 +294,7 @@
     PageEnum.ERROR_PAGE_NAME,
   ];
 
-  const isDisabled = unref(tabsList).length === 1;
+  const isDisabled = computed(() => unref(tabsList).length === 1);
 
   watch(
     () => route.fullPath,

+ 34 - 29
src/views/list/basicList/index.vue

@@ -39,7 +39,7 @@
         </template>
       </BasicTable>
     </el-card>
-    <el-modal v-model:show="showModal" :show-icon="false" preset="dialog" title="新建">
+    <el-dialog v-model="showModal" title="新建" width="30%" draggable>
       <el-form
         :model="formParams"
         :rules="rules"
@@ -48,24 +48,24 @@
         :label-width="80"
         class="py-4"
       >
-        <el-form-item label="名称" path="name">
+        <el-form-item label="名称" prop="name">
           <el-input placeholder="请输入名称" v-model="formParams.name" />
         </el-form-item>
-        <el-form-item label="地址" path="address">
+        <el-form-item label="地址" prop="address">
           <el-input type="textarea" placeholder="请输入地址" v-model="formParams.address" />
         </el-form-item>
-        <el-form-item label="日期" path="date">
+        <el-form-item label="日期" prop="date">
           <el-date-picker type="datetime" placeholder="请选择日期" v-model="formParams.date" />
         </el-form-item>
       </el-form>
 
-      <template #action>
+      <template #footer>
         <el-space>
           <el-button @click="() => (showModal = false)">取消</el-button>
-          <el-button type="info" :loading="formBtnLoading" @click="confirmForm">确定</el-button>
+          <el-button type="primary" :loading="formBtnLoading" @click="confirmForm">确定</el-button>
         </el-space>
       </template>
-    </el-modal>
+    </el-dialog>
   </PageWrapper>
 </template>
 
@@ -81,22 +81,27 @@
   import { renderIcon } from '@/utils';
 
   const rules: FormRules = {
-    name: {
-      required: true,
-      trigger: 'blur',
-      message: '请输入名称',
-    },
-    address: {
-      required: true,
-      trigger: 'blur',
-      message: '请输入地址',
-    },
-    date: {
-      type: 'number',
-      required: true,
-      trigger: ['blur', 'change'],
-      message: '请选择日期',
-    },
+    name: [
+      {
+        required: true,
+        trigger: 'blur',
+        message: '请输入名称',
+      },
+    ],
+    address: [
+      {
+        required: true,
+        trigger: 'blur',
+        message: '请输入地址',
+      },
+    ],
+    date: [
+      {
+        required: true,
+        trigger: ['blur', 'change'],
+        message: '请选择日期',
+      },
+    ],
   };
 
   const schemas: FormSchema[] = [
@@ -186,7 +191,7 @@
   const formParams = reactive({
     name: '',
     address: '',
-    date: null,
+    date: '',
   });
 
   const params = ref({
@@ -285,20 +290,20 @@
     actionRef.value.reload();
   }
 
-  function confirmForm(e) {
-    e.preventDefault();
+  function confirmForm() {
+    if (!formRef.value) return;
     formBtnLoading.value = true;
-    formRef.value.validate((errors) => {
-      if (!errors) {
+    formRef.value.validate((valid) => {
+      if (valid) {
         ElMessage.success('新建成功');
         setTimeout(() => {
           showModal.value = false;
           reloadTable();
         });
       } else {
+        formBtnLoading.value = false;
         ElMessage.error('请填写完整信息');
       }
-      formBtnLoading.value = false;
     });
   }
 

+ 1 - 1
src/views/system/dictionary/dictionary.vue

@@ -342,4 +342,4 @@
   onMounted(() => {});
 </script>
 
-<style lang="less" setup></style>
+<style lang="scss" setup></style>

+ 1 - 1
src/views/system/menu/menu.vue

@@ -244,4 +244,4 @@
   }
 </script>
 
-<style lang="less" sctep></style>
+<style lang="scss" sctep></style>