Explorar el Código

测试bug修复

wangtao hace 3 años
padre
commit
c254035e06
Se han modificado 91 ficheros con 1697 adiciones y 219 borrados
  1. 2 2
      .env.development
  2. 1 1
      .env.production
  3. 1 1
      .env.staging
  4. 3 3
      package.json
  5. 33 0
      src/api/recharge/department.js
  6. 33 0
      src/api/recharge/personnel.js
  7. 33 0
      src/api/system/product.js
  8. 2 1
      src/assets/styles/index.scss
  9. 1 1
      src/layout/components/Sidebar/Logo.vue
  10. 34 27
      src/router/index.js
  11. 121 87
      src/views/index.vue
  12. 5 5
      src/views/login.vue
  13. 2 2
      src/views/monitor/logininfor/index.vue
  14. 3 3
      src/views/monitor/operlog/index.vue
  15. 35 21
      src/views/recharge/channel/index.vue
  16. 316 0
      src/views/recharge/department/index.vue
  17. 8 5
      src/views/recharge/detailed/index.vue
  18. 320 0
      src/views/recharge/personnel/index.vue
  19. 24 9
      src/views/recharge/qrCode/index.vue
  20. 24 8
      src/views/recharge/radio/index.vue
  21. 7 3
      src/views/recharge/recharge/index.vue
  22. 4 6
      src/views/recharge/reportForm/index.vue
  23. 1 1
      src/views/register.vue
  24. 6 2
      src/views/system/config/index.vue
  25. 9 2
      src/views/system/dept/index.vue
  26. 6 2
      src/views/system/dict/data.vue
  27. 6 2
      src/views/system/dict/index.vue
  28. 6 2
      src/views/system/menu/index.vue
  29. 6 2
      src/views/system/notice/index.vue
  30. 6 2
      src/views/system/post/index.vue
  31. 294 0
      src/views/system/product/index.vue
  32. 12 6
      src/views/system/role/index.vue
  33. 4 2
      src/views/system/role/selectUser.vue
  34. 2 1
      src/views/system/user/authRole.vue
  35. 11 6
      src/views/system/user/index.vue
  36. 1 1
      src/views/system/user/profile/userAvatar.vue
  37. 4 3
      vue.config.js
  38. BIN
      vuedx/favicon.ico
  39. 21 0
      vuedx/html/ie.html
  40. 183 0
      vuedx/index.html
  41. 2 0
      vuedx/robots.txt
  42. 0 0
      vuedx/static/css/app.947f802c.css
  43. 0 0
      vuedx/static/css/chunk-04410c23.0e433876.css
  44. 0 0
      vuedx/static/css/chunk-16e84c30.32440e24.css
  45. 0 0
      vuedx/static/css/chunk-202692f6.0e433876.css
  46. 1 0
      vuedx/static/css/chunk-27435356.e938e3e6.css
  47. 0 0
      vuedx/static/css/chunk-37084d10.0e433876.css
  48. 4 0
      vuedx/static/css/chunk-43a79b8c.84f98409.css
  49. 0 0
      vuedx/static/css/chunk-637b5fba.43aa4fad.css
  50. 1 0
      vuedx/static/css/chunk-6f6e7ec6.9aca4adc.css
  51. 1 0
      vuedx/static/css/chunk-7848e7af.dcb8920c.css
  52. 1 0
      vuedx/static/css/chunk-7d993ace.02c39c52.css
  53. 1 0
      vuedx/static/css/chunk-b4477732.265d9d9a.css
  54. 0 0
      vuedx/static/css/chunk-c28ad000.b5bdb2c6.css
  55. 15 0
      vuedx/static/css/chunk-libs.ea078ece.css
  56. BIN
      vuedx/static/fonts/element-icons.535877f5.woff
  57. BIN
      vuedx/static/fonts/element-icons.732389de.ttf
  58. BIN
      vuedx/static/img/401.089007e7.gif
  59. BIN
      vuedx/static/img/404.a57b6f31.png
  60. BIN
      vuedx/static/img/404_cloud.0f4bc32b.png
  61. BIN
      vuedx/static/img/bg.721318ef.png
  62. 39 0
      vuedx/static/img/dark.412ca67e.svg
  63. 39 0
      vuedx/static/img/light.4183aad0.svg
  64. BIN
      vuedx/static/img/logo-b.20ff6ff1.png
  65. BIN
      vuedx/static/img/logo.079ce343.png
  66. BIN
      vuedx/static/img/tj1.b68f0515.png
  67. BIN
      vuedx/static/img/tj2.fa68c989.png
  68. 0 0
      vuedx/static/js/app.5972ae83.js
  69. 0 0
      vuedx/static/js/chunk-04410c23.6f082b5b.js
  70. 0 0
      vuedx/static/js/chunk-16e84c30.faeedd02.js
  71. 0 0
      vuedx/static/js/chunk-202692f6.7d2aa794.js
  72. 0 0
      vuedx/static/js/chunk-2727631f.857947d2.js
  73. 0 0
      vuedx/static/js/chunk-27435356.a22633a9.js
  74. 0 0
      vuedx/static/js/chunk-2d0b2b28.9ffc10ea.js
  75. 0 0
      vuedx/static/js/chunk-2d0c4aa4.7646343b.js
  76. 0 0
      vuedx/static/js/chunk-2d0c9569.904155ba.js
  77. 0 0
      vuedx/static/js/chunk-2d0e2366.68f2ed78.js
  78. 0 0
      vuedx/static/js/chunk-2d0e6354.3d57d1e1.js
  79. 1 0
      vuedx/static/js/chunk-2d0f012d.1bde8e38.js
  80. 0 0
      vuedx/static/js/chunk-2d22ccc3.1f2af9c7.js
  81. 0 0
      vuedx/static/js/chunk-37084d10.7c81850d.js
  82. 0 0
      vuedx/static/js/chunk-43a79b8c.c233bcd2.js
  83. 0 0
      vuedx/static/js/chunk-637b5fba.26d45569.js
  84. 0 0
      vuedx/static/js/chunk-6f6e7ec6.5d97f0a9.js
  85. 0 0
      vuedx/static/js/chunk-7848e7af.54a0b7d4.js
  86. 0 0
      vuedx/static/js/chunk-7d993ace.aad87027.js
  87. 1 0
      vuedx/static/js/chunk-b4477732.e6502353.js
  88. 1 0
      vuedx/static/js/chunk-c28ad000.4460b3ee.js
  89. 0 0
      vuedx/static/js/chunk-c4993c78.3f33e22e.js
  90. 0 0
      vuedx/static/js/chunk-elementUI.5170e8b1.js
  91. 0 0
      vuedx/static/js/chunk-libs.b64e9255.js

+ 2 - 2
.env.development

@@ -1,10 +1,10 @@
 # 页面标题
-VUE_APP_TITLE = 永天管理系统
+VUE_APP_TITLE = 东信充值管理系统
 
 # 开发环境配置
 ENV = 'development'
 
-# 永天管理系统/开发环境
+# 东信充值管理系统/开发环境
 VUE_APP_BASE_API = '/dev-api'
 
 # 路由懒加载

+ 1 - 1
.env.production

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 永天管理系统
+VUE_APP_TITLE = 东信充值管理系统
 
 # 生产环境配置
 ENV = 'production'

+ 1 - 1
.env.staging

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 永天管理系统
+VUE_APP_TITLE = 东信充值管理系统
 
 NODE_ENV = production
 

+ 3 - 3
package.json

