瀏覽代碼

Merge branch 'dev' of http://git.ycjcjy.com/SpaceOfCheng/admin into dev

wangfei 6 年之前
父節點
當前提交
e2113d3422

+ 2
- 2
config/index.js 查看文件

12
     proxyTable: {
12
     proxyTable: {
13
       '/api': {
13
       '/api': {
14
         // target: 'https://dp.huiju360.com.cn/hj_operations',
14
         // target: 'https://dp.huiju360.com.cn/hj_operations',
15
-        target: 'http://192.168.0.62:8080', //wf
15
+        // target: 'http://192.168.0.62:8080', //wf
16
         // target: 'http://127.0.0.1:8080', 
16
         // target: 'http://127.0.0.1:8080', 
17
         // target: 'http://192.168.0.11', //ys
17
         // target: 'http://192.168.0.11', //ys
18
-        // target: 'http://192.168.0.125:8080', //hyq
18
+        target: 'http://192.168.0.125:8080', //hyq
19
         // target: 'http://dev.ycjcjy.com/', //frp
19
         // target: 'http://dev.ycjcjy.com/', //frp
20
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
20
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
21
         // pathRewrite: {
21
         // pathRewrite: {

+ 1
- 0
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_dwqa9wy3lkh.css><title>城的空间后台管理系统</title><link href=./static/css/app.3f22746ff9befe9fe6f3e4011c66377b.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.c8c5753171ab375d2925.js></script></body></html>

+ 1
- 1
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map 查看文件

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

+ 11
- 1
src/pages/system/cardAndCouponManager/bodyBuildingCardManager/edit.vue 查看文件

121
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
121
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
122
                 <el-date-picker
122
                 <el-date-picker
123
                   value-format="yyyy-MM-ddT00:00:00Z"
123
                   value-format="yyyy-MM-ddT00:00:00Z"
124
+                  :picker-options="pickerOptions"
124
                   v-model="cardInfo.StartDate"
125
                   v-model="cardInfo.StartDate"
125
                   type="date"
126
                   type="date"
126
                   placeholder="选择起始日期"
127
                   placeholder="选择起始日期"
129
                 <span style="line-height:40px;">至</span>
130
                 <span style="line-height:40px;">至</span>
130
                 <el-date-picker
131
                 <el-date-picker
131
                   value-format="yyyy-MM-ddT23:59:59Z"
132
                   value-format="yyyy-MM-ddT23:59:59Z"
133
+                  :picker-options="pickerOptions"
132
                   v-model="cardInfo.EndDate"
134
                   v-model="cardInfo.EndDate"
133
                   type="date"
135
                   type="date"
134
                   placeholder="选择截止日期"
136
                   placeholder="选择截止日期"
276
       set (val) {
278
       set (val) {
277
         this.postData.caseid = val
279
         this.postData.caseid = val
278
       }
280
       }
279
-    }
281
+    },
282
+    pickerOptions () {
283
+      var beginDate = Date.now() - 24 * 60 * 60 * 1000
284
+      return {
285
+        disabledDate (time) {
286
+          return time.getTime() < beginDate
287
+        }
288
+      }
289
+    },
280
   },
290
   },
