许成详 6 years ago
parent
commit
6a80c9a4de

+ 33
- 76
src/pages/system/caseManager/caseInfo/index.vue View File

11
     </div>
11
     </div>
12
     <div class="system-table-box">
12
     <div class="system-table-box">
13
       <el-table
13
       <el-table
14
-        :data="tableData"
14
+        :data="currentList"
15
         stripe
15
         stripe
16
         style="width: 100%">
16
         style="width: 100%">
17
         <el-table-column
17
         <el-table-column
18
-          prop="id"
18
+          prop="CaseId"
19
           label="ID">
19
           label="ID">
20
         </el-table-column>
20
         </el-table-column>
21
         <el-table-column
21
         <el-table-column
22
-          prop="caseName"
22
+          prop="CaseName"
23
           label="案场名称">
23
           label="案场名称">
24
         </el-table-column>
24
         </el-table-column>
25
         <el-table-column
25
         <el-table-column
26
-          prop="address"
26
+          prop="CaseAddress"
27
           label="地址">
27
           label="地址">
28
         </el-table-column>
28
         </el-table-column>
29
-        <el-table-column
30
-          prop="leader"
31
-          label="负责人">
32
-        </el-table-column>
33
-        <el-table-column
34
-          prop="phone"
35
-          label="手机号码">
36
-        </el-table-column>
37
-        <el-table-column
38
-          prop="availableAmount"
39
-          label="账户可用金额">
40
-        </el-table-column>
41
-        <el-table-column
42
-          prop="creatPerson"
43
-          label="创建人">
44
-        </el-table-column>
45
-        <el-table-column
46
-          prop="creatTime"
47
-          label="创建时间">
48
-        </el-table-column>
49
         <el-table-column label="操作" width="200">
29
         <el-table-column label="操作" width="200">
50
           <template slot-scope="scope">
30
           <template slot-scope="scope">
51
             <el-button
31
             <el-button
61
       </el-table>
41
       </el-table>
62
     </div>
42
     </div>
63
     <el-pagination
43
     <el-pagination
64
-      @size-change="handleSizeChange"
65
       @current-change="handleCurrentChange"
44
       @current-change="handleCurrentChange"
66
-      :current-page.sync="currentPage"
67
-      :page-size="10"
45
+      :current-page.sync="postData.page"
46
+      :page-size="postData.pagesize"
68
       layout="prev, pager, next, jumper"
47
       layout="prev, pager, next, jumper"
69
-      :total="100">
48
+      :total="total">
70
     </el-pagination>
49
     </el-pagination>
71
   </div>
50
   </div>
72
 </template>
51
 </template>
78
   name: '',
57
   name: '',
79
   data () {
58
   data () {
80
     return {
59
     return {
81
-      currentPage: 0, // 当前页码
82
-      tableSearch: { // 表格搜索条件
83
-        key: '', // 搜索关键字
84
-        sort: '', // 排序规则
60
+      total: 0,
61
+      postData: { // 表格搜索条件
62
+        name: '', // 案场名称
63
+        page: 0, // 当前页码
64
+        pagesize: 10, // 请求数据量
85
       },
65
       },
86
-      tableData: [{
87
-        id: 'xxx',
88
-        caseName: 'xxx',
89
-        address: 'xxx',
90
-        leader: 'xxx',
91
-        phone: 'xxx',
92
-        availableAmount: 'xxx',
93
-        creatPerson: 'xxx',
94
-        creatTime: 'xxx'
95
-      }, {
96
-        id: 'xxx',
97
-        caseName: 'xxx',
98
-        address: 'xxx',
99
-        leader: 'xxx',
100
-        phone: 'xxx',
101
-        availableAmount: 'xxx',
102
-        creatPerson: 'xxx',
103
-        creatTime: 'xxx'
104
-      }, {
105
-        id: 'xxx',
106
-        caseName: 'xxx',
107
-        address: 'xxx',
108
-        leader: 'xxx',
109
-        phone: 'xxx',
110
-        availableAmount: 'xxx',
111
-        creatPerson: 'xxx',
112
-        creatTime: 'xxx'
113
-      }, {
114
-        id: 'xxx',
115
-        caseName: 'xxx',
116
-        address: 'xxx',
117
-        leader: 'xxx',
118
-        phone: 'xxx',
119
-        availableAmount: 'xxx',
120
-        creatPerson: 'xxx',
121
-        creatTime: 'xxx'
122
-      }]
66
+      currentList: []
123
     }
67
     }
124
   },
68
   },