@@ -1,8 +1,8 @@
 {
-    "name": "yongtian",
+    "name": "dongxin",
     "version": "3.6.0",
-    "description": "永天管理系统",
-    "author": "永天",
+    "description": "东信充值管理系统",
+    "author": "dongxin",
     "license": "MIT",
     "scripts": {
         "dev": "vue-cli-service serve",

+ 33 - 0
src/api/recharge/department.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+// 新增
+export function addChannel(data) {
+    return request({
+        url: '/dxtop/topChannel',
+        method: 'post',
+        data: data
+    })
+}
+// 修改
+export function updataChannel(data) {
+    return request({
+        url: '/dxtop/topChannel',
+        method: 'put',
+        data: data
+    })
+}
+// 删除
+export function delChannel(deptId) {
+    return request({
+        url: '/dxtop/topChannel/' + deptId,
+        method: 'delete',
+    })
+}
+// 查询
+export function listChannel(data) {
+    return request({
+        url: '/dxtop/dept/page',
+        method: 'post',
+        data: data
+    })
+}

+ 33 - 0
src/api/recharge/personnel.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+// 新增
+export function addChannel(data) {
+    return request({
+        url: '/dxtop/topChannel',
+        method: 'post',
+        data: data
+    })
+}
+// 修改
+export function updataChannel(data) {
+    return request({
+        url: '/dxtop/topChannel',
+        method: 'put',
+        data: data
+    })
+}
+// 删除
+export function delChannel(deptId) {
+    return request({
+        url: '/dxtop/topChannel/' + deptId,
+        method: 'delete',
+    })
+}
+// 查询
+export function listChannel(data) {
+    return request({
+        url: '/dxtop/staff/page',
+        method: 'post',
+        data: data
+    })
+}

+ 33 - 0
src/api/system/product.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+// 新增
+export function addChannel(data) {
+    return request({
+        url: '/dxtop/company ',
+        method: 'post',
+        data: data
+    })
+}
+// 修改
+export function updataChannel(data) {
+    return request({
+        url: '/dxtop/company',
+        method: 'put',
+        data: data
+    })
+}
+// 删除
+export function delChannel(deptId) {
+    return request({
+        url: '/dxtop/company/' + deptId,
+        method: 'delete',
+    })
+}
+// 查询
+export function listChannel(query) {
+    return request({
+        url: '/dxtop/company/list',
+        method: 'get',
+        params: query
+    })
+}

+ 2 - 1
src/assets/styles/index.scss

@@ -10,7 +10,8 @@ body {
   -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased;
   text-rendering: optimizeLegibility;
-  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
+  font-family:Microsoft YaHei Regular, Microsoft YaHei Regular-Regular;
+  // font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
 }
 
 label {

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

@@ -52,7 +52,7 @@ export default {
   },
   data() {
     return {
-      title: "永天管理系统",
+      title: "东信充值管理系统",
       logo: logoImg,
     };
   },

+ 34 - 27
src/router/index.js

@@ -100,33 +100,18 @@ export const constantRoutes = [{
             meta: { title: '分配用户', activeMenu: '/system/role' }
         }]
     },
-    {
-        path: '/system/dict-data',
-        component: Layout,
-        hidden: true,
-        children: [{
-            path: 'index/:dictId(\\d+)',
-            component: (resolve) => require(['@/views/system/dict/data'], resolve),
-            name: 'Data',
-            meta: { title: '字典数据', activeMenu: '/system/dict' }
-        }]
-    },
-
-
-
-
-
     // {
-    //     path: '',
+    //     path: '/system/dict-data',
     //     component: Layout,
-    //     redirect: 'admin',
+    //     hidden: true,
     //     children: [{
-    //         path: '/recharge/admin',
-    //         component: (resolve) => require(['@/views/recharge/admin'], resolve),
-    //         name: '充值管理',
-    //         meta: { title: '充值管理', icon: 'guanli', noCache: false, affix: false },
-    //     }, ]
+    //         path: 'index/:dictId(\\d+)',
+    //         component: (resolve) => require(['@/views/system/dict/data'], resolve),
+    //         name: 'Data',
+    //         meta: { title: '字典数据', activeMenu: '/system/dict' }
+    //     }]
     // },
+
     {
         path: '',
         component: Layout,
@@ -134,8 +119,8 @@ export const constantRoutes = [{
         children: [{
             path: '/recharge/channel',
             component: (resolve) => require(['@/views/recharge/channel'], resolve),
-            name: '充值渠道',
-            meta: { title: '充值渠道', icon: 'tree', noCache: false, affix: false },
+            name: '渠道管理',
+            meta: { title: '渠道管理', icon: 'tree', noCache: false, affix: false },
         }, ]
     },
     {
@@ -145,8 +130,8 @@ export const constantRoutes = [{
         children: [{
             path: '/recharge/radio',
             component: (resolve) => require(['@/views/recharge/radio'], resolve),
-            name: '充值到账比例',
-            meta: { title: '充值到账比例', icon: 'dashboard', noCache: false, affix: false },
+            name: '充值管理',
+            meta: { title: '充值管理', icon: 'dashboard', noCache: false, affix: false },
         }, ]
     },
     {
@@ -193,6 +178,28 @@ export const constantRoutes = [{
             meta: { title: '充值报表', icon: 'date-range', noCache: false, affix: false },
         }, ]
     },
+    {
+        path: '',
+        component: Layout,
+        redirect: 'personnel',
+        children: [{
+            path: '/recharge/personnel',
+            component: (resolve) => require(['@/views/recharge/personnel'], resolve),
+            name: '人员信息',
+            meta: { title: '人员信息', icon: 'date-range', noCache: false, affix: false },
+        }, ]
+    },
+    {
+        path: '',
+        component: Layout,
+        redirect: 'department',
+        children: [{
+            path: '/recharge/department',
+            component: (resolve) => require(['@/views/recharge/department'], resolve),
+            name: '部门信息',
+            meta: { title: '部门信息', icon: 'date-range', noCache: false, affix: false },
+        }, ]
+    }
 ]
 
 export default new Router({

+ 121 - 87
src/views/index.vue

@@ -51,7 +51,7 @@
               </el-card>
               <el-card class="box-card" style="background:#FFC341">
                 <div class="num">{{orderMoneyAverage}}</div>
-                <div class="num_txt">今日平均充值金额(元)</div> 
+                <div class="num_txt">今日平均充值金额(元)</div>
               </el-card>
             </div>
             <div class="middle">
@@ -61,11 +61,11 @@
                   <div class="introduce">
                     <div class="round zfbbor"></div>
                     <div class="name">{{payTypeCollectList[0].payType ==1?"微信":""}}</div>
-                    <div class="ratio zfbc">{{payTypeCollectList[0].money}} ({{payTypeCollectList[0].ratio}})</div>
+                    <div class="ratio zfbc">{{payTypeCollectList[0].money}} ({{payTypeCollectList[0].radio}})</div>
                   </div>
-                  <div class="tiao">
-                    <div class="tiao1 zfbbg"></div>
-                    <div class="tiao2 zfbbg"></div>
+                  <div class="progress">
+                    <div class="progress1 zfbbg"></div>
+                    <div class="progress2 zfbbg" :style="progressWidth[0]"></div>
                   </div>
                 </div>
 
@@ -73,11 +73,11 @@
                   <div class="introduce">
                     <div class="round wxbor"></div>
                     <div class="name">{{payTypeCollectList[1].payType==2?"支付宝":""}}</div>
-                    <div class="ratio wxbc">{{payTypeCollectList[1].money}} ({{payTypeCollectList[1].ratio}})</div>
+                    <div class="ratio wxbc">{{payTypeCollectList[1].money}} ({{payTypeCollectList[1].radio}})</div>
                   </div>
-                  <div class="tiao">
-                    <div class="tiao1 wxbg"></div>
-                    <div class="tiao2 wxbg"></div>
+                  <div class="progress">
+                    <div class="progress1 wxbg"></div>
+                    <div class="progress2 wxbg" :style="progressWidth[1]"></div>
                   </div>
                 </div>
 
@@ -85,11 +85,11 @@
                   <div class="introduce">
                     <div class="round xjbor"></div>
                     <div class="name">{{payTypeCollectList[2].payType==3?"现金":""}}</div>
-                    <div class="ratio xjbc">{{payTypeCollectList[2].money}} ({{payTypeCollectList[2].ratio}})</div>
+                    <div class="ratio xjbc">{{payTypeCollectList[2].money}} ({{payTypeCollectList[2].radio}})</div>
                   </div>
-                  <div class="tiao">
-                    <div class="tiao1 xjbg"></div>
-                    <div class="tiao2 xjbg"></div>
+                  <div class="progress">
+                    <div class="progress1 xjbg"></div>
+                    <div class="progress2 xjbg" :style="progressWidth[2]"></div>
                   </div>
                 </div>
 
@@ -97,11 +97,11 @@
                   <div class="introduce">
                     <div class="round qtbor"></div>
                     <div class="name">{{payTypeCollectList[3].payType==4?"其他":""}}</div>
-                    <div class="ratio qtbc">{{payTypeCollectList[3].money}} ({{payTypeCollectList[3].ratio}})</div>
+                    <div class="ratio qtbc">{{payTypeCollectList[3].money}} ({{payTypeCollectList[3].radio}})</div>
                   </div>
-                  <div class="tiao">
-                    <div class="tiao1 qtbg"></div>
-                    <div class="tiao2 qtbg"></div>
+                  <div class="progress">
+                    <div class="progress1 qtbg"></div>
+                    <div class="progress2 qtbg" :style="progressWidth[3]"></div>
                   </div>
                 </div>
               </el-card>
@@ -111,7 +111,7 @@
               </el-card>
             </div>
           </div>
-          
+
         </el-card>
         <el-card class="box-card card4">
           <div class="title">
@@ -123,29 +123,22 @@
                 <span class="el-dropdown-link">
                   {{year}}<i class="el-icon-arrow-down el-icon--right"></i>
                 </span>
-                <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item command="2021">2021年</el-dropdown-item>
-                  <el-dropdown-item command="2022">2022年</el-dropdown-item>
+                <el-dropdown-menu slot="dropdown" class="dropdown">
+                  <template  v-for="item in yearList" >
+                    <el-dropdown-item  :command="item.id" :key="item.id">{{item.value}}</el-dropdown-item>
+                  </template>
+
+
                 </el-dropdown-menu>
               </el-dropdown>
               <el-dropdown @command="handleMonth" class="data_type">
                 <span class="el-dropdown-link">
                   {{month}}<i class="el-icon-arrow-down el-icon--right"></i>
                 </span>
-                <el-dropdown-menu slot="dropdown" style="height:100px;overflow-y:scroll;" >
-                  <el-dropdown-item command="1">1月</el-dropdown-item>
-                  <el-dropdown-item command="2">2月</el-dropdown-item>
-                  <el-dropdown-item command="3">3月</el-dropdown-item>
-                  <el-dropdown-item command="4">4月</el-dropdown-item>
-                  <el-dropdown-item command="5">5月</el-dropdown-item>
-                  <el-dropdown-item command="6">6月</el-dropdown-item>
-                  <el-dropdown-item command="7">7月</el-dropdown-item>
-                  <el-dropdown-item command="8">8月</el-dropdown-item>
-                  <el-dropdown-item command="9">9月</el-dropdown-item>
-                  <el-dropdown-item command="10">10月</el-dropdown-item>
-                  <el-dropdown-item command="11">11月</el-dropdown-item>
-                  <el-dropdown-item command="12">12月</el-dropdown-item>
-                  <el-dropdown-item command="所有">所有</el-dropdown-item>
+                <el-dropdown-menu slot="dropdown" class="dropdown">
+                  <template  v-for="item in monthList" >
+                    <el-dropdown-item  :command="item.id" :key="item.id">{{item.value}}</el-dropdown-item>
+                  </template>
                 </el-dropdown-menu>
               </el-dropdown>
             </div>
@@ -153,7 +146,7 @@
               <div id="statistics" style="width: 100%;height:300px;margin-top:0px;"></div>
             </div>
           </div>
-          
+
         </el-card>
       </div>
     </div>
@@ -172,11 +165,12 @@ export default {
       personnelRatioList:[], //注册人员比例
       channelOrderMoneList:[], //渠道订单金额
       payTypeCollectList:[
-        {payType:null,money:null,ratio:null},
-        {payType:null,money:null,ratio:null},
-        {payType:null,money:null,ratio:null},
-        {payType:null,money:null,ratio:null}
+        {payType:null,money:null,radio:null},
+        {payType:null,money:null,radio:null},
+        {payType:null,money:null,radio:null},
+        {payType:null,money:null,radio:null}
       ], //支付方式数据
+      progressWidth:[], //支付方式进度条
       payTypeCollectListCount:null,
       orderMoney:null, //今日充值金额
       orderCount:null, //今日充值次数
@@ -190,8 +184,24 @@ export default {
       startTime:null, // 开始时间
       endTime:null, // 结束时间
       month:"月",
+      monthList:[
+        {id:'1', value:'1月'},
+        {id:'2', value:'2月'},
+        {id:'3', value:'3月'},
+        {id:'4', value:'4月'},
+        {id:'5', value:'5月'},
+        {id:'6', value:'6月'},
+        {id:'7', value:'7月'},
+        {id:'8', value:'8月'},
+        {id:'9', value:'9月'},
+        {id:'10', value:'10月'},
+        {id:'11', value:'11月'},
+        {id:'12', value:'12月'},
+        {id:'所有', value:'所有'},
+      ],
       monthParameter:'',
       year:"年",
+      yearList:[],
       tj1:tj1Img,
       tj2:tj2Img,
       dataOrderTime:[],//充值数据统计 --日期
@@ -202,15 +212,15 @@ export default {
       loading: true,
       // 导出遮罩层
       open: false,
-      
+
     };
   },
 
   created(){
-    
+    this.yearListCreate()
   },
   mounted() {
-    this.employeesCount() 
+    this.employeesCount()
     this.personnelRatio()
     this.channelOrderMoney()
     this.payTypeCollect()
@@ -219,6 +229,20 @@ export default {
     this.dateCollect()
   },
   methods: {
+    yearListCreate(){ // 获取年列表
+      let startYear = 2021;
+      let endYear = new Date().getFullYear();
+      let arr = []
+      for(let i = startYear; i<=endYear; i++){
+        arr.push(i)
+      }
+      this.yearList = arr.map(item=>{
+        return {
+          id:item,
+          value:item + '年'
+        }
+      })
+    },
     employeesCount() {//注册总人数
       employeesCountApi().then(response => {
           this.employeesCountNum = response.data;
@@ -244,7 +268,7 @@ export default {
           }else{
             this.personnelRatioList[i].ratio = ((this.personnelRatioList[i].value / total) *100).toFixed(2) + '%'
           }
-         
+
         }
         this.drawLine1();
       });
@@ -268,9 +292,8 @@ export default {
           }else{
             this.channelOrderMoneyList[i].ratio = ((this.channelOrderMoneyList[i].value / total) *100).toFixed(2) + '%'
           }
-          
+
         }
-        console.log(this.channelOrderMoneyList)
         this.drawLine3();
       });
     },
@@ -282,8 +305,13 @@ export default {
           total = Number(total) +  Number(this.payTypeCollectList[i].money)
         }
         for(let i = 0; i<this.payTypeCollectList.length; i++){
-          this.payTypeCollectList[i].ratio = ((this.payTypeCollectList[i].money / total) * 100).toFixed(2) + '%'
+          this.payTypeCollectList[i].radio = ((this.payTypeCollectList[i].money / total) * 100).toFixed(2) + '%'
         }
+        this.progressWidth = this.payTypeCollectList.map(item=>{
+          return {
+            width:item.radio
+          }
+        })
       });
     },
     orderMoneyList() {// 今日充值信息
@@ -295,14 +323,11 @@ export default {
         }else{
           this.orderMoneyAverage = (this.orderMoney / this.orderCount).toFixed(2) + '%'
         }
-        console.log(response)
-        
       });
     },
     collect() {// 消费数据统计
       collectApi().then(response => {
         this.collectList = response.data
-        console.log(response)
       });
     },
     handleMonth(month) {
@@ -338,7 +363,7 @@ export default {
           let lastDay= new Date(2019,month1,0).getDate()
           this.resetDataAndStartEnd(0, this.year, this.monthParameter, this.monthParameter, lastDay)
         }
-        
+
       }
     },
     resetDataAndStartEnd(type, year, monthStart, monthEnd, lastDay){
@@ -416,7 +441,7 @@ export default {
               lineStyle: {
                   color: '#000',
                   width: 1, //这里是为了突出显示加上的
-                  opacity: .5 
+                  opacity: .5
               }
           },
         },
