许成详 6 yıl önce
ebeveyn
işleme
2157f3b24e

+ 1
- 2
dist/index.html Dosyayı Görüntüle

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

+ 1
- 2
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map Dosyayı Görüntüle

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

+ 2
- 2
src/pages/system/channelManager/channelList/add.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
3 3
     <form class="mainForm">
4 4
       <ul>
5 5
         <li class="flex-h">
6
-          <span>选择案场:</span>
6
+          <span>选择案场:<em>*</em></span>
7 7
           <div class="flex-item">
8 8
             <div style="width:50%">
9 9
               <el-select v-model="CaseId" placeholder="请选择">
@@ -18,7 +18,7 @@
18 18
           </div>
19 19
         </li>
20 20
         <li class="flex-h">
21
-          <span>渠道名:</span>
21
+          <span>渠道名:<em>*</em></span>
22 22
           <div class="flex-item">
23 23
             <div style="width:50%">
24 24
               <el-input

+ 2
- 2
src/pages/system/channelManager/channelList/edit.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
3 3
     <form class="mainForm">
4 4
       <ul>
5 5
         <li class="flex-h">
6
-          <span>选择案场:</span>
6
+          <span>选择案场:<em>*</em></span>
7 7
           <div class="flex-item">
8 8
             <div style="width:50%">
9 9
               <el-select v-model="CaseId" placeholder="请选择">
@@ -18,7 +18,7 @@
18 18
           </div>
19 19
         </li>
20 20
         <li class="flex-h">
21
-          <span>渠道名:</span>
21
+          <span>渠道名:<em>*</em></span>
22 22
           <div class="flex-item">
23 23
             <div style="width:50%">
24 24
               <el-input

+ 61
- 34
src/pages/system/cmsManager/majorProjects/edit.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
3 3
     <form class="mainForm">
4 4
       <ul>
5 5
         <li class="flex-h">
6
-          <span>对应案场:</span>
6
+          <span>对应案场:<em>*</em></span>
7 7
           <div class="flex-item">
8 8
             <div style="width:50%">
9 9
               <el-select :disabled="id && id !== ''" v-model="CaseId" placeholder="请选择" @change="caseChange">
@@ -23,7 +23,7 @@
23 23
           </div>
24 24
         </li>
25 25
         <li class="flex-h">
26
-          <span>名称:</span>
26
+          <span>名称:<em>*</em></span>
27 27
           <div class="flex-item">
28 28
             <div style="width:50%">
29 29
               <el-input
@@ -47,20 +47,8 @@
47 47
           </div>
48 48
         </li>
49 49
         <li class="flex-h">
50
-          <span>图片:</span>
50
+          <span>图片:<em>*</em></span>
51 51
           <div class="flex-item">
52
-            <!-- <el-upload
53
-              action='string'
54
-              :http-request="toolClass.upload"
55
-              list-type="picture-card"
56
-              :limit='limit'
57
-              :file-list='imgsArr'
58
-              :on-success="handlePictureCardPreview"
59
-              :on-remove="handleRemove"
60
-              :on-exceed="exceed">
61
-              <i class="el-icon-plus"></i>
62
-            </el-upload> -->
63
-            <!-- 单选 -->
64 52
             <el-upload
65 53
               class="avatar-uploader"
66 54
               action='string'
@@ -73,20 +61,8 @@
73 61
           </div>
74 62
         </li>
75 63
         <li class="flex-h">
76
-          <span>详细图片:</span>
64
+          <span>详细图片:<em>*</em></span>
77 65
           <div class="flex-item">
78
-            <!-- <el-upload
79
-              action='string'
80
-              :http-request="toolClass.upload"
81
-              list-type="picture-card"
82
-              :limit='limit'
83
-              :file-list='detailimgsArr'
84
-              :on-success="handlePictureCardPreviewDetail"
85
-              :on-remove="handleRemoveDetail"
86
-              :on-exceed="exceed">
87
-              <i class="el-icon-plus"></i>
88
-            </el-upload> -->
89
-            <!-- 单选 -->
90 66
             <el-upload
91 67
               class="avatar-uploader"
92 68
               action='string'
@@ -99,7 +75,7 @@
99 75
           </div>
100 76
         </li>
101 77
         <li class="flex-h">
102
-          <span>专题简介:</span>
78
+          <span>专题简介:<em>*</em></span>
103 79
           <div class="flex-item">
