Selaa lähdekoodia

中航需求修改

miaofuhao 2 vuotta sitten
vanhempi
commit
dbab0cab76

+ 96 - 71
CallCenterWeb.UI/src/views/callComplainType/complainList/detail.vue

@@ -8,6 +8,12 @@
8 8
               <svg-icon class="title_icon" icon-class="hongqi" />工单编号:{{
9 9
                 orderDetailData.workId
10 10
               }}
11
+              <svg-icon
12
+                v-if="filePath"
13
+                class="rec_file"
14
+                icon-class="bofangluyin"
15
+                @click.native="playSound(filePath, filePath)"
16
+              />
11 17
             </h1>
12 18
           </el-col>
13 19
           <el-col :md="24" class="order_detail_content">
@@ -72,116 +78,135 @@
72 78
 </template>
73 79
 
74 80
 <script>
75
-import { getDetailComplain } from "@/api/callComplainType/callComplainType";
76
-import { searchOrderMove } from "@/api/orderMove/orderMove";
77
-import { mapGetters } from "vuex";
78
-import { Send } from "@/utils/telWebsocket";
79
-import { getCallOutprefix } from "@/api/teloperation";
80
-import store from "@/store";
81
+import { getDetailComplain } from '@/api/callComplainType/callComplainType'
82
+import { searchOrderMove } from '@/api/orderMove/orderMove'
83
+import { mapGetters } from 'vuex'
84
+import { Send } from '@/utils/telWebsocket'
85
+import { getCallOutprefix } from '@/api/teloperation'
86
+import store from '@/store'
87
+import audioPlayer from '@/components/audioPlayer'
81 88
 
82 89
 export default {
83
-  name: "Detail",
90
+  name: 'Detail',
91
+  components: { audioPlayer },
84 92
   filters: {
85 93
     isCloseFilter(status) {
86 94
       const statusMap = {
87
-        0: "关闭",
88
-        1: "不关闭",
89
-      };
90
-      return statusMap[status];
95
+        0: '关闭',
96
+        1: '不关闭'
97
+      }
98
+      return statusMap[status]
91 99
     },
92 100
     cusStatusFilter(status) {
93 101
       const statusMap = {
94
-        1: "客户",
95
-        2: "销售经理",
96
-        3: "公司人员",
97
-      };
98
-      return statusMap[status];
99
-    },
102
+        1: '客户',
103
+        2: '销售经理',
104
+        3: '公司人员'
105
+      }
106
+      return statusMap[status]
107
+    }
100 108
   },
101 109
   props: {
102 110
     rowid: {
103 111
       type: Number,
104
-      default: 0,
112
+      default: 0
105 113
     },
106 114
     workId: {
107 115
       type: String,
108
-      default: "",
116
+      default: ''
109 117
     },
118
+    filePath: {
119
+      type: String,
120
+      default: ''
121
+    }
110 122
   },
111 123
   data() {
112 124
     return {
113 125
       checked: false, // 是否关闭
114
-      activeName: "first",
126
+      activeName: 'first',
115 127
       orderDetailData: {
116
-        workId: "", // 工单编号
117
-        cusCode: "", // 客户代码
118
-        cusName: "", // 客户名称
119
-        salMan: "", // 销售经理
120
-        salManTel: "", // 经理电话
121
-        callName: "", // 咨询类型
122
-        linkName: "", // 联系人
123
-        callNum: "", // 来电号码
124
-        content: "", // 咨询内容
125
-        isClose: "", // 是否关闭
126
-        dutydept: "", // 责任科室
127
-        dutyman: "", // 责任人
128
-        rate: "", // 发生频率
129
-        processingResult: "", // 处理结果
130
-      },
131
-    };
128
+        workId: '', // 工单编号
129
+        cusCode: '', // 客户代码
130
+        cusName: '', // 客户名称
131
+        salMan: '', // 销售经理
132
+        salManTel: '', // 经理电话
133
+        callName: '', // 咨询类型
134
+        linkName: '', // 联系人
135
+        callNum: '', // 来电号码
136
+        content: '', // 咨询内容
137
+        isClose: '', // 是否关闭
138
+        dutydept: '', // 责任科室
139
+        dutyman: '', // 责任人
140
+        rate: '', // 发生频率
141
+        processingResult: '' // 处理结果
142
+      }
143
+    }
132 144
   },
133 145
   computed: {
134 146
     ...mapGetters([
135
-      "usercode", // 工号
136
-      "extension", // 分机号
137
-      "sidebar",
138
-      "avatar",
139
-      "telCallType", // 通话类型
140
-      "telIsVisCallout", // 外呼面板是否显示
141
-      "zxbh",
142
-      "groupid",
143
-    ]),
147
+      'usercode', // 工号
148
+      'extension', // 分机号
149
+      'sidebar',
150
+      'avatar',
151
+      'telCallType', // 通话类型
152
+      'telIsVisCallout', // 外呼面板是否显示
153
+      'zxbh',
154
+      'groupid'
155
+    ])
144 156
   },
145 157
   created() {
146 158
     if (this.rowid) {
147
-      this.getDetail(this.rowid);
148
-      this.getProcessingResult();
159
+      this.getDetail(this.rowid)
160
+      this.getProcessingResult()
149 161
     }
150 162
   },
151 163
   methods: {
164
+    // 播放录音
165
+    playSound(rec_file, artist) {
166
+      this.$layer.iframe({
167
+        content: {
168
+          content: audioPlayer, // 传递的组件对象
169
+          parent: this, // 当前的vue对象
170
+          data: { recFiles: rec_file, artists: artist.toString() } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
171
+        },
172
+        area: ['600px', '230px'],
173
+        shadeClose: true,
174
+        title: '录音详情'
175
+      })
176
+    },
152 177
     // 外呼
153 178
     clickCallOut(phoneNumber) {
154
-      this.callOut(phoneNumber);
179
+      this.callOut(phoneNumber)
155 180
     },
156 181
     // 外呼
157 182
     callOut(phoneNumber) {
158 183
       if (phoneNumber) {
159 184
         getCallOutprefix(phoneNumber).then((response) => {
160
-          if (response.state.toLowerCase() === "success") {
161
-            const res = response.data;
185
+          if (response.state.toLowerCase() === 'success') {
186
+            const res = response.data
162 187
             this.scoketDatas = {
163
-              Type: "MakeCall",
188
+              Type: 'MakeCall',
164 189
               AgentID: this.usercode,
165 190
               AgentExten: this.extension,
166 191
               Header: res.fix, // 号码前缀 用于截断前缀得到真实号码
167
-              DestinationNumber: res.targetPhoneNum, //
168
-            };
169
-            store.dispatch("ChangeCallNum", phoneNumber);
170
-            Send(this.scoketDatas);
192
+              DestinationNumber: res.targetPhoneNum //
193
+            }
194
+            store.dispatch('ChangeCallNum', phoneNumber)
195
+            Send(this.scoketDatas)
171 196
           }
172
-        });
197
+        })
173 198
       } else {
174 199
         this.$message({
175
-          message: "获取电话号码失败!",
176
-          type: "warning",
177
-        });
200
+          message: '获取电话号码失败!',
201
+          type: 'warning'
202
+        })
178 203
       }
179 204
     },
180 205
     // 详情
181 206
     getDetail(id) {
182 207
       getDetailComplain(id).then((response) => {
183
-        if (response.state.toLowerCase() === "success") {
184
-          const res = response.data;
208
+        if (response.state.toLowerCase() === 'success') {
209
+          const res = response.data
185 210
           // this.orderDetailData.workId = res.workId // 工单编号
186 211
           // this.orderDetailData.cusCode = res.cusCode // 客户代码
187 212
           // this.orderDetailData.cusName = res.cusName // 客户名称
@@ -192,24 +217,24 @@ export default {
192 217
           // this.orderDetailData.callNum = res.callNum // 来电号码
193 218
           // this.orderDetailData.content = res.content // 咨询内容
194 219
           // this.orderDetailData.isClose = res.isClose // 咨询内容
195
-          this.orderDetailData = res;
220
+          this.orderDetailData = res
196 221
         }
197
-      });
222
+      })
198 223
     },
199 224
     // 获取处理结果
200 225
     getProcessingResult() {
201 226
       const params = {
202
-        workid: this.workId,
203
-      };
227
+        workid: this.workId
228
+      }
204 229
       searchOrderMove(params)
205 230
         .then((response) => {
206
-          this.orderDetailData.processingResult = response.data.dealcontent;
231
+          this.orderDetailData.processingResult = response.data.dealcontent
207 232
         })
208
-        .catch(() => {});
209
-      return;
210
-    },
211
-  },
212
-};
233
+        .catch(() => {})
234
+      return
235
+    }
236
+  }
237
+}
213 238
 </script>
214 239
 
215 240
 <style rel="stylesheet/scss" lang="scss">

+ 59 - 59
CallCenterWeb.UI/src/views/callComplainType/complainList/index.vue

@@ -152,64 +152,64 @@
152 152
 </template>
153 153
 
154 154
 <script>
155
-import { getComplainList } from "@/api/callComplainType/callComplainType";
156
-import { pickerOptions, formatterContent } from "@/utils";
157
-import Pagination from "@/components/Pagination"; // 对el-pagination 二次封装
158
-import { mapGetters } from "vuex";
159
-import { getDictionary } from "@/api/commonAPI";
160
-import detail from "./detail";
155
+import { getComplainList } from '@/api/callComplainType/callComplainType'
156
+import { pickerOptions, formatterContent } from '@/utils'
157
+import Pagination from '@/components/Pagination' // 对el-pagination 二次封装
158
+import { mapGetters } from 'vuex'
159
+import { getDictionary } from '@/api/commonAPI'
160
+import detail from './detail'
161 161
 export default {
162
-  name: "MyTask",
162
+  name: 'MyTask',
163 163
   components: {
164
-    Pagination,
164
+    Pagination
165 165
   },
166 166
   filters: {
167 167
     isCloseFilter(status) {
168 168
       const statusMap = {
169
-        0: "关闭",
170
-        1: "不关闭",
171
-      };
172
-      return statusMap[status];
173
-    },
169
+        0: '关闭',
170
+        1: '不关闭'
171
+      }
172
+      return statusMap[status]
173
+    }
174 174
   },
175 175
   data() {
176 176
     return {
177
-      searchTime: "", // 时间
177
+      searchTime: '', // 时间
178 178
       pickerOptions,
179 179
       makeType: [],
180 180
       consultType: [],
181
-      slType: "", // 咨询类型
181
+      slType: '', // 咨询类型
182 182
       loading: false,
183 183
       searchData: {
184
-        cusCode: "", // 客户代码
185
-        cusName: "", // 客户名称
186
-        salMan: "", // 售后经理
187
-        callsort: "", // 咨询类型
188
-        linkName: "", // 联系人
189
-        workId: "", // 工单编号
184
+        cusCode: '', // 客户代码
185
+        cusName: '', // 客户名称
186
+        salMan: '', // 售后经理
187
+        callsort: '', // 咨询类型
188
+        linkName: '', // 联系人
189
+        workId: '' // 工单编号
190 190
       },
191 191
       pageParams: {
192 192
         pageindex: 1, // 当前第几页
193 193
         pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
194
-        total: 0, // 总共多少数据
194
+        total: 0 // 总共多少数据
195 195
       },
196 196
       consultList: [], // 咨询信息列表数据
197
-      taskRowClickId: "", // 选中客户代码
198
-      contactId: "", // 联系人id
199
-    };
197
+      taskRowClickId: '', // 选中客户代码
198
+      contactId: '' // 联系人id
199
+    }
200 200
   },
201 201
   computed: {
202
-    ...mapGetters(["userid", "zxbh"]),
202
+    ...mapGetters(['userid', 'zxbh'])
203 203
   },
204 204
   created() {
205
-    this.getConsultType();
206
-    this.getList();
207
-    console.log(this.userid, this.zxbh);
205
+    this.getConsultType()
206
+    this.getList()
207
+    console.log(this.userid, this.zxbh)
208 208
     document.onkeyup = (e) => {
209 209
       if (e.keyCode === 13) {
210
-        this.getList();
210
+        this.getList()
211 211
       }
212
-    };
212
+    }
213 213
   },
