yuantianjiao 6 年 前
コミット
928ac5af38
共有32 個のファイルを変更した600 個の追加160 個の削除を含む
  1. 1
    0
      .gitignore
  2. 1
    1
      dist/index.html
  3. 2
    0
      dist/static/css/app.50bef55cf5218719e68b5e53c341984a.css
  4. 1
    0
      dist/static/css/app.50bef55cf5218719e68b5e53c341984a.css.map
  5. 0
    2
      dist/static/css/app.9a8721a89ee6a280033371ac1a4cd30e.css
  6. 0
    1
      dist/static/css/app.9a8721a89ee6a280033371ac1a4cd30e.css.map
  7. 2
    0
      dist/static/css/app.de5c24aec59d7e1bf34ed6e01ddec500.css
  8. 1
    0
      dist/static/css/app.de5c24aec59d7e1bf34ed6e01ddec500.css.map
  9. 2
    0
      dist/static/js/app.611bcec97c1df93a0e1c.js
  10. 1
    0
      dist/static/js/app.611bcec97c1df93a0e1c.js.map
  11. 2
    0
      dist/static/js/app.ce3b6b4ac1ddaa161d53.js
  12. 1
    0
      dist/static/js/app.ce3b6b4ac1ddaa161d53.js.map
  13. 0
    2
      dist/static/js/app.f3f484966c7795e437dd.js
  14. 0
    1
      dist/static/js/app.f3f484966c7795e437dd.js.map
  15. 1
    1
      dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map
  16. 77
    0
      dist/static/js/vendor.2eefbe459a955945ef62.js
  17. 1
    0
      dist/static/js/vendor.2eefbe459a955945ef62.js.map
  18. 70
    0
      dist/static/js/vendor.88cbbf5123a71bf0def0.js
  19. 1
    0
      dist/static/js/vendor.88cbbf5123a71bf0def0.js.map
  20. 0
    71
      dist/static/js/vendor.9ceafbb898c5feb95a34.js
  21. 0
    1
      dist/static/js/vendor.9ceafbb898c5feb95a34.js.map
  22. 119
    39
      src/pages/system/cardAndCouponManager/vipManager/activateVip.vue
  23. 33
    11
      src/pages/system/cardAndCouponManager/vipManager/edit.vue
  24. 28
    19
      src/pages/system/cardAndCouponManager/vipManager/index.vue
  25. 53
    9
      src/pages/system/newOrder/caseRecord/index.vue
  26. 76
    0
      src/store/card/vip.js
  27. 14
    2
      src/store/case/record.js
  28. 32
    0
      src/store/customer/customer.js
  29. 17
    0
      src/store/goods/order.js
  30. 3
    0
      src/store/index.js
  31. 29
    0
      src/store/system/user.js
  32. 32
    0
      src/util/api.js

+ 1
- 0
.gitignore ファイルの表示

1
 .DS_Store
1
 .DS_Store
2
 node_modules/
2
 node_modules/
3
+dist/
3
 npm-debug.log*
4
 npm-debug.log*
4
 yarn-debug.log*
5
 yarn-debug.log*
5
 yarn-error.log*
6
 yarn-error.log*

+ 1
- 1
dist/index.html ファイルの表示

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_c8w80pqou5c.css><title>城的空间后台管理系统</title><link href=./static/css/app.9a8721a89ee6a280033371ac1a4cd30e.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.9ceafbb898c5feb95a34.js></script><script type=text/javascript src=./static/js/app.f3f484966c7795e437dd.js></script></body></html>
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_25hulf12ph6.css><title>城的空间后台管理系统</title><link href=./static/css/app.50bef55cf5218719e68b5e53c341984a.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.88cbbf5123a71bf0def0.js></script><script type=text/javascript src=./static/js/app.ce3b6b4ac1ddaa161d53.js></script></body></html>

+ 2
- 0
dist/static/css/app.50bef55cf5218719e68b5e53c341984a.css
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/static/css/app.50bef55cf5218719e68b5e53c341984a.css.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 2
dist/static/css/app.9a8721a89ee6a280033371ac1a4cd30e.css
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/static/css/app.9a8721a89ee6a280033371ac1a4cd30e.css.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 2
- 0
dist/static/css/app.de5c24aec59d7e1bf34ed6e01ddec500.css
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/static/css/app.de5c24aec59d7e1bf34ed6e01ddec500.css.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 2
- 0
dist/static/js/app.611bcec97c1df93a0e1c.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/static/js/app.611bcec97c1df93a0e1c.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 2
- 0
dist/static/js/app.ce3b6b4ac1ddaa161d53.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/static/js/app.ce3b6b4ac1ddaa161d53.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 2
dist/static/js/app.f3f484966c7795e437dd.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/static/js/app.f3f484966c7795e437dd.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 1
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map ファイルの表示

