miaofuhao лет назад: 6
Родитель
Сommit
931c83e330

+ 10 - 1
fuwaiCallCenterWeb.UI/src/api/questionnaire/management.js

@@ -8,7 +8,16 @@ export function getPagerLists(params) {
8 8
     params
9 9
   })
10 10
 }
11
-
11
+// 获取问卷详情数据
12
+export function taskId(id) {
13
+  return request({
14
+    url: 'callcenterapi/api/callouttelnum/getteltaskdetails',
15
+    method: 'get',
16
+    params: {
17
+      id
18
+    }
19
+  })
20
+}
12 21
 // 获取问卷详情数据
13 22
 export function getPager(pageid) {
14 23
   return request({

+ 105 - 30
fuwaiCallCenterWeb.UI/src/views/clickoutbound/tasks/components/tabPager.vue

@@ -1,6 +1,16 @@
1 1
 <template>
2 2
   <div class="tabPager">
3 3
     <h1 class="pager_title">{{ title }}</h1>
4
+    <p class="remark">
5
+      <el-row :gutter="20">
6
+        <el-col :lg="8">
7
+          <span v-if="quesName">姓名: {{ quesName }}</span>
8
+        </el-col>
9
+        <el-col :lg="8">
10
+          <span v-if="quesPhone">电话: <span class="quesephon" @click="outboundClick">{{ quesPhone }}</span></span>
11
+        </el-col>
12
+      </el-row>
13
+    </p>
4 14
     <p v-if="remark" class="remark">
5 15
       {{ remark }}
6 16
     </p>
@@ -32,6 +42,15 @@
32 42
         </div>
33 43
       </template>
34 44
     </div>
45
+    <!-- 呼叫结果 -->
46
+    <el-card v-if="callResults.length" shadow="hover" class="call_result">
47
+      <h5 class="title">呼叫结果</h5>
48
+      <el-radio-group v-model="callresultid">
49
+        <el-radio v-for="item in callResults" :key="item.id" :label="item.id" border>
50
+          {{ item.name }}
51
+        </el-radio>
52
+      </el-radio-group>
53
+    </el-card>
35 54
     <p v-if="pagerLists.length > 0" class="btn">
36 55
       <el-button type="primary" @click="submitPager">提 交</el-button>
37 56
     </p>
@@ -39,7 +58,8 @@
39 58
 </template>
40 59
 
41 60
 <script>
42
-import { getPager, answerPager } from '@/api/questionnaire/management'
61
+import { getPager, answerPager, taskId } from '@/api/questionnaire/management'
62
+import { getDictionary } from '@/api/commonAPI'
43 63
 import { uniqueObjArray } from '@/utils'
44 64
 
45 65
 export default {
@@ -48,15 +68,37 @@ export default {
48 68
     pagerDatas: {
49 69
       type: Object,
50 70
       default: () => {}
71
+    },
72
+    rowid: {
73
+      type: String,
74
+      default: ''
75
+    },
76
+    layerid: {
77
+      type: String,
78
+      default: ''
51 79
     }
52 80
   },
53 81
   data() {
54 82
     return {
83
+      ruleForm: {
84
+        id: ''
85
+      },
86
+      rules: {
87
+        callresultid: [{
88
+          required: true,
89
+          message: '请选择呼叫结果',
90
+          trigger: 'blur'
91
+        }]
92
+      },
55 93
       loading: false,
56 94
       title: '',
95
+      quesName: '',
96
+      quesPhone: '',
57 97
       remark: '',
58 98
       pagerid: '',
99
+      callresultid: '5bfe540c5a10b06b7a35a83a', //	否	string	话务状态(字典项:外呼结果)
59 100
       pagerLists: [],
101
+      callResults: [], // 呼叫结果数据
60 102
       jumpItem: [] // 跳过的试题
61 103
     }
62 104
   },
@@ -69,14 +111,46 @@ export default {
69 111
     }
70 112
   },
71 113
   created() {
72
-    this.getPagers()
114
+    if (this.rowid) {
115
+      this.ruleForm.id = this.rowid
116
+      // this.getPagers(this.rowid)
117
+      this.taskPagers(this.rowid)
118
+      this.getCallResuts() // 获取呼叫结果
119
+    }
73 120
   },
74 121
   methods: {
122
+    // 通过id获取问卷id
123
+    taskPagers(rid) {
124
+      this.loading = true
125
+      return new Promise(resolve => {
126
+        taskId(rid).then(response => {
127
+          this.loading = false
128
+          if (response.state.toLowerCase() === 'success') {
129
+            this.taskid = response.data.pagerid
130
+            this.quesName = response.data.tasktel.cusname
131
+            this.quesPhone = response.data.tasktel.phone
132
+            this.getPagers(this.taskid)
133
+          }
134
+        })
135
+        resolve()
136
+      })
137
+    },
138
+    // 获取呼叫结果
139
+    getCallResuts() {
140
+      return new Promise(resolve => {
141
+        getDictionary('ZDWHJG').then(response => {
142
+          if (response.state.toLowerCase() === 'success') {
143
+            this.callResults = response.data
144
+          }
145
+        })
146
+        resolve()
147
+      })
148
+    },
75 149
     // 获取问卷信息
76
-    getPagers() {
150
+    getPagers(rid) {
77 151
       this.loading = true
78 152
       return new Promise(resolve => {
79
-        getPager(this.pagerDatas.pageid).then(response => {
153
+        getPager(rid).then(response => {
80 154
           this.loading = false
81 155
           if (response.state.toLowerCase() === 'success') {
82 156
             // 修改父组件的值
@@ -94,33 +168,31 @@ export default {
94 168
 
95 169
     // 提交
96 170
     submitPager() {
171
+      // alert('111')
97 172
       // 验证必填项
98
-      let pagerOptions = []
99
-      // 正常接通
100
-      if (this.pagerDatas.callresult === '5bfe540c5a10b06b7a35a83a') {
101
-        if (this.validPager() === false) {
102
-          return
103
-        }
104
-        // 修改试题数据用于提交
105
-        pagerOptions = this.getPagerOptions()
106
-      }
107
-
108
-      const data = Object.assign(this.pagerDatas, {
109
-        result: pagerOptions
110
-      })
111
-      // console.log(JSON.stringify(data));
112
-      answerPager(data).then(response => {
113
-        this.loading = false
114
-        if (response.state.toLowerCase() === 'success') {
115
-          // 触发父组件的方法
116
-          this.$emit('getTP')
117
-          this.$message.success('恭喜你,数据提交成功!')
118
-        }
119
-      }).catch(() => {
120
-        this.loading = false
121
-      })
173
+      // let pagerOptions = []
174
+      // let pagerDatas
175
+      // // 修改试题数据用于提交
176
+      // pagerOptions = this.getPagerOptions()
177
+      // const data = Object.assign(this.pagerDatas, {
178
+      //   result: pagerOptions
179
+      // })
180
+      // console.log(JSON.stringify(data))
181
+      // answerPager(data).then(response => {
182
+      //   this.loading = false
183
+      //   if (response.state.toLowerCase() === 'success') {
184
+      //     debugger
185
+      //     // 触发父组件的方法
186
+      //     this.$emit('getTP')
187
+      //     this.$message.success('恭喜你,数据提交成功!')
188
+      //   }
189
+      // }).catch(() => {
190
+      //   this.loading = false
191
+      // })
192
+    },
193
+    outboundClick() {
194
+      // alert('111')
122 195
     },
123
-
124 196
     // 单选题跳题
125 197
     jumpPage(value, e) {
126 198
       // 1.获取跳题的 queguid
@@ -277,7 +349,10 @@ export default {
277 349
 			font-size: 24px;
278 350
 			color: #333333;
279 351
 		}
280
-
352
+    .quesephon{
353
+      color: #337ab7;
354
+      cursor: pointer;
355
+    }
281 356
 		.remark {
282 357
 			font-size: 16px;
283 358
 			text-align: justify;

+ 0 - 1
fuwaiCallCenterWeb.UI/src/views/clickoutbound/tasks/index.vue

@@ -16,7 +16,6 @@
16 16
       <el-input v-model="keyword" placeholder="请输入电话号码" class="filter-item"/>
17 17
       <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
18 18
     </div>
19
-
20 19
     <el-table v-loading="loading" :data="dataLists" border stripe>
21 20
       <el-table-column type="index" label="编号" align="center" fixed width="80"/>
22 21
       <el-table-column prop="cusname" label="姓名" align="center" min-width=""/>

+ 52 - 7
fuwaiCallCenterWeb.UI/src/views/notice/manage/addOrEditManege.vue

@@ -14,13 +14,14 @@
14 14
           :default-expand-all="defaultExpandAll"
15 15
           show-checkbox
16 16
           node-key="id"
17
+          check-strictly
17 18
           highlight-current
18 19
           @node-click="treeNodeClick"
19 20
         />
20 21
         <!--  -->
21 22
       </el-form-item>
22 23
       <el-form-item>
23
-        <el-button type="primary" @click="getCheckedNodes">点击</el-button>
24
+        <!-- <el-button type="primary" @click="setCheckedNodes">点击</el-button> -->
24 25
         <el-button type="primary" @click="submitForm">保存</el-button>
25 26
       </el-form-item>
26 27
     </el-form>
@@ -52,6 +53,8 @@ export default {
52 53
       rules: {
53 54
       },
54 55
       treelists: [], // 分类树列表
56
+      treelistIscheck: [],
57
+      resourceCheckedKey: [],
55 58
       defaultExpandAll: false,
56 59
       // 自定义菜单下拉数据的key值
57 60
       props: {
@@ -65,8 +68,9 @@ export default {
65 68
     if (this.rowid) {
66 69
       this.ruleForm.id = this.rowid
67 70
       this.getDetail(this.rowid)
68
-
71
+      // this.setCheckedNodes()
69 72
       this.getTreeLists(this.rowid)// 分类指标
73
+      this.TimeoutExe()
70 74
     } else {
71 75
       this.getTreeLists()// 分类指标
72 76
     }
@@ -78,6 +82,7 @@ export default {
78 82
         getTreeList(rid).then(response => {
79 83
           if (response.state.toLowerCase() === 'success') {
80 84
             this.treelists = this.buildTree(response.data)
85
+            this.treelistIscheck = this.buildTreeIceck(response.data)
81 86
           }
82 87
         })
83 88
         resolve()
@@ -150,13 +155,34 @@ export default {
150 155
         }
151 156
       })
152 157
     },
158
+    buildTreeIceck(listIcheck) {
159
+      const tempIcheck = []
160
+      const treeIcheck = []
161
+      for (const j in listIcheck) {
162
+        if (listIcheck[j].ischeck) {
163
+          tempIcheck[listIcheck[j].id] = listIcheck[j]
164
+        }
165
+      }
166
+      for (const i in tempIcheck) {
167
+        if (tempIcheck[i].parentid) {
168
+          if (!tempIcheck[tempIcheck[i].parentid].children) {
169
+            tempIcheck[tempIcheck[i].parentid].children = []
170
+          }
171
+          tempIcheck[tempIcheck[i].parentid].children[tempIcheck[i].id] = tempIcheck[i]
172
+        } else if (tempIcheck[i].ischeck) {
173
+          treeIcheck[tempIcheck[i].id] = tempIcheck[i]
174
+        }
175
+      }
176
+      // console.log(treeIcheck)
177
+      return this.filterTreeidDatas(treeIcheck)
178
+    },
153 179
     buildTree(list) {
154 180
       const temp = {}
155 181
       const tree = {}
182
+
156 183
       for (const j in list) {
157 184
         temp[list[j].id] = list[j]
158 185
       }
159
-
160 186
       for (const i in temp) {
161 187
         if (temp[i].parentid) {
162 188
           if (!temp[temp[i].parentid].children) {
@@ -169,6 +195,23 @@ export default {
169 195
       }
170 196
       return this.filterTreeDatas(tree)
171 197
     },
198
+    // 处理数据格式取id
199
+    filterTreeidDatas(treeDatas) {
200
+      const accessedRouters = []
201
+      let j = -1
202
+      for (const i in treeDatas) {
203
+        j++
204
+        accessedRouters.push({
205
+          id: treeDatas[i].id
206
+        })
207
+        if (treeDatas[i].children) {
208
+          accessedRouters[j].children = this.filterTreeidDatas(
209
+            treeDatas[i].children
210
+          )
211
+        }
212
+      }
213
+      return accessedRouters
214
+    },
172 215
     // 处理数据格式
173 216
     filterTreeDatas(treeDatas) {
174 217
       const accessedRouters = []
@@ -191,14 +234,16 @@ export default {
191 234
       }
192 235
       return accessedRouters
193 236
     },
237
+    TimeoutExe() {
238
+      setTimeout(() => {
239
+        console.log(this.treelistIscheck)
240
+        this.$refs.tree.setCheckedNodes(this.treelistIscheck)
241
+      }, 1000)
242
+    },
194 243
     getCheckedNodes() {
195
-      alert(this.$refs.tree.getCheckedNodes())
196 244
       // console.log(this.$refs.tree.getCheckedNodes())
197 245
     },
198 246
     treeNodeClick(data) {
199
-      // alert(this.$refs.tree.getCheckedNodes()[0].label)
200
-      // console.log(this.$refs.tree.getCheckedNodes())
201
-      // alert(data)
202 247
       // this.treeclickId = data.id
203 248
     }
204 249
   }

+ 105 - 19
fuwaiCallCenterWeb.UI/src/views/order/components/addOrEdit.vue

@@ -2,49 +2,56 @@
2 2
   <div v-loading="loading" class="creat_order">
3 3
     <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="order_form">
4 4
       <el-row :gutter="24" class="clearfix">
5
-        <el-col :lg="12" :xl="8" class="col_item">
5
+        <el-col :lg="24" :xl="24" class="col_item">
6 6
           <el-form-item label="工单类型" prop="typeid">
7 7
             <el-radio-group v-model="ruleForm.typeid" @change="changeOrderType">
8 8
               <el-radio v-for="item in typeOptions" :key="item.id" :label="item.id" border>{{ item.name }}</el-radio>
9 9
             </el-radio-group>
10 10
           </el-form-item>
11 11
         </el-col>
12
-        <el-col :lg="12" :xl="8" class="col_item">
12
+        <el-col v-show="businIs" :lg="12" :xl="12" class="col_item">
13
+          <el-form-item :label="`业务办理`" prop="businesstype">
14
+            <el-select v-model="ruleForm.businesstype" :placeholder="`请选择业务办理`" class="form_select" filterable clearable>
15
+              <el-option v-for="item in busineData" :key="item.name" :label="item.name" :value="item.name"/>
16
+            </el-select>
17
+          </el-form-item>
18
+        </el-col>
19
+        <el-col :lg="12" :xl="12" class="col_item">
13 20
           <el-form-item label="客户姓名" prop="name">
14 21
             <el-input v-model="ruleForm.name" placeholder="请输入客户姓名"/>
15 22
           </el-form-item>
16 23
         </el-col>
17
-        <el-col :lg="12" :xl="8" class="col_item">
24
+        <el-col :lg="12" :xl="12" class="col_item">
18 25
           <el-form-item label="客户电话" prop="phone">
19 26
             <el-input v-model="ruleForm.phone" placeholder="请输入客户电话"/>
20 27
           </el-form-item>
21 28
         </el-col>
22
-        <el-col :lg="12" :xl="8" class="col_item">
29
+        <el-col :lg="12" :xl="12" class="col_item">
23 30
           <el-form-item label="来电电话" prop="callintel">
24 31
             <el-input v-model="ruleForm.callintel" placeholder="请输入客户来电电话"/>
25 32
           </el-form-item>
26 33
         </el-col>
27 34
         <div v-show="afterSale">
28
-          <el-col v-if="afterSale" :lg="12" :xl="8" class="col_item">
35
+          <el-col v-if="afterSale" :lg="12" :xl="12" class="col_item">
29 36
             <el-form-item label="售后来源" prop="sourceid">
30 37
               <el-select v-model="ruleForm.sourceid" class="form_select" filterable clearable placeholder="请选择售后来源">
31 38
                 <el-option v-for="item in sourceOptions" :key="item.id" :label="item.name" :value="item.id"/>
32 39
               </el-select>
33 40
             </el-form-item>
34 41
           </el-col>
35
-          <el-col :lg="12" :xl="8" class="col_item">
42
+          <el-col :lg="12" :xl="12" class="col_item">
36 43
             <el-form-item label="单位名称" prop="company">
37 44
               <el-input v-model="ruleForm.company" placeholder="请输入客户单位名称"/>
38 45
             </el-form-item>
39 46
           </el-col>
40
-          <el-col :lg="12" :xl="8" class="col_item">
47
+          <el-col :lg="12" :xl="12" class="col_item">
41 48
             <el-form-item label="项目名称" prop="proid">
42 49
               <el-select v-model="ruleForm.proid" class="form_select" filterable clearable placeholder="请选择项目" @change="selectGet">
43 50
                 <el-option v-for="item in proData" :key="item.id" :label="item.project_name" :value="item.id"/>
44 51
               </el-select>
45 52
             </el-form-item>
46 53
           </el-col>
47
-          <el-col :lg="12" :xl="8" class="col_item">
54
+          <el-col :lg="12" :xl="12" class="col_item">
48 55
             <el-form-item label="所在地" prop="provinceCity">
49 56
               <el-cascader
50 57
                 v-model="provinceCity"
@@ -57,12 +64,12 @@
57 64
                 change-on-select/>
58 65
             </el-form-item>
59 66
           </el-col>
60
-          <el-col :lg="12" :xl="8" class="col_item">
67
+          <el-col :lg="12" :xl="12" class="col_item">
61 68
             <el-form-item label="具体地址" prop="address">
62 69
               <el-input v-model="ruleForm.address" placeholder="请输入具体地址"/>
63 70
             </el-form-item>
64 71
           </el-col>
65
-          <el-col :lg="12" :xl="8" class="col_item">
72
+          <el-col :lg="12" :xl="12" class="col_item">
66 73
             <el-form-item label="故障设备" prop="faulty_equipment">
67 74
               <el-input v-model="ruleForm.faulty_equipment" placeholder="请输入故障设备"/>
68 75
             </el-form-item>
@@ -85,15 +92,20 @@
85 92
             </el-form-item>
86 93
           </el-col>
87 94
         </div>
88
-
89 95
         <el-col :lg="12" :xl="8" class="col_item">
90 96
           <el-form-item :label="`${deptContent.deptname}部门`" prop="deptid">
91
-            <el-select v-model="ruleForm.deptid" :placeholder="`请选择${deptContent.deptname}部门`" class="form_select" filterable clearable>
97
+            <el-select v-model="ruleForm.deptid" :placeholder="`请选择${deptContent.deptname}部门`" class="form_select" filterable clearable @change="deptChange">
92 98
               <el-option v-for="item in deptData" :key="item.id" :label="item.name" :value="item.id"/>
93 99
             </el-select>
94 100
           </el-form-item>
95 101
         </el-col>
96
-
102
+        <el-col :lg="12" :xl="12">
103
+          <el-form-item label="接收人" prop="touser" >
104
+            <el-select v-model="ruleForm.touser" class="form_select" filterable clearable placeholder="请选择接收人">
105
+              <el-option v-for="item in touserOptions" :key="item.id" :label="`${item.username}(${item.usercode})`" :value="item.usercode"/>
106
+            </el-select>
107
+          </el-form-item>
108
+        </el-col>
97 109
         <el-col :lg="24" :xl="24">
98 110
           <el-form-item :label="`${deptContent.contentName}内容`" prop="content" >
99 111
             <el-input :autosize="{ minRows: 4}" v-model="ruleForm.content" :placeholder="`请输入${deptContent.contentName}内容`" type="textarea"/>
@@ -107,6 +119,22 @@
107 119
             </el-radio-group>
108 120
           </el-form-item>
109 121
         </el-col>
122
+        <el-col :xl="24">
123
+          <el-form-item label="工单有效性" prop="iseffective">
124
+            <el-radio-group v-model="ruleForm.iseffective">
125
+              <el-radio label="0">无效</el-radio>
126
+              <el-radio label="1">有效</el-radio>
127
+            </el-radio-group>
128
+          </el-form-item>
129
+        </el-col>
130
+        <el-col :xl="24">
131
+          <el-form-item label="立即处理" prop="dealinstantly">
132
+            <el-radio-group v-model="ruleForm.dealinstantly">
133
+              <el-radio label="0">否</el-radio>
134
+              <el-radio label="1">是</el-radio>
135
+            </el-radio-group>
136
+          </el-form-item>
137
+        </el-col>
110 138
         <!-- <el-form-item label="附件" prop="files">
111 139
 								<el-upload
112 140
 									ref="upload"
@@ -135,6 +163,7 @@
135 163
 <script>
136 164
 import { getProviceCity, getDictionary, getPro } from '@/api/commonAPI'
137 165
 import { getOrder, addOrder, editOrder } from '@/api/order/orderSearchHY'
166
+import { getUserSelects } from '@/api/systemSetup/roleSetting/userManage'
138 167
 import { validateTel } from '@/utils/validate'
139 168
 import { delFiles, filterContent } from '@/utils'
140 169
 
@@ -183,7 +212,10 @@ export default {
183 212
       },
184 213
       consultation: false, // 是否是咨询
185 214
       afterSale: false, // 是否是售后
215
+      // iseffective: false,
216
+      // dealinstantly: false,
186 217
       complaint: false, // 是否是投诉
218
+      businIs: false,
187 219
       provinceCity: [], // 省市下拉绑定的值
188 220
       provinceCityDatas: [], // 省市下拉数据
189 221
       props: { // 自定义省市下拉数据的key值
@@ -193,6 +225,8 @@ export default {
193 225
       },
194 226
       sourceOptions: [], // 售后来源下拉数据
195 227
       typeOptions: [], // 工单类型下拉数据
228
+      busineData: [], // 业务办理类型下拉
229
+      touserOptions: [], // 接收人下拉数据
196 230
       faultyTypeData: [], // 故障类型下拉数据
197 231
       faultyTypeData2: [], // 故障类型2级下拉数据
198 232
       productiveData: [], // 处理时效下拉数据
@@ -205,6 +239,10 @@ export default {
205 239
         phone: this.callinNum, //	是	string	客户联系电话
206 240
         name: '', //	否	string	客户姓名
207 241
         callintel: this.callinNum, // 来电电话
242
+        businesstype: '',
243
+        iseffective: '1',
244
+        dealinstantly: '0',
245
+        touser: '', // 指派给的坐席工号
208 246
         deptid: '', // 咨询部门id
209 247
         content: '', //	是	string	故障内容
210 248
         sourceid: '', //	否	string	售后来源id
@@ -257,22 +295,22 @@ export default {
257 295
     // 处理部门和内容的名字
258 296
     deptContent() {
259 297
       const deptCotentName = {
260
-        deptname: '咨询',
298
+        deptname: '接收',
261 299
         contentName: '咨询'
262 300
       }
263 301
       // 咨询
264 302
       if (this.consultation) {
265
-        deptCotentName.deptname = '咨询'
303
+        deptCotentName.deptname = '接收'
266 304
         deptCotentName.contentName = '咨询'
267 305
       }
268 306
       // 售后
269 307
       if (this.afterSale) {
270
-        deptCotentName.deptname = '咨询'
308
+        deptCotentName.deptname = '接收'
271 309
         deptCotentName.contentName = '故障'
272 310
       }
273 311
       // 投诉
274 312
       if (this.complaint) {
275
-        deptCotentName.deptname = '投诉'
313
+        deptCotentName.deptname = '接收'
276 314
         deptCotentName.contentName = '投诉'
277 315
       }
278 316
       return deptCotentName
@@ -284,7 +322,8 @@ export default {
284 322
     }
285 323
     Promise.all([
286 324
       this.getOrderType(), // 获取工单类型
287
-      this.getDeptData() // 获取部门
325
+      this.getDeptData(), // 获取部门
326
+      this.getBusineData() // 获取业务类型
288 327
     ]).then(() => {
289 328
       if (this.rowid) {
290 329
         this.ruleForm.ordercode = this.rowid
@@ -383,10 +422,13 @@ export default {
383 422
         if (response.state.toLowerCase() === 'success') {
384 423
           const res = response.data.model
385 424
           this.ruleForm.typeid = res.typeid // 类型
425
+          this.ruleForm.iseffective === res.iseffective // 工单有效性
426
+          this.ruleForm.dealinstantly === res.dealinstantly // 是否立即处理
386 427
           this.ruleForm.name = res.name // 姓名
387 428
           this.ruleForm.phone = res.phone // 电话
388 429
           this.ruleForm.callintel = res.callintel // 来电电话
389
-          this.ruleForm.deptid = res.deptid // 咨询部门id
430
+          this.ruleForm.deptid = res.deptid // 接收部门id
431
+          this.ruleForm.touser = res.touser // 接收人
390 432
           this.ruleForm.content = res.content // 故障内容
391 433
           if (res.typeid === '5bf522f45a10b06b7a35a503') { // 咨询
392 434
             this.consultation = true // 是否是咨询
@@ -418,6 +460,13 @@ export default {
418 460
             })
419 461
           } else if (res.typeid === '5c47d83fd2bc5f5d5907f296') { // 投诉
420 462
             this.complaint = true
463
+          } else if (res.typeid === '5d0c9e21156ef38d2086d941') {
464
+            this.businIs = true // 是否是业务类型
465
+            this.getBusineData().then(() => {
466
+              this.businesstype = res.businesstype// 业务办理
467
+              // alert(this.businesstype)
468
+              this.ruleForm.businesstype = res.businesstype // 客户项目名称
469
+            })
421 470
           }
422 471
         }
423 472
       })
@@ -429,6 +478,7 @@ export default {
429 478
           this.consultation = true // 是否是咨询
430 479
           this.afterSale = false // 是否是售后
431 480
           this.complaint = false // 是否是投诉
481
+          this.businIs = false // 是否是业务类型
432 482
           break
433 483
         case '5bf523015a10b06b7a35a504':// 售后
434 484
           this.consultation = false
@@ -439,16 +489,22 @@ export default {
439 489
           this.getFaultyType() // 获取故障类型
440 490
           this.getProCity() // 获取省市下拉数据
441 491
           this.getProductive() // 获取处理时效
492
+          this.businIs = false // 是否是业务类型
493
+          break
494
+        case '5d0c9e21156ef38d2086d941':// 售后
495
+          this.businIs = true // 是否是业务类型
442 496
           break
443 497
         case '5c47d83fd2bc5f5d5907f296':// 投诉
444 498
           this.consultation = false
445 499
           this.afterSale = false
446 500
           this.complaint = true
501
+          this.businIs = false // 是否是业务类型
447 502
           break
448 503
         default:
449 504
           this.consultation = false
450 505
           this.afterSale = false
451 506
           this.complaint = false
507
+          this.businIs = false // 是否是业务类型
452 508
           break
453 509
       }
454 510
     },
@@ -485,6 +541,25 @@ export default {
485 541
         resolve()
486 542
       })
487 543
     },
544
+    // 获取接收人
545
+    getUserDatas(code) {
546
+      return new Promise(resolve => {
547
+        getUserSelects(code).then(response => {
548
+          if (response.state.toLowerCase() === 'success') {
549
+            this.touserOptions = response.data
550
+          }
551
+        })
552
+      })
553
+    },
554
+    // 部门改变
555
+    deptChange(vId) {
556
+      this.ruleForm.touser = ''
557
+      if (vId) {
558
+        this.getUserDatas(vId)
559
+      } else {
560
+        this.touserOptions = []
561
+      }
562
+    },
488 563
     // 获取故障类型一级数据
489 564
     getFaultyType() {
490 565
       return new Promise(resolve => {
@@ -527,6 +602,17 @@ export default {
527 602
         resolve()
528 603
       })
529 604
     },
605
+    // 获取业务办理类型
606
+    getBusineData() {
607
+      return new Promise(resolve => {
608
+        getDictionary('YWBL').then(response => {
609
+          if (response.state.toLowerCase() === 'success') {
610
+            this.busineData = response.data
611
+          }
612
+        })
613
+        resolve()
614
+      })
615
+    },
530 616
     // 获取处理时效
531 617
     getProductive() {
532 618
       return new Promise(resolve => {

+ 5 - 3
fuwaiCallCenterWeb.UI/src/views/order/orderAppointed/index.vue

@@ -25,16 +25,18 @@
25 25
       <el-table-column prop="phone" label="电话" align="center" min-width="120" />
26 26
       <el-table-column prop="callintel" label="来电电话" align="center" min-width="120" />
27 27
       <el-table-column prop="typename" label="工单类型" align="center" />
28
-      <el-table-column prop="deptname" label="咨询/投诉部门" align="center" min-width="120" />
28
+      <el-table-column prop="businesstype" label="业务办理" align="center" />
29
+      <el-table-column prop="deptname" label="接收部门" align="center" min-width="120" />
30
+      <el-table-column prop="touser" label="接收人" align="center" min-width="120" />
29 31
       <el-table-column label="工单内容" prop="content" align="center" width="200">
30 32
         <template slot-scope="scope">
31 33
           {{ scope.row.content | formatterContent }}
32 34
         </template>
33 35
       </el-table-column>
34
-      <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
36
+      <!-- <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
35 37
       <el-table-column prop="provincename" label="所在省" align="center" />
36 38
       <el-table-column prop="cityname" label="所在市" align="center" />
37
-      <el-table-column prop="address" label="具体地址" align="center" />
39
+      <el-table-column prop="address" label="具体地址" align="center" /> -->
38 40
       <el-table-column prop="createuser" label="创建人" align="center" />
39 41
       <el-table-column prop="createtime" label="创建时间" align="center" min-width="140" />
40 42
       <el-table-column label="操作" width="166" align="left" class-name="oparate_btn" fixed="right">

+ 91 - 10
fuwaiCallCenterWeb.UI/src/views/order/orderCreateHY/index.vue

@@ -3,24 +3,31 @@
3 3
     <div v-loading="loading" class="creat_order">
4 4
       <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="order_form">
5 5
         <el-row :gutter="24" class="clearfix">
6
-          <el-col :lg="12" :xl="8" class="col_item">
6
+          <el-col :lg="12" :xl="12" class="col_item">
7 7
             <el-form-item label="工单类型" prop="typeid">
8 8
               <el-radio-group v-model="ruleForm.typeid" @change="changeOrderType">
9 9
                 <el-radio v-for="item in typeOptions" :key="item.id" :label="item.id" border>{{ item.name }}</el-radio>
10 10
               </el-radio-group>
11 11
             </el-form-item>
12 12
           </el-col>
13
-          <el-col :lg="12" :xl="8" class="col_item">
13
+          <el-col v-show="businIs" :lg="12" :xl="12" class="col_item businShow">
14
+            <el-form-item :label="`业务办理`" prop="businesstype">
15
+              <el-select v-model="ruleForm.businesstype" :placeholder="`请选择业务办理`" class="form_select" filterable clearable>
16
+                <el-option v-for="item in busineData" :key="item.name" :label="item.name" :value="item.name"/>
17
+              </el-select>
18
+            </el-form-item>
19
+          </el-col>
20
+          <el-col :lg="12" :xl="12" class="col_item">
14 21
             <el-form-item label="客户姓名" prop="name">
15 22
               <el-input v-model="ruleForm.name" placeholder="请输入客户姓名"/>
16 23
             </el-form-item>
17 24
           </el-col>
18
-          <el-col :lg="12" :xl="8" class="col_item">
25
+          <el-col :lg="12" :xl="12" class="col_item">
19 26
             <el-form-item label="客户电话" prop="phone">
20 27
               <el-input v-model="ruleForm.phone" placeholder="请输入客户电话"/>
21 28
             </el-form-item>
22 29
           </el-col>
23
-          <el-col :lg="12" :xl="8" class="col_item">
30
+          <el-col :lg="12" :xl="12" class="col_item">
24 31
             <el-form-item label="来电电话" prop="callintel">
25 32
               <el-input v-model="ruleForm.callintel" placeholder="请输入客户来电电话"/>
26 33
             </el-form-item>
@@ -89,14 +96,21 @@
89 96
             </el-col>
90 97
           </div>
91 98
 
92
-          <el-col :lg="12" :xl="8" class="col_item">
99
+          <el-col :lg="12" :xl="12" class="col_item">
93 100
             <el-form-item :label="`${deptContent.deptname}部门`" prop="deptid">
94
-              <el-select v-model="ruleForm.deptid" :placeholder="`请选择${deptContent.deptname}部门`" class="form_select" filterable clearable>
101
+              <el-select v-model="ruleForm.deptid" :placeholder="`请选择${deptContent.deptname}部门`" class="form_select" filterable clearable @change="deptChange">
95 102
                 <el-option v-for="item in deptData" :key="item.id" :label="item.name" :value="item.id"/>
96 103
               </el-select>
97 104
             </el-form-item>
98 105
           </el-col>
99 106
 
107
+          <el-col :lg="12" :xl="12">
108
+            <el-form-item label="接收人" prop="touser" >
109
+              <el-select v-model="ruleForm.touser" class="form_select" filterable clearable placeholder="请选择接收人">
110
+                <el-option v-for="item in touserOptions" :key="item.id" :label="`${item.username}(${item.usercode})`" :value="item.usercode"/>
111
+              </el-select>
112
+            </el-form-item>
113
+          </el-col>
100 114
           <el-col :lg="24" :xl="24">
101 115
             <el-form-item :label="`${deptContent.contentName}内容`" prop="content" >
102 116
               <el-input :autosize="{ minRows: 4}" v-model="ruleForm.content" :placeholder="`请输入${deptContent.contentName}内容`" type="textarea"/>
@@ -110,6 +124,22 @@
110 124
               </el-radio-group>
111 125
             </el-form-item>
112 126
           </el-col>
127
+          <el-col :xl="24">
128
+            <el-form-item label="工单有效性" prop="iseffective">
129
+              <el-radio-group v-model="ruleForm.iseffective">
130
+                <el-radio label="0">无效</el-radio>
131
+                <el-radio label="1">有效</el-radio>
132
+              </el-radio-group>
133
+            </el-form-item>
134
+          </el-col>
135
+          <el-col :xl="24">
136
+            <el-form-item label="立即处理" prop="dealinstantly">
137
+              <el-radio-group v-model="ruleForm.dealinstantly">
138
+                <el-radio label="0">否</el-radio>
139
+                <el-radio label="1">是</el-radio>
140
+              </el-radio-group>
141
+            </el-form-item>
142
+          </el-col>
113 143
           <!-- <el-form-item label="附件" prop="files">
114 144
 								<el-upload
115 145
 									ref="upload"
@@ -139,6 +169,7 @@
139 169
 <script>
140 170
 import { getProviceCity, getDictionary, getPro } from '@/api/commonAPI'
141 171
 import { addOrder } from '@/api/order/orderSearchHY'
172
+import { getUserSelects } from '@/api/systemSetup/roleSetting/userManage'
142 173
 import { validateTel } from '@/utils/validate'
143 174
 import { delFiles, filterContent } from '@/utils'
144 175
 
@@ -162,7 +193,9 @@ export default {
162 193
       },
163 194
       consultation: false, // 是否是咨询
164 195
       afterSale: false, // 是否是售后
196
+      businIs: false,
165 197
       complaint: false, // 是否是投诉
198
+      touserOptions: [], // 接收人下拉数据
166 199
       provinceCity: [], // 省市下拉绑定的值
167 200
       provinceCityDatas: [], // 省市下拉数据
168 201
       props: { // 自定义省市下拉数据的key值
@@ -177,12 +210,17 @@ export default {
177 210
       productiveData: [], // 处理时效下拉数据
178 211
       proData: [], // 项目下拉数据
179 212
       deptData: [], // 咨询部门下拉数据
213
+      busineData: [],
180 214
       ruleForm: {
181 215
         typeid: '5bf522f45a10b06b7a35a503', //	否	string	类型id 咨询
216
+        touser: '', // 指派给的坐席工号
182 217
         phone: '', //	是	string	客户联系电话
183 218
         name: '', //	否	string	客户姓名
184 219
         callintel: '', // 来电电话
185 220
         deptid: '', // 咨询部门id
221
+        businesstype: '',
222
+        iseffective: '1',
223
+        dealinstantly: '0',
186 224
         content: '', //	是	string	故障内容
187 225
         sourceid: '', //	否	string	售后来源id
188 226
         company: '', // 单位名称
@@ -226,22 +264,22 @@ export default {
226 264
     // 处理部门和内容的名字
227 265
     deptContent() {
228 266
       const deptCotentName = {
229
-        deptname: '咨询',
267
+        deptname: '接收',
230 268
         contentName: '咨询'
231 269
       }
232 270
       // 咨询
233 271
       if (this.consultation) {
234
-        deptCotentName.deptname = '咨询'
272
+        deptCotentName.deptname = '接收'
235 273
         deptCotentName.contentName = '咨询'
236 274
       }
237 275
       // 售后
238 276
       if (this.afterSale) {
239
-        deptCotentName.deptname = '咨询'
277
+        deptCotentName.deptname = '接收'
240 278
         deptCotentName.contentName = '故障'
241 279
       }
242 280
       // 投诉
243 281
       if (this.complaint) {
244
-        deptCotentName.deptname = '投诉'
282
+        deptCotentName.deptname = '接收'
245 283
         deptCotentName.contentName = '投诉'
246 284
       }
247 285
       return deptCotentName
@@ -250,6 +288,7 @@ export default {
250 288
   created() {
251 289
     this.getOrderType() // 获取工单类型
252 290
     this.getDeptData() // 获取部门
291
+    this.getBusineData() // 获取业务办理类型
253 292
   },
254 293
   methods: {
255 294
     submitForm() {
@@ -317,6 +356,7 @@ export default {
317 356
           this.consultation = true // 是否是咨询
318 357
           this.afterSale = false // 是否是售后
319 358
           this.complaint = false // 是否是投诉
359
+          this.businIs = false // 是否是业务类型
320 360
           break
321 361
         case '5bf523015a10b06b7a35a504':// 售后
322 362
           this.consultation = false
@@ -327,16 +367,23 @@ export default {
327 367
           this.getFaultyType() // 获取故障类型
328 368
           this.getProCity() // 获取省市下拉数据
329 369
           this.getProductive() // 获取处理时效
370
+          this.businIs = false // 是否是业务类型
371
+          break
372
+        case '5d0c9e21156ef38d2086d941':// 售后
373
+          this.businIs = true // 是否是业务类型
330 374
           break
331 375
         case '5c47d83fd2bc5f5d5907f296':// 投诉
376
+          alert('投诉')
332 377
           this.consultation = false
333 378
           this.afterSale = false
334 379
           this.complaint = true
380
+          this.businIs = false // 是否是业务类型
335 381
           break
336 382
         default:
337 383
           this.consultation = false
338 384
           this.afterSale = false
339 385
           this.complaint = false
386
+          this.businIs = false // 是否是业务类型
340 387
           break
341 388
       }
342 389
     },
@@ -384,6 +431,37 @@ export default {
384 431
         resolve()
385 432
       })
386 433
     },
434
+    // 获取业务办理类型
435
+    getBusineData() {
436
+      return new Promise(resolve => {
437
+        getDictionary('YWBL').then(response => {
438
+          if (response.state.toLowerCase() === 'success') {
439
+            this.busineData = response.data
440
+          }
441
+        })
442
+        resolve()
443
+      })
444
+    },
445
+
446
+    // 获取接收人
447
+    getUserDatas(code) {
448
+      return new Promise(resolve => {
449
+        getUserSelects(code).then(response => {
450
+          if (response.state.toLowerCase() === 'success') {
451
+            this.touserOptions = response.data
452
+          }
453
+        })
454
+      })
455
+    },
456
+    // 部门改变
457
+    deptChange(vId) {
458
+      this.ruleForm.touser = ''
459
+      if (vId) {
460
+        this.getUserDatas(vId)
461
+      } else {
462
+        this.touserOptions = []
463
+      }
464
+    },
387 465
     // 获取故障类型
388 466
     getFaultyType() {
389 467
       return new Promise(resolve => {
@@ -485,5 +563,8 @@ export default {
485 563
     .col_item{
486 564
 			height: 51px;
487 565
 		}
566
+    // .businShow{
567
+    //   display: none
568
+    // }
488 569
 	}
489 570
 </style>

+ 5 - 3
fuwaiCallCenterWeb.UI/src/views/order/orderDisposal/index.vue

@@ -25,16 +25,18 @@
25 25
       <el-table-column prop="phone" label="电话" align="center" min-width="120" />
26 26
       <el-table-column prop="callintel" label="来电电话" align="center" min-width="120" />
27 27
       <el-table-column prop="typename" label="工单类型" align="center" />
28
-      <el-table-column prop="deptname" label="咨询/投诉部门" align="center" min-width="120" />
28
+      <el-table-column prop="businesstype" label="业务办理" align="center" />
29
+      <el-table-column prop="deptname" label="接收部门" align="center" min-width="120" />
30
+      <el-table-column prop="touser" label="接收人" align="center" min-width="120" />
29 31
       <el-table-column label="工单内容" prop="content" align="center" width="200">
30 32
         <template slot-scope="scope">
31 33
           {{ scope.row.content | formatterContent }}
32 34
         </template>
33 35
       </el-table-column>
34
-      <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
36
+      <!-- <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
35 37
       <el-table-column prop="provincename" label="所在省" align="center" />
36 38
       <el-table-column prop="cityname" label="所在市" align="center" />
37
-      <el-table-column prop="address" label="具体地址" align="center" />
39
+      <el-table-column prop="address" label="具体地址" align="center" /> -->
38 40
       <el-table-column prop="createuser" label="创建人" align="center" />
39 41
       <el-table-column prop="createtime" label="创建时间" align="center" min-width="140" />
40 42
       <el-table-column label="操作" width="136" align="left" class-name="oparate_btn" fixed="right">

+ 5 - 3
fuwaiCallCenterWeb.UI/src/views/order/orderProcessed/index.vue

@@ -25,16 +25,18 @@
25 25
       <el-table-column prop="phone" label="电话" align="center" min-width="120" />
26 26
       <el-table-column prop="callintel" label="来电电话" align="center" min-width="120" />
27 27
       <el-table-column prop="typename" label="工单类型" align="center" />
28
-      <el-table-column prop="deptname" label="咨询/投诉部门" align="center" min-width="120" />
28
+      <el-table-column prop="businesstype" label="业务办理" align="center" />
29
+      <el-table-column prop="deptname" label="接收部门" align="center" min-width="120" />
30
+      <el-table-column prop="touser" label="接收人" align="center" min-width="120" />
29 31
       <el-table-column label="工单内容" prop="content" align="center" width="200">
30 32
         <template slot-scope="scope">
31 33
           {{ scope.row.content | formatterContent }}
32 34
         </template>
33 35
       </el-table-column>
34
-      <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
36
+      <!-- <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
35 37
       <el-table-column prop="provincename" label="所在省" align="center" />
36 38
       <el-table-column prop="cityname" label="所在市" align="center" />
37
-      <el-table-column prop="address" label="具体地址" align="center" />
39
+      <el-table-column prop="address" label="具体地址" align="center" /> -->
38 40
       <el-table-column prop="createuser" label="创建人" align="center" />
39 41
       <el-table-column prop="createtime" label="创建时间" align="center" min-width="140" />
40 42
       <el-table-column label="操作" width="80" align="left" class-name="oparate_btn" fixed="right">

+ 5 - 3
fuwaiCallCenterWeb.UI/src/views/order/orderSearchHY/index.vue

@@ -25,16 +25,18 @@
25 25
       <el-table-column prop="phone" label="电话" align="center" min-width="120" />
26 26
       <el-table-column prop="callintel" label="来电电话" align="center" min-width="120" />
27 27
       <el-table-column prop="typename" label="工单类型" align="center" />
28
-      <el-table-column prop="deptname" label="咨询/投诉部门" align="center" min-width="120" />
28
+      <el-table-column prop="businesstype" label="业务办理" align="center" />
29
+      <el-table-column prop="deptname" label="接收部门" align="center" min-width="120" />
30
+      <el-table-column prop="touser" label="接收人" align="center" min-width="120" />
29 31
       <el-table-column label="工单内容" prop="content" align="center" width="200">
30 32
         <template slot-scope="scope">
31 33
           {{ scope.row.content | formatterContent }}
32 34
         </template>
33 35
       </el-table-column>
34
-      <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
36
+      <!-- <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
35 37
       <el-table-column prop="provincename" label="所在省" align="center" />
36 38
       <el-table-column prop="cityname" label="所在市" align="center" />
37
-      <el-table-column prop="address" label="具体地址" align="center" />
39
+      <el-table-column prop="address" label="具体地址" align="center" /> -->
38 40
       <el-table-column prop="createuser" label="创建人" align="center" />
39 41
       <el-table-column prop="createtime" label="创建时间" align="center" min-width="140" />
40 42
       <el-table-column label="操作" width="106" align="left" class-name="oparate_btn" fixed="right">

+ 5 - 3
fuwaiCallCenterWeb.UI/src/views/order/orderWaiting/index.vue

@@ -25,16 +25,18 @@
25 25
       <el-table-column prop="phone" label="电话" align="center" min-width="120" />
26 26
       <el-table-column prop="callintel" label="来电电话" align="center" min-width="120" />
27 27
       <el-table-column prop="typename" label="工单类型" align="center" />
28
-      <el-table-column prop="deptname" label="咨询/投诉部门" align="center" min-width="120" />
28
+      <el-table-column prop="businesstype" label="业务办理" align="center" />
29
+      <el-table-column prop="deptname" label="接收部门" align="center" min-width="120" />
30
+      <el-table-column prop="touser" label="接收人" align="center" min-width="120" />
29 31
       <el-table-column label="工单内容" prop="content" align="center" width="200">
30 32
         <template slot-scope="scope">
31 33
           {{ scope.row.content | formatterContent }}
32 34
         </template>
33 35
       </el-table-column>
34
-      <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
36
+      <!-- <el-table-column prop="sourcename" label="工单来源" align="center" min-width="120" />
35 37
       <el-table-column prop="provincename" label="所在省" align="center" />
36 38
       <el-table-column prop="cityname" label="所在市" align="center" />
37
-      <el-table-column prop="address" label="具体地址" align="center" />
39
+      <el-table-column prop="address" label="具体地址" align="center" /> -->
38 40
       <el-table-column prop="createuser" label="创建人" align="center" />
39 41
       <el-table-column prop="createtime" label="创建时间" align="center" min-width="140" />
40 42
       <el-table-column label="操作" width="166" align="left" class-name="oparate_btn" fixed="right">

+ 1 - 3
fuwaiCallCenterWeb.UI/src/views/repository/repositoryManage/index.vue

@@ -9,13 +9,12 @@
9 9
         </div>
10 10
         <el-alert :closable="false" title="知识库分类" type="success"/>
11 11
         <el-tree
12
-          ref="treeRef"
12
+          ref="tree"
13 13
           :data="treelists"
14 14
           :default-expand-all="defaultExpandAll"
15 15
           :expand-on-click-node="expandOnNode"
16 16
           show-checkbox
17 17
           node-key="id"
18
-          check-strictly
19 18
           highlight-current
20 19
           @node-click="treeNodeClick"/>
21 20
       </el-col>
@@ -27,7 +26,6 @@
27 26
           <el-button v-permission="'HY_editR'" type="primary" class="filter-item" icon="el-icon-edit" @click="btn_editR">编辑</el-button>
28 27
           <el-button v-permission="'HY_deleteR'" type="primary" class="filter-item" icon="el-icon-delete" @click="btn_deleteR">删除</el-button>
29 28
         </div>
30
-
31 29
         <el-alert :closable="false" title="分类指标" type="success"/>
32 30
         <el-table v-loading="loading" :data="scoreLists" border stripe highlight-current-row @row-click="handleTableClick">
33 31
           <el-table-column type="index" label="编号" align="center" fixed width="80"/>