214 214
   methods: {
215 215
     // 获取投诉类型下拉数据
@@ -219,21 +219,21 @@ export default {
219 219
           f_IsLeaf: 1,
220 220
           parentId: 69,
221 221
           pageindex: 1,
222
-          pagesize: 10,
223
-        };
222
+          pagesize: 10
223
+        }
224 224
         getDictionary(params).then((response) => {
225
-          if (response.state.toLowerCase() === "success") {
226
-            this.consultType = response.data;
225
+          if (response.state.toLowerCase() === 'success') {
226
+            this.consultType = response.data
227 227
           }
228
-        });
229
-      });
228
+        })
229
+      })
230 230
     },
231 231
     // 受理类型
232 232
     changeType(event, item) {
233
-      this.slType = event;
233
+      this.slType = event
234 234
     },
235 235
     getList() {
236
-      this.loading = true;
236
+      this.loading = true
237 237
       return new Promise((resolve) => {
238 238
         const params = {
239 239
           pageindex: this.pageParams.pageindex, // 第几页
@@ -249,26 +249,26 @@ export default {
249 249
           workId: this.searchData.workId, // 工单编号
250 250
           callName: this.slType,
251 251
           beginTime: this.searchTime && this.searchTime[0], // 添加开始时间
252
-          endTime: this.searchTime && this.searchTime[1], // 添加结束时间
253
-        };
252
+          endTime: this.searchTime && this.searchTime[1] // 添加结束时间
253
+        }
254 254
         getComplainList(params).then((response) => {
255
-          this.loading = false;
256
-          if (response.state.toLowerCase() === "success") {
255
+          this.loading = false
256
+          if (response.state.toLowerCase() === 'success') {
257 257
             if (response.total == null) {
258
-              this.pageParams.total = 0;
258
+              this.pageParams.total = 0
259 259
             } else {
260
-              this.pageParams.total = response.total;
260
+              this.pageParams.total = response.total
261 261
             }
262
-            this.consultList = response.data;
262
+            this.consultList = response.data
263 263
           }
264
-        });
265
-        resolve();
266
-      });
264
+        })
265
+        resolve()
266
+      })
267 267
     },
268 268
     // 搜索
269 269
     btn_search_task() {
270
-      this.pageParams.pageindex = 1;
271
-      this.getList();
270
+      this.pageParams.pageindex = 1
271
+      this.getList()
272 272
     },
273 273
 
274 274
     // 点击某一行
@@ -277,15 +277,15 @@ export default {
277 277
         content: {
278 278
           content: detail, // 传递的组件对象
279 279
           parent: this, // 当前的vue对象
280
-          data: { rowid: row.id, workId: row.workId }, // props
280
+          data: { rowid: row.id, workId: row.workId, filePath: row.filePath } // props
281 281
         },
282
-        area: ["60%", "40%"],
283
-        title: "工单详情",
284
-      });
285
-      console.log(row);
286
-    },
287
-  },
288
-};
282
+        area: ['60%', '40%'],
283
+        title: '工单详情'
284
+      })
285
+      console.log(row)
286
+    }
287
+  }
288
+}
289 289
 </script>
290 290
 
291 291
 <style rel="stylesheet/scss" lang="scss" scoped>

+ 98 - 73
CallCenterWeb.UI/src/views/callComplainType/isDealList/detail.vue

@@ -8,6 +8,12 @@
8 8
               <svg-icon class="title_icon" icon-class="hongqi" />工单编号:{{
9 9
                 orderDetailData.workId
10 10
               }}
11
+              <svg-icon
12
+                v-if="filePath"
13
+                class="rec_file"
14
+                icon-class="bofangluyin"
15
+                @click.native="playSound(filePath, filePath)"
16
+              />
11 17
             </h1>
12 18
           </el-col>
13 19
           <el-col :md="24" class="order_detail_content">
@@ -72,117 +78,136 @@
72 78
 </template>
73 79
 
74 80
 <script>
75
-import { getDetailComplain } from "@/api/callComplainType/callComplainType";
76
-import { searchOrderMove } from "@/api/orderMove/orderMove";
77
-import { mapGetters } from "vuex";
78
-import { Send } from "@/utils/telWebsocket";
79
-import { getCallOutprefix } from "@/api/teloperation";
80
-import store from "@/store";
81
+import { getDetailComplain } from '@/api/callComplainType/callComplainType'
82
+import { searchOrderMove } from '@/api/orderMove/orderMove'
83
+import { mapGetters } from 'vuex'
84
+import { Send } from '@/utils/telWebsocket'
85
+import { getCallOutprefix } from '@/api/teloperation'
86
+import store from '@/store'
87
+import audioPlayer from '@/components/audioPlayer'
81 88
 
82 89
 export default {
83
-  name: "Detail",
90
+  name: 'Detail',
91
+  components: { audioPlayer },
84 92
   filters: {
85 93
     isCloseFilter(status) {
86 94
       const statusMap = {
87
-        0: "关闭",
88
-        1: "不关闭",
89
-      };
90
-      return statusMap[status];
95
+        0: '关闭',
96
+        1: '不关闭'
97
+      }
98
+      return statusMap[status]
91 99
     },
92 100
     cusStatusFilter(status) {
93 101
       const statusMap = {
94
-        1: "客户",
95
-        2: "销售经理",
96
-        3: "公司人员",
97
-      };
98
-      return statusMap[status];
99
-    },
102
+        1: '客户',
103
+        2: '销售经理',
104
+        3: '公司人员'
105
+      }
106
+      return statusMap[status]
107
+    }
100 108
   },
101 109
   props: {
102 110
     rowid: {
103 111
       type: Number,
104
-      default: 0,
112
+      default: 0
105 113
     },
106 114
     workId: {
107 115
       type: String,
108
-      default: "",
116
+      default: ''
109 117
     },
118
+    filePath: {
119
+      type: String,
120
+      default: ''
121
+    }
110 122
   },
111 123
   data() {
112 124
     return {
113 125
       checked: false, // 是否关闭
114
-      result: "", // 处理结果
115
-      activeName: "first",
126
+      result: '', // 处理结果
127
+      activeName: 'first',
116 128
       orderDetailData: {
117
-        workId: "", // 工单编号
118
-        cusCode: "", // 客户代码
119
-        cusName: "", // 客户名称
120
-        salMan: "", // 销售经理
121
-        salManTel: "", // 经理电话
122
-        callName: "", // 咨询类型
123
-        linkName: "", // 联系人
124
-        callNum: "", // 来电号码
125
-        content: "", // 咨询内容
126
-        isClose: "", // 是否关闭
127
-        dutydept: "", // 责任科室
128
-        dutyman: "", // 责任人
129
-        rate: "", // 发生频率
130
-        processingResult: "", // 处理结果
131
-      },
132
-    };
129
+        workId: '', // 工单编号
130
+        cusCode: '', // 客户代码
131
+        cusName: '', // 客户名称
132
+        salMan: '', // 销售经理
133
+        salManTel: '', // 经理电话
134
+        callName: '', // 咨询类型
135
+        linkName: '', // 联系人
136
+        callNum: '', // 来电号码
137
+        content: '', // 咨询内容
138
+        isClose: '', // 是否关闭
139
+        dutydept: '', // 责任科室
140
+        dutyman: '', // 责任人
141
+        rate: '', // 发生频率
142
+        processingResult: '' // 处理结果
143
+      }
144
+    }
133 145
   },
134 146
   computed: {
135 147
     ...mapGetters([
136
-      "usercode", // 工号
137
-      "extension", // 分机号
138
-      "sidebar",
139
-      "avatar",
140
-      "telCallType", // 通话类型
141
-      "telIsVisCallout", // 外呼面板是否显示
142
-      "zxbh",
143
-      "groupid",
144
-    ]),
148
+      'usercode', // 工号
149
+      'extension', // 分机号
150
+      'sidebar',
151
+      'avatar',
152
+      'telCallType', // 通话类型
153
+      'telIsVisCallout', // 外呼面板是否显示
154
+      'zxbh',
155
+      'groupid'
156
+    ])
145 157
   },
146 158
   created() {
147 159
     if (this.rowid) {
148
-      this.getDetail(this.rowid);
149
-      this.getProcessingResult();
160
+      this.getDetail(this.rowid)
161
+      this.getProcessingResult()
150 162
     }
151 163
   },
152 164
   methods: {
165
+    // 播放录音
166
+    playSound(rec_file, artist) {
167
+      this.$layer.iframe({
168
+        content: {
169
+          content: audioPlayer, // 传递的组件对象
170
+          parent: this, // 当前的vue对象
171
+          data: { recFiles: rec_file, artists: artist.toString() } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
172
+        },
173
+        area: ['600px', '230px'],
174
+        shadeClose: true,
175
+        title: '录音详情'
176
+      })
177
+    },
153 178
     // 外呼
154 179
     clickCallOut(phoneNumber) {
155
-      this.callOut(phoneNumber);
180
+      this.callOut(phoneNumber)
156 181
     },
157 182
     // 外呼
158 183
     callOut(phoneNumber) {
159 184
       if (phoneNumber) {
160 185
         getCallOutprefix(phoneNumber).then((response) => {
161
-          if (response.state.toLowerCase() === "success") {
162
-            const res = response.data;
186
+          if (response.state.toLowerCase() === 'success') {
187
+            const res = response.data
163 188
             this.scoketDatas = {
164
-              Type: "MakeCall",
189
+              Type: 'MakeCall',
165 190
               AgentID: this.usercode,
166 191
               AgentExten: this.extension,
167 192
               Header: res.fix, // 号码前缀 用于截断前缀得到真实号码
168
-              DestinationNumber: res.targetPhoneNum, //
169
-            };
170
-            store.dispatch("ChangeCallNum", phoneNumber);
171
-            Send(this.scoketDatas);
193
+              DestinationNumber: res.targetPhoneNum //
194
+            }
195
+            store.dispatch('ChangeCallNum', phoneNumber)
196
+            Send(this.scoketDatas)
172 197
           }
173
-        });
198
+        })
174 199
       } else {
175 200
         this.$message({
176
-          message: "获取电话号码失败!",
177
-          type: "warning",
178
-        });
201
+          message: '获取电话号码失败!',
202
+          type: 'warning'
203
+        })
179 204
       }
180 205
     },
181 206
     // 详情
182 207
     getDetail(id) {
183 208
       getDetailComplain(id).then((response) => {
184
-        if (response.state.toLowerCase() === "success") {
185
-          const res = response.data;
209
+        if (response.state.toLowerCase() === 'success') {
210
+          const res = response.data
186 211
           // this.orderDetailData.workId = res.workId // 工单编号
187 212
           // this.orderDetailData.cusCode = res.cusCode // 客户代码
188 213
           // this.orderDetailData.cusName = res.cusName // 客户名称
@@ -193,26 +218,26 @@ export default {
193 218
           // this.orderDetailData.callNum = res.callNum // 来电号码
194 219
           // this.orderDetailData.content = res.content // 咨询内容
195 220
           // this.orderDetailData.isClose = res.isClose // 咨询内容
196
-          this.orderDetailData = res;
221
+          this.orderDetailData = res
197 222
         }
198
-      });
223
+      })
199 224
     },
200 225
     // 获取处理结果
201 226
     getProcessingResult() {
202 227
       const params = {
203
-        workid: this.workId,
204
-      };
228
+        workid: this.workId
229
+      }
205 230
       searchOrderMove(params)
206 231
         .then((response) => {
207
-          this.orderDetailData.processingResult = response.data.dealcontent;
232
+          this.orderDetailData.processingResult = response.data.dealcontent
208 233
         })
209 234
         .catch(() => {
210
-          console.log(2);
211
-        });
212
-      return;
213
-    },
214
-  },
215
-};
235
+          console.log(2)
236
+        })
237
+      return
238
+    }
239
+  }
240
+}
216 241
 </script>
217 242
 
218 243
 <style rel="stylesheet/scss" lang="scss">

+ 6 - 7
CallCenterWeb.UI/src/views/callComplainType/isDealList/index.vue

