Преглед изворни кода

设备设施饼图赋值加异步处理

wt пре 3 година
родитељ
комит
fccf1bb41d
82 измењених фајлова са 1014 додато и 3676 уклоњено
  1. BIN
      deviceManager.zip
  2. BIN
      deviceManager/favicon.ico
  3. 210 0
      deviceManager/html/ie.html
  4. 181 0
      deviceManager/index.html
  5. 2 0
      deviceManager/robots.txt
  6. 0 0
      deviceManager/static/css/app.cc8264b7.css
  7. 1 0
      deviceManager/static/css/chunk-2d1d87f5.f4f45be1.css
  8. 0 0
      deviceManager/static/css/chunk-3f578cad.75b59fd0.css
  9. 0 0
      deviceManager/static/css/chunk-41c0d8a4.589a6c97.css
  10. 0 0
      deviceManager/static/css/chunk-4b5668c0.2cbded2b.css
  11. 1 0
      deviceManager/static/css/chunk-58e08142.4f216fb8.css
  12. 1 0
      deviceManager/static/css/chunk-60a3932e.38cf5e73.css
  13. 1 0
      deviceManager/static/css/chunk-6a3a862b.02c39c52.css
  14. 4 0
      deviceManager/static/css/chunk-887127d2.84f98409.css
  15. 15 0
      deviceManager/static/css/chunk-libs.ea078ece.css
  16. BIN
      deviceManager/static/fonts/element-icons.535877f5.woff
  17. BIN
      deviceManager/static/fonts/element-icons.732389de.ttf
  18. BIN
      deviceManager/static/img/1.8284d1cf.gif
  19. BIN
      deviceManager/static/img/401.089007e7.gif
  20. BIN
      deviceManager/static/img/404.a57b6f31.png
  21. BIN
      deviceManager/static/img/404_cloud.0f4bc32b.png
  22. BIN
      deviceManager/static/img/bg.1a7b14da.png
  23. 39 0
      deviceManager/static/img/dark.412ca67e.svg
  24. 39 0
      deviceManager/static/img/light.4183aad0.svg
  25. BIN
      deviceManager/static/img/logo-b.fd92c04e.png
  26. BIN
      deviceManager/static/img/logo.847312f6.png
  27. 0 0
      deviceManager/static/js/app.5324dc91.js
  28. 0 0
      deviceManager/static/js/chunk-2d0b2b28.9ffc10ea.js
  29. 0 0
      deviceManager/static/js/chunk-2d0e2366.68f2ed78.js
  30. 1 0
      deviceManager/static/js/chunk-2d0f012d.1bde8e38.js
  31. 1 0
      deviceManager/static/js/chunk-2d1d87f5.7aa1149c.js
  32. 0 0
      deviceManager/static/js/chunk-3f578cad.85f4da46.js
  33. 0 0
      deviceManager/static/js/chunk-41c0d8a4.a3251999.js
  34. 1 0
      deviceManager/static/js/chunk-4b5668c0.cb92adaf.js
  35. 0 0
      deviceManager/static/js/chunk-58e08142.3cc76bbd.js
  36. 0 0
      deviceManager/static/js/chunk-60a3932e.b2644498.js
  37. 0 0
      deviceManager/static/js/chunk-6a3a862b.014e9ac0.js
  38. 0 0
      deviceManager/static/js/chunk-887127d2.a09701ce.js
  39. 0 0
      deviceManager/static/js/chunk-elementUI.1ae322cf.js
  40. 0 0
      deviceManager/static/js/chunk-libs.b64e9255.js
  41. 3 0
      src/App.vue
  42. 2 2
      src/api/business/OM/eventCenter/index.js
  43. 4 4
      src/api/business/deviceMange/index.js
  44. 0 35
      src/api/recharge/admin.js
  45. 0 33
      src/api/recharge/channel.js
  46. 0 42
      src/api/recharge/department.js
  47. 0 26
      src/api/recharge/detailed.js
  48. 0 19
      src/api/recharge/fileExport.js
  49. 0 111
      src/api/recharge/index.js
  50. 0 49
      src/api/recharge/personnel.js
  51. 0 48
      src/api/recharge/qrCode.js
  52. 0 49
      src/api/recharge/radio.js
  53. 0 19
      src/api/recharge/reportForm.js
  54. 0 26
      src/api/recharge/userRecharge.js
  55. 48 0
      src/api/system/security.js
  56. 3 3
      src/assets/js/dataFormate.js
  57. 1 1
      src/views/business/buildMange/floor/index.vue
  58. 1 1
      src/views/business/buildMange/room/index.vue
  59. 1 2
      src/views/business/deviceMange/deviceApi/index.vue
  60. 1 1
      src/views/business/deviceMange/deviceList/index.vue
  61. 3 1
      src/views/business/deviceMange/devicePassageWay/index.vue
  62. 1 1
      src/views/business/deviceMange/deviceType/index.vue
  63. 65 78
      src/views/business/fireInternet/deviceMonitoring/waterMonitoring/device/index.vue
  64. 3 3
      src/views/components/fireInternetInfo/index1.vue
  65. 2 1
      src/views/components/fireInternetInfo/index2.vue
  66. 61 81
      src/views/components/fireInternetInfo/index3.vue
  67. 167 0
      src/views/components/fireInternetInfo/index4.vue
  68. 3 1
      src/views/index.vue
  69. 0 334
      src/views/recharge/admin/index.vue
  70. 0 320
      src/views/recharge/channel/index.vue
  71. 0 131
      src/views/recharge/department/index.vue
  72. 0 315
      src/views/recharge/detailed/index.vue
  73. 0 253
      src/views/recharge/fileExport/index.vue
  74. 0 301
      src/views/recharge/personnel/index.vue
  75. 0 295
      src/views/recharge/qrCode/index.vue
  76. 0 368
      src/views/recharge/radio/index.vue
  77. 0 152
      src/views/recharge/reportForm/index.vue
  78. 0 241
      src/views/recharge/userRecharge/index.vue
  79. 19 18
      src/views/system/product/index.vue
  80. 109 296
      src/views/system/security/index.vue
  81. 19 14
      src/views/system/user/index.vue
  82. 1 1
      vue.config.js

BIN
deviceManager.zip


BIN
deviceManager/favicon.ico


Разлика између датотеке није приказан због своје велике величине
+ 210 - 0
deviceManager/html/ie.html


Разлика између датотеке није приказан због своје велике величине
+ 181 - 0
deviceManager/index.html


+ 2 - 0
deviceManager/robots.txt

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

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/css/app.cc8264b7.css


+ 1 - 0
deviceManager/static/css/chunk-2d1d87f5.f4f45be1.css

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

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/css/chunk-3f578cad.75b59fd0.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/css/chunk-41c0d8a4.589a6c97.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/css/chunk-4b5668c0.2cbded2b.css


+ 1 - 0
deviceManager/static/css/chunk-58e08142.4f216fb8.css

@@ -0,0 +1 @@
+.user-info-head[data-v-20a6c9d6]{position:relative;display:inline-block;height:120px}.user-info-head[data-v-20a6c9d6]: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
deviceManager/static/css/chunk-60a3932e.38cf5e73.css

@@ -0,0 +1 @@
+.bg[data-v-402516f8]{width:100%;height:100%;overflow:hidden;position:fixed;top:0;left:0;z-index:-1}.bg .bgimg[data-v-402516f8]{width:100%;height:100%;position:absolute;top:0;left:0;z-index:-1}.logo[data-v-402516f8]{width:100%;position:fixed;top:0}.logo img[data-v-402516f8]{width:152px;margin:10px 2rem 0 20px;vertical-align:middle}.logo .logo_txt[data-v-402516f8]{font-size:1.5rem;color:#fff;vertical-align:middle;letter-spacing:4px}.login[data-v-402516f8]{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[data-v-402516f8]{margin:0 auto 30px auto;text-align:left;color:#000;font-size:20px}.title span[data-v-402516f8]{margin-left:10px;opacity:.25}.login-form[data-v-402516f8]{border-radius:6px;background:#fff;width:456px;padding:63px 35px}.login-form .el-input[data-v-402516f8]{height:40px;font-size:16px!important}.login-form .el-input input[data-v-402516f8]{height:40px}.login-form .input-icon[data-v-402516f8]{height:39px;width:14px;margin-left:2px}.login-tip[data-v-402516f8]{font-size:13px;text-align:center;color:#bfbfbf}.login-code[data-v-402516f8]{width:33%;height:38px;float:right}.login-code img[data-v-402516f8]{cursor:pointer;vertical-align:middle}.el-login-footer[data-v-402516f8]{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[data-v-402516f8]{height:38px}[data-v-402516f8] .el-input__inner{height:36px!important;line-height:36px!important}

+ 1 - 0
deviceManager/static/css/chunk-6a3a862b.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}

Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
deviceManager/static/css/chunk-887127d2.84f98409.css


Разлика између датотеке није приказан због своје велике величине
+ 15 - 0
deviceManager/static/css/chunk-libs.ea078ece.css


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


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


BIN
deviceManager/static/img/1.8284d1cf.gif


BIN
deviceManager/static/img/401.089007e7.gif


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


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


BIN
deviceManager/static/img/bg.1a7b14da.png


+ 39 - 0
deviceManager/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
deviceManager/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
deviceManager/static/img/logo-b.fd92c04e.png


BIN
deviceManager/static/img/logo.847312f6.png


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/app.5324dc91.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-2d0b2b28.9ffc10ea.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-2d0e2366.68f2ed78.js


+ 1 - 0
deviceManager/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}}]);

+ 1 - 0
deviceManager/static/js/chunk-2d1d87f5.7aa1149c.js

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

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-3f578cad.85f4da46.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-41c0d8a4.a3251999.js


+ 1 - 0
deviceManager/static/js/chunk-4b5668c0.cb92adaf.js

@@ -0,0 +1 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4b5668c0"],{"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 c=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:"/index"}},[t._v(" 返回首页 ")])],1)])])},a=[function(){var t=this,s=t.$createElement,c=t._self._c||s;return c("div",{staticClass:"pic-404"},[c("img",{staticClass:"pic-404__parent",attrs:{src:i("a36b"),alt:"404"}}),c("img",{staticClass:"pic-404__child left",attrs:{src:i("26fc"),alt:"404"}}),c("img",{staticClass:"pic-404__child mid",attrs:{src:i("26fc"),alt:"404"}}),c("img",{staticClass:"pic-404__child right",attrs:{src:i("26fc"),alt:"404"}})])}],e={name:"Page404",computed:{message:function(){return"找不到网页!"}}},l=e,n=(i("e077"),i("2877")),r=Object(n["a"])(l,c,a,!1,null,"267f2676",null);s["default"]=r.exports},"2e5e":function(t,s,i){},a36b:function(t,s,i){t.exports=i.p+"static/img/404.a57b6f31.png"},e077:function(t,s,i){"use strict";i("2e5e")}}]);

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-58e08142.3cc76bbd.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-60a3932e.b2644498.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-6a3a862b.014e9ac0.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-887127d2.a09701ce.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-elementUI.1ae322cf.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
deviceManager/static/js/chunk-libs.b64e9255.js


+ 3 - 0
src/App.vue

@@ -37,6 +37,9 @@ export default  {
   width:auto;
   line-height:28px;
 }