1
-{"version":3,"sources":["webpack:///webpack/bootstrap 67f48e46710049e36669"],"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 67f48e46710049e36669"],"sourceRoot":""}
1
+{"version":3,"sources":["webpack:///webpack/bootstrap 2f50910dc153de1c6765"],"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 2f50910dc153de1c6765"],"sourceRoot":""}

+ 77
- 0
dist/static/js/vendor.2eefbe459a955945ef62.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/static/js/vendor.2eefbe459a955945ef62.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 70
- 0
dist/static/js/vendor.88cbbf5123a71bf0def0.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/static/js/vendor.88cbbf5123a71bf0def0.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 71
dist/static/js/vendor.9ceafbb898c5feb95a34.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/static/js/vendor.9ceafbb898c5feb95a34.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 119
- 39
src/pages/system/cardAndCouponManager/vipManager/activateVip.vue ファイルの表示

5
         <div>
5
         <div>
6
           <el-input
6
           <el-input
7
             placeholder="请输入VIP卡号"
7
             placeholder="请输入VIP卡号"
8
-            v-model="postData.CardNo"
8
+            v-model="CardNo"
9
             clearable>
9
             clearable>
10
           </el-input>
10
           </el-input>
11
         </div>
11
         </div>
23
             <span>卡号:</span>
23
             <span>卡号:</span>
24
             <div class="flex-item">
24
             <div class="flex-item">
25
               <div>
25
               <div>
26
-                <span>{{activateData.CardNo}}</span>
26
+                <span>{{vip.VipCardChildCode}}</span>
27
               </div>
27
               </div>
28
             </div>
28
             </div>
29
           </li>
29
           </li>
31
             <span>金额:</span>
31
             <span>金额:</span>
32
             <div class="flex-item">
32
             <div class="flex-item">
33
               <div>
33
               <div>
34
-                <span>{{activateData.Price}}</span>
34
+                <span>{{vip.Amount}}</span>
35
               </div>
35
               </div>
36
             </div>
36
             </div>
37
           </li>
37
           </li>
38
           <li class="flex-h">
38
           <li class="flex-h">
39
-            <span>销售:</span>
39
+            <span>绑定用户:</span>
40
             <div class="flex-item" style="margin-right:10px;">
40
             <div class="flex-item" style="margin-right:10px;">
41
               <div>
41
               <div>
42
                 <el-input
42
                 <el-input
43
-                  placeholder="请输入销售手机号"
44
-                  v-model="sellerPhone"
43
+                  placeholder="请输入手机号"
44
+                  v-model="customerPhone"
45
                   clearable>
45
                   clearable>
46
                 </el-input>
46
                 </el-input>
47
               </div>
47
               </div>
48
             </div>
48
             </div>
49
-            <el-button type="success" @click='searchSeller'>查询</el-button>
49
+            <el-button type="success" @click='searchCustomer'>查询</el-button>
50
           </li>
50
           </li>
51
           <li class="flex-h">
51
           <li class="flex-h">
52
-            <span>销售姓名:</span>
52
+            <span>用户姓名:</span>
53
             <div class="flex-item">
53
             <div class="flex-item">
54
               <div>
54
               <div>
55
-                <span>{{activateData.SellerName}}</span>
55
+                <span>{{customer.CustomerName}}</span>
56
               </div>
56
               </div>
57
             </div>
57
             </div>
58
           </li>
58
           </li>
59
           <li class="flex-h">
59
           <li class="flex-h">
60
-            <span>绑定用户:</span>
61
-            <div class="flex-item">
60
+            <span>销售:</span>
61
+            <div class="flex-item" style="margin-right:10px;">
62
               <div>
62
               <div>
63
                 <el-input
63
                 <el-input
64
-                  placeholder="请输入手机号"
65
-                  v-model="activateData.UserPhone"
64
+                  placeholder="请输入销售手机号"
65
+                  v-model="salesPhone"
66
                   clearable>
66
                   clearable>
67
                 </el-input>
67
                 </el-input>
68
               </div>
68
               </div>
69
             </div>
69
             </div>
70
+            <el-button type="success" @click='searchSeller'>查询</el-button>
70
           </li>
71
           </li>
71
           <li class="flex-h">
72
           <li class="flex-h">
72
-            <span>用户姓名:</span>
73
+            <span>销售姓名:</span>
73
             <div class="flex-item">
74
             <div class="flex-item">
74
               <div>
75
               <div>
75
-                <el-input
76
-                  placeholder="请输入真实姓名"
77
-                  v-model="activateData.UserName"
78
-                  clearable>
79
-                </el-input>
76
+                <span>{{sales.RealName}}</span>
80
               </div>
77
               </div>
81
             </div>
78
             </div>
82
           </li>
79
           </li>
84
       </div>
81
       </div>
85
       <span slot="footer" class="dialog-footer">