@@ -2,7 +2,6 @@
2 2
   <div class="app-container">
3 3
     <el-row :gutter="20">
4 4
       <el-col :md="24">
5
-
6 5
         <div class="filter-container">
7 6
           <el-input
8 7
             v-model="searchData.cusCode"
@@ -61,7 +60,7 @@
61 60
             class="filter-item"
62 61
             icon="el-icon-search"
63 62
             @click="btn_search_task"
64
-          >搜索</el-button
63
+            >搜索</el-button
65 64
           >
66 65
         </div>
67 66
         <el-table
@@ -238,11 +237,12 @@ export default {
238 237
           isClose: 0,
239 238
           cusCode: this.searchData.cusCode,
240 239
           cusName: this.searchData.cusName, // 客户名称
241
-          salMan: this.searchData.salMan,	// 销售经理
242
-          linkName: this.searchData.linkName,	// 联系人
240
+          salMan: this.searchData.salMan, // 销售经理
241
+          linkName: this.searchData.linkName, // 联系人
243 242
           workId: this.searchData.workId, // 工单编号
244 243
           callName: this.slType,
245
-          beginTime: this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
244
+          beginTime:
245
+            this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
246 246
           endTime: this.searchData.searchTime && this.searchData.searchTime[1] // 添加结束时间
247 247
         }
248 248
         getComplainList(params).then((response) => {
@@ -271,14 +271,13 @@ export default {
271 271
         content: {
272 272
           content: detail, // 传递的组件对象
273 273
           parent: this, // 当前的vue对象
274
-          data: { rowid: row.id, workId: row.workId } // props
274
+          data: { rowid: row.id, workId: row.workId, filePath: row.filePath } // props
275 275
         },
276 276
         area: ['60%', '40%'],
277 277
         title: '工单详情'
278 278
       })
279 279
       console.log(row)
280 280
     }
281
-
282 281
   }
283 282
 }
284 283
 </script>

+ 123 - 98
CallCenterWeb.UI/src/views/callComplainType/toDealList/detail.vue

@@ -8,6 +8,12 @@
8 8
               <svg-icon class="title_icon" icon-class="hongqi" />工单编号:{{
9 9
                 orderDetailData.workId
10 10
               }}
11
+              <svg-icon
12
+                v-if="filePath"
13
+                class="rec_file"
14
+                icon-class="bofangluyin"
15
+                @click.native="playSound(filePath, filePath)"
16
+              />
11 17
             </h1>
12 18
           </el-col>
13 19
           <el-col :md="24" class="order_detail_content">
@@ -86,120 +92,139 @@
86 92
 import {
87 93
   addOrderMove,
88 94
   editOrderMove,
89
-  searchOrderMove,
90
-} from "@/api/orderMove/orderMove";
91
-import { getDetailComplain } from "@/api/callComplainType/callComplainType";
92
-import { mapGetters } from "vuex";
93
-import { Send } from "@/utils/telWebsocket";
94
-import { getCallOutprefix } from "@/api/teloperation";
95
-import store from "@/store";
95
+  searchOrderMove
96
+} from '@/api/orderMove/orderMove'
97
+import { getDetailComplain } from '@/api/callComplainType/callComplainType'
98
+import { mapGetters } from 'vuex'
99
+import { Send } from '@/utils/telWebsocket'
100
+import { getCallOutprefix } from '@/api/teloperation'
101
+import store from '@/store'
102
+import audioPlayer from '@/components/audioPlayer'
96 103
 export default {
97
-  name: "Detail",
104
+  name: 'Detail',
105
+  components: { audioPlayer },
98 106
   props: {
99 107
     rowid: {
100 108
       type: Number,
101
-      default: 0,
109
+      default: 0
102 110
     },
103 111
     rowWorkId: {
104 112
       type: String,
105
-      default: "",
113
+      default: ''
106 114
     },
107 115
     layerid: {
108 116
       type: String,
109
-      default: "",
117
+      default: ''
110 118
     },
119
+    filePath: {
120
+      type: String,
121
+      default: ''
122
+    }
111 123
   },
112 124
   data() {
113 125
     return {
114
-      judgeId: "", // 判断是否流转的id
115
-      checked: "", // 是否关闭
116
-      result: "", // 处理结果
117
-      activeName: "first",
126
+      judgeId: '', // 判断是否流转的id
127
+      checked: '', // 是否关闭
128
+      result: '', // 处理结果
129
+      activeName: 'first',
118 130
       orderDetailData: {
119
-        workId: "", // 工单编号
120
-        cusCode: "", // 客户代码
121
-        cusName: "", // 客户名称
122
-        salMan: "", // 销售经理
123
-        salManTel: "", // 经理电话
124
-        callName: "", // 咨询类型
125
-        linkName: "", // 联系人
126
-        callNum: "", // 来电号码
127
-        dutydept: "", // 责任科室
128
-        dutyman: "", // 责任人
129
-        rate: "", // 发生频率
130
-        content: "", // 咨询内容
131
-      },
132
-    };
131
+        workId: '', // 工单编号
132
+        cusCode: '', // 客户代码
133
+        cusName: '', // 客户名称
134
+        salMan: '', // 销售经理
135
+        salManTel: '', // 经理电话
136
+        callName: '', // 咨询类型
137
+        linkName: '', // 联系人
138
+        callNum: '', // 来电号码
139
+        dutydept: '', // 责任科室
140
+        dutyman: '', // 责任人
141
+        rate: '', // 发生频率
142
+        content: '' // 咨询内容
143
+      }
144
+    }
133 145
   },
134 146
   computed: {
135 147
     ...mapGetters([
136
-      "usercode", // 工号
137
-      "extension", // 分机号
138
-      "sidebar",
139
-      "avatar",
140
-      "telCallType", // 通话类型
141
-      "telIsVisCallout", // 外呼面板是否显示
142
-      "zxbh",
143
-      "groupid",
144
-    ]),
148
+      'usercode', // 工号
149
+      'extension', // 分机号
150
+      'sidebar',
151
+      'avatar',
152
+      'telCallType', // 通话类型
153
+      'telIsVisCallout', // 外呼面板是否显示
154
+      'zxbh',
155
+      'groupid'
156
+    ])
145 157
   },
146 158
   filters: {
147 159
     isCloseFilter(status) {
148 160
       const statusMap = {
149
-        0: "关闭",
150
-        1: "不关闭",
151
-      };
152
-      return statusMap[status];
161
+        0: '关闭',
162
+        1: '不关闭'
163
+      }
164
+      return statusMap[status]
153 165
     },
154 166
     cusStatusFilter(status) {
155 167
       const statusMap = {
156
-        1: "客户",
157
-        2: "销售经理",
158
-        3: "公司人员",
159
-      };
160
-      return statusMap[status];
161
-    },
168
+        1: '客户',
169
+        2: '销售经理',
170
+        3: '公司人员'
171
+      }
172
+      return statusMap[status]
173
+    }
162 174
   },
163 175
   created() {
164
-    this.judgeHave();
176
+    this.judgeHave()
165 177
     if (this.rowid) {
166
-      this.getDetail(this.rowid);
178
+      this.getDetail(this.rowid)
167 179
     }
168 180
   },
169 181
   methods: {
182
+    // 播放录音
183
+    playSound(rec_file, artist) {
184
+      this.$layer.iframe({
185
+        content: {
186
+          content: audioPlayer, // 传递的组件对象
187
+          parent: this, // 当前的vue对象
188
+          data: { recFiles: rec_file, artists: artist.toString() } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
189
+        },
190
+        area: ['600px', '230px'],
191
+        shadeClose: true,
192
+        title: '录音详情'
193
+      })
194
+    },
170 195
     // 外呼
171 196
     clickCallOut(phoneNumber) {
172
-      this.callOut(phoneNumber);
197
+      this.callOut(phoneNumber)
173 198
     },
174 199
     // 外呼
175 200
     callOut(phoneNumber) {
176 201
       if (phoneNumber) {
177 202
         getCallOutprefix(phoneNumber).then((response) => {
178
-          if (response.state.toLowerCase() === "success") {
179
-            const res = response.data;
203
+          if (response.state.toLowerCase() === 'success') {
204
+            const res = response.data
180 205
             this.scoketDatas = {
181
-              Type: "MakeCall",
206
+              Type: 'MakeCall',
182 207
               AgentID: this.usercode,
183 208
               AgentExten: this.extension,
184 209
               Header: res.fix, // 号码前缀 用于截断前缀得到真实号码
185
-              DestinationNumber: res.targetPhoneNum, //
186
-            };
187
-            store.dispatch("ChangeCallNum", phoneNumber);
188
-            Send(this.scoketDatas);
210
+              DestinationNumber: res.targetPhoneNum //
211
+            }
212
+            store.dispatch('ChangeCallNum', phoneNumber)
213
+            Send(this.scoketDatas)
189 214
           }
190
-        });
215
+        })
191 216
       } else {
192 217
         this.$message({
193
-          message: "获取电话号码失败!",
194
-          type: "warning",
195
-        });
218
+          message: '获取电话号码失败!',
219
+          type: 'warning'
220
+        })
196 221
       }
197 222
     },
198 223
     // 详情
199 224
     getDetail(id) {
200 225
       getDetailComplain(id).then((response) => {
201
-        if (response.state.toLowerCase() === "success") {
202
-          const res = response.data;
226
+        if (response.state.toLowerCase() === 'success') {
227
+          const res = response.data
203 228
           // this.orderDetailData.workId = res.workId // 工单编号
204 229
           // this.orderDetailData.cusCode = res.cusCode // 客户代码
205 230
           // this.orderDetailData.cusName = res.cusName // 客户名称
@@ -209,25 +234,25 @@ export default {
209 234
           // this.orderDetailData.linkName = res.linkName // 联系人
210 235
           // this.orderDetailData.callNum = res.callNum // 来电号码
211 236
           // this.orderDetailData.content = res.content // 咨询内容
212
-          this.orderDetailData = res;
237
+          this.orderDetailData = res
213 238
         }
214
-      });
239
+      })
215 240
     },
216 241
     // 判断是否流转
217 242
     judgeHave() {
218 243
       const params = {
219
-        workid: this.rowWorkId,
220
-      };
244
+        workid: this.rowWorkId
245
+      }
221 246
       searchOrderMove(params)
222 247
         .then((response) => {
223
-          this.judgeId = response.data.id;
224
-          this.result = response.data.dealcontent;
225
-          console.log(this.judgeId);
248
+          this.judgeId = response.data.id
249
+          this.result = response.data.dealcontent
250
+          console.log(this.judgeId)
226 251
         })
227 252
         .catch(() => {
228
-          console.log(2);
229
-        });
230
-      return;
253
+          console.log(2)
254
+        })
255
+      return
231 256
     },
232 257
     // 保存
233 258
     save() {
@@ -235,42 +260,42 @@ export default {
235 260
         const datas = {
236 261
           workid: this.rowWorkId,
237 262
           isClose: -(Number(this.checked) - 1),
238
-          dealcontent: this.result,
239
-        };
263
+          dealcontent: this.result
264
+        }
240 265
         addOrderMove(datas).then((response) => {
241
-          if (response.state.toLowerCase() === "success") {
242
-            this.$parent.$layer.close(this.layerid);
243
-            this.$parent.getList(); // 重新加载父级数据
266
+          if (response.state.toLowerCase() === 'success') {
267
+            this.$parent.$layer.close(this.layerid)
268
+            this.$parent.getList() // 重新加载父级数据
244 269
             this.$message({
245
-              message: "恭喜你,工单处理成功!",
246
-              type: "success",
247
-              duration: 1000,
248
-            });
270
+              message: '恭喜你,工单处理成功!',
271
+              type: 'success',
272
+              duration: 1000
273
+            })
249 274
           }
250
-        });
275
+        })
251 276
       } else {
252 277
         const datas2 = {
253 278
           id: this.judgeId,
254 279
           workid: this.rowWorkId,
255 280
           isClose: -(Number(this.checked) - 1),
256
-          dealcontent: this.result,
257
-        };
281
+          dealcontent: this.result
282
+        }
258 283
         editOrderMove(datas2).then((response) => {
259
-          this.loading = false;
260
-          if (response.state.toLowerCase() === "success") {
261
-            this.$parent.$layer.close(this.layerid);
262
-            this.$parent.getList(); // 重新加载父级数据
284
+          this.loading = false
285
+          if (response.state.toLowerCase() === 'success') {
286
+            this.$parent.$layer.close(this.layerid)
287
+            this.$parent.getList() // 重新加载父级数据
263 288
             this.$message({
264
-              message: "恭喜你,工单处理成功!",
265
-              type: "success",
266
-              duration: 1000,
267
-            });
289
+              message: '恭喜你,工单处理成功!',
290
+              type: 'success',
291
+              duration: 1000
292
+            })
268 293
           }
269
-        });
294
+        })
270 295
       }
