Browse Source

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

yuantianjiao 6 years ago
parent
commit
59e13638f0
38 changed files with 423 additions and 137 deletions
  1. 5
    2
      src/pages/system/caseManager/caseAreaManager/add.vue
  2. 5
    2
      src/pages/system/caseManager/caseAreaManager/edit.vue
  3. 5
    3
      src/pages/system/caseManager/caseAreaManager/index.vue
  4. 4
    0
      src/pages/system/caseManager/caseInfo/addCase/index.vue
  5. 1
    0
      src/pages/system/caseManager/caseInfo/addCase/page.scss
  6. 3
    8
      src/pages/system/caseManager/caseInfo/index.vue
  7. 15
    5
      src/pages/system/caseManager/caseInfo/pplConcerned/editPPLConcerned/index.vue
  8. 8
    6
      src/pages/system/caseManager/caseInfo/pplConcerned/index.vue
  9. 26
    5
      src/pages/system/caseManager/caseTableManager/add.vue
  10. 25
    4
      src/pages/system/caseManager/caseTableManager/edit.vue
  11. 7
    21
      src/pages/system/caseManager/caseTableManager/index.vue
  12. 2
    1
      src/pages/system/caseManager/deviceManager/add.vue
  13. 2
    0
      src/pages/system/caseManager/deviceManager/index.vue
  14. 40
    10
      src/pages/system/caseManager/keyManager/index.vue
  15. 4
    8
      src/pages/system/caseManager/tagManager/index.vue
  16. 9
    7
      src/pages/system/channelManager/channelList/index.vue
  17. 18
    0
      src/pages/system/cmsManager/bannerManager/add.vue
  18. 18
    0
      src/pages/system/cmsManager/bannerManager/edit.vue
  19. 11
    4
      src/pages/system/cmsManager/indexMsg/add.vue
  20. 11
    4
      src/pages/system/cmsManager/indexMsg/edit.vue
  21. 9
    2
      src/pages/system/cmsManager/indexMsg/index.vue
  22. 9
    3
      src/pages/system/cmsManager/majorProjects/index.vue
  23. 21
    4
      src/pages/system/cmsManager/newsManager/add.vue
  24. 21
    4
      src/pages/system/cmsManager/newsManager/edit.vue
  25. 2
    1
      src/pages/system/cmsManager/newsManager/index.vue
  26. 13
    2
      src/pages/system/dataStatistics/frontEndUserList/index.vue
  27. 15
    4
      src/pages/system/goodsManager/goodsSpecManager/index.vue
  28. 5
    3
      src/pages/system/goodsManager/goodsTypeManager/index.vue
  29. 10
    10
      src/pages/system/page.js
  30. 8
    0
      src/pages/system/systemSet/roleManager/add.vue
  31. 0
    1
      src/pages/system/systemSet/roleManager/index.vue
  32. 9
    1
      src/pages/system/systemSet/userManager/add.vue
  33. 10
    2
      src/pages/system/systemSet/userManager/edit.vue
  34. 50
    6
      src/pages/system/systemSet/userManager/index.vue
  35. 2
    2
      src/store/app.js
  36. 3
    0
      src/store/case/device.js
  37. 5
    2
      src/store/cms/index.js
  38. 12
    0
      src/util/api.js

+ 5
- 2
src/pages/system/caseManager/caseAreaManager/add.vue View File

9
               <el-input
9
               <el-input
10
                 placeholder="请输入区域名"
10
                 placeholder="请输入区域名"
11
                 v-model="postData.AreaName"
11
                 v-model="postData.AreaName"
12
-                clearable>
12
+                clearable
13
+                maxlength="5"
14
+                >
13
               </el-input>
15
               </el-input>
14
             </div>
16
             </div>
15
           </div>
17
           </div>