82
       <span slot="footer" class="dialog-footer">
86
         <el-button @click="centerDialogVisible = false">取 消</el-button>
83
         <el-button @click="centerDialogVisible = false">取 消</el-button>
87
-        <el-button type="primary" @click="centerDialogVisible = false">激 活</el-button>
84
+        <el-button type="primary" @click="vipCharge">激 活</el-button>
88
       </span>
85
       </span>
89
     </el-dialog>
86
     </el-dialog>
90
   </div>
87
   </div>
91
 </template>
88
 </template>
92
 
89
 
93
 <script>
90
 <script>
94
-import { mapState } from 'vuex'
91
+import { createNamespacedHelpers, mapState } from 'vuex'
92
+
93
+const { mapState: mapVipState, mapActions: mapVipActions } = createNamespacedHelpers('vip')
94
+const { mapState: mapCustomerState, mapActions: mapCustomerActions } = createNamespacedHelpers('customer')
95
+const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
95
 export default {
96
 export default {
96
   name: '',
97
   name: '',
97
   data () {
98
   data () {
98
     return {
99
     return {
99
-      centerDialogVisible: true,
100
-      postData: {
101
-        CardNo: '', // 卡号
102
-      },
103
-      activateData: {
104
-        CardNo: '111111111', // 卡号
105
-        Price: '1000', // 金额
106
-        SellerName: '', // 销售姓名
107
-        CaseName: 'xxx', // 案场名称
108
-        UserPhone: '', // 用户手机号
109
-        UserName: '', // 用户姓名
110
-      },
111
-      sellerPhone: '', // 销售手机号
100
+      centerDialogVisible: false,
101
+      CardNo: '',
102
+      salesPhone: '',
103
+      customerPhone: ''
112
     }
104
     }
113
   },
105
   },
114
   computed: {
106
   computed: {
117
       defaultCaseId: x => x.app.cases.default,
109
       defaultCaseId: x => x.app.cases.default,
118
       OrgId: x => x.app.user.OrgId,
110
       OrgId: x => x.app.user.OrgId,
119
     }),
111
     }),
112
+    ...mapCustomerState({
113
+      customer: x => x.customer,
114
+    }),
115
+    ...mapVipState({
116
+      vip: x => x.vipinfo,
117
+    }),
118
+    ...mapUserState({
119
+      sales: x => x.userinfo,
120
+    }),
120
     CaseId: {
121
     CaseId: {
121
       get () {
122
       get () {
122
         return this.postData.CaseId === '' ? this.defaultCaseId || '' : this.postData.CaseId
123
         return this.postData.CaseId === '' ? this.defaultCaseId || '' : this.postData.CaseId
126
       }
127
       }
127
     }
128
     }
128
   },
129
   },
129
-  created () { },
130
-  components: {},
131
   methods: {
130
   methods: {
132
-    searchSeller () { // 查询销售
131
+    ...mapCustomerActions([
132
+      'GetCustomerByTel',
133
+      'SetCustomerInfoNull',
134
+    ]),
135
+    ...mapVipActions([
136
+      'VipCharge',
137
+      'GetVipByCode',
138
+      'SetVipInfoNull',
139
+    ]),
140
+    ...mapUserActions([
141
+      'GetUserByTel',
142
+      'SetUserInfoNull',
143
+    ]),
144
+    searchCustomer () {
145
+      if (this.customerPhone === '') {
146
+        this.$message({
147
+          type: 'error',
148
+          message: '请先输入电话!',
149
+        })
150
+        return
151
+      }
152
+      this.GetCustomerByTel({tel: this.customerPhone})
153
+    },
154
+    searchSeller () {
155
+      if (this.salesPhone === '') {
156
+        this.$message({
157
+          type: 'error',
158
+          message: '请先输入销售电话!',
159
+        })
160
+        return
161
+      }
162
+      this.GetUserByTel({tel: this.salesPhone})
133
     },
163
     },
134
-    activateVip () { // 激活vip
135
-      this.centerDialogVisible = true
164
+    setNull () {
165
+      this.salesPhone = ''
166
+      this.customerPhone = ''
167
+      this.SetUserInfoNull()
168
+      this.SetCustomerInfoNull()
169
+    },
170
+    activateVip () {
171
+      this.GetVipByCode({ code: this.CardNo }).then((res) => {
172
+        if (res) {
173
+          if (res.Status !== 0) {
174
+            this.$message({
175
+              type: 'error',
176
+              message: 'VIP卡已被激活!',
177
+            })
178
+            return
179
+          }
180
+          this.setNull()
181
+          this.centerDialogVisible = true
182
+        } else {
183
+          this.$message({
184
+            type: 'error',
185
+            message: '没有查询到VIP卡信息!',
186
+          })
187
+        }
188
+      })
189
+    },
190
+    vipCharge () {
191
+      if (this.vip.VipCardChildCode === '') {
192
+        this.$message({
193
+          type: 'error',
194
+          message: '没有需要激活的卡信息!',
195
+        })
196
+        return
197
+      }
198
+      if (this.customer.Phone === '') {
199
+        this.$message({
200
+          type: 'error',
201
+          message: '没有绑定的用户信息!',
202
+        })
203
+        return
204
+      }
205
+      this.VipCharge({
206
+        code: this.vip.VipCardChildCode,
207
+        tel: this.customer.Phone,
208
+        salesid: this.sales.UserId || '',
209
+        salesname: this.sales.RealName || '',
210
+      }).then(() => {
211
+        this.$message({
212
+          type: 'success',
213
+          message: '激活成功!',
214
+        })
215
+      })
136
     },
216
     },
137
   },
217
   },