125
   components: {
69
   components: {
126
     tableSearch,
70
     tableSearch,
127
   },
71
   },
128
   mounted () {
72
   mounted () {
129
-    this.$nextTick(function () {})
73
+    this.$nextTick(function () { })
74
+  },
75
+  created () {
76
+    this.getList()
130
   },
77
   },
131
   methods: {
78
   methods: {
79
+    getList () { // 获取列表
80
+      this.$ajax(this.$api.caseManager.getCaseList.url, {
81
+        method: this.$api.caseManager.getCaseList.method,
82
+        queryData: this.postData
83
+      }).then(res => {
84
+        this.currentList = res.list
85
+        this.postData.page = res.page
86
+        this.total = res.pagenum
87
+      })
88
+    },
132
     redirection (pathName) { // 重定向
89
     redirection (pathName) { // 重定向
133
       this.$router.push({ name: pathName })
90
       this.$router.push({ name: pathName })
134
     },
91
     },
135
-    handleSizeChange (val) {
136
-      console.log(`每页 ${val} 条`)
137
-    },
138
-    handleCurrentChange (val) {
139
-      console.log(`当前页: ${val}`)
92
+    handleCurrentChange (val) { // 跳转到分页
93
+      this.getList()
140
     },
94
     },
141
     editItem (index, row) { // 修改
95
     editItem (index, row) { // 修改
142
       // console.log(index, row)
96
       // console.log(index, row)
146
       console.log(index, row)
100
       console.log(index, row)
147
     },
101
     },
148
     searchList (key) { // 搜索列表
102
     searchList (key) { // 搜索列表
149
-      console.log(key)
103
+      this.postData.name = key
104
+      this.currentList = []
105
+      this.postData.page = 0
106
+      this.getList()
150
     }
107
     }
151
   }
108
   }
152
 }
109
 }

+ 65
- 51
src/pages/system/channelManager/channelList/index.vue View File

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 @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>
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+1"
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 tableSearch from '@/components/tableSearch/index'
65
-import { createNamespacedHelpers } from 'vuex'
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: 0, // 当前页码
75
+        pagesize: 10, // 请求数据量
77
       },
76
       },
78
-      tableData: [{
79
-        channelName: 'xxx',
80
-        channelCode: 'xxx'
81
-      }, {
82
-        channelName: 'xxx',
83
-        channelCode: 'xxx'
84
-      }, {
85
-        channelName: 'xxx',
86
-        channelCode: 'xxx'
87
-      }, {
88
-        channelName: 'xxx',
89
-        channelCode: 'xxx'
90
-      }]
77
+      currentList: []
91
     }
78
     }
92
   },
79
   },
93
-  computed: {
94
-    ...mapCaseState({
95
-      caseList: x => x.caseList,
96
-    })
80
+  created () {
81
+    this.getList()
97
   },
82
   },
98
-  components: {
99
-    tableSearch,
83
+  computed: {
84
+    ...mapState({
85
+      cases: x => x.app.cases.list,
86
+      defaultCaseId: x => x.app.cases.default
87
+    }),
88
+    CaseId: {
89
+      get () {
90
+        return this.postData.CaseId || this.defaultCaseId
91
+      },
92
+      set (val) {
93
+        this.postData.CaseId = val
94
+      }
95
+    }
100
   },
96
   },
