liuyifan лет назад: 5
Родитель
Сommit
cb874db7d0

+ 50 - 0
CallCenterWeb.UI/src/api/commodityManagement/commodityList.js

@@ -0,0 +1,50 @@
1
+import request from '@/utils/request'
2
+
3
+// 获取工单列表数据
4
+export function getOrderLists(params) {
5
+  return request({
6
+    url: 'callcenterapi/api/BusOrder/getlistbypage',
7
+    method: 'get',
8
+    params
9
+  })
10
+}
11
+
12
+// 获取工单数据
13
+export function getOrder(ordercode) {
14
+  return request({
15
+    url: 'callcenterapi/api/BusOrder/getsingle',
16
+    method: 'get',
17
+    params: {
18
+      ordercode
19
+    }
20
+  })
21
+}
22
+
23
+// 添加工单数据
24
+export function addOrder(data) {
25
+  return request({
26
+    url: 'callcenterapi/api/BusOrder/add',
27
+    method: 'post',
28
+    data
29
+  })
30
+}
31
+
32
+// 编辑工单数据
33
+export function editOrder(data) {
34
+  return request({
35
+    url: 'callcenterapi/api/BusOrder/update',
36
+    method: 'post',
37
+    data
38
+  })
39
+}
40
+
41
+// 删除工单数据
42
+export function deleteOrder(ids) {
43
+  return request({
44
+    url: 'callcenterapi/api/BusOrder/delete',
45
+    method: 'post',
46
+    data: {
47
+      ids
48
+    }
49
+  })
50
+}

+ 50 - 0
CallCenterWeb.UI/src/api/memberManagement/memberList.js

@@ -0,0 +1,50 @@
1
+import request from '@/utils/request'
2
+
3
+// 获取工单列表数据
4
+export function getOrderLists(params) {
5
+  return request({
6
+    url: 'callcenterapi/api/BusOrder/getlistbypage',
7
+    method: 'get',
8
+    params
9
+  })
10
+}
11
+
12
+// 获取工单数据
13
+export function getOrder(ordercode) {
14
+  return request({
15
+    url: 'callcenterapi/api/BusOrder/getsingle',
16
+    method: 'get',
17
+    params: {
18
+      ordercode
19
+    }
20
+  })
21
+}
22
+
23
+// 添加工单数据
24
+export function addOrder(data) {
25
+  return request({
26
+    url: 'callcenterapi/api/BusOrder/add',
27
+    method: 'post',
28
+    data
29
+  })
30
+}
31
+
32
+// 编辑工单数据
33
+export function editOrder(data) {
34
+  return request({
35
+    url: 'callcenterapi/api/BusOrder/update',
36
+    method: 'post',
37
+    data
38
+  })
39
+}
40
+
41
+// 删除工单数据
42
+export function deleteOrder(ids) {
43
+  return request({
44
+    url: 'callcenterapi/api/BusOrder/delete',
45
+    method: 'post',
46
+    data: {
47
+      ids
48
+    }
49
+  })
50
+}

+ 16 - 8
CallCenterWeb.UI/src/views/commodityManagement/commodityList/components/addOrEdit.vue

@@ -1,11 +1,17 @@
1 1
 <template>
2 2
   <div v-loading="loading">
3 3
     <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="150px" class="order_form">
4
-      <el-form-item label="标签名称" prop="labelName">
5
-        <el-input v-model="ruleForm.labelName" placeholder="请输入标签名称"/>
4
+      <el-form-item label="商品类型" prop="productType">
5
+        <el-input v-model="ruleForm.productType" placeholder="请输入商品类型"/>
6 6
       </el-form-item>
7
-      <el-form-item label="标签说明" prop="labelDescription">
8
-        <el-input v-model="ruleForm.labelDescription" placeholder="请输入客户电话"/>
7
+      <el-form-item label="商品名称" prop="productName">
8
+        <el-input v-model="ruleForm.productName" placeholder="请输入商品名称"/>
9
+      </el-form-item>
10
+      <el-form-item label="商品数量" prop="productNumber">
11
+        <el-input v-model="ruleForm.productNumber" placeholder="请输入商品数量"/>
12
+      </el-form-item>
13
+      <el-form-item label="商品单价" prop="commodityPrice">
14
+        <el-input v-model="ruleForm.commodityPrice" placeholder="请输入商品单价"/>
9 15
       </el-form-item>
10 16
       <el-form-item>
11 17
         <el-button type="primary" @click="submitForm">保存</el-button>