281
   methods: {
291
   methods: {
282
     ...mapGymCardActions([
292
     ...mapGymCardActions([

+ 9
- 1
src/pages/system/cardAndCouponManager/bodyBuildingCardManager/index.vue 查看文件

274
       set (val) {
274
       set (val) {
275
         this.postData.caseid = val
275
         this.postData.caseid = val
276
       }
276
       }
277
-    }
277
+    },
278
+    pickerOptions () {
279
+      var beginDate = Date.now() - 24 * 60 * 60 * 1000
280
+      return {
281
+        disabledDate (time) {
282
+          return time.getTime() < beginDate
283
+        }
284
+      }
285
+    },
278
   },
286
   },
279
   methods: {
287
   methods: {
280
     ...mapGymCardActions([
288
     ...mapGymCardActions([

+ 17
- 3
src/pages/system/cardAndCouponManager/cardManager/edit.vue 查看文件

122
                   value-format="yyyy-MM-ddT00:00:00Z"
122
                   value-format="yyyy-MM-ddT00:00:00Z"
123
                   :disabled="isEdit"
123
                   :disabled="isEdit"
124
                   v-model="cardInfo.StartDate"
124
                   v-model="cardInfo.StartDate"
125
+                  :picker-options="pickerOptions"
125
                   type="date"
126
                   type="date"
126
                   placeholder="选择起始日期">
127
                   placeholder="选择起始日期">
127
                 </el-date-picker>
128
                 </el-date-picker>
128
                 <span style="line-height:40px;">至</span>
129
                 <span style="line-height:40px;">至</span>
129
                 <el-date-picker
130
                 <el-date-picker
130
                   value-format="yyyy-MM-ddT23:59:59Z"
131
                   value-format="yyyy-MM-ddT23:59:59Z"
131
-                  :disabled="isEdit"
132
+                  :disabled="true"
132
                   v-model="cardInfo.EndDate"
133
                   v-model="cardInfo.EndDate"
133
                   type="date"
134
                   type="date"
134
                   placeholder="选择截止日期">
135
                   placeholder="选择截止日期">
324
       set (val) {
325
       set (val) {
325
         this.postData.caseid = val
326
         this.postData.caseid = val
326
       }
327
       }
327
-    }
328
+    },
329
+    pickerOptions () {
330
+      var beginDate = Date.now() - 24 * 60 * 60 * 1000
331
+      var endDate = new Date(this.cardInfo.EndDate).getTime()
332
+      return {
333
+        disabledDate (time) {
334
+          return time.getTime() < beginDate || time.getTime() > endDate
335
+        }
336
+      }
337
+    },
328
   },
338
   },
329
   methods: {
339
   methods: {
330
     ...mapCardActions([
340
     ...mapCardActions([
339
       'GetChannelListList',
349
       'GetChannelListList',
340
     ]),
350
     ]),
341
     courseChange () {
351
     courseChange () {
342
-      // 1
352
+      for (var n = 0; n < this.courseList.length; n++) {
353
+        if (this.courseList[n].CourseId === this.cardInfo.Targets[0].TargetId) {
354
+          this.cardInfo.EndDate = this.courseList[n].EndDate
355
+        }
356
+      }
343
     },
357
     },
344
     caseChange () { // 选择案场
358
     caseChange () { // 选择案场
345
       this.GetChannelListList({
359
       this.GetChannelListList({

+ 1
- 0
src/pages/system/cardAndCouponManager/cardManager/index.vue 查看文件

110
       title="选择赠送客户"
110
       title="选择赠送客户"
111
       :visible.sync="centerDialogVisible"
111
       :visible.sync="centerDialogVisible"
112
       width="800px"
112
       width="800px"
113
+      @close="dialogPostData.page = 1"
113
       center>
114
       center>
114
       <div>
115
       <div>
115
         <ul class="dialogSearchList flex-h" style="margin-bottom:10px;">
116
         <ul class="dialogSearchList flex-h" style="margin-bottom:10px;">

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

165
                   value-format="yyyy-MM-ddT00:00:00Z"
165
                   value-format="yyyy-MM-ddT00:00:00Z"
166
                   :disabled="isEdit"
166
                   :disabled="isEdit"
167
                   v-model="couponInfo.StartDate"
167
                   v-model="couponInfo.StartDate"
168
+                  :picker-options="pickerOptions"
168
                   type="date"
169
                   type="date"
169
                   placeholder="选择起始日期">
170
                   placeholder="选择起始日期">
170
                 </el-date-picker>
171
                 </el-date-picker>
173
                   value-format="yyyy-MM-ddT23:59:59Z"
174
                   value-format="yyyy-MM-ddT23:59:59Z"
174
                   :disabled="isEdit"
175
                   :disabled="isEdit"
175
                   v-model="couponInfo.EndDate"
176
                   v-model="couponInfo.EndDate"
177
+                  :picker-options="pickerOptions"
176
                   type="date"
178
                   type="date"
177
                   placeholder="选择截止日期">
179
                   placeholder="选择截止日期">
178
                 </el-date-picker>
180
                 </el-date-picker>
200
                 value-format="yyyy-MM-ddT00:00:00Z"
202
                 value-format="yyyy-MM-ddT00:00:00Z"
201
                 :disabled="isEdit"
203
                 :disabled="isEdit"
202
                 v-model="couponInfo.StartDate"
204
                 v-model="couponInfo.StartDate"
205
+                :picker-options="pickerOptions"
203
                 type="date"
206
                 type="date"
204
                 placeholder="选择起始日期">
207
                 placeholder="选择起始日期">
205
               </el-date-picker>
208
               </el-date-picker>
208
                 value-format="yyyy-MM-ddT23:59:59Z"
211
                 value-format="yyyy-MM-ddT23:59:59Z"
209
                 :disabled="isEdit"
212
                 :disabled="isEdit"
210
                 v-model="couponInfo.EndDate"
213
                 v-model="couponInfo.EndDate"
214
+                :picker-options="pickerOptions"
211
                 type="date"
215
                 type="date"
212
                 placeholder="选择截止日期">
216
                 placeholder="选择截止日期">
213
               </el-date-picker>
217
               </el-date-picker>
491
         this.couponInfo.caseid = val
495
         this.couponInfo.caseid = val
492
       }
496
       }
493
     },
497
     },
498
+    pickerOptions () {
499
+      var beginDate = Date.now() - 24 * 60 * 60 * 1000
500
+      return {
501
+        disabledDate (time) {
502
+          return time.getTime() < beginDate
503
+        }
504
+      }
505
+    },
494
   },
506
   },
495
   methods: {
507
   methods: {
496
     ...mapGoodsActions([
508
     ...mapGoodsActions([
588
       this.currentSelectArr = val
600
       this.currentSelectArr = val
589
     },
601
     },
590
     couponTypeChange () {
602
     couponTypeChange () {
591
-      if (this.goodsList.length) {
592
-        this.goodsList = []
593
-      }
594
-      if (this.courseList.length) {
595
-        this.courseList = []
596
-      }
603
+      // if (this.goodsList.length) {
604
+      //   this.goodsList = []
605
+      // }
606
+      // if (this.courseList.length) {
607
+      //   this.courseList = []
608
+      // }
597
       this.couponInfo.Targets = []
609
       this.couponInfo.Targets = []
598
     },
610
     },
599
     addGoods () { // 添加指定商品
611
     addGoods () { // 添加指定商品
612
         }).then((res) => {
624
         }).then((res) => {
613
           this.total = res.pagenum
625
           this.total = res.pagenum
614
           this.centerDialogVisible = true
626
           this.centerDialogVisible = true
615
-          console.log(JSON.stringify(this.courseList))
627
+          // console.log(JSON.stringify(this.courseList))
616
         })
628
         })
617
       }
629
       }
618
     },
630
     },

+ 1
- 0
src/pages/system/cardAndCouponManager/couponManager/index.vue 查看文件

101
       title="选择赠送客户"
101
       title="选择赠送客户"
102
       :visible.sync="centerDialogVisible"
102
       :visible.sync="centerDialogVisible"
103
       width="800px"
103
       width="800px"
104
+      @close="dialogPostData.page = 1"
104
       center>
105
       center>
105
       <div>
106
       <div>
106
         <ul class="dialogSearchList flex-h" style="margin-bottom:10px;">
107
         <ul class="dialogSearchList flex-h" style="margin-bottom:10px;">

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

53
         <div class="flex-item flex-h" style="margin-top: 20px;">
53
         <div class="flex-item flex-h" style="margin-top: 20px;">
54
           <el-button size="mini" type="success" @click='addVIP'>新增VIP</el-button>
54
           <el-button size="mini" type="success" @click='addVIP'>新增VIP</el-button>
55
           <el-button size="mini" type="success" @click='activateVip'>激活VIP</el-button>
55
           <el-button size="mini" type="success" @click='activateVip'>激活VIP</el-button>
56
+          <el-button size="mini" type="warning" @click='exportExcel'>导出Excel</el-button>
56
         </div>
57
         </div>
57
       </div>
58
       </div>
58
     </div>
59
     </div>
178
     activateVip () {
179
     activateVip () {
179
       this.$router.push({ name: 'activateVip' })
180
       this.$router.push({ name: 'activateVip' })
180
     },
181
     },
182
+    exportExcel () {
183
+      window.open(`${this.toolClass.ReplaceOrg(this.$api.cardManager.vipcardExcel.url)}?token=${localStorage.getItem('JWT')}&cardNo=${this.$data.postData.cardNo}&sellerName=${this.$data.postData.sellerName}&userName=${this.$data.postData.userName}&caseid=${this.CaseId === 'all' ? '' : this.CaseId}`, '_blank')
184
+    }
181
   }
185
   }
182
 }
186
 }