271
-    },
272
-  },
273
-};
296
+    }
297
+  }
298
+}
274 299
 </script>
275 300
 
276 301
 <style rel="stylesheet/scss" lang="scss">

+ 6 - 6
CallCenterWeb.UI/src/views/callComplainType/toDealList/index.vue

@@ -60,7 +60,7 @@
60 60
             class="filter-item"
61 61
             icon="el-icon-search"
62 62
             @click="btn_search_task"
63
-          >搜索</el-button
63
+            >搜索</el-button
64 64
           >
65 65
         </div>
66 66
         <el-table
@@ -232,11 +232,12 @@ export default {
232 232
           isClose: 1,
233 233
           cusCode: this.searchData.cusCode,
234 234
           cusName: this.searchData.cusName, // 客户名称
235
-          salMan: this.searchData.salMan,	// 销售经理
236
-          linkName: this.searchData.linkName,	// 联系人
235
+          salMan: this.searchData.salMan, // 销售经理
236
+          linkName: this.searchData.linkName, // 联系人
237 237
           workId: this.searchData.workId, // 工单编号
238 238
           callName: this.slType,
239
-          beginTime: this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
239
+          beginTime:
240
+            this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
240 241
           endTime: this.searchData.searchTime && this.searchData.searchTime[1] // 添加结束时间
241 242
         }
242 243
         getComplainList(params).then((response) => {
@@ -265,13 +266,12 @@ export default {
265 266
         content: {
266 267
           content: detail, // 传递的组件对象
267 268
           parent: this, // 当前的vue对象
268
-          data: { rowid: row.id, rowWorkId: row.workId } // props
269
+          data: { rowid: row.id, rowWorkId: row.workId, filePath: row.filePath } // props
269 270
         },
270 271
         area: ['60%', '55%'],
271 272
         title: '工单详情'
272 273
       })
273 274
     }
274
-
275 275
   }
276 276
 }
277 277
 </script>

+ 96 - 71
CallCenterWeb.UI/src/views/callConsultType/consultList/detail.vue

@@ -8,6 +8,12 @@
8 8
               <svg-icon class="title_icon" icon-class="hongqi" />工单编号:{{
9 9
                 orderDetailData.workId
10 10
               }}
11
+              <svg-icon
12
+                v-if="filePath"
13
+                class="rec_file"
14
+                icon-class="bofangluyin"
15
+                @click.native="playSound(filePath, filePath)"
16
+              />
11 17
             </h1>
12 18
           </el-col>
13 19
           <el-col :md="24" class="order_detail_content">
@@ -72,115 +78,134 @@
72 78
 </template>
73 79
 
74 80
 <script>
75
-import { searchOrderMove } from "@/api/orderMove/orderMove";
76
-import { getDetailConsult } from "@/api/callConsultType/callConsultType";
77
-import { mapGetters } from "vuex";
78
-import { Send } from "@/utils/telWebsocket";
79
-import { getCallOutprefix } from "@/api/teloperation";
80
-import store from "@/store";
81
+import { searchOrderMove } from '@/api/orderMove/orderMove'
82
+import { getDetailConsult } from '@/api/callConsultType/callConsultType'
83
+import { mapGetters } from 'vuex'
84
+import { Send } from '@/utils/telWebsocket'
85
+import { getCallOutprefix } from '@/api/teloperation'
86
+import store from '@/store'
87
+import audioPlayer from '@/components/audioPlayer'
81 88
 
82 89
 export default {
83
-  name: "Detail",
90
+  name: 'Detail',
91
+  components: { audioPlayer },
84 92
   filters: {
85 93
     isCloseFilter(status) {
86 94
       const statusMap = {
87
-        0: "关闭",
88
-        1: "不关闭",
89
-      };
90
-      return statusMap[status];
95
+        0: '关闭',
96
+        1: '不关闭'
97
+      }
98
+      return statusMap[status]
91 99
     },
92 100
     cusStatusFilter(status) {
93 101
       const statusMap = {
94
-        1: "客户",
95
-        2: "销售经理",
96
-        3: "公司人员",
97
-      };
98
-      return statusMap[status];
99
-    },
102
+        1: '客户',
103
+        2: '销售经理',
104
+        3: '公司人员'
105
+      }
106
+      return statusMap[status]
107
+    }
100 108
   },
101 109
   props: {
102 110
     rowid: {
103 111
       type: Number,
104
-      default: 0,
112
+      default: 0
105 113
     },
106 114
     workId: {
107 115
       type: String,
108
-      default: "",
116
+      default: ''
109 117
     },
118
+    filePath: {
119
+      type: String,
120
+      default: ''
121
+    }
110 122
   },
111 123
   data() {
112 124
     return {
113
-      result: "", // 处理结果
125
+      result: '', // 处理结果
114 126
       orderDetailData: {
115
-        workId: "", // 工单编号
116
-        cusCode: "", // 客户代码
117
-        cusName: "", // 客户名称
118
-        salMan: "", // 销售经理
119
-        salManTel: "", // 经理电话
120
-        callName: "", // 咨询类型
121
-        linkName: "", // 联系人
122
-        callNum: "", // 来电号码
123
-        content: "", // 咨询内容
124
-        isClose: "", // 是否关闭
125
-        dutydept: "", // 责任科室
126
-        dutyman: "", // 责任人
127
-        rate: "", // 发生频率
128
-        processingResult: "", // 处理结果
129
-      },
130
-    };
127
+        workId: '', // 工单编号
128
+        cusCode: '', // 客户代码
129
+        cusName: '', // 客户名称
130
+        salMan: '', // 销售经理
131
+        salManTel: '', // 经理电话
132
+        callName: '', // 咨询类型
133
+        linkName: '', // 联系人
134
+        callNum: '', // 来电号码
135
+        content: '', // 咨询内容
136
+        isClose: '', // 是否关闭
137
+        dutydept: '', // 责任科室
138
+        dutyman: '', // 责任人
139
+        rate: '', // 发生频率
140
+        processingResult: '' // 处理结果
141
+      }
142
+    }
131 143
   },
132 144
   computed: {
133 145
     ...mapGetters([
134
-      "usercode", // 工号
135
-      "extension", // 分机号
136
-      "sidebar",
137
-      "avatar",
138
-      "telCallType", // 通话类型
139
-      "telIsVisCallout", // 外呼面板是否显示
140
-      "zxbh",
141
-      "groupid",
142
-    ]),
146
+      'usercode', // 工号
147
+      'extension', // 分机号
148
+      'sidebar',
149
+      'avatar',
150
+      'telCallType', // 通话类型
151
+      'telIsVisCallout', // 外呼面板是否显示
152
+      'zxbh',
153
+      'groupid'
154
+    ])
143 155
   },
144 156
   created() {
145 157
     if (this.rowid) {
146
-      this.getDetail(this.rowid);
147
-      this.getProcessingResult();
158
+      this.getDetail(this.rowid)
159
+      this.getProcessingResult()
148 160
     }
149 161
   },
150 162
   methods: {
163
+    // 播放录音
164
+    playSound(rec_file, artist) {
165
+      this.$layer.iframe({
166
+        content: {
167
+          content: audioPlayer, // 传递的组件对象
168
+          parent: this, // 当前的vue对象
169
+          data: { recFiles: rec_file, artists: artist.toString() } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
170
+        },
171
+        area: ['600px', '230px'],
172
+        shadeClose: true,
173
+        title: '录音详情'
174
+      })
175
+    },
151 176
     // 外呼
152 177
     clickCallOut(phoneNumber) {
153
-      this.callOut(phoneNumber);
178
+      this.callOut(phoneNumber)
154 179
     },
155 180
     // 外呼
156 181
     callOut(phoneNumber) {
157 182
       if (phoneNumber) {
158 183
         getCallOutprefix(phoneNumber).then((response) => {
159
-          if (response.state.toLowerCase() === "success") {
160
-            const res = response.data;
184
+          if (response.state.toLowerCase() === 'success') {
185
+            const res = response.data
161 186
             this.scoketDatas = {
162
-              Type: "MakeCall",
187
+              Type: 'MakeCall',
163 188
               AgentID: this.usercode,
164 189
               AgentExten: this.extension,
165 190
               Header: res.fix, // 号码前缀 用于截断前缀得到真实号码
166
-              DestinationNumber: res.targetPhoneNum, //
167
-            };
168
-            store.dispatch("ChangeCallNum", phoneNumber);
169
-            Send(this.scoketDatas);
191
+              DestinationNumber: res.targetPhoneNum //
192
+            }
193
+            store.dispatch('ChangeCallNum', phoneNumber)
194
+            Send(this.scoketDatas)
170 195
           }
171
-        });
196
+        })
172 197
       } else {
173 198
         this.$message({
174
-          message: "获取电话号码失败!",
175
-          type: "warning",
176
-        });
199
+          message: '获取电话号码失败!',
200
+          type: 'warning'
201
+        })
177 202
       }
178 203
     },
179 204
     // 详情
180 205
     getDetail(id) {
181 206
       getDetailConsult(id).then((response) => {
182
-        if (response.state.toLowerCase() === "success") {
183
-          const res = response.data;
207
+        if (response.state.toLowerCase() === 'success') {
208
+          const res = response.data
184 209
           // this.orderDetailData.workId = res.workId // 工单编号
185 210
           // this.orderDetailData.cusCode = res.cusCode // 客户代码
186 211
           // this.orderDetailData.cusName = res.cusName // 客户名称
@@ -191,24 +216,24 @@ export default {
191 216
           // this.orderDetailData.callNum = res.callNum // 来电号码
192 217
           // this.orderDetailData.content = res.content // 咨询内容
193 218
           // this.orderDetailData.isClose = res.isClose // 咨询内容
194
-          this.orderDetailData = res;
219
+          this.orderDetailData = res
195 220
         }
196
-      });
221
+      })
197 222
     },
198 223
     // 获取处理结果
199 224
     getProcessingResult() {
200 225
       const params = {
201
-        workid: this.workId,
202
-      };
226
+        workid: this.workId
227
+      }
203 228
       searchOrderMove(params)
204 229
         .then((response) => {
205
-          this.orderDetailData.processingResult = response.data.dealcontent;
230
+          this.orderDetailData.processingResult = response.data.dealcontent
206 231
         })
207
-        .catch(() => {});
208
-      return;
209
-    },
210
-  },
211
-};
232
+        .catch(() => {})
233
+      return
234
+    }
235
+  }
236
+}
212 237
 </script>
213 238
 
214 239
 <style rel="stylesheet/scss" lang="scss">

+ 66 - 66
CallCenterWeb.UI/src/views/callConsultType/consultList/index.vue

@@ -164,25 +164,25 @@
164 164
   </div>
165 165
 </template>
166 166
 <script>
167
-import { getConsultList } from "@/api/callConsultType/callConsultType";
168
-import { pickerOptions, formatterContent } from "@/utils";
169
-import Pagination from "@/components/Pagination"; // 对el-pagination 二次封装
170
-import { mapGetters } from "vuex";
171
-import { getDictionary } from "@/api/commonAPI";
172
-import detail from "./detail";
167
+import { getConsultList } from '@/api/callConsultType/callConsultType'
168
+import { pickerOptions, formatterContent } from '@/utils'
169
+import Pagination from '@/components/Pagination' // 对el-pagination 二次封装
170
+import { mapGetters } from 'vuex'
171
+import { getDictionary } from '@/api/commonAPI'
172
+import detail from './detail'
173 173
 export default {
174
-  name: "MyTask",
174
+  name: 'MyTask',
175 175
   components: {
176
-    Pagination,
176
+    Pagination
177 177
   },
178 178
   filters: {
179 179
     isCloseFilter(status) {
180 180
       const statusMap = {
181
-        0: "关闭",
182
-        1: "不关闭",
183
-      };
184
-      return statusMap[status];
185
-    },
181
+        0: '关闭',
182
+        1: '不关闭'
183
+      }
184
+      return statusMap[status]
185
+    }
186 186
   },