138
   mounted () { }
218
   mounted () { }

+ 33
- 11
src/pages/system/cardAndCouponManager/vipManager/edit.vue ファイルの表示

23
             <div style="width:50%">
23
             <div style="width:50%">
24
               <el-input
24
               <el-input
25
                 placeholder="请输入VIP卡数量"
25
                 placeholder="请输入VIP卡数量"
26
-                v-model="postData.CardNum"
26
+                v-model="postData.TotalCount"
27
                 clearable>
27
                 clearable>
28
               </el-input>
28
               </el-input>
29
             </div>
29
             </div>
35
             <div style="width:50%">
35
             <div style="width:50%">
36
               <el-input
36
               <el-input
37
                 placeholder="请输入价格"
37
                 placeholder="请输入价格"
38
-                v-model="postData.Price"
38
+                v-model="postData.CardAmount"
39
                 clearable>
39
                 clearable>
40
               </el-input>
40
               </el-input>
41
             </div>
41
             </div>
51
 </template>
51
 </template>
52
 
52
 
53
 <script>
53
 <script>
54
-import { mapState } from 'vuex'
54
+import { createNamespacedHelpers, mapState } from 'vuex'
55
+
56
+const { mapActions: mapVipActions } = createNamespacedHelpers('vip')
57
+
55
 export default {
58
 export default {
56
   name: '',
59
   name: '',
57
   data () {
60
   data () {
58
     return {
61
     return {
59
       postData: {
62
       postData: {
60
-        CardNum: '', // 卡数量
61
-        Price: '', // 价格
63
+        TotalCount: '', // 卡数量
64
+        CardAmount: '', // 价格
62
         CaseId: '', // 案场id
65
         CaseId: '', // 案场id
66
+        OrgId: '',
63
       }
67
       }
64
     }
68
     }
65
   },
69
   },
83
   },
87
   },
84
   components: {},
88
   components: {},