183
 </script>
187
 </script>

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

302
         errorMsg: '展示课程不能为空',
302
         errorMsg: '展示课程不能为空',
303
         type: 'isNull'
303
         type: 'isNull'
304
       }, {
304
       }, {
305
-        target: (this.detail.Status || ''),
305
+        target: ((this.detail.Status === 0 || this.detail.Status) || ''),
306
         errorMsg: '是否前台展示不能为空',
306
         errorMsg: '是否前台展示不能为空',
307
         type: 'isNull'
307
         type: 'isNull'
308
       }])
308
       }])

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

119
             <div>
119
             <div>
120
               <el-date-picker
120
               <el-date-picker
121
                 value-format="yyyy-MM-ddT00:00:00Z"
121
                 value-format="yyyy-MM-ddT00:00:00Z"
122
+                :picker-options="pickerOptions"
122
                 v-model="detail.BeginDate"
123
                 v-model="detail.BeginDate"
123
                 type="date"
124
                 type="date"
124
                 placeholder="选择起始日期">
125
                 placeholder="选择起始日期">
126
               <span style="line-height:40px;">至</span>
127
               <span style="line-height:40px;">至</span>
127
               <el-date-picker
128
               <el-date-picker
128
                 value-format="yyyy-MM-ddT23:59:59Z"
