Browse Source

案场信息 添加/编辑 添加是否开放控制

keyman1995 6 years ago
parent
commit
ee9d5732c7
48 changed files with 375 additions and 218 deletions
  1. 2
    3
      config/index.js
  2. 2
    1
      dist/index.html
  3. 2
    1
      dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map
  4. 1
    1
      src/components/brokenLineGraph/index.vue
  5. 1
    1
      src/components/brokenLineGraphGroup/index.vue
  6. 2
    2
      src/components/dashboard/index.vue
  7. 7
    5
      src/components/dashboardList/index.vue
  8. 1
    1
      src/components/histogram/index.vue
  9. 2
    1
      src/components/pieDiagram/index.vue
  10. 4
    4
      src/components/ringChart/index.vue
  11. 3
    2
      src/pages/system/cardAndCouponManager/bodyBuildingCardManager/edit.vue
  12. 2
    0
      src/pages/system/cardAndCouponManager/bodyBuildingCardManager/index.vue
  13. 67
    33
      src/pages/system/cardAndCouponManager/cardManager/edit.vue
  14. 12
    6
      src/pages/system/cardAndCouponManager/cardManager/index.vue
  15. 47
    19
      src/pages/system/cardAndCouponManager/couponManager/edit.vue
  16. 10
    15
      src/pages/system/cardAndCouponManager/couponManager/index.vue
  17. 2
    2
      src/pages/system/cardAndCouponManager/givingRecords.vue
  18. 3
    3
      src/pages/system/cardAndCouponManager/vipManager/index.vue
  19. 3
    3
      src/pages/system/caseManager/caseAreaManager/index.vue
  20. 3
    3
      src/pages/system/caseManager/caseTableManager/index.vue
  21. 3
    3
      src/pages/system/caseManager/deviceManager/index.vue
  22. 3
    3
      src/pages/system/caseManager/signinManager/index.vue
  23. 3
    3
      src/pages/system/caseManager/tagManager/index.vue
  24. 3
    3
      src/pages/system/channelManager/channelList/index.vue
  25. 3
    3
      src/pages/system/cmsManager/bannerManager/add.vue
  26. 3
    2
      src/pages/system/cmsManager/bannerManager/edit.vue
  27. 1
    3
      src/pages/system/cmsManager/indexMsg/add.vue
  28. 1
    3
      src/pages/system/cmsManager/indexMsg/edit.vue
  29. 8
    3
      src/pages/system/cmsManager/majorProjects/edit.vue
  30. 3
    3
      src/pages/system/cmsManager/majorProjects/index.vue
  31. 3
    3
      src/pages/system/cmsManager/newsManager/edit.vue
  32. 1
    1
      src/pages/system/courseManager/courseList/add.vue
  33. 3
    3
      src/pages/system/courseManager/courseList/index.vue
  34. 58
    33
      src/pages/system/dashboard/index.vue
  35. 2
    0
      src/pages/system/dataStatistics/cardCouponUsedList/index.vue
  36. 2
    0
      src/pages/system/dataStatistics/courseOrderList/index.vue
  37. 2
    0
      src/pages/system/dataStatistics/goodsOrderList/index.vue
  38. 5
    5
      src/pages/system/goodsManager/goodManager/index.vue
  39. 3
    3
      src/pages/system/goodsManager/goodsSpecManager/index.vue
  40. 3
    3
      src/pages/system/goodsManager/goodsTypeManager/index.vue
  41. 3
    3
      src/pages/system/healthManager/healthRecord/index.vue
  42. 4
    3
      src/pages/system/newOrder/caseRecord/index.vue
  43. 19
    17
      src/pages/system/newOrder/newOrderList/index.vue
  44. 3
    3
      src/pages/system/systemSet/userManager/index.vue
  45. 22
    1
      src/pages/system/verificationManager/phoneVerification/index.vue
  46. 29
    1
      src/pages/system/verificationManager/phoneVerification/page.scss
  47. 4
    2
      src/pages/system/verificationManager/qrcodeVerification/verificationList/index.vue
  48. 2
    2
      src/util/api.js

+ 2
- 3
config/index.js View File

12
     proxyTable: {
12
     proxyTable: {
13
       '/api': {
13
       '/api': {
14
         // target: 'https://dp.huiju360.com.cn/hj_operations',
14
         // target: 'https://dp.huiju360.com.cn/hj_operations',
15
-        // target: 'http://192.168.0.62:8080', //wf
16
-         target: 'http://127.0.0.1:8080', 
17
-        // target: 'http://localhost:8080', //wf
15
+        target: 'http://192.168.0.62:8080', //wf
16
+        // target: 'http://127.0.0.1:8080', 
18
         // target: 'http://192.168.0.11', //ys
17
         // target: 'http://192.168.0.11', //ys
19
         // target: 'http://192.168.0.125:8080', //hyq
18
         // target: 'http://192.168.0.125:8080', //hyq
20
         // target: 'http://dev.ycjcjy.com/', //frp
19
         // target: 'http://dev.ycjcjy.com/', //frp

+ 2
- 1
dist/index.html View File

1
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel=stylesheet href=//at.alicdn.com/t/font_775069_dwqa9wy3lkh.css><title>城的空间后台管理系统</title><link href=./static/css/app.a850e1bbc151e0cbebd3056e3c62c6e5.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.992319e39e0ff64940a3.js></script><script type=text/javascript src=./static/js/app.796889f82dfcb1df1494.js></script></body></html>
1
+
2
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel=stylesheet href=//at.alicdn.com/t/font_775069_dwqa9wy3lkh.css><title>城的空间后台管理系统</title><link href=./static/css/app.f1330eb7ddca7c66192d24439e0e80e0.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.992319e39e0ff64940a3.js></script><script type=text/javascript src=./static/js/app.bd7e90e4ab21a6bad85b.js></script></body></html>

+ 2
- 1
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map View File

1
-{"version":3,"sources":["webpack:///webpack/bootstrap 54812fbeda491d145170"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,KAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.3ad1d5771e9b13dbdad2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 54812fbeda491d145170"],"sourceRoot":""}
1
+
2
+{"version":3,"sources":["webpack:///webpack/bootstrap 24ade506a94376035435"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,KAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.3ad1d5771e9b13dbdad2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 24ade506a94376035435"],"sourceRoot":""}

+ 1
- 1
src/components/brokenLineGraph/index.vue View File

32
         width: _that.$refs.box.clientWidth,
32
         width: _that.$refs.box.clientWidth,
33
         height: 400
33
         height: 400
34
       })
34
       })
35
-      chart.source(_that.data.list)
35
+      chart.source(_that.data.value)
36
       chart.scale('y', {
36
       chart.scale('y', {
37
         min: 0
37
         min: 0
38
       })
38
       })

+ 1
- 1
src/components/brokenLineGraphGroup/index.vue View File

32
         width: _that.$refs.box.clientWidth,
32
         width: _that.$refs.box.clientWidth,
33
         height: 400,
33
         height: 400,
34
       })
34
       })
35
-      chart.source(_that.data.list, {
35
+      chart.source(_that.data.value, {
36
         month: {
36
         month: {
37
           range: [0, 1]
37
           range: [0, 1]
38
         }
38
         }

+ 2
- 2
src/components/dashboard/index.vue View File

65
         height: 400,
65
         height: 400,
66
         padding: [0, 0, 30, 0]
66
         padding: [0, 0, 30, 0]
67
       })
67
       })
68
-      chart.source(_that.data.list)
68
+      chart.source(_that.data.value)
69
 
69
 