85
   methods: {
89
   methods: {
90
+    ...mapVipActions([
91
+      'AddVip',
92
+    ]),
86
     initData () { // 数据初始化
93
     initData () { // 数据初始化
87
-      // this.$ajax(this.$api.channelManager.getChannelInfo.url, {
88
-      //   method: this.$api.channelManager.getChannelInfo.method,
89
-      //   urlData: { channelId: this.$route.query.id }
90
-      // }).then(res => {
91
-      //   this.postData = res
92
-      // })
93
     },
94
     },
94
     submit () { // 提交数据
95
     submit () { // 提交数据
96
+      if (this.postData.TotalCount === '') {
97
+        this.$message({
98
+          type: 'error',
99
+          message: '请输入VIP卡数量!'
100
+        })
101
+        return
102
+      }
103
+      if (this.postData.CardAmount === 0) {
104
+        this.$message({
105
+          type: 'error',
106
+          message: '请输入价格!'
107
+        })
108
+        return
109
+      }
110
+      this.AddVip({...this.postData, CaseId: this.CaseId, OrgId: this.OrgId}).then(x => {
111
+        this.$message({
112
+          type: 'success',
113
+          message: '保存成功!'
114
+        })
115
+        this.$router.push({ name: 'vipList' })
116
+      })
95
     },
117
     },
96
     cancel () {
118
     cancel () {
97
       this.$router.push({ name: 'vipList' })
119
       this.$router.push({ name: 'vipList' })

+ 28
- 19
src/pages/system/cardAndCouponManager/vipManager/index.vue ファイルの表示

53
     </div>
53
     </div>
54
     <div class="system-table-box">
54
     <div class="system-table-box">
55
       <el-table
55
       <el-table
56
-        :data="currentList"
56
+        :data="vips.list"
57
         stripe
57
         stripe
58
         style="width: 100%">
58
         style="width: 100%">
59
         <el-table-column
59
         <el-table-column
60
-          prop="CardNo"
60
+          prop="VipCardChildCode"
61
           label="卡号">
61
           label="卡号">
62
         </el-table-column>
62
         </el-table-column>
63
         <el-table-column
63
         <el-table-column
64
-          prop="Price"
64
+          prop="Amount"
65
           label="价格">
65
           label="价格">
66
         </el-table-column>
66
         </el-table-column>
67
         <el-table-column
67
         <el-table-column
68
           prop="Status"
68
           prop="Status"
69
           label="状态">
69
           label="状态">
70
+          <template slot-scope="scope">
71
+            <span>{{scope.row.Status===1?'已激活':'未激活'}}</span>
72
+          </template>
70
         </el-table-column>
73
         </el-table-column>
71
         <el-table-column
74
         <el-table-column
72
-          prop="SellerName"
75
+          prop="SalesName"
73
           label="销售">
76
           label="销售">
74
         </el-table-column>
77
         </el-table-column>
75
         <el-table-column
78
         <el-table-column
77
           label="案场">
80
           label="案场">
78
         </el-table-column>
81
         </el-table-column>
79
         <el-table-column
82
         <el-table-column
80
-          prop="UserName"
83
+          prop="CustomerName"
81
           label="用户">
84
           label="用户">
82
         </el-table-column>
85
         </el-table-column>
83
         <el-table-column
86
         <el-table-column
84
-          prop="ActivationTime"
87
+          prop="ActiveDate"
85
           label="激活时间">
88
           label="激活时间">
89
+          <template slot-scope="scope">
90
+            <span>{{toolClass.dateFormat(scope.row.ActiveDate, 'yyyy-MM-dd')==='1-01-01'?'':toolClass.dateFormat(scope.row.ActiveDate, 'yyyy-MM-dd hh:mm')}}</span>
91
+          </template>
86
         </el-table-column>
92
         </el-table-column>
87
         <el-table-column
93
         <el-table-column
88
-          prop="CreatTime"
94
+          prop="CreateDate"
89
           label="创建时间">
95
           label="创建时间">
96
+          <template slot-scope="scope">
97
+            <span>{{toolClass.dateFormat(scope.row.CreateDate, 'yyyy-MM-dd hh:mm')}}</span>
98
+          </template>
90
         </el-table-column>
99
         </el-table-column>
91
       </el-table>
100
       </el-table>
92
     </div>
101
     </div>
95
       :current-page.sync="postData.page"
104
       :current-page.sync="postData.page"
96
       :page-size="postData.pagesize"
105
       :page-size="postData.pagesize"
97
       layout="prev, pager, next, jumper"
106
       layout="prev, pager, next, jumper"
98
-      :total="total">
107
+      :total="vips.pagenum">
99
     </el-pagination>
108
     </el-pagination>
100
   </div>
109
   </div>
101
 </template>
110
 </template>
102
 
111
 
103
 <script>
112
 <script>
104
-import { mapState } from 'vuex'
113
+import { createNamespacedHelpers, mapState } from 'vuex'
114
+
115
+const { mapState: mapVipState, mapActions: mapVipActions } = createNamespacedHelpers('vip')
105
 
116
 
106
 export default {
117
 export default {
107
   name: '',
118
   name: '',
116
         sellerName: '', // 销售姓名
127
         sellerName: '', // 销售姓名
117
         userName: '', // 用户名
128
         userName: '', // 用户名
118
       },
129
       },
119
-      currentList: [{
120
-        CardNo: 'xxx',
121
-        Price: 'xxx',
122
-        Status: 'xxx',
123
-        SellerName: 'xxx',
124
-        CaseName: 'xxx',
125
-        UserName: 'xxx',
126
-        ActivationTime: 'xxx',
127
-        CreatTime: 'xxx',
128
-      }]
129
     }
130
     }
130
   },
131
   },
131
   mounted () {
132
   mounted () {
134
     })
135
     })
135
   },
136
   },
