浏览代码

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

yuantianjiao 6 年前
父节点
当前提交
e4c8e9ba47

+ 0
- 10
src/pages/system/caseManager/caseAreaManager/add.vue 查看文件

83
         AreaIcon: '', // 区域图标
83
         AreaIcon: '', // 区域图标
84
         AreaIconWhite: '', // 区域图标灰白
84
         AreaIconWhite: '', // 区域图标灰白
85
       },
85
       },
86
-      caseList: [{
87
-        value: '0',
88
-        label: '案场1'
89
-      }, {
90
-        value: '1',
91
-        label: '案场3'
92
-      }, {
93
-        value: '2',
94
-        label: '案场3'
95
-      }],
96
     }
86
     }
97
   },
87
   },
98
   computed: {
88
   computed: {

+ 95
- 32
src/pages/system/caseManager/caseAreaManager/edit.vue 查看文件

8
             <div style="width:50%">
8
             <div style="width:50%">
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
               </el-input>
13
               </el-input>
14
             </div>
14
             </div>
18
           <span>案场:</span>
18
           <span>案场:</span>
19
           <div class="flex-item">
19
           <div class="flex-item">
20
             <div style="width:50%">
20
             <div style="width:50%">
21
-              <el-select v-model="postData.case" placeholder="请选择">
21
+              <el-select v-model="CaseId" placeholder="请选择">
22
                 <el-option
22
                 <el-option
23
-                  v-for="item in caseList"
24
-                  :key="item.value"
25
-                  :label="item.label"
26
-                  :value="item.value">
23
+                  v-for="item in cases"
24
+                  :key="item.CaseId"
25
+                  :label="item.CaseName"
26
+                  :value="item.CaseId">
27
                 </el-option>
27
                 </el-option>
28
               </el-select>
28
               </el-select>
29
             </div>
29
             </div>
33
           <span>图片:</span>
33
           <span>图片:</span>
34
           <div class="flex-item">
34
           <div class="flex-item">
35
             <div>
35
             <div>
36
-              <a class="formImg">
37
-                <img src="" class="centerLabel contain" alt="">
38
-                <i class="iconfont icon-quxiao"></i>
39
-              </a>
40
-              <el-button type="success" size="mini">上传图片</el-button>
36
+              <el-upload
37
+                class="avatar-uploader"
38
+                :action='$api.file.image.url'
39
+                :show-file-list="false"
40
+                :on-success="handleAvatarSuccess">
41
+                <img v-if="postData.AreaIcon" :src="postData.AreaIcon" class="avatar">
42
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
43
+              </el-upload>
41
             </div>
44
             </div>
42
           </div>
45
           </div>
43
         </li>
46
         </li>
45
           <span>黑白图片:</span>
48
           <span>黑白图片:</span>
46
           <div class="flex-item">
49
           <div class="flex-item">
47
             <div>
50
             <div>
48
-              <a class="formImg">
49
-                <img src="" class="centerLabel contain" alt="">
50
-                <i class="iconfont icon-quxiao"></i>
51
-              </a>
52
-              <el-button type="success" size="mini">上传图片</el-button>
51
+              <el-upload
52
+                class="avatar-uploader"
53
+                :action='$api.file.image.url'
54
+                :show-file-list="false"
55
+                :on-success="handleAvatarSuccesser">
56
+                <img v-if="postData.AreaIconWhite" :src="postData.AreaIconWhite" class="avatar">
57
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
58
+              </el-upload>
53
             </div>
59
             </div>
54
           </div>
60
           </div>
55
         </li>
61
         </li>
63
 </template>
69
 </template>
64
 
70
 
65
 <script>
71
 <script>
72
+import { mapState } from 'vuex'
73
+
66
 export default {
74
 export default {
67
   name: '',
75
   name: '',
68
   data () {
76
   data () {
69
     return {
77
     return {
70
       postData: {
78
       postData: {
71
-        areaName: '',
72
-        case: ''
79
+        AreaId: '', // 区域id
80
+        CaseId: '', // 案场id
81
+        OrgId: '', // 机构id
82
+        AreaName: '', // 区域名称
83
+        AreaIcon: '', // 区域图标
84
+        AreaIconWhite: '', // 区域图标灰白
85
+      },
86
+    }
87
+  },
88
+  computed: {
89
+    ...mapState({
90
+      cases: x => x.app.cases.list,
91
+      defaultCaseId: x => x.app.cases.default
92
+    }),
93
+    CaseId: {
94
+      get () {
95
+        return this.postData.CaseId || this.defaultCaseId
73
       },
96
       },
74
-      caseList: [{
75
-        value: '0',
76
-        label: '案场1'
77
-      }, {
78
-        value: '1',
79
-        label: '案场3'
80
-      }, {
81
-        value: '2',
82
-        label: '案场3'
83
-      }],
97
+      set (val) {
98
+        this.postData.CaseId = val
99
+      }
84
     }
100
     }
85
   },
101
   },
102
+  created () {
103
+    this.getCaseAreaInfo()
104
+  },
86
   components: {},
105
   components: {},
87
   methods: {
106
   methods: {
88
-    submit () {
89
-      console.log(this.postData)
107
+    getCaseAreaInfo () { // 获取区域信息
108
+      this.$ajax(this.$api.caseManager.getCaseAreaInfo.url, {
109
+        method: this.$api.caseManager.getCaseAreaInfo.method,
110
+        urlData: { id: this.$route.query.id }
111
+      }).then(res => {
112
+        this.postData = res
113
+      })
114
+    },
115
+    handleAvatarSuccesser (res, file) {
116
+      this.postData.AreaIconWhite = res.result.url
117
+    },
118
+    handleAvatarSuccess (res, file) {
119
+      this.postData.AreaIcon = res.result.url
120
+    },
121
+    submit () { // 提交数据
122
+      if (this.postData.AreaName === '') {
123
+        this.$message({
124
+          type: 'error',
125
+          message: '区域名称不能为空'
126
+        })
127
+        return false
128
+      }
129
+      if (this.postData.AreaIcon === '') {
130
+        this.$message({
131
+          type: 'error',
132
+          message: '区域图标不能为空'
133
+        })
134
+        return false
135
+      }
136
+      if (this.postData.AreaIconWhite === '') {
137
+        this.$message({
138
+          type: 'error',
139
+          message: '区域图标灰白不能为空'
140
+        })
141
+        return false
142
+      }
143
+      this.$ajax(this.$api.caseManager.editCaseArea.url, {
144
+        method: this.$api.caseManager.editCaseArea.method,
145
+        data: { ...this.postData },
146
+      }).then(res => {
147
+        this.$message({
148
+          type: 'success',
149
+          message: '操作成功!'
150
+        })
151
+        this.$router.push({ name: 'caseAreaManager' })
152
+      })
90
     },
153
     },
91
     cancel () {
154
     cancel () {
92
-      this.$router.go(-1)
155
+      this.$router.push({ name: 'caseAreaManager' })
93
     }
156
     }
94
   },
157
   },
95
-  mounted () {}
158
+  mounted () { }
96
 }
159
 }
97
 </script>
160
 </script>
98
 
161
 

+ 24
- 11
src/pages/system/caseManager/caseAreaManager/index.vue 查看文件

38
           label="图标">
38
           label="图标">
39
           <template slot-scope="scope">
39
           <template slot-scope="scope">
40
             <a class="tableImg">
40
             <a class="tableImg">
41
-              <img :src="scope.row" class="centerLabel contain" alt="">
41
+              <img :src="scope.row.AreaIcon" class="centerLabel contain" alt="">
42
+            </a>
43
+          </template>
44
+        </el-table-column>
45
+        <el-table-column
46
+          prop="AreaIconWhite"
47
+          label="灰白图标">
48
+          <template slot-scope="scope">
49
+            <a class="tableImg">
50
+              <img :src="scope.row.AreaIconWhite" class="centerLabel contain" alt="">
42
             </a>
51
             </a>
43
           </template>
52
           </template>
44
         </el-table-column>
53
         </el-table-column>
79
     return {
88
     return {
80
       total: 0,
89
       total: 0,
81
       postData: { // 表格搜索条件
90
       postData: { // 表格搜索条件
82
-        CaseId: '', // 案场id
91
+        caseid: '', // 案场id
83
         page: 1, // 当前页码
92
         page: 1, // 当前页码
84
         pagesize: 10, // 请求数据量
93
         pagesize: 10, // 请求数据量
85
       },
94
       },
96
     }),
105
     }),