88
   computed: {
90
   computed: {
89
     ...mapState({
91
     ...mapState({
90
       cases: x => x.app.cases.list,
92
       cases: x => x.app.cases.list,
91
-      defaultCaseId: x => x.app.cases.default
93
+      defaultCaseId: x => x.app.cases.default,
94
+      OrgId: x => x.app.user.OrgId,
92
     }),
95
     }),
93
     CaseId: {
96
     CaseId: {
94
       get () {
97
       get () {

+ 5
- 2
src/pages/system/caseManager/caseAreaManager/edit.vue View File

9
               <el-input
9
               <el-input
10
                 placeholder="请输入区域名"
10
                 placeholder="请输入区域名"
11
                 v-model="postData.AreaName"
11
                 v-model="postData.AreaName"
12
-                clearable>
12
+                clearable
13
+                maxlength="5"
14
+                >
13
               </el-input>
15
               </el-input>
14
             </div>
16
             </div>
15
           </div>
17
           </div>
88
   computed: {
90
   computed: {
89
     ...mapState({
91
     ...mapState({
90
       cases: x => x.app.cases.list,
92
       cases: x => x.app.cases.list,
91
-      defaultCaseId: x => x.app.cases.default
93
+      defaultCaseId: x => x.app.cases.default,
94
+      OrgId: x => x.app.user.OrgId,
92
     }),
95
     }),
93
     CaseId: {
96
     CaseId: {
94
       get () {
97
       get () {

+ 5
- 3
src/pages/system/caseManager/caseAreaManager/index.vue View File

44
         </el-table-column>
44
         </el-table-column>
45
         <el-table-column
45
         <el-table-column
46
           prop="AreaIconWhite"
46
           prop="AreaIconWhite"
47
-          label="白图标">
47
+          label="白图标">
48
           <template slot-scope="scope">
48
           <template slot-scope="scope">
49
             <a class="tableImg">
49
             <a class="tableImg">
50
               <img :src="scope.row.AreaIconWhite" class="centerLabel contain" alt="">
50
               <img :src="scope.row.AreaIconWhite" class="centerLabel contain" alt="">
95
       currentList: [],
95
       currentList: [],
96
     }
96
     }
97
   },
97
   },
98
-  created () {
99
-    this.getList()
98
+  mounted () {
99
+    this.$nextTick(function () {
100
+      this.getList()
101
+    })
100
   },
102
   },
101
   computed: {
103
   computed: {
102
     ...mapState({
104
     ...mapState({

+ 4
- 0
src/pages/system/caseManager/caseInfo/addCase/index.vue View File

9
               <el-input
9
               <el-input
10
                 placeholder="请输入名称"
10
                 placeholder="请输入名称"
11
                 v-model="postData.CaseName"
11
                 v-model="postData.CaseName"
12
+                maxlength="10"
12
                 clearable>
13
                 clearable>
13
               </el-input>
14
               </el-input>
14
             </div>
15
             </div>
22
                 type="textarea"
23
                 type="textarea"
23
                 :autosize="{ minRows: 3, maxRows: 5}"
24
                 :autosize="{ minRows: 3, maxRows: 5}"
24
                 placeholder="请填写详细地址"
25
                 placeholder="请填写详细地址"
26
+                maxlength="30"
25
                 v-model="postData.CaseAddress">
27
                 v-model="postData.CaseAddress">
26
               </el-input>
28
               </el-input>
27
             </div>
29
             </div>
35
                 type="textarea"
37
                 type="textarea"
36
                 :autosize="{ minRows: 3, maxRows: 5}"
38
                 :autosize="{ minRows: 3, maxRows: 5}"
37
                 placeholder="请填写详细描述"
39
                 placeholder="请填写详细描述"
40
+                maxlength="30"
38
                 v-model="postData.CaseDesc">
41
                 v-model="postData.CaseDesc">
39
               </el-input>
42
               </el-input>
40
             </div>
43
             </div>
47
               <el-input
50
               <el-input
48
                 placeholder="限中国地区有效号码"
51
                 placeholder="限中国地区有效号码"
49
                 v-model="postData.CaseTel"
52
                 v-model="postData.CaseTel"
53
+                maxlength="11"
50
                 clearable>
54
                 clearable>
51
               </el-input>
55
               </el-input>
52
             </div>
56
             </div>

+ 1
- 0
src/pages/system/caseManager/caseInfo/addCase/page.scss View File

14
   &>div.search{
14
   &>div.search{
15
     display: inline-block;
15
     display: inline-block;
16
     position: absolute;
16
     position: absolute;
17
+    padding: 10px;
17
   }
18
   }
18
 
19
 
19
   &>div.flex-item{
20
   &>div.flex-item{

+ 3
- 8
src/pages/system/caseManager/caseInfo/index.vue View File

14
         :data="currentList"
14
         :data="currentList"
15
         stripe
15
         stripe
16
         style="width: 100%">
16
         style="width: 100%">
17
-        <el-table-column
18
-          prop="CaseId"
19
-          label="ID">
20
-        </el-table-column>
21
         <el-table-column
17
         <el-table-column
22
           prop="CaseName"
18
           prop="CaseName"
23
           label="案场名称">
19
           label="案场名称">
70
     tableSearch,
66
     tableSearch,
71
   },
67
   },
72
   mounted () {
68
   mounted () {
73
-    this.$nextTick(function () { })
74
-  },
75
-  created () {
76
-    this.getList()
69
+    this.$nextTick(function () {
70
+      this.getList()
71
+    })
77
   },
72
   },
78
   methods: {
73
   methods: {
79
     pplConcerned (index, row) { // 相关人员
74
     pplConcerned (index, row) { // 相关人员

+ 15
- 5
src/pages/system/caseManager/caseInfo/pplConcerned/editPPLConcerned/index.vue View File

8
             <el-select v-model="postData.UserType" placeholder="请选择">
8
             <el-select v-model="postData.UserType" placeholder="请选择">
9
               <el-option
9
               <el-option
10
                 v-for="item in typeList"
10
                 v-for="item in typeList"
11
-                :key="item.TypeId"
11
+                :key="item.TypeCode"
12
                 :label="item.TypeName"
12
                 :label="item.TypeName"
13
-                :value="item.TypeId">
13
+                :value="item.TypeCode">
14
               </el-option>
14
               </el-option>
15
             </el-select>
15
             </el-select>
16
           </div>
16
           </div>
22
               <el-input
22
               <el-input
23
                 placeholder="请输入名称"
23
                 placeholder="请输入名称"
24
                 v-model="postData.UserName"
24
                 v-model="postData.UserName"
25
+                maxlength="10"
25
                 clearable>
26
                 clearable>
26
               </el-input>
27
               </el-input>
27
             </div>
28
             </div>
34
               <el-input
35
               <el-input
35
                 placeholder="请输入手机号码"
36
                 placeholder="请输入手机号码"
36
                 v-model="postData.Tel"
37
                 v-model="postData.Tel"
38
+                maxlength="11"
37
                 clearable>
39
                 clearable>
38
               </el-input>
40
               </el-input>
39
             </div>
41
             </div>
98
       }
100
       }
99
     },
101
     },
100
     getUserTypeList () { // 获取用户类型
102
     getUserTypeList () { // 获取用户类型
101
-      this.$ajax(this.$api.caseManager.getUserTypeList.url, {
102
-        method: this.$api.caseManager.getUserTypeList.method,
103
+      this.$ajax(this.$api.caseManager.getCaseUserType.url, {
104
+        method: this.$api.caseManager.getCaseUserType.method,
103
       }).then(res => {
105
       }).then(res => {
104
         this.typeList = res
106
         this.typeList = res
105
-        this.postData.UserType = res[0].TypeId
107
+        this.postData.UserType = res[0].TypeCode
106
       })
108
       })
107
     },
109
     },
108
     submit () { // 提交数据
110
     submit () { // 提交数据
120
         })
122
         })
121
         return false
123
         return false
122
       }
124
       }
125
+      var myreg = /^[1][3,4,5,6,7,8][0-9]{9}$/
126
+      if (!myreg.test(this.postData.Tel)) {
127
+        this.$message({
128
+          type: 'error',
129
+          message: '请输入正确的手机号!'
130
+        })
131
+        return false
132
+      }
123
       this.postData.OrgId = this.OrgId
133
       this.postData.OrgId = this.OrgId
124
       if (this.$route.query.userid !== undefined) {
134
       if (this.$route.query.userid !== undefined) {
125
         this.$ajax(this.$api.caseManager.editCaseUser.url, {
135
         this.$ajax(this.$api.caseManager.editCaseUser.url, {

+ 8
- 6
src/pages/system/caseManager/caseInfo/pplConcerned/index.vue View File

14
         stripe
14
         stripe
15
         style="width: 100%">
15
         style="width: 100%">
16
         <el-table-column
16
         <el-table-column
17
-          prop="UserType"
18
           label="用户类型">
17
           label="用户类型">
18
+          <template slot-scope="scope">
19
+            {{getUserType(scope.row)}}
20
+          </template>
19
         </el-table-column>
21
         </el-table-column>
20
         <el-table-column
22
         <el-table-column
21
           prop="UserName"
23
           prop="UserName"
67
     })
69
     })
68
   },
70
   },
69
   methods: {
71
   methods: {
72
+    getUserType (row) {
73
+      return (this.typeList.filter(x => x.TypeCode === row.UserType)[0] || {}).TypeName || ''
74
+    },
70
     getUserTypeList () { // 获取用户类型
75
     getUserTypeList () { // 获取用户类型
71
       return new Promise((resolve) => {
76
       return new Promise((resolve) => {
72
-        this.$ajax(this.$api.caseManager.getUserTypeList.url, {
73
-          method: this.$api.caseManager.getUserTypeList.method,
77
+        this.$ajax(this.$api.caseManager.getCaseUserType.url, {
78
+          method: this.$api.caseManager.getCaseUserType.method,
74
         }).then(res => {
79
         }).then(res => {
75
           this.typeList = res
80
           this.typeList = res
76
           resolve()
81
           resolve()
85
         method: this.$api.caseManager.getCaseUserList.method,
90
         method: this.$api.caseManager.getCaseUserList.method,
86
         queryData: this.postData
91
         queryData: this.postData
87
       }).then(res => {
92
       }).then(res => {
88
-        for (var n = 0; n < res.list.length; n++) {
89
-          res.list[n].UserType = this.typeList.filter(x => x.TypeId === res.list[n].UserType)[0].TypeName
90
-        }
91
         this.currentList = res.list
93
         this.currentList = res.list
92
         this.postData.page = res.page
94
         this.postData.page = res.page
93
         this.total = res.pagenum
95
         this.total = res.pagenum

+ 26
- 5
src/pages/system/caseManager/caseTableManager/add.vue View File

14
             </div>
14
             </div>
15
           </div>
15
           </div>
16
         </li>
16
         </li>
17
+        <li class="flex-h">
18
+          <span>案场:</span>
19
+          <div class="flex-item">
20
+            <div style="width:50%">
21
+              <el-select v-model="CaseId" placeholder="请选择">
22
+                <el-option
23
+                  v-for="item in cases"
24
+                  :key="item.CaseId"
25
+                  :label="item.CaseName"
26
+                  :value="item.CaseId">
27
+                </el-option>
28
+              </el-select>
29
+            </div>
30
+          </div>
31
+        </li>
17
         <li class="flex-h">
32
         <li class="flex-h">
18
           <span>区域:</span>
33
           <span>区域:</span>
19
           <div class="flex-item">
34
           <div class="flex-item">
20
             <div style="width:50%">
35
             <div style="width:50%">
21
               <el-select v-model="postData.AreaId" placeholder="请选择">
36
               <el-select v-model="postData.AreaId" placeholder="请选择">
22
                 <el-option
37
                 <el-option
23
-                  v-for="item in caseAreaList"
38
+                  v-for="item in caseAreas"
24
                   :key="item.AreaId"
39
                   :key="item.AreaId"
25
                   :label="item.AreaName"
40
                   :label="item.AreaName"
26
                   :value="item.AreaId">
41
                   :value="item.AreaId">
62
   computed: {
77
   computed: {
63
     ...mapState({
78
     ...mapState({
64
       cases: x => x.app.cases.list,
79
       cases: x => x.app.cases.list,
65
-      defaultCaseId: x => x.app.cases.default
80
+      caseids: x => x.app.cases.list.map(i => i.CaseId).join(','),
81
+      defaultCaseId: x => x.app.cases.default,
82
+      OrgId: x => x.app.user.OrgId,
66
     }),
83
     }),
67
     CaseId: {
84
     CaseId: {
68
       get () {
85
       get () {
70
       },
87
       },
71
       set (val) {
88
       set (val) {
72
         this.postData.CaseId = val
89
         this.postData.CaseId = val
90
+        this.postData.AreaId = ''
73
       }
91
       }
74
-    }
92
+    },
93
+    caseAreas () {
94
+      return this.caseAreaList.filter(x => x.CaseId === this.CaseId)
95
+    },
75
   },
96
   },
76
   components: {},
97
   components: {},
77
   methods: {
98
   methods: {
79
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
100
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
80
         method: this.$api.caseManager.getCaseAreaList.method,
101
         method: this.$api.caseManager.getCaseAreaList.method,
81
         queryData: {
102
         queryData: {
82
-          caseid: this.CaseId, // 案场id
103
+          caseid: this.caseids, // 案场id
83
           page: 1, // 当前页码
104
           page: 1, // 当前页码
84
           pagesize: 10000, // 请求数据量
105
           pagesize: 10000, // 请求数据量
85
         }
106
         }
86
       }).then(res => {
107
       }).then(res => {
87
         this.caseAreaList = res.list
108
         this.caseAreaList = res.list
88
-        this.postData.AreaId = res.list[0].AreaId
109
+        // this.postData.AreaId = res.list[0].AreaId
89
       })
110
       })
90
     },
111
     },
91
     submit () { // 提交数据
112
     submit () { // 提交数据

+ 25
- 4
src/pages/system/caseManager/caseTableManager/edit.vue View File

14
             </div>
14
             </div>
15
           </div>
15
           </div>
16
         </li>
16
         </li>
17
+        <li class="flex-h">
18
+          <span>案场:</span>
19
+          <div class="flex-item">
20
+            <div style="width:50%">
21
+              <el-select v-model="CaseId" placeholder="请选择">
22
+                <el-option
23
+                  v-for="item in cases"
24
+                  :key="item.CaseId"
25
+                  :label="item.CaseName"
26
+                  :value="item.CaseId">
27
+                </el-option>
28
+              </el-select>
29
+            </div>
30
+          </div>
31
+        </li>
17
         <li class="flex-h">
32
         <li class="flex-h">
18
           <span>区域:</span>
33
           <span>区域:</span>
19
           <div class="flex-item">
34
           <div class="flex-item">
20
             <div style="width:50%">
35
             <div style="width:50%">
21
               <el-select v-model="postData.AreaId" placeholder="请选择">
36
               <el-select v-model="postData.AreaId" placeholder="请选择">
22
                 <el-option
37
                 <el-option
23
-                  v-for="item in caseAreaList"
38
+                  v-for="item in caseAreas"
24
                   :key="item.AreaId"
39
                   :key="item.AreaId"
25
                   :label="item.AreaName"
40
                   :label="item.AreaName"
26
                   :value="item.AreaId">
41
                   :value="item.AreaId">
63
   computed: {
78
   computed: {
64
     ...mapState({
79
     ...mapState({
65
       cases: x => x.app.cases.list,
80
       cases: x => x.app.cases.list,
66
-      defaultCaseId: x => x.app.cases.default
81
+      caseids: x => x.app.cases.list.map(i => i.CaseId).join(','),
82
+      defaultCaseId: x => x.app.cases.default,
83
+      OrgId: x => x.app.user.OrgId,
67
     }),
84
     }),
68
     CaseId: {
85
     CaseId: {
69
       get () {
86
       get () {
71
       },
88
       },
72
       set (val) {
89
       set (val) {
73
         this.postData.CaseId = val
90
         this.postData.CaseId = val
91
+        this.postData.AreaId = ''
74
       }
92
       }
75
-    }
93
+    },
94
+    caseAreas () {
95
+      return this.caseAreaList.filter(x => x.CaseId === this.CaseId)
96
+    },
76
   },
97
   },
77
   components: {},
98
   components: {},
78
   methods: {
99
   methods: {
88
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
109
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
89
         method: this.$api.caseManager.getCaseAreaList.method,
110
         method: this.$api.caseManager.getCaseAreaList.method,
90
         queryData: {
111
         queryData: {
91
-          caseid: this.CaseId, // 案场id
112
+          caseid: this.caseids, // 案场id
92
           page: 1, // 当前页码
113
           page: 1, // 当前页码
93
           pagesize: 10000, // 请求数据量
114
           pagesize: 10000, // 请求数据量
94
         }
115
         }

+ 7
- 21
src/pages/system/caseManager/caseTableManager/index.vue View File

34
           label="桌位名称">
34
           label="桌位名称">
35
         </el-table-column>
35
         </el-table-column>
36
         <el-table-column
36
         <el-table-column
37
-          prop="AreaId"
37
+          prop="CaseName"
38
+          label="所属案场">
39
+        </el-table-column>
40
+        <el-table-column
41
+          prop="AreaName"
38
           label="区域">
42
           label="区域">
39
         </el-table-column>
43
         </el-table-column>
40
         <el-table-column label="操作">
44
         <el-table-column label="操作">
92
       }
96
       }
93
     }
97
     }
94
   },
98
   },
95
-  created () {
96
-    this.getAreaList().then(() => {
99
+  mounted () {
100
+    this.$nextTick(function () {
97
       this.getList()
101
       this.getList()
98
     })
102
     })
99
   },
103
   },
100
   methods: {
104
   methods: {
101
-    getAreaList () {
102
-      return new Promise((resolve) => {
103
-        this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
104
-          method: this.$api.caseManager.getCaseAreaList.method,
105
-          queryData: {
106
-            caseid: this.CaseId, // 案场id
107
-            page: 1, // 当前页码
108
-            pagesize: 10000, // 请求数据量
109
-          }
110
-        }).then(res => {
111
-          this.caseAreaList = res.list
112
-          resolve()
113
-        })
114
-      })
115
-    },
116
     search () { // 搜索
105
     search () { // 搜索
117
       this.postData.page = 1
106
       this.postData.page = 1
118
       this.currentList = []
107
       this.currentList = []
123
         method: this.$api.caseManager.getCaseTableList.method,
112
         method: this.$api.caseManager.getCaseTableList.method,
124
         queryData: { ...this.postData, caseid: this.CaseId }
113
         queryData: { ...this.postData, caseid: this.CaseId }
125
       }).then(res => {
114
       }).then(res => {
126
-        for (var n = 0; n < res.list.length; n++) {
127
-          res.list[n].AreaId = this.caseAreaList.filter(x => x.AreaId === res.list[n].AreaId)[0].AreaName
128
-        }
129
         this.currentList = res.list
115
         this.currentList = res.list
130
         this.postData.page = res.page
116
         this.postData.page = res.page
131
         this.total = res.pagenum
117
         this.total = res.pagenum

+ 2
- 1
src/pages/system/caseManager/deviceManager/add.vue View File

74
         return this.detail.CaseId || this.caseid
74
         return this.detail.CaseId || this.caseid
75
       },
75
       },
76
       set (val) {
76
       set (val) {
77
-        this.detail.CaseId = val
77
+        this.UpdateInfo({...this.detail, CaseId: val})
78
       }
78
       }
79
     }
79
     }
80
   },
80
   },
84
       'AddDevice',
84
       'AddDevice',
85
       'UpdateDevice',
85
       'UpdateDevice',
86
       'SetDeviceNull',
86
       'SetDeviceNull',
87
+      'UpdateInfo',
87
     ]),
88
     ]),
88
     submit () {
89
     submit () {
89
       if ((this.detail.EquipmentId || '') === '') {
90
       if ((this.detail.EquipmentId || '') === '') {

+ 2
- 0
src/pages/system/caseManager/deviceManager/index.vue View File

17
         </el-table-column>
17
         </el-table-column>
18
         <el-table-column prop="Name" label="体检设备名称">
18
         <el-table-column prop="Name" label="体检设备名称">
19
         </el-table-column>
19
         </el-table-column>
20
+        <el-table-column prop="EquipmentCode" label="设备Code">
21
+        </el-table-column>
20
         <el-table-column label="创建时间" width="300">
22
         <el-table-column label="创建时间" width="300">
21
           <template slot-scope="scope">
23
           <template slot-scope="scope">
22
             <label>{{FormatDate(scope.row.CreateDate)}}</label>
24
             <label>{{FormatDate(scope.row.CreateDate)}}</label>

+ 40
- 10
src/pages/system/caseManager/keyManager/index.vue View File

17
               </el-option>
17
               </el-option>
18
             </el-select>
18
             </el-select>
19
           </li>
19
           </li>
20
+          <li>
21
+            <el-input
22
+              :placeholder="'请输入锁柜编号'"
23
+              v-model="lockNum"
24
+            >
25
+            </el-input>
26
+          </li>
20
         </ul>
27
         </ul>
21
         <el-button
28
         <el-button
22
           size="mini"
29
           size="mini"
40
         <el-table-column
47
         <el-table-column
41
           prop="Status"
48
           prop="Status"
42
           label="状态">
49
           label="状态">
50
+          <template slot-scope="scope">
51
+            {{scope.row.Status===1?'有人':'无人'}}
52
+          </template>
43
         </el-table-column>
53
         </el-table-column>
44
         <el-table-column label="操作">
54
         <el-table-column label="操作">
45
           <template slot-scope="scope">
55
           <template slot-scope="scope">
46
-            <el-button v-if="scope.row.Status==='有人'"
56
+            <el-button v-if="scope.row.Status===1"
47
               size="mini"
57
               size="mini"
48
               type="danger"
58
               type="danger"
49
               @click="unBindItem(scope.$index, scope.row)">解绑</el-button>
59
               @click="unBindItem(scope.$index, scope.row)">解绑</el-button>
50
-            <el-button v-if="scope.row.Status==='无人'"
60
+            <el-button v-if="scope.row.Status===0"
51
               size="mini"
61
               size="mini"
52
               type="success"
62
               type="success"
53
               @click="bindItem(scope.$index, scope.row)">绑定</el-button>
63
               @click="bindItem(scope.$index, scope.row)">绑定</el-button>
64
+            <el-button v-if="scope.row.Status===0"
65
+              size="mini"
66
+              type="danger"
67
+              @click="deleteItem(scope.$index, scope.row)">删除</el-button>
54
           </template>
68
           </template>
55
         </el-table-column>
69
         </el-table-column>
56
       </el-table>
70
       </el-table>
110
         pagesize: 10, // 请求数据量
124
         pagesize: 10, // 请求数据量
111
       },
125
       },
112
       currentList: [],
126
       currentList: [],
127
+      lockNum: '',
113
     }
128
     }
114
   },
129
   },
115
-  created () {
116
-    this.getList()
130
+  mounted () {
131
+    this.$nextTick(function () {
132
+      this.getList()
133
+    })
117
   },
134
   },
118
   computed: {
135
   computed: {
119
     ...mapState({
136
     ...mapState({
144
     getList () { // 获取列表
161
     getList () { // 获取列表
145
       this.$ajax(this.$api.caseManager.getKeyList.url, {
162
       this.$ajax(this.$api.caseManager.getKeyList.url, {
146
         method: this.$api.caseManager.getKeyList.method,
163
         method: this.$api.caseManager.getKeyList.method,
147
-        queryData: { ...this.postData, caseid: this.CaseId }
164
+        queryData: { ...this.postData, caseid: this.CaseId, num: this.lockNum }
148
       }).then(res => {
165
       }).then(res => {
149
-        if (res.list !== null) {
150
-          for (var n = 0; n < res.list.length; n++) {
151
-            res.list[n].Status === 0 ? res.list[n].Status = '无人' : res.list[n].Status = '有人'
152
-          }
153
-        }
154
         this.currentList = res.list
166
         this.currentList = res.list
155
         this.postData.page = res.page
167
         this.postData.page = res.page
156
         this.total = res.pagenum
168
         this.total = res.pagenum
185
         })
197
         })
186
       })
198
       })
187
     },
199
     },
200
+    deleteItem (index, row) {
201
+      this.$confirm('确认删除此锁柜?', '提示', {
202
+        confirmButtonText: '确定',
203
+        cancelButtonText: '取消',
204
+        type: 'warning'
205
+      }).then(() => {
206
+        this.$ajax(this.$api.caseManager.deleteKey.url, {
207
+          method: this.$api.caseManager.deleteKey.method,
208
+          urlData: { id: row.KeyId }
209
+        }).then(res => {
210
+          this.$message({
211
+            type: 'success',
212
+            message: '删除成功!'
213
+          })
214
+          this.getList()
215
+        })
216
+      })
217
+    },
188
   }
218
   }
189
 }
219
 }
190
 </script>
220
 </script>

+ 4
- 8
src/pages/system/caseManager/tagManager/index.vue View File

36
         <el-table-column
36
         <el-table-column
37
           prop="CaseNames"
37
           prop="CaseNames"
38
           label="案场">
38
           label="案场">
39
-          <template slot-scope="scope">
40
-            <span v-for="(item,index) in scope.row.CaseNames" :key="index">{{item}}<br></span>
41
-          </template>
42
         </el-table-column>
39
         </el-table-column>
43
         <el-table-column label="操作">
40
         <el-table-column label="操作">
44
           <template slot-scope="scope">
41
           <template slot-scope="scope">
95
       }
92
       }
96
     }
93
     }