@@ -426,12 +451,12 @@ export default {
               lineStyle: {
                   color: '#000',
                   width: 1, //这里是为了突出显示加上的
-                  opacity: .5 
+                  opacity: .5
               }
           },
         },
 
-        
+
         series: [
           {
             // name: 'Email',
@@ -450,10 +475,10 @@ export default {
                 }
 
               },
-              
+
             }
           },
-          
+
         ]
       };
       statistics.setOption(option4);
@@ -464,7 +489,7 @@ export default {
       window.onresize = function() {
         channel.resize();
       };
-      
+
       // 指定图表的配置项和数据
       var option3 = {
         title: {
@@ -478,7 +503,7 @@ export default {
           bottom: '0%',
           left: 'left',
           left: '25%'
-          
+
         },
         // series: [
         //   {
@@ -532,7 +557,7 @@ export default {
       window.onresize = function() {
         user.resize();
       };
-      
+
       // 指定图表的配置项和数据
       var option1 = {
         tooltip: {
@@ -560,12 +585,12 @@ export default {
         //         show: false,
         //         position: 'inside',
         //         formatter: '{b}: {c}({d}%)'
-                
+
         //       },
         //     },
         //     label: {
         //       show: false,
-              
+
         //     },
         //     emphasis: {
         //       label: {
@@ -596,8 +621,8 @@ export default {
           }
         ]
       }
-        
-      
+
+
       user.setOption(option1);
     },
   }
@@ -665,12 +690,10 @@ export default {
           margin:30px auto 0;
           text-align: center;
           position: relative;
+          width:100%;
           &>div{
             display: inline-block;
           }
-          // .el-icon-s-custom{
-          //   font-size:30px;
-          // }
           .num{
             font-size: 30px;
             margin:0 16px;
@@ -679,7 +702,7 @@ export default {
             width:100%;
             margin-left:-20%;
             text-align: center;
-            
+
           }
           .num_txt{
             font-size: 12px;
@@ -690,7 +713,7 @@ export default {
             width:100%;
             margin-left:-20%;
             text-align: center;
-            
+
           }
         }
       }
@@ -722,7 +745,7 @@ export default {
                 font-size: 26px;
                 margin-top:5px;
                 width:100%;
-                
+
               }
               .num_txt{
                 font-size: 14px;
@@ -731,15 +754,15 @@ export default {
                 margin-right:14px;
                 width:100%;
               }
-              
+
             }
           }
           .box-card:nth-child(2){
             margin-left:20px;
           }
 
-          
-          
+
+
         }
       }
     }