104 80
             <div style="width:50%">
105 81
               <el-input
@@ -113,7 +89,7 @@
113 89
           </div>
114 90
         </li>
115 91
         <li class="flex-h">
116
-          <span>展示课程:</span>
92
+          <span>展示课程:<em>*</em></span>
117 93
           <div class="flex-item">
118 94
             <div style="width:50%" class="radio">
119 95
               <el-radio v-model="detail.IsAllCourse" :label='1' >全部课程</el-radio>
@@ -156,7 +132,7 @@
156 132
             <el-button type="primary" size="mini" @click="coursesShow">新增</el-button>
157 133
         </li>
158 134
         <li class="flex-h">
159
-          <span>是否前台展示:</span>
135
+          <span>是否前台展示:<em>*</em></span>
160 136
           <div class="flex-item">
161 137
             <div style="width:50%" class="radio">
162 138
               <el-radio v-model="detail.Status" :label='1' >是</el-radio>
@@ -288,15 +264,66 @@ export default {
288 264
       this.selCourseList = []
289 265
       this.detail.Courses = []
290 266
     },
267
+    checkFn (arr) {
268
+      for (var n = 0; n < arr.length; n++) {
269
+        if ((arr[n].type === 'isNull' && arr[n].target === '') || (arr[n].type === 'Array' && arr[n].target.length)) {
270
+          this.$message({
271
+            message: arr[n].errorMsg,
272
+            type: 'error'
273
+          })
274
+          return false
275
+        }
276
+      }
277
+      return true
278
+    },
291 279
     submit () {
280
+      var checkOff = this.checkFn([{
281
+        target: (this.CaseId || ''),
282
+        errorMsg: '对应案场不能为空',
283
+        type: 'isNull'
284
+      }, {
285
+        target: (this.detail.Name || ''),
286
+        errorMsg: '名称不能为空',
287
+        type: 'isNull'
288
+      }, {
289
+        target: (this.imgShow || ''),
290
+        errorMsg: '图片不能为空',
291
+        type: 'isNull'
292
+      }, {
293
+        target: (this.detailImgShow || ''),
294
+        errorMsg: '详细图片不能为空',
295
+        type: 'isNull'
296
+      }, {
297
+        target: (this.detail.DetailContent || ''),
298
+        errorMsg: '专题简介不能为空',
299
+        type: 'isNull'
300
+      }, {
301
+        target: (this.detail.IsAllCourse || ''),
302
+        errorMsg: '展示课程不能为空',
303
+        type: 'isNull'
304
+      }, {
305
+        target: (this.detail.Status || ''),
306
+        errorMsg: '是否前台展示不能为空',
307
+        type: 'isNull'
308
+      }])
309
+      if (!checkOff) {
310
+        return false
311
+      }
312
+      if (this.detail.IsAllCourse === '0' && !this.detail.Courses.length) {
313
+        this.$message({
314
+          message: '选择指定课程不能为空',
315
+          type: 'error'
316
+        })
317
+        return false
318
+      }
292 319
       const courseids = (this.detail.Courses || []).map(x => x.CourseId).join(',')
293 320
       if (this.id === '') {
294 321
         this.detail.OrgId = this.OrgId
295
-        this.AddCaseInfo({...this.detail, OrgId: this.OrgId, imgs: this.imgShow, detailimgs: this.detailImgShow, courseids}).then(res => {
322
+        this.AddCaseInfo({ ...this.detail, OrgId: this.OrgId, imgs: this.imgShow, detailimgs: this.detailImgShow, courseids }).then(res => {
296 323
           this.afterSave()
297 324
         })
298 325
       } else {
299
-        this.AddCaseInfo({...this.detail, imgs: this.imgShow, detailimgs: this.detailImgShow, courseids}).then(res => {
326
+        this.AddCaseInfo({ ...this.detail, imgs: this.imgShow, detailimgs: this.detailImgShow, courseids }).then(res => {
300 327
           this.afterSave()
301 328
         })
302 329
       }
@@ -318,7 +345,7 @@ export default {
318 345
       this.GetCaseInfo({ id: this.id })
319 346
     },
320 347
     getCourse () {
321
-      this.GetCourseList({caseid: this.CaseId === 'all' ? '' : this.CaseId, page: 1, pagesize: 100, status: 1})
348
+      this.GetCourseList({ caseid: this.CaseId === 'all' ? '' : this.CaseId, page: 1, pagesize: 100, status: 1 })
322 349
     },
323 350
     toggleSelection (rows) {
324 351
       if (rows) {

+ 80
- 11
src/pages/system/courseManager/courseList/add.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
3 3
     <form class="mainForm">
4 4
       <ul>
5 5
         <li class="flex-h">
6
-          <span>课程主图:</span>
6
+          <span>课程主图:<em>*</em></span>
7 7
           <div class="flex-item">
8 8
             <div>
9 9
               <el-upload
@@ -19,7 +19,7 @@
19 19
           </div>
20 20
         </li>
21 21
         <li class="flex-h">
22
-          <span>课程名称:</span>
22
+          <span>课程名称:<em>*</em></span>
23 23
           <div class="flex-item">
24 24
             <div style="width: 50%;">
25 25
               <el-input
@@ -32,7 +32,7 @@
32 32
           </div>
33 33
         </li>
34 34
         <li class="flex-h">
35
-          <span>课程类型:</span>
35
+          <span>课程类型:<em>*</em></span>
36 36
           <div class="flex-item">
37 37
             <div style="width: 50%;">
38 38
               <el-select v-model="detail.LocationId" placeholder="请选择">
@@ -47,7 +47,7 @@
47 47
           </div>
48 48
         </li>
49 49
         <li class="flex-h">
50
-          <span>课程价格:</span>
50
+          <span>课程价格:<em>*</em></span>
51 51
           <div class="flex-item">
52 52
             <div style="width: 200px;">
53 53
               <el-input
@@ -60,7 +60,7 @@
60 60
           </div>
61 61
         </li>
62 62
         <li class="flex-h">
63
-          <span>案场:</span>
63
+          <span>案场:<em>*</em></span>
64 64
           <div class="flex-item">
65 65
             <div style="width: 50%;">
66 66
               <el-select v-model="CaseId" placeholder="请选择">
@@ -75,7 +75,7 @@
75 75
           </div>
76 76
         </li>
77 77
         <li class="flex-h">
78
-          <span>开课人数:</span>
78
+          <span>开课人数:<em>*</em></span>
79 79
           <div class="flex-item">
80 80
             <div style="width: 200px;">
81 81
               <el-input
@@ -88,7 +88,7 @@
88 88
           </div>
89 89
         </li>
90 90
         <li class="flex-h">
91
-          <span>最小开课人数:</span>
91
+          <span>最小开课人数:<em>*</em></span>
92 92
           <div class="flex-item">
93 93
             <div style="width: 200px;">
94 94
               <el-input
@@ -101,7 +101,7 @@
101 101
           </div>
102 102
         </li>
103 103
         <li class="flex-h">
104
-          <span>课时数:</span>
104
+          <span>课时数:<em>*</em></span>
105 105
           <div class="flex-item">
106 106
             <div style="width: 200px;">
107 107
               <el-input
@@ -114,10 +114,23 @@
114 114
           </div>
115 115
         </li>
116 116
         <li class="flex-h">
117
-          <span>课程时间:</span>
117
+          <span>课程时间:<em>*</em></span>
118 118
           <div class="flex-item">
119 119
             <div>
120 120
               <el-date-picker
121
+                value-format="yyyy-MM-dd 00:00:00"
122
+                v-model="detail.BeginDate"
123
+                type="date"
124
+                placeholder="选择起始日期">
125
+              </el-date-picker>
126
+              <span style="line-height:40px;">至</span>
127
+              <el-date-picker
128
+                value-format="yyyy-MM-dd 23:59:59"
129
+                v-model="detail.EndDate"
130
+                type="date"
131
+                placeholder="选择截止日期">
132
+              </el-date-picker>
133
+              <!-- <el-date-picker
121 134
                 v-model="courseDate"
122 135
                 type="daterange"
123 136
                 align="right"
@@ -127,7 +140,7 @@
127 140
                 end-placeholder="结束日期"
128 141
                 :default-time="['00:00:00', '23:59:59']"
129 142
                 :picker-options="pickerOptions">
130
-              </el-date-picker>
143
+              </el-date-picker> -->
131 144
             </div>
132 145
           </div>
133 146
         </li>
@@ -186,7 +199,7 @@
186 199
           </div>
187 200
         </li>
188 201
         <li class="flex-h">
189
-          <span>是否精选课程:</span>
202
+          <span>是否精选课程:<em>*</em></span>
190 203
           <div class="flex-item">
191 204
             <div>
192 205
               <el-radio v-model="detail.IsSelect" :label="1">是</el-radio>
@@ -308,7 +321,63 @@ export default {
308 321
     upLoad (item) {
309 322
       this.toolClass.upload(item).then((res) => { this.handleAvatarSuccess(res, item.file) })
310 323
     },
324
+    checkFn (arr) {
325
+      for (var n = 0; n < arr.length; n++) {
326
+        if ((arr[n].type === 'isNull' && arr[n].target === '') || (arr[n].type === 'Array' && arr[n].target.length)) {
327
+          this.$message({
328
+            message: arr[n].errorMsg,
329
+            type: 'error'
330
+          })
331
+          return false
332
+        }
333
+      }
334
+      return true
335
+    },
311 336
     submit () { // 提交数据
337
+      var checkOff = this.checkFn([{
338
+        target: (this.detail.CourseImg || ''),
339
+        errorMsg: '课程主图不能为空',
340
+        type: 'isNull'
341
+      }, {
342
+        target: (this.detail.CourseName || ''),
343
+        errorMsg: '课程名称不能为空',
344
+        type: 'isNull'
345
+      }, {
346
+        target: (this.detail.LocationId || ''),
347
+        errorMsg: '课程类型不能为空',
348
+        type: 'isNull'
349
+      }, {
350
+        target: (this.detail.Price || ''),
351
+        errorMsg: '课程价格不能为空',
352
+        type: 'isNull'
353
+      }, {
354
+        target: (this.detail.MaxNum || ''),
355
+        errorMsg: '开课人数不能为空',
356
+        type: 'isNull'
357
+      }, {
358
+        target: (this.detail.MinNum || ''),
359
+        errorMsg: '最小开课人数不能为空',
360
+        type: 'isNull'
361
+      }, {
362
+        target: (this.detail.CourseNum || ''),
363
+        errorMsg: '课时数不能为空',
364
+        type: 'isNull'
365
+      }, {
366
+        target: (this.detail.BeginDate || ''),
367
+        errorMsg: '起始日期不能为空',
368
+        type: 'isNull'
369
+      }, {
370
+        target: (this.detail.EndDate || ''),
371
+        errorMsg: '截止日期不能为空',
372
+        type: 'isNull'
373
+      }, {
374
+        target: (this.detail.IsSelect || ''),
375
+        errorMsg: '是否精选课程不能为空',
376
+        type: 'isNull'
377
+      }])
378
+      if (!checkOff) {
379
+        return false
380
+      }
312 381
       const { id } = this.$route.query
313 382
       if (!id || id === '') {
314 383
         this.UpdateInfo({ ...this.detail, CourseId: '' })

+ 1
- 1
src/pages/system/dataStatistics/cardCouponUsedList/index.vue Dosyayı Görüntüle

@@ -252,7 +252,7 @@ export default {
252 252
       this.getCardCouponUsedList(this.postData).then((res) => {
253 253
         // console.log(JSON.stringify(res))
254 254
         this.postData.page = res.page
255
-        this.total = res.total
255
+        this.total = res.pagenum
256 256
       })
257 257
     },
258 258
     exportExcel () {

+ 1
- 1
src/pages/system/systemSet/roleManager/add.vue Dosyayı Görüntüle

@@ -3,7 +3,7 @@
3 3
     <form class="mainForm">
4 4
       <ul>
5 5
         <li class="flex-h">
6
-          <span>角色名称:</span>
6
+          <span>角色名称:<em>*</em></span>
7 7
           <div class="flex-item">
8 8
             <div style="width:50%">
9 9
               <el-input

+ 1
- 0
src/pages/system/verificationManager/drawVerification/index.vue Dosyayı Görüntüle

@@ -30,6 +30,7 @@
30 30
       title="核销"
31 31
       :visible.sync="centerDialogVisible"
32 32
       width="500px"
33
+      @close="verificationCode = ''"
33 34
       center>
34 35
       <div v-if="centerDialogVisible">
35 36
         <el-input

+ 2
- 2
src/util/api.js Dosyayı Görüntüle

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