129
                 value-format="yyyy-MM-ddT23:59:59Z"
130
+                :picker-options="pickerOptions"
129
                 v-model="detail.EndDate"
131
                 v-model="detail.EndDate"
130
                 type="date"
132
                 type="date"
131
                 placeholder="选择截止日期">
133
                 placeholder="选择截止日期">
227
   name: '',
229
   name: '',
228
   data () {
230
   data () {
229
     return {
231
     return {
230
-      pickerOptions: {
231
-        shortcuts: [{
232
-          text: '最近一周',
233
-          onClick (picker) {
234
-            const end = new Date()
235
-            const start = new Date()
236
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
237
-            picker.$emit('pick', [start, end])
238
-          }
239
-        }, {
240
-          text: '最近一个月',
241
-          onClick (picker) {
242
-            const end = new Date()
243
-            const start = new Date()
244
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
245
-            picker.$emit('pick', [start, end])
246
-          }
247
-        }, {
248
-          text: '最近三个月',
249
-          onClick (picker) {
250
-            const end = new Date()
251
-            const start = new Date()
252
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
253
-            picker.$emit('pick', [start, end])
254
-          }
255
-        }]
256
-      },
232
+      // pickerOptions: {
233
+      //   shortcuts: [{
234
+      //     text: '最近一周',
235
+      //     onClick (picker) {
236
+      //       const end = new Date()
237
+      //       const start = new Date()
238
+      //       start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
239
+      //       picker.$emit('pick', [start, end])
240
+      //     }
241
+      //   }, {
242
+      //     text: '最近一个月',
243
+      //     onClick (picker) {
244
+      //       const end = new Date()
245
+      //       const start = new Date()
246
+      //       start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
247
+      //       picker.$emit('pick', [start, end])
248
+      //     }
249
+      //   }, {
250
+      //     text: '最近三个月',
251
+      //     onClick (picker) {
252
+      //       const end = new Date()
253
+      //       const start = new Date()
254
+      //       start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
255
+      //       picker.$emit('pick', [start, end])
256
+      //     }
257
+      //   }]
258
+      // },
257
     }
259
     }
258
   },
260
   },
259
   computed: {
261
   computed: {
279
         this.UpdateInfo({ ...this.detail, CaseId: val })
281
         this.UpdateInfo({ ...this.detail, CaseId: val })
280
       }
282
       }
281
     },
283
     },
284
+    pickerOptions () {
285
+      var beginDate = Date.now() - 24 * 60 * 60 * 1000
286
+      return {
287
+        disabledDate (time) {
288
+          return time.getTime() < beginDate
289
+        }
290
+      }
291
+    },
282
     courseDate: {
292
     courseDate: {
283
       get () {
293
       get () {
284
         return this.detail.BeginDate && this.detail.EndDate ? [this.detail.BeginDate, this.detail.EndDate] : []
294
         return this.detail.BeginDate && this.detail.EndDate ? [this.detail.BeginDate, this.detail.EndDate] : []
371
         errorMsg: '截止日期不能为空',
381
         errorMsg: '截止日期不能为空',
372
         type: 'isNull'
382
         type: 'isNull'
373
       }, {
383
       }, {
374
-        target: (this.detail.IsSelect || ''),
384
+        target: ((this.detail.IsSelect === 0 || this.detail.IsSelect) || ''),
375
         errorMsg: '是否精选课程不能为空',
385
         errorMsg: '是否精选课程不能为空',
376
         type: 'isNull'
386
         type: 'isNull'
377
       }])
387
       }])

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

15
         <div v-if="subItem.type === 'dashboardList'">
15
         <div v-if="subItem.type === 'dashboardList'">
16
           <dashboardList :data="subItem" :index="subIndex"></dashboardList>
16
           <dashboardList :data="subItem" :index="subIndex"></dashboardList>
17
         </div>
17
         </div>
18
-        <!-- <div v-if="subItem.type === 'histogram' && subItem.value.length">
18
+        <div v-if="subItem.type === 'histogram' && subItem.value.length">
19
           <histogram :data="subItem.value" :index="index + '-' + subIndex"></histogram>
19
           <histogram :data="subItem.value" :index="index + '-' + subIndex"></histogram>
20
-        </div> -->
21
-        <!-- <div v-if="subItem.type === 'pieDiagram' && subItem.value.length">
20
+        </div>
21
+        <div v-if="subItem.type === 'pieDiagram' && typeof(subItem.value) === 'object' && subItem.value.length">
22
           <pieDiagram :data="subItem" :index="index + '-' + subIndex"></pieDiagram>
22
           <pieDiagram :data="subItem" :index="index + '-' + subIndex"></pieDiagram>
23
-        </div> -->
24
-        <!-- <div v-if="subItem.type === 'brokenLineGraph' && subItem.value.length">
23
+        </div>
24
+        <div v-if="subItem.type === 'brokenLineGraph' && typeof(subItem.value) === 'object' && subItem.value.length">
25
           <brokenLineGraph :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraph>
25
           <brokenLineGraph :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraph>
26
         </div>
26
         </div>
27
-        <div v-if="subItem.type === 'ringChart' && subItem.value.length">
27
+        <div v-if="subItem.type === 'ringChart' && typeof(subItem.value) === 'object' && subItem.value.length">
28
           <ringChart :data="subItem.value" :index="index + '-' + subIndex"></ringChart>
28
           <ringChart :data="subItem.value" :index="index + '-' + subIndex"></ringChart>
29
         </div>
29
         </div>
30
-        <div v-if="subItem.type === 'dashboard' && subItem.value.length">
30
+        <div v-if="subItem.type === 'dashboard' && typeof(subItem.value) === 'object' && subItem.value.length">
31
           <dashboard :data="subItem.value" :index="index + '-' + subIndex"></dashboard>
31
           <dashboard :data="subItem.value" :index="index + '-' + subIndex"></dashboard>
32
         </div>
32
         </div>
33
-        <div v-if="subItem.type === 'brokenLineGraphGroup' && subItem.value.length">
33
+        <div v-if="subItem.type === 'brokenLineGraphGroup' && typeof(subItem.value) === 'object' && subItem.value.length">
34
           <brokenLineGraphGroup :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraphGroup>
34
           <brokenLineGraphGroup :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraphGroup>
35
-        </div> -->
35
+        </div>
36
       </div>
36
       </div>
37
     </div>
37
     </div>
38
   </div>
38
   </div>

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

649
       method: 'post',
649
       method: 'post',
650
       url: `${baseUrl}${common}/card/:id/to/:users`
650
       url: `${baseUrl}${common}/card/:id/to/:users`
651
     },
651
     },
652
+    vipcardExcel: {
653
+      method: 'get',
654
+      url: `${baseUrl}${common}/vipcard/excel`
655
+    },
652
   },
656
   },
653
   couponManager: {
657
   couponManager: {
654
     couponList: {
658
     couponList: {