97
   },
94
   },
98
-  created () {
99
-    this.getList()
95
+  mounted () {
96
+    this.$nextTick(function () {
97
+      this.getList()
98
+    })
100
   },
99
   },
101
   methods: {
100
   methods: {
102
     search () { // 搜索
101
     search () { // 搜索
109
         method: this.$api.caseManager.getCaseTagList.method,
108
         method: this.$api.caseManager.getCaseTagList.method,
110
         queryData: { ...this.postData, caseid: this.CaseId }
109
         queryData: { ...this.postData, caseid: this.CaseId }
111
       }).then(res => {
110
       }).then(res => {
112
-        for (var n = 0; n < res.list.length; n++) {
113
-          res.list[n].CaseNames = res.list[n].CaseNames.split(',')
114
-        }
115
         this.currentList = res.list
111
         this.currentList = res.list
116
         this.postData.page = res.page
112
         this.postData.page = res.page
117
         this.total = res.pagenum
113
         this.total = res.pagenum

+ 9
- 7
src/pages/system/channelManager/channelList/index.vue View File

53
     </div>
53
     </div>
54
     <el-pagination
54
     <el-pagination
55
       @current-change="handleCurrentChange"
55
       @current-change="handleCurrentChange"
56
-      :current-page.sync="postData.page+1"
56
+      :current-page.sync="postData.page"
57
       :page-size="postData.pagesize"
57
       :page-size="postData.pagesize"
58
       layout="prev, pager, next, jumper"
58
       layout="prev, pager, next, jumper"
59
       :total="total">
59
       :total="total">
77
       currentList: []
77
       currentList: []
78
     }
78
     }
79
   },
79
   },