@@ -48,14 +54,16 @@ export default {
48 54
       ruleForm: {
49 55
         unique_id: '', //		否	string	callid
50 56
         ordercode: '',
51
-        labelName: '',
52
-        labelDescription: '',
57
+        productType: '', //商品类型
58
+        productName: '', //商品名称
59
+        productNumber: '', //商品数量
60
+        commodityPrice: '', //商品单价
53 61
       },
54 62
       rules: {
55
-        labelName: [{
63
+        productType: [{
56 64
           required: true,
57 65
           trigger: 'blur',
58
-          message: '请输入标签姓名',
66
+          message: '请输入商品类型',
59 67
         }]
60 68
       },
61 69
       loading: false

+ 184 - 0
CallCenterWeb.UI/src/views/commodityManagement/commodityList/components/searchFilter.vue

@@ -0,0 +1,184 @@
1
+<template>
2
+    <div class="filter-container">
3
+      <el-select v-model="searchDatas.productType" placeholder="请选择商品类型">
4
+        <!-- <el-option
5
+          v-for="item in options"
6
+          :key="item.value"
7
+          :label="item.label"
8
+          :value="item.value">
9
+        </el-option> -->
10
+        <el-option label="一" value="1"></el-option>
11
+        <el-option label="二" value="2"></el-option>
12
+      </el-select>
13
+      <el-input v-model="searchDatas.dateAdded" placeholder="上架日期" class="filter-item"/>
14
+      <el-input v-model="searchDatas.warehouseName" placeholder="仓库名称" class="filter-item"/>
15
+      <el-input v-model="searchDatas.productName" placeholder="商品名称" class="filter-item"/>
16
+      <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
17
+      <el-button v-permission="'HY_add'" type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
18
+      <el-button v-permission="'HY_change_product_category'" type="primary" class="filter-item" @click="btn_change_product_category">更改商品分类</el-button>
19
+      <el-button v-permission="'HY_change_shipping_template'" type="primary" class="filter-item" @click="btn_change_shipping_template">更改运费模板</el-button>
20
+      <el-button v-permission="'HY_label'" type="primary" class="filter-item" @click="btn_label">打标签</el-button>
21
+      <el-button v-permission="'HY_unified_inventory'" type="primary" class="filter-item" @click="btn_unified_inventory">统一库存</el-button>
22
+      <el-button v-permission="'HY_bulk_listing'" type="primary" class="filter-item" @click="btn_bulk_listing">批量上架</el-button>
23
+      <el-button v-permission="'HY_bulk_removal'" type="primary" class="filter-item" @click="btn_bulk_removal">批量下架</el-button>
24
+      <el-button type="primary" class="filter-item" @click="btn_import"><svg-icon icon-class="daoru" />导入</el-button>
25
+      <el-button v-permission="'HY_export'" type="primary" class="filter-item" @click="btn_export">导出</el-button>
26
+    </div>
27
+</template>
28
+
29
+<script>
30
+import { getProviceCity, getDictionary } from '@/api/commonAPI'
31
+import { pickerOptions } from '@/utils'
32
+import addOrEdit from './addOrEdit'
33
+import changeProductCategory from './changeProductCategory'
34
+import changeShippingTemplate from './changeShippingTemplate'
35
+import editLabel from './editLabel'
36
+import unifiedInventory from './unifiedInventory'
37
+import bulkListing from './bulkListing'
38
+import bulkRemoval from './bulkRemoval'
39
+
40
+
41
+export default {
42
+  name: 'SearchFilter',
43
+  props: {
44
+    searchDatas: {
45
+      required: true,
46
+      type: Object,
47
+      default() {
48
+        return {
49
+          productType: '', //商品类型
50
+          dateAdded: '', //上架日期
51
+          warehouseName: '', //仓库名称
52
+          productName: '', //商品名称
53
+        }
54
+      }
55
+    },
56
+  },
57
+  data() {
58
+    return {
59
+      provinceCityDatas: [], // 省市下拉数据
60
+      props: {
61
+        // 自定义省市下拉数据的key值
62
+        value: 'code',
63
+        label: 'name',
64
+        children: 'entityJson'
65
+      },
66
+      pickerOptions // 日期数据
67
+    }
68
+  },
69
+  created() {
70
+    this.getProCity()
71
+  },
72
+  methods: {
73
+    btn_search() {
74
+      this.$emit('search', this.searchDatas)
75
+    },
76
+    btn_export() {
77
+      this.$emit('export', this.searchDatas)
78
+    },
79
+    btn_deletes() {
80
+      this.$emit('delorders')
81
+    },
82
+    btn_add() {
83
+      this.$layer.iframe({
84
+        content: {
85
+          content: addOrEdit, // 传递的组件对象
86
+          parent: this, // 当前的vue对象
87
+          data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
88
+        },
89
+        area: ['80%', '90%'],
90
+        title: '添加工单'
91
+      })
92
+    },
93
+    btn_change_product_category(editId) {
94
+      this.$layer.iframe({
95
+        content: {
96
+          content: changeProductCategory, // 传递的组件对象
97
+          parent: this, // 当前的vue对象
98
+          data: { 'rowid': editId }// props
99
+        },
100
+        area: ['80%', '90%'],
101
+        title: '更改商品分类'
102
+      })
103
+    },
104
+    btn_change_shipping_template(editId) {
105
+      this.$layer.iframe({
106
+        content: {
107
+          content: changeShippingTemplate, // 传递的组件对象
108
+          parent: this, // 当前的vue对象
109
+          data: { 'rowid': editId }// props
110
+        },
111
+        area: ['80%', '90%'],
112
+        title: '更改运费模板'
113
+      })
114
+    },
115
+    btn_label() {
116
+      this.$layer.iframe({
117
+        content: {
118
+          content: editLabel,
119
+          parent: this,
120
+          data: { 'rowid': '' }
121
+        },
122
+        area: ['80%', '90%'],
123
+        title: '打标签'
124
+      })
125
+    },
126
+    btn_unified_inventory(editId) {
127
+      this.$layer.iframe({
128
+        content: {
129
+          content: unifiedInventory, // 传递的组件对象
130
+          parent: this, // 当前的vue对象
131
+          data: { 'rowid': editId }// props
132
+        },
133
+        area: ['80%', '90%'],
134
+        title: '统一库存'
135
+      })
136
+    },
137
+    btn_bulk_listing(editId) {
138
+      this.$layer.iframe({
139
+        content: {
140
+          content: bulkListing, // 传递的组件对象
141
+          parent: this, // 当前的vue对象
142
+          data: { 'rowid': editId }// props
143
+        },
144
+        area: ['80%', '90%'],
145
+        title: '批量上架'
146
+      })
147
+    },
148
+    btn_bulk_removal(editId) {
149
+      this.$layer.iframe({
150
+        content: {
151
+          content: bulkRemoval, // 传递的组件对象
152
+          parent: this, // 当前的vue对象
153
+          data: { 'rowid': editId }// props
154
+        },
155
+        area: ['80%', '90%'],
156
+        title: '批量下架'
157
+      })
158
+    },
159
+    btn_import() {
160
+      this.$layer.iframe({
161
+        content: {
162
+          content: importTels, // 传递的组件对象
163
+          parent: this, // 当前的vue对象
164
+          data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
165
+        },
166
+        area: ['40%', '380px'],
167
+        shadeClose: false,
168
+        title: '导入号码'
169
+      })
170
+    },
171
+    // 获取省市下拉数据
172
+    getProCity() {
173
+      return new Promise(resolve => {
174
+        getProviceCity().then(response => {
175
+          if (response.state.toLowerCase() === 'success') {
176
+            this.provinceCityDatas = response.data
177
+          }
178
+        })
179
+        resolve()
180
+      })
181
+    },
182
+  }
183
+}
184
+</script>

+ 71 - 123
CallCenterWeb.UI/src/views/commodityManagement/commodityList/index.vue

@@ -1,47 +1,61 @@
1 1
 <template>
2 2
   <div class="app-container">
3
-    <div class="filter-container">
4
-      <el-input v-model="label_name" placeholder="商品名称" class="filter-item"/>
5
-      <el-input v-model="label_name" placeholder="商品编号" class="filter-item"/>
6
-      <el-input v-model="label_name" placeholder="运费模板" class="filter-item"/>
7
-      <el-input v-model="label_name" placeholder="商品产地" class="filter-item"/>
8
-      <el-input v-model="label_name" placeholder="请选择状态" class="filter-item"/>
9
-      <el-input v-model="label_name" placeholder="请选择品牌" class="filter-item"/>
10
-      <el-input v-model="label_name" placeholder="请选择分类" class="filter-item"/>
11
-      <el-input v-model="label_name" placeholder="请选择标签" class="filter-item"/>
12
-      <el-input v-model="label_name" placeholder="商品类型" class="filter-item"/>
13
-      <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
14
-      <el-button v-permission="'HY_add'" type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
15
-      <el-button v-permission="'HY_change_product_category'" type="primary" class="filter-item" @click="btn_change_product_category">更改商品分类</el-button>
16
-      <el-button v-permission="'HY_change_shipping_template'" type="primary" class="filter-item" @click="btn_change_shipping_template">更改运费模板</el-button>
17
-      <el-button v-permission="'HY_label'" type="primary" class="filter-item" @click="btn_label">打标签</el-button>
18
-      <el-button v-permission="'HY_unified_inventory'" type="primary" class="filter-item" @click="btn_unified_inventory">统一库存</el-button>
19
-      <el-button v-permission="'HY_bulk_listing'" type="primary" class="filter-item" @click="btn_bulk_listing">批量上架</el-button>
20
-      <el-button v-permission="'HY_bulk_removal'" type="primary" class="filter-item" @click="btn_bulk_removal">批量下架</el-button>
21
-      <el-button v-permission="'HY_export'" type="primary" class="filter-item" @click="btn_export">导出</el-button>
22
-    </div>
23
-
3
+    <search-filter
4
+      :search-datas.sync="searchDatas"
5
+      showadd
6
+      @search="btn_search"
7
+      @delorders="btn_search"
8
+      @export="btn_search">
9
+    </search-filter>
24 10
     <el-table v-loading="loading" :data="dataLists" border stripe>
25 11
       <el-table-column
26 12
         type="selection"
27 13
         width="40">
28 14
       </el-table-column>
29
-      <el-table-column type="index" label="商品ID" align="center" fixed width=""/>
30
-      <el-table-column type="index" label="排序编号" align="center" fixed width=""/>
31
-      <el-table-column type="index" label="规格" align="center" fixed width=""/>
32
-      <el-table-column type="index" label="商品名称" align="center" fixed width=""/>
33
-      <el-table-column type="index" label="库存" align="center" fixed width=""/>
34
-      <el-table-column type="index" label="原价" align="center" fixed width=""/>
35
-      <el-table-column type="index" label="销售价" align="center" fixed width=""/>
36
-      <el-table-column type="index" label="状态" align="center" fixed width=""/>
37
-      <el-table-column type="index" label="标签" align="center" fixed width=""/>
38
-      <el-table-column type="index" label="货号" align="center" fixed width=""/>
39
-      <el-table-column type="index" label="主类目" align="center" fixed width=""/>
40
-      <el-table-column type="index" label="商品分类" align="center" fixed width=""/>
41
-      <el-table-column label="操作" width="" align="center" class-name="oparate_btn" fixed="right">
15
+      <el-table-column 
16
+        type="index" 
17
+        label="商品类型" 
18
+        align="center" 
19
+        fixed width="">
20
+      </el-table-column>
21
+      <el-table-column 
22
+        type="index" 
23
+        label="商品名称" 
24
+        align="center" 
25
+        fixed width="">
26
+      </el-table-column>
27
+      <el-table-column
28
+        type="index" 
29
+        label="商品数量" 
30
+        align="center" 
31
+        fixed 
32
+        width="">
33
+      </el-table-column>
34
+      <el-table-column 
35
+        type="index" 
36
+        label="商品单价" 
37
+        align="center" 
38
+        fixed 
39
+        width="">
40
+      </el-table-column>
41
+      <el-table-column 
42
+        type="index" 
43
+        label="商品标签" 
44
+        align="center" 
45
+        fixed 
46
+        width="">
47
+      </el-table-column>
48
+      <el-table-column 
49
+        label="操作" 
50
+        width="" 
51
+        align="center" 
52
+        class-name="oparate_btn" 
53
+        fixed="right">
42 54
         <template slot-scope="scope">
43
-          <el-button v-permission="'HY_edit'" size="mini" plain type="primary" @click="btn_edit(scope.row.ordercode)">编辑</el-button>
55
+          <el-button v-permission="'HY_edit'" size="mini" plain type="primary" @click="btn_edit(scope.row.ordercode)">修改</el-button>
44 56
           <el-button v-permission="'HY_delete'" size="mini" plain type="danger" @click="btn_delete(scope.row.id)">删除</el-button>
57
+          <el-button v-permission="'HY_putaway'" size="mini" plain type="primary" @click="btn_putaway(scope.row.ordercode)">上架</el-button>
58
+          <el-button v-permission="'HY_soldout'" size="mini" plain type="danger" @click="btn_soldout(scope.row.ordercode)">下架</el-button>
45 59
         </template>
46 60
       </el-table-column>
47 61
     </el-table>
@@ -57,21 +71,17 @@
57 71
 
58 72
 <script>
59 73
 
60
-import { getOrderLists, deleteOrder } from '@/api/order/orderSearch'
61
-import addOrEdit from './components/addOrEdit'
62
-import changeProductCategory from './components/changeProductCategory'
63
-import changeShippingTemplate from './components/changeShippingTemplate'
64
-import editLabel from './components/editLabel'
65
-import unifiedInventory from './components/unifiedInventory'
66
-import bulkListing from './components/bulkListing'
67
-import bulkRemoval from './components/bulkRemoval'
74
+import { getOrderLists, deleteOrder } from '@/api/commodityManagement/commodityList'
75
+import SearchFilter from './components/searchFilter'
68 76
 import { formatterContent } from '@/utils'
77
+import addOrEdit from './components/addOrEdit'
69 78
 import Pagination from '@/components/Pagination' // 对el-pagination 二次封装
70 79
 
71 80
 export default {
72 81
   name: 'commodityList',
73 82
   components: {
74
-    Pagination
83
+    Pagination,
84
+    SearchFilter,
75 85
   },
76 86
   data() {
77 87
     return {
@@ -82,7 +92,13 @@ export default {
82 92
         pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
83 93
         total: 0 // 总共多少数据
84 94
       },
85
-      dataLists: [] // 列表数据
95
+      dataLists: [], // 列表数据
96
+      searchDatas: {
97
+        productType: '', //商品类型
98
+        dateAdded: '', //上架日期
99
+        warehouseName: '', //仓库名称
100
+        productName: '', //商品名称
101
+      },
86 102
     }
87 103
   },
88 104
   created() {
@@ -98,6 +114,10 @@ export default {
98 114
       this.loading = true
99 115
       return new Promise(resolve => {
100 116
         const params = {
117
+          productType: this.searchDatas.productType, //商品类型
118
+          dateAdded: this.searchDatas.dateAdded, //上架日期
119
+          warehouseName: this.searchDatas.warehouseName, //仓库名称
120
+          productName: this.searchDatas.productName, //商品名称
101 121
           pageindex: this.pageParams.pageindex, // int 第几页
102 122
           pagesize: this.pageParams.pagesize, // int 每页几条信息
103 123
         }
@@ -115,84 +135,6 @@ export default {
115 135
       this.pageParams.pageindex = 1
116 136
       this.getList()
117 137
     },
118
-    btn_add() {
119
-      this.$layer.iframe({
120
-        content: {
121
-          content: addOrEdit, // 传递的组件对象
122
-          parent: this, // 当前的vue对象
123
-          data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
124
-        },
125
-        area: ['80%', '90%'],
126
-        title: '添加工单'
127
-      })
128
-    },
129
-    btn_change_product_category(editId) {
130
-      this.$layer.iframe({
131
-        content: {
132
-          content: changeProductCategory, // 传递的组件对象
133
-          parent: this, // 当前的vue对象
134
-          data: { 'rowid': editId }// props
135
-        },
136
-        area: ['80%', '90%'],
137
-        title: '更改商品分类'
138
-      })
139
-    },
140
-    btn_change_shipping_template(editId) {
141
-      this.$layer.iframe({
142
-        content: {
143
-          content: changeShippingTemplate, // 传递的组件对象
144
-          parent: this, // 当前的vue对象
145
-          data: { 'rowid': editId }// props
146
-        },
147
-        area: ['80%', '90%'],
148
-        title: '更改运费模板'
149
-      })
150
-    },
151
-
152
-    btn_label() {
153
-      this.$layer.iframe({
154
-        content: {
155
-          content: editLabel,
156
-          parent: this,
157
-          data: { 'rowid': '' }
158
-        },
159
-        area: ['80%', '90%'],
160
-        title: '打标签'
161
-      })
162
-    },
163
-    btn_unified_inventory(editId) {
164
-      this.$layer.iframe({
165
-        content: {
166
-          content: unifiedInventory, // 传递的组件对象
167
-          parent: this, // 当前的vue对象
168
-          data: { 'rowid': editId }// props
169
-        },
170
-        area: ['80%', '90%'],
171
-        title: '统一库存'
172
-      })
173
-    },
174
-    btn_bulk_listing(editId) {
175
-      this.$layer.iframe({
176
-        content: {
177
-          content: bulkListing, // 传递的组件对象
178
-          parent: this, // 当前的vue对象
179
-          data: { 'rowid': editId }// props
180
-        },
181
-        area: ['80%', '90%'],
182
-        title: '批量上架'
183
-      })
184
-    },
185
-    btn_bulk_removal(editId) {
186
-      this.$layer.iframe({
187
-        content: {
188
-          content: bulkRemoval, // 传递的组件对象
189
-          parent: this, // 当前的vue对象
190
-          data: { 'rowid': editId }// props
191
-        },
192
-        area: ['80%', '90%'],
193
-        title: '批量下架'
194
-      })
195
-    },
196 138
     btn_edit(editId) {
197 139
       this.$layer.iframe({
198 140
         content: {
@@ -220,6 +162,12 @@ export default {
220 162
         this.$message.info('已取消删除')
221 163
       })
222 164
     },
165
+    btn_putaway(editId) {
166
+      console.log(editId)
167
+    },
168
+    btn_soldout(editId) {
169
+      console.log(editId)
170
+    },
223 171
   }
224 172
 }
225 173
 </script>

+ 0 - 327
CallCenterWeb.UI/src/views/memberManagement/memberBasicSetting/addOrEdit.vue

@@ -1,327 +0,0 @@
1
-<template>
2
-  <div v-loading="loading">
3
-    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="150px" class="order_form">
4
-      <el-form-item label="工单来源" prop="sourceid">
5
-        <el-select v-model="ruleForm.sourceid" class="form_select" filterable clearable placeholder="请选择工单来源">
6
-          <el-option v-for="item in sourceOptions" :key="item.id" :label="item.name" :value="item.id"/>
7
-        </el-select>
8
-      </el-form-item>
9
-      <el-form-item label="工单类型" prop="typeid">
10
-        <el-select v-model="ruleForm.typeid" class="form_select" filterable clearable placeholder="请选择工单类型">
11
-          <el-option v-for="item in typeOptions" :key="item.id" :label="item.name" :value="item.id"/>
12
-        </el-select>
13
-      </el-form-item>
14
-      <el-form-item label="客户姓名" prop="name">
15
-        <el-input v-model="ruleForm.name" placeholder="请输入客户姓名"/>
16
-      </el-form-item>
17
-      <el-form-item label="客户电话" prop="phone">
18
-        <el-input v-model="ruleForm.phone" placeholder="请输入客户电话"/>
19
-      </el-form-item>
20
-      <el-form-item label="性别" prop="sex">
21
-        <el-radio-group v-model="ruleForm.sex">
22
-          <el-radio label="男">男</el-radio>
23
-          <el-radio label="女">女</el-radio>
24
-        </el-radio-group>
25
-      </el-form-item>
26
-      <el-form-item label="所在地" prop="provinceCity">
27
-        <el-cascader
28
-          v-model="provinceCity"
29
-          :options="provinceCityDatas"
30
-          :props="props"
31
-          placeholder="请选择省市"
32
-          class="form_select"
33
-          clearable
34
-          filterable
35
-          change-on-select/>
36
-      </el-form-item>
37
-      <el-form-item label="具体地址" prop="address">
38
-        <el-input v-model="ruleForm.address" placeholder="请输入具体地址"/>
39
-      </el-form-item>
40
-      <el-form-item label="工单内容" prop="content">
41
-        <el-input v-model="ruleForm.content" type="textarea" autosize placeholder="请输入工单内容"/>
42
-      </el-form-item>
43
-      <el-form-item label="附件" prop="files">
44
-        <el-upload
45
-          ref="upload"
46
-          :file-list="uploadData.fileList"
47
-          :action= "uploadData.uploadUrl"
48
-          :data = "uploadData.uploaderFiles"
49
-          :on-success="uploadSuccess"
50
-          :on-error="uploadError"
51
-          :on-remove="uploadRemove"
52
-          class="uploadFiles"
53
-          list-type="picture"
54
-          multiple>
55
-          <el-button size="small" type="primary">点击上传</el-button>
56
-          <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
57
-          <!-- <i class="el-icon-plus"></i> -->
58
-        </el-upload>
59
-      </el-form-item>
60
-      <el-form-item>
61
-        <el-button type="primary" @click="submitForm">保存</el-button>
62
-        <el-button @click="resetForm">重置</el-button>
63
-      </el-form-item>
64
-    </el-form>
65
-  </div>
66
-</template>
67
-
68
-<script>
69
-import { getProviceCity, getDictionary } from '@/api/commonAPI'
70
-import { getOrder, addOrder, editOrder } from '@/api/order/orderSearch'
71
-import { validateTel } from '@/utils/validate'
72
-import { delFiles, filterContent } from '@/utils'
73
-
74
-const validateTelRule = (rule, value, callback) => {
75
-  if (!validateTel(value)) {
76
-    callback(new Error('请输入有效的客户电话!'))
77
-  } else {
78
-    callback()
79
-  }
80
-}
81
-
82
-export default {
83
-  name: 'AddOrEdit',
84
-  props: {
85
-    rowid: {
86
-      type: String,
87
-      default: ''
88
-    },
89
-    callid: {
90
-      type: Number,
91
-      default: 0
92
-    },
93
-    layerid: {
94
-      type: String,
95
-      default: ''
96
-    }
97
-  },
98
-  data() {
99
-    return {
100
-      uploadData: {// 文件上传数据
101
-        uploadUrl: this.$store.getters.serverConfig.BASE_API + 'fileserverapi/Api/Upload',
102
-        uploaderFiles: {// 上传文件的参数 //是	string	模块code,如:test
103
-          uploadtype: 'orderFiles'
104
-        },
105
-        fileList: [] // 展示文件的数据
106
-      },
107
-      provinceCity: [], // 省市下拉绑定的值
108
-      provinceCityDatas: [], // 省市下拉数据
109
-      props: { // 自定义省市下拉数据的key值
110
-        value: 'code',
111
-        label: 'name',
112
-        children: 'entityJson'
113
-      },
114
-      sourceOptions: [], // 工单来源下拉数据
115
-      typeOptions: [], // 工单类型下拉数据
116
-      ruleForm: {
117
-        unique_id: '', //		否	string	callid
118
-        ordercode: '',
119
-        sourceid: '', //	否	string	来源id
120
-        typeid: '', //	否	string	类型id
121
-        name: '', //	否	string	姓名
122
-        phone: '', //	是	string	号码
123
-        sex: '男', //	否	string	性别
124
-        province: '', //	否	string	省code
125
-        city: '', //	否	string	市code
126
-        address: '', //	否	string	地址
127
-        // deptid: '', //	否	string	部门id
128
-        content: '', //	是	string	工单内容
129
-        files: [] // 否	list	附件json
130
-      },
131
-      rules: {
132
-        sourceid: [{
133
-          required: true,
134
-          message: '请选择工单来源',
135
-          trigger: 'blur'
136
-        }],
137
-        typeid: [{
138
-          required: true,
139
-          message: '请选择工单类型',
140
-          trigger: 'blur'
141
-        }],
142
-        name: [{
143
-          required: true,
144
-          message: '请输入客户姓名',
145
-          trigger: 'blur'
146
-        }],
147
-        phone: [{
148
-          required: true,
149
-          trigger: 'blur',
150
-          validator: validateTelRule
151
-        }]
152
-      },
153
-      loading: false
154
-    }
155
-  },
156
-  created() {
157
-    if (this.callid) {
158
-      this.ruleForm.unique_id = this.callid
159
-    }
160
-    Promise.all([this.getOrderSource(), this.getOrderType(), this.getProCity()])
161
-      .then(() => {
162
-        if (this.rowid) {
163
-          this.ruleForm.ordercode = this.rowid
164
-          this.getDetail(this.rowid)
165
-        }
166
-      })
167
-  },
168
-  methods: {
169
-    submitForm() {
170
-      this.$refs.ruleForm.validate((valid) => {
171
-        if (valid) {
172
-          this.ruleForm.province = this.provinceCity && this.provinceCity[0]
173
-          this.ruleForm.city = this.provinceCity && this.provinceCity[1]
174
-          this.ruleForm.content = filterContent.delHtmlTag(this.ruleForm.content)// 保存内容时去掉 html 标签
175
-          this.loading = true
176
-          // 添加
177
-          if (!this.rowid) {
178
-            addOrder(this.ruleForm).then(response => {
179
-              this.loading = false
180
-              if (response.state.toLowerCase() === 'success') {
181
-                this.$parent.$layer.close(this.layerid)
182
-                if (this.callid) {
183
-                  this.$parent.getOrderRecord() // 重新加载来电弹屏工单记录
184
-                } else {
185
-                  this.$parent.getList() // 重新加载父级数据
186
-                }
187
-                this.$message.success('恭喜你,工单信息添加成功!')
188
-              }
189
-            }).catch(() => {
190
-              this.loading = false
191
-            })
192
-            return
193
-          }
194
-          // 编辑
195
-          editOrder(this.ruleForm).then(response => {
196
-            this.loading = false
197
-            if (response.state.toLowerCase() === 'success') {
198
-              this.$parent.$layer.close(this.layerid)
199
-              this.$parent.getList() // 重新加载父级数据
200
-              this.$message.success('恭喜你,工单信息编辑成功!')
201
-            }
202
-          }).catch(() => {
203
-            this.loading = false
204
-          })
205
-        } else {
206
-          this.$message.error('请输入有效的必填项信息!')
207
-          return false
208
-        }
209
-      })
210
-    },
211
-    resetForm() {
212
-      if (!this.rowid) {
213
-        if (this.ruleForm.files.length > 0) {
214
-          for (let i = this.ruleForm.files.length - 1; i >= 0; i--) {
215
-            delFiles(this.ruleForm.files[i].filesmallurl, this.ruleForm.files[i].fileurl)
216
-            this.ruleForm.files.splice(i, 1)
217
-          }
218
-        }
219
-        this.$refs.upload.clearFiles()	// 清空已上传的文件列表(该方法不支持在 before-upload 中调用)
220
-      }
221
-      this.provinceCity = []
222
-      this.$refs.ruleForm.resetFields()
223
-    },
224
-    // 详情
225
-    getDetail(rid) {
226
-      getOrder(rid).then(response => {
227
-        if (response.state.toLowerCase() === 'success') {
228
-          const res = response.data.model
229
-          this.ruleForm.sourceid = res.sourceid // 来源
230
-          this.ruleForm.typeid = res.typeid // 类型
231
-          this.ruleForm.name = res.name // 姓名
232
-          this.ruleForm.phone = res.phone // 电话
233
-          this.ruleForm.sex = res.sex // 性别
234
-          this.provinceCity = [res.province, res.city]
235
-          this.ruleForm.address = res.address // 具体地址
236
-          this.ruleForm.content = res.content // 内容
237
-
238
-          // 附件
239
-          if (res.files) {
240
-            for (let i = 0, len = res.files.length; i < len; i++) {
241
-              this.uploadData.fileList.push({
242
-                'name': res.files[i].filename,
243
-                'url': res.files[i].fileurl
244
-              })
245
-            }
246
-            this.ruleForm.files = res.files
247
-          }
248
-        }
249
-      })
250
-    },
251
-    // 获取省市下拉数据
252
-    getProCity() {
253
-      return new Promise(resolve => {
254
-        getProviceCity().then(response => {
255
-          if (response.state.toLowerCase() === 'success') {
256
-            this.provinceCityDatas = response.data
257
-          }
258
-        })
259
-        resolve()
260
-      })
261
-    },
262
-    // 获取工单来源
263
-    getOrderSource() {
264
-      return new Promise(resolve => {
265
-        getDictionary('GDLY').then(response => {
266
-          if (response.state.toLowerCase() === 'success') {
267
-            this.sourceOptions = response.data
268
-          }
269
-        })
270
-        resolve()
271
-      })
272
-    },
273
-    // 获取工单类型
274
-    getOrderType() {
275
-      return new Promise(resolve => {
276
-        getDictionary('GDLX').then(response => {
277
-          if (response.state.toLowerCase() === 'success') {
278
-            this.typeOptions = response.data
279
-          }
280
-        })
281
-        resolve()
282
-      })
283
-    },
284
-    // 文件上传
285
-    uploadSuccess(response, file, fileList) {
286
-      if (response.state.toLowerCase() === 'success') {
287
-        this.ruleForm.files.push(response.data[0])
288
-      } else {
289
-        this.$message.error(response.message)
290
-      }
291
-    },
292
-    uploadRemove(file, fileList) {
293
-      if (this.ruleForm.files.length > 0) {
294
-        for (let i = 0, len = this.ruleForm.files.length; i < len; i++) {
295
-          if (this.ruleForm.files[i].filename === file.name) {
296
-            delFiles(this.ruleForm.files[i].filesmallurl, this.ruleForm.files[i].fileurl)
297
-            this.ruleForm.files.splice(i, 1)
298
-            return
299
-          }
300
-        }
301
-      }
302
-    },
303
-    uploadError(err, file, fileList) {
304
-      // console.log(err)
305
-      this.$message.error(err)
306
-    }
307
-  }
308
-}
309
-</script>
310
-
311
-<style rel="stylesheet/scss" lang="scss">
312
-.order_form .form_select{
313
-	width: 100%;
314
-}
315
-.order_form .uploadFiles .el-upload-list--picture{
316
-	margin-right: -1%;
317
-}
318
-.order_form .el-upload-list--picture li{
319
-	width: 24%;
320
-	margin-right: 1%;
321
-	float: left;
322
-}
323
-</style>
324
-
325
-<style rel="stylesheet/scss" lang="scss" scoped>
326
-
327
-</style>

+ 0 - 323
CallCenterWeb.UI/src/views/memberManagement/memberBasicSetting/detail.vue

@@ -1,323 +0,0 @@
1
-<template>
2
-  <div class="order_detail">
3
-    <el-row :gutter="20">
4
-      <el-col :md="24" class="order_detail_body">
5
-        <el-card shadow="hover">
6
-          <el-col :md="3">
7
-            <div class="round_img">
8
-              <img :src="avatar" alt="头像">
9
-            </div>
10
-          </el-col>
11
-          <el-col :md="21">
12
-            <h1 class="title"><svg-icon class="title_icon" icon-class="hongqi" />工单编号:{{ ordercode }}</h1>
13
-            <!-- <p class="title_sub"><span class="green">{{ name }}</span> {{ createtime }}</p> -->
14
-            <p class="title_sub"><span class="green">{{ name }}</span> 	河南阜外华中心血管病医院 {{ createtime }}</p>
15
-            <p class="title_sub">催单次数:<span class="red">10</span>次 | 工单状态: <span class="done">已完成</span></p>
16
-          </el-col>
17
-          <el-col :md="24" class="order_detail_content">
18
-            <el-col :md="6" class="order_detail_item">
19
-              客户电话:{{ phone }}
20
-            </el-col>
21
-            <el-col :md="6" class="order_detail_item">
22
-              客户性别:{{ sex }}
23
-            </el-col>
24
-            <el-col :md="6" class="order_detail_item">
25
-              工单来源:{{ sourcename }}
26
-            </el-col>
27
-            <el-col :md="6" class="order_detail_item">
28
-              工单类型:{{ sourcetype }}
29
-            </el-col>
30
-            <el-col :md="6" class="order_detail_item">
31
-              地址:{{ address }}
32
-            </el-col>
33
-            <el-col :md="6" class="order_detail_item">
34
-              创建人:{{ createuser }}
35
-            </el-col>
36
-            <el-col :md="24" class="order_detail_item">
37
-              工单内容:
38
-              <div class="order_content" v-html="content"/>
39
-            </el-col>
40
-            <el-col v-if="fileList.length > 0" :md="24" class="order_detail_item">
41
-              <p>附件:<span class="yellow">(可以下载查看)</span></p>
42
-
43
-              <el-col v-for="(item, index) in fileList" :md="3" :key="index">
44
-                <el-card class="order_file">
45
-                  <span class="img_mask">
46
-                    <a :href="item.fileurl" download="filename" title="点击下载">
47
-                      <i class="el-icon-download"/>
48
-                    </a>
49
-                  </span>
50
-                  <img v-if="item.filesmallurl" :src="item.filesmallurl" :large="item.fileurl" :preview-text="item.filename" preview="0" height="68" width="80%">
51
-                  <i v-else class="el-icon-document file_icon"/>
52
-                  <p :title="item.filename"> {{ item.filename }} </p>
53
-                </el-card>
54
-              </el-col>
55
-
56
-            </el-col>
57
-            <el-col :md="6">
58
-              <i class="el-icon-time"/>
59
-              已持续 <span class="red">20</span> 小时 <span class="red">20</span> 分 <span class="red">20</span> 秒
60
-            </el-col>
61
-            <el-col :md="6" :offset="12">
62
-              <el-button type="primary" size="mini" plain>催单</el-button>
63
-              <el-button type="primary" size="mini" plain>转派</el-button>
64
-              <el-button type="primary" size="mini" plain>完成</el-button>
65
-            </el-col>
66
-          </el-col>
67
-        </el-card>
68
-      </el-col>
69
-
70
-      <el-col :md="12">
71
-        <el-card shadow="hover">
72
-          <div slot="header" class="clearfix">
73
-            <span>工单动态</span>
74
-          </div>
75
-          <div class="order_steps">
76
-            <el-steps :active="0" :space="100" direction="vertical" process-status="success">
77
-              <el-step title="已完成" description="2018-10-23 10:30:20 这是一段很长很长很长的描述性文字"/>
78
-              <el-step title="已转派" description="2018-10-23 10:30:20 这是一段很长很长很长的描述性文字"/>
79
-              <el-step title="已创建" description="2018-10-23 10:30:20 这是一段很长很长很长的描述性文字"/>
80
-            </el-steps>
81
-          </div>
82
-        </el-card>
83
-      </el-col>
84
-      <el-col :md="12">
85
-        <el-card shadow="hover" class="order_record">
86
-          <el-tabs v-model="activeName" @tab-click="handleClick">
87
-            <el-tab-pane label="催单记录(2)" name="first">
88
-              <div class="tab_body">
89
-                催单记录
90
-              </div>
91
-            </el-tab-pane>
92
-            <el-tab-pane label="录音记录(3)" name="second">
93
-              <div class="tab_body">
94
-                录音记录
95
-              </div>
96
-            </el-tab-pane>
97
-          </el-tabs>
98
-        </el-card>
99
-      </el-col>
100
-    </el-row>
101
-  </div>
102
-</template>
103
-
104
-<script>
105
-import { getOrder } from '@/api/order/orderSearch'
106
-import { mapGetters } from 'vuex'
107
-import { filterContent } from '@/utils'
108
-
109
-export default {
110
-  name: 'Detail',
111
-  props: {
112
-    rowid: {
113
-      type: String,
114
-      default: ''
115
-    },
116
-    layerid: {
117
-      type: String,
118
-      default: ''
119
-    }
120
-  },
121
-  data() {
122
-    return {
123
-      activeName: 'first',
124
-      ordercode: '', // 工单编号
125
-      name: '', // 姓名
126
-      phone: '', // 电话
127
-      sex: '', // 性别
128
-      address: '', // 地址
129
-      sourcename: '', // 工单来源
130
-      sourcetype: '', // 工单类型
131
-      content: '', // 工单内容
132
-      createtime: '', // 创建时间
133
-      createuser: '', // 创建人
134
-      fileList: [] // 附件
135
-    }
136
-  },
137
-  computed: {
138
-    ...mapGetters([
139
-      'avatar'
140
-    ])
141
-  },
142
-  created() {
143
-    if (this.rowid) {
144
-      this.getDetail(this.rowid)
145
-    }
146
-  },
147
-  methods: {
148
-    handleClick(tab, event) {
149
-      console.log(tab, event)
150
-    },
151
-    // 详情
152
-    getDetail(rid) {
153
-      getOrder(rid).then(response => {
154
-        if (response.state.toLowerCase() === 'success') {
155
-          const res = response.data.model
156
-          this.ordercode = res.ordercode // 工单编号
157
-          this.name = res.name // 姓名
158
-          this.phone = res.phone // 电话
159
-          this.sex = res.sex // 性别
160
-          res.provincename = res.provincename === null ? '' : res.provincename
161
-          res.cityname = res.cityname === null ? '' : res.cityname
162
-          res.address = res.address === null ? '' : res.address
163
-          this.address = res.provincename + res.cityname + res.address // 地址
164
-          this.sourcename = res.sourcename // 工单来源
165
-          this.sourcetype = res.typename // 工单类型
166
-          this.content = filterContent.content(res.content) // 工单内容
167
-          this.createtime = res.createtime // 创建时间
168
-          this.createuser = res.createuser + '-' + res.createusername // 创建人
169
-          // 附件
170
-          if (res.files) {
171
-            this.fileList = res.files
172
-          }
173
-        }
174
-      })
175
-    }
176
-  }
177
-}
178
-</script>
179
-
180
-<style rel="stylesheet/scss" lang="scss">
181
-	.order_detail{
182
-		.el-col{
183
-			margin-bottom: 20px;
184
-		}
185
-		.el-icon-time{
186
-			color: #d81e06;
187
-		}
188
-		.el-card__header{
189
-			padding-top: 14px;
190
-			padding-bottom: 14px;
191
-			background-color: #F5F5F6;
192
-		}
193
-		.order_file{
194
-			.el-card__body{
195
-				padding: 22px 0 0 0;
196
-				text-align: center;
197
-			}
198
-		}
199
-		.order_steps{
200
-			.el-step__icon-inner{
201
-				display: none;
202
-			}
203
-		}
204
-		.order_record {
205
-			.el-card__body{
206
-				padding: 0;
207
-			}
208
-			.el-tabs__header{
209
-				padding: 0px 20px;
210
-				background-color: #F5F5F6;
211
-					.el-tabs__item{
212
-						font-size: 16px;
213
-						height: 47px;
214
-						line-height: 47px;
215
-					}
216
-			}
217
-		}
218
-	}
219
-</style>
220
-
221
-<style rel="stylesheet/scss" lang="scss" scoped>
222
-	.order_detail{
223
-		.order_detail_body{
224
-			margin-bottom: 20px;
225
-			.round_img{
226
-				width: 90px;
227
-				height: 90px;
228
-				border-radius: 50%;
229
-				overflow: hidden;
230
-				margin: 14px;
231
-				img{
232
-					width: 100%;
233
-					height: 100%;
234
-				}
235
-			}
236
-			.title{
237
-				font-size: 20px;
238
-				.title_icon{
239
-					color: #d81e06;
240
-					font-size: 16px;
241
-					margin-right: 20px;
242
-				}
243
-			}
244
-			.title_sub{
245
-				font-size: 14px;
246
-				color: #666666;
247
-			}
248
-			.order_detail_content{
249
-				background-color: #F5F5F6;
250
-				padding-top: 20px;
251
-				color: #4c4c4c;
252
-				font-size: 14px;
253
-				.order_detail_item{
254
-					margin-bottom: 10px;
255
-					.order_content{
256
-						margin-top: 10px;
257
-					}
258
-					.order_file {
259
-						position: relative;
260
-						cursor: pointer;
261
-						.img_mask {
262
-							display: none;
263
-							position: absolute;
264
-							left: 0px;
265
-							top: 0px;
266
-							background-color: rgba(0, 0, 0, 0.3);
267
-							width: 100%;
268
-							height: 22px;
269
-							text-align: right;
270
-							z-index: 1;
271
-							i {
272
-								font-size: 20px;
273
-								line-height: 22px;
274
-								display: inline-block;
275
-								margin-right: 15px;
276
-								color: #fff;
277
-							}
278
-						}
279
-						p {
280
-							margin-top: 5px;
281
-							padding-left: 14px;
282
-							padding-right: 14px;
283
-							white-space: nowrap;
284
-							overflow: hidden;
285
-							text-overflow: ellipsis;
286
-						}
287
-						.file_icon{
288
-							height: 68px;
289
-							line-height: 68px;
290
-							font-size: 68px;
291
-							color: #409EFF;
292
-						}
293
-					}
294
-					.order_file:hover .img_mask {
295
-						display: block;
296
-					}
297
-				}
298
-			}
299
-		}
300
-		.green {
301
-			color: #00c1de;
302
-		}
303
-		.done {
304
-			color: #198120;
305
-		}
306
-		.red {
307
-			color: #d81e06;
308
-		}
309
-		.yellow{
310
-			color: #e6a23c;
311
-		}
312
-		.order_steps{
313
-			// height: 240px;
314
-			.el-step__icon-inner{
315
-				display: none;
316
-			}
317
-		}
318
-
319
-		.tab_body{
320
-			padding: 0 20px 20px 20px;
321
-		}
322
-	}
323
-</style>

+ 0 - 261
CallCenterWeb.UI/src/views/memberManagement/memberBasicSetting/index.vue

@@ -1,261 +0,0 @@
1
-<template>
2
-  <div class="app-container">
3
-    <div class="filter-container">
4
-      <el-cascader
5
-        v-model="provinceCity"
6
-        :options="provinceCityDatas"
7
-        :props="props"
8
-        placeholder="请选择省市"
9
-        class="filter-item"
10
-        clearable
11
-        filterable
12
-        change-on-select/>
13
-      <el-select v-model="sc_source" class="filter-item" filterable clearable placeholder="请选择工单来源">
14
-        <el-option
15
-          v-for="item in sourceOptions"
16
-          :key="item.id"
17
-          :label="item.name"
18
-          :value="item.id"/>
19
-      </el-select>
20
-      <el-select v-model="sc_type" class="filter-item" filterable clearable placeholder="请选择工单类型">
21
-        <el-option
22
-          v-for="item in typeOptions"
23
-          :key="item.id"
24
-          :label="item.name"
25
-          :value="item.id"/>
26
-      </el-select>
27
-      <el-date-picker
28
-        v-model="searchDate"
29
-        :picker-options="pickerOptions"
30
-        class="filter-item"
31
-        type="daterange"
32
-        format="yyyy年MM月dd日"
33
-        value-format="yyyy-MM-dd"
34
-        align="left"
35
-        unlink-panels
36
-        range-separator="至"
37
-        start-placeholder="开始日期"
38
-        end-placeholder="结束日期"/>
39
-      <el-input v-model="sc_tel" placeholder="请输入电话号码" class="filter-item"/>
40
-      <el-input v-model="sc_ordercode" placeholder="请输入工单编号" class="filter-item"/>
41
-      <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
42
-      <el-button v-permission="'HY_add'" type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
43
-    </div>
44
-
45
-    <el-table v-loading="loading" :data="dataLists" border stripe>
46
-      <el-table-column type="index" label="编号" align="center" fixed width="80"/>
47
-      <el-table-column prop="ordercode" label="工单编号" align="center" min-width="140"/>
48
-      <el-table-column prop="sourcename" label="工单来源" align="center" min-width=""/>
49
-      <el-table-column prop="typename" label="工单类型" align="center" min-width=""/>
50
-      <el-table-column prop="provincename" label="所在省" align="center"/>
51
-      <el-table-column prop="cityname" label="所在市" align="center"/>
52
-      <el-table-column prop="address" label="具体地址" align="center"/>
53
-      <el-table-column label="工单内容" align="center">
54
-        <template slot-scope="scope">
55
-          {{ scope.row.content | formatterContent }}
56
-        </template>
57
-      </el-table-column>
58
-      <el-table-column prop="name" label="姓名" align="center"/>
59
-      <el-table-column prop="phone" label="电话" align="center"/>
60
-      <el-table-column prop="sex" label="性别" align="center"/>
61
-      <el-table-column prop="createuser" label="创建人" align="center"/>
62
-      <el-table-column prop="createtime" label="创建时间" align="center" min-width="120"/>
63
-      <el-table-column label="操作" width="220" align="center" class-name="oparate_btn" fixed="right">
64
-        <template slot-scope="scope">
65
-          <el-button v-permission="'HY_detail'" size="mini" plain type="primary" @click="btn_detail(scope.row.ordercode)">详情</el-button>
66
-          <el-button v-permission="'HY_edit'" size="mini" plain type="primary" @click="btn_edit(scope.row.ordercode)">编辑</el-button>
67
-          <el-button v-permission="'HY_delete'" size="mini" plain type="danger" @click="btn_delete(scope.row.id)">删除</el-button>
68
-        </template>
69
-      </el-table-column>
70
-    </el-table>
71
-    <pagination
72
-      v-show="pageParams.total > 0"
73
-      :total="pageParams.total"
74
-      :pageindex.sync="pageParams.pageindex"
75
-      :pagesize.sync="pageParams.pagesize"
76
-      class="pagination"
77
-      @pagination="getList" />
78
-
79
-  </div>
80
-</template>
81
-
82
-<script>
83
-
84
-import { getProviceCity, getDictionary } from '@/api/commonAPI'
85
-import { getOrderLists, deleteOrder } from '@/api/order/orderSearch'
86
-import addOrEdit from './addOrEdit'
87
-import detail from './detail'
88
-import { pickerOptions, formatterContent } from '@/utils'
89
-import Pagination from '@/components/Pagination' // 对el-pagination 二次封装
90
-
91
-export default {
92
-  name: 'memberBasicSetting',
93
-  components: {
94
-    Pagination
95
-  },
96
-  filters: {
97
-    OrderTextFilter(status) {
98
-      const statusMap = {
99
-        0: '暂时',
100
-        1: '永久',
101
-        2: '已取消'
102
-      }
103
-      return statusMap[status]
104
-    }
105
-  },
106
-  data() {
107
-    return {
108
-      loading: false,
109
-      provinceCity: [], // 省市下拉绑定的值
110
-      provinceCityDatas: [], // 省市下拉数据
111
-      props: {// 自定义省市下拉数据的key值
112
-        value: 'code',
113
-        label: 'name',
114
-        children: 'entityJson'
115
-      },
116
-      sc_source: '', // 工单来源
117
-      sourceOptions: [], // 工单来源下拉数据
118
-      sc_type: '', // 工单类型
119
-      typeOptions: [], // 工单类型下拉数据
120
-      searchDate: '', // 日期
121
-      pickerOptions, // 日期数据
122
-      sc_tel: '', // 电话号码
123
-      sc_ordercode: '', // 工单编号
124
-      pageParams: {
125
-        pageindex: 1, // 当前第几页
126
-        pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
127
-        total: 0 // 总共多少数据
128
-      },
129
-      dataLists: [] // 列表数据
130
-    }
131
-  },
132
-  created() {
133
-    this.getProCity()
134
-    this.getOrderSource()
135
-    this.getOrderType()
136
-    this.getList()
137
-    document.onkeyup = (e) => {
138
-      if (e.keyCode === 13) {
139
-        this.getList()
140
-      }
141
-    }
142
-  },
143
-  methods: {
144
-    getList() {
145
-      this.loading = true
146
-      return new Promise(resolve => {
147
-        const params = {
148
-          pageindex: this.pageParams.pageindex, // int 第几页
149
-          pagesize: this.pageParams.pagesize, // int 每页几条信息
150
-          stime: this.searchDate && this.searchDate[0], // 开始时间
151
-          etime: this.searchDate && this.searchDate[1], // 结束时间
152
-          ordercode: this.sc_ordercode.replace(/\s+/g, ""), //	否	string	模糊查询(工单编号)
153
-          phone: this.sc_tel.replace(/\s+/g, ""), //	否	string	模糊查询(号码)
154
-          province: this.provinceCity && this.provinceCity[0], //	否	string	省code
155
-          city: this.provinceCity && this.provinceCity[1], //	否	string	市code
156
-          sourceid: this.sc_source, //	否	string	来源id
157
-          typeid: this.sc_type //	否	string	类型id
158
-        }
159
-        getOrderLists(params).then(response => {
160
-          this.loading = false
161
-          if (response.state.toLowerCase() === 'success') {
162
-            this.pageParams.total = response.data.total
163
-            this.dataLists = response.data.rows
164
-          }
165
-        })
166
-        resolve()
167
-      })
168
-    },
169
-    btn_search() {
170
-      this.pageParams.pageindex = 1
171
-      this.getList()
172
-    },
173
-    btn_add() {
174
-      this.$layer.iframe({
175
-        content: {
176
-          content: addOrEdit, // 传递的组件对象
177
-          parent: this, // 当前的vue对象
178
-          data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
179
-        },
180
-        area: ['80%', '90%'],
181
-        title: '添加工单'
182
-      })
183
-    },
184
-    btn_edit(editId) {
185
-      this.$layer.iframe({
186
-        content: {
187
-          content: addOrEdit, // 传递的组件对象
188
-          parent: this, // 当前的vue对象
189
-          data: { 'rowid': editId }// props
190
-        },
191
-        area: ['80%', '90%'],
192
-        title: '编辑工单'
193
-      })
194
-    },
195
-    btn_detail(editId) {
196
-      this.$layer.iframe({
197
-        content: {
198
-          content: detail, // 传递的组件对象
199
-          parent: this, // 当前的vue对象
200
-          data: { 'rowid': editId }// props
201
-        },
202
-        area: ['80%', '90%'],
203
-        title: '工单详情'
204
-      })
205
-    },
206
-    btn_delete(editId) {
207
-      this.$confirm('您确定要将此工单删除吗?', '提示', {
208
-        confirmButtonText: '确定',
209
-        cancelButtonText: '取消',
210
-        type: 'warning'
211
-      }).then(() => {
212
-        deleteOrder(editId).then(response => {
213
-          if (response.state.toLowerCase() === 'success') {
214
-            this.getList()
215
-            this.$message.success('删除成功!')
216
-          }
217
-        })
218
-      }).catch(() => {
219
-        this.$message.info('已取消删除')
220
-      })
221
-    },
222
-    // 获取省市下拉数据
223
-    getProCity() {
224
-      return new Promise(resolve => {
225
-        getProviceCity().then(response => {
226
-          if (response.state.toLowerCase() === 'success') {
227
-            this.provinceCityDatas = response.data
228
-          }
229
-        })
230
-        resolve()
231
-      })
232
-    },
233
-    // 获取工单来源
234
-    getOrderSource() {
235
-      return new Promise(resolve => {
236
-        getDictionary('GDLY').then(response => {
237
-          if (response.state.toLowerCase() === 'success') {
238
-            this.sourceOptions = response.data
239
-          }
240
-        })
241
-        resolve()
242
-      })
243
-    },
244
-    // 获取工单类型
245
-    getOrderType() {
246
-      return new Promise(resolve => {
247
-        getDictionary('GDLX').then(response => {
248
-          if (response.state.toLowerCase() === 'success') {
249
-            this.typeOptions = response.data
250
-          }
251
-        })
252
-        resolve()
253
-      })
254
-    }
255
-  }
256
-}
257
-</script>
258
-
259
-<style rel="stylesheet/scss" lang="scss" scoped>
260
-
261
-</style>

+ 138 - 12
CallCenterWeb.UI/src/views/memberManagement/memberList/components/addOrEdit.vue

@@ -1,11 +1,125 @@
1 1
 <template>
2 2
   <div v-loading="loading">
3 3
     <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="150px" class="order_form">
4
-      <el-form-item label="商户名称" prop="businessName">
5
-        <el-input v-model="ruleForm.businessName" placeholder="请输入商户名称"/>
4
+      <el-form-item label="客户姓名" prop="customerName">
5
+        <el-input v-model="ruleForm.customerName" placeholder="请输入商户名称"/>
6 6
       </el-form-item>
7
-      <el-form-item label="会员卡标题" prop="memberCardTitle">
8
-        <el-input v-model="ruleForm.memberCardTitle" placeholder="请输入会员卡标题"/>
7
+      <el-form-item label="客户性别" prop="customerGender">
8
+        <el-radio v-model="ruleForm.customerGender" label="1">男</el-radio>
9
+        <el-radio v-model="ruleForm.customerGender" label="2">女</el-radio>
10
+      </el-form-item>
11
+      <el-form-item label="客户年龄" prop="customerAge">
12
+        <el-input v-model="ruleForm.customerAge" placeholder="请输入客户年龄"/>
13
+      </el-form-item>
14
+      <el-form-item label="手机号码1" prop="phoneNumber1">
15
+        <el-input v-model="ruleForm.phoneNumber1" placeholder="请输入手机号码1"/>
16
+      </el-form-item>
17
+      <el-form-item label="手机号码2" prop="phoneNumber2">
18
+        <el-input v-model="ruleForm.phoneNumber2" placeholder="请输入手机号码2"/>
19
+      </el-form-item>
20
+      <el-form-item label="固定电话" prop="fixedTelephone">
21
+        <el-input v-model="ruleForm.fixedTelephone" placeholder="请输入固定电话"/>
22
+      </el-form-item>
23
+      <el-form-item label="会员类型" prop="memberType">
24
+        <el-select v-model="ruleForm.memberType" placeholder="请选择会员类型">
25
+          <!-- <el-option
26
+            v-for="item in options"
27
+            :key="item.value"
28
+            :label="item.label"
29
+            :value="item.value">
30
+          </el-option> -->
31
+          <el-option
32
+            label="会员类型1"
33
+            value="1">
34
+          </el-option>
35
+          <el-option
36
+            label="会员类型2"
37
+            value="2">
38
+          </el-option>
39
+        </el-select>
40
+      </el-form-item>
41
+      <el-form-item label="省">
42
+        <el-col :span="4">
43
+          <el-select v-model="ruleForm.province" placeholder="请选择省">
44
+            <el-option
45
+              label="省1"
46
+              value="1">
47
+            </el-option>
48
+            <el-option
49
+              label="省2"
50
+              value="2">
51
+            </el-option>
52
+          </el-select>          
53
+        </el-col>
54
+        <el-col :span="2">
55
+          市
56
+        </el-col>
57
+        <el-col :span="4">
58
+          <el-select v-model="ruleForm.city" placeholder="请选择市">
59
+            <el-option
60
+              label="城市1"
61
+              value="1">
62
+            </el-option>
63
+            <el-option
64
+              label="城市2"
65
+              value="2">
66
+            </el-option>
67
+          </el-select>          
68
+        </el-col>
69
+        <el-col :span="2">
70
+          县/区
71
+        </el-col>
72
+        <el-col :span="4">
73
+          <el-select v-model="ruleForm.county" placeholder="请选择县/区">
74
+            <el-option
75
+              label="县"
76
+              value="1">
77
+            </el-option>
78
+            <el-option
79
+              label="区"
80
+              value="2">
81
+            </el-option>
82
+          </el-select>          
83
+        </el-col>
84
+        <el-col :span="2">
85
+          乡镇
86
+        </el-col>
87
+        <el-col :span="4">
88
+          <el-select v-model="ruleForm.township" placeholder="请选择乡镇">
89
+            <el-option
90
+              label="乡镇1"
91
+              value="1">
92
+            </el-option>
93
+            <el-option
94
+              label="乡镇2"
95
+              value="2">
96
+            </el-option>
97
+          </el-select>          
98
+        </el-col>
99
+      </el-form-item>
100
+      <el-form-item label="详细地址" prop="address">
101
+        <el-input v-model="ruleForm.address" placeholder="请输入详细地址"/>
102
+      </el-form-item>
103
+      <el-form-item label="邮编" prop="Postcode">
104
+        <el-input v-model="ruleForm.Postcode" placeholder="请输入邮编"/>
105
+      </el-form-item>
106
+      <el-form-item label="鞋码" prop="shoeSize">
107
+        <el-input v-model="ruleForm.shoeSize" placeholder="请输入鞋码"/>
108
+      </el-form-item>
109
+      <el-form-item label="会员日期" prop="memberDate">
110
+        <el-input v-model="ruleForm.memberDate" placeholder="请输入会员日期"/>
111
+      </el-form-item>
112
+      <el-form-item label="会员积分" prop="memberPoints">
113
+        <el-input v-model="ruleForm.memberPoints" placeholder="请输入会员积分"/>
114
+      </el-form-item>
115
+      <el-form-item label="推荐人" prop="referrer">
116
+        <el-input v-model="ruleForm.referrer" placeholder="请输入推荐人"/>
117
+      </el-form-item>
118
+      <el-form-item label="累计消费金额" prop="cumulativeConsumptionAmount">
119
+        <el-input v-model="ruleForm.cumulativeConsumptionAmount" placeholder="请输入累计消费金额"/>
120
+      </el-form-item>
121
+      <el-form-item label="累计积分" prop="accumulatedPoints">
122
+       <el-input v-model="ruleForm.accumulatedPoints" placeholder="请输入累计积分"/>
9 123
       </el-form-item>
10 124
       <el-form-item>
11 125
         <el-button type="primary" @click="submitForm">保存</el-button>
@@ -48,20 +162,32 @@ export default {
48 162
       ruleForm: {
49 163
         unique_id: '', //		否	string	callid
50 164
         ordercode: '',
51
-        businessName: '',
52
-        memberCardTitle: '',
165
+        customerName: '', //客户姓名
166
+        customerGender: '1', //客户性别
167
+        customerAge: '', //客户年龄
168
+        phoneNumber1: '', //手机号码1
169
+        phoneNumber2: '', //手机号码2
170
+        fixedTelephone: '', //固定电话
171
+        memberType: '', //会员类型
172
+        province: '', //省
173
+        city: '', //市
174
+        county: '', //县/区
175
+        township: '', //乡镇
176
+        address: '', //详细地址
177
+        Postcode: '', //邮编
178
+        shoeSize: '', //鞋码
179
+        memberDate: '', //会员日期
180
+        memberPoints: '', //会员积分
181
+        referrer: '', //推荐人
182
+        cumulativeConsumptionAmount: '', //累计消费金额
183
+        accumulatedPoints: '', //累计积分
53 184
       },
54 185
       rules: {
55
-        businessName: [{
186
+        customerName: [{
56 187
           required: true,
57 188
           trigger: 'blur',
58 189
           message: '请输入商户名称',
59 190
         }],
60
-        memberCardTitle: [{
61
-          required: true,
62
-          trigger: 'blur',
63
-          message: '请输入会员卡标题',
64
-        }]
65 191
       },
66 192
       loading: false
67 193
     }

+ 8 - 41
CallCenterWeb.UI/src/views/memberManagement/memberList/components/searchFilter.vue

@@ -20,6 +20,8 @@
20 20
       <el-button v-permission="'HY_member_level'" type="primary" class="filter-item" @click="btn_member_level">会员等级</el-button>
21 21
       <el-button type="primary" class="filter-item" @click="btn_import"><svg-icon icon-class="daoru" />导入</el-button>
22 22
       <el-button type="primary" class="filter-item" @click="btn_export">导出</el-button>
23
+      <el-button type="primary" class="filter-item" @click="btn_export">档案合并</el-button>
24
+      <el-button type="primary" class="filter-item" @click="btn_export">档案拆分</el-button>
23 25
     </div>
24 26
 </template>
25 27
 
@@ -33,7 +35,6 @@ import sendGroupMessage from './sendGroupMessage'
33 35
 import memberExtension from './memberExtension'
34 36
 import memberLevel from './memberLevel'
35 37
 
36
-
37 38
 export default {
38 39
   name: 'SearchFilter',
39 40
   props: {
@@ -56,16 +57,6 @@ export default {
56 57
         }
57 58
       }
58 59
     },
59
-    // 是否显示 添加
60
-    showadd: { 
61
-      type: Boolean,
62
-      default: false
63
-    },
64
-    // 是否显示 批量删除
65
-    showdeletes: {
66
-      type: Boolean,
67
-      default: true
68
-    }
69 60
   },
70 61
   data() {
71 62
     return {
@@ -83,8 +74,6 @@ export default {
83 74
   },
84 75
   created() {
85 76
     this.getProCity()
86
-    this.getOrderType()
87
-    this.getDeptData()// 获取咨询/投诉部门
88 77
   },
89 78
   methods: {
90 79
     btn_search() {
@@ -118,7 +107,7 @@ export default {
118 107
         title: '打标签'
119 108
       })
120 109
     },
121
-        btn_coupon() {
110
+    btn_coupon() {
122 111
       this.$layer.iframe({
123 112
         content: {
124 113
           content: freeCoupons, // 传递的组件对象
@@ -163,15 +152,15 @@ export default {
163 152
       })
164 153
     },
165 154
     btn_import() {
166
-      if (!this.planId) {
167
-        this.$message.warning('请先选择一行!')
168
-        return
169
-      }
155
+      // if (!this.planId) {
156
+      //   this.$message.warning('请先选择一行!')
157
+      //   return
158
+      // }
170 159
       this.$layer.iframe({
171 160
         content: {
172 161
           content: importTels, // 传递的组件对象
173 162
           parent: this, // 当前的vue对象
174
-          data: { 'rowid': this.planId }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
163
+          data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
175 164
         },
176 165
         area: ['40%', '380px'],
177 166
         shadeClose: false,
@@ -189,28 +178,6 @@ export default {
189 178
         resolve()
190 179
       })
191 180
     },
192
-    // 获取工单类型
193
-    getOrderType() {
194
-      return new Promise(resolve => {
195
-        getDictionary('HYGDLX').then(response => {
196
-          if (response.state.toLowerCase() === 'success') {
197
-            this.typeOptions = response.data
198
-          }
199
-        })
200
-        resolve()
201
-      })
202
-    },
203
-    // 获取咨询/投诉部门
204
-    getDeptData() {
205
-      return new Promise(resolve => {
206
-        getDictionary('HYZXBM').then(response => {
207
-          if (response.state.toLowerCase() === 'success') {
208
-            this.deptOptions = response.data
209
-          }
210
-        })
211
-        resolve()
212
-      })
213
-    }
214 181
   }
215 182
 }
216 183
 </script>

+ 23 - 3
CallCenterWeb.UI/src/views/memberManagement/memberList/index.vue

@@ -7,7 +7,12 @@
7 7
       @delorders="btn_search"
8 8
       @export="btn_search">
9 9
     </search-filter>
10
-    <el-table v-loading="loading" :data="dataLists" border stripe>
10
+    <el-table 
11
+      v-loading="loading" 
12
+      :data="dataLists" 
13
+      border
14
+      stripe
15
+      @select="handleTableClick">
11 16
       <el-table-column 
12 17
         type="selection"
13 18
         width="40">
@@ -165,7 +170,7 @@
165 170
 
166 171
 <script>
167 172
 
168
-import { getOrderLists, deleteOrder } from '@/api/order/orderSearch'
173
+import { getOrderLists, deleteOrder } from '@/api/memberManagement/memberList'
169 174
 import searchFilter from './components/searchFilter'
170 175
 import addOrEdit from './components/addOrEdit'
171 176
 import detail from './components/detail'
@@ -204,7 +209,8 @@ export default {
204 209
         pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
205 210
         total: 0 // 总共多少数据
206 211
       },
207
-      dataLists: [] // 列表数据
212
+      dataLists: [],// 列表数据
213
+      selectTableId: '', //选中行id
208 214
     }
209 215
   },
210 216
   created() {
@@ -222,6 +228,17 @@ export default {
222 228
         const params = {
223 229
           pageindex: this.pageParams.pageindex, // int 第几页
224 230
           pagesize: this.pageParams.pagesize, // int 每页几条信息
231
+          customerName: this.searchDatas.customerName, //客户姓名
232
+          phoneNumber: this.searchDatas.phoneNumber, //手机号码
233
+          memberType: this.searchDatas.memberType, //会员类型
234
+          province: this.searchDatas.province, //省份
235
+          city: this.searchDatas.city, //市
236
+          county: this.searchDatas.county, //县区
237
+          township: this.searchDatas.township, //乡镇
238
+          address: this.searchDatas.address, //详细地址
239
+          memberBirthday: this.searchDatas.memberBirthday, //会员生日
240
+          referrer: this.searchDatas.referrer, //推荐人
241
+          contactFrequency: this.searchDatas.contactFrequency, //联系频次
225 242
         }
226 243
         getOrderLists(params).then(response => {
227 244
           this.loading = false
@@ -275,6 +292,9 @@ export default {
275 292
         this.$message.info('已取消删除')
276 293
       })
277 294
     },
295
+    handleTableClick(selection, row) {
296
+      this.selectTableId = selection
297
+    }
278 298
   }
279 299
 }
280 300
 </script>