@@ -767,7 +790,7 @@ export default {
               display: inline-block;
               text-align: center;
               color:#fff;
-              
+
               .num{
                 font-size: 20px;
                 display: block;
@@ -783,11 +806,11 @@ export default {
             .box-card:nth-child(2),.box-card:nth-child(3){
               margin-left:12.5%;
             }
-            
+
           }
           .middle{
             .el-card{
-              width:45%;
+              width:48%;
               float: left;
               padding:0 !important;
               .el-card__body{
@@ -803,10 +826,10 @@ export default {
                 background-color: #FAFAFA;
                 // padding:10px 20px;
               }
-              
+
             }
             .el-card:nth-child(2){
-              margin-left:10%;
+              margin-left:4%;
             }
           }
           .bottom{
@@ -823,7 +846,7 @@ export default {
             }
 
           }
-          
+
         }
       }
       .card4{
@@ -849,11 +872,11 @@ export default {
             }
 
           }
-          
+
         }
       }
     }
-    
+
   }
 .zf{
   // padding:0 20px;
@@ -917,7 +940,7 @@ export default {
       font-size: 14px;
     }
   }
-  .tiao{
+  .progress{
     margin-top:0px;
     position: relative;
     height:8px;
@@ -928,23 +951,34 @@ export default {
       top:0;
       left:0;
     }
-    .tiao1{
+    .progress1{
       width:100%;
       z-index: 0;
       opacity: .2;
     }
-    .tiao2{
-      width:20%;
+    .progress2{
+      width:0%;
+      transition-property:width;
+      transition-duration:1s;
       z-index: 1;
 
     }
   }
-  
-  
 }
 .zf:nth-child(1){
   margin-top:-20px !important;
 }
+.data_type{
+  border:1px solid #E4E4E4 !important;
+  color:#999;
 
+}
+.dropdown{
+  max-height:150px;
+  overflow-y:scroll;
+  color:#999;
+}
+.el-dropdown-menu__item{
+  color:#999;
+}
 </style>
-

+ 5 - 5
src/views/login.vue

@@ -3,10 +3,10 @@
     <div class="bg"><img :src="bg" alt=""></div>
     <div class="logo">
       <img :src="logo" alt="">
-      <span class="logo_txt">充值管理平台</span>
+      <span class="logo_txt">东信充值管理系统</span>
     </div>
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">后台管理系统</h3>
+      <h3 class="title">东信充值管理系统</h3>
       <el-form-item prop="username">
         <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
           <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
@@ -23,7 +23,7 @@
           <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
         </el-input>
       </el-form-item>
-      <!-- <el-form-item prop="code" v-if="captchaOnOff">
+      <el-form-item prop="code" v-if="captchaOnOff">
         <el-input
           v-model="loginForm.code"
           auto-complete="off"
@@ -36,7 +36,7 @@
         <div class="login-code">
           <img :src="codeUrl" @click="getCode" class="login-code-img"/>
         </div>
-      </el-form-item> -->
+      </el-form-item>
       <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
       <el-form-item style="width:100%;">
         <el-button
@@ -96,7 +96,7 @@ export default {
       },
       loading: false,
       // 验证码开关
-      captchaOnOff: false,
+      captchaOnOff: true,
       // 注册开关
       register: false,
       redirect: undefined

+ 2 - 2
src/views/monitor/logininfor/index.vue

@@ -77,7 +77,7 @@
           v-hasPermi="['monitor:logininfor:remove']"
         >清空</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -87,7 +87,7 @@
           @click="handleExport"
           v-hasPermi="['monitor:logininfor:export']"
         >导出</el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 

+ 3 - 3
src/views/monitor/operlog/index.vue

@@ -93,7 +93,7 @@
           v-hasPermi="['monitor:operlog:remove']"
         >清空</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -103,7 +103,7 @@
           @click="handleExport"
           v-hasPermi="['monitor:operlog:export']"
         >导出</el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -144,7 +144,7 @@
     />
 
     <!-- 操作日志详细 -->
-    <el-dialog title="操作日志详细" :visible.sync="open" width="700px" append-to-body>
+    <el-dialog title="操作日志详细" :visible.sync="open" width="700px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" label-width="100px" size="mini">
         <el-row>
           <el-col :span="12">

+ 35 - 21
src/views/recharge/channel/index.vue

@@ -3,24 +3,15 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="渠道名称" prop="name">
         <el-input
-          v-model="queryParams.name"
+          v-model.trim="queryParams.name"
           placeholder="请输入渠道名称"
           clearable
           size="small"
           style="width: 240px"
           @keyup.enter.native="handleQuery"
+         
         />
       </el-form-item>
-      <!-- <el-form-item label="渠道标识" prop="aliasName">
-        <el-input
-          v-model="queryParams.aliasName"
-          placeholder="请输入渠道标识"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item> -->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -58,8 +49,8 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['system:admin:remove']"
-        >删除</el-button> wt注释-->
-      </el-col>
+        >删除</el-button> 
+      </el-col>wt注释-->
       <!-- <el-col :span="1.5">
         <el-button
           type="warning"
@@ -113,17 +104,18 @@
     />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+    <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
       <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
         <el-form-item label="渠道名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入渠道名称" />
+          <el-input v-model.trim="form.name" placeholder="请输入渠道名称" @input="forceUpdate" />
         </el-form-item>
         <el-form-item label="渠道标识" prop="aliasName">
-          <el-input v-model="form.aliasName" placeholder="请输入渠道标识" />
+          <el-input v-model.trim="form.aliasName" placeholder="请输入渠道标识" @input="forceUpdate"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary" @click="submitForm" v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -141,6 +133,7 @@ export default {
       loading: true,
       // 导出遮罩层
       exportLoading: false,
+      dialogFormVisible:false,
       // 选中数组
       ids: [],
       // 非单个禁用
@@ -169,7 +162,10 @@ export default {
         aliasName: undefined,
       },
       // 表单参数
-      form: {},
+      form: {
+        name:'',
+        aliasName:''
+      },
       // 表单校验
       rules: {
         name: [
@@ -185,6 +181,15 @@ export default {
     this.getList();
   },
   methods: {
+    keydown(e){
+      if(e.keyCode == 32){
+        e.returnValue = false
+      }
+    },
+    
+    forceUpdate(){ //重置form
+      this.form = JSON.parse(JSON.stringify(this.form));
+    },
     /** 查询参数列表 */
     getList() {
       this.loading = true;
@@ -246,21 +251,30 @@ export default {
     },
     /** 提交按钮 */
     submitForm(row) {
-      console.log(row)
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.id != undefined) {
             updataChannel(this.form).then(response => {
+              console.log(response)
+              this.loading = false,
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
-            });
+            }).catch(()=>{
+              this.loading = false,
+              this.open = false;
+            })
           } else {
             addChannel(this.form).then(response => {
+              this.loading = false,
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();
-            });
+            }).catch(()=>{
+              this.loading = false,
+              this.open = false
+            })
           }
         }
       });

+ 316 - 0
src/views/recharge/department/index.vue