187 187
   data() {
188 188
     return {
@@ -192,53 +192,53 @@ export default {
192 192
       callTypeValue: 0,
193 193
       callTypeData: [
194 194
         {
195
-          value: "",
196
-          label: "全部",
195
+          value: '',
196
+          label: '全部'
197 197
         },
198 198
         {
199 199
           value: 0,
200
-          label: "呼入",
200
+          label: '呼入'
201 201
         },
202 202
         {
203 203
           value: 1,
204
-          label: "呼出",
204
+          label: '呼出'
205 205
         },
206 206
         {
207 207
           value: 2,
208
-          label: "手制工单",
209
-        },
208
+          label: '手制工单'
209
+        }
210 210
       ],
211
-      slType: "", // 咨询类型
211
+      slType: '', // 咨询类型
212 212
       loading: false,
213 213
       searchData: {
214
-        cusCode: "", // 客户代码
215
-        cusName: "", // 客户名称
216
-        salMan: "", // 售后经理
217
-        cusPname: "", // 联系人
218
-        workId: "", // 工单编号
219
-        searchTime: "", // 时间
214
+        cusCode: '', // 客户代码
215
+        cusName: '', // 客户名称
216
+        salMan: '', // 售后经理
217
+        cusPname: '', // 联系人
218
+        workId: '', // 工单编号
219
+        searchTime: '' // 时间
220 220
       },
221 221
       pageParams: {
222 222
         pageindex: 1, // 当前第几页
223 223
         pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
224
-        total: 0, // 总共多少数据
224
+        total: 0 // 总共多少数据
225 225
       },
226 226
       consultList: [], // 咨询信息列表数据
227
-      taskRowClickId: "", // 选中客户代码
228
-      contactId: "", // 联系人id
229
-    };
227
+      taskRowClickId: '', // 选中客户代码
228
+      contactId: '' // 联系人id
229
+    }
230 230
   },
231 231
   computed: {
232
-    ...mapGetters(["userid", "zxbh"]),
232
+    ...mapGetters(['userid', 'zxbh'])
233 233
   },
234 234
   created() {
235
-    this.getConsultType();
236
-    this.getList();
235
+    this.getConsultType()
236
+    this.getList()
237 237
     document.onkeyup = (e) => {
238 238
       if (e.keyCode === 13) {
239
-        this.getList();
239
+        this.getList()
240 240
       }
241
-    };
241
+    }
242 242
   },
243 243
 
244 244
   methods: {
@@ -249,23 +249,23 @@ export default {
249 249
           f_IsLeaf: 1,
250 250
           parentId: 68,
251 251
           pageindex: 1,
252
-          pagesize: 10,
253
-        };
252
+          pagesize: 10
253
+        }
254 254
         getDictionary(params).then((response) => {
255
-          if (response.state.toLowerCase() === "success") {
256
-            this.consultType = response.data;
255
+          if (response.state.toLowerCase() === 'success') {
256
+            this.consultType = response.data
257 257
           }
258
-        });
259
-      });
258
+        })
259
+      })
260 260
     },
261 261
     // 受理类型
262 262
     changeType(event, item) {
263
-      this.slType = event;
264
-      console.log(this.slType);
263
+      this.slType = event
264
+      console.log(this.slType)
265 265
     },
266 266
     // 获取咨询列表
267 267
     getList() {
268
-      this.loading = true;
268
+      this.loading = true
269 269
       return new Promise((resolve) => {
270 270
         const params = {
271 271
           pageindex: this.pageParams.pageindex, // 第几页
@@ -283,29 +283,29 @@ export default {
283 283
           callName: this.slType,
284 284
           beginTime:
285 285
             this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
286
-          endTime: this.searchData.searchTime && this.searchData.searchTime[1], // 添加结束时间
287
-        };
288
-        if (params.callType === "") {
289
-          delete params.callType;
286
+          endTime: this.searchData.searchTime && this.searchData.searchTime[1] // 添加结束时间
287
+        }
288
+        if (params.callType === '') {
289
+          delete params.callType
290 290
         }
291 291
         getConsultList(params).then((response) => {
292
-          this.loading = false;
293
-          if (response.state.toLowerCase() === "success") {
292
+          this.loading = false
293
+          if (response.state.toLowerCase() === 'success') {
294 294
             if (response.total == null) {
295
-              this.pageParams.total = 0;
295
+              this.pageParams.total = 0
296 296
             } else {
297
-              this.pageParams.total = response.total;
297
+              this.pageParams.total = response.total
298 298
             }
299
-            this.consultList = response.data;
299
+            this.consultList = response.data
300 300
           }
301
-        });
302
-        resolve();
303
-      });
301
+        })
302
+        resolve()
303
+      })
304 304
     },
305 305
     // 搜索
306 306
     btn_search_task() {
307
-      this.pageParams.pageindex = 1;
308
-      this.getList();
307
+      this.pageParams.pageindex = 1
308
+      this.getList()
309 309
     },
310 310
 
311 311
     // 点击某一行
@@ -314,15 +314,15 @@ export default {
314 314
         content: {
315 315
           content: detail, // 传递的组件对象
316 316
           parent: this, // 当前的vue对象
317
-          data: { rowid: row.id, workId: row.workId }, // props
317
+          data: { rowid: row.id, workId: row.workId, filePath: row.filePath } // props
318 318
         },
319
-        area: ["60%", "40%"],
320
-        title: "工单详情",
321
-      });
322
-      console.log(row);
323
-    },
324
-  },
325
-};
319
+        area: ['60%', '40%'],
320
+        title: '工单详情'
321
+      })
322
+      console.log(row)
323
+    }
324
+  }
325
+}
326 326
 </script>
327 327
 
328 328
 <style rel="stylesheet/scss" lang="scss" scoped>

+ 119 - 94
CallCenterWeb.UI/src/views/callConsultType/toDeal/detail.vue

@@ -8,6 +8,12 @@
8 8
               <svg-icon class="title_icon" icon-class="hongqi" />工单编号:{{
9 9
                 orderDetailData.workId
10 10
               }}
11
+              <svg-icon
12
+                v-if="filePath"
13
+                class="rec_file"
14
+                icon-class="bofangluyin"
15
+                @click.native="playSound(filePath, filePath)"
16
+              />
11 17
             </h1>
12 18
           </el-col>
13 19
           <el-col :md="24" class="order_detail_content">
@@ -87,86 +93,105 @@
87 93
 import {
88 94
   addOrderMove,
89 95
   editOrderMove,
90
-  searchOrderMove,
91
-} from "@/api/orderMove/orderMove";
92
-import { getDetailConsult } from "@/api/callConsultType/callConsultType";
93
-import { mapGetters } from "vuex";
94
-import { Send } from "@/utils/telWebsocket";
95
-import { getCallOutprefix } from "@/api/teloperation";
96
-import store from "@/store";
96
+  searchOrderMove
97
+} from '@/api/orderMove/orderMove'
98
+import { getDetailConsult } from '@/api/callConsultType/callConsultType'
99
+import { mapGetters } from 'vuex'
100
+import { Send } from '@/utils/telWebsocket'
101
+import { getCallOutprefix } from '@/api/teloperation'
102
+import store from '@/store'
103
+import audioPlayer from '@/components/audioPlayer'
97 104
 
98 105
 export default {
99
-  name: "Detail",
106
+  name: 'Detail',
107
+  components: { audioPlayer },
100 108
   props: {
101 109
     rowid: {
102 110
       type: Number,
103
-      default: 0,
111
+      default: 0
104 112
     },
105 113
     rowWorkId: {
106 114
       type: String,
107
-      default: "",
115
+      default: ''
108 116
     },
109 117
     layerid: {
110 118
       type: String,
111
-      default: "",
119
+      default: ''
112 120
     },
121
+    filePath: {
122
+      type: String,
123
+      default: ''
124
+    }
113 125
   },
114 126
   data() {
115 127
     return {
116
-      judgeId: "", // 判断是否流转
117
-      checked: "", // 是否关闭
118
-      result: "", // 处理结果
119
-      activeName: "first",
128
+      judgeId: '', // 判断是否流转
129
+      checked: '', // 是否关闭
130
+      result: '', // 处理结果
131
+      activeName: 'first',
120 132
       orderDetailData: {
121
-        workId: "", // 工单编号
122
-        cusCode: "", // 客户代码
123
-        cusName: "", // 客户名称
124
-        salMan: "", // 销售经理
125
-        salManTel: "", // 经理电话
126
-        callName: "", // 咨询类型
127
-        linkName: "", // 联系人
128
-        callNum: "", // 来电号码
129
-        dutydept: "", // 责任科室
130
-        dutyman: "", // 责任人
131
-        rate: "", // 发生频率
132
-        content: "", // 咨询内容
133
-      },
134
-    };
133
+        workId: '', // 工单编号
134
+        cusCode: '', // 客户代码
135
+        cusName: '', // 客户名称
136
+        salMan: '', // 销售经理
137
+        salManTel: '', // 经理电话
138
+        callName: '', // 咨询类型
139
+        linkName: '', // 联系人
140
+        callNum: '', // 来电号码
141
+        dutydept: '', // 责任科室
142
+        dutyman: '', // 责任人
143
+        rate: '', // 发生频率
144
+        content: '' // 咨询内容
145
+      }
146
+    }
135 147
   },
136 148
   computed: {
137 149
     ...mapGetters([
138
-      "usercode", // 工号
139
-      "extension", // 分机号
140
-      "sidebar",
141
-      "avatar",
142
-      "telCallType", // 通话类型
143
-      "telIsVisCallout", // 外呼面板是否显示
144
-      "zxbh",
145
-      "groupid",
146
-    ]),
150
+      'usercode', // 工号
151
+      'extension', // 分机号
152
+      'sidebar',
153
+      'avatar',
154
+      'telCallType', // 通话类型
155
+      'telIsVisCallout', // 外呼面板是否显示
156
+      'zxbh',
157
+      'groupid'
158
+    ])
147 159
   },
148 160
   filters: {
149 161
     cusStatusFilter(status) {
150 162
       const statusMap = {
151
-        1: "客户",
152
-        2: "销售经理",
153
-        3: "公司人员",
154
-      };
155
-      return statusMap[status];
156
-    },
163
+        1: '客户',
164
+        2: '销售经理',
165
+        3: '公司人员'
166
+      }
167
+      return statusMap[status]
168
+    }
157 169
   },
158 170
   created() {
159
-    this.judgeHave();
171
+    this.judgeHave()
160 172
     if (this.rowid) {
161
-      this.getDetail(this.rowid);
173
+      this.getDetail(this.rowid)
162 174
     }
163 175
   },