101
   methods: {
97
   methods: {
102
-    handleSizeChange (val) {
103
-      console.log(`每页 ${val} 条`)
98
+    search () { // 搜索
99
+      this.postData.page = 0
100
+      this.currentList = []
101
+      this.getList()
104
     },
102
     },
105
-    handleCurrentChange (val) {
106
-      console.log(`当前页: ${val}`)
103
+    getList () { // 获取列表
104
+      this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
105
+        method: this.$api.goodsManager.getGoodsTypeList.method,
106
+        data: { ...this.postData, CaseId: this.CaseId }
107
+      }).then(res => {
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
110
+        }
111
+        this.currentList = res.list
112
+        this.postData.page = res.page
113
+        this.total = res.pagenum
114
+      })
115
+    },
116
+    handleCurrentChange (val) { // 跳转到分页
117
+      this.postData.page = val - 1
118
+      this.getList()
107
     },
119
     },
108
     handleEdit (index, row) { // 编辑
120
     handleEdit (index, row) { // 编辑
109
-      console.log(index, row)
110
-      this.$router.push({ name: 'editChannel' })
121
+      this.$router.push({ name: 'editGoodsType', query: { id: row.TypeId } })
111
     },
122
     },
112
     handleDelete (index, row) { // 删除
123
     handleDelete (index, row) { // 删除
113
-      console.log(index, row)
114
-      this.$confirm('确认删除此渠道?', '提示', {
124
+      let name = '确认删除规格“' + row.TypeName + '”?'
125
+      this.$confirm(name, '提示', {
115
         confirmButtonText: '确定',
126
         confirmButtonText: '确定',
116
         cancelButtonText: '取消',
127
         cancelButtonText: '取消',
117
         type: 'warning'
128
         type: 'warning'
118
       }).then(() => {
129
       }).then(() => {
119
-        this.$message({
120
-          type: 'success',
121
-          message: '删除成功!'
130
+        this.$ajax(this.$api.goodsManager.deleteGoodsType.url, {
131
+          method: this.$api.goodsManager.deleteGoodsType.method,
132
+          urlData: { id: row.TypeId }
133
+        }).then(res => {
134
+          this.$message({
135
+            type: 'success',
136
+            message: '删除成功!'
137
+          })
138
+          this.search()
122
         })
139
         })
123
       }).catch(() => {
140
       }).catch(() => {
124
         this.$message({
141
         this.$message({
127
         })
144
         })
128
       })
145
       })
129
     },
146
     },
130
-    searchList (key) { // 搜索列表
131
-      console.log(key)
132
-    },
133
     addChannel () {
147
     addChannel () {
134
       this.$router.push({ name: 'addChannel' })
148
       this.$router.push({ name: 'addChannel' })
135
     }
149
     }

+ 5
- 10
src/pages/system/goodsManager/goodsSpecManager/index.vue View File

49
     </div>
49
     </div>
50
     <el-pagination
50
     <el-pagination
51
       @current-change="handleCurrentChange"
51
       @current-change="handleCurrentChange"
52
-      :current-page.sync="postData.page+1"
52
+      :current-page.sync="postData.page"
53
       :page-size="postData.pagesize"
53
       :page-size="postData.pagesize"
54
       layout="prev, pager, next, jumper"
54
       layout="prev, pager, next, jumper"
55
       :total="total">
55
       :total="total">
58
 </template>
58
 </template>
59
 
59
 
60
 <script>
60
 <script>
61
-import tableSearch from '@/components/tableSearch/index'
62
 import { mapState } from 'vuex'
61
 import { mapState } from 'vuex'
63
 
62
 
64
 export default {
63
 export default {
91
       }
90
       }
92
     }
91
     }
93
   },
92
   },
