浏览代码

Merge branch 'v5.0.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v5.0.0dev

liaofei 2 年之前
父节点
当前提交
8bb5001dcb
共有 100 个文件被更改,包括 16018 次插入2631 次删除
  1. 1 1
      crmeb/app/adminapi/controller/v1/setting/SystemMenus.php
  2. 1 0
      crmeb/app/adminapi/controller/v1/system/SystemFile.php
  3. 4 2
      crmeb/app/api/controller/v1/order/StoreOrderController.php
  4. 1 1
      crmeb/app/services/system/admin/SystemAdminServices.php
  5. 1 1
      crmeb/app/services/system/log/SystemFileInfoServices.php
  6. 15 10
      crmeb/crmeb/command/Util.php
  7. 14862 1517
      crmeb/public/install/crmeb.sql
  8. 10 1
      crmeb/public/install/index.php
  9. 5 0
      template/admin/package-lock.json
  10. 1 1
      template/admin/src/api/export.js
  11. 2 2
      template/admin/src/api/systemCodeGeneration.js
  12. 1 2
      template/admin/src/assets/iconfont/iconfont.js
  13. 4 6
      template/admin/src/components/cropperImg/index.vue
  14. 0 1
      template/admin/src/components/customerInfo/index.vue
  15. 2 2
      template/admin/src/components/diyComponents/c_upload_img.vue
  16. 1 1
      template/admin/src/components/diyComponents/c_upload_list.vue
  17. 0 1
      template/admin/src/components/main/components/fullscreen/fullscreen.vue
  18. 1 1
      template/admin/src/components/main/components/header-bar/header-bar.less
  19. 1 5
      template/admin/src/components/main/components/header-bar/header-bar.vue
  20. 4 2
      template/admin/src/components/main/components/side-menu/side-menu.less
  21. 2 2
      template/admin/src/components/main/components/side-menu/side-menu.vue
  22. 3 3
      template/admin/src/components/main/components/tags-nav/tags-nav.less
  23. 2 2
      template/admin/src/components/main/main.less
  24. 2 2
      template/admin/src/components/mobileConfigRightDiy/c_hot_imgs.vue
  25. 1 1
      template/admin/src/components/mobileConfigRightDiy/c_menu_list.vue
  26. 1 1
      template/admin/src/components/mobileConfigRightDiy/c_upload_img.vue
  27. 1 1
      template/admin/src/components/modelSure/modelSure.vue
  28. 4 4
      template/admin/src/components/newsCategory/index.vue
  29. 1 1
      template/admin/src/components/searchFrom/searchFrom.vue
  30. 1 1
      template/admin/src/i18n/index.js
  31. 157 156
      template/admin/src/i18n/lang/en.js
  32. 1 1
      template/admin/src/i18n/lang/zh-cn.js
  33. 157 157
      template/admin/src/i18n/lang/zh-tw.js
  34. 11 11
      template/admin/src/i18n/pages/home/en.js
  35. 11 11
      template/admin/src/i18n/pages/home/zh-cn.js
  36. 11 11
      template/admin/src/i18n/pages/home/zh-tw.js
  37. 15 15
      template/admin/src/i18n/pages/login/en.js
  38. 16 16
      template/admin/src/i18n/pages/login/zh-cn.js
  39. 15 15
      template/admin/src/i18n/pages/login/zh-tw.js
  40. 0 1
      template/admin/src/layout/component/aside.vue
  41. 4 2
      template/admin/src/layout/component/columnsAside.vue
  42. 16 16
      template/admin/src/layout/component/header.vue
  43. 82 82
      template/admin/src/layout/component/main.vue
  44. 19 19
      template/admin/src/layout/main/classic.vue
  45. 22 22
      template/admin/src/layout/main/columns.vue
  46. 31 31
      template/admin/src/layout/main/defaults.vue
  47. 7 7
      template/admin/src/layout/main/transverse.vue
  48. 0 1
      template/admin/src/layout/navBars/breadcrumb/index.vue
  49. 97 90
      template/admin/src/layout/navBars/breadcrumb/search.vue
  50. 10 4
      template/admin/src/layout/navBars/breadcrumb/setings.vue
  51. 104 98
      template/admin/src/layout/navBars/tagsView/contextmenu.vue
  52. 0 6
      template/admin/src/layout/navBars/tagsView/tagsView.vue
  53. 39 39
      template/admin/src/layout/routerView/iframes.vue
  54. 70 70
      template/admin/src/layout/routerView/link.vue
  55. 0 1
      template/admin/src/libs/request.js
  56. 0 2
      template/admin/src/libs/system/index.js
  57. 1 1
      template/admin/src/pages/app/routine/download/index.vue
  58. 1 1
      template/admin/src/pages/app/wechat/menus/index.vue
  59. 1 3
      template/admin/src/pages/app/wechat/reply/follow.vue
  60. 4 4
      template/admin/src/pages/app/wechat/user/tag.vue
  61. 1 1
      template/admin/src/pages/app/wechat/user/user.vue
  62. 4 2
      template/admin/src/pages/cms/addArticle/index.vue
  63. 54 36
      template/admin/src/pages/crud/index.vue
  64. 1 1
      template/admin/src/pages/division/agent/agreement.vue
  65. 0 1
      template/admin/src/pages/finance/billingRecords/index.vue
  66. 1 1
      template/admin/src/pages/finance/commission/index.vue
  67. 1 1
      template/admin/src/pages/finance/financialRecords/bill/index.vue
  68. 2 2
      template/admin/src/pages/finance/userExtract/index.vue
  69. 0 1
      template/admin/src/pages/kefu/pc/components/emoji.vue
  70. 0 1
      template/admin/src/pages/marketing/live/add_goods.vue
  71. 1 1
      template/admin/src/pages/marketing/lottery/addGoods.vue
  72. 1 1
      template/admin/src/pages/marketing/lottery/index.vue
  73. 1 1
      template/admin/src/pages/marketing/point_statistic/index.vue
  74. 57 57
      template/admin/src/pages/marketing/storeBargain/statistics.vue
  75. 0 1
      template/admin/src/pages/marketing/storeCombination/combinaList.vue
  76. 1 1
      template/admin/src/pages/marketing/storeCombination/statistics.vue
  77. 6 1
      template/admin/src/pages/marketing/storeIntegralOrder/components/tableFrom.vue
  78. 1 1
      template/admin/src/pages/marketing/storePresell/index.vue
  79. 0 1
      template/admin/src/pages/notify/smsPay/index.vue
  80. 8 5
      template/admin/src/pages/notify/smsTemplateApply/index.vue
  81. 2 2
      template/admin/src/pages/order/orderList/components/tableFrom.vue
  82. 3 1
      template/admin/src/pages/order/orderList/handle/orderDetails.vue
  83. 0 1
      template/admin/src/pages/product/productAdd/taoBao.vue
  84. 2 2
      template/admin/src/pages/setting/devise/diyIndex.vue
  85. 0 1
      template/admin/src/pages/setting/devise/index.vue
  86. 3 1
      template/admin/src/pages/setting/devise/list.vue
  87. 0 1
      template/admin/src/pages/setting/devisePage/index.vue
  88. 4 1
      template/admin/src/pages/setting/devisePage/list.vue
  89. 4 4
      template/admin/src/pages/setting/membershipLevel/index.vue
  90. 4 4
      template/admin/src/pages/setting/multiLanguage/langList.vue
  91. 1 1
      template/admin/src/pages/setting/storage/index.vue
  92. 0 1
      template/admin/src/pages/setting/systemMenus/components/menusFrom.vue
  93. 3 8
      template/admin/src/pages/setting/systemMenus/index.vue
  94. 0 9
      template/admin/src/pages/setting/systemOutInterface/debugging.vue
  95. 6 3
      template/admin/src/pages/setting/systemOutInterface/index.vue
  96. 0 2
      template/admin/src/pages/setting/systemOutInterface/request.js
  97. 1 1
      template/admin/src/pages/setting/user/index.vue
  98. 7 2
      template/admin/src/pages/setting/verifyOrder/index.vue
  99. 1 1
      template/admin/src/pages/statistic/balance/index.vue
  100. 0 0
      template/admin/src/pages/statistic/user/index.vue

+ 1 - 1
crmeb/app/adminapi/controller/v1/setting/SystemMenus.php

@@ -142,7 +142,7 @@ class SystemMenus extends AuthController
             if ($attPath) {
                 $pathData = [];
                 foreach ($attPath as $vv) {
-                    if (strstr($vv, '<') === false || strstr($vv, '?>') === false) {
+                    if (strstr($vv, '<') === false) {
                         $pathData[] = $vv;
                     }
                 }

+ 1 - 0
crmeb/app/adminapi/controller/v1/system/SystemFile.php

@@ -95,6 +95,7 @@ class SystemFile extends AuthController
             ['full_path', ''],
             ['mark', ''],
         ], true);
+        $full_path = $this->request->param('full_path');
         if ($full_path == '') return app('json')->fail(100100);
         $this->services->fileMarkSave($full_path, $mark);
         return app('json')->success(100000);

+ 4 - 2
crmeb/app/api/controller/v1/order/StoreOrderController.php

@@ -291,10 +291,12 @@ class StoreOrderController
                         return app('json')->status('pay_error', $pay);
                 }
             case PayServices::OFFLINE_PAY:
-                if ($this->services->setOrderTypePayOffline($order['order_id']))
+                if ($this->services->setOrderTypePayOffline($order['order_id'])) {
+                    event('NoticeListener', [$order, 'admin_pay_success_code']);
                     return app('json')->status('success', 410203);
-                else
+                } else {
                     return app('json')->status('success', 410216);
+                }
             default:
                 $payInfo = $payServices->beforePay($order->toArray(), $paytype, ['quitUrl' => $quitUrl]);
                 return app('json')->status($payInfo['status'], $payInfo['payInfo']);

+ 1 - 1
crmeb/app/services/system/admin/SystemAdminServices.php

@@ -136,7 +136,7 @@ class SystemAdminServices extends BaseServices
             'user_info' => [
                 'id' => $adminInfo->getData('id'),
                 'account' => $adminInfo->getData('account'),
-                'head_pic' => $adminInfo->getData('head_pic'),
+                'head_pic' => get_file_link($adminInfo->getData('head_pic')),
                 'level' => $adminInfo->getData('level'),
                 'real_name' => $adminInfo->getData('real_name'),
             ],

+ 1 - 1
crmeb/app/services/system/log/SystemFileInfoServices.php

@@ -25,7 +25,7 @@ class SystemFileInfoServices extends BaseServices
     public function syncfile()
     {
         $list = $this->flattenArray($this->scanDirectory());
-//        $this->dao->saveAll($list);
+        $this->dao->saveAll($list);
     }
 
     public function scanDirectory($dir = '')

+ 15 - 10
crmeb/crmeb/command/Util.php

@@ -73,20 +73,25 @@ class Util extends Command
         $valueJosn = str_replace('https://', 'https:\\\/\\\/', $valueJosn);
         $prefix = Config::get('database.connections.' . Config::get('database.default') . '.prefix');
         $sql = [
-            "UPDATE `{$prefix}system_attachment` SET `att_dir` = replace(att_dir ,'{$siteUrl}','{$url}'),`satt_dir` = replace(satt_dir ,'{$siteUrl}','{$url}')",
-            "UPDATE `{$prefix}store_product` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`slider_image` = replace(slider_image ,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}article` SET `image_input` = replace(`image_input` ,'{$siteUrl}','{$url}')",
+            "UPDATE `{$prefix}article_category` SET `image` = replace(`image` ,'{$siteUrl}','{$url}')",
+            "UPDATE `{$prefix}article_content` SET `content` = replace(`content` ,'{$siteUrl}','{$url}')",
+            "UPDATE `{$prefix}diy` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}'),`default_value` = replace(default_value ,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}luck_lottery` SET `image` = replace(image ,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}luck_prize` SET `image` = replace(image ,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}store_bargain` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}store_category` SET `pic` = replace(`pic` ,'{$siteUrl}','{$url}'),`big_pic` = replace(`big_pic` ,'{$siteUrl}','{$url}')",
+            "UPDATE `{$prefix}store_combination` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}store_integral` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}store_product` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`slider_image` = replace(slider_image ,'{$siteUrlJosn}','{$valueJosn}'),`recommend_image` = replace(recommend_image ,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}store_product_attr_result` SET `result` = replace(result ,'{$siteUrl}','{$url}')",
             "UPDATE `{$prefix}store_product_attr_value` SET `image` = replace(image ,'{$siteUrl}','{$url}')",
+            "UPDATE `{$prefix}store_product_description` SET `description`= replace(description,'{$siteUrl}','{$url}')",
             "UPDATE `{$prefix}store_seckill` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
-            "UPDATE `{$prefix}store_combination` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
-            "UPDATE `{$prefix}store_bargain` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
+            "UPDATE `{$prefix}system_attachment` SET `att_dir` = replace(att_dir ,'{$siteUrl}','{$url}'),`satt_dir` = replace(satt_dir ,'{$siteUrl}','{$url}')",
             "UPDATE `{$prefix}system_config` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
-            "UPDATE `{$prefix}article_category` SET `image` = replace(`image` ,'{$siteUrl}','{$url}')",
-            "UPDATE `{$prefix}article` SET `image_input` = replace(`image_input` ,'{$siteUrl}','{$url}')",
-            "UPDATE `{$prefix}article_content` SET `content` = replace(`content` ,'{$siteUrl}','{$url}')",
-            "UPDATE `{$prefix}store_category` SET `pic` = replace(`pic` ,'{$siteUrl}','{$url}')",
             "UPDATE `{$prefix}system_group_data` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
-            "UPDATE `{$prefix}diy` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
-            "UPDATE `{$prefix}store_product_description` SET `description`= replace(description,'{$siteUrl}','{$url}')"
+            "UPDATE `{$prefix}user` SET `avatar` = replace(avatar ,'{$siteUrlJosn}','{$valueJosn}')",
         ];
 
         return Db::transaction(function () use ($sql) {

文件差异内容过多而无法显示
+ 14862 - 1517
crmeb/public/install/crmeb.sql


+ 10 - 1
crmeb/public/install/index.php

@@ -406,7 +406,16 @@ switch ($step) {
             $res = mysqli_query($conn, $addadminsql);
             $res2 = true;
             if (isset($_SERVER['SERVER_NAME'])) {
-                $site_url = '\'"http://' . $_SERVER['SERVER_NAME'] . '"\'';
+                if (isset($_SERVER['REQUEST_SCHEME'])) {
+                    $request_scheme = $_SERVER['REQUEST_SCHEME'];
+                } else {
+                    if ($_SERVER['HTTPS'] == 'on') {
+                        $request_scheme = 'https';
+                    } else {
+                        $request_scheme = 'http';
+                    }
+                }
+                $site_url = '\'"' . $request_scheme . '://' . $_SERVER['SERVER_NAME'] . '"\'';
                 $res2 = mysqli_query($conn, 'UPDATE `' . $dbPrefix . 'system_config` SET `value`=' . $site_url . ' WHERE `menu_name`="site_url"');
             }
             $arr = array('n' => 999999, 'count' => $counts, 'msg' => '安装完成', 'time' => date('Y-m-d H:i:s'));

+ 5 - 0
template/admin/package-lock.json

@@ -23078,6 +23078,11 @@
         "diff-match-patch": "^1.0.0"
       }
     },
+    "vue-cropper": {
+      "version": "0.5.11",
+      "resolved": "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-0.5.11.tgz",
+      "integrity": "sha512-UeA3qL2BLCTGkOEAxEsxSNFO+qLYAn6YRHv4oS32cP9lMhF1vFmnAf/z+ZamtR0/Fh3sbZeZUCLVR2Ol2/dpTQ=="
+    },
     "vue-eslint-parser": {
       "version": "7.11.0",
       "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",

+ 1 - 1
template/admin/src/api/export.js

@@ -84,4 +84,4 @@ export function exportmberCardList(id) {
     url: `/export/member_card/${id}`,
     method: 'get',
   });
-}
+}

+ 2 - 2
template/admin/src/api/systemCodeGeneration.js