164 176
   methods: {
177
+    // 播放录音
178
+    playSound(rec_file, artist) {
179
+      this.$layer.iframe({
180
+        content: {
181
+          content: audioPlayer, // 传递的组件对象
182
+          parent: this, // 当前的vue对象
183
+          data: { recFiles: rec_file, artists: artist.toString() } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
184
+        },
185
+        area: ['600px', '230px'],
186
+        shadeClose: true,
187
+        title: '录音详情'
188
+      })
189
+    },
165 190
     // 详情
166 191
     getDetail(id) {
167 192
       getDetailConsult(id).then((response) => {
168
-        if (response.state.toLowerCase() === "success") {
169
-          const res = response.data;
193
+        if (response.state.toLowerCase() === 'success') {
194
+          const res = response.data
170 195
           // this.orderDetailData.workId = res.workId // 工单编号
171 196
           // this.orderDetailData.cusCode = res.cusCode // 客户代码
172 197
           // this.orderDetailData.cusName = res.cusName // 客户名称
@@ -176,53 +201,53 @@ export default {
176 201
           // this.orderDetailData.linkName = res.linkName // 联系人
177 202
           // this.orderDetailData.callNum = res.callNum // 来电号码
178 203
           // this.orderDetailData.content = res.content // 咨询内容
179
-          this.orderDetailData = res;
204
+          this.orderDetailData = res
180 205
         }
181
-      });
206
+      })
182 207
     },
183 208
     // 外呼
184 209
     clickCallOut(phoneNumber) {
185
-      this.callOut(phoneNumber);
210
+      this.callOut(phoneNumber)
186 211
     },
187 212
     // 外呼
188 213
     callOut(phoneNumber) {
189 214
       if (phoneNumber) {
190 215
         getCallOutprefix(phoneNumber).then((response) => {
191
-          if (response.state.toLowerCase() === "success") {
192
-            const res = response.data;
216
+          if (response.state.toLowerCase() === 'success') {
217
+            const res = response.data
193 218
             this.scoketDatas = {
194
-              Type: "MakeCall",
219
+              Type: 'MakeCall',
195 220
               AgentID: this.usercode,
196 221
               AgentExten: this.extension,
197 222
               Header: res.fix, // 号码前缀 用于截断前缀得到真实号码
198
-              DestinationNumber: res.targetPhoneNum, //
199
-            };
200
-            store.dispatch("ChangeCallNum", phoneNumber);
201
-            Send(this.scoketDatas);
223
+              DestinationNumber: res.targetPhoneNum //
224
+            }
225
+            store.dispatch('ChangeCallNum', phoneNumber)
226
+            Send(this.scoketDatas)
202 227
           }
203
-        });
228
+        })
204 229
       } else {
205 230
         this.$message({
206
-          message: "没有电话号码!",
207
-          type: "warning",
208
-        });
231
+          message: '没有电话号码!',
232
+          type: 'warning'
233
+        })
209 234
       }
210 235
     },
211 236
     // 判断是否流转
212 237
     judgeHave() {
213 238
       const params = {
214
-        workid: this.rowWorkId,
215
-      };
239
+        workid: this.rowWorkId
240
+      }
216 241
       searchOrderMove(params)
217 242
         .then((response) => {
218
-          this.judgeId = response.data.id;
219
-          this.result = response.data.dealcontent;
220
-          console.log(this.judgeId);
243
+          this.judgeId = response.data.id
244
+          this.result = response.data.dealcontent
245
+          console.log(this.judgeId)
221 246
         })
222 247
         .catch(() => {
223
-          console.log(2);
224
-        });
225
-      return;
248
+          console.log(2)
249
+        })
250
+      return
226 251
     },
227 252
     // 保存
228 253
     save() {
@@ -230,42 +255,42 @@ export default {
230 255
         const datas = {
231 256
           workid: this.rowWorkId,
232 257
           isClose: -(Number(this.checked) - 1),
233
-          dealcontent: this.result,
234
-        };
258
+          dealcontent: this.result
259
+        }
235 260
         addOrderMove(datas).then((response) => {
236
-          if (response.state.toLowerCase() === "success") {
237
-            this.$parent.$layer.close(this.layerid);
238
-            this.$parent.getList(); // 重新加载父级数据
261
+          if (response.state.toLowerCase() === 'success') {
262
+            this.$parent.$layer.close(this.layerid)
263
+            this.$parent.getList() // 重新加载父级数据
239 264
             this.$message({
240
-              message: "恭喜你,工单处理成功!",
241
-              type: "success",
242
-              duration: 1000,
243
-            });
265
+              message: '恭喜你,工单处理成功!',
266
+              type: 'success',
267
+              duration: 1000
268
+            })
244 269
           }
245
-        });
270
+        })
246 271
       } else {
247 272
         const datas2 = {
248 273
           id: this.judgeId,
249 274
           workid: this.rowWorkId,
250 275
           isClose: -(Number(this.checked) - 1),
251
-          dealcontent: this.result,
252
-        };
276
+          dealcontent: this.result
277
+        }
253 278
         editOrderMove(datas2).then((response) => {
254
-          this.loading = false;
255
-          if (response.state.toLowerCase() === "success") {
256
-            this.$parent.$layer.close(this.layerid);
257
-            this.$parent.getList(); // 重新加载父级数据
279
+          this.loading = false
280
+          if (response.state.toLowerCase() === 'success') {
281
+            this.$parent.$layer.close(this.layerid)
282
+            this.$parent.getList() // 重新加载父级数据
258 283
             this.$message({
259
-              message: "恭喜你,工单处理成功!",
260
-              type: "success",
261
-              duration: 1000,
262
-            });
284
+              message: '恭喜你,工单处理成功!',
285
+              type: 'success',
286
+              duration: 1000
287
+            })
263 288
           }
264
-        });
289
+        })
265 290
       }
266
-    },
267
-  },
268
-};
291
+    }
292
+  }
293
+}
269 294
 </script>
270 295
 
271 296
 <style rel="stylesheet/scss" lang="scss">

+ 3 - 1
CallCenterWeb.UI/src/views/callConsultType/toDeal/index.vue

@@ -209,6 +209,8 @@ export default {
209 209
           label: '手制工单'
210 210
         }
211 211
       ],
212
+      downloadLoading: false,
213
+      disableBL: false,
212 214
       pageParams: {
213 215
         pageindex: 1, // 当前第几页
214 216
         pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
@@ -414,7 +416,7 @@ export default {
414 416
         content: {
415 417
           content: detail, // 传递的组件对象
416 418
           parent: this, // 当前的vue对象
417
-          data: { rowid: row.id, rowWorkId: row.workId } // props
419
+          data: { rowid: row.id, rowWorkId: row.workId, filePath: row.filePath } // props
418 420
         },
419 421
         area: ['60%', '55%'],
420 422
         title: '工单详情'

File diff suppressed because it is too large
+ 470 - 470
CallCenterWeb.UI/src/views/faxManager/faxTransmission/index.vue


+ 254 - 254
CallCenterWeb.UI/src/views/faxManager/faxTransmission/updateFax.vue

@@ -68,8 +68,8 @@
68 68
               {
69 69
                 required: true,
70 70
                 message: '请输入要求完成日期!',
71
-                trigger: 'blur',
72
-              },
71
+                trigger: 'blur'
72
+              }
73 73
             ]"
74 74
             label="要求完成日期"
75 75
             label-width="120px"
@@ -287,138 +287,138 @@
287 287
 import {
288 288
   getCusDetail,
289 289
   addCustomerList,
290
-  editCustomerList,
291
-} from "@/api/customerManagement/customerList";
292
-import { mapGetters } from "vuex";
293
-import { getAddressBookingList } from "@/api/systemSetup/addressBookingManagement/addressBookingManagement";
290
+  editCustomerList
291
+} from '@/api/customerManagement/customerList'
292
+import { mapGetters } from 'vuex'
293
+import { getAddressBookingList } from '@/api/systemSetup/addressBookingManagement/addressBookingManagement'
294 294
 
295 295
 import {
296 296
   updateFax,
297 297
   getfaxById,
298
-  SynchronousFax,
299
-} from "@/api/faxManager/faxManager";
300
-import { filterContent, getNowDateTime } from "@/utils";
301
-import { getCustomerList } from "@/api/customerManagement/customerList";
302
-import { getDictionary } from "@/api/commonAPI";
303
-import cuslist from "./cuslist";
304
-import czylist from "./czylist";
298
+  SynchronousFax
299
+} from '@/api/faxManager/faxManager'
300
+import { filterContent, getNowDateTime } from '@/utils'
301
+import { getCustomerList } from '@/api/customerManagement/customerList'
302
+import { getDictionary } from '@/api/commonAPI'
303
+import cuslist from './cuslist'
304
+import czylist from './czylist'
305 305
 export default {
306
-  name: "AddOrEdit",
306
+  name: 'AddOrEdit',
307 307
   props: {
308 308
     rowid: {
309 309
       type: Number,
310
-      default: "",
310
+      default: ''
311 311
     },
312 312
     faxNum: {
313 313
       type: String,
314
-      default: "",
314
+      default: ''
315 315
     },
316 316
     layerid: {
317 317
       type: String,
318
-      default: "",
319
-    },
318
+      default: ''
319
+    }
320 320
   },
321 321
   computed: {
322
-    ...mapGetters(["token", "username", "zxbh"]),
322
+    ...mapGetters(['token', 'username', 'zxbh'])
323 323
   },
324 324
   components: {
325
-    cuslist,
325
+    cuslist
326 326
   },
327 327
   data() {
328 328
     return {
329
-      salecode: "", // 销售经理编号
330
-      checkedOne: "", // 同步
331
-      checkedclose: "", // 闭环
332
-      checkednum: "", // 不用编号
333
-      intcolor: "", // 原始color
329
+      salecode: '', // 销售经理编号
330
+      checkedOne: '', // 同步
331
+      checkedclose: '', // 闭环
332
+      checkednum: '', // 不用编号
333
+      intcolor: '', // 原始color
334 334
       fileList: [], // 上传文件数组
335 335
 
336 336
       ruleForm: {
337
-        faxColor: "", // 颜色
338
-        faxPhone: "", // 传真号码
339
-        faxNumber: "", // 传真编号
340
-        clientId: "", // 客户id
341
-        cusCode: "", // 客户代码
342
-        companyName: "", // 单位名称
343
-        payment: "", // 付款方式
344
-        faxType: "", // 传真类型
345
-        czyId: "", // 经办人id
346
-        czyName: "", // 经办人
347
-        saleManager: "", // 销售经理
348
-        requiredCompletionTime: "", // 要求完成日期
349
-        chargeOffsTime: "", // 计划员销账日期
350
-        completionTime: "", // 闭环日期
351
-        isClose: "", // 是否关闭
352
-        isInitiate: "", // 是否发起
353
-        remark: "", // 备注
354
-        speciRemark: "", // 特殊要求
355
-        content: "", // 内容
356
-        cusSign: "", // 客户类型
357
-        planner: "", // 计划员
358
-        priceManager: "", // 价格管理员
359
-        salesManager: "", // 销售管理员
360
-        contractManager: "", // 合同管理员
361
-        customerService: "", // 客服专员
362
-        customer: "", // 保存传真后的客户
363
-        creditManager: "", // 信用管理员
364
-        cusTrade: "", // 所属行业
365
-        area: "", // 片区
366
-        cusPname: "", // 联系人
367
-        cusTel: "", // 联系号码
368
-        sourceType: "", // 数据来源
369
-        zxbh: "",
370
-        cusAdd: "", // 客户地址
371
-        cusServicerTel: "", // 客户电话
372
-        impSign: "", // 是否关键客户
373
-        salManTel: "", // 销售经理电话
374
-        cusAsk: "", // 客服要求
337
+        faxColor: '', // 颜色
338
+        faxPhone: '', // 传真号码
339
+        faxNumber: '', // 传真编号
340
+        clientId: '', // 客户id
341
+        cusCode: '', // 客户代码
342
+        companyName: '', // 单位名称
343
+        payment: '', // 付款方式
344
+        faxType: '', // 传真类型
345
+        czyId: '', // 经办人id
346
+        czyName: '', // 经办人
347
+        saleManager: '', // 销售经理
348
+        requiredCompletionTime: '', // 要求完成日期
349
+        chargeOffsTime: '', // 计划员销账日期
350
+        completionTime: '', // 闭环日期
351
+        isClose: '', // 是否关闭
352
+        isInitiate: '', // 是否发起
353
+        remark: '', // 备注
354
+        speciRemark: '', // 特殊要求
355
+        content: '', // 内容
356
+        cusSign: '', // 客户类型
357
+        planner: '', // 计划员
358
+        priceManager: '', // 价格管理员
359
+        salesManager: '', // 销售管理员
360
+        contractManager: '', // 合同管理员
361
+        customerService: '', // 客服专员
362
+        customer: '', // 保存传真后的客户
363
+        creditManager: '', // 信用管理员
364
+        cusTrade: '', // 所属行业
365
+        area: '', // 片区
366
+        cusPname: '', // 联系人
367
+        cusTel: '', // 联系号码
368
+        sourceType: '', // 数据来源
369
+        zxbh: '',
370
+        cusAdd: '', // 客户地址
371
+        cusServicerTel: '', // 客户电话
372
+        impSign: '', // 是否关键客户
373
+        salManTel: '', // 销售经理电话
374
+        cusAsk: '' // 客服要求
375 375
       },
376 376
       customerFlag: false,
377
-      faxNumber: "", // 传真编号
378
-      faxPhone: "",
377
+      faxNumber: '', // 传真编号
378
+      faxPhone: '',
379 379
       rules: {},
380 380
       faxType: [], // 传真类型数据
381 381
       loading: false,
382
-      sonmsg: "",
383
-      cusFax: "", // 新同步后的传真号码
384
-      cusFaxBackup: "", // 新同步后的传真号码
382
+      sonmsg: '',
383
+      cusFax: '', // 新同步后的传真号码
384
+      cusFaxBackup: '', // 新同步后的传真号码
385 385
       paymentType: [
386 386
         {
387
-          id: "A",
388
-          value: "按固定比例定期结算",
387
+          id: 'A',
388
+          value: '按固定比例定期结算'
389 389
         },
390 390
         {
391
-          id: "B",
392
-          value: "货到验收合格后,较好催收",
391
+          id: 'B',
392
+          value: '货到验收合格后,较好催收'
393 393
         },
394 394
         {
395
-          id: "C",
396
-          value: "货到验收合格后,较难催收",
395
+          id: 'C',
396
+          value: '货到验收合格后,较难催收'
397 397
         },
398 398
         {
399
-          id: "D",
400
-          value: "款到发货",
399
+          id: 'D',
400
+          value: '款到发货'
401 401
         },
402 402
         {
403
-          id: "E",
404
-          value: "款到后合同生效",
405
-        },
406
-      ],
407
-    };
403
+          id: 'E',
404
+          value: '款到后合同生效'
405
+        }
406
+      ]
407
+    }
408 408
   },