94
-  components: {
95
-    tableSearch,
96
-  },
97
   methods: {
93
   methods: {
98
-    search () {
94
+    search () { // 搜索
99
       this.postData.page = 0
95
       this.postData.page = 0
100
       this.currentList = []
96
       this.currentList = []
101
       this.getList()
97
       this.getList()
102
     },
98
     },
103
-    getList () {
99
+    getList () { // 获取列表
104
       this.$ajax(this.$api.goodsManager.getGoodsSpecList.url, {
100
       this.$ajax(this.$api.goodsManager.getGoodsSpecList.url, {
105
         method: this.$api.goodsManager.getGoodsSpecList.method,
101
         method: this.$api.goodsManager.getGoodsSpecList.method,
106
-        data: { ...this.postData, CaseId: this.CaseId }
102
+        queryData: { ...this.postData, CaseId: this.CaseId }
107
       }).then(res => {
103
       }).then(res => {
108
         this.currentList = res.list
104
         this.currentList = res.list
109
         this.postData.page = res.page
105
         this.postData.page = res.page
110
         this.total = res.pagenum
106
         this.total = res.pagenum
111
       })
107
       })
112
     },
108
     },
113
-    handleCurrentChange (val) {
114
-      this.postData.page = val - 1
109
+    handleCurrentChange (val) { // 跳转到分页
115
       this.getList()
110
       this.getList()
116
     },
111
     },
117
     handleEdit (index, row) { // 编辑
112
     handleEdit (index, row) { // 编辑

+ 46
- 11
src/pages/system/goodsManager/goodsTypeManager/add.vue View File

8
             <div style="width:50%">
8
             <div style="width:50%">
9
               <el-input
9
               <el-input
10
                 placeholder="请输入商品种类"
10
                 placeholder="请输入商品种类"
11
-                v-model="postData.goodsType"
11
+                v-model="postData.TypeName"
12
                 clearable>
12
                 clearable>
13
               </el-input>
13
               </el-input>
14
             </div>
14
             </div>
15
           </div>
15
           </div>
16
         </li>
16
         </li>
17
         <li class="flex-h">
17
         <li class="flex-h">
18
-          <span>商品种类code:</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-input
22
-                placeholder="请输入商品种类code"
23
-                v-model="postData.goodsTypeCode"
24
-                clearable>
25
-              </el-input>
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>
26
             </div>
29
             </div>
27
           </div>
30
           </div>
28
         </li>
31
         </li>
36
 </template>
39
 </template>
37
 
40
 
38
 <script>
41
 <script>
42
+import { mapState } from 'vuex'
39
 export default {
43
 export default {
40
   name: '',
44
   name: '',
41
   data () {
45
   data () {
42
     return {
46
     return {
43
       postData: {
47
       postData: {
44
-        goodsType: '',
45
-        goodsTypeCode: ''
48
+        TypeId: '', // 种类id(新增可传空值)
49
+        TypeName: '', // 种类名称
50
+        CaseId: '', // 案场id
51
+        OrgId: '', // 机构id
52
+        CreatUser: '', // 创建者(传空值)
53
+        CreatTime: '', // 创建时间(传空值)
54
+        Status: '', // 状态(传空值)
46
       },
55
       },
47
       caseAreaList: [
56
       caseAreaList: [
48
         {
57
         {
52
       ]
61
       ]
53
     }
62
     }
54
   },
63
   },
64
+  computed: {
65
+    ...mapState({
66
+      cases: x => x.app.cases.list,
67
+      defaultCaseId: x => x.app.cases.default,
68
+      OrgId: x => x.app.user.OrgId,
69
+    }),
70
+    CaseId: {
71
+      get () {
72
+        return this.postData.CaseId === '' ? this.defaultCaseId || '' : this.postData.CaseId
73
+      },
74
+      set (val) {
75
+        this.postData.CaseId = val
76
+      }
77
+    }
78
+  },
55
   components: {},
79
   components: {},
56
   methods: {
80
   methods: {
57
     submit () {
81
     submit () {
58
-      console.log(this.postData)
82
+      this.postData.OrgId = this.OrgId
83
+      if (this.postData.CaseId === '') this.postData.CaseId = this.CaseId
84
+      this.$ajax(this.$api.goodsManager.addGoodsType.url, {
85
+        method: this.$api.goodsManager.addGoodsType.method,
86
+        data: this.postData
87
+      }).then(res => {
88
+        this.$message({
89
+          type: 'success',
90
+          message: '操作成功'
91
+        })
92
+        this.$router.push({ name: 'goodsTypeManager' })
93
+      })
59
     },
94
     },
60
     cancel () {
95
     cancel () {
61
-      this.$router.go(-1)
96
+      this.$router.push({ name: 'goodsTypeManager' })
62
     }
97
     }
63
   },
98
   },
64
   mounted () { }
99
   mounted () { }

+ 68
- 19
src/pages/system/goodsManager/goodsTypeManager/edit.vue View File

8
             <div style="width:50%">
8
             <div style="width:50%">
9
               <el-input
9
               <el-input
10
                 placeholder="请输入商品种类"
10
                 placeholder="请输入商品种类"
11
-                v-model="postData.goodsType"
11
+                v-model="postData.TypeName"
12
                 clearable>
12
                 clearable>
13
               </el-input>
13
               </el-input>
14
             </div>
14
             </div>
15
           </div>
15
           </div>
16
         </li>
16
         </li>
17
         <li class="flex-h">
17
         <li class="flex-h">
18
-          <span>商品种类code:</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-input
22
-                placeholder="请输入商品种类code"
23
-                v-model="postData.goodsTypeCode"
24
-                clearable>
25
-              </el-input>
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>
26
             </div>
29
             </div>
27
           </div>
30
           </div>
28
         </li>
31
         </li>
29
         <li style="text-align:center">
32
         <li style="text-align:center">
30
-          <el-button type="primary" size="mini">保存</el-button>
31
-          <el-button type="danger" size="mini">取消</el-button>
33
+          <el-button type="primary" size="mini" @click="submit">保存</el-button>
34
+          <el-button type="danger" size="mini" @click="cancel">取消</el-button>
32
         </li>
35
         </li>
33
       </ul>
36
       </ul>
34
     </form>
37
     </form>
36
 </template>
39
 </template>
37
 
40
 
38
 <script>
41
 <script>
42
+import { mapState } from 'vuex'
39
 export default {
43
 export default {
40
   name: '',
44
   name: '',
41
   data () {
45
   data () {
42
     return {
46
     return {
43
       postData: {
47
       postData: {
44
-        goodsType: '',
45
-        goodsTypeCode: ''
48
+        TypeId: '',
49
+        TypeName: '',
50
+        Status: '',
51
+        OrgId: '',
52
+        CaseId: ''
46
       },
53
       },
47
-      caseAreaList: [
48
-        {
49
-          value: '0',
50
-          label: '区域A'
51
-        }
52
-      ]
54
+    }
55
+  },
56
+  computed: {
57
+    ...mapState({
58
+      cases: x => x.app.cases.list,
59
+      defaultCaseId: x => x.app.cases.default,
60
+      OrgId: x => x.app.user.OrgId,
61
+    }),
62
+    CaseId: {
63
+      get () {
64
+        return this.postData.CaseId === '' ? this.defaultCaseId || '' : this.postData.CaseId
65
+      },
66
+      set (val) {
67
+        this.postData.CaseId = val
68
+      }
53
     }
69
     }
54
   },
70
   },
55
   components: {},
71
   components: {},
72
+  created () {
73
+    this.getInfo()
74
+  },
56
   methods: {
75
   methods: {
57
-
76
+    getInfo () { // 获取种类信息
77
+      this.$ajax(this.$api.goodsManager.getGoodsTypeById.url, {
78
+        method: this.$api.goodsManager.getGoodsTypeById.method,
79
+        urlData: {id: this.$route.query.id}
80
+      }).then(res => {
81
+        console.log(res)
82
+        this.postData = res
83
+      })
84
+    },
85
+    submit () { // 提交数据
86
+      if (this.postData.TypeName === '') {
87
+        this.$message({
88
+          type: 'error',
89
+          message: '种类名称不能为空'
90
+        })
91
+        return false
92
+      }
93
+      this.$ajax(this.$api.goodsManager.editGoodsType.url, {
94
+        method: this.$api.goodsManager.editGoodsType.method,
95
+        data: this.postData,
96
+        urlData: {id: this.postData.TypeId}
97
+      }).then(res => {
98
+        this.$message({
99
+          type: 'success',
100
+          message: '操作成功'
101
+        })
102
+        this.$router.push({ name: 'goodsTypeManager' })
103
+      })
104
+    },
105
+    cancel () {
106
+      this.$router.go(-1)
107
+    }
58
   },
108
   },
59
-  mounted () { }
60
 }
109
 }
61
 </script>
110
 </script>
62
 
111
 

+ 67
- 54
src/pages/system/goodsManager/goodsTypeManager/index.vue View File

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 @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="goodsType"
33
+          prop="TypeName"
32
           label="商品种类">
34
           label="商品种类">
33
         </el-table-column>
35
         </el-table-column>
34
         <el-table-column
36
         <el-table-column
35
-          prop="caseName"
37
+          prop="CaseName"
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 tableSearch from '@/components/tableSearch/index'
65
-import { createNamespacedHelpers } from 'vuex'
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: 0, // 当前页码
75
+        pagesize: 10, // 请求数据量
77
       },
76
       },
78
-      tableData: [{
79
-        goodsType: 'xxx',
80
-        caseName: 'xxx'
81
-      }, {
82
-        goodsType: 'xxx',
83
-        caseName: 'xxx'
84
-      }, {
85
-        goodsType: 'xxx',
86
-        caseName: 'xxx'
87
-      }, {
88
-        goodsType: 'xxx',
89
-        caseName: 'xxx'
90
-      }]
77
+      currentList: []
91
     }
78
     }
92
   },
79
   },
93
-  computed: {
94
-    ...mapCaseState({
95
-      caseList: x => x.caseList,
96
-    })
80
+  created () {
81
+    this.getList()
97
   },
82
   },
98
-  components: {
99
-    tableSearch,
83
+  computed: {
84
+    ...mapState({
85
+      cases: x => x.app.cases.list,
86
+      defaultCaseId: x => x.app.cases.default
87
+    }),
88
+    CaseId: {
89
+      get () {
90
+        return this.postData.CaseId || this.defaultCaseId
91
+      },
92
+      set (val) {
93
+        this.postData.CaseId = val
94
+      }
95
+    }
100
   },
96
   },
101
   methods: {
97
   methods: {
102
-    handleSizeChange (val) {
103
-      console.log(`每页 ${val} 条`)
98
+    search () { // 搜索
99
+      this.postData.page = 0
100
+      this.currentList = []
101
+      this.getList()
104
     },
102
     },
105
-    handleCurrentChange (val) {
106
-      console.log(`当前页: ${val}`)
103
+    getList () { // 获取列表
104
+      this.$ajax(this.$api.goodsManager.getGoodsTypeList.url, {
105
+        method: this.$api.goodsManager.getGoodsTypeList.method,
106
+        queryData: { ...this.postData, CaseId: this.CaseId }
107
+      }).then(res => {
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
110
+        }
111
+        this.currentList = res.list
112
+        this.postData.page = res.page
113
+        this.total = res.pagenum
114
+      })
115
+    },
116
+    handleCurrentChange (val) { // 跳转到分页
117
+      this.getList()
107
     },
118
     },
108
     handleEdit (index, row) { // 编辑
119
     handleEdit (index, row) { // 编辑
109
-      console.log(index, row)
110
-      this.$router.push({ name: 'editGoodsType' })
120
+      this.$router.push({ name: 'editGoodsType', query: { id: row.TypeId } })
111
     },
121
     },
112
     handleDelete (index, row) { // 删除
122
     handleDelete (index, row) { // 删除
113
-      console.log(index, row)
114
-      this.$confirm('确认删除此渠道?', '提示', {
123
+      let name = '确认删除规格“' + row.TypeName + '”?'
124
+      this.$confirm(name, '提示', {
115
         confirmButtonText: '确定',
125
         confirmButtonText: '确定',
116
         cancelButtonText: '取消',
126
         cancelButtonText: '取消',
117
         type: 'warning'
127
         type: 'warning'
118
       }).then(() => {
128
       }).then(() => {
119
-        this.$message({
120
-          type: 'success',
121
-          message: '删除成功!'
129
+        this.$ajax(this.$api.goodsManager.deleteGoodsType.url, {
130
+          method: this.$api.goodsManager.deleteGoodsType.method,
131
+          urlData: { id: row.TypeId }
132
+        }).then(res => {
133
+          this.$message({
134
+            type: 'success',
135
+            message: '删除成功!'
136
+          })
137
+          this.search()
122
         })
138
         })
123
       }).catch(() => {
139
       }).catch(() => {
124
         this.$message({
140
         this.$message({
127
         })
143
         })
128
       })
144
       })
129
     },
145
     },
130
-    searchList (key) { // 搜索列表
131
-      console.log(key)
132
-    },
133
     addGoodsType () {
146
     addGoodsType () {
134
       this.$router.push({ name: 'addGoodsType' })
147
       this.$router.push({ name: 'addGoodsType' })
135
     }
148
     }

+ 35
- 3
src/util/api.js View File

12
       url: `${baseUrl}/common/system/init`
12
       url: `${baseUrl}/common/system/init`
13
     }
13
     }
14
   },