80
-  created () {
81
-    this.getList()
80
+  mounted () {
81
+    this.$nextTick(function () {
82
+      this.getList()
83
+    })
82
   },
84
   },
83
   computed: {
85
   computed: {
84
     ...mapState({
86
     ...mapState({
117
       this.$router.push({ name: 'editChannel', query: { id: row.ChannelId } })
119
       this.$router.push({ name: 'editChannel', query: { id: row.ChannelId } })
118
     },
120
     },
119
     handleDelete (index, row) { // 删除
121
     handleDelete (index, row) { // 删除
120
-      let name = '确认删除规格“' + row.TypeName + '”?'
122
+      let name = '确认删除渠道“' + row.ChannelName + '”?'
121
       this.$confirm(name, '提示', {
123
       this.$confirm(name, '提示', {
122
         confirmButtonText: '确定',
124
         confirmButtonText: '确定',
123
         cancelButtonText: '取消',
125
         cancelButtonText: '取消',
124
         type: 'warning'
126
         type: 'warning'
125
       }).then(() => {
127
       }).then(() => {
126
-        this.$ajax(this.$api.goodsManager.deleteGoodsType.url, {
127
-          method: this.$api.goodsManager.deleteGoodsType.method,
128
-          urlData: { id: row.TypeId }
128
+        this.$ajax(this.$api.channelManager.deleteChannel.url, {
129
+          method: this.$api.channelManager.deleteChannel.method,
130
+          urlData: { channelId: row.ChannelId }
129
         }).then(res => {
131
         }).then(res => {
130
           this.$message({
132
           this.$message({
131
             type: 'success',
133
             type: 'success',

+ 18
- 0
src/pages/system/cmsManager/bannerManager/add.vue View File

144
     ...mapCmsActions(['updateLocationInfo']),
144
     ...mapCmsActions(['updateLocationInfo']),
145
     ...mapActions(['updateSystemInfo']),
145
     ...mapActions(['updateSystemInfo']),
146
     submit () {
146
     submit () {
147
+      if (this.postData.ForwardType === '1') {
148
+        if (this.postData.ForwardUrl === '') {
149
+          this.$message({
150
+            message: '链接地址不能为空',
151
+            type: 'error',
152
+          })
153
+          return false
154
+        } else {
155
+          var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
156
+          if (!reg.test(this.postData.ForwardUrl)) {
157
+            this.$message({
158
+              message: '链接地址格式不正确',
159
+              type: 'error',
160
+            })
161
+            return false
162
+          }
163
+        }
164
+      }
147
       this.postData.OrgId = this.OrgId
165
       this.postData.OrgId = this.OrgId
148
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
166
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
149
       this.postData.ImageUrl = ''
167
       this.postData.ImageUrl = ''

+ 18
- 0
src/pages/system/cmsManager/bannerManager/edit.vue View File

140
   methods: {
140
   methods: {
141
     ...mapCmsActions(['updateLocationInfo']),
141
     ...mapCmsActions(['updateLocationInfo']),
142
     submit () {
142
     submit () {
143
+      if (this.postData.ForwardType === '1') {
144
+        if (this.postData.ForwardUrl === '') {
145
+          this.$message({
146
+            message: '链接地址不能为空',
147
+            type: 'error',
148
+          })
149
+          return false
150
+        } else {
151
+          var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
152
+          if (!reg.test(this.postData.ForwardUrl)) {
153
+            this.$message({
154
+              message: '链接地址格式不正确',
155
+              type: 'error',
156
+            })
157
+            return false
158
+          }
159
+        }
160
+      }
143
       this.postData.OrgId = this.OrgId
161
       this.postData.OrgId = this.OrgId
144
       this.postData.CaseId = this.CaseId
162
       this.postData.CaseId = this.CaseId
145
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
163
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'

+ 11
- 4
src/pages/system/cmsManager/indexMsg/add.vue View File

41
             </div>
41
             </div>
42
           </div>
42
           </div>
43
         </li>
43
         </li>
44
-        <li class="flex-h">
44
+        <!-- <li class="flex-h">
45
           <span>位置:</span>
45
           <span>位置:</span>
46
           <div class="flex-item">
46
           <div class="flex-item">
47
             <div style="width:50%">
47
             <div style="width:50%">
55
               </el-select>
55
               </el-select>
56
             </div>
56
             </div>
57
           </div>
57
           </div>
58
-        </li>
58
+        </li> -->
59
         <li style="text-align:center">
59
         <li style="text-align:center">
60
           <el-button type="primary" size="mini" @click="submit">保存</el-button>
60
           <el-button type="primary" size="mini" @click="submit">保存</el-button>
61
           <el-button type="danger" size="mini" @click="cancel">取消</el-button>
61
           <el-button type="danger" size="mini" @click="cancel">取消</el-button>
90
   },
90
   },
91
   computed: {
91
   computed: {
92
     ...mapState({
92
     ...mapState({
93
-      positionList: x => x.cms.location,
93
+      // positionList: x => x.cms.location,
94
       OrgId: x => x.app.user.OrgId,
94
       OrgId: x => x.app.user.OrgId,
95
       defaultCaseId: x => x.app.cases.default,
95
       defaultCaseId: x => x.app.cases.default,
96
       caseList: x => x.app.cases.list
96
       caseList: x => x.app.cases.list
100
     ...mapCmsActions(['updateLocationInfo']),
100
     ...mapCmsActions(['updateLocationInfo']),
101
     ...mapActions(['updateSystemInfo']),
101
     ...mapActions(['updateSystemInfo']),
102
     submit () {
102
     submit () {
103
-      console.log(this.postData)
103
+      var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
104
+      if (!reg.test(this.postData.InfoUrl)) {
105
+        this.$message({
106
+          message: '链接地址格式不正确',
107
+          type: 'error',
108
+        })
109
+        return false
110
+      }
104
       this.postData.OrgId = this.OrgId
111
       this.postData.OrgId = this.OrgId
105
       this.$ajax(this.$api.cms.addInfo.url, {
112
       this.$ajax(this.$api.cms.addInfo.url, {
106
         method: this.$api.cms.addInfo.method,
113
         method: this.$api.cms.addInfo.method,

+ 11
- 4
src/pages/system/cmsManager/indexMsg/edit.vue View File

41
             </div>
41
             </div>
42
           </div>
42
           </div>
43
         </li>
43
         </li>
44
-        <li class="flex-h">
44
+        <!-- <li class="flex-h">
45
           <span>位置:</span>
45
           <span>位置:</span>
46
           <div class="flex-item">
46
           <div class="flex-item">
47
             <div style="width:50%">
47
             <div style="width:50%">
55
               </el-select>
55
               </el-select>
56
             </div>
56
             </div>
57
           </div>
57
           </div>
58
-        </li>
58
+        </li> -->
59
         <li style="text-align:center">
59
         <li style="text-align:center">
60
           <el-button type="primary" size="mini" @click="submit">保存</el-button>
60
           <el-button type="primary" size="mini" @click="submit">保存</el-button>
61
           <el-button type="danger" size="mini" @click="cancel">取消</el-button>
61
           <el-button type="danger" size="mini" @click="cancel">取消</el-button>
88
   },
88
   },
89
   computed: {
89
   computed: {
90
     ...mapState({
90
     ...mapState({
91
-      positionList: x => x.cms.location,
91
+      // positionList: x => x.cms.location,
92
       OrgId: x => x.app.user.OrgId,
92
       OrgId: x => x.app.user.OrgId,
93
       caseList: x => x.app.cases.list
93
       caseList: x => x.app.cases.list
94
     })
94
     })
96
   methods: {
96
   methods: {
97
     ...mapCmsActions(['updateLocationInfo']),
97
     ...mapCmsActions(['updateLocationInfo']),
98
     submit () {
98
     submit () {
99
-      console.log(this.postData)
99
+      var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
100
+      if (!reg.test(this.postData.InfoUrl)) {
101
+        this.$message({
102
+          message: '链接地址格式不正确',
103
+          type: 'error',
104
+        })
105
+        return false
106
+      }
100
       this.postData.OrgId = this.OrgId
107
       this.postData.OrgId = this.OrgId
101
       this.$ajax(this.$api.cms.editInfo.url, {
108
       this.$ajax(this.$api.cms.editInfo.url, {
102
         method: this.$api.cms.editInfo.method,
109
         method: this.$api.cms.editInfo.method,

+ 9
- 2
src/pages/system/cmsManager/indexMsg/index.vue View File

22
           prop="InfoUrl"
22
           prop="InfoUrl"
23
           label="跳转链接">
23
           label="跳转链接">
24
         </el-table-column>
24
         </el-table-column>
25
+        <el-table-column
26
+          label="创建时间">
27
+          <template slot-scope="scope">
28
+            <label>{{FormatDate(scope.row.CreateDate)}}</label>
29
+          </template>
30
+        </el-table-column>
25
         <el-table-column label="操作">
31
         <el-table-column label="操作">
26
           <template slot-scope="scope">
32
           <template slot-scope="scope">
27
             <el-button
33
             <el-button
80
     tableSearch,
86
     tableSearch,
81
   },
87
   },
82
   methods: {
88
   methods: {
89
+    FormatDate (date) {
90
+      return this.toolClass.dateFormat(date)
91
+    },
83
     handleCurrentChange (val) {
92
     handleCurrentChange (val) {
84
       this.postData.currentPage = val
93
       this.postData.currentPage = val
85
       this.getList()
94
       this.getList()
86
     },
95
     },
87
     handleEdit (index, row) { // 编辑
96
     handleEdit (index, row) { // 编辑
88
-      console.log(index, row)
89
       this.$router.push({ name: 'editIndexMsg', query: { id: row.InfoId } })
97
       this.$router.push({ name: 'editIndexMsg', query: { id: row.InfoId } })
90
     },
98
     },
91
     handleDelete (index, row) { // 删除
99
     handleDelete (index, row) { // 删除
92
-      console.log(index, row)
93
       this.$confirm('确认删除此消息?', '提示', {
100
       this.$confirm('确认删除此消息?', '提示', {
94
         confirmButtonText: '确定',
101
         confirmButtonText: '确定',
95
         cancelButtonText: '取消',
102
         cancelButtonText: '取消',

+ 9
- 3
src/pages/system/cmsManager/majorProjects/index.vue View File

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='addMajorProjects'>新增首页案场</el-button>
6
+          <el-button size="mini" type="success" @click='addMajorProjects'>新增售楼处项目专题</el-button>
7
         </div>
7
         </div>
8
         <ul>
8
         <ul>
9
           <li>
9
           <li>
10
             <span>选择案场:</span>
10
             <span>选择案场:</span>
11
             <el-select v-model="tableSearch.caseId" placeholder="请选择">
11
             <el-select v-model="tableSearch.caseId" placeholder="请选择">
12
+              <el-option
13
+              value=""
14
+              >
15
+              </el-option>
12
               <el-option
16
               <el-option
13
                 v-for="item in caseList"
17
                 v-for="item in caseList"
14
                 :key="item.CaseId"
18
                 :key="item.CaseId"
52
             <el-button
56
             <el-button
53
               size="mini"
57
               size="mini"
54
               type="warning"
58
               type="warning"
59
+              v-if="scope.row.Status === 0"
55
               @click="editItem(scope.$index, scope.row)">编辑</el-button>
60
               @click="editItem(scope.$index, scope.row)">编辑</el-button>
56
             <!-- <el-button
61
             <!-- <el-button
57
               size="mini"
62
               size="mini"
59
             <el-button
64
             <el-button
60
               size="mini"
65
               size="mini"
61
               type="danger"
66
               type="danger"
67
+              v-if="scope.row.Status === 0"
62
               @click="deleteItem(scope.$index, scope.row)">删除</el-button>
68
               @click="deleteItem(scope.$index, scope.row)">删除</el-button>
63
           </template>
69
           </template>
64
         </el-table-column>
70
         </el-table-column>
106
   },
112
   },
107
   created () {
113
   created () {
108
     this.updateSystemInfo().then(() => {
114
     this.updateSystemInfo().then(() => {
109
-      this.tableSearch.caseId = this.defaultCaseId
115
+      // this.tableSearch.caseId = this.defaultCaseId
110
       this.getList()
116
       this.getList()
111
     })
117
     })
112
   },
118
   },
113
   methods: {
119
   methods: {
114
     ...mapActions(['updateSystemInfo']),
120
     ...mapActions(['updateSystemInfo']),
115
     handleCurrentChange (val) {
121
     handleCurrentChange (val) {
116
-      this.postData.currentPage = val - 1
122
+      this.postData.currentPage = val
117
       this.getList()
123
       this.getList()
118
     },
124
     },
119
     showItem (index, row) { // 前台显示
125
     showItem (index, row) { // 前台显示

+ 21
- 4
src/pages/system/cmsManager/newsManager/add.vue View File

6
           <span>跳转类型:</span>
6
           <span>跳转类型:</span>
7
           <div class="flex-item">
7
           <div class="flex-item">
8
             <div style="width:50%" class="radio">
8
             <div style="width:50%" class="radio">
9
-                <el-radio v-model="postData.ForwardType" label='1' >接</el-radio>
9
+                <el-radio v-model="postData.ForwardType" label='1' >接</el-radio>
10
                 <el-radio v-model="postData.ForwardType" label='0' >课程</el-radio>
10
                 <el-radio v-model="postData.ForwardType" label='0' >课程</el-radio>
11
             </div>
11
             </div>
12
           </div>
12
           </div>
13
         </li>
13
         </li>
14
         <li class="flex-h">
14
         <li class="flex-h">
15
-          <span>接:</span>
15
+          <span>接:</span>
16
           <div class="flex-item">
16
           <div class="flex-item">
17
             <div style="width:50%">
17
             <div style="width:50%">
18
               <el-input
18
               <el-input
19
-                placeholder="请输入接"
19
+                placeholder="请输入接"
20
                 v-model="postData.ForwardUrl"
20
                 v-model="postData.ForwardUrl"
21
                 clearable>
21
                 clearable>
22
               </el-input>
22
               </el-input>
128
     ...mapActions(['updateSystemInfo']),
128
     ...mapActions(['updateSystemInfo']),
129
     ...mapCmsActions(['updateLocationInfo']),
129
     ...mapCmsActions(['updateLocationInfo']),
130
     submit () {
130
     submit () {
131
-      console.log(this.postData)
131
+      if (this.postData.ForwardType === '1') {
132
+        if (this.postData.ForwardUrl === '') {
133
+          this.$message({
134
+            message: '链接地址不能为空',
135
+            type: 'error',
136
+          })
137
+          return false
138
+        } else {
139
+          var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
140
+          if (!reg.test(this.postData.ForwardUrl)) {
141
+            this.$message({
142
+              message: '链接地址格式不正确',
143
+              type: 'error',
144
+            })
145
+            return false
146
+          }
147
+        }
148
+      }
132
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
149
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
133
       this.postData.locationids = this.postData.LocationIds.join(',')
150
       this.postData.locationids = this.postData.LocationIds.join(',')
134
       this.postData.ImageUrl = ''
151
       this.postData.ImageUrl = ''

+ 21
- 4
src/pages/system/cmsManager/newsManager/edit.vue View File

6
           <span>跳转类型:</span>
6
           <span>跳转类型:</span>
7
           <div class="flex-item">
7
           <div class="flex-item">
8
             <div style="width:50%" class="radio">
8
             <div style="width:50%" class="radio">
9
-                <el-radio v-model="postData.ForwardType" label='1' >接</el-radio>
9
+                <el-radio v-model="postData.ForwardType" label='1' >接</el-radio>
10
                 <el-radio v-model="postData.ForwardType" label='0' >课程</el-radio>
10
                 <el-radio v-model="postData.ForwardType" label='0' >课程</el-radio>
11
             </div>
11
             </div>
12
           </div>
12
           </div>
13
         </li>
13
         </li>
14
         <li class="flex-h">
14
         <li class="flex-h">
15
-          <span>接:</span>
15
+          <span>接:</span>
16
           <div class="flex-item">
16
           <div class="flex-item">
17
             <div style="width:50%">
17
             <div style="width:50%">
18
               <el-input
18
               <el-input
19
-                placeholder="请输入接"
19
+                placeholder="请输入接"
20
                 v-model="postData.ForwardUrl"
20
                 v-model="postData.ForwardUrl"
21
                 clearable>
21
                 clearable>
22
               </el-input>
22
               </el-input>
124
   methods: {
124
   methods: {
125
     ...mapCmsActions(['updateLocationInfo']),
125
     ...mapCmsActions(['updateLocationInfo']),
126
     submit () {
126
     submit () {
127
-      console.log(this.postData)
127
+      if (this.postData.ForwardType === '1') {
128
+        if (this.postData.ForwardUrl === '') {
129
+          this.$message({
130
+            message: '链接地址不能为空',
131
+            type: 'error',
132
+          })
133
+          return false
134
+        } else {
135
+          var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
136
+          if (!reg.test(this.postData.ForwardUrl)) {
137
+            this.$message({
138
+              message: '链接地址格式不正确',
139
+              type: 'error',
140
+            })
141
+            return false
142
+          }
143
+        }
144
+      }
128
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
145
       this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
129
       this.postData.locationids = this.postData.LocationIds.join(',')
146
       this.postData.locationids = this.postData.LocationIds.join(',')
130
       this.postData.ImageUrl = ''
147
       this.postData.ImageUrl = ''

+ 2
- 1
src/pages/system/cmsManager/newsManager/index.vue View File

18
             </el-select>
18
             </el-select>
19
           </li>
19
           </li>
20
         </ul>
20
         </ul>
21
-        <tableSearch @exportSearchKey="searchList"></tableSearch>
21
+        <tableSearch @exportSearchKey="searchList" value="请输入标题"></tableSearch>
22
       </div>
22
       </div>
23
       <div class="moreFilter"></div>
23
       <div class="moreFilter"></div>
24
     </div>
24
     </div>
109
     ...mapCmsActions(['updateLocationInfo']),
109
     ...mapCmsActions(['updateLocationInfo']),
110
     handleCurrentChange (val) {
110
     handleCurrentChange (val) {
111
       console.log(`当前页: ${val}`)
111
       console.log(`当前页: ${val}`)
112
+      this.getList()
112
     },
113
     },
113
     handleEdit (index, row) { // 编辑
114
     handleEdit (index, row) { // 编辑
114
       console.log(index, row)
115
       console.log(index, row)

+ 13
- 2
src/pages/system/dataStatistics/frontEndUserList/index.vue View File

36
           prop="OpenId"
36
           prop="OpenId"
37
           label="openId">
37
           label="openId">
38
         </el-table-column>
38
         </el-table-column>
39
+        <el-table-column
40
+          label="创建时间">
41
+          <template slot-scope="scope">
42
+            <label>{{FormatDate(scope.row.CreateDate)}}</label>
43
+          </template>
44
+        </el-table-column>
39
       </el-table>
45
       </el-table>
40
     </div>
46
     </div>
41
     <el-pagination
47
     <el-pagination
67
   components: {
73
   components: {
68
     tableSearch,
74
     tableSearch,
69
   },
75
   },
70
-  created () {
71
-    this.getList()
76
+  mounted () {
77
+    this.$nextTick(function () {
78
+      this.getList()
79
+    })
72
   },
80
   },
73
   methods: {
81
   methods: {
82
+    FormatDate (date) {
83
+      return this.toolClass.dateFormat(date)
84
+    },
74
     handleCurrentChange (val) {
85
     handleCurrentChange (val) {
75
       this.getList()
86
       this.getList()
76
     },
87
     },

+ 15
- 4
src/pages/system/goodsManager/goodsSpecManager/index.vue View File

33
           prop="SpecName"
33
           prop="SpecName"
34
           label="规格名">
34
           label="规格名">
35
         </el-table-column>
35
         </el-table-column>
36
+        <el-table-column
37
+          label="所属案场">
38
+          <template slot-scope="scope">
39
+            <label>{{getCaseName(scope.row.CaseId)}}</label>
40
+          </template>
41
+        </el-table-column>
36
         <el-table-column label="操作">
42
         <el-table-column label="操作">
37
           <template slot-scope="scope">
43
           <template slot-scope="scope">
38
             <el-button
44
             <el-button
68
       postData: { // 表格搜索条件
74
       postData: { // 表格搜索条件
69
         CaseId: '', // 案场id
75
         CaseId: '', // 案场id
70
         page: 1, // 当前页码
76
         page: 1, // 当前页码
71
-        pagesize: 3, // 请求数据量
77
+        pagesize: 10, // 请求数据量
72
       },
78
       },
73
       currentList: []
79
       currentList: []
74
     }
80
     }
75
   },
81
   },
76
-  created () {
77
-    this.getList()
82
+  mounted () {
83
+    this.$nextTick(function () {
84
+      this.getList()
85
+    })
78
   },
86
   },
79
   computed: {
87
   computed: {
80
     ...mapState({
88
     ...mapState({
91
     }
99
     }
92
   },
100
   },
93
   methods: {
101
   methods: {
102
+    getCaseName (caseid) {
103
+      return (this.cases.filter(x => x.CaseId === caseid)[0] || {}).CaseName
104
+    },
94
     search () { // 搜索
105
     search () { // 搜索
95
       this.postData.page = 1
106
       this.postData.page = 1
96
       this.currentList = []
107
       this.currentList = []
99
     getList () { // 获取列表
110
     getList () { // 获取列表
100
       this.$ajax(this.$api.goodsManager.getGoodsSpecList.url, {
111
       this.$ajax(this.$api.goodsManager.getGoodsSpecList.url, {
101
         method: this.$api.goodsManager.getGoodsSpecList.method,
112
         method: this.$api.goodsManager.getGoodsSpecList.method,
102
-        queryData: { ...this.postData, CaseId: this.CaseId }
113
+        queryData: { ...this.postData, caseid: this.CaseId }
103
       }).then(res => {
114
       }).then(res => {
104
         this.currentList = res.list
115
         this.currentList = res.list
105
         this.postData.page = res.page
116
         this.postData.page = res.page

+ 5
- 3
src/pages/system/goodsManager/goodsTypeManager/index.vue View File

77
       currentList: []
77
       currentList: []
78
     }
78
     }
79
   },
79
   },
80
-  created () {
81
-    this.getList()
80
+  mounted () {
81
+    this.$nextTick(function () {
82
+      this.getList()
83
+    })
82
   },
84
   },
83
   computed: {
85
   computed: {
84
     ...mapState({
86
     ...mapState({
120
       this.$router.push({ name: 'editGoodsType', query: { id: row.TypeId } })
122
       this.$router.push({ name: 'editGoodsType', query: { id: row.TypeId } })
121
     },
123
     },
122
     handleDelete (index, row) { // 删除
124
     handleDelete (index, row) { // 删除
123
-      let name = '确认删除规格“' + row.TypeName + '”?'
125
+      let name = '确认删除类型“' + row.TypeName + '”?'
124
       this.$confirm(name, '提示', {
126
       this.$confirm(name, '提示', {
125
         confirmButtonText: '确定',
127
         confirmButtonText: '确定',
126
         cancelButtonText: '取消',
128
         cancelButtonText: '取消',

+ 10
- 10
src/pages/system/page.js View File

120
             name: 'editCase',
120
             name: 'editCase',
121
             component: editCase,
121
             component: editCase,
122
             children: []
122
             children: []
123
-          }, { // 体检设备
124
-            path: 'deviceManager',
125
-            name: 'deviceManager',
126
-            component: deviceManager,
127
-            children: []
128
-          }, { // 添加体检设备
129
-            path: 'editDevice',
130
-            name: 'editDevice',
131
-            component: editDevice,
132
-            children: []
133
           }, { // 相关人员
123
           }, { // 相关人员
134
             path: 'pplConcerned',
124
             path: 'pplConcerned',
135
             name: 'pplConcerned',
125
             name: 'pplConcerned',
141
               children: []
131
               children: []
142
             }]
132
             }]
143
           }]
133
           }]
134
+        }, { // 体检设备
135
+          path: 'deviceManager',
136
+          name: 'deviceManager',
137
+          component: deviceManager,
138
+          children: [{ // 添加体检设备
139
+            path: 'editDevice',
140
+            name: 'editDevice',
141
+            component: editDevice,
142
+            children: []
143
+          }]
144
         }, { // 钥匙管理
144
         }, { // 钥匙管理
145
           path: 'keyManager',
145
           path: 'keyManager',
146
           name: 'keyManager',
146
           name: 'keyManager',

+ 8
- 0
src/pages/system/systemSet/roleManager/add.vue View File

9
               <el-input
9
               <el-input
10
                 placeholder="请输入角色名称"
10
                 placeholder="请输入角色名称"
11
                 v-model="detail.RoleName"
11
                 v-model="detail.RoleName"
12
+                maxlength="10"
12
                 clearable>
13
                 clearable>
13
               </el-input>
14
               </el-input>
14
             </div>
15
             </div>
64
       'SetRoleNull',
65
       'SetRoleNull',
65
     ]),
66
     ]),
66
     submit () {
67
     submit () {
68
+      if (!this.detail.RoleName || this.detail.RoleName === '') {
69
+        this.$message({
70
+          type: 'error',
71
+          message: '角色名称不允许为空!'
72
+        })
73
+        return false
74
+      }
67
       if ((this.detail.RoleId || '') === '') {
75
       if ((this.detail.RoleId || '') === '') {
68
         this.detail.CaseId = this.caseid
76
         this.detail.CaseId = this.caseid
69
         this.detail.OrgId = this.orgid
77
         this.detail.OrgId = this.orgid

+ 0
- 1
src/pages/system/systemSet/roleManager/index.vue View File

96
       'GetRoleMenu',
96
       'GetRoleMenu',
97
     ]),
97
     ]),
98
     FormatDate (date) {
98
     FormatDate (date) {
99
-      console.log()
100
       return this.toolClass.dateFormat(date)
99
       return this.toolClass.dateFormat(date)
101
     },
100
     },
102
     handleSizeChange (val) {
101
     handleSizeChange (val) {

+ 9
- 1
src/pages/system/systemSet/userManager/add.vue View File

7
           <div class="flex-item">
7
           <div class="flex-item">
8
             <div style="width:50%">
8
             <div style="width:50%">
9
               <el-input
9
               <el-input
10
-                placeholder="请输入帐户名称"
10
+                placeholder="请输入帐户名称,只限英文"
11
                 v-model="postData.UserName"
11
                 v-model="postData.UserName"
12
                 clearable>
12
                 clearable>
13
               </el-input>
13
               </el-input>
202
         })
202
         })
203
         return false
203
         return false
204
       }
204
       }
205
+      var re = new RegExp('^[a-zA-Z0-9]+$')
206
+      if (!re.test(this.postData.UserName)) {
207
+        this.$message({
208
+          type: 'error',
209
+          message: '帐户名称必须为英文或数字'
210
+        })
211
+        return false
212
+      }
205
       if (this.postData.Phone === '') {
213
       if (this.postData.Phone === '') {
206
         this.$message({
214
         this.$message({
207
           type: 'error',
215
           type: 'error',

+ 10
- 2
src/pages/system/systemSet/userManager/edit.vue View File

7
           <div class="flex-item">
7
           <div class="flex-item">
8
             <div style="width:50%">
8
             <div style="width:50%">
9
               <el-input
9
               <el-input
10
-                placeholder="请输入帐户名称"
10
+                placeholder="请输入帐户名称,只限英文"
11
                 v-model="postData.UserName"
11
                 v-model="postData.UserName"
12
                 clearable>
12
                 clearable>
13
               </el-input>
13
               </el-input>
178
         method: this.$api.systemSet.getUserInfo.method,
178
         method: this.$api.systemSet.getUserInfo.method,
179
         urlData: { id: this.$route.query.id }
179
         urlData: { id: this.$route.query.id }
180
       }).then(res => {
180
       }).then(res => {
181
-        for (var n = 0; n < res.UserTag.length; n++) {
181
+        for (var n = 0; n < (res.UserTag || []).length; n++) {
182
           this.TagIds.push(res.UserTag[n].TagId)
182
           this.TagIds.push(res.UserTag[n].TagId)
183
         }
183
         }
184
         if (res.UserType !== null) res.TypeId = res.UserType[0].TypeId
184
         if (res.UserType !== null) res.TypeId = res.UserType[0].TypeId
219
         })
219
         })
220
         return false
220
         return false
221
       }
221
       }
222
+      var re = new RegExp('^[a-zA-Z0-9]+$')
223
+      if (!re.test(this.postData.UserName)) {
224
+        this.$message({
225
+          type: 'error',
226
+          message: '帐户名称必须为英文或数字'
227
+        })
228
+        return false
229
+      }
222
       if (this.postData.Phone === '') {
230
       if (this.postData.Phone === '') {
223
         this.$message({
231
         this.$message({
224
           type: 'error',
232
           type: 'error',

+ 50
- 6
src/pages/system/systemSet/userManager/index.vue View File

17
               </el-option>
17
               </el-option>
18
             </el-select>
18
             </el-select>
19
           </li>
19
           </li>
20
+          <li>
21
+            <el-input
22
+              placeholder="请输入用户名"
23
+              v-model="name"
24
+            >
25
+            </el-input>
26
+          </li>
27
+          <li>
28
+            <el-select v-model="usertype" placeholder="请选择用户类型">
29
+              <el-option
30
+                key=""
31
+                label=""
32
+                value=""
33
+              >
34
+              </el-option>
35
+              <el-option
36
+                v-for="item in typeList"
37
+                :key="item.TypeId"
38
+                :label="item.TypeName"
39
+                :value="item.TypeId">
40
+              </el-option>
41
+            </el-select>
42
+          </li>
20
         </ul>
43
         </ul>
21
         <el-button
44
         <el-button
22
           size="mini"
45
           size="mini"
53
         <el-table-column
76
         <el-table-column
54
           prop="Phone"
77
           prop="Phone"
55
           label="手机号"
78
           label="手机号"
56
-          width="100">
79
+          width="150">
57
         </el-table-column>
80
         </el-table-column>
58
         <el-table-column
81
         <el-table-column
59
           prop="UserTypeNames"
82
           prop="UserTypeNames"
157
   name: '',
180
   name: '',
158
   data () {
181
   data () {
159
     return {
182
     return {
183
+      name: '',
184
+      usertype: '',
185
+      typeList: [],
160
       currentEditItem: null,
186
       currentEditItem: null,
161
       dialogTableVisible: false,
187
       dialogTableVisible: false,
162
       total: 0,
188
       total: 0,
164
         caseid: '',
190
         caseid: '',
165
         name: '', // 搜索关键词
191
         name: '', // 搜索关键词
166
         page: 1, // 当前页码
192
         page: 1, // 当前页码
167
-        pagesize: 10000, // 请求数据量
193
+        pagesize: 10, // 请求数据量
168
       },
194
       },
169
       currentList: [],
195
       currentList: [],
170
       searchTagList: [],
196
       searchTagList: [],
185
       }
211
       }
186
     }
212
     }
187
   },
213
   },
188
-  created () {
189
-    this.getList()
214
+  mounted () {
215
+    this.$nextTick(function () {
216
+      this.getUserTypeList()
217
+      this.getList()
218
+    })
190
   },
219
   },
191
   methods: {
220
   methods: {
221
+    getUserTypeList () { // 获取用户类型
222
+      this.$ajax(this.$api.caseManager.getUserTypeList.url, {
223
+        method: this.$api.caseManager.getUserTypeList.method,
224
+      }).then(res => {
225
+        this.typeList = res
226
+      })
227
+    },
192
     resetPasswd (index, row) { // 重置密码
228
     resetPasswd (index, row) { // 重置密码
193
       this.$confirm('确认重置此用户密码?', '提示', {
229
       this.$confirm('确认重置此用户密码?', '提示', {
194
         confirmButtonText: '确定',
230
         confirmButtonText: '确定',
212
       })
248
       })
213
     },
249
     },
214
     bindRoles () { // 绑定角色
250
     bindRoles () { // 绑定角色
251
+      const roleids = this.returnRoles()
252
+      if (roleids === '') {
253
+        this.$message({
254
+          type: 'error',
255
+          message: '请先选择角色!'
256
+        })
257
+        return false
258
+      }
215
       this.$ajax(this.$api.systemSet.bindRoles.url, {
259
       this.$ajax(this.$api.systemSet.bindRoles.url, {
216
         method: this.$api.systemSet.bindRoles.method,
260
         method: this.$api.systemSet.bindRoles.method,
217
         queryData: {
261
         queryData: {
218
           userid: this.currentEditItem.UserId,
262
           userid: this.currentEditItem.UserId,
219
-          roles: this.returnRoles()
263
+          roles: roleids
220
         }
264
         }
221
       }).then(res => {
265
       }).then(res => {
222
         this.$message({
266
         this.$message({
244
     getList () { // 获取列表
288
     getList () { // 获取列表
245
       this.$ajax(this.$api.systemSet.getUserList.url, {
289
       this.$ajax(this.$api.systemSet.getUserList.url, {
246
         method: this.$api.systemSet.getUserList.method,
290
         method: this.$api.systemSet.getUserList.method,
247
-        queryData: { ...this.postData, caseid: this.CaseId }
291
+        queryData: { ...this.postData, caseid: this.CaseId, typeid: this.usertype, username: this.name }
248
       }).then(res => {
292
       }).then(res => {
249
         for (var n = 0; n < res.list.length; n++) {
293
         for (var n = 0; n < res.list.length; n++) {
250
           res.list[n].CreateDate = this.returnTime(res.list[n].CreateDate)
294
           res.list[n].CreateDate = this.returnTime(res.list[n].CreateDate)

+ 2
- 2
src/store/app.js View File

53
     breadcrumb: [],
53
     breadcrumb: [],
54
     cases: {
54
     cases: {
55
       list: [],
55
       list: [],
56
-      default: 0
56
+      default: '',
57
     },
57
     },
58
     roles: [],
58
     roles: [],
59
     user: {}
59
     user: {}
65
       state.user = data.user
65
       state.user = data.user
66
       state.menus = packChildren(data.menus)
66
       state.menus = packChildren(data.menus)
67
 
67
 
68
-      let defaultCase = 0
68
+      let defaultCase = ''
69
       for (let i = 0; i < data.cases.length; i++) {
69
       for (let i = 0; i < data.cases.length; i++) {
70
         if (data.cases[i].IsBelong === 1) {
70
         if (data.cases[i].IsBelong === 1) {
71
           defaultCase = data.cases[i].CaseId
71
           defaultCase = data.cases[i].CaseId

+ 3
- 0
src/store/case/device.js View File

66
     SetDeviceNull ({ commit }) {
66
     SetDeviceNull ({ commit }) {
67
       commit('updateInfo', {})
67
       commit('updateInfo', {})
68
     },
68
     },
69
+    UpdateInfo ({ commit }, info) {
70
+      commit('updateInfo', info)
71
+    },
69
   }
72
   }
70
 }
73
 }

+ 5
- 2
src/store/cms/index.js View File

10
     }
10
     }
11
   },
11
   },
12
   actions: {
12
   actions: {
13
-    updateLocationInfo (context) { // 这里的context和我们使用的$store拥有相同的对象和方法
13
+    updateLocationInfo (context, payload) { // 这里的context和我们使用的$store拥有相同的对象和方法
14
       return new Promise((resolve) => {
14
       return new Promise((resolve) => {
15
         this.$ajax(this.$api.cms.location.url, {
15
         this.$ajax(this.$api.cms.location.url, {
16
-          method: this.$api.cms.location.method
16
+          method: this.$api.cms.location.method,
17
+          data: {
18
+            issys: payload && payload.issys ? payload.issys : 0
19
+          }
17
         }).then(res => {
20
         }).then(res => {
18
           context.commit('init', res)
21
           context.commit('init', res)
19
           resolve()
22
           resolve()

+ 12
- 0
src/util/api.js View File

74
       method: 'put',
74
       method: 'put',
75
       url: `${baseUrl}${common}/channel`
75
       url: `${baseUrl}${common}/channel`
76
     },
76
     },
77
+    deleteChannel: { // 删除渠道
78
+      method: 'delete',
79
+      url: `${baseUrl}${common}/channel/:channelId`
80
+    },
77
   },
81
   },
78
   caseManager: {
82
   caseManager: {
79
     getRolesList: { // 获取角色列表
83
     getRolesList: { // 获取角色列表
96
       method: 'put',
100
       method: 'put',
97
       url: `${baseUrl}${common}/case/info/:id`
101
       url: `${baseUrl}${common}/case/info/:id`
98
     },
102
     },
103
+    getCaseUserType: { // 获取案场相关人员类型
104
+      method: 'get',
105
+      url: `${baseUrl}${common}/case/usertype`
106
+    },
99
     getCaseUserList: { // 获取案场相关人员列表
107
     getCaseUserList: { // 获取案场相关人员列表
100
       method: 'get',
108
       method: 'get',
101
       url: `${baseUrl}${common}/case/user`
109
       url: `${baseUrl}${common}/case/user`
124
       method: 'put',
132
       method: 'put',
125
       url: `${baseUrl}${common}/case/unlock/:id`
133
       url: `${baseUrl}${common}/case/unlock/:id`
126
     },
134
     },
135
+    deleteKey: { // 删除钥匙
136
+      method: 'delete',
137
+      url: `${baseUrl}${common}/case/key/:id`
138
+    },
127
     getCaseAreaList: { // 获取案场区域列表
139
     getCaseAreaList: { // 获取案场区域列表
128
       method: 'get',
140
       method: 'get',
129
       url: `${baseUrl}${common}/case/area`
141
       url: `${baseUrl}${common}/case/area`