409 409
 
410 410
   created() {
411
-    this.faxNumber = this.faxNum;
411
+    this.faxNumber = this.faxNum
412 412
     if (this.rowid) {
413
-      this.ruleForm.id = this.rowid;
414
-      this.getDetail(this.ruleForm.id);
413
+      this.ruleForm.id = this.rowid
414
+      this.getDetail(this.ruleForm.id)
415 415
     }
416
-    this.getfaxType();
416
+    this.getfaxType()
417 417
     document.onkeyup = (e) => {
418 418
       if (e.keyCode === 13) {
419
-        this.$parent.getList();
419
+        this.$parent.getList()
420 420
       }
421
-    };
421
+    }
422 422
   },
423 423
   methods: {
424 424
     // 关联销售经理编号
@@ -427,69 +427,69 @@ export default {
427 427
         const params = {
428 428
           pageindex: 1, // 第几页
429 429
           pagesize: 20, // 每页几条信息
430
-          name: String(this.ruleForm.saleManager),
431
-        };
430
+          name: String(this.ruleForm.saleManager)
431
+        }
432 432
         getAddressBookingList(params).then((response) => {
433
-          if (response.state.toLowerCase() === "success") {
433
+          if (response.state.toLowerCase() === 'success') {
434 434
             if (response.data) {
435
-              this.salecode = response.data[0].employeeNum;
435
+              this.salecode = response.data[0].employeeNum
436 436
             } else {
437
-              this.salecode = "";
437
+              this.salecode = ''
438 438
             }
439 439
           }
440
-        });
441
-        resolve();
442
-      });
440
+        })
441
+        resolve()
442
+      })
443 443
     },
444 444
     // 选择
445 445
     selectClose(checked) {
446 446
       if (checked === true) {
447
-        this.ruleForm.isClose = 1;
448
-        this.ruleForm.chargeOffsTime = getNowDateTime();
449
-        this.ruleForm.completionTime = getNowDateTime();
447
+        this.ruleForm.isClose = 1
448
+        this.ruleForm.chargeOffsTime = getNowDateTime()
449
+        this.ruleForm.completionTime = getNowDateTime()
450 450
       } else {
451
-        this.ruleForm.isClose = 2;
452
-        this.ruleForm.completionTime = "";
451
+        this.ruleForm.isClose = 2
452
+        this.ruleForm.completionTime = ''
453 453
       }
454 454
     },
455 455
     // 保存传真信息
456 456
     submitInfo() {
457
-      var str = ""; // 最后的传参
458
-      var arr = [];
457
+      var str = '' // 最后的传参
458
+      var arr = []
459 459
       if (this.cusFax != null) {
460
-        arr = this.cusFax.split(",");
460
+        arr = this.cusFax.split(',')
461 461
       }
462
-      const arrBackup = this.cusFaxBackup.split(",");
463
-      this.cusFax = ",";
462
+      const arrBackup = this.cusFaxBackup.split(',')
463
+      this.cusFax = ','
464 464
       for (let i = 0; i < arr.length; i++) {
465
-        const a = this.cusFax.indexOf(arr[i]);
466
-        if (arr[i] === "") {
467
-          continue;
465
+        const a = this.cusFax.indexOf(arr[i])
466
+        if (arr[i] === '') {
467
+          continue
468 468
         }
469
-        if (this.cusFax.indexOf("," + arr[i] + ",") == -1) {
470
-          this.cusFax = this.cusFax + arr[i] + ",";
469
+        if (this.cusFax.indexOf(',' + arr[i] + ',') == -1) {
470
+          this.cusFax = this.cusFax + arr[i] + ','
471 471
         }
472 472
       }
473 473
       for (let i = 0; i < arrBackup.length; i++) {
474
-        if (arrBackup[i] === "") {
475
-          continue;
474
+        if (arrBackup[i] === '') {
475
+          continue
476 476
         }
477 477
         if (this.cusFax.indexOf(arrBackup[i]) == -1) {
478
-          this.cusFax = arrBackup[i] + "," + this.cusFax;
478
+          this.cusFax = arrBackup[i] + ',' + this.cusFax
479 479
         }
480 480
       }
481 481
 
482 482
       if (this.cusFax.indexOf(this.ruleForm.faxPhone) == -1) {
483
-        this.cusFax = this.cusFax + "," + this.ruleForm.faxPhone;
483
+        this.cusFax = this.cusFax + ',' + this.ruleForm.faxPhone
484 484
       }
485
-      this.cusFaxBackup = this.cusFax + "," + this.ruleForm.faxPhone;
486
-      const array = this.cusFax.split(",");
485
+      this.cusFaxBackup = this.cusFax + ',' + this.ruleForm.faxPhone
486
+      const array = this.cusFax.split(',')
487 487
       for (let i = 0; i < array.length; i++) {
488 488
         if (array[i]) {
489
-          str += array[i] + ",";
489
+          str += array[i] + ','
490 490
         }
491 491
       }
492
-      str = str.substring(0, str.lastIndexOf(","));
492
+      str = str.substring(0, str.lastIndexOf(','))
493 493
 
494 494
       return new Promise((resolve) => {
495 495
         const data = {
@@ -511,27 +511,27 @@ export default {
511 511
           cusSign: this.ruleForm.cusSign, // 客户类型
512 512
           cusServicerTel: this.ruleForm.cusServicerTel, // 客服电话
513 513
           salManTel: this.ruleForm.salManTel, // 经理电话
514
-          cusAsk: this.ruleForm.cusAsk, // 特殊要求
515
-        };
516
-        console.log(data);
514
+          cusAsk: this.ruleForm.cusAsk // 特殊要求
515
+        }
516
+        console.log(data)
517 517
         editCustomerList(data).then((res) => {
518
-          if (res.state.toLowerCase() === "success") {
518
+          if (res.state.toLowerCase() === 'success') {
519 519
             if (!this.customerFlag) {
520 520
               this.$message({
521
-                type: "success",
522
-                message: "成功保存到客户管理!",
523
-                duration: 1000,
524
-              });
521
+                type: 'success',
522
+                message: '成功保存到客户管理!',
523
+                duration: 1000
524
+              })
525 525
             }
526
-            this.customerFlag = false;
526
+            this.customerFlag = false
527 527
           }
528
-        });
529
-        resolve();
530
-      });
528
+        })
529
+        resolve()
530
+      })
531 531
     },
532 532
     //  提交
533 533
     submitForm() {
534
-      const roleId = localStorage.roleId;
534
+      const roleId = localStorage.roleId
535 535
       // 传真号码关联客户管理
536 536
 
537 537
       // 同步
@@ -539,139 +539,139 @@ export default {
539 539
         // var p1 = new Promise((resolve) => {
540 540
         const params = {
541 541
           sourceId: this.rowid,
542
-          targetFaxNumber: this.ruleForm.faxNumber,
543
-        };
542
+          targetFaxNumber: this.ruleForm.faxNumber
543
+        }
544 544
         SynchronousFax(params).then((response) => {
545
-          if (response.state.toLowerCase() === "success") {
546
-            this.$parent.$layer.close(this.layerid);
545
+          if (response.state.toLowerCase() === 'success') {
546
+            this.$parent.$layer.close(this.layerid)
547 547
             this.$message({
548
-              type: "success",
549
-              message: "同步成功!",
550
-              duration: 1000,
551
-            });
552
-            this.$parent.getList(); // 重新加载父级数据
548
+              type: 'success',
549
+              message: '同步成功!',
550
+              duration: 1000
551
+            })
552
+            this.$parent.getList() // 重新加载父级数据
553 553
           }
554 554
           // })
555
-        });
555
+        })
556 556
       } else {
557 557
         this.$refs.ruleForm.validate((valid) => {
558 558
           if (valid) {
559
-            this.loading = true;
559
+            this.loading = true
560 560
             // 添加
561
-            this.ruleForm.faxNumber = this.ruleForm.faxNumber;
561
+            this.ruleForm.faxNumber = this.ruleForm.faxNumber
562 562
             // this.ruleForm.faxNumber = this.faxNumber
563
-            this.ruleForm.faxPhone = this.faxPhone;
564
-            this.ruleForm.czyId = roleId;
563
+            this.ruleForm.faxPhone = this.faxPhone
564
+            this.ruleForm.czyId = roleId
565 565
             updateFax(this.ruleForm)
566 566
               .then((response) => {
567
-                this.loading = false;
568
-                if (response.state.toLowerCase() === "success") {
569
-                  this.$parent.$layer.close(this.layerid);
570
-                  this.$parent.getList(); // 重新加载父级数据
567
+                this.loading = false
568
+                if (response.state.toLowerCase() === 'success') {
569
+                  this.$parent.$layer.close(this.layerid)
570
+                  this.$parent.getList() // 重新加载父级数据
571 571
                   this.$message({
572
-                    type: "success",
573
-                    message: "恭喜你,修改成功!",
574
-                    duration: 1000,
575
-                  });
572
+                    type: 'success',
573
+                    message: '恭喜你,修改成功!',
574
+                    duration: 1000
575
+                  })
576 576
                 }
577 577
               })
578 578
               .catch(() => {
579
-                this.loading = false;
580
-              });
581
-            return;
579
+                this.loading = false
580
+              })
581
+            return
582 582
           } else {
583
-            this.$message.error("请输入有效的必填项信息!");
584
-            return false;
583
+            this.$message.error('请输入有效的必填项信息!')
584
+            return false
585 585
           }
586
-        });
586
+        })
587 587
       }
588 588
     },
589 589
     // 获取详情