14
   },
15
+  channelManager: {
16
+    getChannelList: { // 渠道列表
17
+      method: 'get',
18
+      url: `${baseUrl}/common/`
19
+    },
20
+  },
21
+  caseManager: {
22
+    getCaseList: { // 获取案场列表
23
+      method: 'get',
24
+      url: `${baseUrl}/common/case/info`
25
+    },
26
+  },
15
   goodsManager: {
27
   goodsManager: {
16
     getGoodsSpecList: { // 商品规格列表
28
     getGoodsSpecList: { // 商品规格列表
17
       method: 'get',
29
       method: 'get',
18
       url: `${baseUrl}/common/spec/goods`
30
       url: `${baseUrl}/common/spec/goods`
19
     },
31
     },
20
     addGoodsSpec: { // 新增商品规格
32
     addGoodsSpec: { // 新增商品规格
21
-      method: 'POST',
33
+      method: 'post',
22
       url: `${baseUrl}/common/spec/goods`
34
       url: `${baseUrl}/common/spec/goods`
23
     },
35
     },
24
     getGoodsSpecById: { // 根据id获取商品规格
36
     getGoodsSpecById: { // 根据id获取商品规格
30
       url: `${baseUrl}/common/spec/goods/:id`
42
       url: `${baseUrl}/common/spec/goods/:id`
31
     },
43
     },
32
     deleteGoodsSpec: { // 删除商品规格
44
     deleteGoodsSpec: { // 删除商品规格
33
-      method: 'DELETE',
45
+      method: 'delete',
34
       url: `${baseUrl}/common/spec/goods/:id`
46
       url: `${baseUrl}/common/spec/goods/:id`
35
-    }
47
+    },
48
+    getGoodsTypeList: { // 商品种类列表
49
+      method: 'get',
50
+      url: `${baseUrl}/common/type/goods`
51
+    },
52
+    addGoodsType: { // 新增商品种类
53
+      method: 'post',
54
+      url: `${baseUrl}/common/type/goods`
55
+    },
56
+    getGoodsTypeById: { // 根据id获取商品种类
57
+      method: 'get',
58
+      url: `${baseUrl}/common/type/goods/:id`
59
+    },
60
+    editGoodsType: { // 编辑商品种类
61
+      method: 'put',
62
+      url: `${baseUrl}/common/type/goods/:id`
63
+    },
64
+    deleteGoodsType: { // 删除商品种类
65
+      method: 'delete',
66
+      url: `${baseUrl}/common/type/goods/:id`
67
+    },
36
   },
68
   },
37
   cms: {
69
   cms: {
38
     location: { // 图片位置
70
     location: { // 图片位置