瀏覽代碼

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

keyman1995 6 年之前
父節點
當前提交
ee9d5732c7
共有 48 個檔案被更改,包括 375 行新增218 行删除
  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 查看文件

@@ -12,9 +12,8 @@ module.exports = {
12 12
     proxyTable: {
13 13
       '/api': {
14 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 17
         // target: 'http://192.168.0.11', //ys
19 18
         // target: 'http://192.168.0.125:8080', //hyq
20 19
         // target: 'http://dev.ycjcjy.com/', //frp

+ 2
- 1
dist/index.html 查看文件

@@ -1 +1,2 @@
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 查看文件

@@ -1 +1,2 @@
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 查看文件

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

+ 1
- 1
src/components/brokenLineGraphGroup/index.vue 查看文件

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

+ 2
- 2
src/components/dashboard/index.vue 查看文件

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

+ 7
- 5
src/components/dashboardList/index.vue 查看文件

@@ -1,11 +1,11 @@
1 1
 <template>
2 2
   <div class="dashboardList">
3 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 5
         <div :style="{background:colorList[index%colorList.length]}">
6 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 9
           </div>
10 10
         </div>
11 11
       </li>
@@ -16,14 +16,16 @@
16 16
 <script>
17 17
 export default {
18 18
   name: '',
19
-  props: ['data'],
19
+  props: ['data', 'index'],
20 20
   data () {
21 21
     return {
22 22
       colorList: ['#fc6243', '#409EFF', '#4ddea2', '#f6e259', '#5c59f6', '#f66f59'],
23 23
     }
24 24
   },
25 25
   mounted () {
26
-    this.$nextTick(function () {})
26
+    this.$nextTick(function () {
27
+      // console.log(JSON.stringify(this.data))
28
+    })
27 29
   },
28 30
   methods: {
29 31
   }

+ 1
- 1
src/components/histogram/index.vue 查看文件

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

+ 2
- 1
src/components/pieDiagram/index.vue 查看文件

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

+ 4
- 4
src/components/ringChart/index.vue 查看文件

@@ -32,7 +32,7 @@ export default {
32 32
         width: _that.$refs.box.clientWidth,
33 33
         height: 400
34 34
       })
35
-      chart.source(_that.data.list, {
35
+      chart.source(_that.data.value, {
36 36
         percent: {
37 37
           formatter: function formatter (val) {
38 38
             val = val * 100 + '%'
@@ -49,8 +49,8 @@ export default {
49 49
         itemTpl: '<li><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</li>'
50 50
       })
51 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 56
       chart.guide().html({
@@ -74,7 +74,7 @@ export default {
74 74
         stroke: '#fff'
75 75
       })
76 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 查看文件

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

+ 2
- 0
src/pages/system/cardAndCouponManager/bodyBuildingCardManager/index.vue 查看文件

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

+ 67
- 33
src/pages/system/cardAndCouponManager/cardManager/edit.vue 查看文件

@@ -6,7 +6,7 @@
6 6
           <span>选择案场:<em>*</em></span>
7 7
           <div class="flex-item">
8 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 10
                 <el-option
11 11
                   v-for="item in cases"
12 12
                   :key="item.CaseId"
@@ -22,6 +22,7 @@
22 22
           <div class="flex-item">
23 23
             <div>
24 24
               <el-upload
25
+                :disabled="isEdit"
25 26
                 class="avatar-uploader"
26 27
                 action='string'
27 28
                 :http-request="toolClass.upload"
@@ -50,6 +51,7 @@
50 51
           <div class="flex-item">
51 52
             <div style="width:200px;">
52 53
               <el-input
54
+                :disabled="isEdit"
53 55
                 placeholder="请输入"
54 56
                 v-model="cardInfo.Price"
55 57
                 clearable>
@@ -62,6 +64,7 @@
62 64
           <div class="flex-item">
63 65
             <div style="width:200px;">
64 66
               <el-input
67
+                :disabled="isEdit"
65 68
                 placeholder="请输入"
66 69
                 v-model="cardInfo.TotalCount"
67 70
                 clearable>
@@ -73,9 +76,9 @@
73 76
           <span>发送类型:<em>*</em></span>
74 77
           <div class="flex-item">
75 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 82
             </div>
80 83
           </div>
81 84
         </li>
@@ -83,7 +86,7 @@
83 86
           <span>选择渠道:<em>*</em></span>
84 87
           <div class="flex-item">
85 88
             <div style="width:50%">
86
-              <el-select v-model="cardInfo.ChannelId" placeholder="请选择">
89
+              <el-select v-model="cardInfo.ChannelId" placeholder="请选择" :disabled="isEdit">
87 90
                 <el-option
88 91
                   v-for="item in channelList"
89 92
                   :key="item.ChannelId"
@@ -98,7 +101,7 @@
98 101
           <span>目标课程:<em>*</em></span>
99 102
           <div class="flex-item">
100 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 105
                 <el-option
103 106
                   v-for="item in courseList"
104 107
                   :key="item.CourseId"
@@ -116,11 +119,19 @@
116 119
             <div>
117 120
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
118 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 135
                 </el-date-picker>
125 136
               </div>
126 137
             </div>
@@ -132,6 +143,7 @@
132 143
             <div style="vertical-align: middle;">
133 144
               <a style="line-height: 40px;" v-if="videoOff" :href="cardInfo.VideoUrl" target="blank">{{cardInfo.VideoUrl}}</a>
134 145
               <el-upload
146
+                :disabled="isEdit"
135 147
                 class="avatar-uploader"
136 148
                 action='string'
137 149
                 :http-request="toolClass.upload"
@@ -206,7 +218,7 @@ export default {
206 218
       videoOff: false,
207 219
       total: 0,
208 220
       type: this.$route.query.type,
209
-      isEdit: this.$route.query.id === undefined ? 0 : 1,
221
+      isEdit: !!this.$route.query.id,
210 222
       ChannelList: [], // 渠道列表
211 223
       TypeList: [], // 类型列表
212 224
       GoodsList: [], // 商品列表
@@ -246,7 +258,7 @@ export default {
246 258
         page: 1,
247 259
         pagesize: 10000
248 260
       }).then(() => {
249
-        this.GetCourseList({
261
+        this.getCourseLister({
250 262
           caseid: this.defaultCaseId,
251 263
           page: 1,
252 264
           pagesize: 10000
@@ -256,18 +268,39 @@ export default {
256 268
             this.getCardById({
257 269
               id: this.$route.query.id
258 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,11 +471,12 @@ export default {
438 471
       return true
439 472
     },
440 473
     submit () { // 保存
474
+      console.log(this.cardInfo.StartDate, this.cardInfo.EndDate)
441 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 480
         this.courseList = this.courseList || []
447 481
         for (var x = 0; x < this.courseList.length; x++) {
448 482
           if (this.courseList[x].CourseId === this.cardInfo.Targets[0].TargetId) {
@@ -463,10 +497,10 @@ export default {
463 497
         })
464 498
       } else {
465 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 504
         this.courseList = this.courseList || []
471 505
         for (var n = 0; n < this.courseList.length; n++) {
472 506
           if (this.courseList[n].CourseId === this.cardInfo.Targets[0].TargetId) {

+ 12
- 6
src/pages/system/cardAndCouponManager/cardManager/index.vue 查看文件

@@ -46,9 +46,9 @@
46 46
           label="有效期"
47 47
           width="150">
48 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 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 52
           </template>
53 53
         </el-table-column>
54 54
         <el-table-column
@@ -91,7 +91,7 @@
91 91
               size="mini"
92 92
               type="success"
93 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 95
               v-clipboard:success="onCopy"
96 96
               v-clipboard:error="onError"
97 97
               >点击复制链接</el-button>
@@ -141,11 +141,13 @@
141 141
         <ul class="dialogSearchList flex-h">
142 142
           <li class="flex-item">
143 143
             <el-date-picker
144
+              value-format="yyyy-MM-dd 00:00:00"
144 145
               v-model="dialogPostData.begindate"
145 146
               type="date"
146 147
               placeholder="选择起始日期">
147 148
             </el-date-picker>
148 149
             <el-date-picker
150
+              value-format="yyyy-MM-dd 23:59:59"
149 151
               v-model="dialogPostData.enddate"
150 152
               type="date"
151 153
               placeholder="选择截止日期">
@@ -243,7 +245,7 @@ export default {
243 245
         begindate: '',
244 246
         enddate: '',
245 247
         page: 1, // 当前页码
246
-        pagesize: 10, // 请求数据量
248
+        pagesize: 6, // 请求数据量
247 249
       },
248 250
       customerList: [],
249 251
       centerDialogVisible: false,
@@ -305,11 +307,15 @@ export default {
305 307
       this.$router.push({ name: 'givingRecords' })
306 308
     },
307 309
     dialogSearch () { // 赠送客户搜索
308
-      this.GetCustomerList(this.dialogPostData)
310
+      this.GetCustomerList(this.dialogPostData).then((res) => {
311
+        this.dialogTotal = res.pagenum
312
+      })
309 313
     },
310 314
     handleCurrentChangeDialog (val) {
311 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 320
     handleSelectionChange (val) {
315 321
       // console.log(val)

+ 47
- 19
src/pages/system/cardAndCouponManager/couponManager/edit.vue 查看文件

@@ -7,7 +7,7 @@
7 7
           <span>选择案场:<em>*</em></span>
8 8
           <div class="flex-item">
9 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 11
                 <el-option
12 12
                   v-for="item in cases"
13 13
                   :key="item.CaseId"
@@ -23,6 +23,7 @@
23 23
           <div class="flex-item">
24 24
             <div>
25 25
               <el-upload
26
+                :disabled="isEdit"
26 27
                 class="avatar-uploader"
27 28
                 action='string'
28 29
                 :http-request="toolClass.upload"
@@ -50,7 +51,7 @@
50 51
           <span>券类型:<em>*</em></span>
51 52
           <div class="flex-item">
52 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 55
                 <el-option
55 56
                   v-for="item in TypeList"
56 57
                   :key="item.id"
@@ -66,6 +67,7 @@
66 67
           <div class="flex-item">
67 68
             <div style="width:200px;">
68 69
               <el-input
70
+                :disabled="isEdit"
69 71
                 placeholder="请输入"
70 72
                 v-model="couponInfo.Price"
71 73
                 clearable>
@@ -78,6 +80,7 @@
78 80
           <div class="flex-item">
79 81
             <div style="width:200px;">
80 82
               <el-input
83
+                :disabled="isEdit"
81 84
                 placeholder="请输入"
82 85
                 v-model="couponInfo.TotalCount"
83 86
                 clearable>
@@ -89,9 +92,9 @@
89 92
           <span>发送类型:<em>*</em></span>
90 93
           <div class="flex-item">
91 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 98
             </div>
96 99
           </div>
97 100
         </li>
@@ -99,7 +102,7 @@
99 102
           <span>选择渠道:<em>*</em></span>
100 103
           <div class="flex-item">
101 104
             <div style="width:50%">
102
-              <el-select v-model="couponInfo.ChannelId" placeholder="请选择">
105
+              <el-select v-model="couponInfo.ChannelId" placeholder="请选择" :disabled="isEdit">
103 106
                 <el-option
104 107
                   v-for="item in channelList"
105 108
                   :key="item.ChannelId"
@@ -114,8 +117,8 @@
114 117
           <span>目标商品:<em>*</em></span>
115 118
           <div class="flex-item">
116 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 122
             </div>
120 123
           </div>
121 124
         </li>
@@ -142,12 +145,12 @@
142 145
                     <el-button
143 146
                       size="mini"
144 147
                       type="warning"
145
-                      @click="deleteGoodsItem(scope.$index, scope.row)">删除</el-button>
148
+                      @click="deleteGoodsItem(scope.$index, scope.row)" :disabled="isEdit">删除</el-button>
146 149
                   </template>
147 150
                 </el-table-column>
148 151
               </el-table>
149 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 154
               </div>
152 155
             </div>
153 156
           </div>
@@ -157,23 +160,28 @@
157 160
           <div class="flex-item">
158 161
             <div>
159 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 164
                 <el-date-picker
165
+                  value-format="yyyy-MM-dd 00:00:00"
166
+                  :disabled="isEdit"
162 167
                   v-model="couponInfo.StartDate"
163 168
                   type="date"
164 169
                   placeholder="选择起始日期">
165 170
                 </el-date-picker>
166 171
                 <span style="line-height:40px;">至</span>
167 172
                 <el-date-picker
173
+                  value-format="yyyy-MM-dd 23:59:59"
174
+                  :disabled="isEdit"
168 175
                   v-model="couponInfo.EndDate"
169 176
                   type="date"
170 177
                   placeholder="选择截止日期">
171 178
                 </el-date-picker>
172 179
               </div>
173 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 182
                 <span style="width:100px;">
176 183
                   <el-input
184
+                    :disabled="isEdit"
177 185
                     placeholder="请输入"
178 186
                     v-model="couponInfo.ValidDays"
179 187
                     clearable>
@@ -189,12 +197,16 @@
189 197
           <div class="flex-item">
190 198
             <div>
191 199
               <el-date-picker
200
+                value-format="yyyy-MM-dd 00:00:00"
201
+                :disabled="isEdit"
192 202
                 v-model="couponInfo.StartDate"
193 203
                 type="date"
194 204
                 placeholder="选择起始日期">
195 205
               </el-date-picker>
196 206
               <span style="line-height:40px;">至</span>
197 207
               <el-date-picker
208
+                value-format="yyyy-MM-dd 23:59:59"
209
+                :disabled="isEdit"
198 210
                 v-model="couponInfo.EndDate"
199 211
                 type="date"
200 212
                 placeholder="选择截止日期">
@@ -208,14 +220,15 @@
208 220
             <div style="vertical-align: middle;">
209 221
               <a style="line-height: 40px;" v-if="videoOff" :href="couponInfo.VideoUrl" target="blank">{{couponInfo.VideoUrl}}</a>
210 222
               <el-upload
223
+                :disabled="isEdit"
211 224
                 class="avatar-uploader"
212 225
                 action='string'
213 226
                 :http-request="toolClass.upload"
214 227
                 :show-file-list="false"
215 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 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 232
             </div>
220 233
           </div>
221 234
         </li>
@@ -373,7 +386,7 @@ export default {
373 386
       total: 0,
374 387
       centerDialogVisible: false,
375 388
       type: this.$route.query.type || '', // goods、course
376
-      isEdit: this.$route.query.id === undefined ? 0 : 1,
389
+      isEdit: !!this.$route.query.id,
377 390
       ChannelList: [], // 渠道列表
378 391
       TypeList: [{ // 类型列表
379 392
         value: '商品券',
@@ -429,11 +442,26 @@ export default {
429 442
               id: this.$route.query.id
430 443
             }).then((res) => {
431 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 查看文件

@@ -4,12 +4,9 @@
4 4
       <div class="flex-h">
5 5
         <div class="flex-item flex-h">
6 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 7
         </div>
10 8
         <ul>
11 9
           <li>
12
-            <!-- <span>选择案场:</span> -->
13 10
             <el-select v-model="CaseId" placeholder="请选择案场">
14 11
               <el-option
15 12
                 v-for="item in cases"
@@ -64,14 +61,6 @@
64 61
           prop="TotalCount"
65 62
           label="总数量">
66 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 64
         <el-table-column
76 65
           prop="Status"
77 66
           label="状态">
@@ -93,7 +82,7 @@
93 82
               size="mini"
94 83
               type="success"
95 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 86
               v-clipboard:success="onCopy"
98 87
               v-clipboard:error="onError"
99 88
               >点击复制链接</el-button>
@@ -143,11 +132,13 @@
143 132
         <ul class="dialogSearchList flex-h">
144 133
           <li class="flex-item">
145 134
             <el-date-picker
135
+              value-format="yyyy-MM-dd 00:00:00"
146 136
               v-model="dialogPostData.begindate"
147 137
               type="date"
148 138
               placeholder="选择起始日期">
149 139
             </el-date-picker>
150 140
             <el-date-picker
141
+              value-format="yyyy-MM-dd 23:59:59"
151 142
               v-model="dialogPostData.enddate"
152 143
               type="date"
153 144
               placeholder="选择截止日期">
@@ -273,11 +264,15 @@ export default {
273 264
       'SetCustomerListNull',
274 265
     ]),
275 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 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 277
     handleSelectionChange (val) {
283 278
       this.selUsers = val.map(x => x.CustomerId).join(',')

+ 2
- 2
src/pages/system/cardAndCouponManager/givingRecords.vue 查看文件

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

+ 3
- 3
src/pages/system/cardAndCouponManager/vipManager/index.vue 查看文件

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

+ 3
- 3
src/pages/system/caseManager/caseAreaManager/index.vue 查看文件

@@ -10,9 +10,9 @@
10 10
             <!-- <span>选择案场:</span> -->
11 11
             <el-select v-model="CaseId" placeholder="请选择">
12 12
               <el-option
13
-                key=""
13
+                key="all"
14 14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16 16
               </el-option>
17 17
               <el-option
18 18
                 v-for="item in cases"
@@ -133,7 +133,7 @@ export default {
133 133
     getList () { // 获取列表
134 134
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
135 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 137
       }).then(res => {
138 138
         // for (var n = 0; n < res.list.length; n++) {
139 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 查看文件

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

+ 3
- 3
src/pages/system/caseManager/deviceManager/index.vue 查看文件

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

+ 3
- 3
src/pages/system/caseManager/signinManager/index.vue 查看文件

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

+ 3
- 3
src/pages/system/caseManager/tagManager/index.vue 查看文件

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

+ 3
- 3
src/pages/system/channelManager/channelList/index.vue 查看文件

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

+ 3
- 3
src/pages/system/cmsManager/bannerManager/add.vue 查看文件

@@ -164,8 +164,9 @@ export default {
164 164
           })
165 165
           return false
166 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 170
             this.$message({
170 171
               message: '链接地址格式不正确',
171 172
               type: 'error',
@@ -198,7 +199,6 @@ export default {
198 199
         return false
199 200
       }
200 201
       this.postData.OrgId = this.OrgId
201
-      // this.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
202 202
       this.$ajax(this.$api.cms.addImage.url, {
203 203
         method: this.$api.cms.addImage.method,
204 204
         data: this.postData

+ 3
- 2
src/pages/system/cmsManager/bannerManager/edit.vue 查看文件

@@ -153,8 +153,9 @@ export default {
153 153
           })
154 154
           return false
155 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 159
             this.$message({
159 160
               message: '链接地址格式不正确',
160 161
               type: 'error',

+ 1
- 3
src/pages/system/cmsManager/indexMsg/add.vue 查看文件

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

+ 1
- 3
src/pages/system/cmsManager/indexMsg/edit.vue 查看文件

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

+ 8
- 3
src/pages/system/cmsManager/majorProjects/edit.vue 查看文件

@@ -6,7 +6,12 @@
6 6
           <span>对应案场:</span>
7 7
           <div class="flex-item">
8 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 15
                 <el-option
11 16
                   v-for="item in caseList"
12 17
                   :key="item.CaseId"
@@ -313,7 +318,7 @@ export default {
313 318
       this.GetCaseInfo({ id: this.id })
314 319
     },
315 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 323
     toggleSelection (rows) {
319 324
       if (rows) {
@@ -325,7 +330,7 @@ export default {
325 330
       }
326 331
     },
327 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 335
     coursesShow () {
331 336
       this.selCourseList = this.detail.Courses || []

+ 3
- 3
src/pages/system/cmsManager/majorProjects/index.vue 查看文件

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

+ 3
- 3
src/pages/system/cmsManager/newsManager/edit.vue 查看文件

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

+ 1
- 1
src/pages/system/courseManager/courseList/add.vue 查看文件

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

+ 3
- 3
src/pages/system/courseManager/courseList/index.vue 查看文件

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

+ 58
- 33
src/pages/system/dashboard/index.vue 查看文件

@@ -10,29 +10,29 @@
10 10
         </el-option>
11 11
       </el-select>
12 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 15
         <div v-if="subItem.type === 'dashboardList'">
16
-          <dashboardList :data="subItem.data" :index="index + '-' + subIndex"></dashboardList>
16
+          <dashboardList :data="subItem" :index="subIndex"></dashboardList>
17 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 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 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 32
         </div>
33
+        <div v-if="subItem.type === 'brokenLineGraphGroup' && subItem.value.length">
34
+          <brokenLineGraphGroup :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraphGroup>
35
+        </div> -->
36 36
       </div>
37 37
     </div>
38 38
   </div>
@@ -47,6 +47,7 @@ import brokenLineGraph from '../../../components/brokenLineGraph/index'
47 47
 import ringChart from '../../../components/ringChart/index'
48 48
 import dashboard from '../../../components/dashboard/index'
49 49
 import brokenLineGraphGroup from '../../../components/brokenLineGraphGroup/index'
50
+
50 51
 const { mapActions: mapStaActions } = createNamespacedHelpers('sta')
51 52
 
52 53
 export default {
@@ -94,29 +95,24 @@ export default {
94 95
     }),
95 96
     CaseId: {
96 97
       get () {
97
-        return this.postData.caseid || this.defaultCaseId
98
+        return this.postData.caseid || this.defaultCaseId || this.cases[0].CaseId
98 99
       },
99 100
       set (val) {
100 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 114
   mounted () {
105 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 118
   methods: {
@@ -124,6 +120,29 @@ export default {
124 120
       'getDashboardData',
125 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 148
 </script>
@@ -131,4 +150,10 @@ export default {
131 150
 <!-- Add "scoped" attribute to limit CSS to this component only -->
132 151
 <style lang="scss" scoped>
133 152
 @import "page.scss";
153
+.listMargin{
154
+  margin-left: 20px;
155
+  &:first-child{
156
+    margin-left: 0;
157
+  }
158
+}
134 159
 </style>

+ 2
- 0
src/pages/system/dataStatistics/cardCouponUsedList/index.vue 查看文件

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

+ 2
- 0
src/pages/system/dataStatistics/courseOrderList/index.vue 查看文件

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

+ 2
- 0
src/pages/system/dataStatistics/goodsOrderList/index.vue 查看文件

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

+ 5
- 5
src/pages/system/goodsManager/goodManager/index.vue 查看文件

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

+ 3
- 3
src/pages/system/goodsManager/goodsSpecManager/index.vue 查看文件

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

+ 3
- 3
src/pages/system/goodsManager/goodsTypeManager/index.vue 查看文件

@@ -10,9 +10,9 @@
10 10
             <!-- <span>选择案场:</span> -->
11 11
             <el-select v-model="CaseId" placeholder="请选择">
12 12
               <el-option
13
-                key=""
13
+                key="all"
14 14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16 16
               </el-option>
17 17
               <el-option
18 18
                 v-for="item in cases"
@@ -116,7 +116,7 @@ export default {
116 116
     getList () { // 获取列表
117 117
       this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
118 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 120
       }).then(res => {
121 121
         // for (var n = 0; n < res.list.length; n++) {
122 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 查看文件

@@ -10,9 +10,9 @@
10 10
             <!-- <span>选择案场:</span> -->
11 11
             <el-select v-model="CaseId" placeholder="请选择">
12 12
               <el-option
13
-                key=""
13
+                key="all"
14 14
                 label="所有案场"
15
-                value="">
15
+                value="all">
16 16
               </el-option>
17 17
               <el-option
18 18
                 v-for="item in cases"
@@ -134,7 +134,7 @@ export default {
134 134
       return (this.cases.filter(x => x.CaseId === caseid)[0] || {}).CaseName
135 135
     },
136 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 138
         this.currentList = this.list.list
139 139
         this.postData.page = this.list.page
140 140
         this.total = this.list.pagenum

+ 4
- 3
src/pages/system/newOrder/caseRecord/index.vue 查看文件

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

+ 19
- 17
src/pages/system/newOrder/newOrderList/index.vue 查看文件

@@ -30,7 +30,7 @@
30 30
           <div style="padding:25px 20px 5px;border-bottom:2px solid #cccccc;">
31 31
             <i class="iconfont icon-yinchenglogo" style="font-size:70px;color:red;position: relative;bottom: 20px;margin-right:10px;"></i>
32 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 34
               <span style="display:block;margin-top:10px">下单时间:{{toolClass.dateFormat(item.CreateDate)}}</span>
35 35
               <span style="display:block;margin-top:10px">已等待:<span style="color:red;font-weight:700;">{{leftTimes[item.OrdersId]}}</span></span>
36 36
             </div>
@@ -45,7 +45,7 @@
45 45
           <!-- <div style="padding:10px 20px;border-bottom:1px solid #cccccc">备注:{{item.Remark}}</div> -->
46 46
           <div style="padding:10px 20px;" @click="printPdf(`item${index}`)">下单人:{{item.UserName}}</div>
47 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 49
           <div style="padding:0px 10px 5px;border-bottom:2px solid #cccccc;">
50 50
             <div style="display:inline-block;">
51 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,14 +145,18 @@ export default {
145 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 161
     timeOut (c) {
158 162
       let cTime = new Date(c).valueOf()
@@ -243,14 +247,12 @@ export default {
243 247
       this.websock.onclose = console.log
244 248
     },
245 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 查看文件

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

+ 22
- 1
src/pages/system/verificationManager/phoneVerification/index.vue 查看文件

@@ -1,5 +1,21 @@
1 1
 <template>
2 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 19
     <div>
4 20
       <div class="flex-h">
5 21
         <div class="flex-item">
@@ -7,6 +23,7 @@
7 23
           <el-input
8 24
             placeholder="请输入手机号"
9 25
             v-model="phone"
26
+            @input="phone=phone.replace(/\D/g,'')"
10 27
             clearable>
11 28
           </el-input>
12 29
           </div>
@@ -30,9 +47,12 @@ export default {
30 47
     this.$nextTick(function () { })
31 48
   },
32 49
   methods: {
50
+    inputPhone () {
51
+      this.phone = this.phone.replace(/\D/g, '')
52
+    },
33 53
     toVerificationList () { // 前往核销列表
34 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 56
       } else {
37 57
         this.$message({
38 58
           message: '手机号为空!',
@@ -46,6 +66,7 @@ export default {
46 66
 
47 67
 <!-- Add "scoped" attribute to limit CSS to this component only -->
48 68
 <style lang="scss" scoped>
69
+@import "page.scss";
49 70
 .subPage {
50 71
   > div {
51 72
     width: 100%;

+ 29
- 1
src/pages/system/verificationManager/phoneVerification/page.scss 查看文件

@@ -1,4 +1,32 @@
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 查看文件

@@ -8,7 +8,7 @@
8 8
             type="warning"
9 9
             @click="reback">返回</el-button>
10 10
         </div>
11
-        <div v-if="(courses.list||[]).length>0">
11
+        <div v-if="courses !== null && (courses.list||[]).length>0">
12 12
           <el-table
13 13
               :data="courses.list"
14 14
               stripe
@@ -213,7 +213,9 @@ export default {
213 213
     },
214 214
     getList () {
215 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 221
     afterCheck () {

+ 2
- 2
src/util/api.js 查看文件

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