590 590
     getDetail(id) {
591 591
       return new Promise((resolve) => {
592 592
         getfaxById(id).then((response) => {
593
-          if (response.state.toLowerCase() === "success") {
594
-            const res = response.data;
593
+          if (response.state.toLowerCase() === 'success') {
594
+            const res = response.data
595 595
             if (res.recvFax) {
596
-              if (res.recvFax.ldc == "379") {
597
-                this.ruleForm.faxPhone = res.faxPhone;
596
+              if (res.recvFax.ldc == '379') {
597
+                this.ruleForm.faxPhone = res.faxPhone
598 598
               } else {
599 599
                 // this.ruleForm.faxPhone = '0' + res.recvFax.ldc + res.faxPhone
600
-                this.ruleForm.faxPhone = res.faxPhone;
600
+                this.ruleForm.faxPhone = res.faxPhone
601 601
               }
602 602
             } else {
603
-              this.ruleForm.faxPhone = res.faxPhone; // 传真号码
603
+              this.ruleForm.faxPhone = res.faxPhone // 传真号码
604 604
             }
605
-            this.faxPhone = res.faxPhone;
606
-            this.cusFaxBackup = this.faxPhone;
607
-            this.ruleForm.clientId = res.clientId; // 客户id
605
+            this.faxPhone = res.faxPhone
606
+            this.cusFaxBackup = this.faxPhone
607
+            this.ruleForm.clientId = res.clientId // 客户id
608 608
             if (res.clientId) {
609
-              this.getcustomDetail(res.clientId);
609
+              this.getcustomDetail(res.clientId)
610 610
             }
611
-            this.ruleForm.cusCode = res.cusCode; // 客户代码
612
-            this.ruleForm.faxNumber = res.faxNumber; // 传真编号
613
-            this.ruleForm.companyName = res.companyName; // 单位名称
611
+            this.ruleForm.cusCode = res.cusCode // 客户代码
612
+            this.ruleForm.faxNumber = res.faxNumber // 传真编号
613
+            this.ruleForm.companyName = res.companyName // 单位名称
614 614
             this.ruleForm.payment =
615
-              res.payment == null ? "" : res.payment.toString(); // 付款方式
616
-            this.ruleForm.faxType = res.faxType; // 传真类型
617
-            this.ruleForm.czyId = res.czyId; // 经办人id
618
-            this.ruleForm.czyName = res.czyName; // 经办人
619
-            this.ruleForm.saleManager = res.saleManager; // 销售经理
615
+              res.payment == null ? '' : res.payment.toString() // 付款方式
616
+            this.ruleForm.faxType = res.faxType // 传真类型
617
+            this.ruleForm.czyId = res.czyId // 经办人id
618
+            this.ruleForm.czyName = res.czyName // 经办人
619
+            this.ruleForm.saleManager = res.saleManager // 销售经理
620 620
             if (this.ruleForm.saleManager) {
621
-              this.linksalecode();
621
+              this.linksalecode()
622 622
             }
623
-            this.ruleForm.requiredCompletionTime = res.requiredCompletionTime; // 要求完成日期
624
-            this.ruleForm.chargeOffsTime = res.chargeOffsTime; // 计划员销账日期
625
-            this.ruleForm.completionTime = res.completionTime; // 闭环日期
626
-            this.ruleForm.isClose = res.isClose;
627
-            if (res.isClose == "1") {
628
-              this.checkedclose = true;
623
+            this.ruleForm.requiredCompletionTime = res.requiredCompletionTime // 要求完成日期
624
+            this.ruleForm.chargeOffsTime = res.chargeOffsTime // 计划员销账日期
625
+            this.ruleForm.completionTime = res.completionTime // 闭环日期
626
+            this.ruleForm.isClose = res.isClose
627
+            if (res.isClose == '1') {
628
+              this.checkedclose = true
629 629
             } else {
630
-              this.checkedclose = false;
630
+              this.checkedclose = false
631 631
             }
632
-            this.ruleForm.isInitiate = res.isInitiate; // 是否发起
633
-            this.ruleForm.remark = res.remark; // 备注
634
-            this.ruleForm.speciRemark = res.speciRemark; // 特殊要求
635
-            this.ruleForm.content = res.content; // 内容
636
-            this.ruleForm.cusSign = res.cusSign; // 客户类型
637
-            this.ruleForm.planner = res.planner; // 计划员
638
-            this.ruleForm.priceManager = res.priceManager; // 价格管理员
639
-            this.ruleForm.salesManager = res.salesManager; // 销售管理员
640
-            this.ruleForm.contractManager = res.contractManager; // 合同管理员
641
-            this.ruleForm.customerService = res.customerService; // 客服专员
642
-            this.ruleForm.creditManager = res.creditManager; // 信用管理员
643
-            this.intcolor = res.faxColor;
644
-            if (this.intcolor === "2") {
645
-              this.checkednum = true;
632
+            this.ruleForm.isInitiate = res.isInitiate // 是否发起
633
+            this.ruleForm.remark = res.remark // 备注
634
+            this.ruleForm.speciRemark = res.speciRemark // 特殊要求
635
+            this.ruleForm.content = res.content // 内容
636
+            this.ruleForm.cusSign = res.cusSign // 客户类型
637
+            this.ruleForm.planner = res.planner // 计划员
638
+            this.ruleForm.priceManager = res.priceManager // 价格管理员
639
+            this.ruleForm.salesManager = res.salesManager // 销售管理员
640
+            this.ruleForm.contractManager = res.contractManager // 合同管理员
641
+            this.ruleForm.customerService = res.customerService // 客服专员
642
+            this.ruleForm.creditManager = res.creditManager // 信用管理员
643
+            this.intcolor = res.faxColor
644
+            if (this.intcolor === '2') {
645
+              this.checkednum = true
646 646
             } else {
647
-              this.checkednum = false;
647
+              this.checkednum = false
648 648
             }
649 649
           }
650
-        });
651
-        resolve();
652
-      });
650
+        })
651
+        resolve()
652
+      })
653 653
     },
654 654
     getcustomDetail(clientId) {
655 655
       const params = {
656
-        clientId: clientId,
657
-      };
656
+        clientId: clientId
657
+      }
658 658
       getCusDetail(params).then((response) => {
659
-        if (response.state.toLowerCase() === "success") {
660
-          const res = response.data;
659
+        if (response.state.toLowerCase() === 'success') {
660
+          const res = response.data
661 661
           if (res) {
662
-            this.cusFax = res.cusFax;
663
-            this.customerFlag = true;
664
-            this.submitInfo();
662
+            this.cusFax = res.cusFax
663
+            this.customerFlag = true
664
+            this.submitInfo()
665 665
           }
666 666
         }
667
-      });
667
+      })
668 668
     },
669 669
     // 是否用编号
670 670
     selcolor(checked) {
671 671
       if (checked === true) {
672
-        this.ruleForm.faxColor = 2;
672
+        this.ruleForm.faxColor = 2
673 673
       } else {
674
-        this.ruleForm.faxColor = 1;
674
+        this.ruleForm.faxColor = 1
675 675
       }
676 676
     },
677 677
     // 重置
@@ -686,11 +686,11 @@ export default {
686 686
         content: {
687 687
           content: cuslist, // 传递的组件对象
688 688
           parent: this, // 当前的vue对象
689
-          data: {}, // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
689
+          data: {} // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
690 690
         },
691
-        area: ["60%", "500px"],
692
-        title: "客户信息",
693
-      });
691
+        area: ['60%', '500px'],
692
+        title: '客户信息'
693
+      })
694 694
     },
695 695
     // 选择经办人
696 696
     btn_selczy() {
@@ -699,11 +699,11 @@ export default {
699 699
         content: {
700 700
           content: czylist, // 传递的组件对象
701 701
           parent: this, // 当前的vue对象
702
-          data: {}, // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
702
+          data: {} // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
703 703
         },
704
-        area: ["60%", "500px"],
705
-        title: "经办人信息",
706
-      });
704
+        area: ['60%', '500px'],
705
+        title: '经办人信息'
706
+      })
707 707
     },
708 708
     // 获取传真类型
709 709
     getfaxType() {
@@ -712,51 +712,51 @@ export default {
712 712
           f_IsLeaf: 1,
713 713
           parentId: 305,
714 714
           pageindex: 1,
715
-          pagesize: 20,
716
-        };
715
+          pagesize: 20
716
+        }
717 717
         getDictionary(params).then((response) => {
718
-          if (response.state.toLowerCase() === "success") {
719
-            this.faxType = response.data;
718
+          if (response.state.toLowerCase() === 'success') {
719
+            this.faxType = response.data
720 720
           }
721
-        });
722
-      });
721
+        })
722
+      })
723 723
     },
724 724
     // 选择传真类型
725 725
     selectFaxtype(e) {
726
-      this.ruleForm.faxType = e;
726
+      this.ruleForm.faxType = e
727 727
     },
728 728
     selectpayment(e) {
729
-      this.ruleForm.payment = e;
729
+      this.ruleForm.payment = e
730 730
     },
731 731
     // 同步单位名称
732 732
     getcusName(data) {
733
-      this.cusFax = data.cusFax; // 传真号码
734
-      this.ruleForm.clientId = data.clientId; // 行id
735
-      this.ruleForm.companyName = data.cusName; // 客户名称
736
-      this.ruleForm.cusCode = data.cusCode; // 客户代码
737
-      this.ruleForm.saleManager = data.salMan; // 销售经理
738
-      this.ruleForm.cusSign = data.cusSign; // 客户类型
739
-      this.ruleForm.payment = data.cusCc == null ? "" : data.cusCc.toString(); // 付款方式
740
-      this.ruleForm.cusTrade = data.cusTrade; // 所属行业
741
-      this.ruleForm.area = data.area; // 片区
742
-      this.ruleForm.cusPname = data.cusPname; // 联系人
743
-      this.ruleForm.cusTel = data.cusTel; // 联系电话
744
-      this.ruleForm.sourceType = data.sourceType; // 数据来源
745
-      this.ruleForm.zxbh = data.zxbh; // 维护人
746
-      this.ruleForm.customer = data.cusServicer; // 客服专员
747
-      this.ruleForm.cusAdd = data.cusAdd; // 客户地址
748
-      this.ruleForm.cusServicerTel = data.cusServicerTel; // 客服电话
749
-      this.ruleForm.impSign = data.impSign; // 是否关键客户
750
-      this.ruleForm.salManTel = data.salManTel; // 销售经理电话
751
-      this.ruleForm.cusAsk = data.cusAsk; // 客服要求
733
+      this.cusFax = data.cusFax // 传真号码
734
+      this.ruleForm.clientId = data.clientId // 行id
735
+      this.ruleForm.companyName = data.cusName // 客户名称
736
+      this.ruleForm.cusCode = data.cusCode // 客户代码
737
+      this.ruleForm.saleManager = data.salMan // 销售经理
738
+      this.ruleForm.cusSign = data.cusSign // 客户类型
739
+      this.ruleForm.payment = data.cusCc == null ? '' : data.cusCc.toString() // 付款方式
740
+      this.ruleForm.cusTrade = data.cusTrade // 所属行业
741
+      this.ruleForm.area = data.area // 片区
742
+      this.ruleForm.cusPname = data.cusPname // 联系人
743
+      this.ruleForm.cusTel = data.cusTel // 联系电话
744
+      this.ruleForm.sourceType = data.sourceType // 数据来源
745
+      this.ruleForm.zxbh = data.zxbh // 维护人
746
+      this.ruleForm.customer = data.cusServicer // 客服专员
747
+      this.ruleForm.cusAdd = data.cusAdd // 客户地址
748
+      this.ruleForm.cusServicerTel = data.cusServicerTel // 客服电话
749
+      this.ruleForm.impSign = data.impSign // 是否关键客户
750
+      this.ruleForm.salManTel = data.salManTel // 销售经理电话
751
+      this.ruleForm.cusAsk = data.cusAsk // 客服要求
752 752
     },
753 753
     // 经办人
754 754
     getcusUsername(data, id) {
755
-      this.ruleForm.czyName = data;
756
-      this.ruleForm.czyId = id;
757
-    },
758
-  },
759
-};
755
+      this.ruleForm.czyName = data
756
+      this.ruleForm.czyId = id
757
+    }
758
+  }
759
+}
760 760
 </script>
761 761
 <style scoped rel="stylesheet/scss" lang="scss">
762 762
 /deep/.faxNumber .el-input__inner {
@@ -780,7 +780,7 @@ export default {
780 780
   padding: 5px;
781 781
 }
782 782
 .el-input.is-disabled .el-input__inner {
783
-  /* color: #606260 !important; */
783
+  color: #606260 !important;
784 784
   font-weight: 600 !important;
785 785
 }
786 786
 .el-input__inner::placeholder {