136
   computed: {
137
   computed: {
138
+    ...mapVipState({
139
+      vips: x => x.vipList,
140
+    }),
137
     ...mapState({
141
     ...mapState({
138
       cases: x => x.app.cases.list,
142
       cases: x => x.app.cases.list,
139
       defaultCaseId: x => x.app.cases.default
143
       defaultCaseId: x => x.app.cases.default
148
     }
152
     }
149
   },
153
   },
150
   methods: {
154
   methods: {
155
+    ...mapVipActions([
156
+      'GetVipList',
157
+    ]),
151
     search () { // 搜索
158
     search () { // 搜索
152
       this.postData.page = 1
159
       this.postData.page = 1
153
       this.currentList = []
160
       this.currentList = []
154
       this.getList()
161
       this.getList()
155
     },
162
     },
156
     getList () { // 获取列表
163
     getList () { // 获取列表
164
+      this.GetVipList({...this.postData, caseid: this.CaseId})
157
     },
165
     },
158
     handleCurrentChange (val) { // 跳转到分页
166
     handleCurrentChange (val) { // 跳转到分页
167
+      this.postData.page = val
159
       this.getList()
168
       this.getList()
160
     },
169
     },
161
     addVIP () {
170
     addVIP () {

+ 53
- 9
src/pages/system/newOrder/caseRecord/index.vue ファイルの表示

3
     <div class="system-table-search">
3
     <div class="system-table-search">
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='addRecord'>新增</el-button>
6
+          <el-button size="mini" type="success" @click='addVisible = true'>新增</el-button>
7
         </div>
7
         </div>
8
         <ul>
8
         <ul>
9
           <li>
9
           <li>
43
         </el-table-column>
43
         </el-table-column>
44
         <el-table-column fixed='right' label="操作" width="300">
44
         <el-table-column fixed='right' label="操作" width="300">
45
           <template slot-scope="scope">
45
           <template slot-scope="scope">
46
-            <el-button size="mini" type="warning" @click="handleReport(scope.$index, scope.row)">导出Excel</el-button>
46
+            <el-button size="mini" type="warning" @click="handleReport(scope.row)">导出Excel</el-button>
47
           </template>
47
           </template>
48
         </el-table-column>
48
         </el-table-column>
49
       </el-table>
49
       </el-table>
113
 import { createNamespacedHelpers, mapState } from 'vuex'
113
 import { createNamespacedHelpers, mapState } from 'vuex'
114
 
114
 
115
 const { mapState: mapRecordState, mapActions: mapRecordActions } = createNamespacedHelpers('caserecord')
115
 const { mapState: mapRecordState, mapActions: mapRecordActions } = createNamespacedHelpers('caserecord')
116
+const { mapState: mapOrdersState, mapActions: mapOrdersActions } = createNamespacedHelpers('goodsorder')
116
 
117
 
117
 export default {
118
 export default {
118
   name: '',
119
   name: '',
119
   data () {
120
   data () {
120
     return {
121
     return {
121
       addVisible: false,
122
       addVisible: false,
123
+      excelData: [],
122
       detail: {
124
       detail: {
123
         CaseId: '',
125
         CaseId: '',
126
+        Month: '',
127
+        Num: 0,
124
       },
128
       },
125
       postData: {
129
       postData: {
126
         caseid: '',
130
         caseid: '',
137
     ...mapRecordState({
141
     ...mapRecordState({
138
       records: x => x.recordList,
142
       records: x => x.recordList,
139
     }),
143
     }),
144
+    ...mapOrdersState({
145
+      orders: x => x.recordOrders,
146
+    }),
140
     CaseId: {
147
     CaseId: {
141
       get () {
148
       get () {
142
-        return this.caseid || this.defaultCaseId
149
+        return this.postData.caseid || this.defaultCaseId
143
       },
150
       },
144
       set (val) {
151
       set (val) {
145
-        this.caseid = val
152
+        this.postData.caseid = val
146
       }
153
       }
147
-    }
154
+    },
148
   },
155
   },
149
   methods: {
156
   methods: {
150
     ...mapRecordActions([
157
     ...mapRecordActions([
151
       'GetRecordList',
158
       'GetRecordList',
159
+      'AddRecord',
160
+    ]),
161
+    ...mapOrdersActions([
162
+      'GetOrdersByRecord',
152
     ]),
163
     ]),
153
     getCaseName (caseid) {
164
     getCaseName (caseid) {
154
       return ((this.cases.filter(x => x.CaseId === caseid) || [])[0] || {}).CaseName
165
       return ((this.cases.filter(x => x.CaseId === caseid) || [])[0] || {}).CaseName
155
     },
166
     },
156
-    addRecord () {
157
-      this.addVisible = true
158
-    },
159
     search () {
167
     search () {
160
       this.getList()
168
       this.getList()
161
     },
169
     },
162
     submit () {
170
     submit () {
171
+      if (this.detail.CaseId === '') {
172
+        this.$message({
173
+          type: 'error',
174
+          message: '请先选择对应案场!'
175
+        })
176
+        return
177
+      }
178
+      if (this.detail.Month === '') {
179
+        this.$message({
180
+          type: 'error',
181
+          message: '请先选择月份!'
182
+        })
183
+        return
184
+      }
185
+      if (this.detail.Num <= 0) {
186
+        this.$message({
187
+          type: 'error',
188
+          message: '请输入规定次数!'
189
+        })
190
+        return
191
+      }
192
+      this.AddRecord({...this.detail, callback: this.afterSave, Month: this.toolClass.dateFormat(this.detail.Month, 'yyyy-MM')})
193
+    },
194
+    afterSave () {
195
+      this.$message({
196
+        type: 'success',
197
+        message: '保存成功!'
198
+      })
199
+      this.addVisible = false
200
+      this.getList()
163
     },
201
     },
164
     getList () {
202
     getList () {
165
-      this.GetRecordList(this.postData)
203
+      this.GetRecordList({...this.postData, caseid: this.CaseId})
166
     },
204
     },
167
     handleCurrentChange (val) { // 跳转到分页
205
     handleCurrentChange (val) { // 跳转到分页
168
       this.postData.page = val
206
       this.postData.page = val
169
       this.getList()
207
       this.getList()
170
     },
208
     },
209
+    handleReport (row) {
210
+      this.GetOrdersByRecord({id: row.RecordId, callback: this.ordersExport})
211
+    },
212
+  },
213
+  mounted () {
214
+    this.getList()
171
   }
215
   }
172
 }
216
 }
173
 </script>
217
 </script>

+ 76
- 0
src/store/card/vip.js ファイルの表示

1
+import ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+export default {
5
+  namespaced: true,
6
+  state: {
7
+    vipList: [],
8
+    vipinfo: {},
9
+  },
10
+  mutations: {
11
+    updateList (state, payload) {
12
+      state.vipList = payload || []
13
+    },
14
+    updateInfo (state, payload) {
15
+      state.vipinfo = payload || {}
16
+    },
17
+  },
18
+  actions: {
19
+    GetVipList ({ commit }, payload) {
20
+      return new Promise((resolve, reject) => {
21
+        ajax(api.cardManager.viplist.url, {
22
+          method: api.cardManager.viplist.method,
23
+          queryData: {
24
+            ...payload,
25
+          }
26
+        }).then(res => {
27
+          commit('updateList', res)
28
+          resolve(res)
29
+        }).catch(reject)
30
+      })
31
+    },
32
+    AddVip ({ commit }, payload) {
33
+      return new Promise((resolve, reject) => {
34
+        ajax(api.cardManager.vipadd.url, {
35
+          method: api.cardManager.vipadd.method,
36
+          data: {
37
+            ...payload,
38
+          }
39
+        }).then(res => {
40
+          resolve(res)
41
+        }).catch(reject)
42
+      })
43
+    },
44
+    GetVipByCode ({ commit }, { code }) {
45
+      return new Promise((resolve, reject) => {
46
+        ajax(api.cardManager.vipbycode.url, {
47
+          method: api.cardManager.vipbycode.method,
48
+          urlData: {
49
+            code,
50
+          }
51
+        }).then(res => {
52
+          commit('updateInfo', res)
53
+          resolve(res)
54
+        }).catch(reject)
55
+      })
56
+    },
57
+    VipCharge ({ commit }, payload) {
58
+      return new Promise((resolve, reject) => {
59
+        ajax(api.cardManager.vipcharge.url, {
60
+          method: api.cardManager.vipcharge.method,
61
+          urlData: {
62
+            code: payload.code
63
+          },
64
+          data: {
65
+            ...payload,
66
+          }
67
+        }).then(res => {
68
+          resolve(res)
69
+        }).catch(reject)
70
+      })
71
+    },
72
+    SetVipInfoNull ({ commit }) {
73
+      commit('updateInfo', {})
74
+    }
75
+  }
76
+}

+ 14
- 2
src/store/case/record.js ファイルの表示

13
   },
13
   },
14
   actions: {
14
   actions: {
15
     GetRecordList ({ commit }, payload) {
15
     GetRecordList ({ commit }, payload) {
16
-      ajax(api.case.getRecordList.url, {
17
-        method: api.case.getRecordList.method,
16
+      ajax(api.caseManager.getRecordList.url, {
17
+        method: api.caseManager.getRecordList.method,
18
         queryData: {
18
         queryData: {
19
           ...payload,
19
           ...payload,
20
         }
20
         }
25
         }
25
         }
26
       })
26
       })
27
     },
27
     },
28
+    AddRecord ({ commit }, payload) {
29
+      ajax(api.caseManager.addRecord.url, {
30
+        method: api.caseManager.addRecord.method,
31
+        data: {
32
+          ...payload,
33
+        }
34
+      }).then(res => {
35
+        if (payload.callback) {
36
+          payload.callback()
37
+        }
38
+      })
39
+    },
28
   }
40
   }
29
 }
41
 }

+ 32
- 0
src/store/customer/customer.js ファイルの表示

1
+import ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+export default {
5
+  namespaced: true,
6
+  state: {
7
+    customer: {},
8
+  },
9
+  mutations: {
10
+    updateInfo (state, payload) {
11
+      state.customer = payload || {}
12
+    },
13
+  },
14
+  actions: {
15
+    GetCustomerByTel ({ commit }, { tel }) {
16
+      return new Promise((resolve, reject) => {
17
+        ajax(api.customerManager.getByTel.url, {
18
+          method: api.customerManager.getByTel.method,
19
+          urlData: {
20
+            tel
21
+          }
22
+        }).then(res => {
23
+          commit('updateInfo', res)
24
+          resolve(res)
25
+        }).catch(reject)
26
+      })
27
+    },
28
+    SetCustomerInfoNull ({ commit }) {
29
+      commit('updateInfo', {})
30
+    }
31
+  }
32
+}

+ 17
- 0
src/store/goods/order.js ファイルの表示

5
   namespaced: true,
5
   namespaced: true,
6
   state: {
6
   state: {
7
     ordersList: [],
7
     ordersList: [],
8
+    recordOrders: [],
8
   },
9
   },
9
   mutations: {
10
   mutations: {
10
     updateList (state, payload) {
11
     updateList (state, payload) {
11
       state.ordersList = payload || []
12
       state.ordersList = payload || []
12
     },
13
     },
14
+    updateRecordList (state, payload) {
15
+      state.recordOrders = payload || []
16
+    },
13
   },
17
   },
14
   actions: {
18
   actions: {
15
     GetOrdersList ({ commit }, payload) {
19
     GetOrdersList ({ commit }, payload) {
22
         commit('updateList', res)
26
         commit('updateList', res)
23
       })
27
       })
24
     },
28
     },
29
+    GetOrdersByRecord ({ commit }, { id, callback }) {
30
+      ajax(api.goodsOrder.getOrdersByRecord.url, {
31
+        method: api.goodsOrder.getOrdersByRecord.method,
32
+        urlData: {
33
+          id
34
+        }
35
+      }).then(res => {
36
+        commit('updateRecordList', res)
37
+        if (callback) {
38
+          callback()
39
+        }
40
+      })
41
+    }
25
   }
42
   }
