Browse Source

来电弹屏、号码中转池

liuyifan 5 years ago
parent
commit
2cef422352

+ 2 - 2
CallCenterWeb.UI/src/api/telCall/numberTransferPool.js

@@ -21,7 +21,7 @@ export function addNumberTransferPoolList (params) {
21 21
 // 修改号码中转池列表
22 22
 export function editNumberTransferPoolList (params) {
23 23
   return request({
24
-    url: 'api/Distribution/add',
24
+    url: 'api/Distribution/update',
25 25
     method: 'post',
26 26
     params
27 27
   })
@@ -39,7 +39,7 @@ export function deleteNumberTransferPoolList (params) {
39 39
 // 分配号码中转池
40 40
 export function distributionNumberTransferPoolList (params) {
41 41
   return request({
42
-    url: 'api/Distribution/delete',
42
+    url: 'api/Distribution/distribution',
43 43
     method: 'post',
44 44
     params
45 45
   })

+ 44 - 28
CallCenterWeb.UI/src/views/afterSaleManagement/afterSaleOrderList/addOrEditRemark.vue

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div>
3
-    <el-form ref="ruleForm" :model="ruleForm" label-width="80px">
4
-      <el-form-item label="是否可见">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="80px">
4
+      <el-form-item label="是否可见" prop="F_IsSo">
5 5
         <el-select v-model="ruleForm.F_IsSo" class="form_select" filterable clearable placeholder="是否可见" >
6 6
           <el-option label="否" value="0"></el-option>
7 7
           <el-option label="是" value="1"></el-option>
@@ -42,6 +42,15 @@ export default {
42 42
         F_Content: '', // 备注内容
43 43
         F_State: 0,
44 44
       },
45
+      rules: {
46
+        F_IsSo: [
47
+          {
48
+            required: true,
49
+            trigger: 'change',
50
+            message: '请选择是否可见'
51
+          }
52
+        ],
53
+      }
45 54
     };
46 55
   },
47 56
   created() {
@@ -54,33 +63,40 @@ export default {
54 63
   },
55 64
   methods: {
56 65
     submitForm() {
57
-      //添加
58
-      if (!this.ruleForm.F_ID) {
59
-        addAfterSaleListChatLog(this.ruleForm)
60
-          .then((response) => {
61
-            if (response.state.toLowerCase() === "success") {
62
-              this.$parent.$layer.close(this.layerid);
63
-              this.$parent.getList(); // 重新加载父级数据
64
-              this.$message.success("添加成功!");
65
-            }
66
-          })
67
-          .catch(() => {
68
-            this.loading = false;
69
-          });
70
-        return
71
-      }
72
-      //编辑
73
-      editAfterSaleListChatLog(this.ruleForm)
74
-        .then((response) => {
75
-          if (response.state.toLowerCase() === "success") {
76
-            this.$parent.$layer.close(this.layerid);
77
-            this.$parent.getDetail(this.ruleForm.F_WoID); // 重新加载父级数据
78
-            this.$message.success("编辑成功!");
66
+      this.$refs.ruleForm.validate(valid => {
67
+        if (valid) {
68
+          //添加
69
+          if (!this.ruleForm.F_ID) {
70
+            addAfterSaleListChatLog(this.ruleForm)
71
+              .then((response) => {
72
+                if (response.state.toLowerCase() === "success") {
73
+                  this.$parent.$layer.close(this.layerid);
74
+                  this.$parent.getList(); // 重新加载父级数据
75
+                  this.$message.success("添加成功!");
76
+                }
77
+              })
78
+              .catch(() => {
79
+                this.loading = false;
80
+              });
81
+            return
79 82
           }
80
-        })
81
-        .catch(() => {
82
-          this.loading = false;
83
-        });
83
+          //编辑
84
+          editAfterSaleListChatLog(this.ruleForm)
85
+            .then((response) => {
86
+              if (response.state.toLowerCase() === "success") {
87
+                this.$parent.$layer.close(this.layerid);
88
+                this.$parent.getDetail(this.ruleForm.F_WoID); // 重新加载父级数据
89
+                this.$message.success("编辑成功!");
90
+              }
91
+            })
92
+            .catch(() => {
93
+              this.loading = false;
94
+            });
95
+        } else {
96
+          this.$message.error('请输入有效的必填项信息!')
97
+          return false
98
+        }
99
+      })
84 100
     },
85 101
   },
86 102
 };

+ 38 - 4
CallCenterWeb.UI/src/views/callScreen/components/AddOrEditCustomer.vue

@@ -132,6 +132,23 @@
132 132
           </el-form-item>
133 133
         </el-col>
134 134
         <el-col :xl="6" :md="8">
135
+          <el-form-item label="会员分类" prop="F_Class">
136
+            <el-select
137
+              v-model="ruleForm.F_Class"
138
+              clearable
139
+              placeholder="请选择会员分类"
140
+              class="form_select"
141
+            >
142
+              <el-option
143
+                v-for="item in memberClass"
144
+                :key="item.F_ID"
145
+                :label="item.F_Name"
146
+                :value="item.F_Name"
147
+              ></el-option>
148
+            </el-select>
149
+          </el-form-item>
150
+        </el-col>
151
+        <el-col :xl="6" :md="8">
135 152
           <el-form-item label="会员生日" prop="F_Birthday">
136 153
             <el-date-picker
137 154
               value-format="yyyy-MM-dd"
@@ -264,6 +281,7 @@ export default {
264 281
       vipid: 0,
265 282
       sourceOptions: [], // 工单来源下拉数据
266 283
       memberType: [], // 会员类型下拉数据
284
+      memberClass: [], // 会员分类数据
267 285
       recommendList: [], // 会员列表数据
268 286
       recommendListOptions: [], // 会员列表数据
269 287
       placeholderArea: '', // 地区默认值
@@ -305,6 +323,7 @@ export default {
305 323
         F_Mobile1: "", //手机号码1
306 324
         F_Phone: "", //固定电话
307 325
         F_Type: "", //会员类型
326
+        F_Class: "", //会员分类
308 327
         // province: "", //省
309 328
         // city: "", //市
310 329
         // county: "", //县/区
@@ -365,7 +384,7 @@ export default {
365 384
     console.log(this.callinNum + '====' + this.vipid)
366 385
     Promise.all([]).then(() => {
367 386
       this.getType();
368
-
387
+      this.getClass();
369 388
       if (this.callinNum) {
370 389
         this.ruleForm.F_Phone = this.callinNum
371 390
         this.getDetail(this.callinNum);
@@ -400,6 +419,7 @@ export default {
400 419
               sex: this.ruleForm.F_Sex, //性别
401 420
               age: this.ruleForm.F_Age, //年龄
402 421
               label: this.ruleForm.F_Type, //会员类型
422
+              F_Class: this.ruleForm.F_Class, //会员分类
403 423
               address: this.ruleForm.F_Address, // 详细地址
404 424
               address1: this.ruleForm.F_Address1, // 备用地址1
405 425
               address2: this.ruleForm.F_Address2, // 备用地址2
@@ -524,14 +544,13 @@ export default {
524 544
             this.ruleForm = response.rows.Rows[0];
525 545
             response.data = response.rows.Rows[0];
526 546
             this.ruleForm.id = response.rows.Rows[0].F_ID;
527
-            this.ruleForm.F_Type = response.rows.Rows[0].F_Label
547
+            this.ruleForm.F_Class = response.rows.Rows[0].F_Label
528 548
             if (response.data.F_Province && response.data.F_City) {
529 549
               this.placeholderArea = response.data.F_Province + '/'
530 550
             } else {
531 551
               if (response.data.F_Province) {
532 552
                 this.placeholderArea = '请选择地区'
533 553
               }
534
-
535 554
             }
536 555
             if (response.data.F_City && response.data.F_Area) {
537 556
               this.placeholderArea += response.data.F_City + '/'
@@ -548,7 +567,7 @@ export default {
548 567
             }
549 568
             this.provinceCityText = this.placeholderArea.split('/')
550 569
           }
551
-
570
+          this.$emit('cus-info-list', response.rows.Rows)
552 571
         }
553 572
       });
554 573
     },
@@ -590,6 +609,21 @@ export default {
590 609
         })
591 610
       })
592 611
     },
612
+    // 获取会员分类
613
+    getClass () {
614
+      return new Promise(resolve => {
615
+        const params = {
616
+          pageindex: 1,
617
+          pagesize: 100,
618
+          type: 1
619
+        }
620
+        getLabelLists(params).then(response => {
621
+          if (response.state.toLowerCase() === 'success') {
622
+            this.memberClass = response.rows.Rows
623
+          }
624
+        })
625
+      })
626
+    },
593 627
     // 获取推荐人列表
594 628
     getRecommendList() {
595 629
       this.loading = true

File diff suppressed because it is too large
+ 1021 - 627
CallCenterWeb.UI/src/views/callScreen/components/createOrder.vue


+ 16 - 8
CallCenterWeb.UI/src/views/callScreen/index.vue

@@ -84,9 +84,9 @@
84 84
             </el-col>
85 85
             <el-col :md="5" :lg="6">
86 86
               <div class="callin_btns">
87
-                <!-- <el-tooltip content="点击创建订单" placement="top">
87
+                <el-tooltip content="点击创建订单" placement="top">
88 88
                   <i class="callin_btn callinorder" v-show="orderTrue" @click="btn_orderAdd" />
89
-                </el-tooltip> -->
89
+                </el-tooltip>
90 90
                 <!-- <el-tooltip content="点击创建客户项目" placement="top">
91 91
                   <i class="callin_btn callinpro" @click="btn_customerProAdd" />
92 92
                 </el-tooltip> !dropoff && !isBlack-->
@@ -103,7 +103,6 @@
103 103
             </el-col>
104 104
           </el-row>
105 105
         </el-card>
106
-
107 106
         <!-- 客户资料 -->
108 107
         <el-card v-show="orderTrue" shadow="hover" class="customer_info">
109 108
           <h5 class="customer_title">会员资料</h5>
@@ -111,9 +110,9 @@
111 110
             :callin-num="callinNum"
112 111
             :vipid="vipid"
113 112
             @getCusProLists="getCusProList"
113
+            @cus-info-list="getCusInfosDetail"
114 114
           />
115 115
         </el-card>
116
-
117 116
         <!-- 切换列表 -->
118 117
         <el-card shadow="hover" class="records">
119 118
           <el-tabs v-model="activeName" @tab-click="handleClick">
@@ -263,7 +262,6 @@ export default {
263 262
     },
264 263
     // 获取客户信息
265 264
     getCusInfos () {
266
-      console.log(this.callinNum)
267 265
       getCusUser(this.callinNum).then(response => {
268 266
         if (response.state.toLowerCase() === 'success') {
269 267
           const res = response.rows.Rows[0]
@@ -276,16 +274,26 @@ export default {
276 274
         }
277 275
       })
278 276
     },
277
+    getCusInfosDetail (data) {
278
+      this.vipid = data.F_ID
279
+    },
279 280
     // 添加工单
280 281
     btn_orderAdd () {
282
+      if (this.vipid == 0) {
283
+        this.$message({
284
+          message: '请先添加会员信息!',
285
+          type: 'error'
286
+        })
287
+        return
288
+      }
281 289
       this.$layer.iframe({
282 290
         content: {
283 291
           content: addOrder, // 传递的组件对象
284 292
           parent: this, // 当前的vue对象
285 293
           data: {
286
-            rowid: '',
287
-            callid: this.callinCallid,
288
-            callinNum: this.callinNum
294
+            rowid: this.vipid,
295
+            // callid: this.callinCallid,
296
+            // callinNum: this.callinNum
289 297
           } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
290 298
         },
291 299
         area: ['80%', '90%'],

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

@@ -244,22 +244,22 @@ export default {
244 244
           type: 'number',
245 245
           message: '市场价格必须为数字'
246 246
         }],
247
-        MemberPrice: [{
248
-          required: true,
249
-          trigger: 'blur',
250
-          message: '请输入会员价格',
251
-        },{
252
-          type: 'number',
253
-          message: '会员价格必须为数字'
254
-        }],
255
-        SpecialPrice: [{
256
-          required: true,
257
-          trigger: 'blur',
258
-          message: '请输入特惠价格',
259
-        },{
260
-          type: 'number',
261
-          message: '特惠价格必须为数字'
262
-        }],
247
+        // MemberPrice: [{
248
+        //   required: true,
249
+        //   trigger: 'blur',
250
+        //   message: '请输入会员价格',
251
+        // },{
252
+        //   type: 'number',
253
+        //   message: '会员价格必须为数字'
254
+        // }],
255
+        // SpecialPrice: [{
256
+        //   required: true,
257
+        //   trigger: 'blur',
258
+        //   message: '请输入特惠价格',
259
+        // },{
260
+        //   type: 'number',
261
+        //   message: '特惠价格必须为数字'
262
+        // }],
263 263
         PinyinShort: [{
264 264
           required: true,
265 265
           trigger: 'blur',

+ 168 - 0
CallCenterWeb.UI/src/views/memberManagement/memberClassification/addOrEdit.vue

@@ -0,0 +1,168 @@
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="预览结果">
5
+        <el-tag :color=ruleForm.labelColor :style="{'color':ruleForm.fontSizeColor}">{{ruleForm.labelName}}</el-tag>
6
+      </el-form-item>
7
+      <el-form-item label="分类名称" prop="labelName">
8
+        <el-input v-model="ruleForm.labelName" placeholder="请输入分类名称"></el-input>
9
+      </el-form-item>
10
+      <el-form-item label="备注" prop="labelDescription">
11
+        <el-input v-model="ruleForm.labelDescription" placeholder="请输入备注"></el-input>
12
+      </el-form-item>
13
+      <el-form-item label="分类颜色" prop="labelColor">
14
+        <el-color-picker v-model="ruleForm.labelColor" @change='handleColor'></el-color-picker>
15
+      </el-form-item>
16
+      <el-form-item label="分类字体颜色" prop="fontSizeColor">
17
+        <el-color-picker v-model="ruleForm.fontSizeColor" @change='handleFontSizeColor'></el-color-picker>
18
+      </el-form-item>
19
+      <el-form-item>
20
+        <el-button type="primary" @click="submitForm">保存</el-button>
21
+        <el-button @click="resetForm">重置</el-button>
22
+      </el-form-item>
23
+    </el-form>
24
+  </div>
25
+</template>
26
+
27
+<script>
28
+import { getProviceCity, getDictionary } from '@/api/commonAPI'
29
+import { addLable , editLable,getLableDetail} from '@/api/memberManagement/memberList'
30
+import { validateTel } from '@/utils/validate'
31
+import { filterContent } from '@/utils'
32
+
33
+export default {
34
+  name: 'AddOrEdit',
35
+  props: {
36
+    rowid: {
37
+      type: String,
38
+      default: ''
39
+    },
40
+    callid: {
41
+      type: Number,
42
+      default: 0
43
+    },
44
+    layerid: {
45
+      type: String,
46
+      default: ''
47
+    }
48
+  },
49
+  data() {
50
+    return {
51
+      props: { // 自定义省市下拉数据的key值
52
+        value: 'code',
53
+        label: 'name',
54
+        children: 'entityJson'
55
+      },
56
+      sourceOptions: [], // 工单来源下拉数据
57
+      ruleForm: {
58
+        unique_id: '', //		否	string	callid
59
+        id: '',
60
+        fontSizeColor: '',//分类字体颜色
61
+        labelName: '',//分类名称
62
+        labelColor: '#fff',//分类颜色
63
+        labelDescription: '',//分类描述
64
+        type: 1, // 0-标签 1-分类
65
+      },
66
+      rules: {
67
+        labelName: [{
68
+          required: true,
69
+          trigger: 'blur',
70
+          message: '请输入分类名称',
71
+        }]
72
+      },
73
+      loading: false
74
+    }
75
+  },
76
+  created() {
77
+    if (this.callid) {
78
+      this.ruleForm.unique_id = this.callid
79
+    }
80
+    Promise.all([])
81
+      .then(() => {
82
+        if (this.rowid) {
83
+          this.ruleForm.id = this.rowid
84
+          this.getDetail(this.rowid)
85
+        }
86
+      })
87
+  },
88
+  methods: {
89
+    submitForm() {
90
+      this.$refs.ruleForm.validate((valid) => {
91
+        if (valid) {
92
+          this.ruleForm.content = filterContent.delHtmlTag(this.ruleForm.content)// 保存内容时去掉 html 分类
93
+          this.loading = true
94
+          return new Promise(response=>{
95
+            const params={
96
+              id:this.rowid ? this.rowid : '',//修改id值
97
+              state:1,
98
+              name:this.ruleForm.labelName,//分类名称
99
+              labelcolor:this.ruleForm.labelColor,//分类颜色
100
+              note:this.ruleForm.labelDescription,//分类描述
101
+              fontcolor:this.ruleForm.fontSizeColor,//分类字体颜色
102
+              type: this.ruleForm.type, // 0-标签 1-分类
103
+            }
104
+              // 添加
105
+            if (!this.rowid) {
106
+              addLable(params).then(response => {
107
+                this.loading = false
108
+                if (response.state.toLowerCase() === 'success') {
109
+                  this.$parent.$layer.close(this.layerid)
110
+                  if (this.callid) {
111
+                    this.$parent.getOrderRecord() // 重新加载来电弹屏工单记录
112
+                  } else {
113
+                    this.$parent.getList() // 重新加载父级数据
114
+                  }
115
+                  this.$message.success('恭喜你,添加成功!')
116
+                }
117
+              }).catch(() => {
118
+                this.loading = false
119
+              })
120
+              return
121
+            }
122
+            // 编辑
123
+            editLable(params).then(response => {
124
+              this.loading = false
125
+              if (response.state.toLowerCase() === 'success') {
126
+                this.$parent.$layer.close(this.layerid)
127
+                this.$parent.getList() // 重新加载父级数据
128
+                this.$message.success('恭喜你,编辑成功!')
129
+              }
130
+            }).catch(() => {
131
+              this.loading = false
132
+            })
133
+          })
134
+        } else {
135
+          this.$message.error('请输入有效的必填项信息!')
136
+          return false
137
+        }
138
+      })
139
+    },
140
+    resetForm() {
141
+      this.$refs.ruleForm.resetFields()
142
+    },
143
+    // 详情
144
+    getDetail(rid) {
145
+      getLableDetail(rid).then(response => {
146
+        if (response.state.toLowerCase() === 'success') {
147
+          this.ruleForm.labelName = response.data.F_Name;
148
+          this.ruleForm.labelColor = response.data.F_LabelColor;
149
+          this.ruleForm.labelDescription = response.data.F_Note;
150
+          this.ruleForm.fontSizeColor = response.data.F_FontColor;
151
+        }
152
+      })
153
+    },
154
+    handleColor(val){
155
+      this.ruleForm.labelColor=val
156
+    },
157
+    handleFontSizeColor(val){
158
+      this.ruleForm.fontSizeColor=val
159
+    },
160
+  }
161
+}
162
+</script>
163
+
164
+<style rel="stylesheet/scss" lang="scss">
165
+.order_form .form_select{
166
+	width: 100%;
167
+}
168
+</style>

+ 136 - 0
CallCenterWeb.UI/src/views/memberManagement/memberClassification/index.vue

@@ -0,0 +1,136 @@
1
+<template>
2
+  <div class="app-container">
3
+    <div class="filter-container">
4
+      <el-input v-model="label_name" placeholder="请输入分类名称" class="filter-item"></el-input>
5
+      <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
6
+      <el-button type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
7
+    </div>
8
+    <el-table v-loading="loading" :data="dataLists" border stripe>
9
+      <el-table-column type="index" label="编号" align="center" fixed width=""></el-table-column>
10
+      <el-table-column label="分类名称" align="center" fixed width="">
11
+        <template slot-scope="scope">
12
+            <el-tag :color=scope.row.F_LabelColor :style="{'color':scope.row.F_FontColor}">{{scope.row.F_Name}}</el-tag>
13
+        </template>
14
+      </el-table-column>
15
+      <el-table-column prop="F_Note" label="备注" align="center">
16
+      </el-table-column>
17
+      <el-table-column label="操作" width="220" align="center" class-name="oparate_btn" fixed="right">
18
+        <template slot-scope="scope">
19
+          <el-button  type="text" @click="btn_edit(scope.row.F_ID.toString())">编辑</el-button>
20
+          <el-button  type="text" @click="btn_delete(scope.row.F_ID)">删除</el-button>
21
+        </template>
22
+      </el-table-column>
23
+    </el-table>
24
+    <pagination
25
+      v-show="pageParams.total > 0"
26
+      :total="pageParams.total"
27
+      :pageindex.sync="pageParams.pageindex"
28
+      :pagesize.sync="pageParams.pagesize"
29
+      class="pagination"
30
+      @pagination="getList" />
31
+  </div>
32
+</template>
33
+
34
+<script>
35
+
36
+import { getLabelLists,deleteLable } from '@/api/memberManagement/memberList'
37
+import addOrEdit from './addOrEdit'
38
+import { formatterContent } from '@/utils'
39
+import Pagination from '@/components/Pagination' // 对el-pagination 二次封装
40
+
41
+export default {
42
+  name: 'memberLabel',
43
+  components: {
44
+    Pagination
45
+  },
46
+  data() {
47
+    return {
48
+      loading: false,
49
+      label_name: '',//分类名
50
+      label_note: '',//分类描述
51
+      pageParams: {
52
+        pageindex: 1, // 当前第几页
53
+        pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
54
+        total: 0 // 总共多少数据
55
+      },
56
+      dataLists: [] // 列表数据
57
+    }
58
+  },
59
+  created() {
60
+    this.getList()
61
+    document.onkeyup = (e) => {
62
+      if (e.keyCode === 13) {
63
+        this.getList()
64
+      }
65
+    }
66
+  },
67
+  methods: {
68
+    getList() {
69
+      this.loading = true
70
+      return new Promise(resolve => {
71
+        const params = {
72
+          pageindex: this.pageParams.pageindex, // int 第几页
73
+          pagesize: this.pageParams.pagesize, // int 每页几条信息
74
+          keyword: this.label_name.trim(),//搜索分类名
75
+          type: 1, // 0-标签 1-分类
76
+        }
77
+        getLabelLists(params).then(response => {
78
+          this.loading = false
79
+          if (response.state.toLowerCase() === 'success') {
80
+            console.log(response)
81
+            this.pageParams.total = response.rows.Totals
82
+            this.dataLists = response.rows.Rows
83
+          }
84
+        })
85
+        resolve()
86
+      })
87
+    },
88
+    btn_search() {
89
+      this.pageParams.pageindex = 1
90
+      this.getList()
91
+    },
92
+    btn_add() {
93
+      this.$layer.iframe({
94
+        content: {
95
+          content: addOrEdit, // 传递的组件对象
96
+          parent: this, // 当前的vue对象
97
+          data: { 'rowid': '' }// props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
98
+        },
99
+        area: ['80%', '90%'],
100
+        title: '添加分类'
101
+      })
102
+    },
103
+    btn_edit(editId) {
104
+      this.$layer.iframe({
105
+        content: {
106
+          content: addOrEdit, // 传递的组件对象
107
+          parent: this, // 当前的vue对象
108
+          data: { 'rowid': editId }// props
109
+        },
110
+        area: ['80%', '90%'],
111
+        title: '编辑分类信息'
112
+      })
113
+    },
114
+    btn_delete(editId) {
115
+      this.$confirm('您确定要将此分类删除吗?', '提示', {
116
+        confirmButtonText: '确定',
117
+        cancelButtonText: '取消',
118
+        type: 'warning'
119
+      }).then(() => {
120
+        deleteLable(editId).then(response => {
121
+          if (response.state.toLowerCase() === 'success') {
122
+            this.getList()
123
+            this.$message.success('删除成功!')
124
+          }
125
+        })
126
+      }).catch(() => {
127
+        this.$message.info('已取消删除')
128
+      })
129
+    },
130
+  }
131
+}
132
+</script>
133
+
134
+<style rel="stylesheet/scss" lang="scss" scoped>
135
+
136
+</style>

+ 0 - 1
CallCenterWeb.UI/src/views/memberManagement/memberLabel/index.vue

@@ -5,7 +5,6 @@
5 5
       <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
6 6
       <el-button type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
7 7
     </div>
8
-
9 8
     <el-table v-loading="loading" :data="dataLists" border stripe>
10 9
       <el-table-column type="index" label="编号" align="center" fixed width=""></el-table-column>
11 10
       <el-table-column label="标签名称" align="center" fixed width="">

+ 29 - 0
CallCenterWeb.UI/src/views/memberManagement/memberList/components/addOrEdit.vue

@@ -57,6 +57,15 @@
57 57
             :value="item.F_Name"/>
58 58
         </el-select>
59 59
       </el-form-item>
60
+      <el-form-item label="会员分类" prop="F_Class">
61
+        <el-select v-model="ruleForm.F_Class" clearable placeholder="请选择会员分类" class="form_select">
62
+          <el-option
63
+            v-for="item in memberClass"
64
+            :key="item.F_ID"
65
+            :label="item.F_Name"
66
+            :value="item.F_Name"/>
67
+        </el-select>
68
+      </el-form-item>
60 69
       <el-form-item label="默认地区" prop="provinceCity">
61 70
         <el-cascader
62 71
           ref="myCascader"
@@ -184,6 +193,7 @@ export default {
184 193
       aa: '',
185 194
       sourceOptions: [], // 工单来源下拉数据
186 195
       memberType: [], // 会员类型下拉数据
196
+      memberClass: [], // 会员分类数据
187 197
       recommendList: [], // 会员列表数据
188 198
       recommendListOptions: [], // 会员列表数据
189 199
       provinceCityDatas: [], // 省市下拉数据
@@ -224,6 +234,7 @@ export default {
224 234
         backupMobile: '', // 备用号码
225 235
         F_Phone: '', // 主号码
226 236
         F_Type: '', // 会员类型
237
+        F_Class: '', // 会员分类
227 238
         // province: "", //省
228 239
         // city: "", //市
229 240
         // county: "", //县/区
@@ -279,6 +290,7 @@ export default {
279 290
     }
280 291
     Promise.all([]).then(() => {
281 292
       this.getType()
293
+      this.getClass()
282 294
       if (this.rowid) {
283 295
         this.ruleForm.id = this.rowid
284 296
         this.getDetail(this.rowid)
@@ -315,6 +327,7 @@ export default {
315 327
               sex: this.ruleForm.F_Sex, // 性别
316 328
               age: this.ruleForm.F_Age, // 年龄
317 329
               label: this.ruleForm.F_Type, // 会员类型
330
+              F_Class: this.ruleForm.F_Class, // 会员分类
318 331
               address: this.ruleForm.F_Address, // 详细地址
319 332
               address1: this.ruleForm.F_Address1, // 备用地址1
320 333
               address2: this.ruleForm.F_Address2, // 备用地址2
@@ -389,6 +402,7 @@ export default {
389 402
         const res = response.model
390 403
         this.ruleForm = response.model
391 404
         this.ruleForm.F_Type = res.F_Label
405
+        // this.ruleForm.F_Class = res.F_Class
392 406
         this.ruleForm.F_RecommenderID = res.F_RecommenderID + ''
393 407
         this.recommendNameRemind = res.F_Recommender
394 408
         this.ruleForm.F_Recommender = res.F_Recommender
@@ -489,6 +503,21 @@ export default {
489 503
         })
490 504
       })
491 505
     },
506
+    // 获取会员分类
507
+    getClass() {
508
+      return new Promise(resolve => {
509
+        const params = {
510
+          pageindex: 1,
511
+          pagesize: 100,
512
+          type: 1
513
+        }
514
+        getLabelLists(params).then(response => {
515
+          if (response.state.toLowerCase() === 'success') {
516
+            this.memberClass = response.rows.Rows
517
+          }
518
+        })
519
+      })
520
+    },
492 521
     addMobile() {
493 522
       if (this.ruleForm.backupMobile.length !== 11) {
494 523
         this.$message({

+ 44 - 28
CallCenterWeb.UI/src/views/orderManagement/orderList/addOrEditRemark.vue

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div>
3
-    <el-form ref="ruleForm" :model="ruleForm" label-width="80px">
4
-      <el-form-item label="是否可见">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="80px">
4
+      <el-form-item label="是否可见" prop="F_IsSo">
5 5
         <el-select v-model="ruleForm.F_IsSo" class="form_select" filterable clearable placeholder="是否可见" >
6 6
           <el-option label="否" value="0"></el-option>
7 7
           <el-option label="是" value="1"></el-option>
@@ -42,6 +42,15 @@ export default {
42 42
         F_Content: '', // 备注内容
43 43
         F_State: 0, // 0-工单 1-会员
44 44
       },
45
+      rules: {
46
+        F_IsSo: [
47
+          {
48
+            required: true,
49
+            trigger: 'change',
50
+            message: '请选择是否可见'
51
+          }
52
+        ],
53
+      }
45 54
     };
46 55
   },
47 56
   created() {
@@ -54,33 +63,40 @@ export default {
54 63
   },
55 64
   methods: {
56 65
     submitForm() {
57
-      //添加
58
-      if (!this.ruleForm.F_ID) {
59
-        addAfterSaleListChatLog(this.ruleForm)
60
-          .then((response) => {
61
-            if (response.state.toLowerCase() === "success") {
62
-              this.$parent.$layer.close(this.layerid);
63
-              this.$parent.getList(); // 重新加载父级数据
64
-              this.$message.success("添加成功!");
65
-            }
66
-          })
67
-          .catch(() => {
68
-            this.loading = false;
69
-          });
70
-        return
71
-      }
72
-      //编辑
73
-      editAfterSaleListChatLog(this.ruleForm)
74
-        .then((response) => {
75
-          if (response.state.toLowerCase() === "success") {
76
-            this.$parent.$layer.close(this.layerid);
77
-            this.$parent.getDetail(this.ruleForm.F_WoID); // 重新加载父级数据
78
-            this.$message.success("编辑成功!");
66
+      this.$refs.ruleForm.validate(valid => {
67
+        if (valid) {
68
+          //添加
69
+          if (!this.ruleForm.F_ID) {
70
+            addAfterSaleListChatLog(this.ruleForm)
71
+              .then((response) => {
72
+                if (response.state.toLowerCase() === "success") {
73
+                  this.$parent.$layer.close(this.layerid);
74
+                  this.$parent.getList(); // 重新加载父级数据
75
+                  this.$message.success("添加成功!");
76
+                }
77
+              })
78
+              .catch(() => {
79
+                this.loading = false;
80
+              });
81
+            return
79 82
           }
80
-        })
81
-        .catch(() => {
82
-          this.loading = false;
83
-        });
83
+          //编辑
84
+          editAfterSaleListChatLog(this.ruleForm)
85
+            .then((response) => {
86
+              if (response.state.toLowerCase() === "success") {
87
+                this.$parent.$layer.close(this.layerid);
88
+                this.$parent.getDetail(this.ruleForm.F_WoID); // 重新加载父级数据
89
+                this.$message.success("编辑成功!");
90
+              }
91
+            })
92
+            .catch(() => {
93
+              this.loading = false;
94
+            });
95
+        } else {
96
+          this.$message.error('请输入有效的必填项信息!')
97
+          return false
98
+        }
99
+      })
84 100
     },
85 101
   },
86 102
 };

+ 18 - 14
CallCenterWeb.UI/src/views/telCall/numberTransferPool/addOrEdit.vue

@@ -44,8 +44,8 @@
44 44
             :value="item"/>
45 45
         </el-select>
46 46
       </el-form-item>
47
-      <el-form-item label="分派人员" prop="F_OperationHandler">
48
-        <el-select v-model="ruleForm.F_OperationHandler" class="form_select" filterable clearable placeholder="请选择分派人员">
47
+      <el-form-item label="分派人员" prop="F_Handler">
48
+        <el-select v-model="ruleForm.F_Handler" class="form_select" filterable clearable placeholder="请选择分派人员">
49 49
           <el-option
50 50
             v-for="item in userAccountDataList"
51 51
             :key="item.F_UserId"
@@ -104,8 +104,8 @@ export default {
104 104
         F_TeamName: '', //中心名称
105 105
         F_Group: '', //小组id
106 106
         F_GroupName: '', //小组
107
-        F_OperationHandler: '', //分派人员
108
-        F_Type: '1',
107
+        F_Handler: '', //分派人员
108
+        F_Type: '0', // 未接通中转池传0媒体中转池传1
109 109
       },
110 110
       rules: {
111 111
         F_Tel: [{
@@ -138,14 +138,14 @@ export default {
138 138
     ])
139 139
   },
140 140
   created() {
141
-    Promise.all([this.getMediaList(), this.getTypeDrop(), this.getSeatGroupSelects()])
142
-      .then(() => {
143
-        if (this.rowid) {
144
-          this.ruleForm.F_ID = this.rowid
145
-          this.is_form_cascader = true
146
-          this.getDetail(this.rowid)
147
-        }
148
-      })
141
+    this.getMediaList()
142
+    this.getTypeDrop()
143
+    this.getSeatGroupSelects()
144
+    if (this.rowid) {
145
+      this.ruleForm.F_ID = this.rowid
146
+      this.is_form_cascader = true
147
+      this.getDetail(this.rowid)
148
+    }
149 149
   },
150 150
   methods: {
151 151
     // 添加编辑
@@ -186,7 +186,10 @@ export default {
186 186
     },
187 187
     // 详情
188 188
     getDetail(rid) {
189
-      getNumberTransferPoolDetail(rid).then(response => {
189
+      const params = {
190
+        id: rid
191
+      }
192
+      getNumberTransferPoolDetail(params).then(response => {
190 193
         if (response.state.toLowerCase() === 'success') {
191 194
           const res = response.data
192 195
           this.ruleForm.F_Tel = res.F_Tel //待分派号码
@@ -195,11 +198,12 @@ export default {
195 198
           this.ruleForm.F_MediaName = res.F_MediaName //媒体id
196 199
           this.ruleForm.F_Dept = res.F_Dept //部门id
197 200
           this.ruleForm.F_DeptName = res.F_DeptName //部门
201
+          this.departmentPlaceholder = res.F_DeptName //部门
198 202
           this.ruleForm.F_Team = res.F_Team //中心id
199 203
           this.ruleForm.F_TeamName = res.F_TeamName //中心
200 204
           this.ruleForm.F_Group = res.F_Group // 小组id
201 205
           this.ruleForm.F_GroupName = res.F_GroupName // 小组
202
-          this.ruleForm.F_OperationHandler = res.F_OperationHandler // 分派人员
206
+          this.ruleForm.F_Handler = res.F_Handler // 分派人员
203 207
         }
204 208
       })
205 209
     },

+ 16 - 12
CallCenterWeb.UI/src/views/telCall/numberTransferPool/distribution.vue

@@ -44,8 +44,8 @@
44 44
             :value="item"/>
45 45
         </el-select>
46 46
       </el-form-item>
47
-      <el-form-item label="分派人员" prop="F_OperationHandler">
48
-        <el-select v-model="ruleForm.F_OperationHandler" class="form_select" filterable clearable placeholder="请选择分派人员">
47
+      <el-form-item label="分派人员" prop="F_Handler">
48
+        <el-select v-model="ruleForm.F_Handler" class="form_select" filterable clearable placeholder="请选择分派人员">
49 49
           <el-option
50 50
             v-for="item in userAccountDataList"
51 51
             :key="item.F_UserId"
@@ -104,7 +104,7 @@ export default {
104 104
         F_TeamName: '', //中心名称
105 105
         F_Group: '', //小组id
106 106
         F_GroupName: '', //小组
107
-        F_OperationHandler: '', //分派人员
107
+        F_Handler: '', //分派人员
108 108
         F_Type: '1',
109 109
       },
110 110
       rules: {
@@ -138,14 +138,14 @@ export default {
138 138
     ])
139 139
   },
140 140
   created() {
141
-    Promise.all([this.getMediaList(), this.getTypeDrop(), this.getSeatGroupSelects()])
142
-      .then(() => {
143
-        if (this.rowid) {
144
-          this.ruleForm.F_ID = this.rowid
145
-          this.is_form_cascader = true
146
-          this.getDetail(this.rowid)
147
-        }
148
-      })
141
+    this.getMediaList()
142
+    this.getTypeDrop()
143
+    this.getSeatGroupSelects()
144
+    if (this.rowid) {
145
+      this.ruleForm.F_ID = this.rowid
146
+      this.is_form_cascader = true
147
+      this.getDetail(this.rowid)
148
+    }
149 149
   },
150 150
   methods: {
151 151
     // 添加编辑
@@ -172,6 +172,9 @@ export default {
172 172
     },
173 173
     // 详情
174 174
     getDetail(rid) {
175
+      const params = {
176
+        id: rid
177
+      }
175 178
       getNumberTransferPoolDetail(rid).then(response => {
176 179
         if (response.state.toLowerCase() === 'success') {
177 180
           const res = response.data
@@ -181,11 +184,12 @@ export default {
181 184
           this.ruleForm.F_MediaName = res.F_MediaName //媒体id
182 185
           this.ruleForm.F_Dept = res.F_Dept //部门id
183 186
           this.ruleForm.F_DeptName = res.F_DeptName //部门
187
+          this.departmentPlaceholder = res.F_DeptName //部门
184 188
           this.ruleForm.F_Team = res.F_Team //中心id
185 189
           this.ruleForm.F_TeamName = res.F_TeamName //中心
186 190
           this.ruleForm.F_Group = res.F_Group // 小组id
187 191
           this.ruleForm.F_GroupName = res.F_GroupName // 小组
188
-          this.ruleForm.F_OperationHandler = res.F_OperationHandler // 分派人员
192
+          this.ruleForm.F_Handler = res.F_Handler // 分派人员
189 193
         }
190 194
       })
191 195
     },

+ 16 - 10
CallCenterWeb.UI/src/views/telCall/numberTransferPool/index.vue

@@ -5,15 +5,13 @@
5 5
       <el-input v-model="searchData.dept" placeholder="请输入部门" class="filter-item"/>
6 6
       <el-input v-model="searchData.team" placeholder="请输入中心" class="filter-item"/>
7 7
       <el-input v-model="searchData.group" placeholder="请输入小组" class="filter-item"/>
8
-      <el-select v-model="searchData.type" class="filter-item" filterable clearable placeholder="请选择角色">
9
-        <el-option label="媒体中转池" value="0"></el-option>
10
-        <el-option label="未接通中转池" value="1"></el-option>
11
-      </el-select>
12
-      <el-input v-model="searchData.type" placeholder="请输入工号,姓名,电话,手机" class="filter-item"/>
13 8
       <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
14 9
       <el-button v-permission="'HY_add'" type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
15 10
     </div>
16
-
11
+    <el-tabs v-model="activeName" type="card" @tab-click="handleTabClick">
12
+      <el-tab-pane label="媒体中转池" name="0" />
13
+      <el-tab-pane label="未接通中转池" name="1" />
14
+    </el-tabs>
17 15
     <el-table v-loading="loading" :data="dataLists" border stripe>
18 16
       <el-table-column prop="F_Tel" label="待分配号码" align="center" min-width=""/>
19 17
       <el-table-column prop="F_Name" label="姓名" align="center" min-width=""/>
@@ -21,7 +19,7 @@
21 19
       <el-table-column prop="F_DeptName" label="部门" align="center" min-width=""/>
22 20
       <el-table-column prop="F_TeamName" label="中心" align="center" min-width=""/>
23 21
       <el-table-column prop="F_GroupName" label="小组" align="center" min-width=""/>
24
-      <el-table-column prop="F_OperationHandler" label="分派人员" align="center" min-width=""/>、
22
+      <el-table-column prop="F_Handler" label="分派人员" align="center" min-width=""/>、
25 23
       <!-- <el-table-column label="状态" align="center" min-width="">
26 24
         <template slot-scope="scope">
27 25
           {{ scope.row.type | typeFilter }}
@@ -69,6 +67,7 @@ export default {
69 67
   data() {
70 68
     return {
71 69
       loading: false,
70
+      activeName: '0',
72 71
       searchData: {
73 72
         name: '', //媒体名称
74 73
         dept: '', //部门
@@ -104,7 +103,7 @@ export default {
104 103
           dept: this.searchData.dept.replace(/\s+/g, ''), //部门
105 104
           team: this.searchData.team.replace(/\s+/g, ''), //中心
106 105
           group: this.searchData.group.replace(/\s+/g, ''), //小组
107
-          type: this.searchData.type.replace(/\s+/g, ''), //媒体中转
106
+          type: this.activeName, //媒体中转
108 107
         }
109 108
         getNumberTransferPoolList(params).then(response => {
110 109
           this.loading = false
@@ -153,13 +152,16 @@ export default {
153 152
         title: '分配'
154 153
       })
155 154
     },
156
-    btn_delete(editId) {
155
+    btn_delete(id) {
156
+      const params = {
157
+          ids: id
158
+      }
157 159
       this.$confirm('确定删除吗?', '提示', {
158 160
         confirmButtonText: '确定',
159 161
         cancelButtonText: '取消',
160 162
         type: 'warning'
161 163
       }).then(() => {
162
-        deleteUserAccount(editId).then(response => {
164
+        deleteNumberTransferPoolList(params).then(response => {
163 165
           if (response.state.toLowerCase() === 'success') {
164 166
             this.getList()
165 167
             this.$message.success('删除成功!')
@@ -180,6 +182,10 @@ export default {
180 182
       }
181 183
       this.btn_delete(ids)
182 184
     },
185
+    handleTabClick(tab, event) {
186
+      this.pageParams.pageindex = 1
187
+      this.getList()
188
+    },
183 189
   }
184 190
 }
185 191
 </script>