@@ -71,10 +71,10 @@ export function crudDownload(id) {
 /**
  * @description 代码生成 - 文件编辑
  */
-export function crudSaveFile(id,data) {
+export function crudSaveFile(id, data) {
   return request({
     url: `/system/crud/save_file/${id}`,
     method: 'post',
-    data
+    data,
   });
 }

+ 1 - 2
template/admin/src/assets/iconfont/iconfont.js

@@ -16,8 +16,7 @@
       document.write(
         '<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>',
       );
-    } catch (a) {
-    }
+    } catch (a) {}
   }
   function t() {
     o || ((o = !0), h());

+ 4 - 6
template/admin/src/components/cropperImg/index.vue

@@ -69,14 +69,13 @@ export default {
   components: {
     VueCropper,
   },
-  props: ['Name'],
   data() {
     return {
-      name: this.Name,
+      name: '',
       resImg: '',
       previews: {},
       option: {
-        img: this.Name, //裁剪图片的地址
+        img: '', //裁剪图片的地址
         outputSize: 1, //裁剪生成图片的质量(可选0.1 - 1)
         outputType: 'png', //裁剪生成图片的格式(jpeg || png || webp)
         info: true, //图片大小信息
@@ -84,8 +83,8 @@ export default {
         autoCrop: true, //是否默认生成截图框
         autoCropWidth: 200, //默认生成截图框宽度
         autoCropHeight: 200, //默认生成截图框高度
-        fixed: false, //是否开启截图框宽高固定比例
-        fixedNumber: [1.53, 1], //截图框的宽高比例
+        fixed: true, //是否开启截图框宽高固定比例
+        fixedNumber: [1, 1], //截图框的宽高比例
         full: false, //false按原比例裁切图片,不失真
         fixedBox: false, //固定截图框大小,不允许改变
         canMove: true, //上传图片是否可以移动
@@ -183,7 +182,6 @@ export default {
       const formData = new FormData();
       formData.append('file', file);
       fileUpload(formData).then((res) => {
-        console.log(res);
         if (res.status == 200) {
           this.$emit('uploadImgSuccess', res.data);
         } else {

+ 0 - 1
template/admin/src/components/customerInfo/index.vue

@@ -62,7 +62,6 @@
         <span v-else-if="row.user_type === 'h5'">H5</span>
         <span v-else-if="row.user_type === 'pc'">PC</span>
         <span v-else>--</span>
-
       </template>
       <template slot-scope="{ row, index }" slot="sex">
         <span v-show="row.sex === 1">男</span>

+ 2 - 2
template/admin/src/components/diyComponents/c_upload_img.vue

@@ -32,7 +32,7 @@
 
 <script>
 import { mapState } from 'vuex';
-import settings  from '@/setting'
+import settings from '@/setting';
 import uploadPictures from '@/components/uploadPictures';
 export default {
   name: 'c_upload_img',
@@ -105,7 +105,7 @@ export default {
         'test-dialog',
         function (editor, uiName) {
           let dialog = new window.UE.ui.Dialog({
-            iframeUrl: settings.routePre +'/widget.images/index.html?fodder=dialog',
+            iframeUrl: settings.routePre + '/widget.images/index.html?fodder=dialog',
             editor: editor,
             name: uiName,
             title: '上传图片',

+ 1 - 1
template/admin/src/components/diyComponents/c_upload_list.vue

@@ -82,7 +82,7 @@
 import linkaddress from '@/components/linkaddress';
 
 import uploadPictures from '@/components/uploadPictures';
-import settings  from '@/setting'
+import settings from '@/setting';
 
 import vuedraggable from 'vuedraggable';
 export default {

+ 0 - 1
template/admin/src/components/main/components/fullscreen/fullscreen.vue

@@ -86,7 +86,6 @@ export default {
 .full-screen-btn-con .ivu-tooltip-rel i {
   font-size: 20px !important;
   color: rgba(0, 0, 0, 0.65);
-
 }
 .full-screen-btn-con .ivu-tooltip-rel {
   height: 50px;

+ 1 - 1
template/admin/src/components/main/components/header-bar/header-bar.less

@@ -6,7 +6,7 @@
   display: flex;
   justify-content: space-between;
 
-  .header-l{
+  .header-l {
     display: flex;
     align-items: center;
   }

+ 1 - 5
template/admin/src/components/main/components/header-bar/header-bar.vue

@@ -5,11 +5,7 @@
       <!-- <span class="i-layout-header-trigger" @click="handleReload">
       <Icon type="ios-refresh" color='#fff' />
     </span> -->
-      <custom-bread-crumb
-        show-icon
-        :list="breadCrumbList"
-        :listLast="crumbPast"
-      ></custom-bread-crumb>
+      <custom-bread-crumb show-icon :list="breadCrumbList" :listLast="crumbPast"></custom-bread-crumb>
     </div>
 
     <div class="custom-content-con">

+ 4 - 2
template/admin/src/components/main/components/side-menu/side-menu.less

@@ -7,14 +7,16 @@
 .side-menu-wrapper {
   user-select: none;
   height: 100%;
-  ::-webkit-scrollbar{width:0;}
+  ::-webkit-scrollbar {
+    width: 0;
+  }
   -ms-overflow-style: none;
   .menu-collapsed {
     height: 100%;
     background-color: @side-dark-theme;
     color: #fff !important;
     overflow-y: scroll;
-    
+
     .ivu-dropdown {
       width: 100%;
       .ivu-dropdown-rel a {

+ 2 - 2
template/admin/src/components/main/components/side-menu/side-menu.vue

@@ -23,7 +23,7 @@
           </template>
         </Menu>
       </div>
-      <div class="child-menu"  v-if="sider.length">
+      <div class="child-menu" v-if="sider.length">
         <div class="cat-name">{{ oneMenuName }}</div>
         <Menu
           ref="childMenu"
@@ -353,7 +353,7 @@ export default {
   .child-menu {
     z-index: 9;
     box-shadow: 2px 0px 4px 0px rgba(0, 0, 0, 0.06);
-    transition: width .2s ease .2s;
+    transition: width 0.2s ease 0.2s;
     overflow: hidden;
     .child-menus {
       width: @side-child-width !important;

+ 3 - 3
template/admin/src/components/main/components/tags-nav/tags-nav.less

@@ -55,8 +55,8 @@
     }
     &.right-btn {
       right: 40px;
-       border-right: 1px solid #f0f0f0;
-       border-left: 1px solid #f0f0f0;
+      border-right: 1px solid #f0f0f0;
+      border-left: 1px solid #f0f0f0;
     }
   }
   .scroll-outer {
@@ -77,7 +77,7 @@
       .ivu-tag-dot-inner {
         transition: background 0.2s ease;
       }
-       .ivu-tag-dot{
+      .ivu-tag-dot {
         border: none !important;
         border-right: 1px solid #f2f2f2 !important;
       }

+ 2 - 2
template/admin/src/components/main/main.less

@@ -21,7 +21,7 @@
     line-height: @bar-height;
   }
   .main-layout-con {
-    height: calc(~"100vh - 60px");
+    height: calc(~'100vh - 60px');
     overflow: hidden;
   }
   .main-content-con {
@@ -78,4 +78,4 @@
 
 .dro-style {
   // padding: 0 !important;
-}
+}

+ 2 - 2
template/admin/src/components/mobileConfigRightDiy/c_hot_imgs.vue

@@ -53,7 +53,7 @@ import vuedraggable from 'vuedraggable';
 import { mapState, mapActions } from 'vuex';
 import uploadPictures from '@/components/uploadPictures';
 import { wechatNewsAddApi, wechatNewsInfotApi } from '@/api/app';
-import settings  from '@/setting'
+import settings from '@/setting';
 export default {
   name: 'c_hot_imgs',
   props: {
@@ -153,7 +153,7 @@ export default {
         'test-dialog',
         function (editor, uiName) {
           let dialog = new window.UE.ui.Dialog({
-            iframeUrl: settings.routePre +'/widget.images/index.html?fodder=dialog',
+            iframeUrl: settings.routePre + '/widget.images/index.html?fodder=dialog',
             editor: editor,
             name: uiName,
             title: '上传图片',

+ 1 - 1
template/admin/src/components/mobileConfigRightDiy/c_menu_list.vue

@@ -82,7 +82,7 @@
 import vuedraggable from 'vuedraggable';
 import uploadPictures from '@/components/uploadPictures';
 import linkaddress from '@/components/linkaddress';
-import settings  from '@/setting'
+import settings from '@/setting';
 export default {
   name: 'c_menu_list',
   props: {

+ 1 - 1
template/admin/src/components/mobileConfigRightDiy/c_upload_img.vue

@@ -35,7 +35,7 @@
 <script>
 import { mapState } from 'vuex';
 import uploadPictures from '@/components/uploadPictures';
-import settings  from '@/setting'
+import settings from '@/setting';
 export default {
   name: 'c_upload_img',
   components: {

+ 1 - 1
template/admin/src/components/modelSure/modelSure.vue

@@ -12,7 +12,7 @@
       <Button type="warning" :loading="modal_loading" @click="ok">确定</Button>
       <Button type="primary" @click="cancel">取消</Button>
     </div>
-  </Modal> 
+  </Modal>
 </template>
 
 <script>

+ 4 - 4
template/admin/src/components/newsCategory/index.vue

@@ -18,8 +18,8 @@
             </Col>
           </Col>
         </Row>
-        <Row type="flex" v-show="$route.path === routePre+'/app/wechat/news_category/index'">
-          <router-link :to="routePre+'/app/wechat/news_category/save/0'">
+        <Row type="flex" v-show="$route.path === routePre + '/app/wechat/news_category/index'">
+          <router-link :to="routePre + '/app/wechat/news_category/save/0'">
             <Button type="primary" class="bnt" icon="md-add">添加图文消息</Button>
           </router-link>
         </Row>
@@ -94,7 +94,7 @@
 import vueWaterfallEasy from 'vue-waterfall-easy';
 import { wechatNewsListApi } from '@/api/app';
 import { mapState } from 'vuex';
-import settings  from '@/setting'
+import settings from '@/setting';
 export default {
   name: 'newsCategory',
   props: {
@@ -134,7 +134,7 @@ export default {
   },
   data() {
     return {
-      routePre: settings.routePre ,
+      routePre: settings.routePre,
       isDel: false,
       imgsArr: [],
       group: 0, // 当前加载的加载图片的次数

+ 1 - 1
template/admin/src/components/searchFrom/searchFrom.vue

@@ -68,7 +68,7 @@ export default {
   },
   data() {
     return {
-      routePro:this.$routeProStr,
+      routePro: this.$routeProStr,
       currentTab: '',
       grid: {
         xl: 8,

+ 1 - 1
template/admin/src/i18n/index.js

@@ -2,7 +2,7 @@
  * @Author: From-wh from-wh@hotmail.com
  * @Date: 2023-03-09 18:02:23
  * @FilePath: /admin/src/i18n/index.js
- * @Description: 
+ * @Description:
  */
 import Vue from 'vue';
 import VueI18n from 'vue-i18n';

+ 157 - 156
template/admin/src/i18n/lang/en.js

@@ -1,159 +1,160 @@
 // 定义内容
 export default {
-	router: {
-		home: 'home',
-		system: 'system',
-		systemMenu: 'systemMenu',
-		systemUser: 'systemUser',
-		limits: 'limits',
-		limitsFrontEnd: 'FrontEnd',
-		limitsFrontEndPage: 'FrontEndPage',
-		limitsFrontEndBtn: 'FrontEndBtn',
-		limitsBackEnd: 'BackEnd',
-		limitsBackEndEndPage: 'BackEndEndPage',
-		menu: 'menu',
-		menu1: 'menu1',
-		menu11: 'menu11',
-		menu12: 'menu12',
-		menu121: 'menu121',
-		menu122: 'menu122',
-		menu13: 'menu13',
-		menu2: 'menu2',
-		funIndex: 'function',
-		funTagsView: 'funTagsView',
-		funSignCanvas: 'Online signature',
-		funCountup: 'countup',
-		funEchartsTree: 'echartsTree',
-		funSelector: 'funSelector',
-		funWangEditor: 'wangEditor',
-		funCropper: 'cropper',
-		funMindMap: 'G6 MindMap',
-		funQrcode: 'qrcode',
-		funEchartsMap: 'EchartsMap',
-		funPrintJs: 'PrintJs',
-		funClipboard: 'Copy cut',
-		funScreenShort: 'screenCapture',
-		pagesIndex: 'pages',
-		pagesFiltering: 'Filtering',
-		pagesFilteringDetails: 'FilteringDetails',
-		pagesFilteringDetails1: 'FilteringDetails1',
-		pagesIocnfont: 'iconfont icon',
-		pagesElement: 'element icon',
-		pagesAwesome: 'awesome icon',
-		pagesCityLinkage: 'CityLinkage',
-		pagesFormAdapt: 'FormAdapt',
-		pagesListAdapt: 'ListAdapt',
-		pagesWaterfall: 'Waterfall',
-		pagesSteps: 'Steps',
-		chartIndex: 'chartIndex',
-		personal: 'personal',
-		tools: 'tools',
-		layoutLinkView: 'LinkView',
-		layoutIfameView: 'IfameView',
-	},
-	staticRoutes: {
-		signIn: 'signIn',
-		notFound: 'notFound',
-		noPower: 'noPower',
-	},
-	user: {
-		title0: 'Component size',
-		title1: 'Language switching',
-		title2: 'Menu search',
-		title3: 'Layout configuration',
-		title4: 'news',
-		title5: 'Full screen on',
-		title6: 'Full screen off',
-		dropdownDefault: 'default',
-		dropdownMedium: 'medium',
-		dropdownSmall: 'small',
-		dropdownMini: 'mini',
-		dropdown1: 'home page',
-		dropdown2: 'Personal Center',
-		dropdown3: '404',
-		dropdown4: '401',
-		dropdown5: 'Log out',
-		dropdown6: 'Code warehouse',
-		searchPlaceholder: 'Menu search: support Chinese, routing path',
-		newTitle: 'notice',
-		newBtn: 'All read',
-		newGo: 'Go to the notification center',
-		newDesc: 'No notice',
-		logOutTitle: 'Tips',
-		logOutMessage: 'This operation will log out. Do you want to continue?',
-		logOutConfirm: 'determine',
-		logOutCancel: 'cancel',
-		logOutExit: 'Exiting',
-		logOutSuccess: 'Exit successfully!',
-	},
-	tagsView: {
-		refresh: 'refresh',
-		close: 'close',
-		closeOther: 'closeOther',
-		closeAll: 'closeAll',
-		fullscreen: 'fullscreen',
-	},
-	notFound: {
-		foundTitle: 'Wrong address input, please re-enter the address~',
-		foundMsg: 'You can check the web address first, and then re-enter or give us feedback.',
-		foundBtn: 'Back to home page',
-	},
-	layout: {
-		configTitle: 'Layout configuration',
-		oneTitle: 'Global Themes',
-		menuBag: 'Menu BG Color',
-		twoTitle: 'Menu / top bar',
-		twoTopBar: 'Top bar background',
-		twoMenuBar: 'Menu background',
-		twoColumnsMenuBar: 'Column menu background',
-		twoTopBarColor: 'Top bar default font color',
-		twoMenuBarColor: 'Menu default font color',
-		twoColumnsMenuBarColor: 'Default font color bar menu',
-		twoIsTopBarColorGradual: 'Top bar gradient',
-		twoIsMenuBarColorGradual: 'Menu gradient',
-		twoIsMenuBarColorHighlight: 'Menu font highlight',
-		threeTitle: 'Interface settings',
-		threeIsCollapse: 'Menu horizontal collapse',
-		threeIsUniqueOpened: 'Menu accordion',
-		threeIsFixedHeader: 'Fixed header',
-		threeIsClassicSplitMenu: 'Classic layout split menu',
-		threeIsLockScreen: 'Open the lock screen',
-		threeLockScreenTime: 'screen locking(s/s)',
-		fourTitle: 'Interface display',
-		fourIsShowLogo: 'Sidebar logo',
-		fourIsBreadcrumb: 'Open breadcrumb',
-		fourIsBreadcrumbIcon: 'Open breadcrumb icon',
-		fourIsTagsview: 'Open tagsview',
-		fourIsTagsviewIcon: 'Open tagsview Icon',
-		fourIsFooter: 'Open footer',
-		fourIsGrayscale: 'Grey model',
-		fourIsInvert: 'Color weak mode',
-		fourIsDark: 'Dark Mode',
-		fourIsWartermark: 'Turn on watermark',
-		fourWartermarkText: 'Watermark copy',
-		fiveTitle: 'Other settings',
-		fiveTagsStyle: 'Tagsview style',
-		themeStyle: 'Theme',
-		fiveAnimation: 'page animation',
-		fiveColumnsAsideStyle: 'Column style',
-		fiveColumnsAsideLayout: 'Column layout',
-		sixTitle: 'Layout switch',
-		sixDefaults: 'One',
-		sixClassic: 'Two',
-		sixTransverse: 'Three',
-		sixColumns: 'Four',
-		tipText: 'Click the button below to copy the layout configuration to `/src/store/modules/themeConfig.js` It has been modified in.',
-		copyText: 'replication configuration',
-		resetText: 'restore default',
-		copyTextSuccess: 'Copy succeeded!',
-		copyTextError: 'Copy failed!',
-	},
-	upgrade: {
-		title: 'New version',
-		msg: 'The new version is available, please update it now! Dont worry, the update is fast!',
-		desc: 'Prompt: Update will restore the default configuration',
-		btnOne: 'Cruel refusal',
-		btnTwo: 'Update now',
-		btnTwoLoading: 'Updating',
-	},
+  router: {
+    home: 'home',
+    system: 'system',
+    systemMenu: 'systemMenu',
+    systemUser: 'systemUser',
+    limits: 'limits',
+    limitsFrontEnd: 'FrontEnd',
+    limitsFrontEndPage: 'FrontEndPage',
+    limitsFrontEndBtn: 'FrontEndBtn',
+    limitsBackEnd: 'BackEnd',
+    limitsBackEndEndPage: 'BackEndEndPage',
+    menu: 'menu',
+    menu1: 'menu1',
+    menu11: 'menu11',
+    menu12: 'menu12',
+    menu121: 'menu121',
+    menu122: 'menu122',
+    menu13: 'menu13',
+    menu2: 'menu2',
+    funIndex: 'function',
+    funTagsView: 'funTagsView',
+    funSignCanvas: 'Online signature',
+    funCountup: 'countup',
+    funEchartsTree: 'echartsTree',
+    funSelector: 'funSelector',
+    funWangEditor: 'wangEditor',
+    funCropper: 'cropper',
+    funMindMap: 'G6 MindMap',
+    funQrcode: 'qrcode',
+    funEchartsMap: 'EchartsMap',
+    funPrintJs: 'PrintJs',
+    funClipboard: 'Copy cut',
+    funScreenShort: 'screenCapture',
+    pagesIndex: 'pages',
+    pagesFiltering: 'Filtering',
+    pagesFilteringDetails: 'FilteringDetails',
+    pagesFilteringDetails1: 'FilteringDetails1',
+    pagesIocnfont: 'iconfont icon',
+    pagesElement: 'element icon',
+    pagesAwesome: 'awesome icon',
+    pagesCityLinkage: 'CityLinkage',
+    pagesFormAdapt: 'FormAdapt',
+    pagesListAdapt: 'ListAdapt',
+    pagesWaterfall: 'Waterfall',
+    pagesSteps: 'Steps',
+    chartIndex: 'chartIndex',
+    personal: 'personal',
+    tools: 'tools',
+    layoutLinkView: 'LinkView',
+    layoutIfameView: 'IfameView',
+  },
+  staticRoutes: {
+    signIn: 'signIn',
+    notFound: 'notFound',
+    noPower: 'noPower',
+  },
+  user: {
+    title0: 'Component size',
+    title1: 'Language switching',
+    title2: 'Menu search',
+    title3: 'Layout configuration',
+    title4: 'news',
+    title5: 'Full screen on',
+    title6: 'Full screen off',
+    dropdownDefault: 'default',
+    dropdownMedium: 'medium',
+    dropdownSmall: 'small',
+    dropdownMini: 'mini',
+    dropdown1: 'home page',
+    dropdown2: 'Personal Center',
+    dropdown3: '404',
+    dropdown4: '401',
+    dropdown5: 'Log out',
+    dropdown6: 'Code warehouse',
+    searchPlaceholder: 'Menu search: support Chinese, routing path',
+    newTitle: 'notice',
+    newBtn: 'All read',
+    newGo: 'Go to the notification center',
+    newDesc: 'No notice',
+    logOutTitle: 'Tips',
+    logOutMessage: 'This operation will log out. Do you want to continue?',
+    logOutConfirm: 'determine',
+    logOutCancel: 'cancel',
+    logOutExit: 'Exiting',
+    logOutSuccess: 'Exit successfully!',
+  },
+  tagsView: {
+    refresh: 'refresh',
+    close: 'close',
+    closeOther: 'closeOther',
+    closeAll: 'closeAll',
+    fullscreen: 'fullscreen',
+  },
+  notFound: {
+    foundTitle: 'Wrong address input, please re-enter the address~',
+    foundMsg: 'You can check the web address first, and then re-enter or give us feedback.',
+    foundBtn: 'Back to home page',
+  },
+  layout: {
+    configTitle: 'Layout configuration',
+    oneTitle: 'Global Themes',
+    menuBag: 'Menu BG Color',
+    twoTitle: 'Menu / top bar',
+    twoTopBar: 'Top bar background',
+    twoMenuBar: 'Menu background',
+    twoColumnsMenuBar: 'Column menu background',
+    twoTopBarColor: 'Top bar default font color',
+    twoMenuBarColor: 'Menu default font color',
+    twoColumnsMenuBarColor: 'Default font color bar menu',
+    twoIsTopBarColorGradual: 'Top bar gradient',
+    twoIsMenuBarColorGradual: 'Menu gradient',
+    twoIsMenuBarColorHighlight: 'Menu font highlight',
+    threeTitle: 'Interface settings',
+    threeIsCollapse: 'Menu horizontal collapse',
+    threeIsUniqueOpened: 'Menu accordion',
+    threeIsFixedHeader: 'Fixed header',
+    threeIsClassicSplitMenu: 'Classic layout split menu',
+    threeIsLockScreen: 'Open the lock screen',
+    threeLockScreenTime: 'screen locking(s/s)',
+    fourTitle: 'Interface display',
+    fourIsShowLogo: 'Sidebar logo',
+    fourIsBreadcrumb: 'Open breadcrumb',
+    fourIsBreadcrumbIcon: 'Open breadcrumb icon',
+    fourIsTagsview: 'Open tagsview',
+    fourIsTagsviewIcon: 'Open tagsview Icon',
+    fourIsFooter: 'Open footer',
+    fourIsGrayscale: 'Grey model',
+    fourIsInvert: 'Color weak mode',
+    fourIsDark: 'Dark Mode',
+    fourIsWartermark: 'Turn on watermark',
+    fourWartermarkText: 'Watermark copy',
+    fiveTitle: 'Other settings',
+    fiveTagsStyle: 'Tagsview style',
+    themeStyle: 'Theme',
+    fiveAnimation: 'page animation',
+    fiveColumnsAsideStyle: 'Column style',
+    fiveColumnsAsideLayout: 'Column layout',
+    sixTitle: 'Layout switch',
+    sixDefaults: 'One',
+    sixClassic: 'Two',
+    sixTransverse: 'Three',
+    sixColumns: 'Four',
+    tipText:
+      'Click the button below to copy the layout configuration to `/src/store/modules/themeConfig.js` It has been modified in.',
+    copyText: 'replication configuration',
+    resetText: 'restore default',
+    copyTextSuccess: 'Copy succeeded!',
+    copyTextError: 'Copy failed!',
+  },
+  upgrade: {
+    title: 'New version',
+    msg: 'The new version is available, please update it now! Dont worry, the update is fast!',
+    desc: 'Prompt: Update will restore the default configuration',
+    btnOne: 'Cruel refusal',
+    btnTwo: 'Update now',
+    btnTwoLoading: 'Updating',
+  },
 };

+ 1 - 1
template/admin/src/i18n/lang/zh-cn.js

@@ -136,7 +136,7 @@ export default {
     fiveTagsStyle: '历史菜单风格',
     themeStyle: '主题',
     fiveAnimation: '主页面切换动画',
-    fiveColumnsAsideStyle: '分栏高亮风格',
+    fiveColumnsAsideStyle: '菜单高亮风格',
     fiveColumnsAsideLayout: '分栏布局风格',
     sixTitle: '布局切换',
     sixDefaults: '默认',

+ 157 - 157
template/admin/src/i18n/lang/zh-tw.js

@@ -1,160 +1,160 @@
 // 定义内容
 export default {
-	router: {
-		home: '首頁',
-		system: '系統設置',
-		systemMenu: '選單管理',
-		systemUser: '用戶管理',
-		limits: '許可權管理',
-		limitsFrontEnd: '前端控制',
-		limitsFrontEndPage: '頁面許可權',
-		limitsFrontEndBtn: '按鈕許可權',
-		limitsBackEnd: '後端控制',
-		limitsBackEndEndPage: '頁面許可權',
-		menu: '選單嵌套',
-		menu1: '選單1',
-		menu11: '選單11',
-		menu12: '選單12',
-		menu121: '選單121',
-		menu122: '選單122',
-		menu13: '選單13',
-		menu2: '選單2',
-		funIndex: '功能',
-		funTagsView: 'tagsView 操作',
-		funSignCanvas: '線上簽名',
-		funCountup: 'countup 數位滾動',
-		funEchartsTree: 'echartsTree 樹圖',
-		funSelector: '圖標選擇器',
-		funWangEditor: 'wangEditor 編輯器',
-		funCropper: 'cropper 圖片裁剪',
-		funMindMap: 'G6 心智圖',
-		funQrcode: 'qrcode 二維碼生成',
-		funEchartsMap: '地理座標/地圖',
-		funPrintJs: '頁面列印',
-		funClipboard: '複製剪切',
-		funScreenShort: '自定義截圖',
-		pagesIndex: '頁面',
-		pagesFiltering: '過濾篩選組件',
-		pagesFilteringDetails: '過濾篩選組件詳情',
-		pagesFilteringDetails1: '過濾篩選組件詳情111',
-		pagesIocnfont: 'iconfont 字體圖標',
-		pagesElement: 'element 字體圖標',
-		pagesAwesome: 'awesome 字體圖標',
-		pagesCityLinkage: '都市多級聯動',
-		pagesFormAdapt: '表單自我調整',
-		pagesListAdapt: '清單自我調整',
-		pagesWaterfall: '瀑布屏',
-		pagesSteps: '步驟條',
-		chartIndex: '大資料圖表',
-		personal: '個人中心',
-		tools: '工具類集合',
-		layoutLinkView: '外鏈',
-		layoutIfameView: '内嵌 iframe',
-	},
-	staticRoutes: {
-		signIn: '登入',
-		notFound: '找不到此頁面',
-		noPower: '沒有許可權',
-	},
-	user: {
-		title0: '組件大小',
-		title1: '語言切換',
-		title2: '選單蒐索',
-		title3: '佈局配寘',
-		title4: '消息',
-		title5: '開全屏',
-		title6: '關全屏',
-		title7: '重繪',
-		dropdownDefault: '默認',
-		dropdownMedium: '中等',
-		dropdownSmall: '小型',
-		dropdownMini: '超小',
-		dropdown1: '首頁',
-		dropdown2: '個人中心',
-		dropdown3: '404',
-		dropdown4: '401',
-		dropdown5: '登出',
-		dropdown6: '程式碼倉庫',
-		searchPlaceholder: '選單蒐索:支援中文、路由路徑',
-		newTitle: '通知',
-		newBtn: '全部已讀',
-		newGo: '前往通知中心',
-		newDesc: '暫無通知',
-		logOutTitle: '提示',
-		logOutMessage: '此操作將登出,是否繼續?',
-		logOutConfirm: '確定',
-		logOutCancel: '取消',
-		logOutExit: '退出中',
-		logOutSuccess: '安全退出成功!',
-	},
-	tagsView: {
-		refresh: '重繪',
-		close: '關閉',
-		closeOther: '關閉其它',
-		closeAll: '全部關閉',
-		fullscreen: '當前頁全屏',
-	},
-	notFound: {
-		foundTitle: '地址輸入錯誤,請重新輸入地址~',
-		foundMsg: '您可以先檢查網址,然後重新輸入或給我們迴響問題。',
-		foundBtn: '返回首頁',
-	},
-	layout: {
-		configTitle: '佈局配寘',
-		oneTitle: '全域主題',
-		menuBag: '菜單背景色',
-		twoTitle: '選單 / 頂欄',
-		twoTopBar: '頂欄背景',
-		twoMenuBar: '選單背景',
-		twoColumnsMenuBar: '分欄選單背景',
-		twoTopBarColor: '頂欄默認字體顏色',
-		twoMenuBarColor: '選單默認字體顏色',
-		twoColumnsMenuBarColor: '分欄選單默認字體顏色',
-		twoIsTopBarColorGradual: '頂欄背景漸變',
-		twoIsMenuBarColorGradual: '選單背景漸變',
-		twoIsMenuBarColorHighlight: '選單字體背景高亮',
-		threeTitle: '介面設定',
-		threeIsCollapse: '選單水准折疊',
-		threeIsUniqueOpened: '選單手風琴',
-		threeIsFixedHeader: '固定 Header',
-		threeIsClassicSplitMenu: '經典佈局分割選單',
-		threeIsLockScreen: '開啟鎖屏',
-		threeLockScreenTime: '自動鎖屏(s/秒)',
-		fourTitle: '介面顯示',
-		fourIsShowLogo: '側邊欄 Logo',
-		fourIsBreadcrumb: '開啟 Breadcrumb',
-		fourIsBreadcrumbIcon: '開啟 Breadcrumb 圖標',
-		fourIsTagsview: '開啟 Tagsview',
-		fourIsTagsviewIcon: '開啟 Tagsview 圖標',
-		fourIsFooter: '開啟 Footer',
-		fourIsGrayscale: '灰色模式',
-		fourIsInvert: '色弱模式',
-		fourIsDark: '深色模式',
-		fourIsWartermark: '開啟浮水印',
-		fourWartermarkText: '浮水印文案',
-		fiveTitle: '其它設定',
-		fiveTagsStyle: 'Tagsview 風格',
-		themeStyle: '主題',
-		fiveAnimation: '主頁面切換動畫',
-		fiveColumnsAsideStyle: '分欄高亮風格',
-		fiveColumnsAsideLayout: '分欄佈局風格',
-		sixTitle: '佈局切換',
-		sixDefaults: '默認',
-		sixClassic: '經典',
-		sixTransverse: '橫向',
-		sixColumns: '分欄',
-		tipText: '點擊下方按鈕,複製佈局配寘去`src/store/modules/themeConfig.js`中修改。',
-		copyText: '一鍵複製配寘',
-		resetText: '一鍵恢復默認',
-		copyTextSuccess: '複製成功!',
-		copyTextError: '複製失敗!',
-	},
-	upgrade: {
-		title: '新版本陞級',
-		msg: '新版本來啦,馬上更新嘗鮮吧! 不用擔心,更新很快的哦!',
-		desc: '提示:更新會還原默認配寘',
-		btnOne: '殘忍拒絕',
-		btnTwo: '馬上更新',
-		btnTwoLoading: '更新中',
-	},
+  router: {
+    home: '首頁',
+    system: '系統設置',
+    systemMenu: '選單管理',
+    systemUser: '用戶管理',
+    limits: '許可權管理',
+    limitsFrontEnd: '前端控制',
+    limitsFrontEndPage: '頁面許可權',
+    limitsFrontEndBtn: '按鈕許可權',
+    limitsBackEnd: '後端控制',
+    limitsBackEndEndPage: '頁面許可權',
+    menu: '選單嵌套',
+    menu1: '選單1',
+    menu11: '選單11',
+    menu12: '選單12',
+    menu121: '選單121',
+    menu122: '選單122',
+    menu13: '選單13',
+    menu2: '選單2',
+    funIndex: '功能',
+    funTagsView: 'tagsView 操作',
+    funSignCanvas: '線上簽名',
+    funCountup: 'countup 數位滾動',
+    funEchartsTree: 'echartsTree 樹圖',
+    funSelector: '圖標選擇器',
+    funWangEditor: 'wangEditor 編輯器',
+    funCropper: 'cropper 圖片裁剪',
+    funMindMap: 'G6 心智圖',
+    funQrcode: 'qrcode 二維碼生成',
+    funEchartsMap: '地理座標/地圖',
+    funPrintJs: '頁面列印',
+    funClipboard: '複製剪切',
+    funScreenShort: '自定義截圖',
+    pagesIndex: '頁面',
+    pagesFiltering: '過濾篩選組件',
+    pagesFilteringDetails: '過濾篩選組件詳情',
+    pagesFilteringDetails1: '過濾篩選組件詳情111',
+    pagesIocnfont: 'iconfont 字體圖標',
+    pagesElement: 'element 字體圖標',
+    pagesAwesome: 'awesome 字體圖標',
+    pagesCityLinkage: '都市多級聯動',
+    pagesFormAdapt: '表單自我調整',
+    pagesListAdapt: '清單自我調整',
+    pagesWaterfall: '瀑布屏',
+    pagesSteps: '步驟條',
+    chartIndex: '大資料圖表',
+    personal: '個人中心',
+    tools: '工具類集合',
+    layoutLinkView: '外鏈',
+    layoutIfameView: '内嵌 iframe',
+  },
+  staticRoutes: {
+    signIn: '登入',
+    notFound: '找不到此頁面',
+    noPower: '沒有許可權',
+  },
+  user: {
+    title0: '組件大小',
+    title1: '語言切換',
+    title2: '選單蒐索',
+    title3: '佈局配寘',
+    title4: '消息',
+    title5: '開全屏',
+    title6: '關全屏',
+    title7: '重繪',
+    dropdownDefault: '默認',
+    dropdownMedium: '中等',
+    dropdownSmall: '小型',
+    dropdownMini: '超小',
+    dropdown1: '首頁',
+    dropdown2: '個人中心',
+    dropdown3: '404',
+    dropdown4: '401',
+    dropdown5: '登出',
+    dropdown6: '程式碼倉庫',
+    searchPlaceholder: '選單蒐索:支援中文、路由路徑',
+    newTitle: '通知',
+    newBtn: '全部已讀',
+    newGo: '前往通知中心',
+    newDesc: '暫無通知',
+    logOutTitle: '提示',
+    logOutMessage: '此操作將登出,是否繼續?',
+    logOutConfirm: '確定',
+    logOutCancel: '取消',
+    logOutExit: '退出中',
+    logOutSuccess: '安全退出成功!',
+  },
+  tagsView: {
+    refresh: '重繪',
+    close: '關閉',
+    closeOther: '關閉其它',
+    closeAll: '全部關閉',
+    fullscreen: '當前頁全屏',
+  },
+  notFound: {
+    foundTitle: '地址輸入錯誤,請重新輸入地址~',
+    foundMsg: '您可以先檢查網址,然後重新輸入或給我們迴響問題。',
+    foundBtn: '返回首頁',
+  },
+  layout: {
+    configTitle: '佈局配寘',
+    oneTitle: '全域主題',
+    menuBag: '菜單背景色',
+    twoTitle: '選單 / 頂欄',
+    twoTopBar: '頂欄背景',
+    twoMenuBar: '選單背景',
+    twoColumnsMenuBar: '分欄選單背景',
+    twoTopBarColor: '頂欄默認字體顏色',
+    twoMenuBarColor: '選單默認字體顏色',
+    twoColumnsMenuBarColor: '分欄選單默認字體顏色',
+    twoIsTopBarColorGradual: '頂欄背景漸變',
+    twoIsMenuBarColorGradual: '選單背景漸變',
+    twoIsMenuBarColorHighlight: '選單字體背景高亮',
+    threeTitle: '介面設定',
+    threeIsCollapse: '選單水准折疊',
+    threeIsUniqueOpened: '選單手風琴',
+    threeIsFixedHeader: '固定 Header',
+    threeIsClassicSplitMenu: '經典佈局分割選單',
+    threeIsLockScreen: '開啟鎖屏',
+    threeLockScreenTime: '自動鎖屏(s/秒)',
+    fourTitle: '介面顯示',
+    fourIsShowLogo: '側邊欄 Logo',
+    fourIsBreadcrumb: '開啟 Breadcrumb',
+    fourIsBreadcrumbIcon: '開啟 Breadcrumb 圖標',
+    fourIsTagsview: '開啟 Tagsview',
+    fourIsTagsviewIcon: '開啟 Tagsview 圖標',
+    fourIsFooter: '開啟 Footer',
+    fourIsGrayscale: '灰色模式',
+    fourIsInvert: '色弱模式',
+    fourIsDark: '深色模式',
+    fourIsWartermark: '開啟浮水印',
+    fourWartermarkText: '浮水印文案',
+    fiveTitle: '其它設定',
+    fiveTagsStyle: 'Tagsview 風格',
+    themeStyle: '主題',
+    fiveAnimation: '主頁面切換動畫',
+    fiveColumnsAsideStyle: '分欄高亮風格',
+    fiveColumnsAsideLayout: '分欄佈局風格',
+    sixTitle: '佈局切換',
+    sixDefaults: '默認',
+    sixClassic: '經典',
+    sixTransverse: '橫向',
+    sixColumns: '分欄',
+    tipText: '點擊下方按鈕,複製佈局配寘去`src/store/modules/themeConfig.js`中修改。',
+    copyText: '一鍵複製配寘',
+    resetText: '一鍵恢復默認',
+    copyTextSuccess: '複製成功!',
+    copyTextError: '複製失敗!',
+  },
+  upgrade: {
+    title: '新版本陞級',
+    msg: '新版本來啦,馬上更新嘗鮮吧! 不用擔心,更新很快的哦!',
+    desc: '提示:更新會還原默認配寘',
+    btnOne: '殘忍拒絕',
+    btnTwo: '馬上更新',
+    btnTwoLoading: '更新中',
+  },
 };

+ 11 - 11
template/admin/src/i18n/pages/home/en.js

@@ -1,14 +1,14 @@
 // 定义内容
 export default {
-	card: {
-		title1: 'My desk',
-		title2: 'Message notification',
-		title3: 'more',
-		title4: 'Marketing recommendation',
-		title5: 'more',
-		title6: 'Inventory operations',
-		title7: 'Performance',
-		title8: 'Out of stock monitoring',
-		title9: 'Performance overtime warning',
-	},
+  card: {
+    title1: 'My desk',
+    title2: 'Message notification',
+    title3: 'more',
+    title4: 'Marketing recommendation',
+    title5: 'more',
+    title6: 'Inventory operations',
+    title7: 'Performance',
+    title8: 'Out of stock monitoring',
+    title9: 'Performance overtime warning',
+  },
 };

+ 11 - 11
template/admin/src/i18n/pages/home/zh-cn.js

@@ -1,14 +1,14 @@
 // 定义内容
 export default {
-	card: {
-		title1: '我的工作台',
-		title2: '消息通知',
-		title3: '更多',
-		title4: '营销推荐',
-		title5: '更多',
-		title6: '库存作业',
-		title7: '履约情况',
-		title8: '缺货监控',
-		title9: '履约超时预警',
-	},
+  card: {
+    title1: '我的工作台',
+    title2: '消息通知',
+    title3: '更多',
+    title4: '营销推荐',
+    title5: '更多',
+    title6: '库存作业',
+    title7: '履约情况',
+    title8: '缺货监控',
+    title9: '履约超时预警',
+  },
 };

+ 11 - 11
template/admin/src/i18n/pages/home/zh-tw.js

@@ -1,14 +1,14 @@
 // 定义内容
 export default {
-	card: {
-		title1: '我的工作臺',
-		title2: '消息通知',
-		title3: '更多',
-		title4: '行銷推薦',
-		title5: '更多',
-		title6: '庫存工作',
-		title7: '履約情况',
-		title8: '缺貨監控',
-		title9: '履約超時預警',
-	},
+  card: {
+    title1: '我的工作臺',
+    title2: '消息通知',
+    title3: '更多',
+    title4: '行銷推薦',
+    title5: '更多',
+    title6: '庫存工作',
+    title7: '履約情况',
+    title8: '缺貨監控',
+    title9: '履約超時預警',
+  },
 };

+ 15 - 15
template/admin/src/i18n/pages/login/en.js

@@ -1,18 +1,18 @@
 // 定义内容
 export default {
-	login: {
-		placeholder1: 'The user name admin or not is test',
-		placeholder2: 'Password: 123456',
-		placeholder3: 'Please enter the verification code',
-		btnText: 'Sign in',
-		link: {
-			one1: 'Third party login',
-			one2: 'Links',
-		},
-		signInText: 'welcome back!',
-		copyright: {
-			one5: 'Copyright: Shenzhen XXX Software Technology Co., Ltd',
-			two6: 'Copyright: Shenzhen XXX software technology Guangdong ICP preparation no.05010000',
-		},
-	},
+  login: {
+    placeholder1: 'The user name admin or not is test',
+    placeholder2: 'Password: 123456',
+    placeholder3: 'Please enter the verification code',
+    btnText: 'Sign in',
+    link: {
+      one1: 'Third party login',
+      one2: 'Links',
+    },
+    signInText: 'welcome back!',
+    copyright: {
+      one5: 'Copyright: Shenzhen XXX Software Technology Co., Ltd',
+      two6: 'Copyright: Shenzhen XXX software technology Guangdong ICP preparation no.05010000',
+    },
+  },
 };

+ 16 - 16
template/admin/src/i18n/pages/login/zh-cn.js

@@ -2,23 +2,23 @@
  * @Author: From-wh from-wh@hotmail.com
  * @Date: 2023-03-09 18:02:23
  * @FilePath: /admin/src/i18n/pages/login/zh-cn.js
- * @Description: 
+ * @Description:
  */
 // 定义内容
 export default {
-	login: {
-		placeholder1: '用户名 admin 或不输均为 test',
-		placeholder2: '密码:123456',
-		placeholder3: '请输入验证码',
-		btnText: '登 录',
-		link: {
-			one1: '第三方登录',
-			one2: '友情链接',
-		},
-		signInText: '欢迎回来!',
-		copyright: {
-			one5: '',
-			two6: '',
-		},
-	},
+  login: {
+    placeholder1: '用户名 admin 或不输均为 test',
+    placeholder2: '密码:123456',
+    placeholder3: '请输入验证码',
+    btnText: '登 录',
+    link: {
+      one1: '第三方登录',
+      one2: '友情链接',
+    },
+    signInText: '欢迎回来!',
+    copyright: {
+      one5: '',
+      two6: '',
+    },
+  },
 };

+ 15 - 15
template/admin/src/i18n/pages/login/zh-tw.js

@@ -1,18 +1,18 @@
 // 定义内容
 export default {
-	login: {
-		placeholder1: '用戶名admin或不輸均為test',
-		placeholder2: '密碼:123456',
-		placeholder3: '請輸入驗證碼',
-		btnText: '登 录',
-		link: {
-			one1: '協力廠商登入',
-			one2: '友情連結',
-		},
-		signInText: '歡迎回來!',
-		copyright: {
-			one5: '版權所有:深圳市xxx軟件科技有限公司',
-			two6: 'Copyright: Shenzhen XXX Software Technology 粵ICP備05010000號',
-		},
-	},
+  login: {
+    placeholder1: '用戶名admin或不輸均為test',
+    placeholder2: '密碼:123456',
+    placeholder3: '請輸入驗證碼',
+    btnText: '登 录',
+    link: {
+      one1: '協力廠商登入',
+      one2: '友情連結',
+    },
+    signInText: '歡迎回來!',
+    copyright: {
+      one5: '版權所有:深圳市xxx軟件科技有限公司',
+      two6: 'Copyright: Shenzhen XXX Software Technology 粵ICP備05010000號',
+    },
+  },
 };

+ 0 - 1
template/admin/src/layout/component/aside.vue

@@ -93,7 +93,6 @@ export default {
     });
     if (this.$store.state.themeConfig.themeConfig.layout !== 'columns') {
       this.bus.$on('routesListChange', () => {
-        console.log('变了大哥');
         this.setFilterRoutes();
       });
     }

+ 4 - 2
template/admin/src/layout/component/columnsAside.vue

@@ -8,6 +8,7 @@
           :key="k"
           @click="onColumnsAsideMenuClick(v)"
           ref="columnsAsideOffsetTopRefs"
+          class="layout-columns"
           :class="{ 'layout-columns-active': v.k === liIndex }"
           :title="$t(v.title)"
         >
@@ -63,7 +64,6 @@ export default {
     },
     // 设置分栏布局风格
     setColumnsAsidelayout() {
-      console.log('111');
       return this.$store.state.themeConfig.themeConfig.columnsAsideLayout;
     },
     Layout() {
@@ -74,7 +74,6 @@ export default {
     },
   },
   beforeDestroy() {
-    console.log('zoule');
     this.bus.$off('routesListChange');
   },
   mounted() {
@@ -247,6 +246,9 @@ export default {
         color: var(--prev-bg-columnsMenuBarColor);
       }
     }
+    .layout-columns {
+      transition: 0.3s ease-in-out;
+    }
     .layout-columns-active,
     .layout-columns-active a {
       color: var(--prev-bg-columnsMenuActiveColor);

+ 16 - 16
template/admin/src/layout/component/header.vue

@@ -1,24 +1,24 @@
 <template>
-	<el-header class="layout-header" :height="setHeaderHeight">
-		<NavBarsIndex />
-	</el-header>
+  <el-header class="layout-header" :height="setHeaderHeight">
+    <NavBarsIndex />
+  </el-header>
 </template>
 
 <script>
 import NavBarsIndex from '@/layout/navBars/index.vue';
 export default {
-	name: 'layoutHeader',
-	components: { NavBarsIndex },
-	data() {
-		return {};
-	},
-	computed: {
-		// 设置顶部 header 的具体高度
-		setHeaderHeight() {
-			let { isTagsview, layout } = this.$store.state.themeConfig.themeConfig;
-			if (isTagsview && layout !== 'classic') return '84px';
-			else return '50px';
-		},
-	},
+  name: 'layoutHeader',
+  components: { NavBarsIndex },
+  data() {
+    return {};
+  },
+  computed: {
+    // 设置顶部 header 的具体高度
+    setHeaderHeight() {
+      let { isTagsview, layout } = this.$store.state.themeConfig.themeConfig;
+      if (isTagsview && layout !== 'classic') return '84px';
+      else return '50px';
+    },
+  },
 };
 </script>

+ 82 - 82
template/admin/src/layout/component/main.vue

@@ -1,26 +1,26 @@
 <template>
-	<el-main class="layout-main">
-		<el-scrollbar
-			class="layout-scrollbar"
-			ref="layoutScrollbarRef"
-			v-show="!currentRouteMeta.isLink && !currentRouteMeta.isIframe"
-			:style="{ minHeight: `calc(100vh - ${headerHeight}` }"
-		>
-			<LayoutParentView />
-			<Footers v-if="getThemeConfig.isFooter" />
-		</el-scrollbar>
-		<Links
-			:style="{ height: `calc(100vh - ${headerHeight}` }"
-			:meta="currentRouteMeta"
-			v-if="currentRouteMeta.isLink && !currentRouteMeta.isIframe"
-		/>
-		<Iframes
-			:style="{ height: `calc(100vh - ${headerHeight}` }"
-			:meta="currentRouteMeta"
-			v-if="currentRouteMeta.isLink && currentRouteMeta.isIframe && isShowLink"
-			@getCurrentRouteMeta="onGetCurrentRouteMeta"
-		/>
-	</el-main>
+  <el-main class="layout-main">
+    <el-scrollbar
+      class="layout-scrollbar"
+      ref="layoutScrollbarRef"
+      v-show="!currentRouteMeta.isLink && !currentRouteMeta.isIframe"
+      :style="{ minHeight: `calc(100vh - ${headerHeight}` }"
+    >
+      <LayoutParentView />
+      <Footers v-if="getThemeConfig.isFooter" />
+    </el-scrollbar>
+    <Links
+      :style="{ height: `calc(100vh - ${headerHeight}` }"
+      :meta="currentRouteMeta"
+      v-if="currentRouteMeta.isLink && !currentRouteMeta.isIframe"
+    />
+    <Iframes
+      :style="{ height: `calc(100vh - ${headerHeight}` }"
+      :meta="currentRouteMeta"
+      v-if="currentRouteMeta.isLink && currentRouteMeta.isIframe && isShowLink"
+      @getCurrentRouteMeta="onGetCurrentRouteMeta"
+    />
+  </el-main>
 </template>
 
 <script>
@@ -29,65 +29,65 @@ import Footers from '@/layout/footer/index.vue';
 import Links from '@/layout/routerView/link.vue';
 import Iframes from '@/layout/routerView/iframes.vue';
 export default {
-	name: 'layoutMain',
-	components: { LayoutParentView, Footers, Links, Iframes },
-	data() {
-		return {
-			headerHeight: '',
-			currentRouteMeta: {},
-			isShowLink: false,
-		};
-	},
-	computed: {
-		// 获取布局配置信息
-		getThemeConfig() {
-			return this.$store.state.themeConfig.themeConfig;
-		},
-	},
-	mounted() {
-		this.initHeaderHeight();
-		this.initCurrentRouteMeta(this.$route.meta);
-	},
-	methods: {
-		// 初始化当前路由 meta 信息
-		initCurrentRouteMeta(meta) {
-			this.isShowLink = false;
-			this.currentRouteMeta = meta;
-			setTimeout(() => {
-				this.isShowLink = true;
-			}, 100);
-		},
-		// 设置 main 的高度
-		initHeaderHeight() {
-			let { isTagsview } = this.$store.state.themeConfig.themeConfig;
-			if (isTagsview) return (this.headerHeight = `84px`);
-			else return (this.headerHeight = `50px`);
-		},
-		// 子组件触发更新
-		onGetCurrentRouteMeta() {
-			this.initCurrentRouteMeta(this.$route.meta);
-		},
-	},
-	watch: {
-		// 监听 vuex 数据变化
-		'$store.state.themeConfig.themeConfig': {
-			handler(val) {
-				this.headerHeight = val.isTagsview ? '84px' : '50px';
-				if (val.isFixedHeaderChange !== val.isFixedHeader) {
-					if (!this.$refs.layoutScrollbarRef) return false;
-					this.$refs.layoutScrollbarRef.update();
-				}
-			},
-			deep: true,
-		},
-		// 监听路由的变化
-		$route: {
-			handler(to) {
-				this.initCurrentRouteMeta(to.meta);
-				this.$refs.layoutScrollbarRef.wrap.scrollTop = 0;
-			},
-			deep: true,
-		},
-	},
+  name: 'layoutMain',
+  components: { LayoutParentView, Footers, Links, Iframes },
+  data() {
+    return {
+      headerHeight: '',
+      currentRouteMeta: {},
+      isShowLink: false,
+    };
+  },
+  computed: {
+    // 获取布局配置信息
+    getThemeConfig() {
+      return this.$store.state.themeConfig.themeConfig;
+    },
+  },
+  mounted() {
+    this.initHeaderHeight();
+    this.initCurrentRouteMeta(this.$route.meta);
+  },
+  methods: {
+    // 初始化当前路由 meta 信息
+    initCurrentRouteMeta(meta) {
+      this.isShowLink = false;
+      this.currentRouteMeta = meta;
+      setTimeout(() => {
+        this.isShowLink = true;
+      }, 100);
+    },
+    // 设置 main 的高度
+    initHeaderHeight() {
+      let { isTagsview } = this.$store.state.themeConfig.themeConfig;
+      if (isTagsview) return (this.headerHeight = `84px`);
+      else return (this.headerHeight = `50px`);
+    },
+    // 子组件触发更新
+    onGetCurrentRouteMeta() {
+      this.initCurrentRouteMeta(this.$route.meta);
+    },
+  },
+  watch: {
+    // 监听 vuex 数据变化
+    '$store.state.themeConfig.themeConfig': {
+      handler(val) {
+        this.headerHeight = val.isTagsview ? '84px' : '50px';
+        if (val.isFixedHeaderChange !== val.isFixedHeader) {
+          if (!this.$refs.layoutScrollbarRef) return false;
+          this.$refs.layoutScrollbarRef.update();
+        }
+      },
+      deep: true,
+    },
+    // 监听路由的变化
+    $route: {
+      handler(to) {
+        this.initCurrentRouteMeta(to.meta);
+        this.$refs.layoutScrollbarRef.wrap.scrollTop = 0;
+      },
+      deep: true,
+    },
+  },
 };
 </script>

+ 19 - 19
template/admin/src/layout/main/classic.vue

@@ -1,15 +1,15 @@
 <template>
-	<el-container class="layout-container flex-center">
-		<Headers />
-		<el-container class="layout-mian-height-50">
-			<Asides />
-			<div class="flex-center layout-backtop">
-				<TagsView v-if="getThemeConfig.isTagsview" />
-				<Mains />
-			</div>
-		</el-container>
-		<el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
-	</el-container>
+  <el-container class="layout-container flex-center">
+    <Headers />
+    <el-container class="layout-mian-height-50">
+      <Asides />
+      <div class="flex-center layout-backtop">
+        <TagsView v-if="getThemeConfig.isTagsview" />
+        <Mains />
+      </div>
+    </el-container>
+    <el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
+  </el-container>
 </template>
 
 <script>
@@ -18,13 +18,13 @@ import Headers from '@/layout/component/header.vue';
 import Mains from '@/layout/component/main.vue';
 import TagsView from '@/layout/navBars/tagsView/tagsView.vue';
 export default {
-	name: 'layoutClassic',
-	components: { Asides, Headers, Mains, TagsView },
-	computed: {
-		// 获取布局配置信息
-		getThemeConfig() {
-			return this.$store.state.themeConfig.themeConfig;
-		},
-	},
+  name: 'layoutClassic',
+  components: { Asides, Headers, Mains, TagsView },
+  computed: {
+    // 获取布局配置信息
+    getThemeConfig() {
+      return this.$store.state.themeConfig.themeConfig;
+    },
+  },
 };
 </script>

+ 22 - 22
template/admin/src/layout/main/columns.vue

@@ -1,18 +1,18 @@
 <template>
-	<el-container class="layout-container">
-		<ColumnsAside />
-		<div class="layout-columns-warp">
-			<Asides />
-			<el-container class="flex-center layout-backtop">
-				<Headers v-if="isFixedHeader" />
-				<el-scrollbar>
-					<Headers v-if="!isFixedHeader" />
-					<Mains />
-				</el-scrollbar>
-			</el-container>
-		</div>
-		<el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
-	</el-container>
+  <el-container class="layout-container">
+    <ColumnsAside />
+    <div class="layout-columns-warp">
+      <Asides />
+      <el-container class="flex-center layout-backtop">
+        <Headers v-if="isFixedHeader" />
+        <el-scrollbar>
+          <Headers v-if="!isFixedHeader" />
+          <Mains />
+        </el-scrollbar>
+      </el-container>
+    </div>
+    <el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
+  </el-container>
 </template>
 
 <script>
@@ -21,13 +21,13 @@ import Headers from '@/layout/component/header.vue';
 import Mains from '@/layout/component/main.vue';
 import ColumnsAside from '@/layout/component/columnsAside.vue';
 export default {
-	name: 'layoutColumns',
-	components: { Asides, Headers, Mains, ColumnsAside },
-	computed: {
-		// 是否开启固定 header
-		isFixedHeader() {
-			return this.$store.state.themeConfig.themeConfig.isFixedHeader;
-		},
-	},
+  name: 'layoutColumns',
+  components: { Asides, Headers, Mains, ColumnsAside },
+  computed: {
+    // 是否开启固定 header
+    isFixedHeader() {
+      return this.$store.state.themeConfig.themeConfig.isFixedHeader;
+    },
+  },
 };
 </script>

+ 31 - 31
template/admin/src/layout/main/defaults.vue

@@ -1,15 +1,15 @@
 <template>
-	<el-container class="layout-container">
-		<Asides />
-		<el-container class="flex-center layout-backtop">
-			<Headers v-if="isFixedHeader" />
-			<el-scrollbar ref="layoutDefaultsScrollbarRef">
-				<Headers v-if="!isFixedHeader" />
-				<Mains />
-			</el-scrollbar>
-		</el-container>
-		<el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
-	</el-container>
+  <el-container class="layout-container">
+    <Asides />
+    <el-container class="flex-center layout-backtop">
+      <Headers v-if="isFixedHeader" />
+      <el-scrollbar ref="layoutDefaultsScrollbarRef">
+        <Headers v-if="!isFixedHeader" />
+        <Mains />
+      </el-scrollbar>
+    </el-container>
+    <el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
+  </el-container>
 </template>
 
 <script>
@@ -17,25 +17,25 @@ import Asides from '@/layout/component/aside.vue';
 import Headers from '@/layout/component/header.vue';
 import Mains from '@/layout/component/main.vue';
 export default {
-	name: 'layoutDefaults',
-	components: { Asides, Headers, Mains },
-	data() {
-		return {};
-	},
-	computed: {
-		// 是否开启固定 header
-		isFixedHeader() {
-			return this.$store.state.themeConfig.themeConfig.isFixedHeader;
-		},
-	},
-	watch: {
-		// 监听路由的变化
-		$route: {
-			handler() {
-				this.$refs.layoutDefaultsScrollbarRef.wrap.scrollTop = 0;
-			},
-			deep: true,
-		},
-	},
+  name: 'layoutDefaults',
+  components: { Asides, Headers, Mains },
+  data() {
+    return {};
+  },
+  computed: {
+    // 是否开启固定 header
+    isFixedHeader() {
+      return this.$store.state.themeConfig.themeConfig.isFixedHeader;
+    },
+  },
+  watch: {
+    // 监听路由的变化
+    $route: {
+      handler() {
+        this.$refs.layoutDefaultsScrollbarRef.wrap.scrollTop = 0;
+      },
+      deep: true,
+    },
+  },
 };
 </script>

+ 7 - 7
template/admin/src/layout/main/transverse.vue

@@ -1,16 +1,16 @@
 <template>
-	<el-container class="layout-container flex-center layout-backtop">
-		<Headers />
-		<Mains />
-		<el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
-	</el-container>
+  <el-container class="layout-container flex-center layout-backtop">
+    <Headers />
+    <Mains />
+    <el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
+  </el-container>
 </template>
 
 <script>
 import Headers from '@/layout/component/header.vue';
 import Mains from '@/layout/component/main.vue';
 export default {
-	name: 'layoutTransverse',
-	components: { Headers, Mains },
+  name: 'layoutTransverse',
+  components: { Headers, Mains },
 };
 </script>

+ 0 - 1
template/admin/src/layout/navBars/breadcrumb/index.vue

@@ -35,7 +35,6 @@ export default {
   mounted() {
     this.setFilterRoutes();
     this.bus.$on('routesListChange', () => {
-      console.log('变了大哥');
       this.setFilterRoutes();
     });
   },

+ 97 - 90
template/admin/src/layout/navBars/breadcrumb/search.vue

@@ -1,102 +1,109 @@
 <template>
-	<div class="layout-search-dialog">
-		<el-dialog :visible.sync="isShowSearch" width="300px" destroy-on-close :modal="false" fullscreen :show-close="false">
-			<el-autocomplete
-				v-model="menuQuery"
-				:fetch-suggestions="menuSearch"
-				:placeholder="$t('message.user.searchPlaceholder')"
-				prefix-icon="el-icon-search"
-				ref="layoutMenuAutocompleteRef"
-				@select="onHandleSelect"
-				@blur="onSearchBlur"
-			>
-				<template slot-scope="{ item }">
-					<div><i :class="item.icon" class="mr10"></i>{{ $t(item.title) }}</div>
-				</template>
-			</el-autocomplete>
-		</el-dialog>
-	</div>
+  <div class="layout-search-dialog">
+    <el-dialog
+      :visible.sync="isShowSearch"
+      width="300px"
+      destroy-on-close
+      :modal="false"
+      fullscreen
+      :show-close="false"
+    >
+      <el-autocomplete
+        v-model="menuQuery"
+        :fetch-suggestions="menuSearch"
+        :placeholder="$t('message.user.searchPlaceholder')"
+        prefix-icon="el-icon-search"
+        ref="layoutMenuAutocompleteRef"
+        @select="onHandleSelect"
+        @blur="onSearchBlur"
+      >
+        <template slot-scope="{ item }">
+          <div><i :class="item.icon" class="mr10"></i>{{ $t(item.title) }}</div>
+        </template>
+      </el-autocomplete>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-import { getAllSiderMenu } from '@/libs/system'
+import { getAllSiderMenu } from '@/libs/system';
 export default {
-	name: 'layoutBreadcrumbSearch',
-	data() {
-		return {
-			isShowSearch: false,
-			menuQuery: '',
-			tagsViewList: [],
-		};
-	},
-	methods: {
-		// 搜索弹窗打开
-		openSearch() {
-			this.menuQuery = '';
-			this.isShowSearch = true;
-			this.initTageView();
-			this.$nextTick(() => {
-				this.$refs.layoutMenuAutocompleteRef.focus();
-			});
-		},
-		// 搜索弹窗关闭
-		closeSearch() {
-			setTimeout(() => {
-				this.isShowSearch = false;
-			}, 150);
-		},
-		// 菜单搜索数据过滤
-		menuSearch(queryString, cb) {
-			let results = queryString ? this.tagsViewList.filter(this.createFilter(queryString)) : this.tagsViewList;
-			cb(results);
-		},
-		// 菜单搜索过滤
-		createFilter(queryString) {
-			return (restaurant) => {
-				return (
-					restaurant.path.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
-					restaurant.title.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
-					this.$t(restaurant.title).toLowerCase().indexOf(queryString.toLowerCase()) > -1
-				);
-			};
-		},
-		// 初始化菜单数据
-		initTageView() {
-			if (this.tagsViewList.length > 0) return false;
-			this.tagsViewList = getAllSiderMenu(this.$store.state.routesList.routesList)
-			// this.$store.state.tagsViewRoutes.tagsViewRoutes.map((v) => {
-			// 	if (!v.isHide) this.tagsViewList.push({ ...v });
-			// });
-		},
-		// 当前菜单选中时
-		onHandleSelect(item) {
-			let { path, redirect } = item;
-			if (item.isLink && !item.isIframe) window.open(item.isLink);
-			else if (redirect) this.$router.push(redirect);
-			else this.$router.push(path);
-			this.closeSearch();
-		},
-		// input 失去焦点时
-		onSearchBlur() {
-			this.closeSearch();
-		},
-	},
+  name: 'layoutBreadcrumbSearch',
+  data() {
+    return {
+      isShowSearch: false,
+      menuQuery: '',
+      tagsViewList: [],
+    };
+  },
+  methods: {
+    // 搜索弹窗打开
+    openSearch() {
+      this.menuQuery = '';
+      this.isShowSearch = true;
+      this.initTageView();
+      this.$nextTick(() => {
+        this.$refs.layoutMenuAutocompleteRef.focus();
+      });
+    },
+    // 搜索弹窗关闭
+    closeSearch() {
+      setTimeout(() => {
+        this.isShowSearch = false;
+      }, 150);
+    },
+    // 菜单搜索数据过滤
+    menuSearch(queryString, cb) {
+      let results = queryString ? this.tagsViewList.filter(this.createFilter(queryString)) : this.tagsViewList;
+      cb(results);
+    },
+    // 菜单搜索过滤
+    createFilter(queryString) {
+      return (restaurant) => {
+        return (
+          restaurant.path.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
+          restaurant.title.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
+          this.$t(restaurant.title).toLowerCase().indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+    // 初始化菜单数据
+    initTageView() {
+      if (this.tagsViewList.length > 0) return false;
+      this.tagsViewList = getAllSiderMenu(this.$store.state.routesList.routesList);
+      // this.$store.state.tagsViewRoutes.tagsViewRoutes.map((v) => {
+      // 	if (!v.isHide) this.tagsViewList.push({ ...v });
+      // });
+    },
+    // 当前菜单选中时
+    onHandleSelect(item) {
+      let { path, redirect } = item;
+      if (item.isLink && !item.isIframe) window.open(item.isLink);
+      else if (redirect) this.$router.push(redirect);
+      else this.$router.push(path);
+      this.closeSearch();
+    },
+    // input 失去焦点时
+    onSearchBlur() {
+      this.closeSearch();
+    },
+  },
 };
 </script>
 
 <style scoped lang="scss">
 .layout-search-dialog {
-	::v-deep .el-dialog {
-		box-shadow: unset !important;
-		border-radius: 0 !important;
-		background: rgba(0, 0, 0, 0.5);
-	}
-	::v-deep .el-autocomplete {
-		width: 560px;
-		position: absolute;
-		top: 100px;
-		left: 50%;
-		transform: translateX(-50%);
-	}
+  ::v-deep .el-dialog {
+    box-shadow: unset !important;
+    border-radius: 0 !important;
+    background: rgba(0, 0, 0, 0.5);
+  }
+  ::v-deep .el-autocomplete {
+    width: 560px;
+    position: absolute;
+    top: 100px;
+    left: 50%;
+    transform: translateX(-50%);
+  }
 }
 </style>

+ 10 - 4
template/admin/src/layout/navBars/breadcrumb/setings.vue

@@ -72,8 +72,7 @@
               </div>
             </div> -->
           </div>
-          
-          
+
           <!-- transverse 布局 -->
           <div
             class="layout-drawer-content-item"
@@ -276,7 +275,7 @@
             </el-radio-group>
           </div>
         </div>
-        <div class="layout-breadcrumb-seting-bar-flex mt15" v-if="getThemeConfig.layout === 'columns'">
+        <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fiveColumnsAsideStyle') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
             <el-radio-group v-model="getThemeConfig.columnsAsideStyle" size="mini" @change="setLocalThemeConfig">
@@ -593,7 +592,14 @@ export default {
   },
 };
 </script>
-
+<style>
+body .v-modal {
+  opacity: 0.5;
+  background-color: rgba(0, 0, 0, 0.3);
+  -webkit-backdrop-filter: blur(3px);
+  backdrop-filter: blur(5px);
+}
+</style>
 <style scoped lang="scss">
 .w10 {
   width: 10px;

+ 104 - 98
template/admin/src/layout/navBars/tagsView/contextmenu.vue

@@ -1,110 +1,116 @@
 <template>
-	<div>
-		<transition name="el-zoom-in-center">
-			<ul
-				class="el-dropdown-menu el-popper el-dropdown-menu--medium custom-contextmenu"
-				:style="`top: ${dropdowns.y}px;left: ${dropdowns.x}px;`"
-				x-placement="bottom-end"
-				id="contextmenu"
-				v-show="isShow"
-			>
-				<li class="el-dropdown-menu__item" v-for="(v, k) in dropdownList" :key="k" @click="onCurrentContextmenuClick(v.id)">
-					<template v-if="!v.affix">
-						<i :class="v.icon"></i>
-						<span>{{ $t(v.txt) }}</span>
-					</template>
-				</li>
-				<div x-arrow class="popper__arrow" :style="{ left: `${arrowLeft}px` }"></div>
-			</ul>
-		</transition>
-	</div>
+  <div>
+    <transition name="el-zoom-in-center">
+      <ul
+        class="el-dropdown-menu el-popper el-dropdown-menu--medium custom-contextmenu"
+        :style="`top: ${dropdowns.y}px;left: ${dropdowns.x}px;`"
+        x-placement="bottom-end"
+        id="contextmenu"
+        v-show="isShow"
+      >
+        <li
+          class="el-dropdown-menu__item"
+          v-for="(v, k) in dropdownList"
+          :key="k"
+          @click="onCurrentContextmenuClick(v.id)"
+        >
+          <template v-if="!v.affix">
+            <i :class="v.icon"></i>
+            <span>{{ $t(v.txt) }}</span>
+          </template>
+        </li>
+        <div x-arrow class="popper__arrow" :style="{ left: `${arrowLeft}px` }"></div>
+      </ul>
+    </transition>
+  </div>
 </template>
 
 <script>
 export default {
-	name: 'layoutTagsViewContextmenu',
-	props: {
-		dropdown: {
-			type: Object,
-		},
-	},
-	data() {
-		return {
-			isShow: false,
-			dropdownList: [
-				{ id: 0, txt: 'message.tagsView.refresh', affix: false, icon: 'el-icon-refresh-right' },
-				{ id: 1, txt: 'message.tagsView.close', affix: false, icon: 'el-icon-close' },
-				{ id: 2, txt: 'message.tagsView.closeOther', affix: false, icon: 'el-icon-circle-close' },
-				{ id: 3, txt: 'message.tagsView.closeAll', affix: false, icon: 'el-icon-folder-delete' },
-			],
-			path: {},
-			arrowLeft: 5,
-		};
-	},
-	computed: {
-		dropdowns() {
-			// 99 为 `Dropdown 下拉菜单` 的宽度
-			if (this.dropdown.x + 99 > document.documentElement.clientWidth) {
-				return {
-					x: document.documentElement.clientWidth - 99 - 5,
-					y: this.dropdown.y,
-				};
-			} else {
-				return this.dropdown;
-			}
-		},
-	},
-	mounted() {
-		// 监听页面监听进行右键菜单的关闭
-		document.body.addEventListener('click', this.closeContextmenu);
-	},
-	methods: {
-		// 当前项菜单点击
-		onCurrentContextmenuClick(id) {
-			this.$emit('currentContextmenuClick', { id, path: this.path });
-		},
-		// 打开右键菜单:判断是否固定,固定则不显示关闭按钮
-		openContextmenu(item) {
-			this.path = item.path;
-			item.meta.isAffix ? (this.dropdownList[1].affix = true) : (this.dropdownList[1].affix = false);
-			this.closeContextmenu();
-			setTimeout(() => {
-				this.isShow = true;
-			}, 80);
-		},
-		// 关闭右键菜单
-		closeContextmenu() {
-			this.isShow = false;
-		},
-	},
-	destroyed() {
-		// 页面卸载时,移除右键菜单监听事件
-		document.body.removeEventListener('click', this.closeContextmenu);
-	},
-	// 监听下拉菜单位置
-	watch: {
-		dropdown: {
-			handler({ x }) {
-				if (x + 99 > document.documentElement.clientWidth) this.arrowLeft = 99 - (document.documentElement.clientWidth - x);
-				else this.arrowLeft = 10;
-			},
-			deep: true,
-		},
-	},
+  name: 'layoutTagsViewContextmenu',
+  props: {
+    dropdown: {
+      type: Object,
+    },
+  },
+  data() {
+    return {
+      isShow: false,
+      dropdownList: [
+        { id: 0, txt: 'message.tagsView.refresh', affix: false, icon: 'el-icon-refresh-right' },
+        { id: 1, txt: 'message.tagsView.close', affix: false, icon: 'el-icon-close' },
+        { id: 2, txt: 'message.tagsView.closeOther', affix: false, icon: 'el-icon-circle-close' },
+        { id: 3, txt: 'message.tagsView.closeAll', affix: false, icon: 'el-icon-folder-delete' },
+      ],
+      path: {},
+      arrowLeft: 5,
+    };
+  },
+  computed: {
+    dropdowns() {
+      // 99 为 `Dropdown 下拉菜单` 的宽度
+      if (this.dropdown.x + 99 > document.documentElement.clientWidth) {
+        return {
+          x: document.documentElement.clientWidth - 99 - 5,
+          y: this.dropdown.y,
+        };
+      } else {
+        return this.dropdown;
+      }
+    },
+  },
+  mounted() {
+    // 监听页面监听进行右键菜单的关闭
+    document.body.addEventListener('click', this.closeContextmenu);
+  },
+  methods: {
+    // 当前项菜单点击
+    onCurrentContextmenuClick(id) {
+      this.$emit('currentContextmenuClick', { id, path: this.path });
+    },
+    // 打开右键菜单:判断是否固定,固定则不显示关闭按钮
+    openContextmenu(item) {
+      this.path = item.path;
+      item.meta.isAffix ? (this.dropdownList[1].affix = true) : (this.dropdownList[1].affix = false);
+      this.closeContextmenu();
+      setTimeout(() => {
+        this.isShow = true;
+      }, 80);
+    },
+    // 关闭右键菜单
+    closeContextmenu() {
+      this.isShow = false;
+    },
+  },
+  destroyed() {
+    // 页面卸载时,移除右键菜单监听事件
+    document.body.removeEventListener('click', this.closeContextmenu);
+  },
+  // 监听下拉菜单位置
+  watch: {
+    dropdown: {
+      handler({ x }) {
+        if (x + 99 > document.documentElement.clientWidth)
+          this.arrowLeft = 99 - (document.documentElement.clientWidth - x);
+        else this.arrowLeft = 10;
+      },
+      deep: true,
+    },
+  },
 };
 </script>
 
 <style scoped lang="scss">
 .custom-contextmenu {
-	transform-origin: center top;
-	z-index: 2190;
-	position: fixed;
-	.el-dropdown-menu__item {
-		font-size: 12px !important;
-		white-space: nowrap;
-		i {
-			font-size: 12px !important;
-		}
-	}
+  transform-origin: center top;
+  z-index: 2190;
+  position: fixed;
+  .el-dropdown-menu__item {
+    font-size: 12px !important;
+    white-space: nowrap;
+    i {
+      font-size: 12px !important;
+    }
+  }
 }
 </style>

+ 0 - 6
template/admin/src/layout/navBars/tagsView/tagsView.vue

@@ -113,7 +113,6 @@ export default {
   methods: {
     ...mapMutations(['setBreadCrumb', 'setTagNavList', 'addTag', 'setLocal', 'setHomeRoute', 'closeTag']),
     clickDropdown(e) {
-      // console.log(e, this.$route.path);
       let data = { id: e, path: this.$route.path };
       this.onCurrentContextmenuClick(data);
     },
@@ -148,8 +147,6 @@ export default {
     scrollTag(production) {
       let scrollRefs = this.$refs.scrollbarRef.$refs.wrap.scrollWidth;
       let scrollLeft = this.$refs.scrollbarRef.$refs.wrap.scrollLeft;
-      console.log(production, this.$refs.scrollbarRef.$refs.wrap.scrollLeft);
-
       if (production === 'left') {
         this.$refs.scrollbarRef.$refs.wrap.scrollLeft = scrollLeft - 300 <= 0 ? 0 : scrollLeft - 300;
       } else {
@@ -252,12 +249,10 @@ export default {
       //   this.tagsViewList = Session.get('tagsViewList');
       // } else {
       let arr = [];
-      console.log(this.tagsViewRoutesList);
       this.tagsViewRoutesList.map((v) => {
         if (v.meta && v.meta.isAffix) arr.push({ ...v });
       });
       // }
-      console.log(arr);
       this.setTagNavList(arr);
       // 初始化当前元素(li)的下标
       this.getTagsRefsIndex(this.$route.path);
@@ -339,7 +334,6 @@ export default {
       this.tagsViewRoutesList.map((v) => {
         if ((v.meta && v.meta.isAffix) || v.path === path) tagsViewList.push({ ...v });
       });
-      console.log(tagsViewList, this.tagsViewRoutesList, path);
       this.addBrowserSetSession(tagsViewList);
       this.$router.push({ path, query });
 

+ 39 - 39
template/admin/src/layout/routerView/iframes.vue

@@ -1,46 +1,46 @@
 <template>
-	<div>
-		<div class="layout-view-bg-white flex h100" v-loading="iframeLoading">
-			<iframe :src="meta.isLink" frameborder="0" height="100%" width="100%" id="iframe"></iframe>
-		</div>
-	</div>
+  <div>
+    <div class="layout-view-bg-white flex h100" v-loading="iframeLoading">
+      <iframe :src="meta.isLink" frameborder="0" height="100%" width="100%" id="iframe"></iframe>
+    </div>
+  </div>
 </template>
 
 <script>
 export default {
-	name: 'layoutIfameView',
-	props: {
-		meta: {
-			type: Object,
-			default: () => {},
-		},
-	},
-	data() {
-		return {
-			iframeLoading: true,
-		};
-	},
-	created() {
-		this.bus.$on('onTagsViewRefreshRouterView', (path) => {
-			if (this.$route.path !== path) return false;
-			this.$emit('getCurrentRouteMeta');
-		});
-	},
-	mounted() {
-		this.initIframeLoad();
-	},
-	methods: {
-		// 初始化页面加载 loading
-		initIframeLoad() {
-			this.$nextTick(() => {
-				this.iframeLoading = true;
-				const iframe = document.getElementById('iframe');
-				if (!iframe) return false;
-				iframe.onload = () => {
-					this.iframeLoading = false;
-				};
-			});
-		},
-	},
+  name: 'layoutIfameView',
+  props: {
+    meta: {
+      type: Object,
+      default: () => {},
+    },
+  },
+  data() {
+    return {
+      iframeLoading: true,
+    };
+  },
+  created() {
+    this.bus.$on('onTagsViewRefreshRouterView', (path) => {
+      if (this.$route.path !== path) return false;
+      this.$emit('getCurrentRouteMeta');
+    });
+  },
+  mounted() {
+    this.initIframeLoad();
+  },
+  methods: {
+    // 初始化页面加载 loading
+    initIframeLoad() {
+      this.$nextTick(() => {
+        this.iframeLoading = true;
+        const iframe = document.getElementById('iframe');
+        if (!iframe) return false;
+        iframe.onload = () => {
+          this.iframeLoading = false;
+        };
+      });
+    },
+  },
 };
 </script>

+ 70 - 70
template/admin/src/layout/routerView/link.vue

@@ -5,85 +5,85 @@
  * @Description: 
 -->
 <template>
-	<div class="layout-scrollbar layout-link-container">
-		<div class="layout-view-bg-white flex layout-view-link">
-			<div class="layout-link-warp">
-				<i class="layout-link-icon iconfont icon-xingqiu"></i>
-				<div class="layout-link-msg">页面 "{{ $t(meta.title) }}" 已在新窗口中打开</div>
-				<el-button class="mt30" round size="small" @click="onGotoFullPage">
-					<i class="iconfont icon-lianjie"></i>
-					<span>立即前往体验</span>
-				</el-button>
-			</div>
-		</div>
-	</div>
+  <div class="layout-scrollbar layout-link-container">
+    <div class="layout-view-bg-white flex layout-view-link">
+      <div class="layout-link-warp">
+        <i class="layout-link-icon iconfont icon-xingqiu"></i>
+        <div class="layout-link-msg">页面 "{{ $t(meta.title) }}" 已在新窗口中打开</div>
+        <el-button class="mt30" round size="small" @click="onGotoFullPage">
+          <i class="iconfont icon-lianjie"></i>
+          <span>立即前往体验</span>
+        </el-button>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
 import { verifyUrl } from '@/utils/toolsValidate';
 export default {
-	name: 'layoutLinkView',
-	props: {
-		meta: {
-			type: Object,
-			default: () => {},
-		},
-	},
-	methods: {
-		// 立即前往
-		onGotoFullPage() {
-			const { origin, pathname } = window.location;
-			if (verifyUrl(this.isLink)) window.open(this.isLink);
-			else window.open(`${origin}${pathname}#${this.isLink}`);
-		},
-	},
+  name: 'layoutLinkView',
+  props: {
+    meta: {
+      type: Object,
+      default: () => {},
+    },
+  },
+  methods: {
+    // 立即前往
+    onGotoFullPage() {
+      const { origin, pathname } = window.location;
+      if (verifyUrl(this.isLink)) window.open(this.isLink);
+      else window.open(`${origin}${pathname}#${this.isLink}`);
+    },
+  },
 };
 </script>
 
 <style scoped lang="scss">
 .layout-link-container {
-	.layout-link-warp {
-		margin: auto;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		i.layout-link-icon {
-			position: relative;
-			font-size: 100px;
-			color: var(--prev-color-primary);
-			&::after {
-				content: '';
-				position: absolute;
-				left: 50px;
-				top: 0;
-				width: 15px;
-				height: 100px;
-				background: linear-gradient(
-					rgba(255, 255, 255, 0.01),
-					rgba(255, 255, 255, 0.01),
-					rgba(255, 255, 255, 0.01),
-					rgba(255, 255, 255, 0.05),
-					rgba(255, 255, 255, 0.05),
-					rgba(255, 255, 255, 0.05),
-					rgba(235, 255, 255, 0.5),
-					rgba(255, 255, 255, 0.05),
-					rgba(255, 255, 255, 0.05),
-					rgba(255, 255, 255, 0.05),
-					rgba(255, 255, 255, 0.01),
-					rgba(255, 255, 255, 0.01),
-					rgba(255, 255, 255, 0.01)
-				);
-				transform: rotate(-15deg);
-				animation: toRight 5s linear infinite;
-			}
-		}
-		.layout-link-msg {
-			font-size: 12px;
-			color: var(--prev-bg-topBarColor);
-			opacity: 0.7;
-			margin-top: 15px;
-		}
-	}
+  .layout-link-warp {
+    margin: auto;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    i.layout-link-icon {
+      position: relative;
+      font-size: 100px;
+      color: var(--prev-color-primary);
+      &::after {
+        content: '';
+        position: absolute;
+        left: 50px;
+        top: 0;
+        width: 15px;
+        height: 100px;
+        background: linear-gradient(
+          rgba(255, 255, 255, 0.01),
+          rgba(255, 255, 255, 0.01),
+          rgba(255, 255, 255, 0.01),
+          rgba(255, 255, 255, 0.05),
+          rgba(255, 255, 255, 0.05),
+          rgba(255, 255, 255, 0.05),
+          rgba(235, 255, 255, 0.5),
+          rgba(255, 255, 255, 0.05),
+          rgba(255, 255, 255, 0.05),
+          rgba(255, 255, 255, 0.05),
+          rgba(255, 255, 255, 0.01),
+          rgba(255, 255, 255, 0.01),
+          rgba(255, 255, 255, 0.01)
+        );
+        transform: rotate(-15deg);
+        animation: toRight 5s linear infinite;
+      }
+    }
+    .layout-link-msg {
+      font-size: 12px;
+      color: var(--prev-bg-topBarColor);
+      opacity: 0.7;
+      margin-top: 15px;
+    }
+  }
 }
 </style>

+ 0 - 1
template/admin/src/libs/request.js

@@ -88,7 +88,6 @@ service.interceptors.response.use(
     }
   },
   (error) => {
-    console.log(error);
     Message.error(error.msg);
     return Promise.reject(error);
   },

+ 0 - 2
template/admin/src/libs/system/index.js

@@ -226,11 +226,9 @@ export const findFirstNonNullChildren = (arr) => {
 
 export const findFirstNonNullChildrenKeys = (obj, lastArr) => {
   let ids = lastArr;
-  console.log(ids);
   // 如果第一个对象没有children属性,返回该对象
   if (!obj.children) {
     ids.push(obj.id);
-    console.log(ids);
     return ids;
   }
   // 如果第一个对象的children属性是数组,

+ 1 - 1
template/admin/src/pages/app/routine/download/index.vue

@@ -19,7 +19,7 @@
             </div>
             <Alert v-if="!pageData.appId && !pageData.code">
               <template slot="desc">
-                您尚未配置小程序信息,请<router-link :to="{ path: $routeProStr +'/setting/system_config_retail/3/7' }"
+                您尚未配置小程序信息,请<router-link :to="{ path: $routeProStr + '/setting/system_config_retail/3/7' }"
                   >立即设置</router-link
                 ></template
               >

+ 1 - 1
template/admin/src/pages/app/wechat/menus/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="article-manager">
     <div class="i-layout-page-header header-title">
-        <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
+      <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
     <Card :bordered="false" dis-hover class="ivu-mt">
       <!-- 公众号设置 -->

+ 1 - 3
template/admin/src/pages/app/wechat/reply/follow.vue

@@ -132,9 +132,7 @@
                         </Upload>
                       </div>
                       <span v-show="formValidate.type === 'image'">文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式</span>
-                      <span v-show="formValidate.type === 'voice'"
-                        >文件最大2Mb,支持mp3格式,播放长度不超过60s</span
-                      >
+                      <span v-show="formValidate.type === 'voice'">文件最大2Mb,支持mp3格式,播放长度不超过60s</span>
                     </FormItem>
                   </Form>
                 </div>

+ 4 - 4
template/admin/src/pages/app/wechat/user/tag.vue

@@ -76,7 +76,7 @@ export default {
   methods: {
     // 添加
     add() {
-      if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
+      if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
         this.$modalForm(wechatTagCreateApi()).then(() => this.getList());
       } else {
         this.$modalForm(wechatGroupCreateApi()).then(() => this.getList());
@@ -84,7 +84,7 @@ export default {
     },
     // 编辑
     edit(row) {
-      if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
+      if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
         this.$modalForm(wechatTagEditApi(row.id)).then(() => this.getList());
       } else {
         this.$modalForm(wechatGroupEditApi(row.id)).then(() => this.getList());
@@ -93,7 +93,7 @@ export default {
     // 删除
     del(row, tit, num) {
       let delfromData = null;
-      if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
+      if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
         delfromData = {
           title: tit,
           num: num,
@@ -123,7 +123,7 @@ export default {
     getList() {
       this.loading = true;
       let fountion;
-      if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
+      if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
         fountion = wechatTagListApi();
       } else {
         fountion = wechatGroupListApi();

+ 1 - 1
template/admin/src/pages/app/wechat/user/user.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="i-layout-page-header header-title">
-        <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
+      <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
     <Card :bordered="false" dis-hover class="ivu-mt">
       <div class="table_box">

+ 4 - 2
template/admin/src/pages/cms/addArticle/index.vue

@@ -5,7 +5,7 @@
         <span>
           <Button icon="ios-arrow-back" size="small" type="text" @click="$router.go(-1)">返回</Button>
         </span>
-        <Divider type="vertical"/>
+        <Divider type="vertical" />
         <span class="ivu-page-header-title">{{ $route.params.id ? '编辑文章' : '添加文章' }}</span>
       </div>
     </div>
@@ -37,7 +37,9 @@
             <FormItem label="文章分类:" label-for="cid" prop="cid">
               <div class="perW90">
                 <Select v-model="formValidate.cid">
-                  <Option v-for="item in treeData" :value="item.id" :disabled="item.disabled" :key="item.id">{{ item.html + item.title }}</Option>
+                  <Option v-for="item in treeData" :value="item.id" :disabled="item.disabled" :key="item.id">{{
+                    item.html + item.title
+                  }}</Option>
                 </Select>
               </div>
             </FormItem>

+ 54 - 36
template/admin/src/pages/crud/index.vue

@@ -85,44 +85,62 @@ export default {
           width: 100,
           align: 'center',
         });
-        res.data.columns.map(item=>{
-          if(item.from_type === 'frameImageOne'){
-            item.render = (h,params)=>{
-                return h('div',{
-                  class:'tabBox_img',
-                  directives:[{
-                    name:'viewer'
-                  }]
-                },[
-                  h('img',{
-                    directives:[{
-                      name:'lazy',
-                      value: params.row[item.slot]
-                    }],
-                  })
-                ])
-            }
-          } else if(item.from_type === 'frameImages'){
-            item.render = (h,params)=>{
-              let image = params.row[item.slot] || []
+        res.data.columns.map((item) => {
+          if (item.from_type === 'frameImageOne') {
+            item.render = (h, params) => {
+              return h(
+                'div',
+                {
+                  class: 'tabBox_img',
+                  directives: [
+                    {
+                      name: 'viewer',
+                    },
+                  ],
+                },
+                [
+                  h('img', {
+                    directives: [
+                      {
+                        name: 'lazy',
+                        value: params.row[item.slot],
+                      },
+                    ],
+                  }),
+                ],
+              );
+            };
+          } else if (item.from_type === 'frameImages') {
+            item.render = (h, params) => {
+              let image = params.row[item.slot] || [];
               let imageH = [];
-              image.map(item=>{
-                imageH.push(h('img',{
-                  directives:[{
-                    name:'lazy',
-                    value: item
-                  }],
-                }));
-              })
-              return h('div',{
-                class:'tabBox_img',
-                directives:[{
-                  name:'viewer'
-                }]
-              },imageH)
-            }
+              image.map((item) => {
+                imageH.push(
+                  h('img', {
+                    directives: [
+                      {
+                        name: 'lazy',
+                        value: item,
+                      },
+                    ],
+                  }),
+                );
+              });
+              return h(
+                'div',
+                {
+                  class: 'tabBox_img',
+                  directives: [
+                    {
+                      name: 'viewer',
+                    },
+                  ],
+                },
+                imageH,
+              );
+            };
           }
-        })
+        });
         this.columns = res.data.columns;
         this.getList();
       });

+ 1 - 1
template/admin/src/pages/division/agent/agreement.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="i-layout-page-header header-title">
-        <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
+      <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
     <Card :bordered="false" dis-hover class="ivu-mt">
       <Form :label-width="80" @submit.native.prevent>

+ 0 - 1
template/admin/src/pages/finance/billingRecords/index.vue

@@ -280,7 +280,6 @@ export default {
 </script>
 
 <style scoped lang="less">
-
 /deep/.ivu-card-body {
   padding: 0;
 }

+ 1 - 1
template/admin/src/pages/finance/commission/index.vue

@@ -42,7 +42,7 @@
               />
             </FormItem>
           </Col>
-          <Col >
+          <Col>
             <Button type="primary" icon="ios-search" @click="userSearchs">搜索</Button>
             <Button v-auth="['export-userCommission']" class="export" icon="ios-share-outline" @click="exports"
               >导出

+ 1 - 1
template/admin/src/pages/finance/financialRecords/bill/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="i-layout-page-header header-title">
-        <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
+      <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
     <Card :bordered="false" dis-hover class="ivu-mt">
       <Form

+ 2 - 2
template/admin/src/pages/finance/userExtract/index.vue

@@ -301,7 +301,7 @@ export default {
   },
   watch: {
     $route() {
-      if (this.$route.fullPath === (this.$routeProStr +'/finance/user_extract/index?status=0')) {
+      if (this.$route.fullPath === this.$routeProStr + '/finance/user_extract/index?status=0') {
         this.getPath();
       }
     },
@@ -316,7 +316,7 @@ export default {
     },
   },
   mounted() {
-    if (this.$route.fullPath === (this.$routeProStr + '/finance/user_extract/index?status=0')) {
+    if (this.$route.fullPath === this.$routeProStr + '/finance/user_extract/index?status=0') {
       this.getPath();
     } else {
       this.getList();

+ 0 - 1
template/admin/src/pages/kefu/pc/components/emoji.vue

@@ -46,7 +46,6 @@ export default {
 </script>
 
 <style lang="less" scoped>
-
 .emoji {
   width: 380px;
   height: 186px;

+ 0 - 1
template/admin/src/pages/marketing/live/add_goods.vue

@@ -155,7 +155,6 @@ export default {
       this.selectIds = this.goodsList.map((i) => {
         return i.product_id;
       });
-      console.log(this.selectIds, this.goodsList);
     },
     // 生成直播商品
     liveGoods() {

+ 1 - 1
template/admin/src/pages/marketing/lottery/addGoods.vue

@@ -239,7 +239,7 @@ export default {
       this.$refs.goodslist.formValidate.is_virtual = 0;
       this.$refs.goodslist.getList();
       this.$refs.goodslist.goodsCategory();
-    }, 
+    },
     getCouponId(e) {
       this.formValidate.coupon_id = e.id;
       this.formValidate.coupon_title = e.coupon_title;

+ 1 - 1
template/admin/src/pages/marketing/lottery/index.vue

@@ -241,7 +241,7 @@ export default {
   methods: {
     // 添加
     add() {
-      this.$router.push({ path:this.$routeProStr +  '/marketing/lottery/create' });
+      this.$router.push({ path: this.$routeProStr + '/marketing/lottery/create' });
     },
     // 编辑
     edit(row) {

+ 1 - 1
template/admin/src/pages/marketing/point_statistic/index.vue

@@ -16,7 +16,7 @@
         class="mr20"
       ></DatePicker>
     </Card>
-    <cards-data  :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
+    <cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
     <Card :bordered="false" dis-hover>
       <h3>积分使用趋势</h3>
       <echarts-new :option-data="optionData" :styles="style" height="100%" width="100%" v-if="optionData"></echarts-new>

+ 57 - 57
template/admin/src/pages/marketing/storeBargain/statistics.vue

@@ -5,23 +5,23 @@
         <span>
           <Button icon="ios-arrow-back" size="small" type="text" @click="$router.go(-1)">返回</Button>
         </span>
-        <Divider type="vertical"/>
+        <Divider type="vertical" />
         <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
       </div>
     </div>
     <cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
     <div>
       <Tabs v-model="currentTab" @on-click="onClickTab">
-        <TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index"/>
+        <TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index" />
       </Tabs>
     </div>
     <Card :bordered="false" dis-hover class="ivu-mt">
       <Form
-          ref="pagination"
-          :model="pagination"
-          :label-width="labelWidth"
-          label-position="right"
-          @submit.native.prevent
+        ref="pagination"
+        :model="pagination"
+        :label-width="labelWidth"
+        label-position="right"
+        @submit.native.prevent
       >
         <Row type="flex" :gutter="24">
           <Col span="6" v-if="type == 1">
@@ -38,29 +38,29 @@
           <Col span="6">
             <FormItem label="搜索:" label-for="title">
               <Input
-                  search
-                  enter-button
-                  v-model="pagination.real_name"
-                  :placeholder="type == 1 ? '请输入用户姓名|订单号|UID' : '请输入用户UID'"
-                  @on-search="searchList"
+                search
+                enter-button
+                v-model="pagination.real_name"
+                :placeholder="type == 1 ? '请输入用户姓名|订单号|UID' : '请输入用户UID'"
+                @on-search="searchList"
               />
             </FormItem>
           </Col>
         </Row>
       </Form>
       <Table
-          :columns="type ? thead2 : thead"
-          :data="tbody"
-          ref="table"
-          class="mt25"
-          :loading="loading"
-          highlight-row
-          no-userFrom-text="暂无数据"
-          no-filtered-userFrom-text="暂无筛选结果"
+        :columns="type ? thead2 : thead"
+        :data="tbody"
+        ref="table"
+        class="mt25"
+        :loading="loading"
+        highlight-row
+        no-userFrom-text="暂无数据"
+        no-filtered-userFrom-text="暂无筛选结果"
       >
         <template slot-scope="{ row }" slot="avatar">
           <div class="tabBox_img" v-viewer>
-            <img v-lazy="row.avatar"/>
+            <img v-lazy="row.avatar" />
           </div>
         </template>
         <template slot-scope="{ row }" slot="num">
@@ -77,43 +77,43 @@
       </Table>
       <div class="acea-row row-right page">
         <Page
-            :total="total"
-            :current="pagination.page"
-            show-elevator
-            show-total
-            @on-change="pageChange"
-            :page-size="pagination.limit"
+          :total="total"
+          :current="pagination.page"
+          show-elevator
+          show-total
+          @on-change="pageChange"
+          :page-size="pagination.limit"
         />
       </div>
     </Card>
     <!-- 详情模态框-->
     <Modal
-        v-model="modals"
-        class="tableBox"
-        scrollable
-        footer-hide
-        closable
-        title="查看详情"
-        :mask-closable="false"
-        width="750"
+      v-model="modals"
+      class="tableBox"
+      scrollable
+      footer-hide
+      closable
+      title="查看详情"
+      :mask-closable="false"
+      width="750"
     >
       <Table
-          ref="selection"
-          :columns="columns2"
-          :data="tabList3"
-          :loading="loading2"
-          no-data-text="暂无数据"
-          highlight-row
-          max-height="600"
-          size="small"
-          no-filtered-data-text="暂无筛选结果"
+        ref="selection"
+        :columns="columns2"
+        :data="tabList3"
+        :loading="loading2"
+        no-data-text="暂无数据"
+        highlight-row
+        max-height="600"
+        size="small"
+        no-filtered-data-text="暂无筛选结果"
       >
         <template slot-scope="{ row }" slot="nickname">
           <span> {{ row.nickname + ' / ' + row.uid }}</span>
         </template>
         <template slot-scope="{ row }" slot="avatar">
           <div class="tabBox_img" v-viewer>
-            <img v-lazy="row.avatar"/>
+            <img v-lazy="row.avatar" />
           </div>
         </template>
         <template slot-scope="{ row }" slot="action">
@@ -136,7 +136,7 @@ import {
 
 export default {
   name: 'index',
-  components: {cardsData},
+  components: { cardsData },
   data() {
     return {
       modals: false,
@@ -326,14 +326,14 @@ export default {
       if (this.type == 0) {
         getbargainStatisticsPeople(this.id, this.pagination).then((res) => {
           this.loading = false;
-          const {count, list} = res.data;
+          const { count, list } = res.data;
           this.total = count;
           this.tbody = list;
         });
       } else {
         getbargainStatisticsOrder(this.id, this.pagination).then((res) => {
           this.loading = false;
-          const {count, list} = res.data;
+          const { count, list } = res.data;
           this.total = count;
           this.tbody = list;
         });
@@ -359,15 +359,15 @@ export default {
       this.modals = true;
       this.rows = row;
       bargainUserInfoApi(row.id)
-          .then(async (res) => {
-            let data = res.data;
-            this.tabList3 = data.list;
-            this.loading = false;
-          })
-          .catch((res) => {
-            this.loading = false;
-            this.$Message.error(res.msg);
-          });
+        .then(async (res) => {
+          let data = res.data;
+          this.tabList3 = data.list;
+          this.loading = false;
+        })
+        .catch((res) => {
+          this.loading = false;
+          this.$Message.error(res.msg);
+        });
     },
   },
 };

+ 0 - 1
template/admin/src/pages/marketing/storeCombination/combinaList.vue

@@ -361,5 +361,4 @@ export default {
   }
 
 }
-
 </style>

+ 1 - 1
template/admin/src/pages/marketing/storeCombination/statistics.vue

@@ -26,7 +26,7 @@
         <Row type="flex" :gutter="24">
           <Col span="6" v-if="type == 1">
             <FormItem label="订单状态:" label-for="status">
-              <Select v-model="pagination.status" placeholder="请选择订单状态" clearable  @on-change="searchList">
+              <Select v-model="pagination.status" placeholder="请选择订单状态" clearable @on-change="searchList">
                 <Option value="0">未支付</Option>
                 <Option value="1">待发货</Option>
                 <Option value="2">待收货</Option>

+ 6 - 1
template/admin/src/pages/marketing/storeIntegralOrder/components/tableFrom.vue

@@ -11,7 +11,12 @@
       <Row :gutter="24">
         <Col span="8" class="ivu-text-left">
           <FormItem label="订单状态:">
-            <RadioGroup v-model="orderData.status" type="button" @on-change="selectChange2(orderData.status)" style="width: 400px">
+            <RadioGroup
+              v-model="orderData.status"
+              type="button"
+              @on-change="selectChange2(orderData.status)"
+              style="width: 400px"
+            >
               <Radio label="">全部 {{ '(' + orderChartType.statusAll ? orderChartType.statusAll : 0 + ')' }}</Radio>
               <Radio label="1">未发货 {{ '(' + orderChartType.unshipped ? orderChartType.unshipped : 0 + ')' }}</Radio>
               <Radio label="2">待收货 {{ '(' + orderChartType.untake ? orderChartType.untake : 0 + ')' }}</Radio>

+ 1 - 1
template/admin/src/pages/marketing/storePresell/index.vue

@@ -221,7 +221,7 @@ export default {
   methods: {
     // 添加
     add() {
-      this.$router.push({ path:this.$routeProStr + '/marketing/presell/create/0' });
+      this.$router.push({ path: this.$routeProStr + '/marketing/presell/create/0' });
     },
     // 导出
     exports() {

+ 0 - 1
template/admin/src/pages/notify/smsPay/index.vue

@@ -106,7 +106,6 @@ export default {
   created() {
     this.isChecked = this.$route.query.type;
     this.onIsLogin();
-    console.log(this.$route);
   },
   methods: {
     // 查看是否登录

+ 8 - 5
template/admin/src/pages/notify/smsTemplateApply/index.vue

@@ -17,7 +17,7 @@
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24" v-if="$route.path === ($routeProStr +'/setting/sms/sms_template_apply/index')">
+        <Row type="flex" :gutter="24" v-if="$route.path === $routeProStr + '/setting/sms/sms_template_apply/index'">
           <!--                    <Col v-bind="grid">-->
           <!--                        <FormItem label="模板类型:">-->
           <!--                            <Select v-model="levelFrom.type" placeholder="请选择" clearable  @on-change="userSearchs">-->
@@ -71,7 +71,7 @@
         <template
           slot-scope="{ row, index }"
           slot="is_have"
-          v-if="$route.path === ($routeProStr + '/setting/sms/sms_template_apply/commons')"
+          v-if="$route.path === $routeProStr + '/setting/sms/sms_template_apply/commons'"
         >
           <span v-show="row.status === 1">有</span>
           <span v-show="row.status === 0">没有</span>
@@ -177,9 +177,12 @@ export default {
       this.levelFrom.status = this.levelFrom.status || '';
       this.levelFrom.is_have = this.levelFrom.is_have || '';
       let data = {
-        data: this.$route.path === (this.$routeProStr +'/setting/sms/sms_template_apply/index') ? this.levelFrom : this.levelFrom2,
+        data:
+          this.$route.path === this.$routeProStr + '/setting/sms/sms_template_apply/index'
+            ? this.levelFrom
+            : this.levelFrom2,
         url:
-          this.$route.path === (this.$routeProStr + '/setting/sms/sms_template_apply/index')
+          this.$route.path === this.$routeProStr + '/setting/sms/sms_template_apply/index'
             ? 'serve/sms/temps'
             : 'notify/sms/public_temp',
       };
@@ -216,7 +219,7 @@ export default {
           minWidth: 100,
         },
       ];
-      if (this.$route.path === (this.$routeProStr + '/setting/sms/sms_template_apply/commons')) {
+      if (this.$route.path === this.$routeProStr + '/setting/sms/sms_template_apply/commons') {
         this.columns1 = Object.assign([], columns1)
           .slice(0, 6)
           .concat([

+ 2 - 2
template/admin/src/pages/order/orderList/components/tableFrom.vue

@@ -276,7 +276,7 @@ export default {
   },
   watch: {
     $route() {
-      if (this.$route.fullPath === (this.$routeProStr + '/order/list?status=1')) {
+      if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
         this.getPath();
       }
     },
@@ -284,7 +284,7 @@ export default {
   created() {
     // this.timeVal = this.today;
     // this.orderData.data = this.timeVal.join('-');
-    if (this.$route.fullPath === (this.$routeProStr + '/order/list?status=1')) {
+    if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
       this.getPath();
     }
   },

+ 3 - 1
template/admin/src/pages/order/orderList/handle/orderDetails.vue

@@ -18,7 +18,9 @@
           <Col span="12" class="fontColor1"
             >订单状态:{{ orderDatalist.orderInfo._status._title }}
             {{
-              orderDatalist.orderInfo.refund && orderDatalist.orderInfo.refund.length && orderDatalist.orderInfo.refund_status < 2
+              orderDatalist.orderInfo.refund &&
+              orderDatalist.orderInfo.refund.length &&
+              orderDatalist.orderInfo.refund_status < 2
                 ? orderDatalist.orderInfo.is_all_refund
                   ? '退款中'
                   : '部分退款中'

+ 0 - 1
template/admin/src/pages/product/productAdd/taoBao.vue

@@ -74,7 +74,6 @@ export default {
   },
   methods: {
     mealPay(val) {
-      console.log(val);
       this.$router.push({ path: this.$routeProStr + '/setting/sms/sms_pay/index', query: { type: val } });
     },
     getCopyConfig() {

+ 2 - 2
template/admin/src/pages/setting/devise/diyIndex.vue

@@ -33,7 +33,7 @@
               {{ item.title }}
             </div>
           </div>
-          <div class="wrapper"  v-if="tabCur == 0">
+          <div class="wrapper" v-if="tabCur == 0">
             <div v-for="(item, index) in leftMenu" :key="index">
               <div class="tips" @click="item.isOpen = !item.isOpen">
                 {{ item.title }}
@@ -480,7 +480,7 @@ export default {
         if (evt.moved.element.name == 'search_box' || evt.moved.element.name == 'nav_bar') {
           return this.$Message.warning('该组件禁止拖拽');
         }
-        
+
         // if (evt.moved.element.name == "nav_bar") {
         //     return this.$Message.warning("该组件禁止拖拽");
         // }

+ 0 - 1
template/admin/src/pages/setting/devise/index.vue

@@ -470,7 +470,6 @@ export default {
       if (item.name == 'search_box' || item.name == 'nav_bar') {
         return this.$Message.warning('该组件禁止移动');
       }
-      console.log(item);
       // if (item.name == "nav_bar") {
       //     return this.$Message.warning("该组件禁止移动");
       // }

+ 3 - 1
template/admin/src/pages/setting/devise/list.vue

@@ -66,7 +66,9 @@
                       v-if="row.is_diy === 1"
                       class="target"
                       ref="target"
-                      :href="`${url}${$routeProStr}/setting/pages/diy_index?id=${row.id}&name=${row.template_name || 'moren'}`"
+                      :href="`${url}${$routeProStr}/setting/pages/diy_index?id=${row.id}&name=${
+                        row.template_name || 'moren'
+                      }`"
                       target="_blank"
                     >
                       编辑</a

+ 0 - 1
template/admin/src/pages/setting/devisePage/index.vue

@@ -75,7 +75,6 @@ export default {
   methods: {
     //接收iframe值
     handleMessage(event) {
-      console.log(event.data.name)
       if (event.data.name) {
         let obj = { name: event.data.name, num: event.data.dataName };
         this.configName = obj;

+ 4 - 1
template/admin/src/pages/setting/devisePage/list.vue

@@ -157,7 +157,10 @@ export default {
       this.$refs[name].validate((valid) => {
         if (valid) {
           setCookies('moveLink', this.formItem.link);
-          this.$router.push({ path: this.$routeProStr + '/setting/pages/diy', query: { id: this.formItem.id, type: 1 } });
+          this.$router.push({
+            path: this.$routeProStr + '/setting/pages/diy',
+            query: { id: this.formItem.id, type: 1 },
+          });
         } else {
           return false;
         }

+ 4 - 4
template/admin/src/pages/setting/membershipLevel/index.vue

@@ -39,16 +39,16 @@
           </viewer>
         </template>
         <template slot-scope="{ row }" slot="one_brokerage">
-          <span>{{row.one_brokerage}}%</span>
+          <span>{{ row.one_brokerage }}%</span>
         </template>
         <template slot-scope="{ row }" slot="one_brokerage_ratio">
-           <span>{{row.one_brokerage_ratio}}%</span>
+          <span>{{ row.one_brokerage_ratio }}%</span>
         </template>
         <template slot-scope="{ row }" slot="two_brokerage">
-           <span>{{row.two_brokerage}}%</span>
+          <span>{{ row.two_brokerage }}%</span>
         </template>
         <template slot-scope="{ row }" slot="two_brokerage_ratio">
-           <span>{{row.two_brokerage_ratio}}%</span>
+          <span>{{ row.two_brokerage_ratio }}%</span>
         </template>
         <template slot-scope="{ row }" slot="status">
           <i-switch

+ 4 - 4
template/admin/src/pages/setting/multiLanguage/langList.vue

@@ -48,9 +48,9 @@
     </Card>
     <Alert class="mt10" closable="true">
       使用说明
-      <template slot="desc" >
-        1、前端页面:添加用户端页面语言,添加完成之后状态码为中文文字,前端页面使用 $t(`xxxx`),js文件中使用 this.t(`xxxx`) 或者使用
-        that.t(`xxxx`)<br />
+      <template slot="desc">
+        1、前端页面:添加用户端页面语言,添加完成之后状态码为中文文字,前端页面使用 $t(`xxxx`),js文件中使用
+        this.t(`xxxx`) 或者使用 that.t(`xxxx`)<br />
         2、后端接口:添加后端接口语言,添加完成之后状态码为6位数字,后台抛错或者控制器返回文字的时候直接填写状态码数字
       </template>
     </Alert>
@@ -95,7 +95,7 @@
       @on-cancel="addlangModal = false"
       @on-visible-change="modalChange"
     >
-      <Form ref="langFormData" :model="langFormData" :rules="ruleValidate" >
+      <Form ref="langFormData" :model="langFormData" :rules="ruleValidate">
         <FormItem label="应用端:" class="mb20" :label-width="120">
           <RadioGroup type="button" v-model="langFormData.is_admin" class="mr15">
             <Radio :label="item.value" v-for="(item, index) in langType.isAdmin" :key="index">{{ item.title }}</Radio>

+ 1 - 1
template/admin/src/pages/setting/storage/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div >
+  <div>
     <div class="message">
       <Card :bordered="false" dis-hover class="">
         <div class="mb20">

+ 0 - 1
template/admin/src/pages/setting/systemMenus/components/menusFrom.vue

@@ -307,7 +307,6 @@ export default {
       }
     },
     changeUnique(val) {
-      console.log(val.target.value);
       let value = this.$routeProStr + val.target.value;
       if (value.slice(0, 1) === '/') value = value.replace('/', '');
       this.formValidate.unique_auth = value.replaceAll('/', '-');

+ 3 - 8
template/admin/src/pages/setting/systemMenus/index.vue

@@ -25,9 +25,7 @@
         </Row>
         <Row type="flex">
           <Col v-bind="grid">
-            <Button type="primary" @click="menusAdd('添加规则')" icon="md-add"
-              >添加规则
-            </Button>
+            <Button type="primary" @click="menusAdd('添加规则')" icon="md-add">添加规则 </Button>
           </Col>
         </Row>
       </Form>
@@ -47,8 +45,8 @@
         <vxe-table-column field="unique_auth" title="前端权限" min-width="200"></vxe-table-column>
         <vxe-table-column field="menu_path" title="路由" min-width="240" tooltip="true">
           <template v-slot="{ row }">
-            <span v-if="row.auth_type == 1">页面:{{row.menu_path}}</span>
-            <span v-if="row.auth_type == 2">接口:[{{row.methods}}]{{row.api_url}}</span>
+            <span v-if="row.auth_type == 1">页面:{{ row.menu_path }}</span>
+            <span v-if="row.auth_type == 2">接口:[{{ row.methods }}]{{ row.api_url }}</span>
           </template>
         </vxe-table-column>
         <vxe-table-column field="flag" title="规则状态" min-width="120">
@@ -234,7 +232,6 @@ export default {
       };
       menusBatch(data)
         .then((res) => {
-          console.log(res);
           this.getData();
         })
         .catch((res) => {
@@ -282,7 +279,6 @@ export default {
       this.routeType = '0';
       // this.getRuleList();
       menusRuleCate().then((res) => {
-        console.log(res);
         this.ruleCateList = res.data;
         this.ruleModal = true;
         if (res.data.length) {
@@ -296,7 +292,6 @@ export default {
       });
     },
     handleNodeClick(data) {
-      console.log(data);
       this.getRuleList(data.id);
     },
     modalchange() {

+ 0 - 9
template/admin/src/pages/setting/systemOutInterface/debugging.vue

@@ -261,7 +261,6 @@ export default {
   created() {
     this.interfaceData = this.formValidate;
     this.interfaceData.request_body = JSON.parse(JSON.stringify(this.interfaceData.request_params));
-    console.log(this.interfaceData);
   },
   mounted() {},
   methods: {
@@ -275,8 +274,6 @@ export default {
         });
     },
     async requestData() {
-      console.log(this.$refs.xTable.getTableData().tableData);
-      console.log(this.filtersData((await this.$refs.xTable.getTableData().tableData) || []));
       let url, method, params, body, headers;
       url = this.interfaceData.url;
       method = this.interfaceData.method;
@@ -284,12 +281,10 @@ export default {
       body = this.filtersData((await this.$refs.yTable.getTableData().tableData) || []);
       let h = this.filtersData((await this.$refs.zTable.getTableData().tableData) || []);
       let h1 = this.filtersData((await this.$refs.zaTable.getTableData().tableData) || []);
-      console.log(this.interfaceData, h, h1);
       headers = {
         ...h,
         ...h1,
       };
-      console.log(url, method, params, body, headers);
       requestMethod(url, method, params, body, headers)
         .then((res) => {
           this.codes = res + '';
@@ -299,14 +294,12 @@ export default {
         });
     },
     filtersData(arr) {
-      console.log(arr);
       try {
         let x = {};
         arr.map((e) => {
           if (!e.parentId) {
             for (let i in e) {
               if (i == 'attribute') {
-                console.log(e);
                 if (e.type !== 'array') {
                   x[e[i]] = e.value || '';
                 } else {
@@ -344,7 +337,6 @@ export default {
     },
     changeTab(name) {
       if (name === 'Header') {
-        console.log(this.interfaceData.headerData);
         if (!this.interfaceData.headerData) {
           this.insertEvent('zTable', {
             attribute: 'Content-Type',
@@ -353,7 +345,6 @@ export default {
           this.insertEvent('zaTable');
         }
       }
-      console.log(this.interfaceData);
     },
     async insertEvent(type, d) {
       const $table = this.$refs[type];

+ 6 - 3
template/admin/src/pages/setting/systemOutInterface/index.vue

@@ -389,7 +389,12 @@
       <Input v-model="value" placeholder="请输入分组名称" style="width: 85%" />
     </Modal>
     <Modal v-model="debuggingModal" :title="formValidate.name" width="70%" footer-hide :loading="loading">
-      <debugging v-if="debuggingModal" :formValidate="formValidate" :typeList="typeList" :requestTypeList="requestTypeList" />
+      <debugging
+        v-if="debuggingModal"
+        :formValidate="formValidate"
+        :typeList="typeList"
+        :requestTypeList="requestTypeList"
+      />
     </Modal>
   </div>
 </template>
@@ -804,7 +809,6 @@ export default {
     },
 
     onChangeName(params) {
-      console.log(params);
       if (params.eventType == 'blur') {
         let data = {
           name: params.newName,
@@ -821,7 +825,6 @@ export default {
     },
 
     onAddNode(params) {
-      console.log(params);
       // this.$router.push({
       //   path: '/admin/setting/system_out_interface/add',
       //   query: {

+ 0 - 2
template/admin/src/pages/setting/systemOutInterface/request.js

@@ -35,8 +35,6 @@ service.interceptors.request.use(
     if (token || kefuToken) {
       config.headers['Authori-zation'] = config.kefu ? 'Bearer ' + kefuToken : 'Bearer ' + token;
     }
-    console.log('请求了', config);
-
     return config;
   },
   (error) => {

+ 1 - 1
template/admin/src/pages/setting/user/index.vue

@@ -28,7 +28,7 @@
         </FormItem>
       </Form>
     </Card>
-    <Modal v-model="avatarMoadl" title="头像上传" width="700">
+    <Modal v-model="avatarMoadl" footer-hide title="头像上传" width="700">
       <CropperImg v-if="avatarMoadl" @uploadImgSuccess="uploadImgSuccess"></CropperImg>
     </Modal>
   </div>

+ 7 - 2
template/admin/src/pages/setting/verifyOrder/index.vue

@@ -41,8 +41,13 @@
           </Col>
           <Col span="12" class="mr">
             <FormItem label="选择门店:" label-for="store_name">
-                
-              <Select v-model="formValidate.store_id" element-id="store_id" clearable @on-change="userSearchs" style="width: 430px">
+              <Select
+                v-model="formValidate.store_id"
+                element-id="store_id"
+                clearable
+                @on-change="userSearchs"
+                style="width: 430px"
+              >
                 <Option v-for="item in storeSelectList" :value="item.id" :key="item.id">{{ item.name }}</Option>
               </Select>
             </FormItem>

+ 1 - 1
template/admin/src/pages/statistic/balance/index.vue

@@ -13,7 +13,7 @@
         placeholder="请选择时间"
         style="width: 200px"
         :options="options"
-        class="mr20 "
+        class="mr20"
       ></DatePicker>
     </Card>
     <cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>

+ 0 - 0
template/admin/src/pages/statistic/user/index.vue


部分文件因为文件数量过多而无法显示