+.el-input-number.is-controls-right[class*=medium] [class*=increase], .el-input-number.is-controls-right[class*=medium] [class*=decrease] {
+    line-height: 13px;
+}
 </style>
 <style lang="scss" scoped>
 ::v-deep {

+ 2 - 2
src/api/business/OM/eventCenter/index.js

@@ -130,8 +130,8 @@ export function getEventManage(data) {
 export function exportEventManage(data) {
     return request({
         url: "/eventManage/export",
-        method: 'post',
-        data: data
+        method: 'get',
+        params: data
     })
 }
 

+ 4 - 4
src/api/business/deviceMange/index.js

@@ -134,8 +134,8 @@ export function getCommunicationApi(data) {
 export function exportCommunicationApi(data) {
     return request({
         url: "/communicationApi/export",
-        method: 'post',
-        data: data
+        method: 'get',
+        params: data
     })
 }
 
@@ -206,7 +206,7 @@ export function getDeviceChannel(data) {
 export function exportDeviceChannel(data) {
     return request({
         url: "/deviceChannel/export",
-        method: 'post',
-        data: data
+        method: 'get',
+        params: data
     })
 }

+ 0 - 35
src/api/recharge/admin.js

@@ -1,35 +0,0 @@
-import request from '@/utils/request'
-
-
-// 新增
-export function listAdmin(query) {
-    return request({
-        url: '/system/dept/list',
-        // url: '/dxtop/topRadio/list',
-        method: 'get',
-        params: query
-    })
-}
-// 修改
-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(query) {
-    return request({
-        url: '/dxtop/topChannel/list',
-        method: 'get',
-        params: query
-    })
-}

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

@@ -1,33 +0,0 @@
-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(query) {
-    return request({
-        url: '/dxtop/topChannel/page',
-        method: 'get',
-        params: query
-    })
-}

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

@@ -1,42 +0,0 @@
-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
-    })
-}
-
-// 同步部门信息
-export function deptJob(params) {
-    return request({
-        url: '/dxtop/smjob/deptJob',
-        method: 'post',
-        params
-    })
-}

+ 0 - 26
src/api/recharge/detailed.js

@@ -1,26 +0,0 @@
-import request from '@/utils/request'
-
-// 查询
-export function listDetal(data) {
-    return request({
-        url: '/dxtop/order/list',
-        method: 'post',
-        data: data
-    })
-}
-// 修改
-export function updataChannel(data) {
-    return request({
-        url: '/dxtop/order',
-        method: 'put',
-        data: data
-    })
-}
-// 导出
-export function exportDetail(data) {
-    return request({
-        url: '/dxtop/order/exportDetail',
-        method: 'post',
-        data: data,
-    })
-}

+ 0 - 19
src/api/recharge/fileExport.js

@@ -1,19 +0,0 @@
-import request from '@/utils/request'
-
-// 查询
-export function filelist(data) {
-    return request({
-        url: '/async',
-        method: 'get',
-        params: data
-    })
-}
-// 导出
-export function exportReport(data) {
-    return request({
-        url: '/sysFile/async1',
-        method: 'get',
-        params: data,
-        // responseType: 'blob'
-    })
-}

+ 0 - 111
src/api/recharge/index.js

@@ -1,111 +0,0 @@
-import request from '@/utils/request'
-
-
-// 员工总数接口
-export function employeesCountApi() {
-    return request({
-        url: '/dxtop/staff/count',
-        method: 'get',
-    })
-}
-// 不同人员比例
-export function personnelRatioApi() {
-    return request({
-        url: '/dxtop/staff/staffRadio',
-        method: 'get',
-    })
-}
-// 渠道订单金额汇总
-export function channelOrderMoneyApi() {
-    return request({
-        url: '/dxtop/topChannel/channelOrderMoney',
-        method: 'get',
-    })
-}
-// 支付方式数据
-export function payTypeCollectApi() {
-    return request({
-        url: '/dxtop/order/payTypeCollect',
-        method: 'get',
-    })
-}
-//充值金额/充值次数
-export function orderMoneyApi() {
-    return request({
-        url: '/dxtop/order/orderMoney',
-        method: 'get',
-    })
-}
-// 消费数据统计
-export function collectApi(data) {
-    return request({
-        url: '/dxtop/dish/collect',
-        method: 'get',
-
-    })
-}
-
-// 充值数据统计
-export function dateCollectApi(data) {
-    return request({
-        url: '/dxtop/order/dateCollect',
-        method: 'get',
-        params: data
-    })
-
-}
-
-// 修改
-export function updataChannel() {
-    return request({
-        url: '/dxtop/topChannel',
-        method: 'put',
-    })
-}
-// 删除
-export function delChannel(deptId) {
-    return request({
-        url: '/dxtop/topChannel/' + deptId,
-        method: 'delete',
-
-    })
-}
-// 查询
-export function listChannel(query) {
-    return request({
-        url: '/dxtop/topChannel/list',
-        method: 'get',
-        params: query
-    })
-}
-
-
-// //根据支付方式计算订单汇总
-// localhost:8085/dxtop/order/payTypeCollect
-// 请求方式:get
-// 参数:无
-// 响应:[
-//         {
-
-//             "payType": 1,
-//             "money": 1.00
-//         }
-// 只需要拿payType和money字段
-
-
-// //充值金额/充值次数
-// localhost:8085/dxtop/order/orderMoney
-// 请求方式:get
-// 参数无
-// 响应:{
-//         "total": 0.00,//充值金额
-//         "count": 0//充值次数
-//     }
-// //日期统计接口
-// //localhost:8085/dxtop/order/dateCollect
-// 参数:type(0月1年),startTime,endTime
-// [
-//         {
-//             "total": 0.0,
-//             "orderTime": 1
-//         }

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

@@ -1,49 +0,0 @@
-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
-    })
-}
-// 同步人员信息
-export function personJob(params) {
-    return request({
-        url: '/dxtop/smjob/personJob',
-        method: 'post',
-        params
-    })
-}
-// 批量处理充值到账比例
-export function staff(data) {
-    return request({
-        url: '/dxtop/staff/',
-        method: 'post',
-        data: data
-    })
-}

+ 0 - 48
src/api/recharge/qrCode.js

@@ -1,48 +0,0 @@
-import request from '@/utils/request'
-
-// 新增
-export function addCode(data) {
-    return request({
-        url: '/dxtop/qrCode',
-        method: 'post',
-        data: data
-    })
-}
-// 修改
-export function updataCode(data) {
-    return request({
-        url: '/dxtop/qrCode',
-        method: 'put',
-        data: data
-    })
-}
-// 删除
-export function delCode(deptId) {
-    return request({
-        url: '/dxtop/qrCode/' + deptId,
-        method: 'delete',
-    })
-}
-// 查询
-export function listCode(query) {
-    return request({
-        url: '/dxtop/qrCode/list',
-        method: 'get',
-        params: query
-    })
-}
-// 查询
-export function channlPageCode() {
-    return request({
-        url: '/dxtop/topChannel/list',
-        method: 'get',
-    })
-}
-// 查询
-export function getBs(query) {
-    return request({
-        url: '/dxtop/order/topScanPayQr',
-        method: 'post',
-        data: query
-    })
-}

+ 0 - 49
src/api/recharge/radio.js

@@ -1,49 +0,0 @@
-import request from '@/utils/request'
-
-// 新增
-export function addRadio(data) {
-    return request({
-        url: '/dxtop/topRadio',
-        method: 'post',
-        data: data
-    })
-}
-// 修改
-export function updataRadio(data) {
-    return request({
-        url: '/dxtop/topRadio',
-        method: 'put',
-        data: data
-    })
-}
-// 批量修改
-export function updataStaff(data) {
-    return request({
-        url: '/dxtop/staff',
-        method: 'post',
-        data: data
-    })
-}
-// 删除
-export function delRadio(deptId) {
-    return request({
-        url: '/dxtop/topRadio/' + deptId,
-        method: 'delete',
-    })
-}
-// 查询
-export function listRadio(query) {
-    return request({
-        url: '/dxtop/topRadio/list',
-        method: 'get',
-        params: query
-    })
-}
-// 查询所有到账比例
-export function allRadio(query) {
-    return request({
-        url: '/dxtop/topRadio/all',
-        method: 'get',
-        params: query
-    })
-}

+ 0 - 19
src/api/recharge/reportForm.js

@@ -1,19 +0,0 @@
-import request from '@/utils/request'
-
-// 查询
-export function listReport(data) {
-    return request({
-        url: '/dxtop/order/orderReportList',
-        method: 'get',
-        params: data
-    })
-}
-// 导出
-export function exportReport(data) {
-    return request({
-        url: '/dxtop/order/reportExport',
-        method: 'get',
-        params: data,
-        // responseType: 'blob'
-    })
-}

+ 0 - 26
src/api/recharge/userRecharge.js

@@ -1,26 +0,0 @@
-import request from '@/utils/request'
-
-// 现金支付
-export function order(data) {
-    return request({
-        url: '/dxtop/order',
-        method: 'post',
-        data: data
-    })
-}
-// 扫描二维码
-export function scanPayQr(data) {
-    return request({
-        url: '/dxtop/order/topScanPayQr',
-        method: 'post',
-        data: data
-    })
-}
-// 扫描二维码接口获取url
-export function topScanPayApi(data) {
-    return request({
-        url: '/dxtop/order/backPayPath',
-        method: 'post',
-        data: data
-    })
-}