70
       chart.coord('polar', {
70
       chart.coord('polar', {
71
         startAngle: -9 / 8 * Math.PI,
71
         startAngle: -9 / 8 * Math.PI,
122
       chart.guide().arc({
122
       chart.guide().arc({
123
         zIndex: 1,
123
         zIndex: 1,
124
         start: [0, 0.945],
124
         start: [0, 0.945],
125
-        end: [_that.data.list[0].value, 0.945],
125
+        end: [_that.data.value[0].value, 0.945],
126
         style: {
126
         style: {
127
           stroke: '#1890FF',
127
           stroke: '#1890FF',
128
           lineWidth: 18
128
           lineWidth: 18

+ 7
- 5
src/components/dashboardList/index.vue View File

1
 <template>
1
 <template>
2
   <div class="dashboardList">
2
   <div class="dashboardList">
3
     <ul class="flex-h">
3
     <ul class="flex-h">
4
-      <li class="flex-item" v-for="(item,index) in data.list" :key="index">
4
+      <li class="flex-item">
5
         <div :style="{background:colorList[index%colorList.length]}">
5
         <div :style="{background:colorList[index%colorList.length]}">
6
           <div class="centerLabel">
6
           <div class="centerLabel">
7
-            <span>{{item.name}}</span>
8
-            <span>{{item.value}}</span>
7
+            <span>{{data.title}}</span>
8
+            <span>{{data.value}}</span>
9
           </div>
9
           </div>
10
         </div>
10
         </div>
11
       </li>
11
       </li>
16
 <script>
16
 <script>
17
 export default {
17
 export default {
18
   name: '',
18
   name: '',
19
-  props: ['data'],
19
+  props: ['data', 'index'],
20
   data () {
20
   data () {
21
     return {
21
     return {
22
       colorList: ['#fc6243', '#409EFF', '#4ddea2', '#f6e259', '#5c59f6', '#f66f59'],
22
       colorList: ['#fc6243', '#409EFF', '#4ddea2', '#f6e259', '#5c59f6', '#f66f59'],
23
     }
23
     }
24
   },
24
   },
25
   mounted () {
25
   mounted () {
26
-    this.$nextTick(function () {})
26
+    this.$nextTick(function () {
27
+      // console.log(JSON.stringify(this.data))
28
+    })
27
   },
29
   },
28
   methods: {
30
   methods: {
29
   }
31
   }

+ 1
- 1
src/components/histogram/index.vue View File

32
         width: _that.$refs.box.clientWidth,
32
         width: _that.$refs.box.clientWidth,
33
         height: 400
33
         height: 400
34
       })
34
       })
35
-      chart.source(_that.data.list)
35
+      chart.source(_that.data.value)
36
       chart.scale('y', {
36
       chart.scale('y', {
37
         tickInterval: 20
37
         tickInterval: 20
38
       })
38
       })

+ 2
- 1
src/components/pieDiagram/index.vue View File

20
   },
20
   },
21
   mounted () {
21
   mounted () {
22
     this.$nextTick(function () {
22
     this.$nextTick(function () {
23
+      // console.log(JSON.stringify(this.data))
23
       this.init()
24
       this.init()
24
     })
25
     })
25
   },
26
   },
32
         width: _that.$refs.box.clientWidth,
33
         width: _that.$refs.box.clientWidth,
33
         height: 400
34
         height: 400
34
       })
35
       })
35
-      chart.source(_that.data.list, {
36
+      chart.source(_that.data.value, {
36
         percent: {
37
         percent: {
37
           formatter: function formatter (val) {
38
           formatter: function formatter (val) {
38
             val = val * 100 + '%'
39
             val = val * 100 + '%'

+ 4
- 4
src/components/ringChart/index.vue View File

32
         width: _that.$refs.box.clientWidth,
32
         width: _that.$refs.box.clientWidth,
33
         height: 400
33
         height: 400
34
       })
34
       })
35
-      chart.source(_that.data.list, {
35
+      chart.source(_that.data.value, {
36
         percent: {
36
         percent: {
37
           formatter: function formatter (val) {
37
           formatter: function formatter (val) {
38
             val = val * 100 + '%'
38
             val = val * 100 + '%'
49
         itemTpl: '<li><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</li>'
49
         itemTpl: '<li><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</li>'
50
       })
50
       })
51
       var num = 0
51
       var num = 0
52
-      for (var n = 0; n < _that.data.list.length; n++) {
53
-        num += _that.data.list[n].count
52
+      for (var n = 0; n < _that.data.value.length; n++) {
53
+        num += _that.data.value[n].count
54
       }
54
       }
55
       // 辅助文本
55
       // 辅助文本
56
       chart.guide().html({
56
       chart.guide().html({
74
         stroke: '#fff'
74
         stroke: '#fff'
75
       })
75
       })
76
       chart.render()
76
       chart.render()
77
-      interval.setSelected(_that.data.list[0])
77
+      interval.setSelected(_that.data.value[0])
78
     },
78
     },
79
   }
79
   }
80
 }
80
 }

+ 3
- 2
src/pages/system/cardAndCouponManager/bodyBuildingCardManager/edit.vue View File

120
             <div>
120
             <div>
121
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
121
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
122
                 <el-date-picker
122
                 <el-date-picker
123
+                  value-format="yyyy-MM-dd 00:00:00"
123
                   v-model="cardInfo.StartDate"
124
                   v-model="cardInfo.StartDate"
124
                   type="date"
125
                   type="date"
125
                   placeholder="选择起始日期"
126
                   placeholder="选择起始日期"
127
                 </el-date-picker>
128
                 </el-date-picker>
128
                 <span style="line-height:40px;">至</span>
129
                 <span style="line-height:40px;">至</span>
129
                 <el-date-picker
130
                 <el-date-picker
131
+                  value-format="yyyy-MM-dd 23:59:59"
130
                   v-model="cardInfo.EndDate"
132
                   v-model="cardInfo.EndDate"
131
                   type="date"
133
                   type="date"
132
                   placeholder="选择截止日期"
134
                   placeholder="选择截止日期"
294
       this.cardInfo.ChannelId = ''
296
       this.cardInfo.ChannelId = ''
295
     },
297
     },
296
     submit () { // 保存
298
     submit () { // 保存
299
+      // console.log(this.cardInfo.StartDate)
297
       if (this.$route.query.id) {
300
       if (this.$route.query.id) {
298
         this.cardInfo.TotalCount = this.cardInfo.TotalCount - 0
301
         this.cardInfo.TotalCount = this.cardInfo.TotalCount - 0
299
-        console.log(JSON.stringify(this.cardInfo))
300
         this.editGymCard(this.cardInfo).then((res) => {
302
         this.editGymCard(this.cardInfo).then((res) => {
301
           this.$alert('操作成功', '提示', {
303
           this.$alert('操作成功', '提示', {
302
             confirmButtonText: '确定',
304
             confirmButtonText: '确定',
308
       } else {
310
       } else {
309
         this.cardInfo.OrgId = this.OrgId
311
         this.cardInfo.OrgId = this.OrgId
310
         this.cardInfo.TotalCount = this.cardInfo.TotalCount - 0
312
         this.cardInfo.TotalCount = this.cardInfo.TotalCount - 0
311
-        console.log(JSON.stringify(this.cardInfo))
312
         this.addGymCard(this.cardInfo).then((res) => {
313
         this.addGymCard(this.cardInfo).then((res) => {
313
           this.$alert('操作成功', '提示', {
314
           this.$alert('操作成功', '提示', {
314
             confirmButtonText: '确定',
315
             confirmButtonText: '确定',

+ 2
- 0
src/pages/system/cardAndCouponManager/bodyBuildingCardManager/index.vue View File

135
         <ul class="dialogSearchList flex-h">
135
         <ul class="dialogSearchList flex-h">
136
           <li class="flex-item">
136
           <li class="flex-item">
137
             <el-date-picker
137
             <el-date-picker
138
+              value-format="yyyy-MM-dd 00:00:00"
138
               v-model="dialogPostData.begindate"
139
               v-model="dialogPostData.begindate"
139
               type="date"
140
               type="date"
140
               placeholder="选择起始日期">
141
               placeholder="选择起始日期">
141
             </el-date-picker>
142
             </el-date-picker>
142
             <el-date-picker
143
             <el-date-picker
144
+              value-format="yyyy-MM-dd 23:59:59"
143
               v-model="dialogPostData.enddate"
145
               v-model="dialogPostData.enddate"
144
               type="date"
146
               type="date"
145
               placeholder="选择截止日期">
147
               placeholder="选择截止日期">

+ 67
- 33
src/pages/system/cardAndCouponManager/cardManager/edit.vue View File

6
           <span>选择案场:<em>*</em></span>
6
           <span>选择案场:<em>*</em></span>
7
           <div class="flex-item">
7
           <div class="flex-item">
8
             <div style="width:50%">
8
             <div style="width:50%">
9
-              <el-select v-model="cardInfo.CaseId" placeholder="请选择" @change="caseChange">
9
+              <el-select v-model="cardInfo.CaseId" placeholder="请选择" @change="caseChange" :disabled="isEdit">
10
                 <el-option
10
                 <el-option
11
                   v-for="item in cases"
11
                   v-for="item in cases"
12
                   :key="item.CaseId"
12
                   :key="item.CaseId"
22
           <div class="flex-item">
22
           <div class="flex-item">
23
             <div>
23
             <div>
24
               <el-upload
24
               <el-upload
25
+                :disabled="isEdit"
25
                 class="avatar-uploader"
26
                 class="avatar-uploader"
26
                 action='string'
27
                 action='string'
27
                 :http-request="toolClass.upload"
28
                 :http-request="toolClass.upload"
50
           <div class="flex-item">
51
           <div class="flex-item">
51
             <div style="width:200px;">
52
             <div style="width:200px;">
52
               <el-input
53
               <el-input
54
+                :disabled="isEdit"
53
                 placeholder="请输入"
55
                 placeholder="请输入"
54
                 v-model="cardInfo.Price"
56
                 v-model="cardInfo.Price"
55
                 clearable>
57
                 clearable>
62
           <div class="flex-item">
64
           <div class="flex-item">
63
             <div style="width:200px;">
65
             <div style="width:200px;">
64
               <el-input
66
               <el-input
67
+                :disabled="isEdit"
65
                 placeholder="请输入"
68
                 placeholder="请输入"
66
                 v-model="cardInfo.TotalCount"
69
                 v-model="cardInfo.TotalCount"
67
                 clearable>
70
                 clearable>
73
           <span>发送类型:<em>*</em></span>
76
           <span>发送类型:<em>*</em></span>
74
           <div class="flex-item">
77
           <div class="flex-item">
75
             <div>
78
             <div>
76
-              <el-radio v-model="cardInfo.SendType" label="channel">渠道</el-radio>
77
-              <el-radio v-model="cardInfo.SendType" label="case">案场</el-radio>
78
-              <el-radio v-model="cardInfo.SendType" label="system">系统</el-radio>
79
+              <el-radio v-model="cardInfo.SendType" label="channel" :disabled="isEdit">渠道</el-radio>
80
+              <el-radio v-model="cardInfo.SendType" label="case" :disabled="isEdit">案场</el-radio>
81
+              <el-radio v-model="cardInfo.SendType" label="system" :disabled="isEdit">系统</el-radio>
79
             </div>
82
             </div>
80
           </div>
83
           </div>
81
         </li>
84
         </li>
83
           <span>选择渠道:<em>*</em></span>
86
           <span>选择渠道:<em>*</em></span>
84
           <div class="flex-item">
87
           <div class="flex-item">
85
             <div style="width:50%">
88
             <div style="width:50%">
86
-              <el-select v-model="cardInfo.ChannelId" placeholder="请选择">
89
+              <el-select v-model="cardInfo.ChannelId" placeholder="请选择" :disabled="isEdit">
87
                 <el-option
90
                 <el-option
88
                   v-for="item in channelList"
91
                   v-for="item in channelList"
89
                   :key="item.ChannelId"
92
                   :key="item.ChannelId"
98
           <span>目标课程:<em>*</em></span>
101
           <span>目标课程:<em>*</em></span>
99
           <div class="flex-item">
102
           <div class="flex-item">
100
             <div>
103
             <div>
101
-              <el-select v-model="cardInfo.Targets[0].TargetId" placeholder="请选择">
104
+              <el-select v-model="cardInfo.Targets[0].TargetId" placeholder="请选择" :disabled="isEdit">
102
                 <el-option
105
                 <el-option
103
                   v-for="item in courseList"
106
                   v-for="item in courseList"
104
                   :key="item.CourseId"
107
                   :key="item.CourseId"
116
             <div>
119
             <div>
117
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
120
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
118
                 <el-date-picker
121
                 <el-date-picker
119
-                  v-model="date"
120
-                  type="daterange"
121
-                  range-separator="至"
122
-                  start-placeholder="开始日期"
123
-                  end-placeholder="结束日期">
122
+                  value-format="yyyy-MM-dd 00:00:00"
123
+                  :disabled="isEdit"
124
+                  v-model="cardInfo.StartDate"
125
+                  type="date"
126
+                  placeholder="选择起始日期">
127
+                </el-date-picker>
128
+                <span style="line-height:40px;">至</span>
129
+                <el-date-picker
130
+                  value-format="yyyy-MM-dd 23:59:59"
131
+                  :disabled="isEdit"
132
+                  v-model="cardInfo.EndDate"
133
+                  type="date"
134
+                  placeholder="选择截止日期">
124
                 </el-date-picker>
135
                 </el-date-picker>
125
               </div>
136
               </div>
126
             </div>
137
             </div>
132
             <div style="vertical-align: middle;">
143
             <div style="vertical-align: middle;">
133
               <a style="line-height: 40px;" v-if="videoOff" :href="cardInfo.VideoUrl" target="blank">{{cardInfo.VideoUrl}}</a>
144
               <a style="line-height: 40px;" v-if="videoOff" :href="cardInfo.VideoUrl" target="blank">{{cardInfo.VideoUrl}}</a>
134
               <el-upload
145
               <el-upload
146
+                :disabled="isEdit"
135
                 class="avatar-uploader"
147
                 class="avatar-uploader"
136
                 action='string'
148
                 action='string'
137
                 :http-request="toolClass.upload"
149
                 :http-request="toolClass.upload"
206
       videoOff: false,
218
       videoOff: false,
207
       total: 0,
219
       total: 0,
208
       type: this.$route.query.type,
220
       type: this.$route.query.type,
209
-      isEdit: this.$route.query.id === undefined ? 0 : 1,
221
+      isEdit: !!this.$route.query.id,
210
       ChannelList: [], // 渠道列表
222
       ChannelList: [], // 渠道列表
211
       TypeList: [], // 类型列表
223
       TypeList: [], // 类型列表
212
       GoodsList: [], // 商品列表
224
       GoodsList: [], // 商品列表
246
         page: 1,
258
         page: 1,
247
         pagesize: 10000
259
         pagesize: 10000
248
       }).then(() => {
260
       }).then(() => {
249
-        this.GetCourseList({
261
+        this.getCourseLister({
250
           caseid: this.defaultCaseId,
262
           caseid: this.defaultCaseId,
251
           page: 1,
263
           page: 1,
252
           pagesize: 10000
264
           pagesize: 10000
256
             this.getCardById({
268
             this.getCardById({
257
               id: this.$route.query.id
269
               id: this.$route.query.id
258
             }).then((res) => {
270
             }).then((res) => {
259
-              // console.log(JSON.stringify(res.Card))
260
-              this.cardInfo = res.Card
261
-              if (res.Card.VideoUrl) {
262
-                this.videoOff = true
263
-              }
264
-              if (res.Card.Images === null) {
265
-                this.cardInfo.Images = [{
266
-                  CardImageUrl: ''
267
-                }]
268
-              }
269
-              if (res.Card.StartDate) {
270
-                this.date = [res.Card.StartDate, res.Card.EndDate]
271
+              if (res.Card.CaseId !== '') {
272
+                var aRes = res
273
+                this.GetChannelListList({
274
+                  caseid: res.Card.CaseId,
275
+                  page: 1,
276
+                  pagesize: 10000
277
+                }).then((res) => {
278
+                  this.cardInfo = aRes.Card
279
+                  if (aRes.Card.VideoUrl) {
280
+                    this.videoOff = true
281
+                  }
282
+                  if (aRes.Card.Images === null) {
283
+                    this.cardInfo.Images = [{
284
+                      CardImageUrl: ''
285
+                    }]
286
+                  }
287
+                  if (aRes.Card.StartDate) {
288
+                    this.date = [aRes.Card.StartDate, aRes.Card.EndDate]
289
+                  }
290
+                })
291
+              } else {
292
+                this.cardInfo = res.Card
293
+                if (res.Card.VideoUrl) {
294
+                  this.videoOff = true
295
+                }
296
+                if (res.Card.Images === null) {
297
+                  this.cardInfo.Images = [{
298
+                    CardImageUrl: ''
299
+                  }]
300
+                }
301
+                if (res.Card.StartDate) {
302
+                  this.date = [res.Card.StartDate, res.Card.EndDate]
303
+                }
271
               }
304
               }
272
             })
305
             })
273
           }
306
           }
438
       return true
471
       return true
439
     },
472
     },
440
     submit () { // 保存
473
     submit () { // 保存
474
+      console.log(this.cardInfo.StartDate, this.cardInfo.EndDate)
441
       if (this.$route.query.id) {
475
       if (this.$route.query.id) {
442
-        if (this.date !== '') {
443
-          this.cardInfo.StartDate = this.date[0]
444
-          this.cardInfo.EndDate = this.date[1]
445
-        }
476
+        // if (this.date !== '') {
477
+        //   this.cardInfo.StartDate = this.date[0]
478
+        //   this.cardInfo.EndDate = this.date[1]
479
+        // }
446
         this.courseList = this.courseList || []
480
         this.courseList = this.courseList || []
447
         for (var x = 0; x < this.courseList.length; x++) {
481
         for (var x = 0; x < this.courseList.length; x++) {
448
           if (this.courseList[x].CourseId === this.cardInfo.Targets[0].TargetId) {
482
           if (this.courseList[x].CourseId === this.cardInfo.Targets[0].TargetId) {
463
         })
497
         })
464
       } else {
498
       } else {
465
         this.cardInfo.OrgId = this.OrgId
499
         this.cardInfo.OrgId = this.OrgId
466
-        if (this.date !== '') {
467
-          this.cardInfo.StartDate = this.date[0]
468
-          this.cardInfo.EndDate = this.date[1]
469
-        }
500
+        // if (this.date !== '') {
501
+        //   this.cardInfo.StartDate = this.date[0]
502
+        //   this.cardInfo.EndDate = this.date[1]
503
+        // }
470
         this.courseList = this.courseList || []
504
         this.courseList = this.courseList || []
471
         for (var n = 0; n < this.courseList.length; n++) {
505
         for (var n = 0; n < this.courseList.length; n++) {
472
           if (this.courseList[n].CourseId === this.cardInfo.Targets[0].TargetId) {
506
           if (this.courseList[n].CourseId === this.cardInfo.Targets[0].TargetId) {

+ 12
- 6
src/pages/system/cardAndCouponManager/cardManager/index.vue View File

46
           label="有效期"
46
           label="有效期"
47
           width="150">
47
           width="150">
48
           <template slot-scope="scope">
48
           <template slot-scope="scope">
49
-            <span style="width:100%;display:block;text-align:center;white-space: nowrap;">{{toolClass.dateFormat(scope.row.StartDate)}}</span>
49
+            <span style="width:100%;display:block;text-align:center;white-space: nowrap;">{{toolClass.dateFormat(scope.row.StartDate, 'yyyy-MM-dd')}}</span>
50
             <span style="width:100%;display:block;text-align:center;white-space: nowrap;">至</span>
50
             <span style="width:100%;display:block;text-align:center;white-space: nowrap;">至</span>
51
-            <span style="width:100%;display:block;text-align:center;white-space: nowrap;">{{toolClass.dateFormat(scope.row.EndDate)}}</span>
51
+            <span style="width:100%;display:block;text-align:center;white-space: nowrap;">{{toolClass.dateFormat(scope.row.EndDate, 'yyyy-MM-dd')}}</span>
52
           </template>
52
           </template>
53
         </el-table-column>
53
         </el-table-column>
54
         <el-table-column
54
         <el-table-column
91
               size="mini"
91
               size="mini"
92
               type="success"
92
               type="success"
93
               v-if="scope.row.SendType === 'channel'"
93
               v-if="scope.row.SendType === 'channel'"
94
-              v-clipboard:copy="clientUrl + '/receiveChannelShared/' + scope.row.CardId + '/card/receive'"
94
+              v-clipboard:copy="clientUrl + '/user.html#/receiveChannelShared/' + scope.row.CardId + '/card/receive'"
95
               v-clipboard:success="onCopy"
95
               v-clipboard:success="onCopy"
96
               v-clipboard:error="onError"
96
               v-clipboard:error="onError"
97
               >点击复制链接</el-button>
97
               >点击复制链接</el-button>
141
         <ul class="dialogSearchList flex-h">
141
         <ul class="dialogSearchList flex-h">
142
           <li class="flex-item">
142
           <li class="flex-item">
143
             <el-date-picker
143
             <el-date-picker
144
+              value-format="yyyy-MM-dd 00:00:00"
144
               v-model="dialogPostData.begindate"
145
               v-model="dialogPostData.begindate"
145
               type="date"
146
               type="date"
146
               placeholder="选择起始日期">
147
               placeholder="选择起始日期">
147
             </el-date-picker>
148
             </el-date-picker>
148
             <el-date-picker
149
             <el-date-picker
150
+              value-format="yyyy-MM-dd 23:59:59"
149
               v-model="dialogPostData.enddate"
151
               v-model="dialogPostData.enddate"
150
               type="date"
152
               type="date"
151
               placeholder="选择截止日期">
153
               placeholder="选择截止日期">
243
         begindate: '',
245
         begindate: '',
244
         enddate: '',
246
         enddate: '',
245
         page: 1, // 当前页码
247
         page: 1, // 当前页码
246
-        pagesize: 10, // 请求数据量
248
+        pagesize: 6, // 请求数据量
247
       },
249
       },
248
       customerList: [],
250
       customerList: [],
249
       centerDialogVisible: false,
251
       centerDialogVisible: false,
305
       this.$router.push({ name: 'givingRecords' })
307
       this.$router.push({ name: 'givingRecords' })
306
     },
308
     },
307
     dialogSearch () { // 赠送客户搜索
309
     dialogSearch () { // 赠送客户搜索
308
-      this.GetCustomerList(this.dialogPostData)
310
+      this.GetCustomerList(this.dialogPostData).then((res) => {
311
+        this.dialogTotal = res.pagenum
312
+      })
309
     },
313
     },
310
     handleCurrentChangeDialog (val) {
314
     handleCurrentChangeDialog (val) {
311
       this.dialogPostData.page = val
315
       this.dialogPostData.page = val
312
-      this.GetCustomerList(this.dialogPostData)
316
+      this.GetCustomerList(this.dialogPostData).then((res) => {
317
+        this.dialogTotal = res.pagenum
318
+      })
313
     },
319
     },
314
     handleSelectionChange (val) {
320
     handleSelectionChange (val) {
315
       // console.log(val)
321
       // console.log(val)

+ 47
- 19
src/pages/system/cardAndCouponManager/couponManager/edit.vue View File

7
           <span>选择案场:<em>*</em></span>
7
           <span>选择案场:<em>*</em></span>
8
           <div class="flex-item">
8
           <div class="flex-item">
9
             <div style="width:50%">
9
             <div style="width:50%">
10
-              <el-select v-model="couponInfo.CaseId" placeholder="请选择" @change="caseChange">
10
+              <el-select v-model="couponInfo.CaseId" placeholder="请选择" @change="caseChange" :disabled="isEdit">
11
                 <el-option
11
                 <el-option
12
                   v-for="item in cases"
12
                   v-for="item in cases"
13
                   :key="item.CaseId"
13
                   :key="item.CaseId"
23
           <div class="flex-item">
23
           <div class="flex-item">
24
             <div>
24
             <div>
25
               <el-upload
25
               <el-upload
26
+                :disabled="isEdit"
26
                 class="avatar-uploader"
27
                 class="avatar-uploader"
27
                 action='string'
28
                 action='string'
28
                 :http-request="toolClass.upload"
29
                 :http-request="toolClass.upload"
50
           <span>券类型:<em>*</em></span>
51
           <span>券类型:<em>*</em></span>
51
           <div class="flex-item">
52
           <div class="flex-item">
52
             <div style="width:50%">
53
             <div style="width:50%">
53
-              <el-select v-model="couponInfo.CouponType" placeholder="请选择" @change="couponTypeChange">
54
+              <el-select v-model="couponInfo.CouponType" placeholder="请选择" @change="couponTypeChange" :disabled="isEdit">
54
                 <el-option
55
                 <el-option
55
                   v-for="item in TypeList"
56
                   v-for="item in TypeList"
56
                   :key="item.id"
57
                   :key="item.id"
66
           <div class="flex-item">
67
           <div class="flex-item">
67
             <div style="width:200px;">
68
             <div style="width:200px;">
68
               <el-input
69
               <el-input
70
+                :disabled="isEdit"
69
                 placeholder="请输入"
71
                 placeholder="请输入"
70
                 v-model="couponInfo.Price"
72
                 v-model="couponInfo.Price"
71
                 clearable>
73
                 clearable>
78
           <div class="flex-item">
80
           <div class="flex-item">
79
             <div style="width:200px;">
81
             <div style="width:200px;">
80
               <el-input
82
               <el-input
83
+                :disabled="isEdit"
81
                 placeholder="请输入"
84
                 placeholder="请输入"
82
                 v-model="couponInfo.TotalCount"
85
                 v-model="couponInfo.TotalCount"
83
                 clearable>
86
                 clearable>
89
           <span>发送类型:<em>*</em></span>
92
           <span>发送类型:<em>*</em></span>
90
           <div class="flex-item">
93
           <div class="flex-item">
91
             <div>
94
             <div>
92
-              <el-radio v-model="couponInfo.SendType" label="channel">渠道</el-radio>
93
-              <el-radio v-if="couponInfo.CouponType === 'course'" v-model="couponInfo.SendType" label="case">案场</el-radio>
94
-              <el-radio v-model="couponInfo.SendType" label="system">系统</el-radio>
95
+              <el-radio v-model="couponInfo.SendType" label="channel" :disabled="isEdit">渠道</el-radio>
96
+              <el-radio v-if="couponInfo.CouponType === 'course'" v-model="couponInfo.SendType" label="case" :disabled="isEdit">案场</el-radio>
97
+              <el-radio v-model="couponInfo.SendType" label="system" :disabled="isEdit">系统</el-radio>
95
             </div>
98
             </div>
96
           </div>
99
           </div>
97
         </li>
100
         </li>
99
           <span>选择渠道:<em>*</em></span>
102
           <span>选择渠道:<em>*</em></span>
100
           <div class="flex-item">
103
           <div class="flex-item">
101
             <div style="width:50%">
104
             <div style="width:50%">
102
-              <el-select v-model="couponInfo.ChannelId" placeholder="请选择">
105
+              <el-select v-model="couponInfo.ChannelId" placeholder="请选择" :disabled="isEdit">
103
                 <el-option
106
                 <el-option
104
                   v-for="item in channelList"
107
                   v-for="item in channelList"
105
                   :key="item.ChannelId"
108
                   :key="item.ChannelId"
114
           <span>目标商品:<em>*</em></span>
117
           <span>目标商品:<em>*</em></span>
115
           <div class="flex-item">
118
           <div class="flex-item">
116
             <div>
119
             <div>
117
-              <el-radio v-model="couponInfo.IsAll" label="1">全部商品</el-radio>
118
-              <el-radio v-model="couponInfo.IsAll" label="0">指定商品</el-radio>
120
+              <el-radio v-model="couponInfo.IsAll" label="1" :disabled="isEdit">全部商品</el-radio>
121
+              <el-radio v-model="couponInfo.IsAll" label="0" :disabled="isEdit">指定商品</el-radio>
119
             </div>
122
             </div>
120
           </div>
123
           </div>
121
         </li>
124
         </li>
142
                     <el-button
145
                     <el-button
143
                       size="mini"
146
                       size="mini"
144
                       type="warning"
147
                       type="warning"
145
-                      @click="deleteGoodsItem(scope.$index, scope.row)">删除</el-button>
148
+                      @click="deleteGoodsItem(scope.$index, scope.row)" :disabled="isEdit">删除</el-button>
146
                   </template>
149
                   </template>
147
                 </el-table-column>
150
                 </el-table-column>
148
               </el-table>
151
               </el-table>
149
               <div style="text-align:center;padding:10px 0;">
152
               <div style="text-align:center;padding:10px 0;">
150
-                <el-button type="success" size="mini" @click="addGoods">添加商品</el-button>
153
+                <el-button type="success" size="mini" @click="addGoods" :disabled="isEdit">添加商品</el-button>
151
               </div>
154
               </div>
152
             </div>
155
             </div>
153
           </div>
156
           </div>
157
           <div class="flex-item">
160
           <div class="flex-item">
158
             <div>
161
             <div>
159
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
162
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
160
-                <el-radio v-model="postData.TimeType" label="1">固定时间</el-radio>
163
+                <el-radio v-model="postData.TimeType" label="1" :disabled="isEdit">固定时间</el-radio>
161
                 <el-date-picker
164
                 <el-date-picker
165
+                  value-format="yyyy-MM-dd 00:00:00"
166
+                  :disabled="isEdit"
162
                   v-model="couponInfo.StartDate"
167
                   v-model="couponInfo.StartDate"
163
                   type="date"
168
                   type="date"
164
                   placeholder="选择起始日期">
169
                   placeholder="选择起始日期">
165
                 </el-date-picker>
170
                 </el-date-picker>
166
                 <span style="line-height:40px;">至</span>
171
                 <span style="line-height:40px;">至</span>
167
                 <el-date-picker
172
                 <el-date-picker
173
+                  value-format="yyyy-MM-dd 23:59:59"
174
+                  :disabled="isEdit"
168
                   v-model="couponInfo.EndDate"
175
                   v-model="couponInfo.EndDate"
169
                   type="date"
176
                   type="date"
170
                   placeholder="选择截止日期">
177
                   placeholder="选择截止日期">
171
                 </el-date-picker>
178
                 </el-date-picker>
172
               </div>
179
               </div>
173
               <div class="addLine flex-h" style="align-item:center;">
180
               <div class="addLine flex-h" style="align-item:center;">
174
-                <el-radio v-model="postData.TimeType" label="2">领取后</el-radio>
181
+                <el-radio v-model="postData.TimeType" label="2" :disabled="isEdit">领取后</el-radio>
175
                 <span style="width:100px;">
182
                 <span style="width:100px;">
176
                   <el-input
183
                   <el-input
184
+                    :disabled="isEdit"
177
                     placeholder="请输入"
185
                     placeholder="请输入"
178
                     v-model="couponInfo.ValidDays"
186
                     v-model="couponInfo.ValidDays"
179
                     clearable>
187
                     clearable>
189
           <div class="flex-item">
197
           <div class="flex-item">
190
             <div>
198
             <div>
191
               <el-date-picker
199
               <el-date-picker
200
+                value-format="yyyy-MM-dd 00:00:00"
201
+                :disabled="isEdit"
192
                 v-model="couponInfo.StartDate"
202
                 v-model="couponInfo.StartDate"
193
                 type="date"
203
                 type="date"
194
                 placeholder="选择起始日期">
204
                 placeholder="选择起始日期">
195
               </el-date-picker>
205
               </el-date-picker>
196
               <span style="line-height:40px;">至</span>
206
               <span style="line-height:40px;">至</span>
197
               <el-date-picker
207
               <el-date-picker
208
+                value-format="yyyy-MM-dd 23:59:59"
209
+                :disabled="isEdit"
198
                 v-model="couponInfo.EndDate"
210
                 v-model="couponInfo.EndDate"
199
                 type="date"
211
                 type="date"
200
                 placeholder="选择截止日期">
212
                 placeholder="选择截止日期">
208
             <div style="vertical-align: middle;">
220
             <div style="vertical-align: middle;">
209
               <a style="line-height: 40px;" v-if="videoOff" :href="couponInfo.VideoUrl" target="blank">{{couponInfo.VideoUrl}}</a>
221
               <a style="line-height: 40px;" v-if="videoOff" :href="couponInfo.VideoUrl" target="blank">{{couponInfo.VideoUrl}}</a>
210
               <el-upload
222
               <el-upload
223
+                :disabled="isEdit"
211
                 class="avatar-uploader"
224
                 class="avatar-uploader"
212
                 action='string'
225
                 action='string'
213
                 :http-request="toolClass.upload"
226
                 :http-request="toolClass.upload"
214
                 :show-file-list="false"
227
                 :show-file-list="false"
215
                 :on-success="videoSuccess">
228
                 :on-success="videoSuccess">
216
-                <a style="line-height: 40px;padding: 0 10px;">{{videoOff ? '更换' : '添加'}}视频</a>
229
+                <a style="line-height: 40px;padding: 0 10px;" :disabled="isEdit">{{videoOff ? '更换' : '添加'}}视频</a>
217
               </el-upload>
230
               </el-upload>
218
-              <el-button v-if="videoOff" type="danger" @click="deleteVideo">删除视频</el-button>
231
+              <el-button v-if="videoOff" type="danger" @click="deleteVideo" :disabled="isEdit">删除视频</el-button>
219
             </div>
232
             </div>
220
           </div>
233
           </div>
221
         </li>
234
         </li>
373
       total: 0,
386
       total: 0,
374
       centerDialogVisible: false,
387
       centerDialogVisible: false,
375
       type: this.$route.query.type || '', // goods、course
388
       type: this.$route.query.type || '', // goods、course
376
-      isEdit: this.$route.query.id === undefined ? 0 : 1,
389
+      isEdit: !!this.$route.query.id,
377
       ChannelList: [], // 渠道列表
390
       ChannelList: [], // 渠道列表
378
       TypeList: [{ // 类型列表
391
       TypeList: [{ // 类型列表
379
         value: '商品券',
392
         value: '商品券',
429
               id: this.$route.query.id
442
               id: this.$route.query.id
430
             }).then((res) => {
443
             }).then((res) => {
431
               // console.log(JSON.stringify(res))
444
               // console.log(JSON.stringify(res))
432
-              res.coupon.IsAll = String(res.coupon.IsAll)
433
-              if (res.coupon.VideoUrl !== '') {
434
-                this.videoOff = true
445
+              if (res.coupon.CaseId !== '') {
446
+                var aRes = res
447
+                this.GetChannelListList({
448
+                  caseid: res.coupon.CaseId,
449
+                  page: 1,
450
+                  pagesize: 10000
451
+                }).then((res) => {
452
+                  aRes.coupon.IsAll = String(aRes.coupon.IsAll)
453
+                  if (aRes.coupon.VideoUrl !== '') {
454
+                    this.videoOff = true
455
+                  }
456
+                  this.couponInfo = aRes.coupon
457
+                })
458
+              } else {
459
+                res.coupon.IsAll = String(res.coupon.IsAll)
460
+                if (res.coupon.VideoUrl !== '') {
461
+                  this.videoOff = true
462
+                }
463
+                this.couponInfo = res.coupon
435
               }
464
               }
436
-              this.couponInfo = res.coupon
437
             })
465
             })
438
           }
466
           }
439
         })
467
         })

+ 10
- 15
src/pages/system/cardAndCouponManager/couponManager/index.vue View File

4
       <div class="flex-h">
4
       <div class="flex-h">
5
         <div class="flex-item flex-h">
5
         <div class="flex-item flex-h">
6
           <el-button size="mini" type="success" @click="addCoupon('')">新增优惠券</el-button>
6
           <el-button size="mini" type="success" @click="addCoupon('')">新增优惠券</el-button>
7
-          <!-- <el-button size="mini" type="success" @click="addCoupon('drink')">新增饮品优惠券</el-button>
8
-          <el-button size="mini" type="success" @click="addCoupon('course')">新增课程优惠券</el-button> -->
9
         </div>
7
         </div>
10
         <ul>
8
         <ul>
11
           <li>
9
           <li>
12
-            <!-- <span>选择案场:</span> -->
13
             <el-select v-model="CaseId" placeholder="请选择案场">
10
             <el-select v-model="CaseId" placeholder="请选择案场">
14
               <el-option
11
               <el-option
15
                 v-for="item in cases"
12
                 v-for="item in cases"
64
           prop="TotalCount"
61
           prop="TotalCount"
65
           label="总数量">
62
           label="总数量">
66
         </el-table-column>
63
         </el-table-column>
67
-        <!-- <el-table-column
68
-          prop="SentCount"
69
-          label="已发">
70
-        </el-table-column>
71
-        <el-table-column
72
-          prop="UsedCount"
73
-          label="实际使用">
74
-        </el-table-column> -->
75
         <el-table-column
64
         <el-table-column
76
           prop="Status"
65
           prop="Status"
77
           label="状态">
66
           label="状态">
93
               size="mini"
82
               size="mini"
94
               type="success"
83
               type="success"
95
               v-if="scope.row.SendType === 'channel'"
84
               v-if="scope.row.SendType === 'channel'"
96
-              v-clipboard:copy="clientUrl + '/receiveChannelShared/' + scope.row.CouponId + '/coupon/receive'"
85
+              v-clipboard:copy="clientUrl + '/user.html#/receiveChannelShared/' + scope.row.CouponId + '/coupon/receive'"
97
               v-clipboard:success="onCopy"
86
               v-clipboard:success="onCopy"
98
               v-clipboard:error="onError"
87
               v-clipboard:error="onError"
99
               >点击复制链接</el-button>
88
               >点击复制链接</el-button>
143
         <ul class="dialogSearchList flex-h">
132
         <ul class="dialogSearchList flex-h">
144
           <li class="flex-item">
133
           <li class="flex-item">
145
             <el-date-picker
134
             <el-date-picker
135
+              value-format="yyyy-MM-dd 00:00:00"
146
               v-model="dialogPostData.begindate"
136
               v-model="dialogPostData.begindate"
147
               type="date"
137
               type="date"
148
               placeholder="选择起始日期">
138
               placeholder="选择起始日期">
149
             </el-date-picker>
139
             </el-date-picker>
150
             <el-date-picker
140
             <el-date-picker
141
+              value-format="yyyy-MM-dd 23:59:59"
151
               v-model="dialogPostData.enddate"
142
               v-model="dialogPostData.enddate"
152
               type="date"
143
               type="date"
153
               placeholder="选择截止日期">
144
               placeholder="选择截止日期">
273
       'SetCustomerListNull',
264
       'SetCustomerListNull',
274
     ]),
265
     ]),
275
     dialogSearch () { // 赠送客户搜索
266
     dialogSearch () { // 赠送客户搜索
276
-      this.GetCustomerList(this.dialogPostData)
277
-      // 1
267
+      this.GetCustomerList(this.dialogPostData).then((res) => {
268
+        this.dialogTotal = res.pagenum
269
+      })
278
     },
270
     },
279
     handleCurrentChangeDialog (val) {
271
     handleCurrentChangeDialog (val) {
280
-      // 1
272
+      this.dialogPostData.page = val
273
+      this.GetCustomerList(this.dialogPostData).then((res) => {
274
+        this.dialogTotal = res.pagenum
275
+      })
281
     },
276
     },
282
     handleSelectionChange (val) {
277
     handleSelectionChange (val) {
283
       this.selUsers = val.map(x => x.CustomerId).join(',')
278
       this.selUsers = val.map(x => x.CustomerId).join(',')

+ 2
- 2
src/pages/system/cardAndCouponManager/givingRecords.vue View File

13
           </li>
13
           </li>
14
           <li>
14
           <li>
15
             <el-date-picker
15
             <el-date-picker
16
+              value-format="yyyy-MM-dd 00:00:00"
16
               v-model="postData.startDate"
17
               v-model="postData.startDate"
17
               type="date"
18
               type="date"
18
-              value-format="yyyy-MM-dd"
19
               placeholder="选择起始日期">
19
               placeholder="选择起始日期">
20
             </el-date-picker>
20
             </el-date-picker>
21
             <span>至</span>
21
             <span>至</span>
22
             <el-date-picker
22
             <el-date-picker
23
+              value-format="yyyy-MM-dd 23:59:59"
23
               v-model="postData.endDate"
24
               v-model="postData.endDate"
24
               type="date"
25
               type="date"
25
-              value-format="yyyy-MM-dd"
26
               placeholder="选择截止日期">
26
               placeholder="选择截止日期">
27
             </el-date-picker>
27
             </el-date-picker>
28
           </li>
28
           </li>

+ 3
- 3
src/pages/system/cardAndCouponManager/vipManager/index.vue View File

7
           <li>
7
           <li>
8
             <el-select v-model="CaseId" placeholder="请选择">
8
             <el-select v-model="CaseId" placeholder="请选择">
9
               <el-option
9
               <el-option
10
-                key=""
10
+                key="all"
11
                 label="所有案场"
11
                 label="所有案场"
12
-                value="">
12
+                value="all">
13
               </el-option>
13
               </el-option>
14
               <el-option
14
               <el-option
15
                 v-for="item in cases"
15
                 v-for="item in cases"
166
       this.getList()
166
       this.getList()
167
     },
167
     },
168
     getList () { // 获取列表
168
     getList () { // 获取列表
169
-      this.GetVipList({...this.postData, caseid: this.CaseId})
169
+      this.GetVipList({ ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId })
170
     },
170
     },
171
     handleCurrentChange (val) { // 跳转到分页
171
     handleCurrentChange (val) { // 跳转到分页
172
       this.postData.page = val
172
       this.postData.page = val

+ 3
- 3
src/pages/system/caseManager/caseAreaManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
133
     getList () { // 获取列表
133
     getList () { // 获取列表
134
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
134
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
135
         method: this.$api.caseManager.getCaseAreaList.method,
135
         method: this.$api.caseManager.getCaseAreaList.method,
136
-        queryData: { ...this.postData, caseid: this.CaseId }
136
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
137
       }).then(res => {
137
       }).then(res => {
138
         // for (var n = 0; n < res.list.length; n++) {
138
         // for (var n = 0; n < res.list.length; n++) {
139
         //   res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName
139
         //   res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName

+ 3
- 3
src/pages/system/caseManager/caseTableManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
115
     getList () { // 获取列表
115
     getList () { // 获取列表
116
       this.$ajax(this.$api.caseManager.getCaseTableList.url, {
116
       this.$ajax(this.$api.caseManager.getCaseTableList.url, {
117
         method: this.$api.caseManager.getCaseTableList.method,
117
         method: this.$api.caseManager.getCaseTableList.method,
118
-        queryData: { ...this.postData, caseid: this.CaseId }
118
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
119
       }).then(res => {
119
       }).then(res => {
120
         this.currentList = res.list
120
         this.currentList = res.list
121
         this.postData.page = res.page
121
         this.postData.page = res.page

+ 3
- 3
src/pages/system/caseManager/deviceManager/index.vue View File

9
           <li>
9
           <li>
10
             <el-select v-model="CaseId" placeholder="请选择">
10
             <el-select v-model="CaseId" placeholder="请选择">
11
               <el-option
11
               <el-option
12
-                key=""
12
+                key="all"
13
                 label="所有案场"
13
                 label="所有案场"
14
-                value="">
14
+                value="all">
15
               </el-option>
15
               </el-option>
16
               <el-option
16
               <el-option
17
                 v-for="item in cases"
17
                 v-for="item in cases"
141
       this.getList()
141
       this.getList()
142
     },
142
     },
143
     getList () { // 获取列表
143
     getList () { // 获取列表
144
-      this.GetDeviceList(this.postData)
144
+      this.GetDeviceList({ ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId })
145
     },
145
     },
146
     delCallBack () {
146
     delCallBack () {
147
       this.$message({
147
       this.$message({

+ 3
- 3
src/pages/system/caseManager/signinManager/index.vue View File

17
       <span class="case-title">案场:</span>
17
       <span class="case-title">案场:</span>
18
        <el-select v-model="valueCase" placeholder="请选择" @change="handelSignin">
18
        <el-select v-model="valueCase" placeholder="请选择" @change="handelSignin">
19
             <el-option
19
             <el-option
20
-              key=""
20
+              key="all"
21
               label="所有案场"
21
               label="所有案场"
22
-              value="">
22
+              value="all">
23
             </el-option>
23
             </el-option>
24
             <el-option
24
             <el-option
25
               v-for="item in optionsCase"
25
               v-for="item in optionsCase"
156
     getCase () { // 获取案场数据列表
156
     getCase () { // 获取案场数据列表
157
       this.$ajax(this.$api.caseManager.getCaseList.url, {
157
       this.$ajax(this.$api.caseManager.getCaseList.url, {
158
         method: this.$api.caseManager.getCaseList.method,
158
         method: this.$api.caseManager.getCaseList.method,
159
-        queryData: { ...this.postData, caseid: this.CaseId }
159
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
160
       }).then(res => {
160
       }).then(res => {
161
         this.tempoptionsCase = res.list
161
         this.tempoptionsCase = res.list
162
         this.postData.page = res.page
162
         this.postData.page = res.page

+ 3
- 3
src/pages/system/caseManager/tagManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择案场">
11
             <el-select v-model="CaseId" placeholder="请选择案场">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
111
     getList () { // 获取列表
111
     getList () { // 获取列表
112
       this.$ajax(this.$api.caseManager.getCaseTagList.url, {
112
       this.$ajax(this.$api.caseManager.getCaseTagList.url, {
113
         method: this.$api.caseManager.getCaseTagList.method,
113
         method: this.$api.caseManager.getCaseTagList.method,
114
-        queryData: { ...this.postData, caseid: this.CaseId }
114
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
115
       }).then(res => {
115
       }).then(res => {
116
         this.currentList = res.list
116
         this.currentList = res.list
117
         this.postData.page = res.page
117
         this.postData.page = res.page

+ 3
- 3
src/pages/system/channelManager/channelList/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
110
     getList () { // 获取列表
110
     getList () { // 获取列表
111
       this.$ajax(this.$api.channelManager.getChannelList.url, {
111
       this.$ajax(this.$api.channelManager.getChannelList.url, {
112
         method: this.$api.channelManager.getChannelList.method,
112
         method: this.$api.channelManager.getChannelList.method,
113
-        queryData: { ...this.postData, caseid: this.CaseId }
113
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
114
       }).then(res => {
114
       }).then(res => {
115
         this.currentList = res.list
115
         this.currentList = res.list
116
         this.postData.page = res.page
116
         this.postData.page = res.page

+ 3
- 3
src/pages/system/cmsManager/bannerManager/add.vue View File

164
           })
164
           })
165
           return false
165
           return false
166
         } else {
166
         } else {
167
-          var reg = /[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$/  // eslint-disable-line
168
-          if (!reg.test(this.postData.ForwardUrl)) {
167
+          var strRegex = '^((https|http|ftp|rtsp|mms)://)?[a-z0-9A-Z]{3}\.[a-z0-9A-Z][a-z0-9A-Z]{0,61}?[a-z0-9A-Z]\.com|net|cn|cc (:s[0-9]{1-4})?/$'  // eslint-disable-line
168
+          var re = new RegExp(strRegex)
169
+          if (!re.test(this.postData.ForwardUrl)) {
169
             this.$message({
170
             this.$message({
170
               message: '链接地址格式不正确',
171
               message: '链接地址格式不正确',
171
               type: 'error',
172
               type: 'error',
198
         return false
199
         return false
199
       }
200
       }
200
       this.postData.OrgId = this.OrgId
201
       this.postData.OrgId = this.OrgId
201
-      // this.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
202
       this.$ajax(this.$api.cms.addImage.url, {
202
       this.$ajax(this.$api.cms.addImage.url, {
203
         method: this.$api.cms.addImage.method,
203
         method: this.$api.cms.addImage.method,
204
         data: this.postData
204
         data: this.postData

+ 3
- 2
src/pages/system/cmsManager/bannerManager/edit.vue View File

153
           })
153
           })
154
           return false
154
           return false
155
         } else {
155
         } else {
156
-          var reg = /[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$/  // eslint-disable-line
157
-          if (!reg.test(this.postData.ForwardUrl)) {
156
+         var strRegex = '^((https|http|ftp|rtsp|mms)://)?[a-z0-9A-Z]{3}\.[a-z0-9A-Z][a-z0-9A-Z]{0,61}?[a-z0-9A-Z]\.com|net|cn|cc (:s[0-9]{1-4})?/$'  // eslint-disable-line
157
+          var re = new RegExp(strRegex)
158
+          if (!re.test(this.postData.ForwardUrl)) {
158
             this.$message({
159
             this.$message({
159
               message: '链接地址格式不正确',
160
               message: '链接地址格式不正确',
160
               type: 'error',
161
               type: 'error',

+ 1
- 3
src/pages/system/cmsManager/indexMsg/add.vue View File

121
             type: 'success',
121
             type: 'success',
122
             duration: 1000
122
             duration: 1000
123
           })
123
           })
124
-          setTimeout(() => {
125
-            this.$router.push({ name: 'indexMsg' })
126
-          }, 1000)
124
+          this.$router.push({ name: 'indexMsg' })
127
         }).catch(msg => {
125
         }).catch(msg => {
128
           this.ajaxOff = true
126
           this.ajaxOff = true
129
         })
127
         })

+ 1
- 3
src/pages/system/cmsManager/indexMsg/edit.vue View File

119
             type: 'success',
119
             type: 'success',
120
             duration: 1000
120
             duration: 1000
121
           })
121
           })
122
-          setTimeout(() => {
123
-            this.$router.push({ name: 'indexMsg' })
124
-          }, 1000)
122
+          this.$router.push({ name: 'indexMsg' })
125
         }).catch(msg => {
123
         }).catch(msg => {
126
 
124
 
127
         })
125
         })

+ 8
- 3
src/pages/system/cmsManager/majorProjects/edit.vue View File

6
           <span>对应案场:</span>
6
           <span>对应案场:</span>
7
           <div class="flex-item">
7
           <div class="flex-item">
8
             <div style="width:50%">
8
             <div style="width:50%">
9
-              <el-select v-model="CaseId" placeholder="请选择" @change="caseChange">
9
+              <el-select :disabled="id && id !== ''" v-model="CaseId" placeholder="请选择" @change="caseChange">
10
+                <el-option
11
+                  key="all"
12
+                  label="全部案场"
13
+                  value="all">
14
+                </el-option>
10
                 <el-option
15
                 <el-option
11
                   v-for="item in caseList"
16
                   v-for="item in caseList"
12
                   :key="item.CaseId"
17
                   :key="item.CaseId"
313
       this.GetCaseInfo({ id: this.id })
318
       this.GetCaseInfo({ id: this.id })
314
     },
319
     },
315
     getCourse () {
320
     getCourse () {
316
-      this.GetCourseList({caseid: this.CaseId, page: 1, pagesize: 100, status: 1})
321
+      this.GetCourseList({caseid: this.CaseId === 'all' ? '' : this.CaseId, page: 1, pagesize: 100, status: 1})
317
     },
322
     },
318
     toggleSelection (rows) {
323
     toggleSelection (rows) {
319
       if (rows) {
324
       if (rows) {
325
       }
330
       }
326
     },
331
     },
327
     addCourse () {
332
     addCourse () {
328
-      this.GetCourseList({ caseid: this.CaseId, page: 1, pagesize: 100, callback: this.coursesShow })
333
+      this.GetCourseList({ caseid: this.CaseId === 'all' ? '' : this.CaseId, page: 1, pagesize: 100, callback: this.coursesShow })
329
     },
334
     },
330
     coursesShow () {
335
     coursesShow () {
331
       this.selCourseList = this.detail.Courses || []
336
       this.selCourseList = this.detail.Courses || []

+ 3
- 3
src/pages/system/cmsManager/majorProjects/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="tableSearch.caseId" placeholder="请选择">
11
             <el-select v-model="tableSearch.caseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in caseList"
18
                 v-for="item in caseList"
179
         queryData: {
179
         queryData: {
180
           page: this.postData.currentPage,
180
           page: this.postData.currentPage,
181
           pagesize: this.postData.pageSize,
181
           pagesize: this.postData.pageSize,
182
-          caseid: this.tableSearch.caseId,
182
+          caseid: this.tableSearch.caseId === 'all' ? '' : this.tableSearch.caseId,
183
           name: this.tableSearch.key
183
           name: this.tableSearch.key
184
         }
184
         }
185
       }).then(res => {
185
       }).then(res => {

+ 3
- 3
src/pages/system/cmsManager/newsManager/edit.vue View File

124
   },
124
   },
125
   components: {},
125
   components: {},
126
   created () {
126
   created () {
127
-    this.updateLocationInfo().then(() => {
127
+    this.updateLocationAllInfo().then(() => {
128
       this.getDetail()
128
       this.getDetail()
129
       this.GetCourseList({ page: 1, pagesize: 10000 })
129
       this.GetCourseList({ page: 1, pagesize: 10000 })
130
     })
130
     })
131
   },
131
   },
132
   computed: {
132
   computed: {
133
     ...mapState({
133
     ...mapState({
134
-      positionList: x => x.cms.location
134
+      positionList: x => x.cms.locationAll
135
     }),
135
     }),
136
     ...mapCourseState({
136
     ...mapCourseState({
137
       courses: x => x.courseList,
137
       courses: x => x.courseList,
141
     ...mapCourseActions([
141
     ...mapCourseActions([
142
       'GetCourseList',
142
       'GetCourseList',
143
     ]),
143
     ]),
144
-    ...mapCmsActions(['updateLocationInfo']),
144
+    ...mapCmsActions(['updateLocationAllInfo']),
145
     submit () {
145
     submit () {
146
       if (this.postData.ForwardType === 'url') {
146
       if (this.postData.ForwardType === 'url') {
147
         this.postData.ForwardResourceId = ''
147
         this.postData.ForwardResourceId = ''

+ 1
- 1
src/pages/system/courseManager/courseList/add.vue View File

125
                 range-separator="至"
125
                 range-separator="至"
126
                 start-placeholder="开始日期"
126
                 start-placeholder="开始日期"
127
                 end-placeholder="结束日期"
127
                 end-placeholder="结束日期"
128
-                value-format="yyyy-MM-ddTHH:mm:ss"
128
+                :default-time="['00:00:00', '23:59:59']"
129
                 :picker-options="pickerOptions">
129
                 :picker-options="pickerOptions">
130
               </el-date-picker>
130
               </el-date-picker>
131
             </div>
131
             </div>

+ 3
- 3
src/pages/system/courseManager/courseList/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="postData.caseid" placeholder="请选择案场">
11
             <el-select v-model="postData.caseid" placeholder="请选择案场">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
356
       this.getList()
356
       this.getList()
357
     },
357
     },
358
     getList () { // 获取列表
358
     getList () { // 获取列表
359
-      this.GetCourseList(this.postData)
359
+      this.GetCourseList({...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId})
360
     },
360
     },
361
     handleCurrentChange (val) { // 跳转到分页
361
     handleCurrentChange (val) { // 跳转到分页
362
       this.postData.page = val
362
       this.postData.page = val

+ 58
- 33
src/pages/system/dashboard/index.vue View File

10
         </el-option>
10
         </el-option>
11
       </el-select>
11
       </el-select>
12
     </div>
12
     </div>
13
-    <div class="flex-h" v-for="(item,index) in pageData" :key="index">
14
-      <div class="flex-item" v-for="(subItem,subIndex) in item" :key="subIndex">
13
+    <div class="flex-h" v-for="(item,index) in pageData" v-if="pageData.length" :key="index">
14
+      <div class="flex-item" v-for="(subItem,subIndex) in item" :key="subIndex" :class="{'listMargin' : subItem.type === 'dashboardList'}">
15
         <div v-if="subItem.type === 'dashboardList'">
15
         <div v-if="subItem.type === 'dashboardList'">
16
-          <dashboardList :data="subItem.data" :index="index + '-' + subIndex"></dashboardList>
16
+          <dashboardList :data="subItem" :index="subIndex"></dashboardList>
17
         </div>
17
         </div>
18
-        <div v-if="subItem.type === 'histogram'">
19
-          <histogram :data="subItem.data" :index="index + '-' + subIndex"></histogram>
18
+        <!-- <div v-if="subItem.type === 'histogram' && subItem.value.length">
19
+          <histogram :data="subItem.value" :index="index + '-' + subIndex"></histogram>
20
+        </div> -->
21
+        <!-- <div v-if="subItem.type === 'pieDiagram' && subItem.value.length">
22
+          <pieDiagram :data="subItem" :index="index + '-' + subIndex"></pieDiagram>
23
+        </div> -->
24
+        <!-- <div v-if="subItem.type === 'brokenLineGraph' && subItem.value.length">
25
+          <brokenLineGraph :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraph>
20
         </div>
26
         </div>
21
-        <div v-if="subItem.type === 'pieDiagram'">
22
-          <pieDiagram :data="subItem.data" :index="index + '-' + subIndex"></pieDiagram>
27
+        <div v-if="subItem.type === 'ringChart' && subItem.value.length">
28
+          <ringChart :data="subItem.value" :index="index + '-' + subIndex"></ringChart>
23
         </div>
29
         </div>
24
-        <div v-if="subItem.type === 'brokenLineGraph'">
25
-          <brokenLineGraph :data="subItem.data" :index="index + '-' + subIndex"></brokenLineGraph>
26
-        </div>
27
-        <div v-if="subItem.type === 'ringChart'">
28
-          <ringChart :data="subItem.data" :index="index + '-' + subIndex"></ringChart>
29
-        </div>
30
-        <div v-if="subItem.type === 'dashboard'">
31
-          <dashboard :data="subItem.data" :index="index + '-' + subIndex"></dashboard>
32
-        </div>
33
-        <div v-if="subItem.type === 'brokenLineGraphGroup'">
34
-          <brokenLineGraphGroup :data="subItem.data" :index="index + '-' + subIndex"></brokenLineGraphGroup>
30
+        <div v-if="subItem.type === 'dashboard' && subItem.value.length">
31
+          <dashboard :data="subItem.value" :index="index + '-' + subIndex"></dashboard>
35
         </div>
32
         </div>
33
+        <div v-if="subItem.type === 'brokenLineGraphGroup' && subItem.value.length">
34
+          <brokenLineGraphGroup :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraphGroup>
35
+        </div> -->
36
       </div>
36
       </div>
37
     </div>
37
     </div>
38
   </div>
38
   </div>
47
 import ringChart from '../../../components/ringChart/index'
47
 import ringChart from '../../../components/ringChart/index'
48
 import dashboard from '../../../components/dashboard/index'
48
 import dashboard from '../../../components/dashboard/index'
49
 import brokenLineGraphGroup from '../../../components/brokenLineGraphGroup/index'
49
 import brokenLineGraphGroup from '../../../components/brokenLineGraphGroup/index'
50
+
50
 const { mapActions: mapStaActions } = createNamespacedHelpers('sta')
51
 const { mapActions: mapStaActions } = createNamespacedHelpers('sta')
51
 
52
 
52
 export default {
53
 export default {
94
     }),
95
     }),
95
     CaseId: {
96
     CaseId: {
96
       get () {
97
       get () {
97
-        return this.postData.caseid || this.defaultCaseId
98
+        return this.postData.caseid || this.defaultCaseId || this.cases[0].CaseId
98
       },
99
       },
99
       set (val) {
100
       set (val) {
100
         this.postData.caseid = val
101
         this.postData.caseid = val
101
       }
102
       }
102
     }
103
     }
103
   },
104
   },
105
+  watch: {
106
+    defaultCaseId: function (val) {
107
+      if (!this.postData.caseid) {
108
+        this.postData.caseid = val
109
+      }
110
+      this.getData(val)
111
+      this.getBottomData(val, 'week')
112
+    },
113
+  },
104
   mounted () {
114
   mounted () {
105
     this.$nextTick(function () {
115
     this.$nextTick(function () {
106
-      console.log(this.defaultCaseId)
107
-      console.log(JSON.stringify(this.cases))
108
-      this.postData.caseid = this.postData.caseid || this.cases[0].CaseId
109
-      this.getDashboardData({
110
-        caseid: this.postData.caseid
111
-      }).then((res) => {
112
-        console.log(JSON.stringify(res))
113
-      })
114
-      this.getDashboardBottomData({
115
-        caseid: this.postData.caseid,
116
-        statype: 'week'
117
-      }).then((res) => {
118
-        console.log(JSON.stringify(res))
119
-      })
120
     })
116
     })
121
   },
117
   },
122
   methods: {
118
   methods: {
124
       'getDashboardData',
120
       'getDashboardData',
125
       'getDashboardBottomData',
121
       'getDashboardBottomData',
126
     ]),
122
     ]),
123
+    getData (id) {
124
+      this.getDashboardData({
125
+        caseid: id
126
+      }).then((res) => {
127
+        this.pageData = []
128
+        for (var n = 0; n < res.length; n++) {
129
+          this.pageData.push([])
130
+          for (var a = 0; a < res[n].length; a++) {
131
+            if (res[n][a].type !== 'dashboardList' && res[n][a].value === null) res[n][a].value = []
132
+            this.pageData[n].push(res[n][a])
133
+          }
134
+        }
135
+        // console.log(JSON.stringify(this.pageData))
136
+      })
137
+    },
138
+    getBottomData (id, type) {
139
+      this.getDashboardBottomData({
140
+        caseid: id,
141
+        statype: type
142
+      }).then((res) => {
143
+        // console.log(JSON.stringify(res))
144
+      })
145
+    },
127
   }
146
   }
128
 }
147
 }
129
 </script>
148
 </script>
131
 <!-- Add "scoped" attribute to limit CSS to this component only -->
150
 <!-- Add "scoped" attribute to limit CSS to this component only -->
132
 <style lang="scss" scoped>
151
 <style lang="scss" scoped>
133
 @import "page.scss";
152
 @import "page.scss";
153
+.listMargin{
154
+  margin-left: 20px;
155
+  &:first-child{
156
+    margin-left: 0;
157
+  }
158
+}
134
 </style>
159
 </style>

+ 2
- 0
src/pages/system/dataStatistics/cardCouponUsedList/index.vue View File

50
           <li style="white-space: nowrap;">
50
           <li style="white-space: nowrap;">
51
             <span>有效期:</span>
51
             <span>有效期:</span>
52
             <el-date-picker
52
             <el-date-picker
53
+              value-format="yyyy-MM-dd 00:00:00"
53
               v-model="postData.begindate"
54
               v-model="postData.begindate"
54
               type="date"
55
               type="date"
55
               placeholder="选择起始日期">
56
               placeholder="选择起始日期">
56
             </el-date-picker>
57
             </el-date-picker>
57
             <span>至</span>
58
             <span>至</span>
58
             <el-date-picker
59
             <el-date-picker
60
+              value-format="yyyy-MM-dd 23:59:59"
59
               v-model="postData.enddate"
61
               v-model="postData.enddate"
60
               type="date"
62
               type="date"
61
               placeholder="选择截止日期">
63
               placeholder="选择截止日期">

+ 2
- 0
src/pages/system/dataStatistics/courseOrderList/index.vue View File

33
           <li style="white-space: nowrap;">
33
           <li style="white-space: nowrap;">
34
             <span>下单时间:</span>
34
             <span>下单时间:</span>
35
             <el-date-picker
35
             <el-date-picker
36
+              value-format="yyyy-MM-dd 00:00:00"
36
               v-model="postData.begindate"
37
               v-model="postData.begindate"
37
               type="date"
38
               type="date"
38
               placeholder="选择起始日期">
39
               placeholder="选择起始日期">
39
             </el-date-picker>
40
             </el-date-picker>
40
             <span>至</span>
41
             <span>至</span>
41
             <el-date-picker
42
             <el-date-picker
43
+              value-format="yyyy-MM-dd 23:59:59"
42
               v-model="postData.enddate"
44
               v-model="postData.enddate"
43
               type="date"
45
               type="date"
44
               placeholder="选择截止日期">
46
               placeholder="选择截止日期">

+ 2
- 0
src/pages/system/dataStatistics/goodsOrderList/index.vue View File

36
           <li style="white-space: nowrap;">
36
           <li style="white-space: nowrap;">
37
             <span>下单时间:</span>
37
             <span>下单时间:</span>
38
             <el-date-picker
38
             <el-date-picker
39
+              value-format="yyyy-MM-dd 00:00:00"
39
               v-model="postData.begindate"
40
               v-model="postData.begindate"
40
               type="date"
41
               type="date"
41
               placeholder="选择起始日期">
42
               placeholder="选择起始日期">
42
             </el-date-picker>
43
             </el-date-picker>
43
             <span>至</span>
44
             <span>至</span>
44
             <el-date-picker
45
             <el-date-picker
46
+              value-format="yyyy-MM-dd 23:59:59"
45
               v-model="postData.enddate"
47
               v-model="postData.enddate"
46
               type="date"
48
               type="date"
47
               placeholder="选择截止日期">
49
               placeholder="选择截止日期">

+ 5
- 5
src/pages/system/goodsManager/goodManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
128
       },
128
       },
129
       set (val) {
129
       set (val) {
130
         this.postData.caseid = val
130
         this.postData.caseid = val
131
-        this.GetGoodTypes({ pagesize: 1000, caseid: this.CaseId })
131
+        this.GetGoodTypes({ pagesize: 1000, caseid: this.CaseId === 'all' ? '' : this.CaseId })
132
       }
132
       }
133
     }
133
     }
134
   },
134
   },
157
       this.getList()
157
       this.getList()
158
     },
158
     },
159
     getList () {
159
     getList () {
160
-      this.GetGoodsList({...this.postData, caseid: this.CaseId})
160
+      this.GetGoodsList({ ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId })
161
     },
161
     },
162
     handleSizeChange (val) {
162
     handleSizeChange (val) {
163
       console.log(`每页 ${val} 条`)
163
       console.log(`每页 ${val} 条`)
179
         type: 'warning'
179
         type: 'warning'
180
       })
180
       })
181
         .then(() => {
181
         .then(() => {
182
-          this.DelGoods({id: row.GoodsId, callback: this.delCallBack})
182
+          this.DelGoods({ id: row.GoodsId, callback: this.delCallBack })
183
         })
183
         })
184
         .catch(() => {
184
         .catch(() => {
185
           this.$message({
185
           this.$message({

+ 3
- 3
src/pages/system/goodsManager/goodsSpecManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
115
     getList () { // 获取列表
115
     getList () { // 获取列表
116
       this.$ajax(this.$api.goodsManager.getGoodsSpecList.url, {
116
       this.$ajax(this.$api.goodsManager.getGoodsSpecList.url, {
117
         method: this.$api.goodsManager.getGoodsSpecList.method,
117
         method: this.$api.goodsManager.getGoodsSpecList.method,
118
-        queryData: { ...this.postData, caseid: this.CaseId }
118
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
119
       }).then(res => {
119
       }).then(res => {
120
         this.currentList = res.list
120
         this.currentList = res.list
121
         this.postData.page = res.page
121
         this.postData.page = res.page

+ 3
- 3
src/pages/system/goodsManager/goodsTypeManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
116
     getList () { // 获取列表
116
     getList () { // 获取列表
117
       this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
117
       this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
118
         method: this.$api.goodsManager.getGoodsTypeList.method,
118
         method: this.$api.goodsManager.getGoodsTypeList.method,
119
-        queryData: { ...this.postData, caseid: this.CaseId }
119
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId }
120
       }).then(res => {
120
       }).then(res => {
121
         // for (var n = 0; n < res.list.length; n++) {
121
         // for (var n = 0; n < res.list.length; n++) {
122
         //   res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName
122
         //   res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName

+ 3
- 3
src/pages/system/healthManager/healthRecord/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
134
       return (this.cases.filter(x => x.CaseId === caseid)[0] || {}).CaseName
134
       return (this.cases.filter(x => x.CaseId === caseid)[0] || {}).CaseName
135
     },
135
     },
136
     getList () { // 获取列表
136
     getList () { // 获取列表
137
-      this.getHealthList({ ...this.postData, caseid: this.CaseId, phone: this.mobile, name: this.name }).then((res) => {
137
+      this.getHealthList({ ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId, phone: this.mobile, name: this.name }).then((res) => {
138
         this.currentList = this.list.list
138
         this.currentList = this.list.list
139
         this.postData.page = this.list.page
139
         this.postData.page = this.list.page
140
         this.total = this.list.pagenum
140
         this.total = this.list.pagenum

+ 4
- 3
src/pages/system/newOrder/caseRecord/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
88
               <div class="flex-item">
88
               <div class="flex-item">
89
                 <div style="width:50%">
89
                 <div style="width:50%">
90
                   <el-date-picker
90
                   <el-date-picker
91
+                    value-format="yyyy-MM-dd 00:00:00"
91
                     v-model="detail.Month"
92
                     v-model="detail.Month"
92
                     type="month"
93
                     type="month"
93
                     placeholder="选择月">
94
                     placeholder="选择月">
205
       this.getList()
206
       this.getList()
206
     },
207
     },
207
     getList () {
208
     getList () {
208
-      this.GetRecordList({ ...this.postData, caseid: this.CaseId })
209
+      this.GetRecordList({ ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId })
209
     },
210
     },
210
     handleCurrentChange (val) { // 跳转到分页
211
     handleCurrentChange (val) { // 跳转到分页
211
       this.postData.page = val
212
       this.postData.page = val

+ 19
- 17
src/pages/system/newOrder/newOrderList/index.vue View File

30
           <div style="padding:25px 20px 5px;border-bottom:2px solid #cccccc;">
30
           <div style="padding:25px 20px 5px;border-bottom:2px solid #cccccc;">
31
             <i class="iconfont icon-yinchenglogo" style="font-size:70px;color:red;position: relative;bottom: 20px;margin-right:10px;"></i>
31
             <i class="iconfont icon-yinchenglogo" style="font-size:70px;color:red;position: relative;bottom: 20px;margin-right:10px;"></i>
32
             <div style="display:inline-block;">
32
             <div style="display:inline-block;">
33
-              <span style="display:block;font-size:20px;font-weight:700;width:180px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">{{item.AreaName + item.TableNo}}</span>
33
+              <span style="display:block;font-size:20px;font-weight:700;width:180px;white-space: nowrap;">{{item.AreaName + item.TableNo}}</span>
34
               <span style="display:block;margin-top:10px">下单时间:{{toolClass.dateFormat(item.CreateDate)}}</span>
34
               <span style="display:block;margin-top:10px">下单时间:{{toolClass.dateFormat(item.CreateDate)}}</span>
35
               <span style="display:block;margin-top:10px">已等待:<span style="color:red;font-weight:700;">{{leftTimes[item.OrdersId]}}</span></span>
35
               <span style="display:block;margin-top:10px">已等待:<span style="color:red;font-weight:700;">{{leftTimes[item.OrdersId]}}</span></span>
36
             </div>
36
             </div>
45
           <!-- <div style="padding:10px 20px;border-bottom:1px solid #cccccc">备注:{{item.Remark}}</div> -->
45
           <!-- <div style="padding:10px 20px;border-bottom:1px solid #cccccc">备注:{{item.Remark}}</div> -->
46
           <div style="padding:10px 20px;" @click="printPdf(`item${index}`)">下单人:{{item.UserName}}</div>
46
           <div style="padding:10px 20px;" @click="printPdf(`item${index}`)">下单人:{{item.UserName}}</div>
47
         </div>
47
         </div>
48
-        <div class="print-area" :class="'item' + index" style="width:180px;">
48
+        <div class="print-area" :class="'item_' + item.OrdersId" style="width:180px;">
49
           <div style="padding:0px 10px 5px;border-bottom:2px solid #cccccc;">
49
           <div style="padding:0px 10px 5px;border-bottom:2px solid #cccccc;">
50
             <div style="display:inline-block;">
50
             <div style="display:inline-block;">
51
               <img class="topIcon" style="display:block;width:60%;margin:0 0 20px 0px;" src="http://jingcheng-resourceplat.oss-cn-shanghai.aliyuncs.com/upload/111101940020.png" alt="">
51
               <img class="topIcon" style="display:block;width:60%;margin:0 0 20px 0px;" src="http://jingcheng-resourceplat.oss-cn-shanghai.aliyuncs.com/upload/111101940020.png" alt="">
145
             this.initWebSocket()
145
             this.initWebSocket()
146
           }
146
           }
147
         })
147
         })
148
-        this.interval = setInterval(() => {
149
-          const now = (new Date()).valueOf()
150
-          this.leftTimes = this.list.reduce((acc, it) => {
151
-            const showDT = now - ((new Date(it.CreateDate)).valueOf())
152
-            return { ...acc, [`${it.OrdersId}`]: formatTimeBySeconds(showDT) }
153
-          }, {})
154
-        }, 1000)
155
       })
148
       })
149
+
150
+      this.refreshList()
151
+    },
152
+    refreshList () {
153
+      this.interval = setInterval(() => {
154
+        const now = (new Date()).valueOf()
155
+        this.leftTimes = this.list.reduce((acc, it) => {
156
+          const showDT = now - ((new Date(it.CreateDate)).valueOf())
157
+          return { ...acc, [`${it.OrdersId}`]: formatTimeBySeconds(showDT) }
158
+        }, {})
159
+      }, 1000)
156
     },
160
     },
157
     timeOut (c) {
161
     timeOut (c) {
158
       let cTime = new Date(c).valueOf()
162
       let cTime = new Date(c).valueOf()
243
       this.websock.onclose = console.log
247
       this.websock.onclose = console.log
244
     },
248
     },
245
     websocketonmessage (e) {
249
     websocketonmessage (e) {
246
-      console.log(e)
247
-      let lengthOld = this.list.length
248
-      let lengthNew = JSON.parse(e.data).data.refreshOnlineGoodsOrders.length
249
-      let newData = JSON.parse(e.data).data.refreshOnlineGoodsOrders.slice(lengthOld - lengthNew)
250
-      this.updateList(JSON.parse(e.data).data.refreshOnlineGoodsOrders).then(() => {
251
-        for (let i = 0; i < newData.length; i++) {
252
-          let index = newData[i].indexOf(this.list)
253
-          this.printPdf(`item${index}`)
250
+      const oldList = this.list
251
+      const newList = JSON.parse(e.data).data.refreshOnlineGoodsOrders
252
+      let newinfo = newList.filter(x => oldList.filter(item => item.OrdersId === x.OrdersId).length === 0)
253
+      this.updateList({list: newList}).then(() => {
254
+        for (let i = 0; i < newinfo.length; i++) {
255
+          this.printPdf(`item_${newinfo[i].OrdersId}`)
254
         }
256
         }
255
       })
257
       })
256
     },
258
     },

+ 3
- 3
src/pages/system/systemSet/userManager/index.vue View File

10
             <!-- <span>选择案场:</span> -->
10
             <!-- <span>选择案场:</span> -->
11
             <el-select v-model="CaseId" placeholder="请选择">
11
             <el-select v-model="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                key=""
13
+                key="all"
14
                 label="所有案场"
14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16
               </el-option>
16
               </el-option>
17
               <el-option
17
               <el-option
18
                 v-for="item in cases"
18
                 v-for="item in cases"
293
     getList () { // 获取列表
293
     getList () { // 获取列表
294
       this.$ajax(this.$api.systemSet.getUserList.url, {
294
       this.$ajax(this.$api.systemSet.getUserList.url, {
295
         method: this.$api.systemSet.getUserList.method,
295
         method: this.$api.systemSet.getUserList.method,
296
-        queryData: { ...this.postData, caseid: this.CaseId, typeid: this.usertype, username: this.name }
296
+        queryData: { ...this.postData, caseid: this.CaseId === 'all' ? '' : this.CaseId, typeid: this.usertype, username: this.name }
297
       }).then(res => {
297
       }).then(res => {
298
         for (var n = 0; n < (res.list || []).length; n++) {
298
         for (var n = 0; n < (res.list || []).length; n++) {
299
           res.list[n].CreateDate = this.returnTime(res.list[n].CreateDate)
299
           res.list[n].CreateDate = this.returnTime(res.list[n].CreateDate)

+ 22
- 1
src/pages/system/verificationManager/phoneVerification/index.vue View File

1
 <template>
1
 <template>
2
   <div class="subPage">
2
   <div class="subPage">
3
+    <div class="flex-h top">
4
+      <div class="flex-item">
5
+        <div>
6
+          <i class="iconfont icon-qrcode"></i>
7
+          <span>1</span>
8
+          <span>请输入用户的手机号</span>
9
+        </div>
10
+      </div>
11
+      <div class="flex-item">
12
+        <div>
13
+          <i class="iconfont icon-hexiao"></i>
14
+          <span>2</span>
15
+          <span>点击“立即核销”按钮</span>
16
+        </div>
17
+      </div>
18
+    </div>
3
     <div>
19
     <div>
4
       <div class="flex-h">
20
       <div class="flex-h">
5
         <div class="flex-item">
21
         <div class="flex-item">
7
           <el-input
23
           <el-input
8
             placeholder="请输入手机号"
24
             placeholder="请输入手机号"
9
             v-model="phone"
25
             v-model="phone"
26
+            @input="phone=phone.replace(/\D/g,'')"
10
             clearable>
27
             clearable>
11
           </el-input>
28
           </el-input>
12
           </div>
29
           </div>
30
     this.$nextTick(function () { })
47
     this.$nextTick(function () { })
31
   },
48
   },
32
   methods: {
49
   methods: {
50
+    inputPhone () {
51
+      this.phone = this.phone.replace(/\D/g, '')
52
+    },
33
     toVerificationList () { // 前往核销列表
53
     toVerificationList () { // 前往核销列表
34
       if (this.phone !== '') {
54
       if (this.phone !== '') {
35
-        this.$router.push({name: 'phoneVerificationList', query: {tel: this.phone}})
55
+        this.$router.push({ name: 'phoneVerificationList', query: { tel: this.phone } })
36
       } else {
56
       } else {
37
         this.$message({
57
         this.$message({
38
           message: '手机号为空!',
58
           message: '手机号为空!',
46
 
66
 
47
 <!-- Add "scoped" attribute to limit CSS to this component only -->
67
 <!-- Add "scoped" attribute to limit CSS to this component only -->
48
 <style lang="scss" scoped>
68
 <style lang="scss" scoped>
69
+@import "page.scss";
49
 .subPage {
70
 .subPage {
50
   > div {
71
   > div {
51
     width: 100%;
72
     width: 100%;

+ 29
- 1
src/pages/system/verificationManager/phoneVerification/page.scss View File

1
-
1
+.subPage{
2
+  .top{
3
+    width: 100%;
4
+    position: relative;
5
+    overflow: hidden;
6
+    margin-top: 40px;
7
+    >div{
8
+      >div{
9
+        width: 100%;
10
+        position: relative;
11
+        overflow: hidden;
12
+        text-align: center;
13
+        >span{
14
+          width: 100%;
15
+          display: block;
16
+          text-align: center;
17
+          line-height: 24px;
18
+          font-size: 15px;
19
+          color: #666;
20
+        }
21
+        >i{
22
+          font-size: 30px;
23
+          color: #409EFF;
24
+          display: inline-block;
25
+        }
26
+      }
27
+    }
28
+  }
29
+}
2
 
30
 
3
 
31
 
4
 
32
 

+ 4
- 2
src/pages/system/verificationManager/qrcodeVerification/verificationList/index.vue View File

8
             type="warning"
8
             type="warning"
9
             @click="reback">返回</el-button>
9
             @click="reback">返回</el-button>
10
         </div>
10
         </div>
11
-        <div v-if="(courses.list||[]).length>0">
11
+        <div v-if="courses !== null && (courses.list||[]).length>0">
12
           <el-table
12
           <el-table
13
               :data="courses.list"
13
               :data="courses.list"
14
               stripe
14
               stripe
213
     },
213
     },
214
     getList () {
214
     getList () {
215
       this.GetCourseVerList({ id: this.code }).then((res) => {
215
       this.GetCourseVerList({ id: this.code }).then((res) => {
216
-        this.customerId = res.customerInfo.CustomerId
216
+        if (res !== null) {
217
+          this.customerId = res.customerInfo.CustomerId
218
+        }
217
       })
219
       })
218
     },
220
     },
219
     afterCheck () {
221
     afterCheck () {

+ 2
- 2
src/util/api.js View File

1
-// const baseUrl = '/api-v2'
2
-const baseUrl = '/api'
1
+const baseUrl = '/api-v2'
2
+// const baseUrl = '/api'
3
 const common = '/common/:org'
3
 const common = '/common/:org'
4
 const guest = '/guest/:org'
4
 const guest = '/guest/:org'
5
 
5