26
 }
43
 }

+ 3
- 0
src/store/index.js ファイルの表示

25
   goodsorder: () => require('./goods/order').default,
25
   goodsorder: () => require('./goods/order').default,
26
   cmscase: () => require('./cms/case').default,
26
   cmscase: () => require('./cms/case').default,
27
   caserecord: () => require('./case/record').default,
27
   caserecord: () => require('./case/record').default,
28
+  vip: () => require('./card/vip').default,
29
+  customer: () => require('./customer/customer').default,
30
+  user: () => require('./system/user').default,
28
 }
31
 }
29
 
32
 
30
 Object.keys(modules).forEach((modKey) => {
33
 Object.keys(modules).forEach((modKey) => {

+ 29
- 0
src/store/system/user.js ファイルの表示

1
+import ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+export default {
5
+  namespaced: true,
6
+  state: {
7
+    userinfo: {},
8
+  },
9
+  mutations: {
10
+    updateInfo (state, payload) {
11
+      state.userinfo = payload || {}
12
+    },
13
+  },
14
+  actions: {
15
+    GetUserByTel ({ commit }, { tel }) {
16
+      ajax(api.systemSet.getUserByTel.url, {
17
+        method: api.systemSet.getUserByTel.method,
18
+        urlData: {
19
+          tel,
20
+        }
21
+      }).then(res => {
22
+        commit('updateInfo', res)
23
+      })
24
+    },
25
+    SetUserInfoNull ({ commit }) {
26
+      commit('updateInfo', {})
27
+    }
28
+  }
29
+}

+ 32
- 0
src/util/api.js ファイルの表示

56
       method: 'get',
56
       method: 'get',
57
       url: `${baseUrl}${common}/userrole`
57
       url: `${baseUrl}${common}/userrole`
58
     },
58
     },
59
+    getUserByTel: {
60
+      method: 'get',
61
+      url: `${baseUrl}${common}/user/tel/:tel`
62
+    },
59
   },
63
   },