+ 48 - 0
src/api/system/security.js

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+
+// 安全机制列表
+export function listAccountLock(query) {
+    return request({
+        url: '/accountLock/list',
+        method: 'get',
+        params: query
+    })
+}
+
+
+
+// 新增安全机制
+export function addAccountLock(data) {
+    return request({
+        url: '/accountLock/',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改安全机制
+export function updateAccountLock(data) {
+    return request({
+        url: '/accountLock/',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除安全机制
+export function delAccountLock(id) {
+    return request({
+        url: '/accountLock/' + id,
+        method: 'delete'
+    })
+}
+
+// 修改账号为默认账号
+export function enableAccountLock(id) {
+    return request({
+        url: '/accountLock/enable/' + id,
+        method: 'put'
+    })
+}
+
+

+ 3 - 3
src/assets/js/dataFormate.js

@@ -131,8 +131,8 @@ function getThisDateBeforMonth() {
     let month = lastMonthToday.getMonth() + 1
     var lastMonth = month < 10 ? '0' + month : month;
     var lastMonthDay =
-        lastMonthToday.getDate < 10 ?
-        "0" + lastMonthToday.getDate :
+        lastMonthToday.getDate() < 10 ?
+        '0' + lastMonthToday.getDate() :
         lastMonthToday.getDate();
     var lastMonthKsrq = lastMonthYear + "-" + lastMonth + "-" + lastMonthDay + " 00:00:00";
     return lastMonthKsrq
@@ -259,7 +259,7 @@ function YearMonthDate() {
     var date = new Date();
     var mon = date.getMonth() + 1;
     var day = date.getDate();
-    var currDate = date.getFullYear() + "-" + (mon < 10 ? "0" + mon : mon) + "-" + (day < 10 ? "0" + day : day) + " 00:00:00";
+    var currDate = date.getFullYear() + "-" + (mon < 10 ? "0" + mon : mon) + "-" + (day < 10 ? "0" + day : day) + " 23:59:59";
     return currDate
 }
 

+ 1 - 1
src/views/business/buildMange/floor/index.vue

@@ -187,7 +187,7 @@ export default {
     handleUpdate(row) {
       this.reset();
       this.title = "修改";
-      this.form = row
+      this.form = JSON.parse(JSON.stringify(row))
       this.form.buildId = Number(this.form.buildId)
 
       this.open = true;

+ 1 - 1
src/views/business/buildMange/room/index.vue

@@ -236,7 +236,7 @@ export default {
     handleUpdate(row) {
       this.reset();
       this.title = "修改";
-      this.form = row
+      this.form = JSON.parse(JSON.stringify(row))
       this.form.buildId = Number(this.form.buildId)
       this.form.floorId = Number(this.form.floorId)
       this.open = true;

+ 1 - 2
src/views/business/deviceMange/deviceApi/index.vue

@@ -377,8 +377,7 @@ export default {
       this.exportLoading = true;
       exportCommunicationApi(queryParams).then(response =>{
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH() + "archive/" + response.data
-        console.log( BASEPATH() + "archive/" + response.data)
+        document.getElementById("xz").href = BASEPATH() + response.data
         document.getElementById("xz").download = response.data
         document.getElementById("xz").click()
       })

+ 1 - 1
src/views/business/deviceMange/deviceList/index.vue

@@ -472,7 +472,7 @@ export default {
       this.exportLoading = true;
       exportDevice(queryParams).then(response =>{
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH() + "archive/" + response.data
+        document.getElementById("xz").href = BASEPATH() + response.data
         document.getElementById("xz").download = response.data
         document.getElementById("xz").click()
       })

+ 3 - 1
src/views/business/deviceMange/devicePassageWay/index.vue

@@ -386,10 +386,12 @@ export default {
       let queryParams = {...this.queryParams};
       delete queryParams.current
       delete queryParams.size
+      queryParams.dwType = queryParams.dwtype
       this.exportLoading = true;
+      console.log(queryParams)
       exportDeviceChannel(queryParams).then(response =>{
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH() + "archive/" + response.data
+        document.getElementById("xz").href = BASEPATH()  + response.data
         document.getElementById("xz").download = response.data
         document.getElementById("xz").click()
       })

+ 1 - 1
src/views/business/deviceMange/deviceType/index.vue

@@ -316,7 +316,7 @@ export default {
       this.exportLoading = true;
       exportDeviceType(queryParams).then(response =>{
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH() + "archive/" + response.data
+        document.getElementById("xz").href = BASEPATH()  + response.data
         document.getElementById("xz").download = response.data
         document.getElementById("xz").click()
       })

+ 65 - 78
src/views/business/fireInternet/deviceMonitoring/waterMonitoring/device/index.vue

@@ -5,7 +5,7 @@
           <el-col :span="12">
             <div class="card_left">
               <el-col :span="24">
-              <el-card class="box-card card1 " v-loading="loading1 & loading2">
+              <el-card class="box-card card1 " v-loading="loading1">
                 <span class="title">
                   <el-image
                     class="imgTitle"
@@ -17,7 +17,7 @@
                     <div>
                       <span>电量</span>
                       <div>
-                        <p>{{index1Data.dianliang}}</p>
+                        <p>{{index1Data.dianliang}} %</p>
                       </div>
                     </div>
                     <div>
@@ -29,18 +29,13 @@
                     <div>
                       <span>时间</span>
                       <div>
-                        <p style="font-size:1.1em;line-height:2em">{{index1Data.createTime}}</p>
+                        <p style="font-size:0.8vw;line-height:4vh">{{index1Data.createTime}}</p>
                       </div>
                     </div>
                 </div>
                 <div class="contain2">
                   <div class="wrap">
-                    <!-- <index3 :resData="index1Data"
-                      :dataMap="index1Data"
-                      color="#80FFA5"
-                      :size="21"
-                      :with="16"
-                      :tick="false" style="width:100%" alt="饼图" /> -->
+                    <index3 :resData="index1Data" style="width:100%" alt="饼图" />
                     <p>设备工况</p>
                   </div>
                 </div>
@@ -50,9 +45,9 @@
           </el-col>
           <el-col :span="12">
             <div class="card_right">
-              <el-card class="box-card card2"  v-loading="loading3">
+              <el-card class="box-card card2"  v-loading="loading2">
                 <div class="contain">
-                  <index2
+                  <index4
                   :resData="index2Data"
                   style="width:100%;height:40vh;" alt="折线图" />
                 </div>
@@ -108,7 +103,7 @@
                 >导出</el-button>
               </el-form>
             </div>
-            <el-table @row-click="clickData" v-loading="loading4" :data="adminList" height="calc(100vh - 67vh)" :default-sort = "{prop: 'createTime', order: 'descending'}" highlight-current-row>
+            <el-table @row-click="clickData" v-loading="loading3" :data="adminList" height="calc(100vh - 67vh)" :default-sort = "{prop: 'createTime', order: 'descending'}" highlight-current-row>
               <el-table-column label="序号" align="center" prop="id"  show-overflow-tooltip />
               <el-table-column label="单位名称" align="center" prop="companyName"  show-overflow-tooltip />
               <el-table-column label="剩余电量" align="center" prop="pointData"  show-overflow-tooltip />
@@ -134,27 +129,29 @@
 import { tbInfoList } from "@/api/business/OM/eventCenter";
 import { listChannel } from "@/api/system/product";
 import index3 from "@/views/components/fireInternetInfo/index3";
-import index2 from "@/views/components/fireInternetInfo/index2";
+import index4 from "@/views/components/fireInternetInfo/index4";
 import { BASEPATH } from "@/assets/js/common.js";
+import { getThisDateBeforMonth, YearMonthDate } from "@/assets/js/dataFormate.js";
 export default {
   name: "index",
   components: {
-		index3,index2
+		index3,index4
   },
   data() {
     return {
       img:require('@/assets/images/2.png'),
       title:"水系统设备工况",
-      index1Data:{},//饼图
+      index1Data:{
+        // dianliang:0.00,
+        // xinhao:0.00,
+        // createTime:undefined
+      },//饼图
       index2Data:[],//折线图
       index3Data:[],//table
       // 遮罩层
-      loading1: false,
-      loading2: false,
-      loading3: false,
-      loading4: true,
-      loading5: true,
-      loading6: true,
+      loading1: true,
+      loading2: true,
+      loading3: true,
       // 导出遮罩层
       exportLoading: false,
       // 显示搜索条件
@@ -165,18 +162,28 @@ export default {
       t:null,
       timeList:[],
       queryParams:{
-        // type:2,
-        // bigDeviceType:2,
-        // status:0,
         current:1,
         size:10,
         companyCode:undefined,
+        pointCodes: [201],
         status:undefined,
         num:0,
         isNew:1,
         deviceId:"",
-        // startTime:getThisDateBeforMonth(),
-        // endTime:YearMonthDate(),
+        startTime:getThisDateBeforMonth(),
+        endTime:YearMonthDate(),
+      },
+      queryParams2:{
+        current:1,
+        size:10,
+        companyCode:undefined,
+        pointCodes: [201,202],
+        status:undefined,
+        num:0,
+        isNew:1,
+        deviceId:"",
+        startTime:getThisDateBeforMonth(),
+        endTime:YearMonthDate(),
       },
       dataZ:[],//折线图
       // 公司列表
@@ -218,37 +225,26 @@ export default {
         this.queryParams.deviceId = id
       }
       /* 饼图、折线图 */
-        tbInfoList(this.queryParams).then(response =>{//pointCode=201 信息  pointCode=202 电量
-          console.log(response)
-          this.loading3 = false
-          // let data = response.data.records
-          // for(let i = 0; i<data.length;i++){
-          //   if(data[i].pointCode == "201"){
-          //     this.index1Data.dianliang = data[i].pointCode
-          //   }
-          //   if(data[i].pointCode == "202"){
-          //     this.index1Data.xinhao = data[i].pointCode
-          //     this.index1Data.createTime = data[i].createTime
-          //   }
-          // }
-          // this.index1Data = data[0]
-
-          // let lineData = []
-          // let total = []
-          // let checkCount = []
-          // total[0] = {data:[],name:undefined}
-          // checkCount[0] = {data:[],name:undefined}
-          // if(data){
-          //   for (let i = 0; i < data.length; i++) {
-          //     lineData.push(data[i].time);
-          //     total[0].data.push(data[i].list.checkCount + data[i].list.noCheckCount)
-          //     checkCount[0].data.push(data[i].list.checkCount)
-          //   }
-          //   total[0].name = "离线次数"
-          //   checkCount[0].name = "处理次数"
-          //   this.index2Data.push(total[0],checkCount[0],lineData)
-          //this.index2Data.push({name:"水系统设备工况跟踪",color:"#00FFFF"})
-          // }
+        tbInfoList(this.queryParams2).then(response =>{//pointCode=201 信息  pointCode=202 电量
+          this.loading1 = false
+          let data = response.data.records
+          let arr = [[],[],[]]
+          for(let i = 0; i<data.length;i++){
+            if(data[i].pointCode == "201"){
+              this.index1Data.dianliang = data[i].pointData
+              arr[0][i] = []
+              arr[0][i].push(data[i].createTime,13)
+            }
+            if(data[i].pointCode == "202"){
+              arr[1][(i-1)/2] = []
+              this.index1Data.xinhao = data[i].pointData
+              this.index1Data.createTime = data[i].createTime
+              arr[1][(i-1)/2].push(data[i].createTime,20)
+            }
+          }
+          this.index2Data = arr
+          this.loading2 = false
+          this.index2Data[2] = {name:"水系统设备工况情况跟踪",color:"#00FFFF"}
         })
     },
     getList(){
@@ -260,29 +256,13 @@ export default {
         this.queryParams.startTime = this.dateRange[0]
         this.queryParams.endTime = this.dateRange[1]
       }
-      tbInfoList(this.queryParams).then(response =>{ //table及饼图数据
+      tbInfoList(this.queryParams).then(response =>{ 
         //table
         this.adminList = response.data.records
         this.total = response.data.total;
-        this.loading4 = false;
-
-        // this.loading1 = false //饼图数据
-        // this.loading2 = false
-        // let data = response.data.records
-        // for(let i = 0; i<data.length;i++){
-        //   if(data[i].pointCode == "201"){
-        //     this.index1Data.dianliang = data[i].pointCode
-        //   }
-        //   if(data[i].pointCode == "202"){
-        //     this.index1Data.xinhao = data[i].pointCode
-        //     this.index1Data.createTime = data[i].createTime
-        //   }
-        // }
-        this.queryParams.deviceId = response.data.records[0].deviceId
-        this.queryParams.isNew = undefined
-        this.queryParams.pointCodes = [201,202]
+        this.loading3 = false;
+        this.queryParams2.deviceId = response.data.records[0].deviceId
         this.tubiao()
-
       })
     },
     /** 搜索按钮操作 */
@@ -419,14 +399,14 @@ export default {
           }
         }
         .contain2{
-          margin-top:-2.5rem;
+          margin-top:-3.5rem;
           vertical-align: top;
           width:42%;
           display: inline-block;
           p{
             text-align: center;
             font-size: 1.4rem;
-            margin:-2vh 0 0 0%;
+            margin:-4vh 0 0 0%;
           }
         }
       }
@@ -441,6 +421,13 @@ export default {
       margin-bottom:-10px
     }
   }
+  @media screen and (min-width: 1000px) and (max-width: 1560px) {
+    .contain2{
+      p{
+        margin:-8vh 0 0 0% !important;
+      }
+    }
+  }
  ::v-deep {
     .el-table__body-wrapper::-webkit-scrollbar {
       /*width: 0;宽度为0隐藏*/

+ 3 - 3
src/views/components/fireInternetInfo/index1.vue

@@ -95,9 +95,9 @@ export default {
           },
         ],
       });
-      // window.addEventListener("resize", function() {
-      //   myChart.resize();
-      // });
+      window.addEventListener("resize", function() {
+        myChart.resize();
+      });
 
     },
 

+ 2 - 1
src/views/components/fireInternetInfo/index2.vue

@@ -22,6 +22,7 @@ export default {
     getData() {
       let myChart = echarts.init(document.getElementById("index2"));
       let data = this.resData;
+      
       // let name1 = data[0].name
       // let name2 = data[1].name
       // console.log(name1,name2)
@@ -120,7 +121,7 @@ export default {
           top:6,
           padding: 0, // 图例内边距
           textStyle: {
-            color: "#ccc",
+            color: "#000",
             align: "center"
           }
         },

+ 61 - 81
src/views/components/fireInternetInfo/index3.vue

@@ -7,101 +7,81 @@
 import * as echarts from "echarts";
 export default {
   props: ["resData"],
-  props: {
-    dataMap: { type: Number, default: () => 0 },
-    dataNumber: { type: Number, default: () => 0 },
-    color: { type: String, default: () => "#468EFD" },
-    size: { type: Number, default: () => 20 },
-    tick: { type: Boolean, default: () => true },
-    with: { type: Number, default: () => 200 },
-  },
   data() {
     return {};
   },
   watch: {
-    dataMap(val) {
-      console.log(val)
-      this.getData(val);
-    },
-    dataNumber(val) {
-      this.getData(val);
+    resData() {
+      this.getData();
     },
   },
   mounted() {
     this.getData();
   },
   methods: {
-    getData(val) {
-      console.log(val)
-      echarts.init(this.$refs.echartD).setOption({
-        grid: {
-          // top: 0,
-          // bottom: 0,
-          // left: 0,
-          // right: 0,
-          // margi
-        },
-        series: [
-          // 进度条
-          {
-            name: "仪表盘",
-            type: "gauge",
-            radius: "55%", // 半径
-            startAngle: 270, //开始角度 左侧角度
-            endAngle: -89.999, //结束角度 右侧
-            splitNumber: 20,
-            axisLine: {
-              lineStyle: {
-                color: [
-                  [this.dataMap, this.color],
-                  [1, "#FF5801"],
-                ],
-                width: this.with,
+    getData() {
+      setTimeout(() =>{
+        let data = this.resData
+        echarts.init(this.$refs.echartD).setOption({
+          series: [
+            // 进度条
+            {
+              name: "仪表盘",
+              type: "gauge",
+              radius: "55%", // 半径
+              startAngle: 270, //开始角度 左侧角度
+              endAngle: -89.999, //结束角度 右侧
+              splitNumber: 30,
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [0, "#80FFA5"],
+                    [1, "#FF5801"],
+                  ],
+                  width: 10,
+                },
               },
-            },
-            axisLabel: {
-              show: false,
-            },
-            axisTick: {
-              show: false,
-            },
-            splitLine: {
-              show: false,
-            },
-            itemStyle: {
-              show: false,
-            },
-            detail: {
-              formatter:  (value) => {
-                let data = `电量:${this.dataNumber.checkCount}\n信号:${this.dataNumber.checkCount}`
-                return data;
+              axisLabel: {
+                show: false,
               },
-              offsetCenter: [0, "0%"],
-              textStyle: {
-                //fontSize: this.size,
-                fontSize: this.size,
-                fontWeight: "700",
-                color:this.color,
-                // color: "#FFF",
-                fontFamily: '"DS", "DS-B", "DS-BB", "DS-BS"',
+              axisTick: {
+                show: false,
               },
+              splitLine: {
+                show: false,
+              },
+              itemStyle: {
+                show: false,
+              },
+              detail: {
+                formatter:  () => {
+                  return `电量:${data.dianliang}%\n信号:${data.xinhao}`;
+                },
+                offsetCenter: [0, "0%"],
+                textStyle: {
+                  fontSize: 16,
+                  fontWeight: "700",
+                  height:20,
+                  color:"#80FFA5",
+                  fontFamily: '"DS", "DS-B", "DS-BB", "DS-BS"',
+                },
+              },
+              title: {
+                offsetCenter: [0, "10%"],
+              },
+              pointer: {
+                show: false,
+              },
+              data: [
+                  (`电量:${data.dianliang}%\n信号:${data.xinhao}`),
+              ],
             },
-            title: {
-              offsetCenter: [0, "10%"],
-            },
-            pointer: {
-              show: false,
-            },
-            data: [
-                (this.dataNumber/10 || this.dataMap),
-            ],
-          },
-        ],
-      });
-      // window.addEventListener("resize", function() {
-      //   myChart.resize();
-      // });
-
+          ],
+        })
+        window.addEventListener("resize", function() {
+          myChart.resize();
+        });
+      },1000)
     },
 
   }

+ 167 - 0
src/views/components/fireInternetInfo/index4.vue

@@ -0,0 +1,167 @@
+<template>
+  <el-row>
+    <div id="index4" ref="echartD" style="width:110%;margin-left:-5%;height:110%;"></div>
+  </el-row>
+</template>
+<script>
+import * as echarts from "echarts";
+export default {
+  props: ["resData"],
+  data() {
+    return {};
+  },
+  watch: {
+    resData() {
+      this.getData();
+    }
+  },
+  mounted() {
+    this.getData();
+  },
+  methods: {
+    getData() {
+      let myChart = echarts.init(document.getElementById("index4"));
+      let data = this.resData;
+      let option = {
+        legend: {
+          itemGap: 20, // 图例每项之间的间隔。
+          icon: "stack",
+          right: 40,
+          top:6,
+          padding: 0, // 图例内边距
+          textStyle: {
+            color: "#000",
+            align: "center"
+          }
+        },
+        title: {
+          x:'center',
+          text: data[2].name,
+          textStyle:{ //设置主标题风格
+            color:data[2].color,//设置主标题字体颜色
+          },
+        },
+        color: ["#FF0087" , "#80FFA5" ],
+        xAxis: {
+            type: 'time',
+            splitLine:{
+              show:false
+            },
+            axisLine: {
+              // show:false,
+              lineStyle: {
+                  type:  'solid' ,
+                  color:  '#ccc' , //左边线的颜色
+                  width: '1' //坐标线的宽度
+              }
+            },
+            axisLabel: {
+                textStyle: {
+                    color:  '#fff' , //坐标值得具体的颜色
+                }
+            }
+        },
+        yAxis: [{
+            name:"剩\n余\n电\n量",
+            type: 'value',
+            splitLine:{
+              show:false
+            },
+            nameLocation: 'left',
+            nameTextStyle: {
+              fontSize: 14,
+              padding: [0, 80, 0, 0]
+            },
+            axisLine: {
+                lineStyle: {
+                    type:  'solid' ,
+                    color:  '#FF0087' , //左边线的颜色
+                    width: '1' //坐标线的宽度
+                }
+            },
+            axisLabel: {
+                textStyle: {
+                    color:  '#FF0087' , //坐标值得具体的颜色
+                }
+            }
+        }, {
+            name:"无\n线\n信\n号",
+            type: 'value',
+            splitLine:{
+              show:false
+            },
+            nameLocation: 'left',
+            nameTextStyle: {
+              fontSize: 14,
+              padding: [0, 0, 0, 80]
+            },
+            axisLine: {
+                lineStyle: {
+                    type:  'solid' ,
+                    color:  '#80FFA5' , //左边线的颜色
+                    width: '1' //坐标线的宽度
+                }
+            },
+            axisLabel: {
+                textStyle: {
+                    color:  '#80FFA5' , //坐标值得具体的颜色
+                }
+            }
+        }],
+        series: [{
+            name: "剩余电量",
+            type: 'line',
+            stack: 'Total',
+            smooth: true,
+            axisLine: {
+              lineStyle: {
+                color: 'red',
+                width: 0, //这里是为了突出显示加上的  
+              }
+            },
+            showSymbol: false,
+            emphasis: {
+              focus: 'series'
+            },
+            data: data[0],
+            yAxisIndex: 0,  // 通过这个判断左右
+        }, {
+          name: "信号",
+          type: 'line',
+          stack: 'Total',
+          smooth: true,
+          axisLine: {
+            lineStyle: {
+                color: '#ccc',
+                width: 0, //这里是为了突出显示加上的  
+            }
+          },
+          showSymbol: false,
+          emphasis: {
+            focus: 'series'
+          },
+          data: data[1],
+          yAxisIndex: 1,
+            
+        }]
+      };
+      
+
+
+    
+
+      
+
+
+
+
+        myChart.setOption(option);
+        window.addEventListener("resize", function() {
+            myChart.resize();
+        });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 3 - 1
src/views/index.vue

@@ -171,7 +171,9 @@ export default {
     this.initWebSocket()
   },
   mounted() {
-
+    this.timer = setInterval(function() {
+        getNYRSFM()
+    });
   },
   methods: {
     getList(){

+ 0 - 334
src/views/recharge/admin/index.vue

@@ -1,334 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="参数名称" prop="adminName">
-        <el-input
-          v-model="queryParams.adminName"
-          placeholder="请输入参数名称"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="参数键名" prop="adminKey">
-        <el-input
-          v-model="queryParams.adminKey"
-          placeholder="请输入参数键名"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="系统内置" prop="adminType">
-        <el-select v-model="queryParams.adminType" placeholder="系统内置" clearable size="small">
-          <el-option
-            v-for="dict in typeOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="dateRange"
-          size="small"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </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>
-      <!-- <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="adminId" />
-      <el-table-column label="充值到账比例" align="center" prop="adminName"/>
-      <el-table-column label="创建人" align="center" prop="adminValue" />
-      <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.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="身份信息" prop="adminName">
-          <el-input v-model="form.adminName" placeholder="请输入身份信息" />
-        </el-form-item>
-        <el-form-item label="充值到账比例" prop="adminKey">
-          <el-input v-model="form.adminKey" placeholder="充值到账比例" />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listAdmin, updataChannel, delChannel, listChannel  } from "@/api/recharge/admin";
-
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 导出遮罩层
-      exportLoading: false,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      adminList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 类型数据字典
-      typeOptions: [],
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        adminName: undefined,
-        adminKey: undefined,
-        adminType: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        adminName: [
-          { required: true, message: "参数名称不能为空", trigger: "blur" }
-        ],
-        adminKey: [
-          { required: true, message: "参数键名不能为空", trigger: "blur" }
-        ],
-        adminValue: [
-          { required: true, message: "参数键值不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listAdmin(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.adminList = response.rows;
-          // this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        adminId: undefined,
-        adminName: undefined,
-        adminKey: undefined,
-        adminValue: undefined,
-        adminType: "Y",
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 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.adminId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const adminId = row.adminId || this.ids
-      getadmin(adminId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改参数";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.adminId != undefined) {
-            updateadmin(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addadmin(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const adminIds = row.adminId || this.ids;
-      this.$confirm('是否确认删除参数编号为"' + adminIds + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return deladmin(adminIds);
-        }).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>

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

@@ -1,320 +0,0 @@
-<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>
-        <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" >
-      <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="请输入渠道名称" @input="forceUpdate" />
-        </el-form-item>
-        <el-form-item label="渠道标识" prop="aliasName">
-          <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" 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/channel";
-
-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: {
-    keydown(e){
-      if(e.keyCode == 32){
-        e.returnValue = false
-      }
-    },
-
-    forceUpdate(){ //重置form
-      this.form = JSON.parse(JSON.stringify(this.form));
-    },
-    /** 查询参数列表 */
-    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
-    },
-    /** 修改按钮操作 */
-    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();
-            }).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
-            })
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    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>

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

@@ -1,131 +0,0 @@
-<template>
-  <div class="app-container" v-loading="loading">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
-      <el-form-item label="部门名称" prop="name">
-        <el-input
-          v-model.trim="queryParams.name"
-          placeholder="请输入部门名称"
-          clearable
-          size="small"
-          style="width: 160px"
-          @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-button icon="el-icon-refresh" size="mini" @click="synchrodeptJob">部门信息同步</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table  :data="adminList" >
-      <el-table-column label="id" align="center" prop="id"/>
-      <el-table-column label="部门名称" align="center" prop="name" />
-      <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>
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.current"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
-  </div>
-</template>
-
-<script>
-import { listChannel, deptJob } 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:''
-      },
-    };
-  },
-  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;
-        }
-      );
-    },
-    // 同步部门信息
-    synchrodeptJob(){
-      if(this.queryParams.name){
-        deptJob({"name":this.queryParams.name}).then(response =>{
-          this.getList();
-        })
-        localStorage.setItem("timeout","大于10s")
-        this.msgSuccess('请在定时任务中部门信息中,选择点击更多--调度日志查询同步进度 ', 5000)
-        this.$router.push({path:'/system/job/jobTaskIndex'})
-        localStorage.setItem('department', 1)
-      }else{
-        this.$message.error('同步部门信息不能为空')
-      }
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.current = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-  }
-};
-</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>

+ 0 - 315
src/views/recharge/detailed/index.vue

@@ -1,315 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
-      <el-form-item label="姓名:" prop="userName">
-        <el-input
-          v-model.trim="queryParams.userName"
-          placeholder="请输入姓名"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号:" prop="userPhone">
-        <el-input
-          v-model.trim="queryParams.userPhone"
-          placeholder="请输入手机号"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="支付方式:" prop="payType">
-         <el-select v-model="queryParams.payType" style="width: 240px" placeholder="请选择支付方式" clearable size="small">
-          <el-option label="现金支付" :value="1"/>
-          <el-option label="微信" :value="2"/>
-          <el-option label="支付宝" :value="3"/>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="支付状态:" prop="orderFlag">
-        <el-select v-model="queryParams.orderFlag" style="width: 240px" placeholder="请选择支付状态" clearable size="small">
-          <el-option label="未支付" :value="0"/>
-          <el-option label="支付等待中" :value="1"/>
-          <el-option label="支付失败" :value="2"/>
-          <el-option label="卡充值失败" :value="3"/>
-          <el-option label="支付成功" :value="4"/>
-          <el-option label="取消支付" :value="5"/>
-          <el-option label="已成功" :value="6"/>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="支付金额:" prop="Money">
-        <el-input-number
-          v-model="queryParams.startMoney"
-          clearable
-          size="small"
-          type="number"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"></el-input-number> ~
-        <el-input-number
-          v-model="queryParams.endMoney"
-          placeholder=""
-          clearable
-          size="small"
-          type="number"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"></el-input-number>
-      </el-form-item>
-      <el-form-item label="支付时间:">
-         <el-date-picker
-         style="margin-top:5px;"
-          v-model="dateRange"
-          size="small"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetimerange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </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-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:admin:export']"
-        >导出</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-table v-loading="loading" :data="adminList" >
-      <el-table-column label="姓名" align="center" prop="userName" />
-      <el-table-column label="手机号" align="center" prop="userPhone"/>
-      <el-table-column label="充值金额" align="center" prop="money"/>
-      <el-table-column label="支付状态" align="center" prop="orderFlag">
-        <template slot-scope="scope">
-          <span v-if="scope.row.orderFlag == 0" style="color:#909399">未支付</span>
-          <span v-if="scope.row.orderFlag == 1" style="color:#000000">支付等待中</span>
-          <span v-if="scope.row.orderFlag == 2" style="color:#E6A23C">支付失败</span>
-          <span v-if="scope.row.orderFlag == 3" style="color:#F56C6C">卡充值失败</span>
-          <span v-if="scope.row.orderFlag == 4" style="color:#409EFF">支付成功</span>
-          <span v-if="scope.row.orderFlag == 5" style="color:#303133">取消支付</span>
-          <span v-if="scope.row.orderFlag == 6" style="color:#67C23A">已成功</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="到账金额" align="center" prop="realMoney"/>
-      <el-table-column label="支付方式" align="center" prop="payType">
-        <template slot-scope="scope">
-          <span>{{ scope.row.payType == 1 ? '现金支付':scope.row.payType ==2 ? '微信':scope.row.payType ==3 ? '支付宝': '' }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="充值场景" align="center" prop="scene">
-        <template slot-scope="scope">
-          <span v-if="scope.row.scene == 1" style="color:#dda8eb">后台充值</span>
-          <span v-if="scope.row.scene == 2" style="color:#E6A23C">游客充值</span>
-          <span v-if="scope.row.scene == 3" style="color:#67C23A">ERPapp充值</span>
-          <span v-if="scope.row.scene == 6" style="color:#00dd88e0">公众号充值</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="充值渠道" align="center" prop="channelName" />
-      <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 v-if="scope.row.orderFlag ==3"
-            size="small"
-            type="primary"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:admin:edit']"
-          >变更状态</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <!-- 修改订单状态对话框 -->
-    <!-- <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="orderFlag">
-          <el-input v-model="form.orderFlag" placeholder="支付状态标识" @input="onInput()"/>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog> -->
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.current"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
-  </div>
-</template>
-
-<script>
-import { listDetal, exportDetail, updataChannel } from "@/api/recharge/detailed";
-
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 导出遮罩层
-      exportLoading: false,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      adminList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        current: 1,
-        size: 10,
-        userName: undefined,
-        payType: undefined,
-        topChannelName: undefined,
-        startMoney: undefined,
-        endMoney: undefined,
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        name: [
-          { required: true, message: "渠道名称不能为空", trigger: "blur" }
-        ],
-        aliasName: [
-          { required: true, message: "渠道标识不能为空", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    //强制el-input刷新
-    onInput(){
-        this.$forceUpdate();
-    },
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listDetal(this.addDateRange(this.queryParams,this.dateRange,'section')).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,
-        topChannelName: undefined,
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.current = 1;
-      this.getList();
-    },
-    /** 修改按钮操作 */
-    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 => {
-        this.msgSuccess("修改成功");
-        this.getList();
-      });
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      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();
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      let queryParams = {...this.queryParams};
-      delete queryParams.current
-      delete queryParams.size
-      this.exportLoading = true;
-      exportDetail(queryParams).then(response =>{
-        this.exportLoading = false;
-        localStorage.setItem('fileExportId', response.msg)
-        this.$router.push({path:'/recharge/fileExport'})
-      })
-      // this.$confirm('是否确认导出数据?', "警告", {
-      //   confirmButtonText: "确定",
-      //   cancelButtonText: "取消",
-      //   type: "warning"
-      // }).then(() => {
-      //   this.exportLoading = true;
-      //   return exportDetail(queryParams);
-      // }).then(res => {
-      //   this.downloadBlob(res)
-      //   this.exportLoading = false;
-      // }).catch(() => {
-      //   this.exportLoading = false;
-      // });
-    }
-
-    //   exportDetail(queryParams).then(res => {
-    //       this.$router.push({path:'/recharge/detailed'})
-    //       localStorage.setItem('fileExportId', msg)
-    //       // // this.downloadBlob(res)
-    //       // this.exportLoading = false;
-    //     }).catch(() => {
-    //       // this.exportLoading = false;
-    //     });
-    //     // exportDetail(queryParams).then(response =>{
-    //     //   this.$router.push({path:'/recharge/detailed'})
-    //     //   localStorage.setItem('fileExportId', msg)
-    //     // }).catch(err =>{
-
-    //     // })
-    //     // localStorage.setItem("timeout","大于10s")
-    //   //  this.$confirm('是否确认导出数据?', "警告", {
-    //   //     confirmButtonText: "确定",
-    //   //     cancelButtonText: "取消",
-    //   //     type: "warning"
-    //   //   }).then(() => {
-    //   //     this.exportLoading = true;
-    //   //     return exportDetail(queryParams);
-    //   //   }).then(res => {
-    //   //     // this.downloadBlob(res)
-    //   //     this.exportLoading = false;
-    //   //   }).catch(() => {
-    //   //     this.exportLoading = false;
-    //   //   });
-    // },
-  }
-};
-</script>

+ 0 - 253
src/views/recharge/fileExport/index.vue

@@ -1,253 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
-      <el-form-item label="文件id:" prop="asyncTaskId">
-        <el-input
-          v-model.trim="queryParams.asyncTaskId"
-          placeholder="请输入文件id"
-          clearable
-          size="small"
-          style="width: 180px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="文件名称:" prop="userName">
-        <el-input
-          v-model.trim="queryParams.userName"
-          placeholder="请输入文件名称"
-          clearable
-          size="small"
-          style="width: 180px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <!-- <el-form-item label="时间:">
-         <el-date-picker
-          v-model="dateRange"
-          size="small"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetimerange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item> -->
-      <!-- <el-form-item label="文件类型" prop="type">
-         <el-select v-model="queryParams.type" placeholder="文件类型" size="small">
-          <el-option label="文件" :value="file"/>
-        </el-select>
-      </el-form-item> -->
-      <el-form-item style="margin-left:100px">
-        <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-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:admin:export']"
-        >导出</el-button> -->
-      </el-form-item>
-    </el-form>
-
-    <el-table v-loading="loading" :data="adminList">
-      <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="类别" align="center" prop="resultType" />
-      <el-table-column label="文件名称" align="center" prop="funcType" />
-      <el-table-column label="开始时间" align="center" prop="startTime" />
-      <el-table-column label="结束时间" align="center" prop="endTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button v-if ="scope.row.isSuccess == true"
-            size="mini"
-            type="text"
-            icon="el-icon-bottom"
-            @click="handleExport(scope.row)"
-          >下载</el-button>
-          <span v-if="scope.row.isSuccess == false">
-            <span v-if="scope.row.result == '' || scope.row.result == null">文件整理中...请稍后查看</span>
-            <span else>{{scope.row.result}}</span>
-          </span>
-
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.current"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
-  </div>
-</template>
-
-<script>
-import { filelist } from "@/api/recharge/fileExport";
-import { getFile } from "@/api/system/product";
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 导出遮罩层
-      exportLoading: false,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      adminList: [],
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        current: 1,
-        size: 10,
-        type: 1,
-        asyncTaskId:undefined,
-        // asyncTaskId:'1451438997761200140',
-        userName: undefined,
-        fileType: "File"
-      },
-      // 表单参数
-      form: {},
-    };
-  },
-  created() {
-    if(localStorage.getItem("fileExportId")){
-      this.loading = false
-      let asyncTaskId = localStorage.getItem("fileExportId")
-      this.queryParams.asyncTaskId = asyncTaskId
-      this.getList();
-      localStorage.removeItem('fileExportId')
-    }else{
-      this.loading = false
-      this.getList();
-      // this.$message.error('请从人员信息充值入口进入该页面')
-      // setTimeout(() =>{
-      //   this.$router.push({path:'personnel'})
-      // },1500)
-    }
-
-  },
-  methods: {
-    /** 查询参数列表 */
-    getList() {
-        this.loading = true;
-        filelist(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
-            if(response.data.records.length>0){
-                this.total = response.data.total;
-                let arrBig = response.data.records
-                let arr = []
-                arr = response.data.records.map(item =>{
-                    return {
-                        batchNos:[item.result]
-                    }
-                })
-                for(let i=1;i<response.data.records.length; i++){
-                    arr[0].batchNos.push(response.data.records[i].result)
-                }
-                getFile(arr[0]).then(response =>{
-                    const reverse = response.data.reverse()
-                    for(let i=0;i<response.data.length;i++){
-                        arrBig[i].url = reverse[i].url
-                    }
-                })
-                    this.loading = false;
-                    this.adminList = arrBig;
-                    this.total = response.data.total;
-                }
-            // let has = response.data.records
-            // this.total = response.data.total;
-            // if(has.length>0){
-            //     let arr = has
-            //     let a = []
-            //     for(let i = 0;i<has.length;i++){
-            //         if(has[i].isSuccess == true){
-            //             a.push(has[i].result)
-            //         }
-            //     }
-            //     a = a.map(item =>{
-            //         return {
-            //             batchNos:[item]
-            //         }
-            //     })
-            //     // for(let i=1;i<response.data.records.length; i++){
-            //     //     arr[0].batchNos.push(response.data.records[i].result)
-            //     // }
-            //     getFile(a).then(response =>{
-            //         const reverse = response.data.reverse()
-            //         for(let i=0;i<response.data.length;i++){
-            //             arr[i] = reverse[i]
-            //         }
-            //         this.adminList = arr;
-            //         this.loading = false;
-            //     })
-
-            // }
-        }).catch(err =>{
-            this.loading = false;
-        })
-        // filelist(this.addDateRange(this.queryParams,this.dateRange)).then(response => {
-        //     // let has = response.data.records
-        //     // this.total = response.data.total;
-        //     // if(has.length>0){
-        //     //     let arr = []
-        //     //     for(let i = 0;i<has.length;i++){
-        //     //         if(has[i].isSuccess == true){
-        //     //             arr.push(has[i].result)
-        //     //         }
-        //     //     }
-        //     //     arr = arr.map(item =>{
-        //     //         return {
-        //     //             batchNos:[item]
-        //     //         }
-        //     //     })
-        //     //     for(let i=1;i<response.data.records.length; i++){
-        //     //         arr[0].batchNos.push(response.data.records[i].result)
-        //     //     }
-        //     //     getFile(arr[0]).then(response =>{
-        //     //         const reverse = response.data.reverse()
-        //     //         for(let i=0;i<response.data.length;i++){
-        //     //             arr[i] = reverse[i]
-        //     //         }
-        //     //         this.adminList = arr;
-        //     //         this.loading = false;
-        //     //     })
-
-        //     // }
-        // }).catch(err =>{
-        //     this.loading = false;
-        // })
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.queryParams.current = 1;
-      this.queryParams.startTime = undefined;
-      this.queryParams.endTime = undefined;
-      this.queryParams.endTime = undefined;
-      this.queryParams.type = 1
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 导出按钮操作 */
-    handleExport(row) {
-        var a = document.createElement("a"); //创建一个<a></a>标签
-        a.href = row.url; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
-        a.download = row.oriName; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
-        a.style.display = "none"; // 障眼法藏起来a标签
-        document.body.appendChild(a); // 将a标签追加到文档对象中
-        a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
-        a.remove();
-    },
-  }
-};
-</script>

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

@@ -1,301 +0,0 @@
-<template>
-  <div class="app-container" v-loading="loading">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
-      <el-form-item label="人员名称" prop="name">
-        <el-input
-          v-model.trim="queryParams.name"
-          placeholder="请输入人员名称"
-          clearable
-          size="medium"
-          style="width: 200px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号" prop="phone">
-        <el-input
-          v-model.trim="queryParams.phone"
-          placeholder="请输入手机号"
-          clearable
-          size="medium"
-          style="width: 200px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="卡号" prop="card">
-        <el-input
-          v-model.trim="queryParams.card"
-          placeholder="请输入卡号"
-          clearable
-          size="medium"
-          style="width: 200px"
-          @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-button icon="el-icon-refresh" size="mini" @click="synchroPersonnel">人员信息同步</el-button>
-        <el-button type="primary" icon="el-icon-circle-plus-outline" size="mini" @click="batchChange(0)">批量绑定</el-button>
-        <el-button type="primary" icon="el-icon-remove-outline" size="mini" @click="batchChange(1)">批量解除</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table  :data="adminList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="50" align="center" />
-      <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="人员名称" align="center" prop="name" />
-      <el-table-column label="身份信息" align="center" prop="identity" />
-      <el-table-column label="手机号" align="center" prop="contacts" />
-      <el-table-column label="卡号" align="center" prop="cardId" />
-      <el-table-column label="充值到账比例" align="center" prop="proportion" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <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-link"
-            @click="radio(scope.row)"
-          >充值</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 添加或修改参数配置对话框 -->
-    <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
-      <el-form ref="queryParams" :model="queryParams"  :rules="rules" label-width="120px" >
-        <el-form-item label="到账比例:" prop="id">
-          <el-select v-model="queryParams.id" style="width: 240px" placeholder="请选择到账比例" clearable size="small" >
-            <el-option :label="`${item.identity}:${item.proportion}`"  :value="item.id" v-for="(item, index) in radioList" :key="index" />
-          </el-select>
-        </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>
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.current"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
-  </div>
-</template>
-
-<script>
-import {  listChannel, personJob, staff } from "@/api/recharge/personnel";
-import { allRadio } from "@/api/recharge/radio";
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 导出遮罩层
-      exportLoading: false,
-      dialogFormVisible:false,
-      // 选中数组id
-      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,
-        identity: undefined,
-        proportion: undefined,
-        id:undefined,
-        phone:undefined,
-        card:undefined
-
-      },
-      // 表单参数
-      form: {
-        name:'',
-        aliasName:''
-      },
-      // 到账比例
-      radioList:[
-
-      ],
-      //批量到账比例处理
-      staffList:[],
-      // 表单校验
-      rules: {
-        id:[
-           { required: true, message: "充值比例不能为空", trigger: "change"},
-        ],
-      }
-    };
-  },
-  created() {
-    this.getList();
-    this.getListczgl();
-  },
-  methods: {
-    forceUpdate(){ //重置form
-      this.form = JSON.parse(JSON.stringify(this.form));
-    },
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listChannel(this.addDateRange(this.queryParams)).then(response => {
-          this.adminList = response.data.records;
-          this.total = response.data.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 获取充值管理的数据用于修改赋值 */
-    getListczgl() {
-      allRadio().then(response => {
-        this.radioList = response.data.map(item=>{
-          return {
-            identity:item.identity,
-            proportion:item.proportion,
-            id:item.id
-          }
-        })
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        ids: undefined,
-        name: undefined,
-        aliasName: undefined,
-        adminType: "Y",
-        proportion:undefined,
-        id:undefined
-      };
-      this.staffList = []
-      this.resetForm("form");
-    },
-    // 同步人员信息
-    synchroPersonnel(){
-      if(this.queryParams.name){
-        personJob({"blurry":this.queryParams.name}).then(response =>{
-          this.getList();
-        })
-        localStorage.setItem("timeout","大于10s")
-        this.msgSuccess('请在定时任务中人员信息中,选择点击更多--调度日志查询同步进度 ', 5000)
-        this.$router.push({path:'/system/job/jobTaskIndex'})
-        localStorage.setItem('personnel', 1)
-      }else{
-        this.$message.error('同步人员信息不能为空')
-      }
-
-
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.current = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 充值跳转 */
-    radio(row){
-      this.$router.push({path:'userRecharge'})
-      localStorage.setItem('chongzhi', JSON.stringify({"name":row.name,"proportion":row.proportion,"sid":row.sid,"contacts":row.contacts}))
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-    //批量处理
-    batchChange(change){
-      if(this.ids.length>0){
-        if(change == 0){
-            this.open = true;
-            this.title = "修改参数";
-        }else{
-          this.loading = true;
-          this.staffList = this.ids.map(item=>{
-            return {
-              staffId:item.sid,
-              radioId:item.radioId,
-              delFlag:change
-            }
-          })
-          staff(this.staffList).then(response =>{
-            this.loading = false;
-            this.msgSuccess('批量处理完成')
-            this.getList();
-          }).catch(err=>{
-            this.loading = false;
-          })
-        }
-      }else{
-        this.$message.error('请勾选需要批量处理充值到账比例人员信息')
-      }
-
-
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["queryParams"].validate(valid => {
-        if (valid) {
-          if(this.queryParams.id){
-            this.loading = true;
-            this.staffList = this.ids.map(item=>{
-              return {
-                staffId:item.sid,
-                radioId:this.queryParams.id,
-                delFlag:0
-              }
-            })
-            staff(this.staffList).then(response =>{
-              this.loading = false;
-              this.open = false;
-              this.msgSuccess('批量处理完成')
-              this.getList();
-              this.reset()
-            }).catch(err=>{
-              this.loading = false;
-            })
-          }
-        }
-      })
-    },
-  }
-};
-</script>
-<style lang="scss" >
-.el-select-dropdown__item.selected{
-  font-weight: none !important;
-}
-</style>

+ 0 - 295
src/views/recharge/qrCode/index.vue

@@ -1,295 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
-      <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>
-        <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-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="topChannelName"/>
-
-      <el-table-column label="二维码" align="center" prop="qrPath" >
-        <!-- <div class="qrcode" ref="qrCodeUrl"></div> -->
-        <template slot-scope="scope" >
-          <el-image
-            v-if="scope.row.qrPath"
-            style="width: 24px; height: 24px"
-            :preview-src-list="[scope.row.qrPath]"
-            :src="scope.row.qrPath">
-          </el-image>
-        </template>
-      </el-table-column>
-      <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="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.trim="form.name" placeholder="请输入二维码名称" @input="forceUpdate" />
-        </el-form-item>
-        <el-form-item label="渠道名称" prop="topChannelId">
-          <el-select v-model.trim="form.topChannelId"  placeholder="请选择渠道名称" clearable style="width:100%" @input="forceUpdate">
-            <el-option
-              v-for="dict in channelList"
-              :key="dict.id"
-              :label="dict.name"
-              :value="dict.id"/>
-          </el-select>
-        </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 { addCode, updataCode, delCode, listCode, channlPageCode, getBs } from "@/api/recharge/qrCode";
-// import QRCode from 'qrcodejs2'
-import QRCode from 'qrcode'
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 导出遮罩层
-      exportLoading: false,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      adminList: [],
-      // 充值渠道下拉
-      channelList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        current: 1,
-        size: 10,
-        name: undefined,
-        topChannelName: undefined,
-      },
-      // 表单参数
-      form: {
-        name:'',
-        topChannelId:''
-      },
-      codeUrl:null,
-      // 表单校验
-      rules: {
-        name: [
-          { required: true, message: "二维码名称不能为空", trigger: "blur" }
-        ],
-        topChannelName: [
-          { required: true, message: "渠道名称不能为空", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  created() {
-    this.getList();
-    channlPageCode().then(response => this.channelList = response.data);
-  },
-  methods: {
-    forceUpdate(){ //重置form
-      this.form = JSON.parse(JSON.stringify(this.form));
-    },
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listCode(this.addDateRange(this.queryParams)).then(response => {
-        var data = response.data.records
-        for(let i =0;i<data.length; i++){
-          QRCode.toDataURL(data[i].qrPath).then(imgData => {
-            data[i].qrPath = imgData
-          });
-        }
-        this.adminList = data;
-        this.total = response.data.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        ids: undefined,
-        name: undefined,
-        topChannelName: undefined,
-        topChannelId:undefined
-      };
-      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
-    },
-    /** 修改按钮操作 */
-    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]))
-      this.open = true;
-      this.title = "修改参数";
-    },
-    /** 提交按钮 */
-    submitForm(row) {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          this.loading = true
-          if (this.form.id != undefined) {
-            updataCode(this.form).then(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
-            })
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$confirm('是否确认删除', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function(res) {
-          return delCode(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(() => {});
-    },
-  }
-};
-</script>

+ 0 - 368
src/views/recharge/radio/index.vue

@@ -1,368 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
-      <el-form-item label="身份信息" prop="identity">
-        <el-input
-          v-model.trim="queryParams.identity"
-          placeholder="请输入身份信息"
-          clearable
-          size="small"
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <!-- <el-form-item label="充值到账比例" prop="proportion">
-        <el-input
-          v-model="queryParams.proportion"
-          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> -->
-      <!-- <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="identity" />
-      <el-table-column label="充值到账比例" align="center" prop="proportion"/>
-      <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"
-            :disabled="!single"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:admin:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            :disabled="!single"
-            @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="open1" 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.trim="form.identity" placeholder="请输入身份信息"  @input="forceUpdate" />
-        </el-form-item>
-        <el-form-item label="充值到账比例" prop="proportion">
-          <!-- <el-input v-model.trim="form.proportion" placeholder="请输入充值到账比例(例:0.95)"  @input="forceUpdate"/> -->
-          <el-select v-model="form.proportion"  placeholder="请选择充值到账比例" clearable size="small" @input="forceUpdate">
-            <el-option :label="index.value"  :value="index.value" v-for = "(index, item) in proportionList" :key="item" />
-          </el-select>
-        </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>
-    <el-dialog  :title="title" :visible.sync="open2" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
-      <el-form ref="radio" :model="radio" :rules="rules" label-width="120px" >
-        <el-form-item label="充值到账比例" prop="radioId">
-          <el-select v-model="radio.radioId"  placeholder="请选择充值到账比例" clearable size="small" @input="forceUpdate">
-            <el-option :label="index.value"  :value="index.value" v-for = "(index, item) in proportionList" :key="item" />
-          </el-select>
-        </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 { addRadio, updataRadio, delRadio, listRadio, updataStaff } from "@/api/recharge/radio";
-
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 导出遮罩层
-      exportLoading: false,
-      // 选中数组
-      ids: [],
-      // 多选修改充值比例
-      radio:{radioId:undefined},
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      adminList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open1: false,
-      // 是否显示弹出层
-      open2: false,
-      // 查询参数
-      queryParams: {
-        current: 1,
-        size: 10,
-        identity: undefined,
-        proportion: undefined,
-      },
-      // 表单参数
-      form: {
-        identity:'',
-        proportion:''
-      },
-      // 表单校验
-      rules: {
-        identity: [
-          { required: true, message: "身份信息不能为空", trigger: "blur" }
-        ],
-        proportion: [
-          { required: true, message: "充值到账比例不能为空", trigger: "blur" }
-        ],
-      },
-      //充值到账比例
-      proportionList:[]
-    };
-  },
-  created() {
-    this.getList();
-    this.proportionListF()
-    
-  },
-  methods: {
-    proportionListF(){ //充值比例
-      let arr = []
-      for(var i = 50; i<=100;i++){
-        arr.push(i)
-      }
-      this.proportionList = arr.map(item=>{
-        return {
-          value:Number((item / 100).toFixed(2))
-        }
-      })
-    },
-    forceUpdate(){ //重置form
-      this.form = JSON.parse(JSON.stringify(this.form));
-    },
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listRadio(this.addDateRange(this.queryParams)).then(response => {
-          this.adminList = response.data.records;
-          this.total = response.data.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 取消按钮
-    cancel() {
-      this.open1 = false;
-      this.open2 = 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.open1 = true;
-      this.title = "添加参数";
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => {
-        return{
-          delFlag:0,
-          staffId:item.id,
-          radioId:undefined
-        }
-      })
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-      if(this.ids.length>1){
-        this.single = false
-      }else{
-        this.single = true
-      }
-
-    },
-    /** 修改按钮操作 */
-    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]))
-      
-      if(this.ids.length>1){
-        this.open2 = true;
-      }else{
-        this.open1 = true;
-      }
-      this.title = "修改参数";
-    },
-    /** 提交按钮 */
-    submitForm(row) {
-      if(this.ids.length>1){
-        this.$refs["radio"].validate(valid => {
-          if (valid) {
-            this.loading = true
-            for(let i=0;i<this.ids.length;i++){
-              this.ids[i].radioId = this.radio.radioId
-            }
-            updataStaff(this.ids).then(response => {
-              this.loading = false
-              this.msgSuccess("修改成功");
-              this.open2 = false;
-              this.getList();
-            }).catch(()=>{
-              this.loading = false,
-              this.open2 = false
-            })
-          }
-        });
-      }else{
-        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.open1 = false;
-                this.getList();
-              }).catch(()=>{
-                this.loading = false,
-                this.open1 = false
-              })
-            } else {
-              addRadio(this.form).then(response => {
-                this.loading = false
-                this.msgSuccess("新增成功");
-                this.open1 = false;
-                this.getList();
-              }).catch(()=>{
-                this.loading = false,
-                this.open1 = false
-              })
-            }
-          }
-        });
-      }
-      
-      
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$confirm('是否确认删除', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delRadio(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(() => {});
-    },
-  }
-};
-</script>

+ 0 - 152
src/views/recharge/reportForm/index.vue

@@ -1,152 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
-      <el-form-item label="时间">
-         <el-date-picker
-          style="margin-top:5px;"
-          v-model="dateRange"
-          size="small"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetimerange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-      <el-form-item label="报表种类" prop="type">
-         <el-select v-model="queryParams.type" placeholder="请选择报表种类" size="small">
-          <el-option label="日" :value="1"/>
-          <el-option label="周" :value="2"/>
-          <el-option label="月" :value="3"/>
-          <el-option label="年" :value="4"/>
-        </el-select>
-      </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-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['system:admin:export']"
-        >导出</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-table v-loading="loading" :data="adminList">
-      <el-table-column label="时间" align="center" prop="reportDate" />
-      <el-table-column label="报表种类" align="center">
-        <template slot-scope="scope">
-          <span>{{ scope.row.type == 1 ? '日':scope.row.type ==2 ? '周':scope.row.type ==3 ? '月':scope.row.type ==4 ? '年': '' }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="总金额" align="center" prop="totalMoney" />
-      <el-table-column label="现金" align="center" prop="cashMoney" />
-      <el-table-column label="微信" align="center" prop="wxMoney" />
-      <el-table-column label="支付宝" align="center" prop="zfbMoney" />
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.current"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
-  </div>
-</template>
-
-<script>
-import { listReport, exportReport } from "@/api/recharge/reportForm";
-
-export default {
-  name: "admin",
-  data() {
-    return {
-      // 导出遮罩层
-      exportLoading: false,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      adminList: [],
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        current: 1,
-        size: 10,
-        type: 1,
-      },
-      // 表单参数
-      form: {},
-    };
-  },
-  created() {
-    this.getList();
-
-  },
-  methods: {
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listReport(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
-          this.adminList = response.data.records.map(val=>{
-            return {
-              ...val,
-              type:this.queryParams.type
-            }
-          });
-          this.total = response.data.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.queryParams.current = 1;
-      this.queryParams.startTime = undefined;
-      this.queryParams.endTime = undefined;
-      this.queryParams.endTime = undefined;
-      this.queryParams.type = 1
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      let queryParams = {...this.queryParams};
-      delete queryParams.current
-      delete queryParams.size
-      this.exportLoading = true;
-      exportReport(queryParams).then(response =>{
-        this.exportLoading = false;
-        localStorage.setItem('fileExportId', response.msg)
-        this.$router.push({path:'/recharge/fileExport'})
-      })
-
-      // this.$confirm('是否确认导出数据?', "警告", {
-      //     confirmButtonText: "确定",
-      //     cancelButtonText: "取消",
-      //     type: "warning"
-      //   }).then(() => {
-      //     this.exportLoading = true;
-      //     return exportReport(queryParams);
-      //   }).then(res => {
-      //     this.downloadBlob(res)
-      //     this.exportLoading = false;
-      //   }).catch(() => {
-      //     this.exportLoading = false;
-      //   });
-    },
-  }
-};
-</script>

+ 0 - 241
src/views/recharge/userRecharge/index.vue

@@ -1,241 +0,0 @@
-<template>
-  <div class="app-container" v-loading="loading">
-    <el-form :model="form" :rules="rules" ref="form" label-width="140px">
-      <el-form-item label="姓名:" prop="userName">
-        <el-input
-          v-model.trim="form.userName"
-          placeholder="请输入姓名"
-          clearable
-          :readonly=true
-        />
-      </el-form-item>
-      <el-form-item label="手机号码:" prop="userPhone">
-        <el-input
-          v-model.trim="form.userPhone"
-          placeholder="请输入手机号码"
-          clearable
-          maxlength="11"
-          minlength="11"
-          type="text"
-          onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"
-        />
-      </el-form-item>
-      <el-form-item label="充值金额:" prop="money">
-        <el-input  v-model.trim="form.money"  placeholder="请输入充值金额" type="tel"   @input="inputMoney" min="0.10" />
-        <!-- <el-input
-
-          v-model.trim="form.money"
-          placeholder="请输入充值金额"
-          clearable
-          onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"
-        /> -->
-      </el-form-item>
-      <el-form-item label="充值到账比例:" prop="proportion">
-        <el-input
-          v-model.trim="form.proportion"
-          placeholder="充值到账比例"
-          clearable
-          :disabled="true"
-        />
-      </el-form-item>
-
-      <el-form-item label-width="0" style="margin-top:50px;" class="payTypeClass" prop="payType">
-        <img src="../../../assets/images/xj.png" alt="" @click="form.payType = 1" v-if="form.payType !== 1">
-        <img src="../../../assets/images/xj-c.png" alt="" v-if="form.payType === 1">
-        <img src="../../../assets/images/wx.png" alt="" @click="form.payType = 2" v-if="form.payType !== 2">
-        <img src="../../../assets/images/wx-c.png" alt="" v-if="form.payType === 2">
-        <img src="../../../assets/images/zfb.png" alt="" @click="form.payType = 3" v-if="form.payType !== 3">
-        <img src="../../../assets/images/zfb-c.png" alt="" v-if="form.payType === 3">
-      </el-form-item>
-      <el-form-item label-width="0" style="margin-top:50px;">
-        <el-button type="primary" @click="submitForm" style="width:100%">充值</el-button>
-      </el-form-item>
-    </el-form>
-    <div class="qrcode" ref="qrCodeUrl"></div>
-    <!-- <img :src="codeUrl" alt="请扫描二维码支付" v-if="codeUrl" title="请扫描二维码支付"> -->
-  </div>
-</template>
-
-<script>
-import QRCode from 'qrcodejs2'
-import { order, topScanPayApi } from "@/api/recharge/userRecharge";
-import { validatePhone } from "@/utils/validate2";
-export default {
-  name: "admin",
-  data() {
-    return {
-      loading:true,
-      // 表单参数
-      form: {
-        userPhone:'',
-        userName:'',
-        money:'',
-        proportion:'',
-        payType:0,
-        userId:undefined,
-        scene:1
-      },
-      formSubmit:{
-        userPhone:'',
-        userName:'',
-        money:'',
-        payType:0,
-        userId:undefined,
-        scene:1
-      },
-      codeUrl:null,
-      // 表单校验
-      rules: {
-        userPhone: [
-          { required: true, message: "手机号码不能为空", trigger: "blur",  },
-          { validator: validatePhone,  trigger: "blur" },
-
-        ],
-        userName: [
-          { required: true, message: "姓名不能为空", trigger: "blur" }
-        ],
-        money: [
-          { required: true, message: "充值金额不能为空", trigger: "blur" },
-        ],
-        // proportion: [
-        //   { required: true, message: "充值到账比例不能为空,请返回页面绑定比例关系", trigger: "blur" }
-        // ],
-        payType: [
-          { required: true, message: "请选择支付方式", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  created(){
-    if(localStorage.getItem("chongzhi")){
-      this.loading = false
-      let obj = JSON.parse(localStorage.getItem("chongzhi"))
-      this.form.userName = obj.name
-      this.form.proportion = obj.proportion
-      this.form.userId = obj.sid
-      this.form.userPhone = obj.contacts
-      localStorage.removeItem('chongzhi')
-    }else{
-      this.$message.error('请从人员信息充值入口进入该页面')
-      setTimeout(() =>{
-        this.$router.push({path:'personnel'})
-      },1500)
-    }
-  },
-  methods: {
-    creatQrCode(url) {
-      var qrcode = new QRCode(this.$refs.qrCodeUrl, {
-          text: url, // 需要转换为二维码的内容
-          width: 250,
-          height: 250,
-          colorDark: '#000000',
-          colorLight: '#ffffff',
-          correctLevel: QRCode.CorrectLevel.H
-      })
-      this.msgSuccess("已生成支付二维码,请扫描二维码进行支付。");
-      this.loading = false
-    },
-    inputMoney(e){ //金额充值效验
-      var val = e.replace(/(^\s*)|(\s*$)/g, "")
-      if (!val) {
-        this.form.money = '';
-        return
-      }
-      var reg = /[^\d.]/g
-      // 只能是数字和小数点,不能是其他输入
-      val = val.replace(reg, "")
-      // // 保证第一位只能是数字,不能是点
-      val = val.replace(/^\./g, "");
-      // // 小数只能出现1位
-      val = val.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
-      // // 小数点后面保留2位
-      val = val.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
-      if(val.indexOf("0") == 0){
-        if(val.length == 2){
-          val = "0."
-        }
-      }
-      this.$nextTick(() => {
-          this.form.money = val;
-      })
-	  },
-    forceUpdate(){ //重置form
-      this.form = JSON.parse(JSON.stringify(this.form));
-    },
-
-    /** 提交按钮 */
-    submitForm(row) {
-
-      if(this.form.money == 0){
-        this.msgError("充值金额不能为0元")
-      }else{
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            if(!this.form.payType) return this.msgError("请选择支付方式");
-            this.loading = true
-
-            this.formSubmit.userPhone = this.form.userPhone
-            this.formSubmit.userName = this.form.userName
-            this.formSubmit.money = Number(this.form.money).toFixed(2)
-            this.formSubmit.payType = this.form.payType
-            this.formSubmit.userId = this.form.userId
-            this.formSubmit.userId = this.form.userId
-            if (this.form.payType === 1) { //后台现金
-              order(this.formSubmit).then(response => {
-                this.msgSuccess("已生成支付订单");
-                this.codeUrl = '';
-                this.loading = false
-              });
-            } else {
-
-              //移除二维码
-              var div = document.getElementsByClassName("qrcode")[0];
-              // 获取 div 标签下的所有子节点
-              var pObjs = div.childNodes;
-              for (var i = pObjs.length - 1; i >= 0; i--) { // 一定要倒序,正序是删不干净的,可自行尝试
-                div.removeChild(pObjs[i]);
-              }
-              topScanPayApi(this.formSubmit).then(response => {
-                this.creatQrCode(response.msg)
-              })
-              // scanPayQr(this.form).then(response => {
-              //   this.codeUrl = "data:image/gif;base64," + response.msg;
-              //   this.msgSuccess("已生成支付二维码,请扫描二维码进行支付。");
-              //   this.loading = false
-              // });
-            }
-            // this.reset()
-          }
-        })
-      }
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        userPhone:'',
-        userName:'',
-        money:'',
-        payType:0,
-      };
-      this.resetForm("form");
-    },
-  },
-}
-</script>
-
-<style lang="scss" scoped>
-.app-container{
-  padding-top: 50px;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-}
-.payTypeClass{
-  img{
-    width: 120px;
-    height: 90px;
-    margin: 0 10px;
-  }
-}
-</style>

+ 19 - 18
src/views/system/product/index.vue

@@ -84,8 +84,7 @@
           <el-input v-model.trim="form.name" placeholder="请输入单位名称" maxlength="20" show-word-limit />
         </el-form-item>
         <el-form-item label="单位介绍" prop="remark">
-          <el-input type="textarea" :rows="4" placeholder="请输入单位介绍" v-model.trim="form.remark" maxlength="80" show-word-limit >
-          </el-input>
+          <el-input type="textarea" :rows="4" placeholder="请输入单位介绍" v-model.trim="form.remark" maxlength="80" show-word-limit  @input="onInput()"/>
         </el-form-item>
 
         <el-form-item label="单位LOGO" prop="logo" ref="img">
@@ -95,6 +94,7 @@
             :limit = 1
             :on-change="handleChange"
             :file-list="fileList"
+            accept=".jpg,.jpeg,.JPG,.JPEG,.PNG,.png,.GIF,.gif"   
             >
             <el-button size="small" type="primary">点击上传</el-button>
           </el-upload>
@@ -177,13 +177,11 @@ export default {
       },
       // 表单参数
       form: {
-        id:'',
-        name:'',
-        introduce:'',
-        logo:"",
-        batchNo:undefined,
-        businessType:"产品logo",
-        uploadType:"file"
+        id:undefined,
+        name:undefined,
+        introduce:undefined,
+        logo:undefined,
+        remark:undefined,
       },
       // 表单校验
       rules: {
@@ -213,6 +211,9 @@ export default {
     this.getList();
   },
   methods: {
+    onInput(){
+        this.$forceUpdate();
+    },
     handleRemove(file) {
       this.form.logo = undefined
       // this.$nextTick(() => {
@@ -317,15 +318,15 @@ export default {
       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 = "修改参数";
-      setTimeout(() =>{
-        if(this.fileList.length>0){
-        }else{
-          this.fileList.push([])
-          this.fileList[0].url = row.logo
-        }
-        document.getElementsByClassName("el-upload--picture-card")[0].style.display="none"
-      },100)
-      this.limit = 1
+      // setTimeout(() =>{
+      //   if(this.fileList.length>0){
+      //   }else{
+      //     this.fileList.push([])
+      //     this.fileList[0].url = row.logo
+      //   }
+      //   document.getElementsByClassName("el-upload--picture-card")[0].style.display="none"
+      // },100)
+      // this.limit = 1
       // });
     },
     // 图片上传尺寸大小检验

+ 109 - 296
src/views/system/security/index.vue

@@ -101,12 +101,26 @@
       <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
     </el-row>
 
-    <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="编号" prop="roleId" width="120" />
-      <el-table-column label="密码长度" prop="roleSort" width="100" />
-      <el-table-column label="账号锁定次数" prop="roleSort" width="100" />
-      <el-table-column label="大小写敏感" align="center" width="100">
+    <el-table v-loading="loading" :data="adminList" >
+      <el-table-column label="编号" prop="id"  />
+      <el-table-column label="密码长度不少于" prop="pwdLength" >
+        <template slot-scope="scope">
+            <span v-if="scope.row.pwdLength">{{scope.row.pwdLength}} &nbsp;位</span>
+      </template>
+      </el-table-column>
+      <el-table-column label="账号锁定次数" prop="lockNumber" />
+      <el-table-column label="默认账户" align="center" >
+        <template slot-scope="scope">
+          <el-switch
+            v-model="scope.row.isEnable"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+             @change="handleStatusChange(scope.row)"
+          ></el-switch>
+        </template>
+      </el-table-column>
+      
+      <!-- <el-table-column label="大小写敏感" align="center" width="100">
         <template slot-scope="scope">
           <el-switch
             v-model="scope.row.status"
@@ -114,14 +128,13 @@
             inactive-value="1"
             @change="handleStatusChange(scope.row)"
           ></el-switch>
-        </template>
-      </el-table-column>
-      <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>y
+      </el-table-column> -->
+      <el-table-column label="创建人" align="center" prop="createBy"  show-overflow-tooltip/>
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip/>
+      <!-- <el-table-column label="修改人" align="center" prop="updateBy"  show-overflow-tooltip/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"  show-overflow-tooltip/> -->
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
         <template slot-scope="scope" v-if="scope.row.roleId !== 1">
           <el-button
             size="mini"
@@ -151,22 +164,28 @@
 
     <!-- 添加或修改角色配置对话框 -->
     <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.trim="form.roleName" placeholder="请输入密码长度" maxlength="20" show-word-limit/>
-        </el-form-item>
-        <el-form-item label="账号锁定次数" prop="roleSort">
-          <el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
-        </el-form-item>
-        <el-form-item label="大小写敏感">
-          <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in statusOptions"
-              :key="dict.dictValue"
-              :label="dict.dictValue"
-            >{{dict.dictLabel}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
+      <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+        <el-row>
+          <el-col :span="18">
+            <el-form-item label="密码长度不少于" prop="pwdLength">
+              <el-input-number v-model="form.pwdLength" controls-position="right" :min="0" :max="30" placeholder="请输入密码长度" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="18">
+            <el-form-item label="账号锁定次数" prop="lockNumber" >
+              <el-input-number v-model="form.lockNumber" controls-position="right" :min="0" :max="10" placeholder="请输入账号锁定次数" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="默认账户" prop="isEnable">
+              <el-switch
+                v-model="form.isEnable"
+                active-color="#13ce66"
+                inactive-color="#ff4949">
+              </el-switch>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
@@ -178,12 +197,10 @@
 </template>
 
 <script>
-import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from "@/api/system/role";
-import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
-import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept";
+import { listAccountLock, updateAccountLock, delAccountLock, addAccountLock, } from "@/api/system/security";
 
 export default {
-  name: "Role",
+  name: "AccountLock",
   data() {
     return {
       // 遮罩层
@@ -200,56 +217,21 @@ export default {
       showSearch: true,
       // 总条数
       total: 0,
-      // 角色表格数据
-      roleList: [],
+      // 表格数据
+      adminList: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
       open: false,
-      // 是否显示弹出层(数据权限)
-      openDataScope: false,
-      menuExpand: false,
-      menuNodeAll: false,
-      deptExpand: true,
-      deptNodeAll: false,
+
       // 日期范围
       dateRange: [],
-      // 状态数据字典
-      statusOptions: [],
-      // 数据范围选项
-      dataScopeOptions: [
-        {
-          value: "1",
-          label: "全部数据权限"
-        },
-        {
-          value: "2",
-          label: "自定数据权限"
-        },
-        {
-          value: "3",
-          label: "本部门数据权限"
-        },
-        {
-          value: "4",
-          label: "本部门及以下数据权限"
-        },
-        {
-          value: "5",
-          label: "仅本人数据权限"
-        }
-      ],
-      // 菜单列表
-      menuOptions: [],
-      // 部门列表
-      deptOptions: [],
+
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        roleName: undefined,
-        roleKey: undefined,
-        status: undefined
+        current: 1,
+        size: 10,
+        name:undefined
       },
       // 表单参数
       form: {},
@@ -257,129 +239,44 @@ export default {
         children: "children",
         label: "label"
       },
+
       // 表单校验
       rules: {
-        roleName: [
-          { required: true, message: "角色名称不能为空", trigger: "blur" }
+        pwdLength: [
+          { required: true, message: "密码长度不能为空", trigger: ["blur",'change'] }
         ],
-        roleKey: [
-          { required: true, message: "权限字符不能为空", trigger: "blur" }
+        lockNumber: [
+          { required: true, message: "锁定次数不能为空", trigger: ["blur",'change']}
         ],
-        roleSort: [
-          { required: true, message: "角色顺序不能为空", trigger: "blur" }
-        ]
+
       }
     };
   },
   created() {
     this.getList();
-    this.getDicts("sys_normal_disable").then(response => {
-      this.statusOptions = response.data;
-    });
-
   },
   methods: {
     /** 查询角色列表 */
     getList() {
       this.loading = true;
-      listRole(this.addDateRange(this.queryParams, this.dateRange)).then(
+      listAccountLock(this.addDateRange(this.queryParams, this.dateRange)).then(
         response => {
-          console.log(response)
-          this.roleList = response.data.rows;
+          this.adminList = response.data.records;
           this.total = response.data.total;
           this.loading = false;
+          
         }
       );
     },
-    /** 查询菜单树结构 */
-    getMenuTreeselect() {
-      menuTreeselect().then(response => {
-        this.menuOptions = response.data;
-      });
-    },
-    /** 查询部门树结构 */
-    getDeptTreeselect() {
-      deptTreeselect().then(response => {
-        this.deptOptions = response.data;
-      });
-    },
-    // 所有菜单节点数据
-    getMenuAllCheckedKeys() {
-      // 目前被选中的菜单节点
-      let checkedKeys = this.$refs.menu.getCheckedKeys();
-      // 半选中的菜单节点
-      let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
-      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-      return checkedKeys;
-    },
-    // 所有部门节点数据
-    getDeptAllCheckedKeys() {
-      // 目前被选中的部门节点
-      let checkedKeys = this.$refs.dept.getCheckedKeys();
-      // 半选中的部门节点
-      let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
-      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-      return checkedKeys;
-    },
-    /** 根据角色ID查询菜单树结构 */
-    getRoleMenuTreeselect(roleId) {
-      return roleMenuTreeselect(roleId).then(response => {
-        this.menuOptions = response.data.menus;
-        return response;
-      });
-    },
-    /** 根据角色ID查询部门树结构 */
-    getRoleDeptTreeselect(roleId) {
-      return roleDeptTreeselect(roleId).then(response => {
-        this.deptOptions = response.data.depts;
-        return response;
-      });
-    },
-    // 角色状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$confirm('确认要"' + text + '""' + row.roleName + '"角色吗?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return changeRoleStatus(row.roleId, row.status);
-        }).then(() => {
-          this.msgSuccess(text + "成功");
-        }).catch(function() {
-          row.status = row.status === "0" ? "1" : "0";
-        });
-    },
     // 取消按钮
     cancel() {
       this.open = false;
       this.reset();
     },
-    // 取消按钮(数据权限)
-    cancelDataScope() {
-      this.openDataScope = false;
-      this.reset();
-    },
     // 表单重置
     reset() {
-      if (this.$refs.menu != undefined) {
-        this.$refs.menu.setCheckedKeys([]);
-      }
-      this.menuExpand = false,
-      this.menuNodeAll = false,
-      this.deptExpand = true,
-      this.deptNodeAll = false,
       this.form = {
-        roleId: undefined,
-        roleName: undefined,
-        roleKey: undefined,
-        roleSort: 0,
-        status: "0",
-        menuIds: [],
-        deptIds: [],
-        menuCheckStrictly: true,
-        deptCheckStrictly: true,
-        remark: undefined
+        name: undefined
       };
       this.resetForm("form");
     },
@@ -394,117 +291,42 @@ export default {
       this.resetForm("queryForm");
       this.handleQuery();
     },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.roleId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    // 更多操作触发
-    handleCommand(command, row) {
-      switch (command) {
-        case "handleDataScope":
-          this.handleDataScope(row);
-          break;
-        case "handleAuthUser":
-          this.handleAuthUser(row);
-          break;
-        default:
-          break;
-      }
-    },
-    // 树权限(展开/折叠)
-    handleCheckedTreeExpand(value, type) {
-      if (type == 'menu') {
-        let treeList = this.menuOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      } else if (type == 'dept') {
-        let treeList = this.deptOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      }
-    },
-    // 树权限(全选/全不选)
-    handleCheckedTreeNodeAll(value, type) {
-      if (type == 'menu') {
-        this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
-      } else if (type == 'dept') {
-        this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
-      }
-    },
-    // 树权限(父子联动)
-    handleCheckedTreeConnect(value, type) {
-      if (type == 'menu') {
-        this.form.menuCheckStrictly = value ? true: false;
-      } else if (type == 'dept') {
-        this.form.deptCheckStrictly = value ? true: false;
-      }
-    },
+
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
-      this.getMenuTreeselect();
       this.open = true;
-      this.title = "添加角色";
+      this.title = "添加安全机制";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const roleId = row.roleId || this.ids
-      const roleMenu = this.getRoleMenuTreeselect(roleId);
-      getRole(roleId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.$nextTick(() => {
-          roleMenu.then(res => {
-            let checkedKeys = res.data.checkedKeys
-            checkedKeys.forEach((v) => {
-                this.$nextTick(()=>{
-                    this.$refs.menu.setChecked(v, true ,false);
-                })
-            })
-          });
-        });
-        this.title = "修改角色";
-      });
-    },
-    /** 选择角色权限范围触发 */
-    dataScopeSelectChange(value) {
-      if(value !== '2') {
-        this.$refs.dept.setCheckedKeys([]);
-      }
+      this.form = JSON.parse(JSON.stringify(row))
+      this.title = "修改角色";
+      this.open = true
     },
-    /** 分配数据权限操作 */
-    handleDataScope(row) {
-      this.reset();
-      const roleDeptTreeselect = this.getRoleDeptTreeselect(row.roleId);
-      getRole(row.roleId).then(response => {
-        this.form = response.data;
-        this.openDataScope = true;
-        this.$nextTick(() => {
-          roleDeptTreeselect.then(res => {
-            this.$refs.dept.setCheckedKeys(res.data.checkedKeys);
-          });
+    handleStatusChange(row){
+      let text = row.isEnable === true ? "启用" : "停用";
+      this.$confirm('确认要"' + text + '""' + row.id + '"机制吗?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return updateAccountLock(row)
+        }).then(() => {
+          this.getList()
+          this.msgSuccess(text + "成功");
+        }).catch(function() {
+          row.isEnable = row.isEnable === "0" ? "1" : "0";
         });
-        this.title = "分配数据权限";
-      });
-    },
-    /** 分配用户操作 */
-    handleAuthUser: function(row) {
-      const roleId = row.roleId;
-      this.$router.push("/system/role-auth/user/" + roleId);
     },
     /** 提交按钮 */
     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 => {
+          if (this.form.id != undefined) {
+            updateAccountLock(this.form).then(response => {
               this.loading = false
               this.msgSuccess("修改成功");
               this.open = false;
@@ -513,8 +335,10 @@ export default {
               this.loading = false
             });
           } else {
-            this.form.menuIds = this.getMenuAllCheckedKeys();
-            addRole(this.form).then(response => {
+            if(!this.form.isEnable){
+              this.form.isEnable = false
+            }
+            addAccountLock(this.form).then(response => {
               this.loading = false
               this.msgSuccess("新增成功");
               this.open = false;
@@ -526,46 +350,35 @@ export default {
         }
       });
     },
-    /** 提交按钮(数据权限) */
-    submitDataScope: function() {
-      if (this.form.roleId != undefined) {
-        this.form.deptIds = this.getDeptAllCheckedKeys();
-        dataScope(this.form).then(response => {
-          this.msgSuccess("修改成功");
-          this.openDataScope = false;
-          this.getList();
-        });
-      }
-    },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const roleIds = row.roleId || this.ids;
-      this.$confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?', "警告", {
+      const id = row.id || this.ids;
+      this.$confirm('是否确认删除角色编号为"' + id + '"的数据项?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
         }).then(function() {
-          return delRole(roleIds);
+          return delAccountLock(id);
         }).then(() => {
           this.getList();
           this.msgSuccess("删除成功");
         }).catch(() => {});
     },
     /** 导出按钮操作 */
-    handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有角色数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportRole(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
-    }
+    // handleExport() {
+    //   const queryParams = this.queryParams;
+    //   this.$confirm('是否确认导出所有角色数据项?', "警告", {
+    //       confirmButtonText: "确定",
+    //       cancelButtonText: "取消",
+    //       type: "warning"
+    //     }).then(() => {
+    //       this.exportLoading = true;
+    //       return exportRole(queryParams);
+    //     }).then(response => {
+    //       this.download(response.msg);
+    //       this.exportLoading = false;
+    //     }).catch(() => {});
+    // }
   }
 };
 </script>

+ 19 - 14
src/views/system/user/index.vue

@@ -280,8 +280,8 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="岗位" prop="postIds">
-              <el-select v-model="form.postIds"  placeholder="请选择" >
+            <el-form-item label="岗位" prop="postId">
+              <el-select v-model.trim="form.postId"  placeholder="请选择" @change='changeUnit'>
                 <el-option
                   v-for="item in postOptions"
                   :key="item.postId"
@@ -293,9 +293,9 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="角色" prop="roleIds">
+            <el-form-item label="角色" prop="roleId">
               <!-- multiple -->
-              <el-select v-model="form.roleIds"  placeholder="请选择" >
+              <el-select v-model="form.roleId"  placeholder="请选择" >
                 <el-option
                   v-for="item in roleOptions"
                   :key="item.roleId"
@@ -454,7 +454,7 @@ export default {
         ],
         password: [
           { required: true, message: "用户密码不能为空", trigger: "blur" },
-          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
+          { min: 1, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
         ],
         email: [
           { required: true, message: "邮箱地址不能为空", trigger: "blur" },
@@ -472,7 +472,7 @@ export default {
             trigger: "blur"
           }
         ],
-        roleIds:[
+        roleId:[
            { required: true, message: "用户角色不能为空", trigger: "change"},
         ],
 
@@ -509,6 +509,9 @@ export default {
     onInput(){
         this.$forceUpdate();
     },
+    changeUnit() {
+      this.$forceUpdate();
+    },
     /** 查询用户列表 */
     getList() {
       this.loading = true;
@@ -569,7 +572,9 @@ export default {
         status: "0",
         remark: undefined,
         postIds: [],
-        roleIds: []
+        roleIds: [],
+        postId: undefined,
+        roleId: undefined
       };
       this.resetForm("form");
     },
@@ -612,6 +617,7 @@ export default {
         this.open = true;
         this.title = "添加用户";
         this.form.password = this.initPassword;
+
       });
     },
     /** 修改按钮操作 */
@@ -622,11 +628,10 @@ export default {
         this.form = response.data.data;
         this.postOptions = response.data.posts
         this.roleOptions = response.data.roles;
+       
 
-        this.form.postIds = response.data.postIds[0]
-        this.form.roleIds = response.data.roleIds[0]
-          // this.form.postIds2 = this.form.postIds;
-          // this.form.roleIds2 = this.form.roleIds;
+        this.form.postId = response.data.postIds[0]
+        this.form.roleId = response.data.roleIds[0]
           this.open = true;
           this.title = "修改用户";
           this.form.password = "";
@@ -659,10 +664,10 @@ export default {
           this.loading = true
           let postIds = []
           let roleIds = []
-          if(this.form.postIds){
-            postIds.push(this.form.postIds)
+          if(this.form.postId){
+            postIds.push(this.form.postId)
           }
-          roleIds.push(this.form.roleIds)
+          roleIds.push(this.form.roleId)
           this.form.postIds = postIds
           this.form.roleIds = roleIds
           if (this.form.userId != undefined) {

+ 1 - 1
vue.config.js

@@ -18,7 +18,7 @@ module.exports = {
     // 例如 https://www.yongtian.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.yongtian.vip/admin/,则设置 baseUrl 为 /admin/。
     publicPath: process.env.NODE_ENV === "production" ? "/deviceManager/" : "/deviceManager/",
     // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
-    outputDir: 'dist',
+    outputDir: 'deviceManager',
     // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
     assetsDir: 'static',
     // 是否开启eslint保存检测,有效值:ture | false | 'error'

Неке датотеке нису приказане због велике количине промена