@@ -0,0 +1,316 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="渠道名称" prop="name">
+        <el-input
+          v-model.trim="queryParams.name"
+          placeholder="请输入渠道名称"
+          clearable
+          size="small"
+          style="width: 240px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <!-- <el-form-item label="渠道标识" prop="aliasName">
+        <el-input
+          v-model="queryParams.aliasName"
+          placeholder="请输入渠道标识"
+          clearable
+          size="small"
+          style="width: 240px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item> -->
+      <!-- <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item> -->
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:admin:add']"
+        >新增</el-button>
+      </el-col> -->
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:admin:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:admin:remove']"
+        >删除</el-button> 
+      </el-col>wt注释-->
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['system:admin:export']"
+        >导出</el-button>
+      </el-col> -->
+      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
+    </el-row>
+
+    <el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="渠道名称" align="center" prop="name" />
+      <el-table-column label="渠道标识" align="center" prop="aliasName"/>
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:admin:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:admin:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改参数配置对话框 -->
+    <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
+        <el-form-item label="渠道名称" prop="name">
+          <el-input v-model.trim="form.name" placeholder="请输入渠道名称" />
+        </el-form-item>
+        <el-form-item label="渠道标识" prop="aliasName">
+          <el-input v-model.trim="form.aliasName" placeholder="请输入渠道标识" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary" @click="submitForm" v-else>提交中...</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { addChannel, updataChannel, delChannel, listChannel } from "@/api/recharge/department";
+
+export default {
+  name: "admin",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      dialogFormVisible:false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      adminList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 类型数据字典
+      typeOptions: [],
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        name: undefined,
+        aliasName: undefined,
+      },
+      // 表单参数
+      form: {
+        name:'',
+        aliasName:''
+      },
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "渠道名称不能为空", trigger: "blur" }
+        ],
+        aliasName: [
+          { required: true, message: "渠道标识不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listChannel(this.addDateRange(this.queryParams)).then(response => {
+          this.adminList = response.data.records;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        ids: undefined,
+        name: undefined,
+        aliasName: undefined,
+        adminType: "Y",
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.current = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加参数";
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+      console.log(this.ids)
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      // this.reset();
+      // const id = row.id || this.ids
+      // getadmin(id).then(response => {
+      Object.assign(this.form, row.id ? this.adminList.find(val=>val.id === row.id) : this.adminList.find(val=>val.id === this.ids[0]))
+      this.open = true;
+      this.title = "修改参数";
+      // });
+    },
+    /** 提交按钮 */
+    submitForm(row) {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.loading = true
+          if (this.form.id != undefined) {
+            updataChannel(this.form).then(response => {
+              this.loading = false,
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addChannel(this.form).then(response => {
+              this.loading = false,
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delChannel(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有参数数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportadmin(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    },
+    /** 刷新缓存按钮操作 */
+    handleRefreshCache() {
+      refreshCache().then(() => {
+        this.msgSuccess("刷新成功");
+      });
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+// .el-button--primary{color:#50B300;border:1px solid #50B300;background: #fff;}
+// .el-button--primary:hover{color:#fff;border:1px solid #50B300;background: #50B300;}
+</style>

+ 8 - 5
src/views/recharge/detailed/index.vue

@@ -3,7 +3,7 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
       <el-form-item label="姓名:" prop="userName">
         <el-input
-          v-model="queryParams.userName"
+          v-model.trim="queryParams.userName"
           placeholder="请输入姓名"
           clearable
           size="small"
@@ -13,7 +13,7 @@
       </el-form-item>
       <el-form-item label="手机号:" prop="userPhone">
         <el-input
-          v-model="queryParams.userPhone"
+          v-model.trim="queryParams.userPhone"
           placeholder="请输入手机号"
           clearable
           size="small"
@@ -197,9 +197,7 @@ export default {
     /** 查询参数列表 */
     getList() {
       this.loading = true;
-      console.log(this.dateRange)
       listDetal(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
-        console.log(response)
           this.adminList = response.data.records;
           this.total = response.data.total;
           this.loading = false;
@@ -229,7 +227,6 @@ export default {
     handleUpdate(row) {
       Object.assign(this.form, row.id ? this.adminList.find(val=>val.id === row.id) : this.adminList.find(val=>val.id === this.ids[0]))
       updataChannel(this.form).then(response => {
-        console.log(response)
         this.msgSuccess("修改成功");
         this.getList();
       });
@@ -239,6 +236,12 @@ export default {
       this.dateRange = [];
       this.queryParams.startMoney = undefined;
       this.queryParams.endMoney = undefined;
+      this.queryParams.startTime = undefined;
+      this.queryParams.endTime = undefined;
+      this.queryParams.payType = undefined;
+      this.queryParams.userName = undefined;
+      this.queryParams.userPhone = undefined;
+      this.queryParams.orderFlag = undefined;
       this.resetForm("queryForm");
       this.handleQuery();
     },

+ 320 - 0
src/views/recharge/personnel/index.vue

@@ -0,0 +1,320 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="人员名称" prop="name">
+        <el-input
+          v-model.trim="queryParams.name"
+          placeholder="请输入人员名称"
+          clearable
+          size="small"
+          style="width: 240px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="部门名称" prop="aliasName">
+        <el-input
+          v-model.trim="queryParams.aliasName"
+          placeholder="请输入部门名称"
+          clearable
+          size="small"
+          style="width: 240px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:admin:add']"
+        >新增</el-button>
+      </el-col> -->
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:admin:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:admin:remove']"
+        >删除</el-button> 
+      </el-col>wt注释-->
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['system:admin:export']"
+        >导出</el-button>
+      </el-col> -->
+      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
+    </el-row>
+
+    <el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="人员名称" align="center" prop="name" />
+      <el-table-column label="部门名称" align="center" prop="deptName" />
+      <!-- <el-table-column label="渠道标识" align="center" prop="aliasName"/>
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column> -->
+      <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:admin:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:admin:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改参数配置对话框 -->
+    <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
+        <el-form-item label="人员名称" prop="name">
+          <el-input v-model.trim="form.name" placeholder="请输入人员名称" />
+        </el-form-item>
+        <!-- <el-form-item label="渠道标识" prop="aliasName">
+          <el-input v-model="form.aliasName" placeholder="请输入渠道标识" />
+        </el-form-item> -->
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary" @click="submitForm" v-else>提交中...</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { addChannel, updataChannel, delChannel, listChannel } from "@/api/recharge/personnel";
+
+export default {
+  name: "admin",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      dialogFormVisible:false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      adminList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 类型数据字典
+      typeOptions: [],
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        name: undefined,
+        aliasName: undefined,
+        startTime: undefined,
+        endTime: undefined
+      },
+      // 表单参数
+      form: {
+        name:'',
+        aliasName:''
+      },
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "渠道名称不能为空", trigger: "blur" }
+        ],
+        aliasName: [
+          { required: true, message: "渠道标识不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listChannel(this.addDateRange(this.queryParams)).then(response => {
+        console.log(response)
+          this.adminList = response.data.records;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        ids: undefined,
+        name: undefined,
+        aliasName: undefined,
+        adminType: "Y",
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.current = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加参数";
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+      console.log(this.ids)
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      // this.reset();
+      // const id = row.id || this.ids
+      // getadmin(id).then(response => {
+      Object.assign(this.form, row.id ? this.adminList.find(val=>val.id === row.id) : this.adminList.find(val=>val.id === this.ids[0]))
+      this.open = true;
+      this.title = "修改参数";
+      // });
+    },
+    /** 提交按钮 */
+    submitForm(row) {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.loading = true
+          if (this.form.id != undefined) {
+            updataChannel(this.form).then(response => {
+              this.loading = false,
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addChannel(this.form).then(response => {
+              this.loading = false,
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delChannel(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有参数数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportadmin(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    },
+    /** 刷新缓存按钮操作 */
+    handleRefreshCache() {
+      refreshCache().then(() => {
+        this.msgSuccess("刷新成功");
+      });
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+// .el-button--primary{color:#50B300;border:1px solid #50B300;background: #fff;}
+// .el-button--primary:hover{color:#fff;border:1px solid #50B300;background: #50B300;}
+</style>

+ 24 - 9
src/views/recharge/qrCode/index.vue

@@ -3,7 +3,7 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
       <el-form-item label="二维码名称" prop="name">
         <el-input
-          v-model="queryParams.name"
+          v-model.trim="queryParams.name"
           placeholder="请输入身份信息"
           clearable
           size="small"
@@ -111,13 +111,13 @@
     />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+    <el-dialog  :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="100px" >
         <el-form-item label="二维码名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入二维码名称" />
+          <el-input v-model.trim="form.name" placeholder="请输入二维码名称" @input="forceUpdate" />
         </el-form-item>
         <el-form-item label="渠道名称" prop="topChannelId">
-          <el-select v-model="form.topChannelId"  placeholder="请选择渠道名称" clearable style="width:100%">
+          <el-select v-model.trim="form.topChannelId"  placeholder="请选择渠道名称" clearable style="width:100%" @input="forceUpdate">
             <el-option
               v-for="dict in channelList"
               :key="dict.id"
@@ -127,7 +127,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary" @click="submitForm" v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -171,7 +172,10 @@ export default {
         topChannelName: undefined,
       },
       // 表单参数
-      form: {},
+      form: {
+        name:'',
+        topChannelId:''
+      },
       codeUrl:null,
       // 表单校验
       rules: {
@@ -189,6 +193,9 @@ export default {
     channlPageCode().then(response => this.channelList = response.data);
   },
   methods: {
+    forceUpdate(){ //重置form
+      this.form = JSON.parse(JSON.stringify(this.form));
+    },
     /** 查询参数列表 */
     getList() {
       this.loading = true;
@@ -248,19 +255,27 @@ export default {
     submitForm(row) {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.id != undefined) {
             updataCode(this.form).then(response => {
-              console.log(response)
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
-            });
+            }).catch(()=>{
+              this.loading = false,
+              this.open = false
+            })
           } else {
             addCode(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();
-            });
+            }).catch(()=>{
+              this.loading = false,
+              this.open = false
+            })
           }
         }
       });

+ 24 - 8
src/views/recharge/radio/index.vue

@@ -3,7 +3,7 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
       <el-form-item label="身份信息" prop="identity">
         <el-input
-          v-model="queryParams.identity"
+          v-model.trim="queryParams.identity"
           placeholder="请输入身份信息"
           clearable
           size="small"
@@ -113,17 +113,18 @@
     />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+    <el-dialog  :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
         <el-form-item label="身份信息" prop="identity">
-          <el-input v-model="form.identity" placeholder="请输入身份信息" />
+          <el-input v-model.trim="form.identity" placeholder="请输入身份信息"  @input="forceUpdate" />
         </el-form-item>
         <el-form-item label="充值到账比例" prop="proportion">
-          <el-input v-model="form.proportion" placeholder="请输入充值到账比例(例:0.95)" />
+          <el-input v-model.trim="form.proportion" placeholder="请输入充值到账比例(例:0.95)"  @input="forceUpdate"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary" @click="submitForm" v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -165,7 +166,10 @@ export default {
         proportion: undefined,
       },
       // 表单参数
-      form: {},
+      form: {
+        identity:'',
+        proportion:''
+      },
       // 表单校验
       rules: {
         identity: [
@@ -181,6 +185,9 @@ export default {
     this.getList();
   },
   methods: {
+    forceUpdate(){ //重置form
+      this.form = JSON.parse(JSON.stringify(this.form));
+    },
     /** 查询参数列表 */
     getList() {
       this.loading = true;
@@ -241,18 +248,27 @@ export default {
       console.log(row)
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.id != undefined) {
             updataRadio(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
-            });
+            }).catch(()=>{
+              this.loading = false,
+              this.open = false
+            })
           } else {
             addRadio(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();
-            });
+            }).catch(()=>{
+              this.loading = false,
+              this.open = false
+            })
           }
         }
       });

+ 7 - 3
src/views/recharge/recharge/index.vue

@@ -3,21 +3,21 @@
     <el-form :model="form" :rules="rules" ref="form" label-width="100px">
       <el-form-item label="姓名:" prop="userName">
         <el-input
-          v-model="form.userName"
+          v-model.trim="form.userName"
           placeholder="请输入姓名"
           clearable
         />
       </el-form-item>
       <el-form-item label="手机号码:" prop="userPhone">
         <el-input
-          v-model="form.userPhone"
+          v-model.trim="form.userPhone"
           placeholder="请输入手机号码"
           clearable
         />
       </el-form-item>
       <el-form-item label="充值金额:" prop="money">
         <el-input
-          v-model="form.money"
+          v-model.trim="form.money"
           placeholder="请输入充值金额"
           clearable
         />
@@ -71,6 +71,10 @@ export default {
     };
   },
   methods: {
+    forceUpdate(){ //重置form
+      this.form = JSON.parse(JSON.stringify(this.form));
+    },
+    
     /** 提交按钮 */
     submitForm(row) {
       this.$refs["form"].validate(valid => {

+ 4 - 6
src/views/recharge/reportForm/index.vue

@@ -87,17 +87,13 @@ export default {
   },
   created() {
     this.getList();
-    let a = 0.1+0.2
-    console.log(a.toFixed(2))
     
   },
   methods: {
     /** 查询参数列表 */
     getList() {
       this.loading = true;
-      console.log(this.queryParams.type)
       listReport(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
-        console.log(response)
           this.adminList = response.data.records.map(val=>{
             return {
               ...val,
@@ -112,6 +108,10 @@ export default {
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.current = 1;
+      this.queryParams.startTime = undefined;
+      this.queryParams.endTime = undefined;
+      this.queryParams.endTime = undefined;
+      this.queryParams.type = 1;
       this.getList();
     },
     /** 重置按钮操作 */
@@ -123,10 +123,8 @@ export default {
     /** 导出按钮操作 */
     handleExport() {
       let queryParams = {...this.queryParams};
-      console.log(queryParams)
       delete queryParams.current
       delete queryParams.size
-      console.log(queryParams)
       this.$confirm('是否确认导出数据?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",

+ 1 - 1
src/views/register.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="register">
     <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
-      <h3 class="title">永天后台管理系统</h3>
+      <h3 class="title">东信充值管理系统</h3>
       <el-form-item prop="username">
         <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
           <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />

+ 6 - 2
src/views/system/config/index.vue

@@ -148,7 +148,7 @@
     />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="参数名称" prop="configName">
           <el-input v-model="form.configName" placeholder="请输入参数名称" />
@@ -173,7 +173,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -310,14 +311,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.configId != undefined) {
             updateConfig(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addConfig(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 9 - 2
src/views/system/dept/index.vue

@@ -84,7 +84,7 @@
     </el-table>
 
     <!-- 添加或修改部门对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="24" v-if="form.parentId !== 0">
@@ -131,10 +131,12 @@
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+ 
   </div>
 </template>
 
@@ -208,7 +210,9 @@ export default {
     getList() {
       this.loading = true;
       listDept(this.queryParams).then(response => {
+        console.log(response.data)
         this.deptList = this.handleTree(response.data, "deptId");
+        console.log(this.deptList)
         this.loading = false;
       });
     },
@@ -283,14 +287,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.deptId != undefined) {
             updateDept(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addDept(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 6 - 2
src/views/system/dict/data.vue

@@ -134,7 +134,7 @@
     />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="字典类型">
           <el-input v-model="form.dictType" :disabled="true" />
@@ -175,7 +175,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -356,14 +357,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.dictCode != undefined) {
             updateData(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addData(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 6 - 2
src/views/system/dict/index.vue

@@ -163,7 +163,7 @@
     />
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="字典名称" prop="dictName">
           <el-input v-model="form.dictName" placeholder="请输入字典名称" />
@@ -185,7 +185,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -314,14 +315,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.dictId != undefined) {
             updateType(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addType(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 6 - 2
src/views/system/menu/index.vue

@@ -88,7 +88,7 @@
     </el-table>
 
     <!-- 添加或修改菜单对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-row>
           <el-col :span="24">
@@ -241,7 +241,8 @@
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -408,14 +409,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.menuId != undefined) {
             updateMenu(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addMenu(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 6 - 2
src/views/system/notice/index.vue

@@ -129,7 +129,7 @@
     />
 
     <!-- 添加或修改公告对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="12">
@@ -168,7 +168,8 @@
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -305,14 +306,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.noticeId != undefined) {
             updateNotice(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addNotice(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 6 - 2
src/views/system/post/index.vue

@@ -123,7 +123,7 @@
     />
 
     <!-- 添加或修改岗位对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="岗位名称" prop="postName">
           <el-input v-model="form.postName" placeholder="请输入岗位名称" />
@@ -148,7 +148,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary" v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -281,14 +282,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.postId != undefined) {
             updatePost(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addPost(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 294 - 0
src/views/system/product/index.vue


+ 12 - 6
src/views/system/role/index.vue

@@ -88,7 +88,7 @@
           v-hasPermi="['system:role:remove']"
         >删除</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -98,7 +98,7 @@
           @click="handleExport"
           v-hasPermi="['system:role:export']"
         >导出</el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -163,7 +163,7 @@
     />
 
     <!-- 添加或修改角色配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="角色名称" prop="roleName">
           <el-input v-model="form.roleName" placeholder="请输入角色名称" />
@@ -209,13 +209,15 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+       
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
 
     <!-- 分配角色数据权限对话框 -->
-    <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form :model="form" label-width="80px">
         <el-form-item label="角色名称">
           <el-input v-model="form.roleName" :disabled="true" />
@@ -251,7 +253,8 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitDataScope">确 定</el-button>
+        <el-button type="primary" @click="submitDataScope" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancelDataScope">取 消</el-button>
       </div>
     </el-dialog>
@@ -580,9 +583,11 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.roleId != undefined) {
             this.form.menuIds = this.getMenuAllCheckedKeys();
             updateRole(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
@@ -590,6 +595,7 @@ export default {
           } else {
             this.form.menuIds = this.getMenuAllCheckedKeys();
             addRole(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 4 - 2
src/views/system/role/selectUser.vue

@@ -1,6 +1,6 @@
 <template>
   <!-- 授权用户 -->
-  <el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
+  <el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body :before-close="cancel" :close-on-click-modal="false">
     <el-form :model="queryParams" ref="queryForm" :inline="true">
       <el-form-item label="用户名称" prop="userName">
         <el-input
@@ -52,7 +52,8 @@
       />
     </el-row>
     <div slot="footer" class="dialog-footer">
-      <el-button type="primary" @click="handleSelectUser">确 定</el-button>
+      <el-button type="primary" @click="handleSelectUser" v-if="!loading">确 定</el-button>
+      <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
       <el-button @click="visible = false">取 消</el-button>
     </div>
   </el-dialog>
@@ -69,6 +70,7 @@ export default {
   },
   data() {
     return {
+      loading:fasle,
       // 遮罩层
       visible: false,
       // 选中数组值

+ 2 - 1
src/views/system/user/authRole.vue

@@ -38,7 +38,8 @@
 
     <el-form label-width="100px">
       <el-form-item style="text-align: center;margin-left:-120px;margin-top:30px;">
-        <el-button type="primary" @click="submitForm()">提交</el-button>
+        <el-button type="primary" @click="submitForm()" v-if="!loading">提交</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="close()">返回</el-button>
       </el-form-item>
     </el-form>

+ 11 - 6
src/views/system/user/index.vue

@@ -115,7 +115,7 @@
               v-hasPermi="['system:user:remove']"
             >删除</el-button>
           </el-col>
-          <el-col :span="1.5">
+          <!-- <el-col :span="1.5">
             <el-button
               type="info"
               plain
@@ -135,7 +135,7 @@
               @click="handleExport"
               v-hasPermi="['system:user:export']"
             >导出</el-button>
-          </el-col>
+          </el-col> -->
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
         </el-row>
 
@@ -208,7 +208,7 @@
     </el-row>
 
     <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="12">
@@ -308,13 +308,14 @@
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
 
     <!-- 用户导入对话框 -->
-    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-upload
         ref="upload"
         :limit="1"
@@ -338,7 +339,8 @@
         </div>
       </el-upload>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button type="primary" @click="submitFileForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
@@ -628,14 +630,17 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          this.loading = true
           if (this.form.userId != undefined) {
             updateUser(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
             addUser(this.form).then(response => {
+              this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 1 - 1
src/views/system/user/profile/userAvatar.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" /></div>
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"  @close="closeDialog()">
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"  @close="closeDialog()" :before-close="cancel" :close-on-click-modal="false">
       <el-row>
         <el-col :xs="24" :md="12" :style="{height: '350px'}">
           <vue-cropper

+ 4 - 3
vue.config.js

@@ -5,7 +5,7 @@ function resolve(dir) {
     return path.join(__dirname, dir)
 }
 
-const name = process.env.VUE_APP_TITLE || '永天管理系统' // 网页标题
+const name = process.env.VUE_APP_TITLE || '东信充值管理系统' // 网页标题
 
 const port = process.env.port || process.env.npm_config_port || 80 // 端口
 
@@ -33,8 +33,9 @@ module.exports = {
         proxy: {
             // detail: https://cli.vuejs.org/config/#devserver-proxy
             [process.env.VUE_APP_BASE_API]: {
-                target: 'https://wx.ewoogi.com/dxapi/',
-                //target: `http://172.16.120.104:8085`,
+                //target: 'http://101.133.214.75/dxapi/',
+                //target: 'https://wx.ewoogi.com/dxapi/',
+                target: `http://172.16.120.104:8085`,
                 changeOrigin: true,
                 pathRewrite: {
                     ['^' + process.env.VUE_APP_BASE_API]: ''

BIN
vuedx/favicon.ico


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 21 - 0
vuedx/html/ie.html


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 183 - 0
vuedx/index.html


+ 2 - 0
vuedx/robots.txt

@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/css/app.947f802c.css


+ 0 - 0
vuedx/static/css/chunk-04410c23.0e433876.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/css/chunk-16e84c30.32440e24.css


+ 0 - 0
vuedx/static/css/chunk-202692f6.0e433876.css


+ 1 - 0
vuedx/static/css/chunk-27435356.e938e3e6.css

@@ -0,0 +1 @@
+.app-container[data-v-02125141]{padding-top:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.payTypeClass img[data-v-02125141]{width:120px;height:90px;margin:0 10px}

+ 0 - 0
vuedx/static/css/chunk-37084d10.0e433876.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 4 - 0
vuedx/static/css/chunk-43a79b8c.84f98409.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/css/chunk-637b5fba.43aa4fad.css


+ 1 - 0
vuedx/static/css/chunk-6f6e7ec6.9aca4adc.css

@@ -0,0 +1 @@
+.bg{overflow:hidden;position:fixed}.bg,.bg .bgimg{width:100%;height:100%;top:0;left:0;z-index:-1}.bg .bgimg{position:absolute}.logo{width:100%;position:fixed;top:0}.logo img{width:6%;margin:10px 2rem 0 20px;vertical-align:middle}.logo .logo_txt{font-size:1.6rem;color:#fff;vertical-align:middle}.login{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;background-size:cover}.title{margin:0 auto 30px auto;text-align:center;color:#707070}.login-form{border-radius:6px;background:#fff;width:400px;padding:25px 25px 5px 25px}.login-form .el-input,.login-form .el-input input{height:38px}.login-form .input-icon{height:39px;width:14px;margin-left:2px}.login-tip{font-size:13px;text-align:center;color:#bfbfbf}.login-code{width:33%;height:38px;float:right}.login-code img{cursor:pointer;vertical-align:middle}.el-login-footer{height:40px;line-height:40px;position:fixed;bottom:0;width:100%;text-align:center;color:#fff;font-family:Arial;font-size:12px;letter-spacing:1px}.login-code-img{height:38px}

+ 1 - 0
vuedx/static/css/chunk-7848e7af.dcb8920c.css

@@ -0,0 +1 @@
+.user-info-head[data-v-2f806844]{position:relative;display:inline-block;height:120px}.user-info-head[data-v-2f806844]:hover:after{content:"+";position:absolute;left:0;right:0;top:0;bottom:0;color:#eee;background:rgba(0,0,0,.5);font-size:24px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer;line-height:110px;border-radius:50%}

+ 1 - 0
vuedx/static/css/chunk-7d993ace.02c39c52.css

@@ -0,0 +1 @@
+.register{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;background-size:cover}.title{margin:0 auto 30px auto;text-align:center;color:#707070}.register-form{border-radius:6px;background:#fff;width:400px;padding:25px 25px 5px 25px}.register-form .el-input,.register-form .el-input input{height:38px}.register-form .input-icon{height:39px;width:14px;margin-left:2px}.register-tip{font-size:13px;text-align:center;color:#bfbfbf}.register-code{width:33%;height:38px;float:right}.register-code img{cursor:pointer;vertical-align:middle}.el-register-footer{height:40px;line-height:40px;position:fixed;bottom:0;width:100%;text-align:center;color:#fff;font-family:Arial;font-size:12px;letter-spacing:1px}.register-code-img{height:38px}

+ 1 - 0
vuedx/static/css/chunk-b4477732.265d9d9a.css

@@ -0,0 +1 @@
+.errPage-container[data-v-f2e02586]{width:800px;max-width:100%;margin:100px auto}.errPage-container .pan-back-btn[data-v-f2e02586]{background:#008489;color:#fff;border:none!important}.errPage-container .pan-gif[data-v-f2e02586]{margin:0 auto;display:block}.errPage-container .pan-img[data-v-f2e02586]{display:block;margin:0 auto;width:100%}.errPage-container .text-jumbo[data-v-f2e02586]{font-size:60px;font-weight:700;color:#484848}.errPage-container .list-unstyled[data-v-f2e02586]{font-size:14px}.errPage-container .list-unstyled li[data-v-f2e02586]{padding-bottom:5px}.errPage-container .list-unstyled a[data-v-f2e02586]{color:#008489;text-decoration:none}.errPage-container .list-unstyled a[data-v-f2e02586]:hover{text-decoration:underline}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/css/chunk-c28ad000.b5bdb2c6.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 15 - 0
vuedx/static/css/chunk-libs.ea078ece.css


BIN
vuedx/static/fonts/element-icons.535877f5.woff


BIN
vuedx/static/fonts/element-icons.732389de.ttf


BIN
vuedx/static/img/401.089007e7.gif


BIN
vuedx/static/img/404.a57b6f31.png


BIN
vuedx/static/img/404_cloud.0f4bc32b.png


BIN
vuedx/static/img/bg.721318ef.png


+ 39 - 0
vuedx/static/img/dark.412ca67e.svg

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1" 
+    xmlns="http://www.w3.org/2000/svg" 
+    xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs>
+        <filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">
+            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
+                <feMergeNode in="SourceGraphic"></feMergeNode>
+            </feMerge>
+        </filter>
+        <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect>
+        <filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
+            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+    </defs>
+    <g id="配置面板" width="48" height="40" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="setting-copy-2" width="48" height="40" transform="translate(-1190.000000, -136.000000)">
+            <g id="Group-8" width="48" height="40" transform="translate(1167.000000, 0.000000)">
+                <g id="Group-5-Copy-5" filter="url(#filter-1)" transform="translate(25.000000, 137.000000)">
+                    <mask id="mask-3" fill="white">
+                        <use xlink:href="#path-2"></use>
+                    </mask>
+                    <g id="Rectangle-18">
+                        <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
+                        <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
+                    </g>
+                    <rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect>
+                    <rect id="Rectangle-18" fill="#303648" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 39 - 0
vuedx/static/img/light.4183aad0.svg

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="52px" height="45px" viewBox="0 0 52 45" version="1.1" 
+    xmlns="http://www.w3.org/2000/svg" 
+    xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs>
+        <filter x="-9.4%" y="-6.2%" width="118.8%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">
+            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.15 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
+                <feMergeNode in="SourceGraphic"></feMergeNode>
+            </feMerge>
+        </filter>
+        <rect id="path-2" x="0" y="0" width="48" height="40" rx="4"></rect>
+        <filter x="-4.2%" y="-2.5%" width="108.3%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
+            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+    </defs>
+    <g id="配置面板" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="setting-copy-2" transform="translate(-1254.000000, -136.000000)">
+            <g id="Group-8" transform="translate(1167.000000, 0.000000)">
+                <g id="Group-5" filter="url(#filter-1)" transform="translate(89.000000, 137.000000)">
+                    <mask id="mask-3" fill="white">
+                        <use xlink:href="#path-2"></use>
+                    </mask>
+                    <g id="Rectangle-18">
+                        <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
+                        <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
+                    </g>
+                    <rect id="Rectangle-18" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect>
+                    <rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

BIN
vuedx/static/img/logo-b.20ff6ff1.png


BIN
vuedx/static/img/logo.079ce343.png


BIN
vuedx/static/img/tj1.b68f0515.png


BIN
vuedx/static/img/tj2.fa68c989.png


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/app.5972ae83.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-04410c23.6f082b5b.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-16e84c30.faeedd02.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-202692f6.7d2aa794.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2727631f.857947d2.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-27435356.a22633a9.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2d0b2b28.9ffc10ea.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2d0c4aa4.7646343b.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2d0c9569.904155ba.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2d0e2366.68f2ed78.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2d0e6354.3d57d1e1.js


+ 1 - 0
vuedx/static/js/chunk-2d0f012d.1bde8e38.js

@@ -0,0 +1 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0f012d"],{"9b8f":function(e,r,n){"use strict";n.r(r);n("ac1f"),n("5319");var t,u,a={created:function(){var e=this.$route,r=e.params,n=e.query,t=r.path;this.$router.replace({path:"/"+t,query:n})},render:function(e){return e()}},c=a,o=n("2877"),p=Object(o["a"])(c,t,u,!1,null,null,null);r["default"]=p.exports}}]);

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-2d22ccc3.1f2af9c7.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-37084d10.7c81850d.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-43a79b8c.c233bcd2.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-637b5fba.26d45569.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-6f6e7ec6.5d97f0a9.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-7848e7af.54a0b7d4.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-7d993ace.aad87027.js


+ 1 - 0
vuedx/static/js/chunk-b4477732.e6502353.js

@@ -0,0 +1 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-b4477732"],{c0ed:function(t,e,c){},cc6c:function(t,e,c){t.exports=c.p+"static/img/401.089007e7.gif"},ec55:function(t,e,c){"use strict";c.r(e);var s=function(){var t=this,e=t.$createElement,c=t._self._c||e;return c("div",{staticClass:"errPage-container"},[c("el-button",{staticClass:"pan-back-btn",attrs:{icon:"arrow-left"},on:{click:t.back}},[t._v(" 返回 ")]),c("el-row",[c("el-col",{attrs:{span:12}},[c("h1",{staticClass:"text-jumbo text-ginormous"},[t._v(" 401错误! ")]),c("h2",[t._v("您没有访问权限!")]),c("h6",[t._v("对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面")]),c("ul",{staticClass:"list-unstyled"},[c("li",{staticClass:"link-type"},[c("router-link",{attrs:{to:"/"}},[t._v(" 回首页 ")])],1)])]),c("el-col",{attrs:{span:12}},[c("img",{attrs:{src:t.errGif,width:"313",height:"428",alt:"Girl has dropped her ice cream."}})])],1)],1)},a=[],n=c("cc6c"),r=c.n(n),i={name:"Page401",data:function(){return{errGif:r.a+"?"+ +new Date}},methods:{back:function(){this.$route.query.noGoBack?this.$router.push({path:"/"}):this.$router.go(-1)}}},o=i,l=(c("ecf6"),c("2877")),u=Object(l["a"])(o,s,a,!1,null,"f2e02586",null);e["default"]=u.exports},ecf6:function(t,e,c){"use strict";c("c0ed")}}]);

+ 1 - 0
vuedx/static/js/chunk-c28ad000.4460b3ee.js

@@ -0,0 +1 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-c28ad000"],{"0986":function(t,s,i){},"26fc":function(t,s,i){t.exports=i.p+"static/img/404_cloud.0f4bc32b.png"},2754:function(t,s,i){"use strict";i.r(s);var a=function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"wscn-http404-container"},[i("div",{staticClass:"wscn-http404"},[t._m(0),i("div",{staticClass:"bullshit"},[i("div",{staticClass:"bullshit__oops"},[t._v(" 404错误! ")]),i("div",{staticClass:"bullshit__headline"},[t._v(" "+t._s(t.message)+" ")]),i("div",{staticClass:"bullshit__info"},[t._v(" 对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。 ")]),i("router-link",{staticClass:"bullshit__return-home",attrs:{to:"/"}},[t._v(" 返回首页 ")])],1)])])},c=[function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"pic-404"},[a("img",{staticClass:"pic-404__parent",attrs:{src:i("a36b"),alt:"404"}}),a("img",{staticClass:"pic-404__child left",attrs:{src:i("26fc"),alt:"404"}}),a("img",{staticClass:"pic-404__child mid",attrs:{src:i("26fc"),alt:"404"}}),a("img",{staticClass:"pic-404__child right",attrs:{src:i("26fc"),alt:"404"}})])}],l={name:"Page404",computed:{message:function(){return"找不到网页!"}}},n=l,e=(i("61b6"),i("2877")),r=Object(e["a"])(n,a,c,!1,null,"279ea4b2",null);s["default"]=r.exports},"61b6":function(t,s,i){"use strict";i("0986")},a36b:function(t,s,i){t.exports=i.p+"static/img/404.a57b6f31.png"}}]);

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-c4993c78.3f33e22e.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-elementUI.5170e8b1.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
vuedx/static/js/chunk-libs.b64e9255.js


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio