许成详 6 years ago
parent
commit
ce35476f5e

+ 2
- 2
config/index.js View File

@@ -12,10 +12,10 @@ 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
15
+        // target: 'http://192.168.0.62:8080', //wf
16 16
         // target: 'http://127.0.0.1:8080', 
17 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 19
         // target: 'http://dev.ycjcjy.com/', //frp
20 20
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
21 21
         // pathRewrite: {

+ 1
- 0
dist/index.html View File

@@ -0,0 +1 @@
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 View File

@@ -1 +1 @@
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 View File

@@ -121,6 +121,7 @@
121 121
               <div class="addLine flex-h" style="align-item:center;margin-bottom:20px;">
122 122
                 <el-date-picker
123 123
                   value-format="yyyy-MM-ddT00:00:00Z"
124
+                  :picker-options="pickerOptions"
124 125
                   v-model="cardInfo.StartDate"
125 126
                   type="date"
126 127
                   placeholder="选择起始日期"
@@ -129,6 +130,7 @@
129 130
                 <span style="line-height:40px;">至</span>
130 131
                 <el-date-picker
131 132
                   value-format="yyyy-MM-ddT23:59:59Z"
133
+                  :picker-options="pickerOptions"
132 134
                   v-model="cardInfo.EndDate"
133 135
                   type="date"
134 136
                   placeholder="选择截止日期"
@@ -276,7 +278,15 @@ export default {
276 278
       set (val) {
277 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 291
   methods: {
282 292
     ...mapGymCardActions([

+ 9
- 1
src/pages/system/cardAndCouponManager/bodyBuildingCardManager/index.vue View File

@@ -274,7 +274,15 @@ export default {
274 274
       set (val) {
275 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 287
   methods: {
280 288
     ...mapGymCardActions([

+ 17
- 3
src/pages/system/cardAndCouponManager/cardManager/edit.vue View File

@@ -122,13 +122,14 @@
122 122
                   value-format="yyyy-MM-ddT00:00:00Z"
123 123
                   :disabled="isEdit"
124 124
                   v-model="cardInfo.StartDate"
125
+                  :picker-options="pickerOptions"
125 126
                   type="date"
126 127
                   placeholder="选择起始日期">
127 128
                 </el-date-picker>
128 129
                 <span style="line-height:40px;">至</span>
129 130
                 <el-date-picker
130 131
                   value-format="yyyy-MM-ddT23:59:59Z"
131
-                  :disabled="isEdit"
132
+                  :disabled="true"
132 133
                   v-model="cardInfo.EndDate"
133 134
                   type="date"
134 135
                   placeholder="选择截止日期">
@@ -324,7 +325,16 @@ export default {
324 325
       set (val) {
325 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 339
   methods: {
330 340
     ...mapCardActions([
@@ -339,7 +349,11 @@ export default {
339 349
       'GetChannelListList',
340 350
     ]),
341 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 358
     caseChange () { // 选择案场
345 359
       this.GetChannelListList({

+ 1
- 0
src/pages/system/cardAndCouponManager/cardManager/index.vue View File

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

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

@@ -165,6 +165,7 @@
165 165
                   value-format="yyyy-MM-ddT00:00:00Z"
166 166
                   :disabled="isEdit"
167 167
                   v-model="couponInfo.StartDate"
168
+                  :picker-options="pickerOptions"
168 169
                   type="date"
169 170
                   placeholder="选择起始日期">
170 171
                 </el-date-picker>
@@ -173,6 +174,7 @@
173 174
                   value-format="yyyy-MM-ddT23:59:59Z"
174 175
                   :disabled="isEdit"
175 176
                   v-model="couponInfo.EndDate"
177
+                  :picker-options="pickerOptions"
176 178
                   type="date"
177 179
                   placeholder="选择截止日期">
178 180
                 </el-date-picker>
@@ -200,6 +202,7 @@
200 202
                 value-format="yyyy-MM-ddT00:00:00Z"
201 203
                 :disabled="isEdit"
202 204
                 v-model="couponInfo.StartDate"
205
+                :picker-options="pickerOptions"
203 206
                 type="date"
204 207
                 placeholder="选择起始日期">
205 208
               </el-date-picker>
@@ -208,6 +211,7 @@
208 211
                 value-format="yyyy-MM-ddT23:59:59Z"
209 212
                 :disabled="isEdit"
210 213
                 v-model="couponInfo.EndDate"
214
+                :picker-options="pickerOptions"
211 215
                 type="date"
212 216
                 placeholder="选择截止日期">
213 217
               </el-date-picker>
@@ -491,6 +495,14 @@ export default {
491 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 507
   methods: {
496 508
     ...mapGoodsActions([
@@ -588,12 +600,12 @@ export default {
588 600
       this.currentSelectArr = val
589 601
     },
590 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 609
       this.couponInfo.Targets = []
598 610
     },
599 611
     addGoods () { // 添加指定商品
@@ -612,7 +624,7 @@ export default {
612 624
         }).then((res) => {
613 625
           this.total = res.pagenum
614 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 View File

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

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

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

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

@@ -119,6 +119,7 @@
119 119
             <div>
120 120
               <el-date-picker
121 121
                 value-format="yyyy-MM-ddT00:00:00Z"
122
+                :picker-options="pickerOptions"
122 123
                 v-model="detail.BeginDate"
123 124
                 type="date"
124 125
                 placeholder="选择起始日期">
@@ -126,6 +127,7 @@
126 127
               <span style="line-height:40px;">至</span>
127 128
               <el-date-picker
128 129
                 value-format="yyyy-MM-ddT23:59:59Z"
130
+                :picker-options="pickerOptions"
129 131
                 v-model="detail.EndDate"
130 132
                 type="date"
131 133
                 placeholder="选择截止日期">
@@ -227,33 +229,33 @@ export default {
227 229
   name: '',
228 230
   data () {
229 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 261
   computed: {
@@ -279,6 +281,14 @@ export default {
279 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 292
     courseDate: {
283 293
       get () {
284 294
         return this.detail.BeginDate && this.detail.EndDate ? [this.detail.BeginDate, this.detail.EndDate] : []
@@ -371,7 +381,7 @@ export default {
371 381
         errorMsg: '截止日期不能为空',
372 382
         type: 'isNull'
373 383
       }, {
374
-        target: (this.detail.IsSelect || ''),
384
+        target: ((this.detail.IsSelect === 0 || this.detail.IsSelect) || ''),
375 385
         errorMsg: '是否精选课程不能为空',
376 386
         type: 'isNull'
377 387
       }])

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

@@ -15,24 +15,24 @@
15 15
         <div v-if="subItem.type === 'dashboardList'">
16 16
           <dashboardList :data="subItem" :index="subIndex"></dashboardList>
17 17
         </div>
18
-        <!-- <div v-if="subItem.type === 'histogram' && subItem.value.length">
18
+        <div v-if="subItem.type === 'histogram' && subItem.value.length">
19 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 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 25
           <brokenLineGraph :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraph>
26 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 28
           <ringChart :data="subItem.value" :index="index + '-' + subIndex"></ringChart>
29 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 31
           <dashboard :data="subItem.value" :index="index + '-' + subIndex"></dashboard>
32 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 34
           <brokenLineGraphGroup :data="subItem.value" :index="index + '-' + subIndex"></brokenLineGraphGroup>
35
-        </div> -->
35
+        </div>
36 36
       </div>
37 37
     </div>
38 38
   </div>

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

@@ -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