97
     CaseId: {
106
     CaseId: {
98
       get () {
107
       get () {
99
-        return this.postData.CaseId || this.defaultCaseId
108
+        return this.postData.caseid || this.defaultCaseId
100
       },
109
       },
101
       set (val) {
110
       set (val) {
102
-        this.postData.CaseId = val
111
+        this.postData.caseid = val
103
       }
112
       }
104
     }
113
     }
105
   },
114
   },
112
     getList () { // 获取列表
121
     getList () { // 获取列表
113
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
122
       this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
114
         method: this.$api.caseManager.getCaseAreaList.method,
123
         method: this.$api.caseManager.getCaseAreaList.method,
115
-        queryData: { ...this.postData, CaseId: this.CaseId }
124
+        queryData: { ...this.postData, caseid: this.CaseId }
116
       }).then(res => {
125
       }).then(res => {
117
         for (var n = 0; n < res.list.length; n++) {
126
         for (var n = 0; n < res.list.length; n++) {
118
           res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName
127
           res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName
126
       this.getList()
135
       this.getList()
127
     },
136
     },
128
     editItem (index, row) { // 编辑
137
     editItem (index, row) { // 编辑
129
-      console.log(index, row)
130
-      this.$router.push({ name: 'editCaseArea' })
138
+      this.$router.push({ name: 'editCaseArea', query: {id: row.AreaId} })
131
     },
139
     },
132
     deleteItem (index, row) { // 删除
140
     deleteItem (index, row) { // 删除
133
-      console.log(index, row)
134
       this.$confirm('确认删除此数据?', '提示', {
141
       this.$confirm('确认删除此数据?', '提示', {
135
         confirmButtonText: '确定',
142
         confirmButtonText: '确定',
136
         cancelButtonText: '取消',
143
         cancelButtonText: '取消',
137
         type: 'warning'
144
         type: 'warning'
138
       }).then(() => {
145
       }).then(() => {
139
-        this.$message({
140
-          type: 'success',
141
-          message: '删除成功!'
146
+        this.$ajax(this.$api.caseManager.deleteCaseArea.url, {
147
+          method: this.$api.caseManager.deleteCaseArea.method,
148
+          urlData: { id: row.AreaId }
149
+        }).then(res => {
150
+          this.$message({
151
+            type: 'success',
152
+            message: '删除成功!'
153
+          })
154
+          this.search()
142
         })
155
         })
143
       }).catch(() => {
156
       }).catch(() => {
144
         this.$message({
157
         this.$message({

+ 66
- 18
src/pages/system/caseManager/caseTableManager/add.vue 查看文件

3
     <form class="mainForm">
3
     <form class="mainForm">
4
       <ul>
4
       <ul>
5
         <li class="flex-h">
5
         <li class="flex-h">
6
-          <span>桌编号:</span>
6
+          <span>桌位名称:</span>
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="请输入桌编号"
11
-                v-model="postData.tableId"
10
+                placeholder="请输入名称"
11
+                v-model="postData.TableNo"
12
                 clearable>
12
                 clearable>
13
               </el-input>
13
               </el-input>
14
             </div>
14
             </div>
18
           <span>区域:</span>
18
           <span>区域:</span>
19
           <div class="flex-item">
19
           <div class="flex-item">
20
             <div style="width:50%">
20
             <div style="width:50%">
21
-              <el-select v-model="postData.caseArea" placeholder="请选择">
21
+              <el-select v-model="postData.AreaId" placeholder="请选择">
22
                 <el-option
22
                 <el-option
23
                   v-for="item in caseAreaList"
23
                   v-for="item in caseAreaList"
24
-                  :key="item.value"
25
-                  :label="item.label"
26
-                  :value="item.value">
24
+                  :key="item.AreaId"
25
+                  :label="item.AreaName"
26
+                  :value="item.AreaId">
27
                 </el-option>
27
                 </el-option>
28
               </el-select>
28
               </el-select>
29
             </div>
29
             </div>
39
 </template>
39
 </template>
40
 
40
 
41
 <script>
41
 <script>
42
+import { mapState } from 'vuex'
43
+
42
 export default {
44
 export default {
43
   name: '',
45
   name: '',
44
   data () {
46
   data () {
45
     return {
47
     return {
48
+      caseAreaList: [],
46
       postData: {
49
       postData: {
47
-        tableId: '',
48
-        caseArea: ''
50
+        TableId: '', // 桌位id
51
+        AreaId: '', // 区域id
52
+        CaseId: '', // 案场id
53
+        OrgId: '', // 机构id
54
+        TableNo: '', // 桌位编号
55
+        Order: '', // 排序
49
       },
56
       },
50
-      caseAreaList: [
51
-        {
52
-          value: '0',
53
-          label: '区域A'
54
-        }
55
-      ]
57
+    }
58
+  },
59
+  created () {
60
+    this.getAreaList()
61
+  },
62
+  computed: {
63
+    ...mapState({
64
+      cases: x => x.app.cases.list,
65
+      defaultCaseId: x => x.app.cases.default
66
+    }),
67
+    CaseId: {
68
+      get () {
69
+        return this.postData.CaseId || this.defaultCaseId
70
+      },
71
+      set (val) {
72
+        this.postData.CaseId = val
73
+      }
56
     }
74
     }
57
   },
75
   },
58
   components: {},
76
   components: {},
59
   methods: {
77
   methods: {
60
-    submit () {
61
-      console.log(this.postData)
78
+    getAreaList () {
79
+      this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
80
+        method: this.$api.caseManager.getCaseAreaList.method,
81
+        queryData: {
82
+          caseid: this.CaseId, // 案场id
83
+          page: 1, // 当前页码
84
+          pagesize: 10000, // 请求数据量
85
+        }
86
+      }).then(res => {
87
+        this.caseAreaList = res.list
88
+        this.postData.AreaId = res.list[0].AreaId
89
+      })
90
+    },
91
+    submit () { // 提交数据
92
+      if (this.postData.TableNo === '') {
93
+        this.$message({
94
+          type: 'error',
95
+          message: '桌位名称不能为空'
96
+        })
97
+        return false
98
+      }
99
+      this.postData.OrgId = this.OrgId
100
+      this.$ajax(this.$api.caseManager.addCaseTable.url, {
101
+        method: this.$api.caseManager.addCaseTable.method,
102
+        data: { ...this.postData, CaseId: this.CaseId }
103
+      }).then(res => {
104
+        this.$message({
105
+          type: 'success',
106
+          message: '操作成功!'
107
+        })
108
+        this.$router.push({ name: 'caseTableManager' })
109
+      })
62
     },
110
     },
63
     cancel () {
111
     cancel () {
64
-      this.$router.go(-1)
112
+      this.$router.push({ name: 'caseTableManager' })
65
     }
113
     }
66
   },
114
   },
67
   mounted () { }
115
   mounted () { }

+ 75
- 18
src/pages/system/caseManager/caseTableManager/edit.vue 查看文件

3
     <form class="mainForm">
3
     <form class="mainForm">
4
       <ul>
4
       <ul>
5
         <li class="flex-h">
5
         <li class="flex-h">
6
-          <span>桌编号:</span>
6
+          <span>桌位名称:</span>
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="请输入桌编号"
11
-                v-model="postData.tableId"
10
+                placeholder="请输入名称"
11
+                v-model="postData.TableNo"
12
                 clearable>
12
                 clearable>
13
               </el-input>
13
               </el-input>
14
             </div>
14
             </div>
18
           <span>区域:</span>
18
           <span>区域:</span>
19
           <div class="flex-item">
19
           <div class="flex-item">
20
             <div style="width:50%">
20
             <div style="width:50%">
21
-              <el-select v-model="postData.caseArea" placeholder="请选择">
21
+              <el-select v-model="postData.AreaId" placeholder="请选择">
22
                 <el-option
22
                 <el-option
23
                   v-for="item in caseAreaList"
23
                   v-for="item in caseAreaList"
24
-                  :key="item.value"
25
-                  :label="item.label"
26
-                  :value="item.value">
24
+                  :key="item.AreaId"
25
+                  :label="item.AreaName"
26
+                  :value="item.AreaId">
27
                 </el-option>
27
                 </el-option>
28
               </el-select>
28
               </el-select>
29
             </div>
29
             </div>
39
 </template>
39
 </template>
40
 
40
 
41
 <script>
41
 <script>
42
+import { mapState } from 'vuex'
43
+
42
 export default {
44
 export default {
43
   name: '',
45
   name: '',
44
   data () {
46
   data () {
45
     return {
47
     return {
48
+      caseAreaList: [],
46
       postData: {
49
       postData: {
47
-        tableId: '',
48
-        caseArea: ''
50
+        TableId: '', // 桌位id
51
+        AreaId: '', // 区域id
52
+        CaseId: '', // 案场id
53
+        OrgId: '', // 机构id
54
+        TableNo: '', // 桌位编号
55
+        Order: '', // 排序
49
       },
56
       },
50
-      caseAreaList: [
51
-        {
52
-          value: '0',
53
-          label: '区域A'
54
-        }
55
-      ]
57
+    }
58
+  },
59
+  created () {
60
+    this.getAreaList()
61
+    this.getCaseTableInfo()
62
+  },
63
+  computed: {
64
+    ...mapState({
65
+      cases: x => x.app.cases.list,
66
+      defaultCaseId: x => x.app.cases.default
67
+    }),
68
+    CaseId: {
69
+      get () {
70
+        return this.postData.CaseId || this.defaultCaseId
71
+      },
72
+      set (val) {
73
+        this.postData.CaseId = val
74
+      }
56
     }
75
     }
57
   },
76
   },
58
   components: {},
77
   components: {},
59
   methods: {
78
   methods: {
60
-    submit () {
61
-      console.log(this.postData)
79
+    getCaseTableInfo () {
80
+      this.$ajax(this.$api.caseManager.getCaseTableInfo.url, {
81
+        method: this.$api.caseManager.getCaseTableInfo.method,
82
+        urlData: { id: this.$route.query.id }
83
+      }).then(res => {
84
+        this.postData = res
85
+      })
86
+    },
87
+    getAreaList () {
88
+      this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
89
+        method: this.$api.caseManager.getCaseAreaList.method,
90
+        queryData: {
91
+          caseid: this.CaseId, // 案场id
92
+          page: 1, // 当前页码
93
+          pagesize: 10000, // 请求数据量
94
+        }
95
+      }).then(res => {
96
+        this.caseAreaList = res.list
97
+        this.postData.AreaId = res.list[0].AreaId
98
+      })
99
+    },
100
+    submit () { // 提交数据
101
+      if (this.postData.TableNo === '') {
102
+        this.$message({
103
+          type: 'error',
104
+          message: '桌位名称不能为空'
105
+        })
106
+        return false
107
+      }
108
+      this.postData.OrgId = this.OrgId
109
+      this.$ajax(this.$api.caseManager.editCaseTable.url, {
110
+        method: this.$api.caseManager.editCaseTable.method,
111
+        data: { ...this.postData, CaseId: this.CaseId }
112
+      }).then(res => {
113
+        this.$message({
114
+          type: 'success',
115
+          message: '操作成功!'
116
+        })
117
+        this.$router.push({ name: 'caseTableManager' })
118
+      })
62
     },
119
     },
63
     cancel () {
120
     cancel () {
64
-      this.$router.go(-1)
121
+      this.$router.push({ name: 'caseTableManager' })
65
     }
122
     }
66
   },
123
   },
67
   mounted () { }
124
   mounted () { }

+ 84
- 54
src/pages/system/caseManager/caseTableManager/index.vue 查看文件

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="CaseId" placeholder="请选择">
12
               <el-option
12
               <el-option
13
-                v-for="item in caseList"
14
-                :key="item.value"
15
-                :label="item.label"
16
-                :value="item.value">
13
+                v-for="item in cases"
14
+                :key="item.CaseId"
15
+                :label="item.CaseName"
16
+                :value="item.CaseId">
17
               </el-option>
17
               </el-option>
18
             </el-select>
18
             </el-select>
19
           </li>
19
           </li>
20
         </ul>
20
         </ul>
21
-        <tableSearch value="请输入桌编号" @exportSearchKey="searchList"></tableSearch>
21
+        <el-button
22
+          size="mini"
23
+          type="primary" @click="search">搜索</el-button>
22
       </div>
24
       </div>
23
       <div class="moreFilter"></div>
25
       <div class="moreFilter"></div>
24
     </div>
26
     </div>
25
     <div class="system-table-box">
27
     <div class="system-table-box">
26
       <el-table
28
       <el-table
27
-        :data="tableData"
29
+        :data="currentList"
28
         stripe
30
         stripe
29
         style="width: 100%">
31
         style="width: 100%">
30
         <el-table-column
32
         <el-table-column
31
-          prop="tableId"
32
-          label="桌编号">
33
+          prop="TableNo"
34
+          label="桌位名称">
33
         </el-table-column>
35
         </el-table-column>
34
         <el-table-column
36
         <el-table-column
35
-          prop="area"
37
+          prop="AreaId"
36
           label="区域">
38
           label="区域">
37
         </el-table-column>
39
         </el-table-column>
38
         <el-table-column label="操作">
40
         <el-table-column label="操作">
50
       </el-table>
52
       </el-table>
51
     </div>
53
     </div>
52
     <el-pagination
54
     <el-pagination
53
-      @size-change="handleSizeChange"
54
       @current-change="handleCurrentChange"
55
       @current-change="handleCurrentChange"
55
-      :current-page.sync="currentPage"
56
-      :page-size="10"
56
+      :current-page.sync="postData.page"
57
+      :page-size="postData.pagesize"
57
       layout="prev, pager, next, jumper"
58
       layout="prev, pager, next, jumper"
58
-      :total="100">
59
+      :total="total">
59
     </el-pagination>
60
     </el-pagination>
60
   </div>
61
   </div>
61
 </template>
62
 </template>
62
 
63
 
63
 <script>
64
 <script>
64
-import { createNamespacedHelpers } from 'vuex'
65
-import tableSearch from '@/components/tableSearch/index'
66
-
67
-const { mapState: mapCaseState } = createNamespacedHelpers('case')
65
+import { mapState } from 'vuex'
68
 
66
 
69
 export default {
67
 export default {
70
   name: '',
68
   name: '',
71
   data () {
69
   data () {
72
     return {
70
     return {
73
-      currentPage: 0, // 当前页码
74
-      tableSearch: { // 表格搜索条件
75
-        key: '', // 搜索关键字
76
-        caseId: '', // 案场id
71
+      total: 0,
72
+      postData: { // 表格搜索条件
73
+        caseid: '', // 案场id
74
+        page: 1, // 当前页码
75
+        pagesize: 10, // 请求数据量
77
       },
76
       },
78
-      tableData: [{
79
-        tableId: 'xxx',
80
-        area: 'xxx'
81
-      }, {
82
-        tableId: 'xxx',
83
-        area: 'xxx'
84
-      }, {
85
-        tableId: 'xxx',
86
-        area: 'xxx'
87
-      }, {
88
-        tableId: 'xxx',
89
-        area: 'xxx'
90
-      }]
77
+      currentList: [],
78
+      caseAreaList: [],
91
     }
79
     }
92
   },
80
   },
93
   computed: {
81
   computed: {
94
-    ...mapCaseState({
95
-      caseList: x => x.caseList,
96
-    })
82
+    ...mapState({
83
+      cases: x => x.app.cases.list,
84
+      defaultCaseId: x => x.app.cases.default
85
+    }),
86
+    CaseId: {
87
+      get () {
88
+        return this.postData.caseid || this.defaultCaseId
89
+      },
90
+      set (val) {
91
+        this.postData.caseid = val
92
+      }
93
+    }
97
   },
94
   },
98
-  components: {
99
-    tableSearch,
95
+  created () {
96
+    this.getAreaList().then(() => {
97
+      this.getList()
98
+    })
100
   },
99
   },
101
   methods: {
100
   methods: {
102
-    handleSizeChange (val) {
103
-      console.log(`每页 ${val} 条`)
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 () { // 搜索
117
+      this.postData.page = 1
118
+      this.currentList = []
119
+      this.getList()
120
+    },
121
+    getList () { // 获取列表
122
+      this.$ajax(this.$api.caseManager.getCaseTableList.url, {
123
+        method: this.$api.caseManager.getCaseTableList.method,
124
+        queryData: { ...this.postData, caseid: this.CaseId }
125
+      }).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
130
+        this.postData.page = res.page
131
+        this.total = res.pagenum
132
+      })
104
     },
133
     },
105
-    handleCurrentChange (val) {
106
-      console.log(`当前页: ${val}`)
134
+    handleCurrentChange (val) { // 跳转到分页
135
+      this.getList()
107
     },
136
     },
108
     editItem (index, row) { // 编辑
137
     editItem (index, row) { // 编辑
109
-      console.log(index, row)
110
-      this.$router.push({ name: 'editCaseTable' })
138
+      this.$router.push({ name: 'editCaseTable', query: { id: row.TableId } })
111
     },
139
     },
112
     deleteItem (index, row) { // 删除
140
     deleteItem (index, row) { // 删除
113
-      console.log(index, row)
114
-      this.$confirm('确认删除此数据?', '提示', {
141
+      this.$confirm('确认删除此桌位?', '提示', {
115
         confirmButtonText: '确定',
142
         confirmButtonText: '确定',
116
         cancelButtonText: '取消',
143
         cancelButtonText: '取消',
117
         type: 'warning'
144
         type: 'warning'
118
       }).then(() => {
145
       }).then(() => {
119
-        this.$message({
120
-          type: 'success',
121
-          message: '删除成功!'
146
+        this.$ajax(this.$api.caseManager.deleteCaseTable.url, {
147
+          method: this.$api.caseManager.deleteCaseTable.method,
148
+          urlData: { id: row.TableId }
149
+        }).then(res => {
150
+          this.$message({
151
+            type: 'success',
152
+            message: '删除成功!'
153
+          })
154
+          this.getList()
122
         })
155
         })
123
       }).catch(() => {
156
       }).catch(() => {
124
         this.$message({
157
         this.$message({
127
         })
160
         })
128
       })
161
       })
129
     },
162
     },
130
-    searchList (key) { // 搜索列表
131
-      console.log(key)
132
-    },
133
     addCaseTable () {
163
     addCaseTable () {
134
       this.$router.push({ name: 'addCaseTable' })
164
       this.$router.push({ name: 'addCaseTable' })
135
     }
165
     }

+ 138
- 0
src/pages/system/caseManager/keyManager/add.vue 查看文件

1
+<template>
2
+  <div class="subPage">
3
+    <form class="mainForm">
4
+      <ul>
5
+        <li class="flex-h">
6
+          <span>案场:</span>
7
+          <div class="flex-item">
8
+            <div style="width:50%">
9
+              <el-select v-model="CaseId" placeholder="请选择">
10
+                <el-option
11
+                  v-for="item in cases"
12
+                  :key="item.CaseId"
13
+                  :label="item.CaseName"
14
+                  :value="item.CaseId">
15
+                </el-option>
16
+              </el-select>
17
+            </div>
18
+          </div>
19
+        </li>
20
+        <li class="flex-h">
21
+          <span>起始柜号:</span>
22
+          <div class="flex-item">
23
+            <div style="width:50%">
24
+              <el-input
25
+                placeholder="请输入数字"
26
+                v-model="postData.beginnum"
27
+                clearable>
28
+              </el-input>
29
+            </div>
30
+          </div>
31
+        </li>
32
+        <li class="flex-h">
33
+          <span>截止柜号:</span>
34
+          <div class="flex-item">
35
+            <div style="width:50%">
36
+              <el-input
37
+                placeholder="请输入数字"
38
+                v-model="postData.endnum"
39
+                clearable>
40
+              </el-input>
41
+            </div>
42
+          </div>
43
+        </li>
44
+        <li style="text-align:center">
45
+          <el-button type="primary" size="mini" @click="submit">保存</el-button>
46
+          <el-button type="danger" size="mini" @click="cancel">取消</el-button>
47
+        </li>
48
+      </ul>
49
+    </form>
50
+  </div>
51
+</template>
52
+
53
+<script>
54
+import { mapState } from 'vuex'
55
+
56
+export default {
57
+  name: '',
58
+  data () {
59
+    return {
60
+      postData: {
61
+        caseid: '', // 案场id
62
+        orgid: '', // 机构id
63
+        beginnum: '', // 起始柜号
64
+        endnum: '', // 截止柜号
65
+      },
66
+      caseList: [{
67
+        value: '0',
68
+        label: '案场1'
69
+      }, {
70
+        value: '1',
71
+        label: '案场3'
72
+      }, {
73
+        value: '2',
74
+        label: '案场3'
75
+      }],
76
+    }
77
+  },
78
+  computed: {
79
+    ...mapState({
80
+      cases: x => x.app.cases.list,
81
+      defaultCaseId: x => x.app.cases.default,
82
+      OrgId: x => x.app.user.OrgId,
83
+    }),
84
+    CaseId: {
85
+      get () {
86
+        return this.postData.caseid || this.defaultCaseId
87
+      },
88
+      set (val) {
89
+        this.postData.caseid = val
90
+      }
91
+    }
92
+  },
93
+  components: {},
94
+  methods: {
95
+    handleAvatarSuccesser (res, file) {
96
+      this.postData.AreaIconWhite = res.result.url
97
+    },
98
+    handleAvatarSuccess (res, file) {
99
+      this.postData.AreaIcon = res.result.url
100
+    },
101
+    submit () { // 提交数据
102
+      if (this.postData.beginnum === '') {
103
+        this.$message({
104
+          type: 'error',
105
+          message: '起始柜号不能为空'
106
+        })
107
+        return false
108
+      }
109
+      if (this.postData.endnum === '') {
110
+        this.$message({
111
+          type: 'error',
112
+          message: '截止柜号不能为空'
113
+        })
114
+        return false
115
+      }
116
+      this.postData.orgid = this.OrgId
117
+      this.$ajax(this.$api.caseManager.addKey.url, {
118
+        method: this.$api.caseManager.addKey.method,
119
+        data: { ...this.postData, caseid: this.CaseId }
120
+      }).then(res => {
121
+        this.$message({
122
+          type: 'success',
123
+          message: '操作成功!'
124
+        })
125
+        this.$router.push({name: 'keyManager'})
126
+      })
127
+    },
128
+    cancel () {
129
+      this.$router.push({name: 'keyManager'})
130
+    }
131
+  },
132
+  mounted () { }
133
+}
134
+</script>
135
+
136
+<!-- Add "scoped" attribute to limit CSS to this component only -->
137
+<style lang="scss" scoped>
138
+</style>

+ 30
- 32
src/pages/system/caseManager/keyManager/index.vue 查看文件

2
   <div class="subPage">
2
   <div class="subPage">
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"></div>
5
+        <div class="flex-item flex-h">
6
+          <el-button size="mini" type="success" @click='addKey'>新增钥匙</el-button>
7
+        </div>
6
         <ul>
8
         <ul>
7
           <li>
9
           <li>
8
             <span>选择案场:</span>
10
             <span>选择案场:</span>
28
         stripe
30
         stripe
29
         style="width: 100%">
31
         style="width: 100%">
30
         <el-table-column
32
         <el-table-column
31
-          prop="lockersId"
33
+          prop="LockNum"
32
           label="锁柜编号">
34
           label="锁柜编号">
33
         </el-table-column>
35
         </el-table-column>
34
         <el-table-column
36
         <el-table-column
35
-          prop="currentUser"
37
+          prop="CustomerName"
36
           label="当前用户">
38
           label="当前用户">
37
         </el-table-column>
39
         </el-table-column>
38
         <el-table-column
40
         <el-table-column
39
-          prop="status"
41
+          prop="Status"
40
           label="状态">
42
           label="状态">
41
         </el-table-column>
43
         </el-table-column>
42
         <el-table-column label="操作">
44
         <el-table-column label="操作">
43
           <template slot-scope="scope">
45
           <template slot-scope="scope">
44
-            <el-button
46
+            <el-button v-if="scope.row.Status==='有人'"
45
               size="mini"
47
               size="mini"
46
               type="danger"
48
               type="danger"
47
               @click="unBindItem(scope.$index, scope.row)">解绑</el-button>
49
               @click="unBindItem(scope.$index, scope.row)">解绑</el-button>
48
-            <el-button
50
+            <el-button v-if="scope.row.Status==='无人'"
49
               size="mini"
51
               size="mini"
50
               type="success"
52
               type="success"
51
               @click="bindItem(scope.$index, scope.row)">绑定</el-button>
53
               @click="bindItem(scope.$index, scope.row)">绑定</el-button>
96
   name: '',
98
   name: '',
97
   data () {
99
   data () {
98
     return {
100
     return {
101
+      gridData: [],
99
       showCardList: false, // 显隐卡列表
102
       showCardList: false, // 显隐卡列表
100
       bindPhone: '', // 绑定手机号
103
       bindPhone: '', // 绑定手机号
101
       cutBindType: 1, // 切换绑定方式
104
       cutBindType: 1, // 切换绑定方式
102
       dialogTableVisible: false,
105
       dialogTableVisible: false,
103
-      gridData: [{
104
-        date: '2016-05-02',
105
-        name: '王小虎',
106
-        address: '上海市普陀区金沙江路 1518 弄'
107
-      }, {
108
-        date: '2016-05-04',
109
-        name: '王小虎',
110
-        address: '上海市普陀区金沙江路 1518 弄'
111
-      }, {
112
-        date: '2016-05-01',
113
-        name: '王小虎',
114
-        address: '上海市普陀区金沙江路 1518 弄'
115
-      }, {
116
-        date: '2016-05-03',
117
-        name: '王小虎',
118
-        address: '上海市普陀区金沙江路 1518 弄'
119
-      }],
120
       total: 0,
106
       total: 0,
121
       postData: { // 表格搜索条件
107
       postData: { // 表格搜索条件
122
-        CaseId: '', // 案场id
108
+        caseid: '', // 案场id
123
         page: 1, // 当前页码
109
         page: 1, // 当前页码
124
         pagesize: 10, // 请求数据量
110
         pagesize: 10, // 请求数据量
125
       },
111
       },
136
     }),
122
     }),
137
     CaseId: {
123
     CaseId: {
138
       get () {
124
       get () {
139
-        return this.postData.CaseId || this.defaultCaseId
125
+        return this.postData.caseid || this.defaultCaseId
140
       },
126
       },
141
       set (val) {
127
       set (val) {
142
-        this.postData.CaseId = val
128
+        this.postData.caseid = val
143
       }
129
       }
144
     }
130
     }
145
   },
131
   },
146
   methods: {
132
   methods: {
133
+    addKey () {
134
+      this.$router.push({ name: 'addKey' })
135
+    },
147
     sureBindPhone () { // 确认绑定手机号
136
     sureBindPhone () { // 确认绑定手机号
148
       this.showCardList = true
137
       this.showCardList = true
149
     },
138
     },
155
     getList () { // 获取列表
144
     getList () { // 获取列表
156
       this.$ajax(this.$api.caseManager.getKeyList.url, {
145
       this.$ajax(this.$api.caseManager.getKeyList.url, {
157
         method: this.$api.caseManager.getKeyList.method,
146
         method: this.$api.caseManager.getKeyList.method,
158
-        queryData: { ...this.postData, CaseId: this.CaseId }
147
+        queryData: { ...this.postData, caseid: this.CaseId }
159
       }).then(res => {
148
       }).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
+        }
160
         this.currentList = res.list
154
         this.currentList = res.list
161
         this.postData.page = res.page
155
         this.postData.page = res.page
162
         this.total = res.pagenum
156
         this.total = res.pagenum
166
       this.getList()
160
       this.getList()
167
     },
161
     },
168
     bindItem (index, row) { // 绑定
162
     bindItem (index, row) { // 绑定
169
-      console.log(index, row)
170
       this.dialogTableVisible = true
163
       this.dialogTableVisible = true
171
     },
164
     },
172
     unBindItem (index, row) { // 解绑
165
     unBindItem (index, row) { // 解绑
173
-      console.log(index, row)
174
       this.$confirm('确认解绑此锁柜?', '提示', {
166
       this.$confirm('确认解绑此锁柜?', '提示', {
175
         confirmButtonText: '确定',
167
         confirmButtonText: '确定',
176
         cancelButtonText: '取消',
168
         cancelButtonText: '取消',
177
         type: 'warning'
169
         type: 'warning'
178
       }).then(() => {
170
       }).then(() => {
179
-        this.$message({
180
-          type: 'success',
181
-          message: '解绑成功!'
171
+        this.$ajax(this.$api.caseManager.cancelKey.url, {
172
+          method: this.$api.caseManager.cancelKey.method,
173
+          urlData: { id: row.KeyId }
174
+        }).then(res => {
175
+          this.$message({
176
+            type: 'success',
177
+            message: '解绑成功!'
178
+          })
179
+          this.getList()
182
         })
180
         })
183
       }).catch(() => {
181
       }).catch(() => {
184
         this.$message({
182
         this.$message({

+ 110
- 0
src/pages/system/caseManager/tagManager/add.vue 查看文件

1
+<template>
2
+  <div class="subPage">
3
+    <form class="mainForm">
4
+      <ul>
5
+        <li class="flex-h">
6
+          <span>标签名称:</span>
7
+          <div class="flex-item">
8
+            <div style="width:50%">
9
+              <el-input
10
+                placeholder="请输入名称"
11
+                v-model="postData.TagName"
12
+                clearable>
13
+              </el-input>
14
+            </div>
15
+          </div>
16
+        </li>
17
+        <li class="flex-h">
18
+          <span>选择案场:</span>
19
+          <div class="flex-item">
20
+            <div>
21
+              <el-checkbox-group v-model="checkedList" @change="handleCheckedCitiesChange">
22
+                <el-checkbox v-for="(item,index) in cases" :label="item.CaseId" :key="index">{{item.CaseName}}</el-checkbox>
23
+              </el-checkbox-group>
24
+            </div>
25
+          </div>
26
+        </li>
27
+        <li style="text-align:center">
28
+          <el-button type="primary" size="mini" @click="submit">保存</el-button>
29
+          <el-button type="danger" size="mini" @click="cancel">取消</el-button>
30
+        </li>
31
+      </ul>
32
+    </form>
33
+  </div>
34
+</template>
35
+
36
+<script>
37
+import { mapState } from 'vuex'
38
+
39
+export default {
40
+  name: '',
41
+  data () {
42
+    return {
43
+      postData: {
44
+        TagId: '', // 桌位id
45
+        TagName: '', // 区域id
46
+        caseids: '', // 案场id
47
+        OrgId: '', // 机构id
48
+      },
49
+      checkedList: [],
50
+    }
51
+  },
52
+  created () {},
53
+  computed: {
54
+    ...mapState({
55
+      cases: x => x.app.cases.list,
56
+      defaultCaseId: x => x.app.cases.default,
57
+      OrgId: x => x.app.user.OrgId,
58
+    }),
59
+    CaseId: {
60
+      get () {
61
+        return this.postData.CaseId || this.defaultCaseId
62
+      },
63
+      set (val) {
64
+        this.postData.CaseId = val
65
+      }
66
+    }
67
+  },
68
+  components: {},
69
+  methods: {
70
+    handleCheckedCitiesChange (val) {
71
+      this.postData.caseids = val.join(',')
72
+    },
73
+    submit () { // 提交数据
74
+      if (this.postData.TagName === '') {
75
+        this.$message({
76
+          type: 'error',
77
+          message: '标签名称不能为空'
78
+        })
79
+        return false
80
+      }
81
+      if (this.postData.caseids === '') {
82
+        this.$message({
83
+          type: 'error',
84
+          message: '案场不能为空'
85
+        })
86
+        return false
87
+      }
88
+      this.postData.OrgId = this.OrgId
89
+      this.$ajax(this.$api.caseManager.addCaseTag.url, {
90
+        method: this.$api.caseManager.addCaseTag.method,
91
+        data: { ...this.postData }
92
+      }).then(res => {
93
+        this.$message({
94
+          type: 'success',
95
+          message: '操作成功!'
96
+        })
97
+        this.$router.push({ name: 'tagManager' })
98
+      })
99
+    },
100
+    cancel () {
101
+      this.$router.push({ name: 'tagManager' })
102
+    }
103
+  },
104
+  mounted () { }
105
+}
106
+</script>
107
+
108
+<!-- Add "scoped" attribute to limit CSS to this component only -->
109
+<style lang="scss" scoped>
110
+</style>

+ 124
- 0
src/pages/system/caseManager/tagManager/edit.vue 查看文件

1
+<template>
2
+  <div class="subPage">
3
+    <form class="mainForm">
4
+      <ul>
5
+        <li class="flex-h">
6
+          <span>标签名称:</span>
7
+          <div class="flex-item">
8
+            <div style="width:50%">
9
+              <el-input
10
+                placeholder="请输入名称"
11
+                v-model="postData.TagName"
12
+                clearable>
13
+              </el-input>
14
+            </div>
15
+          </div>
16
+        </li>
17
+        <li class="flex-h">
18
+          <span>选择案场:</span>
19
+          <div class="flex-item">
20
+            <div>
21
+              <el-checkbox-group v-model="checkedList" @change="handleCheckedCitiesChange">
22
+                <el-checkbox v-for="(item,index) in cases" :label="item.CaseId" :key="index">{{item.CaseName}}</el-checkbox>
23
+              </el-checkbox-group>
24
+            </div>
25
+          </div>
26
+        </li>
27
+        <li style="text-align:center">
28
+          <el-button type="primary" size="mini" @click="submit">保存</el-button>
29
+          <el-button type="danger" size="mini" @click="cancel">取消</el-button>
30
+        </li>
31
+      </ul>
32
+    </form>
33
+  </div>
34
+</template>
35
+
36
+<script>
37
+import { mapState } from 'vuex'
38
+
39
+export default {
40
+  name: '',
41
+  data () {
42
+    return {
43
+      postData: {
44
+        TagId: '', // 桌位id
45
+        TagName: '', // 区域id
46
+        caseids: '', // 案场id
47
+        OrgId: '', // 机构id
48
+      },
49
+      checkedList: [],
50
+    }
51
+  },
52
+  created () {
53
+    this.getTagInfo()
54
+  },
55
+  computed: {
56
+    ...mapState({
57
+      cases: x => x.app.cases.list,
58
+      defaultCaseId: x => x.app.cases.default,
59
+      OrgId: x => x.app.user.OrgId,
60
+    }),
61
+    CaseId: {
62
+      get () {
63
+        return this.postData.CaseId || this.defaultCaseId
64
+      },
65
+      set (val) {
66
+        this.postData.CaseId = val
67
+      }
68
+    }
69
+  },
70
+  components: {},
71
+  methods: {
72
+    getTagInfo () {
73
+      this.$ajax(this.$api.caseManager.getTagInfo.url, {
74
+        method: this.$api.caseManager.getTagInfo.method,
75
+        urlData: { id: this.$route.query.id }
76
+      }).then(res => {
77
+        for (var n = 0; n < res.TagCases.length; n++) {
78
+          this.checkedList.push(res.TagCases[n].CaseId)
79
+        }
80
+        this.postData = res
81
+      })
82
+    },
83
+    handleCheckedCitiesChange (val) {
84
+      this.postData.caseids = val.join(',')
85
+    },
86
+    submit () { // 提交数据
87
+      if (this.postData.TagName === '') {
88
+        this.$message({
89
+          type: 'error',
90
+          message: '标签名称不能为空'
91
+        })
92
+        return false
93
+      }
94
+      this.postData.caseids = this.checkedList.join(',')
95
+      if (this.postData.caseids === '') {
96
+        this.$message({
97
+          type: 'error',
98
+          message: '案场不能为空'
99
+        })
100
+        return false
101
+      }
102
+      this.postData.OrgId = this.OrgId
103
+      this.$ajax(this.$api.caseManager.addCaseTag.url, {
104
+        method: this.$api.caseManager.addCaseTag.method,
105
+        data: { ...this.postData }
106
+      }).then(res => {
107
+        this.$message({
108
+          type: 'success',
109
+          message: '操作成功!'
110
+        })
111
+        this.$router.push({ name: 'tagManager' })
112
+      })
113
+    },
114
+    cancel () {
115
+      this.$router.push({ name: 'tagManager' })
116
+    }
117
+  },
118
+  mounted () { }
119
+}
120
+</script>
121
+
122
+<!-- Add "scoped" attribute to limit CSS to this component only -->
123
+<style lang="scss" scoped>
124
+</style>

+ 158
- 0
src/pages/system/caseManager/tagManager/index.vue 查看文件

1
+<template>
2
+  <div class="subPage">
3
+    <div class="system-table-search">
4
+      <div class="flex-h">
5
+        <div class="flex-item flex-h">
6
+          <el-button size="mini" type="success" @click='addCaseTag'>新增标签</el-button>
7
+        </div>
8
+        <ul>
9
+          <li>
10
+            <span>选择案场:</span>
11
+            <el-select v-model="CaseId" placeholder="请选择">
12
+              <el-option
13
+                v-for="item in cases"
14
+                :key="item.CaseId"
15
+                :label="item.CaseName"
16
+                :value="item.CaseId">
17
+              </el-option>
18
+            </el-select>
19
+          </li>
20
+        </ul>
21
+        <el-button
22
+          size="mini"
23
+          type="primary" @click="search">搜索</el-button>
24
+      </div>
25
+      <div class="moreFilter"></div>
26
+    </div>
27
+    <div class="system-table-box">
28
+      <el-table
29
+        :data="currentList"
30
+        stripe
31
+        style="width: 100%">
32
+        <el-table-column
33
+          prop="TagName"
34
+          label="标签名称">
35
+        </el-table-column>
36
+        <el-table-column
37
+          prop="CaseNames"
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>
43
+        <el-table-column label="操作">
44
+          <template slot-scope="scope">
45
+            <el-button
46
+              size="mini"
47
+              type="warning"
48
+              @click="editItem(scope.$index, scope.row)">编辑</el-button>
49
+            <el-button
50
+              size="mini"
51
+              type="danger"
52
+              @click="deleteItem(scope.$index, scope.row)">删除</el-button>
53
+          </template>
54
+        </el-table-column>
55
+      </el-table>
56
+    </div>
57
+    <el-pagination
58
+      @current-change="handleCurrentChange"
59
+      :current-page.sync="postData.page"
60
+      :page-size="postData.pagesize"
61
+      layout="prev, pager, next, jumper"
62
+      :total="total">
63
+    </el-pagination>
64
+  </div>
65
+</template>
66
+
67
+<script>
68
+import { mapState } from 'vuex'
69
+
70
+export default {
71
+  name: '',
72
+  data () {
73
+    return {
74
+      total: 0,
75
+      postData: { // 表格搜索条件
76
+        caseid: '', // 案场id
77
+        page: 1, // 当前页码
78
+        pagesize: 10, // 请求数据量
79
+      },
80
+      currentList: [],
81
+      caseAreaList: [],
82
+    }
83
+  },
84
+  computed: {
85
+    ...mapState({
86
+      cases: x => x.app.cases.list,
87
+      defaultCaseId: x => x.app.cases.default
88
+    }),
89
+    CaseId: {
90
+      get () {
91
+        return this.postData.caseid || this.defaultCaseId
92
+      },
93
+      set (val) {
94
+        this.postData.caseid = val
95
+      }
96
+    }
97
+  },
98
+  created () {
99
+    this.getList()
100
+  },
101
+  methods: {
102
+    search () { // 搜索
103
+      this.postData.page = 1
104
+      this.currentList = []
105
+      this.getList()
106
+    },
107
+    getList () { // 获取列表
108
+      this.$ajax(this.$api.caseManager.getCaseTagList.url, {
109
+        method: this.$api.caseManager.getCaseTagList.method,
110
+        queryData: { ...this.postData, caseid: this.CaseId }
111
+      }).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
116
+        this.postData.page = res.page
117
+        this.total = res.pagenum
118
+      })
119
+    },
120
+    handleCurrentChange (val) { // 跳转到分页
121
+      this.getList()
122
+    },
123
+    editItem (index, row) { // 编辑
124
+      this.$router.push({ name: 'editTag', query: { id: row.TagId } })
125
+    },
126
+    deleteItem (index, row) { // 删除
127
+      this.$confirm('确认删除此标签?', '提示', {
128
+        confirmButtonText: '确定',
129
+        cancelButtonText: '取消',
130
+        type: 'warning'
131
+      }).then(() => {
132
+        this.$ajax(this.$api.caseManager.deleteCaseTag.url, {
133
+          method: this.$api.caseManager.deleteCaseTag.method,
134
+          urlData: { id: row.TagId }
135
+        }).then(res => {
136
+          this.$message({
137
+            type: 'success',
138
+            message: '删除成功!'
139
+          })
140
+          this.getList()
141
+        })
142
+      }).catch(() => {
143
+        this.$message({
144
+          type: 'info',
145
+          message: '已取消删除'
146
+        })
147
+      })
148
+    },
149
+    addCaseTag () {
150
+      this.$router.push({ name: 'addTag' })
151
+    }
152
+  }
153
+}
154
+</script>
155
+
156
+<!-- Add "scoped" attribute to limit CSS to this component only -->
157
+<style lang="scss" scoped>
158
+</style>

+ 4
- 4
src/pages/system/goodsManager/goodsTypeManager/index.vue 查看文件

70
     return {
70
     return {
71
       total: 0,
71
       total: 0,
72
       postData: { // 表格搜索条件
72
       postData: { // 表格搜索条件
73
-        CaseId: '', // 案场id
73
+        caseid: '', // 案场id
74
         page: 1, // 当前页码
74
         page: 1, // 当前页码
75
         pagesize: 10, // 请求数据量
75
         pagesize: 10, // 请求数据量
76
       },
76
       },
87
     }),
87
     }),
88
     CaseId: {
88
     CaseId: {
89
       get () {
89
       get () {
90
-        return this.postData.CaseId || this.defaultCaseId
90
+        return this.postData.caseid || this.defaultCaseId
91
       },
91
       },
92
       set (val) {
92
       set (val) {
93
-        this.postData.CaseId = val
93
+        this.postData.caseid = val
94
       }
94
       }
95
     }
95
     }
96
   },
96
   },
103
     getList () { // 获取列表
103
     getList () { // 获取列表
104
       this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
104
       this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
105
         method: this.$api.goodsManager.getGoodsTypeList.method,
105
         method: this.$api.goodsManager.getGoodsTypeList.method,
106
-        queryData: { ...this.postData, CaseId: this.CaseId }
106
+        queryData: { ...this.postData, caseid: this.CaseId }
107
       }).then(res => {
107
       }).then(res => {
108
         for (var n = 0; n < res.list.length; n++) {
108
         for (var n = 0; n < res.list.length; n++) {
109
           res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName
109
           res.list[n].CaseName = this.cases.filter(x => x.CaseId === res.list[n].CaseId)[0].CaseName

+ 25
- 1
src/pages/system/page.js 查看文件

14
 import addCase from './caseManager/caseInfo/addCase/index' // 新增案场
14
 import addCase from './caseManager/caseInfo/addCase/index' // 新增案场
15
 import editCase from './caseManager/caseInfo/editCase/index' // 新增案场
15
 import editCase from './caseManager/caseInfo/editCase/index' // 新增案场
16
 import keyManager from './caseManager/keyManager/index' // 钥匙管理
16
 import keyManager from './caseManager/keyManager/index' // 钥匙管理
17
+import addKey from './caseManager/keyManager/add' // 新增钥匙
17
 import caseAreaManager from './caseManager/caseAreaManager/index' // 案场区域管理
18
 import caseAreaManager from './caseManager/caseAreaManager/index' // 案场区域管理
18
 import addCaseArea from './caseManager/caseAreaManager/add' // 新增案场区域
19
 import addCaseArea from './caseManager/caseAreaManager/add' // 新增案场区域
19
 import editCaseArea from './caseManager/caseAreaManager/edit' // 编辑案场区域
20
 import editCaseArea from './caseManager/caseAreaManager/edit' // 编辑案场区域
20
 import caseTableManager from './caseManager/caseTableManager/index' // 案场桌位管理
21
 import caseTableManager from './caseManager/caseTableManager/index' // 案场桌位管理
21
 import addCaseTable from './caseManager/caseTableManager/add' // 新增案场桌位
22
 import addCaseTable from './caseManager/caseTableManager/add' // 新增案场桌位
22
 import editCaseTable from './caseManager/caseTableManager/edit' // 编辑案场桌位
23
 import editCaseTable from './caseManager/caseTableManager/edit' // 编辑案场桌位
24
+import tagManager from './caseManager/tagManager/index' // 标签管理
25
+import addTag from './caseManager/tagManager/add' // 添加标签
26
+import editTag from './caseManager/tagManager/edit' // 编辑标签
23
 
27
 
24
 import goodsManager from './goodsManager/index' // 商品管理
28
 import goodsManager from './goodsManager/index' // 商品管理
25
 import goodsTypeManager from './goodsManager/goodsTypeManager/index' // 商品类型管理
29
 import goodsTypeManager from './goodsManager/goodsTypeManager/index' // 商品类型管理
123
           path: 'keyManager',
127
           path: 'keyManager',
124
           name: 'keyManager',
128
           name: 'keyManager',
125
           component: keyManager,
129
           component: keyManager,
126
-          children: []
130
+          children: [{ // 新增钥匙
131
+            path: 'addKey',
132
+            name: 'addKey',
133
+            component: addKey,
134
+            children: []
135
+          }]
127
         }, { // 案场区域管理
136
         }, { // 案场区域管理
128
           path: 'caseAreaManager',
137
           path: 'caseAreaManager',
129
           name: 'caseAreaManager',
138
           name: 'caseAreaManager',
154
             component: editCaseTable,
163
             component: editCaseTable,
155
             children: []
164
             children: []
156
           }]
165
           }]
166
+        }, { // 标签管理
167
+          path: 'tagManager',
168
+          name: 'tagManager',
169
+          component: tagManager,
170
+          children: [{ // 添加标签
171
+            path: 'addTag',
172
+            name: 'addTag',
173
+            component: addTag,
174
+            children: []
175
+          }, { // 编辑标签
176
+            path: 'editTag',
177
+            name: 'editTag',
178
+            component: editTag,
179
+            children: []
180
+          }]
157
         }],
181
         }],
158
       }, { // 商品管理
182
       }, { // 商品管理
159
         path: 'goodsManager',
183
         path: 'goodsManager',

+ 19
- 0
src/style/main.css 查看文件

316
   display: block;
316
   display: block;
317
 }
317
 }
318
 
318
 
319
+.el-checkbox-group{
320
+  font-size: 0;
321
+}
322
+
323
+.el-checkbox{
324
+  display: inline-block;
325
+}
326
+
327
+.el-checkbox>*{
328
+  line-height: 40px;
329
+}
319
 
330
 
331
+.el-checkbox+.el-checkbox{
332
+  margin: 0;
333
+  margin-right: 20px;
334
+}
335
+
336
+.el-checkbox{
337
+  margin-right: 20px;
338
+}
320
 
339
 
321
 
340
 
322
 
341
 

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

39
       method: 'get',
39
       method: 'get',
40
       url: `${baseUrl}/common/case/key`
40
       url: `${baseUrl}/common/case/key`
41
     },
41
     },
42
+    addKey: { // 新增钥匙
43
+      method: 'post',
44
+      url: `${baseUrl}/common/case/key`
45
+    },
46
+    cancelKey: { // 取消钥匙
47
+      method: 'put',
48
+      url: `${baseUrl}/common/case/unlock/:id`
49
+    },
42
     getCaseAreaList: { // 获取案场区域列表
50
     getCaseAreaList: { // 获取案场区域列表
43
       method: 'get',
51
       method: 'get',
44
       url: `${baseUrl}/common/case/area`
52
       url: `${baseUrl}/common/case/area`
47
       method: 'post',
55
       method: 'post',
48
       url: `${baseUrl}/common/case/area`
56
       url: `${baseUrl}/common/case/area`
49
     },
57
     },
58
+    deleteCaseArea: { // 删除案场区域
59
+      method: 'delete',
60
+      url: `${baseUrl}/common/case/area/:id`
61
+    },
62
+    getCaseAreaInfo: { // 获取案场区域信息
63
+      method: 'get',
64
+      url: `${baseUrl}/common/case/area/:id`
65
+    },
66
+    editCaseArea: { // 更新案场区域信息
67
+      method: 'put',
68
+      url: `${baseUrl}/common/case/area`
69
+    },
70
+    getCaseTableList: { // 获取案场桌位列表
71
+      method: 'get',
72
+      url: `${baseUrl}/common/case/table`
73
+    },
74
+    addCaseTable: { // 新增案场桌位
75
+      method: 'post',
76
+      url: `${baseUrl}/common/case/table`
77
+    },
78
+    getCaseTableInfo: { // 查询案场桌位信息
79
+      method: 'get',
80
+      url: `${baseUrl}/common/case/table/:id`
81
+    },
82
+    editCaseTable: { // 更新案场桌位信息
83
+      method: 'put',
84
+      url: `${baseUrl}/common/case/table`
85
+    },
86
+    deleteCaseTable: { // 删除案场桌位信息
87
+      method: 'delete',
88
+      url: `${baseUrl}/common/case/table/:id`
89
+    },
90
+    getCaseTagList: { // 获取案场标签列表
91
+      method: 'get',
92
+      url: `${baseUrl}/common/case/tag`
93
+    },
94
+    addCaseTag: { // 新增案场标签
95
+      method: 'post',
96
+      url: `${baseUrl}/common/case/tag`
97
+    },
98
+    getTagInfo: { // 获取案场标签信息
99
+      method: 'get',
100
+      url: `${baseUrl}/common/case/tag/:id`
101
+    },
102
+    deleteCaseTag: { // 删除案场标签
103
+      method: 'delete',
104
+      url: `${baseUrl}/common/case/tag/:id`
105
+    },
50
   },
106
   },
51
   goodsManager: {
107
   goodsManager: {
52
     getGoodsSpecList: { // 商品规格列表
108
     getGoodsSpecList: { // 商品规格列表