60
   channelManager: {
64
   channelManager: {
61
     getChannelList: { // 渠道列表
65
     getChannelList: { // 渠道列表
538
       method: 'get',
542
       method: 'get',
539
       url: `${baseUrl}${common}/order/online/goods`
543
       url: `${baseUrl}${common}/order/online/goods`
540
     },
544
     },
545
+    getOrdersByRecord: {
546
+      method: 'get',
547
+      url: `${baseUrl}${common}/order/goods/record/:id`
548
+    },
549
+  },
550
+  cardManager: {
551
+    viplist: {
552
+      method: 'get',
553
+      url: `${baseUrl}${common}/vipcard`
554
+    },
555
+    vipadd: {
556
+      method: 'post',
557
+      url: `${baseUrl}${common}/vipcard`
558
+    },
559
+    vipcharge: {
560
+      method: 'put',
561
+      url: `${baseUrl}${common}/vipcard/:code`
562
+    },
563
+    vipbycode: {
564
+      method: 'get',
565
+      url: `${baseUrl}${common}/vipcard/:code`
566
+    }
567
+  },
568
+  customerManager: {
569
+    getByTel: {
570
+      method: 'get',
571
+      url: `${baseUrl}${common}/customer/tel/:tel`
572
+    }
541
   },
573
   },
542
 }
574
 }
543
 export default $api
575
 export default $api