miaofuhao лет назад: 4
Родитель
Сommit
f8b6bfbacd

+ 48 - 0
CallCenterWeb.UI/RMYY/src/api/comDispatch/muterDistribute.js

@@ -0,0 +1,48 @@
1
+import request from '@/utils/request'
2
+
3
+// 获取列表数据
4
+export function getDisList(params) {
5
+  return request({
6
+    url: 'T_Dis_WorkOrder/GetList',
7
+    method: 'get',
8
+    params
9
+  })
10
+}
11
+
12
+// 获取数据
13
+export function getDeatil(id) {
14
+  return request({
15
+    url: 'T_Dis_WorkOrder/GetModelDetail',
16
+    method: 'get',
17
+    params: {
18
+      id
19
+    }
20
+  })
21
+}
22
+
23
+// 添加数据
24
+export function addData(data) {
25
+  return request({
26
+    url: 'T_Dis_WorkOrder/AddWorOrder',
27
+    method: 'post',
28
+    data
29
+  })
30
+}
31
+// 修改数据
32
+export function editData(data) {
33
+  return request({
34
+    url: 'T_Dis_WorkOrder/UpdateWorkOrder',
35
+    method: 'post',
36
+    data
37
+  })
38
+}
39
+// 删除数据
40
+export function deleteData(nums) {
41
+  return request({
42
+    url: 'Mobiledata/DelMobiledata',
43
+    method: 'post',
44
+    data: {
45
+      nums
46
+    }
47
+  })
48
+}

+ 1 - 1
CallCenterWeb.UI/RMYY/src/router/index.js

@@ -53,7 +53,7 @@ export const constantRouterMap = [
53 53
     children: [{
54 54
       path: 'callScreen',
55 55
       component: () => import('@/views/callScreen/index'),
56
-      name: 'callScreen',
56
+      name: 'CallScreen',
57 57
       meta: { title: '来电弹屏', noCache: true }
58 58
     }],
59 59
     hidden: true

+ 2 - 2
CallCenterWeb.UI/RMYY/src/store/modules/permission.js

@@ -22,7 +22,7 @@ function filterAsyncRouter(menudatas) {
22 22
         redirect: 'noredirect',
23 23
         name: firstToUpper(menudatas[i].F_MenuCode),
24 24
         component: () => import('@/views/layout/Layout'),
25
-        id: menudatas[i].F_Id,
25
+        id: menudatas[i].F_MenuId,
26 26
         meta: {
27 27
           title: menudatas[i].F_MenuName,
28 28
           icon: menudatas[i].F_ImgUrl,
@@ -53,7 +53,7 @@ function filterAsyncRouter(menudatas) {
53 53
           redirect: redirect,
54 54
           name: firstToUpper(menudatas[i].F_MenuCode),
55 55
           component: () => import(`@/views/${furl}/index`),
56
-          id: menudatas[i].F_Id,
56
+          id: menudatas[i].F_MenuId,
57 57
           meta: {
58 58
             title: menudatas[i].F_MenuName,
59 59
             icon: menudatas[i].F_ImgUrl,

+ 1 - 1
CallCenterWeb.UI/RMYY/src/utils/telWebsocket.js

@@ -424,7 +424,7 @@ function IncomingBack(inComingData) {
424 424
     // console.log(inComingNumber)
425 425
   }
426 426
   window.localStorage.setItem('callidSave', inComingData.CallID) // 用户的坐席组code
427
-  router.push({ name: 'callScreen', path: '/callScreen', fullPath: '/callScreen', params: { callid: inComingCallId, telInNumber: inComingNumber }})
427
+  router.push({ name: 'CallScreen', path: '/callScreen', fullPath: '/callScreen', params: { callid: inComingCallId, telInNumber: inComingNumber }})
428 428
   store.dispatch('ChangeCallNum', inComingNumber)
429 429
 }
430 430
 

+ 1 - 1
CallCenterWeb.UI/RMYY/src/views/callScreen/components/AddOrEditCustomer.vue

@@ -57,7 +57,7 @@ import { addOrEditCustomerList, getCustomerList } from '@/api/customerManagement
57 57
 import { validateTel } from '@/utils/validate'
58 58
 import { mapGetters } from 'vuex'
59 59
 export default {
60
-  name: 'AddOrEdit',
60
+  name: 'AddOrEditCustomer',
61 61
   props: {
62 62
     callinNum: {
63 63
       type: String,

+ 1 - 1
CallCenterWeb.UI/RMYY/src/views/callScreen/components/OrderList.vue

@@ -32,7 +32,7 @@ import { getorderList } from '@/api/orderManagement/orderList'
32 32
 
33 33
 import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
34 34
 export default {
35
-  name: 'CallRecordList',
35
+  name: 'OrderList',
36 36
   components: {
37 37
     Pagination
38 38
   },

+ 215 - 0
CallCenterWeb.UI/RMYY/src/views/callScreen/components/addressNumber.vue

@@ -0,0 +1,215 @@
1
+<template>
2
+  <el-row style="padding: 8px 0 !important; ">
3
+
4
+    <el-col style="width:110px">
5
+      <p class="callin_con">
6
+        <span class="callin_num">{{ callinNum }}</span>
7
+      </p>
8
+    </el-col>
9
+    <el-col :span="5">
10
+      <p class="callin_con">
11
+        <span class="callin_address">归属地:{{ phoneData }}</span>
12
+      </p>
13
+    </el-col>
14
+    <el-col :span="6">
15
+      <h5 class="callin_name">
16
+        {{ cusInfo.cusname }}
17
+      </h5>
18
+    </el-col>
19
+    <el-col :span="4">
20
+      <p class="callin_con callin_time">
21
+        <time v-show="!dropoff">当前通话时长:{{ telCallTime.hh }}:{{ telCallTime.mm }}:{{ telCallTime.ss }}</time>
22
+        <time v-show="dropoff">当前通话时长:{{ callinTime }}</time>
23
+      </p>
24
+    </el-col>
25
+    <el-col :span="4">
26
+      <div class="callin_btns">
27
+        <el-tooltip content="点击加入黑名单" placement="top">
28
+          <i v-show="!isBlack" class="callin_btn callinblack" @click="btn_addBlack" />
29
+        </el-tooltip>
30
+        <el-tooltip content="点击取消黑名单" placement="top">
31
+          <i v-show="isBlack" class="callin_btn callincelblack" @click="btn_cancelBlack" />
32
+        </el-tooltip>
33
+      </div>
34
+    </el-col>
35
+  </el-row>
36
+</template>
37
+
38
+<script>
39
+
40
+import { mapGetters } from 'vuex'
41
+
42
+import { getPhoneLocation } from '@/api/teloperation'
43
+import { cancelBlack } from '@/api/callScreen/callScreen'
44
+
45
+import addOrEditBlackList from '@/views/telCall/blackList/addOrEditBlackList'
46
+
47
+export default {
48
+
49
+  name: 'AddressNumber',
50
+  props: {
51
+    callinNum: {
52
+      type: String,
53
+      default: ''
54
+    },
55
+    cusInfo: {
56
+      type: Object,
57
+      default() {
58
+        return {}
59
+      }
60
+    }
61
+  },
62
+  data() {
63
+    return {
64
+      phoneData: '', // 归属地
65
+      callinTime: '00:00:00', // 通话时长
66
+      isBlack: false, // 是否加入黑名单
67
+      dropoff: false, // 是否挂断
68
+      telTimer: null // 时间定时器
69
+    }
70
+  },
71
+  computed: {
72
+    ...mapGetters([
73
+      'telCallNum', // 顶部显示号码
74
+      'telCallTime',
75
+      'telLineState'
76
+    ])
77
+  },
78
+  watch: {
79
+    telLineState: function(newT, oldT) {
80
+      this.watchTelLineState(newT, oldT)
81
+    }
82
+  },
83
+  created() {
84
+    if (this.callinNum) {
85
+      this.calladdress()
86
+    }
87
+  },
88
+  methods: {
89
+    // 通话时间
90
+    callTimeFun() {
91
+      // 通话时间重置为00:00:00
92
+      // 时间 计时
93
+      let _n = 0
94
+      if (this.telTimer) {
95
+        clearInterval(this.telTimer)
96
+      }
97
+      this.telTimer = setInterval(() => {
98
+        _n++
99
+        this.callTime = {
100
+          hh: this.toDub(parseInt((_n / 60 / 60) % 60)), // 小时
101
+          mm: this.toDub(parseInt((_n / 60) % 60)), // 分钟
102
+          ss: this.toDub(parseInt(_n % 60)) // 秒
103
+        }
104
+      }, 1000)
105
+    },
106
+    toDub(i) {
107
+      return i < 10 ? '0' + i : '' + i
108
+    },
109
+    // 加入黑名单
110
+    btn_addBlack() {
111
+      if (this.callinNum.length > 4) {
112
+        this.$layer.iframe({
113
+          content: {
114
+            content: addOrEditBlackList, // 传递的组件对象
115
+            parent: this, // 当前的vue对象
116
+            data: {
117
+              callinNum: this.callinNum
118
+            } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
119
+          },
120
+          area: ['40%', '300px'],
121
+          title: '加入黑名单'
122
+        })
123
+      } else {
124
+        this.$message.error('号码格式不对')
125
+      }
126
+    },
127
+    // 取消加入黑名单
128
+    btn_cancelBlack() {
129
+      cancelBlack(this.callinNum).then((response) => {
130
+        if (response.state.toLowerCase() === 'success') {
131
+          this.isBlack = !this.isBlack
132
+          this.$message.success('恭喜你,取消拉黑成功!')
133
+        }
134
+      })
135
+    },
136
+    calladdress() {
137
+      getPhoneLocation(this.callinNum).then((response) => {
138
+        if (response.state.toLowerCase() === 'success') {
139
+          if (response.data) {
140
+            this.phoneData = response.data
141
+          }
142
+        }
143
+      })
144
+    },
145
+    // 清除定时器
146
+    clearInter() {
147
+      clearInterval(this.telTimer)
148
+    },
149
+    // 监听 线路状态
150
+    watchTelLineState(newT, oldT) {
151
+      if (newT === 1) {
152
+        if (this.telTimer) {
153
+          clearInterval(this.telTimer)
154
+          this.telTimer = null
155
+        }
156
+        this.dropoff = true // 是否挂断
157
+        this.callinTime = `${this.telCallTime.hh}:${this.telCallTime.mm}:${this.telCallTime.ss}`
158
+      }
159
+    }
160
+  }
161
+}
162
+</script>
163
+
164
+<style rel="stylesheet/scss" lang="scss" scoped>
165
+
166
+		.callin_name {
167
+			font-size: 16px;
168
+			color: #333333;
169
+			margin: 0;
170
+			font-weight: 400;
171
+		}
172
+
173
+		.callin_con {
174
+			margin: 0;
175
+			padding: 0;
176
+			font-size: 14px;
177
+			color: #4c4c4c;
178
+		}
179
+
180
+		.callin_num {
181
+			font-size: 16px;
182
+			color: #5092e1;
183
+		}
184
+
185
+		.callin_address {
186
+			color: rgb(214, 113, 18);
187
+		}
188
+
189
+		.callin_time {
190
+			color: #808080;
191
+		}
192
+
193
+		.callin_btns {
194
+			position: absolute;
195
+			right: 0;
196
+			top: 0;
197
+		}
198
+
199
+		.callin_btn {
200
+			width: 36px;
201
+			height: 36px;
202
+			display: inline-block;
203
+			margin-left: 10px;
204
+			cursor: pointer;
205
+		}
206
+
207
+		.callinblack {
208
+			background: url("~@/assets/imgs/callinblack.png") center center no-repeat;
209
+		}
210
+
211
+		.callincelblack {
212
+			background: url("~@/assets/imgs/callincelblack.png") center center no-repeat;
213
+		}
214
+
215
+</style>

+ 1 - 1
CallCenterWeb.UI/RMYY/src/views/callScreen/components/callList.vue

@@ -30,7 +30,7 @@
30 30
 import { getCallRecords } from '@/api/trafficData/trafficData'
31 31
 import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
32 32
 export default {
33
-  name: 'CallRecordList',
33
+  name: 'CallList',
34 34
   components: {
35 35
     Pagination
36 36
   },

+ 14 - 232
CallCenterWeb.UI/RMYY/src/views/callScreen/components/callScreen.vue

@@ -4,58 +4,23 @@
4 4
     <!-- 归属地信息 -->
5 5
     <el-col :md="24" class="right_wrap">
6 6
       <el-card shadow="hover" class="callin_header">
7
-        <el-row style="padding: 8px 0 !important; ">
8
-
9
-          <el-col style="width:110px">
10
-            <p class="callin_con">
11
-              <span class="callin_num">{{ callinNum }}</span>
12
-            </p>
13
-          </el-col>
14
-          <el-col :span="5">
15
-            <p class="callin_con">
16
-              <span class="callin_address">归属地:{{ phoneData }}</span>
17
-            </p>
18
-          </el-col>
19
-          <el-col :span="6">
20
-            <h5 class="callin_name">
21
-              {{ cusInfo.cusname }}
22
-            </h5>
23
-          </el-col>
24
-          <el-col :span="4">
25
-            <p class="callin_con callin_time">
26
-              <time v-show="!dropoff">当前通话时长:{{ telCallTime.hh }}:{{ telCallTime.mm }}:{{ telCallTime.ss }}</time>
27
-              <time v-show="dropoff">当前通话时长:{{ callinTime }}</time>
28
-            </p>
29
-          </el-col>
30
-          <el-col :span="4">
31
-            <div class="callin_btns">
32
-              <el-tooltip content="点击加入黑名单" placement="top">
33
-                <i v-show="!isBlack" class="callin_btn callinblack" @click="btn_addBlack" />
34
-              </el-tooltip>
35
-              <el-tooltip content="点击取消黑名单" placement="top">
36
-                <i v-show="isBlack" class="callin_btn callincelblack" @click="btn_cancelBlack" />
37
-              </el-tooltip>
38
-            </div>
39
-          </el-col>
40
-        </el-row>
7
+        <address-number :callin-num="callinNum" :cus-info="cusInfo"/>
41 8
       </el-card>
42 9
     </el-col>
43 10
     <!-- 客户信息 -->
44 11
     <el-col :span="24">
45 12
       <div class="msgbox">客户信息</div>
46 13
       <el-card class="customer_info">
47
-        <AddOrEditCustomer
14
+        <add-or-edit-customer
48 15
           :callin-num="callinNum"
49
-          @addOrEditBlackList="getisBlack"
50
-          @cus-info-list="getCusInfos"
51
-          @fromChild="getChild"/>
16
+          @cus-info-list="getCusInfos"/>
52 17
       </el-card>
53 18
     </el-col>
54 19
     <!-- 添加工单 -->
55 20
     <el-col :span="24">
56 21
       <div class="msgbox">添加工单</div>
57 22
       <el-card class="customer_info">
58
-        <AddOrEditOrder :callid="callinCallid"/>
23
+        <add-or-edit-order :callid="callinCallid"/>
59 24
       </el-card>
60 25
     </el-col>
61 26
     <!-- tab切换 -->
@@ -64,17 +29,17 @@
64 29
         <el-tabs v-model="activeName" @tab-click="handleClick">
65 30
           <el-tab-pane label="知识库" name="first">
66 31
             <div class="tab_body">
67
-              <knowledgeList ref="knowledgeListEl" :callin-num="callinNum" :callid="callinCallid" />
32
+              <knowledge-List ref="knowledgeListEl" :callin-num="callinNum" :callid="callinCallid" />
68 33
             </div>
69 34
           </el-tab-pane>
70 35
           <el-tab-pane label="历史通话记录" name="second">
71 36
             <div class="tab_body">
72
-              <CallList ref="callListEl" :callin-num="callinNum" :callid="callinCallid" />
37
+              <call-list ref="callListEl" :callin-num="callinNum" :callid="callinCallid" />
73 38
             </div>
74 39
           </el-tab-pane>
75 40
           <el-tab-pane label="工单记录" name="third">
76 41
             <div class="tab_body">
77
-              <OrderList ref="orderListEl" :callin-num="callinNum" :callid="callinCallid" />
42
+              <order-list ref="orderListEl" :callin-num="callinNum" :callid="callinCallid" />
78 43
             </div>
79 44
           </el-tab-pane>
80 45
 
@@ -87,24 +52,23 @@
87 52
 <script>
88 53
 import { mapGetters } from 'vuex'
89 54
 
90
-import { getPhoneLocation } from '@/api/teloperation'
91
-import { cancelBlack } from '@/api/callScreen/callScreen'
92
-
93 55
 // 此处引用的是黑名单管理的添加视图
94
-import addOrEditBlackList from '@/views/telCall/blackList/addOrEditBlackList'
56
+import AddressNumber from './addressNumber'
57
+
95 58
 import CallList from './CallList'
96 59
 import OrderList from './OrderList'
97
-import knowledgeList from './knowledgeList'
60
+import KnowledgeList from './knowledgeList'
98 61
 import AddOrEditCustomer from './AddOrEditCustomer'
99 62
 import AddOrEditOrder from './AddOrEditOrder'
100 63
 
101 64
 export default {
102
-  name: 'CallScreen',
65
+  name: 'CallScreenComponent',
103 66
   components: {
104 67
     CallList,
105 68
     OrderList,
69
+    AddressNumber,
106 70
     AddOrEditCustomer,
107
-    knowledgeList,
71
+    KnowledgeList,
108 72
     AddOrEditOrder
109 73
   },
110 74
   data() {
@@ -113,11 +77,8 @@ export default {
113 77
       // 咨询类型级联
114 78
       activeName: 'first', // tab切换默认显示来电历史工单
115 79
       callinNum: '', // 来电号码
116
-      callinTime: '00:00:00', // 通话时长
117
-      telTimer: null, // 时间定时器
118 80
       callinCallid: '', // 来电id
119 81
       isBlack: false, // 是否加入黑名单
120
-      dropoff: false, // 是否挂断
121 82
       cusInfo: {
122 83
         // 客户信息
123 84
         cusname: '未知', // 客户姓名
@@ -129,105 +90,13 @@ export default {
129 90
 
130 91
   computed: {
131 92
     ...mapGetters([
132
-      'telCallNum', // 顶部显示号码
133
-      'telCallTime',
134
-      'telLineState'
93
+      'telCallNum' // 顶部显示号码
135 94
     ])
136 95
   },
137
-  watch: {
138
-    telLineState: function(newT, oldT) {
139
-      this.watchTelLineState(newT, oldT)
140
-      // console.log(this.$route.params.callid + '------->')
141
-      // this.callinCallid = this.$route.params.callid
142
-    }
143
-  },
144 96
   created() {
145 97
     this.callinNum = this.telCallNum // 来电号码  $route.params.telInNumber
146
-    // this.callinNum = '13623812888'
147
-    // this.callinCallid = this.inComingCallId
148
-
149
-    if (this.callinNum) {
150
-      this.calladdress()
151
-    }
152 98
   },
153 99
   methods: {
154
-    getisBlack(e) {
155
-      this.isBlack = e
156
-    },
157
-    // 同步客户信息
158
-    getChild(v) { },
159
-    // 归属地
160
-    calladdress() {
161
-      getPhoneLocation(this.callinNum).then((response) => {
162
-        if (response.state.toLowerCase() === 'success') {
163
-          if (response.data) {
164
-            this.phoneData = response.data
165
-          }
166
-        }
167
-      })
168
-    },
169
-    // 通话时间
170
-    callTimeFun() {
171
-      // 通话时间重置为00:00:00
172
-      // 时间 计时
173
-      let _n = 0
174
-      if (this.telTimer) {
175
-        clearInterval(this.telTimer)
176
-      }
177
-      this.telTimer = setInterval(() => {
178
-        _n++
179
-        this.callTime = {
180
-          hh: this.toDub(parseInt((_n / 60 / 60) % 60)), // 小时
181
-          mm: this.toDub(parseInt((_n / 60) % 60)), // 分钟
182
-          ss: this.toDub(parseInt(_n % 60)) // 秒
183
-        }
184
-      }, 1000)
185
-    },
186
-    toDub(i) {
187
-      return i < 10 ? '0' + i : '' + i
188
-    },
189
-    // 加入黑名单
190
-    btn_addBlack() {
191
-      if (this.callinNum.length > 4) {
192
-        this.$layer.iframe({
193
-          content: {
194
-            content: addOrEditBlackList, // 传递的组件对象
195
-            parent: this, // 当前的vue对象
196
-            data: {
197
-              callinNum: this.callinNum
198
-            } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
199
-          },
200
-          area: ['40%', '300px'],
201
-          title: '加入黑名单'
202
-        })
203
-      } else {
204
-        this.$message.error('号码格式不对')
205
-      }
206
-    },
207
-    // 取消加入黑名单
208
-    btn_cancelBlack() {
209
-      cancelBlack(this.callinNum).then((response) => {
210
-        if (response.state.toLowerCase() === 'success') {
211
-          this.isBlack = !this.isBlack
212
-          this.$message.success('恭喜你,取消拉黑成功!')
213
-        }
214
-      })
215
-    },
216
-    // 清除定时器
217
-    clearInter() {
218
-      clearInterval(this.telTimer)
219
-    },
220
-    // 监听 线路状态
221
-    watchTelLineState(newT, oldT) {
222
-      if (newT === 1) {
223
-        if (this.telTimer) {
224
-          clearInterval(this.telTimer)
225
-          this.telTimer = null
226
-        }
227
-        this.dropoff = true // 是否挂断
228
-        this.callinTime = `${this.telCallTime.hh}:${this.telCallTime.mm}:${this.telCallTime.ss}`
229
-      }
230
-    },
231 100
     // tab 切换
232 101
     handleClick(tab, event) {
233 102
       if (tab.name === 'first') {
@@ -267,12 +136,6 @@ export default {
267 136
       }
268 137
       this.$refs.cutomerListEl.getList()
269 138
     },
270
-    // 获取毫秒数
271
-    getTime() {
272
-      const timer = new Date()
273
-      const timer2 = timer.getTime()
274
-      return timer2
275
-    },
276 139
     // 获取客户信息
277 140
     getCusInfos(data) {
278 141
       if (data) {
@@ -331,87 +194,6 @@ export default {
331 194
 		cursor: pointer;
332 195
 	}
333 196
 
334
-	.callin_header {
335
-		margin-top: 15px;
336
-
337
-		.incall_avatar {
338
-			width: 106px;
339
-			height: 106px;
340
-			vertical-align: middle;
341
-			border-radius: 50%;
342
-		}
343
-
344
-		.callin_name {
345
-			font-size: 16px;
346
-			color: #333333;
347
-			margin: 0;
348
-			font-weight: 400;
349
-
350
-			.callin_custype {
351
-				color: #5092e1;
352
-				font-size: 14px;
353
-			}
354
-		}
355
-
356
-		.callin_con {
357
-			margin: 0;
358
-			padding: 0;
359
-			font-size: 14px;
360
-			color: #4c4c4c;
361
-		}
362
-
363
-		.callin_num {
364
-			font-size: 16px;
365
-			color: #5092e1;
366
-		}
367
-
368
-		.callin_address {
369
-			color: rgb(214, 113, 18);
370
-		}
371
-
372
-		.callin_time {
373
-			color: #808080;
374
-		}
375
-
376
-		.callin_btns {
377
-			position: absolute;
378
-			right: 0;
379
-			top: 0;
380
-		}
381
-
382
-		.callin_btn {
383
-			width: 36px;
384
-			height: 36px;
385
-			display: inline-block;
386
-			margin-left: 10px;
387
-			cursor: pointer;
388
-		}
389
-
390
-		.callinorder {
391
-			background: url("~@/assets/imgs/callinorder.png") center center no-repeat;
392
-		}
393
-
394
-		.callinuser {
395
-			background: url("~@/assets/imgs/callinuser.png") center center no-repeat;
396
-		}
397
-
398
-		.callinpro {
399
-			background: url("~@/assets/imgs/xiangmu.png") center center no-repeat;
400
-		}
401
-
402
-		.callinblack {
403
-			background: url("~@/assets/imgs/callinblack.png") center center no-repeat;
404
-		}
405
-
406
-		.callincelblack {
407
-			background: url("~@/assets/imgs/callincelblack.png") center center no-repeat;
408
-		}
409
-
410
-		.callinivr {
411
-			background: url("~@/assets/imgs/callinivr.png") center center no-repeat;
412
-		}
413
-	}
414
-
415 197
 	.customer_info {
416 198
 		margin-top: 15px;
417 199
 

+ 1 - 1
CallCenterWeb.UI/RMYY/src/views/callScreen/components/knowledgeList.vue

@@ -55,7 +55,7 @@ import { getList, delInfos, getTypeTree } from '@/api/knowledgeBase/knowledgeBas
55 55
 
56 56
 import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
57 57
 export default {
58
-  name: 'CallRecordList',
58
+  name: 'KnowledgeList',
59 59
   components: {
60 60
     Pagination
61 61
   },

+ 0 - 2
CallCenterWeb.UI/RMYY/src/views/callScreen/index.vue

@@ -13,14 +13,12 @@
13 13
 <script>
14 14
 import CallScreenComponent from './components/callScreen'
15 15
 import { mapGetters } from 'vuex'
16
-import CallScreen from './components/callScreen.vue'
17 16
 export default {
18 17
   name: 'CallScreen',
19 18
   components: {
20 19
     CallScreenComponent
21 20
   },
22 21
   data() {
23
-    CallScreen
24 22
     return {
25 23
       editableTabsValue: '1',
26 24
       editableTabs: [{

+ 7 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/salvageMuter/index.vue

@@ -0,0 +1,7 @@
1
+<template>
2
+  <div>
3
+    <keep-alive>
4
+      <router-view />
5
+    </keep-alive>
6
+  </div>
7
+</template>

+ 123 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/salvageMuter/muterDistribute/addOrEdit.vue

@@ -0,0 +1,123 @@
1
+<template>
2
+  <div v-loading="loading">
3
+    <el-form ref="ruleForm" :model="ruleForm" label-width="100px">
4
+      <el-form-item label="字段1" >
5
+        <el-input v-model="ruleForm.name1" placeholder="请输入号段"/>
6
+      </el-form-item>
7
+      <el-form-item label="字段2">
8
+        <el-input v-model="ruleForm.name2" placeholder="请输入区号"/>
9
+      </el-form-item>
10
+      <el-form-item label="字段3">
11
+        <el-input v-model="ruleForm.name3" placeholder="请输入城市"/>
12
+      </el-form-item>
13
+
14
+      <el-form-item>
15
+        <el-button type="primary" @click="submitForm">保存</el-button>
16
+        <el-button @click="resetForm">重置</el-button>
17
+      </el-form-item>
18
+    </el-form>
19
+  </div>
20
+</template>
21
+
22
+<script>
23
+// import { getDetail, add, edit } from '@/api'
24
+
25
+export default {
26
+  name: 'AddOrEdit',
27
+  props: {
28
+    rowid: {
29
+      type: String,
30
+      default: ''
31
+    },
32
+    layerid: {
33
+      type: String,
34
+      default: ''
35
+    }
36
+  },
37
+  data() {
38
+    return {
39
+      ruleForm: {
40
+        callid: '',
41
+        type: '', // 工单类别
42
+        hosid: '',	// 院区id
43
+        deptid: '', // 申请科室id
44
+        deptname: '', // 申请科室名称
45
+        usercode: '', // 申请人编码
46
+        username: '', //	申请人
47
+        phon: '', //	联系电话--病床位置
48
+        itemessage: '', //	标本名称
49
+        positon: '', //	送达地点
50
+        remark: '' //	备注
51
+      },
52
+      loading: false
53
+    }
54
+  },
55
+  created() {
56
+    if (this.rowid) {
57
+      this.ruleForm.id = this.rowid
58
+      this.getDetail(this.rowid)
59
+    }
60
+  },
61
+  methods: {
62
+    submitForm() {
63
+      this.$refs.ruleForm.validate((valid) => {
64
+        if (valid) {
65
+          this.loading = true
66
+          const datas = {
67
+            id: this.ruleForm.id,
68
+            name1: this.ruleForm.mobilenum, //	是	string	号段
69
+            name2: this.ruleForm.zipcode, //	是	string	区号
70
+            name3: this.ruleForm.citydes//	是	string	城市
71
+          }
72
+
73
+          // 添加
74
+          if (!this.rowid) {
75
+            // add(datas).then(response => {
76
+            //   this.loading = false
77
+            //   if (response.state.toLowerCase() === 'success') {
78
+            //     this.$parent.$layer.close(this.layerid)
79
+            //     this.$parent.getList() // 重新加载父级数据
80
+            //     this.$message.success('恭喜你,号码归属地添加成功!')
81
+            //   }
82
+            // }).catch(() => {
83
+            //   this.loading = false
84
+            // })
85
+          }
86
+          // 编辑
87
+          // edit(datas).then(response => {
88
+          //   this.loading = false
89
+          //   if (response.state.toLowerCase() === 'success') {
90
+          //     this.$parent.$layer.close(this.layerid)
91
+          //     this.$parent.getList() // 重新加载父级数据
92
+          //     this.$message.success('恭喜你,号码归属地编辑成功!')
93
+          //   }
94
+          // }).catch(() => {
95
+          //   this.loading = false
96
+          // })
97
+        } else {
98
+          this.$message.error('请输入有效的必填项信息!')
99
+          return false
100
+        }
101
+      })
102
+    },
103
+    resetForm() {
104
+      this.$refs.ruleForm.resetFields()
105
+    },
106
+    // 获取详情
107
+    getDetail(rid) {
108
+      // getDetail(rid).then(response => {
109
+      //   if (response.state.toLowerCase() === 'success') {
110
+      //     const res = response.data
111
+      //     this.ruleForm.name1 = res.name1
112
+      //     this.ruleForm.name2 = res.name2
113
+      //     this.ruleForm.name3 = res.name3
114
+      //   }
115
+      // })
116
+    }
117
+  }
118
+}
119
+</script>
120
+
121
+<style rel="stylesheet/scss" lang="scss" scoped>
122
+
123
+</style>

+ 121 - 0
CallCenterWeb.UI/RMYY/src/views/comDispatch/salvageMuter/muterDistribute/index.vue

@@ -0,0 +1,121 @@
1
+<template>
2
+  <div class="app-container">
3
+    <div class="filter-container">
4
+      <el-input v-model="keyword" placeholder="请输入关键词" class="filter-item" />
5
+      <el-button type="primary" class="filter-item" icon="el-icon-search" @click="btn_search">搜索</el-button>
6
+      <el-button type="primary" class="filter-item" icon="el-icon-plus" @click="btn_add">添加</el-button>
7
+    </div>
8
+    <el-table v-loading="loading" :data="dataLists" border stripe>
9
+      <el-table-column type="index" label="编号" align="center" fixed width="80" />
10
+      <el-table-column label="操作" width="160" align="center" class-name="oparate_btn" fixed="right">
11
+        <template slot-scope="scope">
12
+          <el-button size="mini" plain type="primary" @click="btn_edit(scope.row.F_Id)">编辑</el-button>
13
+          <el-button size="mini" plain type="danger" @click="btn_delete(scope.row.F_Id)">删除</el-button>
14
+        </template>
15
+      </el-table-column>
16
+    </el-table>
17
+    <pagination v-show="pageParams.total > 0" :total="pageParams.total" :pageindex.sync="pageParams.pageindex" :pagesize.sync="pageParams.pagesize" class="pagination" @pagination="getList" />
18
+  </div>
19
+</template>
20
+<script>
21
+import { getDisList, deleteData } from '@/api/comDispatch/muterDistribute'
22
+import addOrEdit from './addOrEdit'
23
+import Pagination from '@/components/context/Pagination'
24
+
25
+export default {
26
+  name: 'List',
27
+  components: {
28
+    Pagination
29
+  },
30
+  data() {
31
+    return {
32
+      loading: false,
33
+      keyword: '',
34
+      type: 2006,
35
+      pageParams: {
36
+        pageindex: 1,
37
+        pagesize: Number(this.$store.getters.serverConfig.PAGESIZE),
38
+        total: 0
39
+      },
40
+      dataLists: []
41
+    }
42
+  },
43
+  created() {
44
+    this.getList()
45
+    document.onkeyup = (e) => {
46
+      if (e.keyCode === 13) {
47
+        this.getList()
48
+      }
49
+    }
50
+  },
51
+  methods: {
52
+    getList() {
53
+      // this.loading = true
54
+      return new Promise((resolve) => {
55
+        const params = {
56
+          pageindex: this.pageParams.pageindex, // 第几页
57
+          pagesize: this.pageParams.pagesize, // 每页几条信息
58
+          keyword: this.keyword.replace(/\s+/g, ''),
59
+          type: this.type,
60
+          stime: this.searchDate && this.searchDate[0],
61
+          etime: this.searchDate && this.searchDate[1]
62
+        }
63
+        getDisList(params).then((response) => {
64
+          this.loading = false
65
+          if (response.rows.length >= 0) {
66
+            this.pageParams.total = response.total
67
+            this.dataLists = response.rows
68
+          }
69
+        })
70
+        resolve()
71
+      })
72
+    },
73
+    btn_search() {
74
+      this.pageParams.pageindex = 1
75
+      this.getList()
76
+    },
77
+    btn_add() {
78
+      this.$layer.iframe({
79
+        content: {
80
+          content: addOrEdit, // 传递的组件对象
81
+          parent: this, // 当前的vue对象
82
+          data: { rowid: '' }
83
+        },
84
+        area: ['40%', '350px'],
85
+        title: '添加'
86
+      })
87
+    },
88
+    btn_edit(editId) {
89
+      this.$layer.iframe({
90
+        content: {
91
+          content: addOrEdit, // 传递的组件对象
92
+          parent: this, // 当前的vue对象
93
+          data: { rowid: editId.toString() } // props
94
+        },
95
+        area: ['40%', '350px'],
96
+        title: '编辑'
97
+      })
98
+    },
99
+    btn_delete(editId) {
100
+      this.confirm('您确定要删除此信息吗?', '提示', {
101
+        confirmButtonText: '确定',
102
+        cancelButtonText: '取消',
103
+        type: 'warning'
104
+      })
105
+      // .then(() => {
106
+      // deleteList(editId).then((response) => {
107
+      // if (response.state.toLowerCase() === 'success') {
108
+      // this.getList()
109
+      // this.message.success('删除成功!')
110
+      // }
111
+      // })
112
+      // })
113
+      // .catch(() => {
114
+      // this.message.info('已取消删除')
115
+      // })
116
+    }
117
+  }
118
+}
119
+</script>
120
+<style rel="stylesheet/scss" lang="scss" scoped>
121
+</style>

+ 65 - 0
CallCenterWeb.UI/RMYY/src/views/layout/components/Sidebar/SidebarItem copy.vue

@@ -0,0 +1,65 @@
1
+<template>
2
+  <div class="menu-wrapper">
3
+    <template v-for="item in routes" v-if="!item.hidden&&item.children">
4
+
5
+      <router-link
6
+        v-if="hasOneShowingChildren(item.children) && !item.children[0].children&&!item.alwaysShow"
7
+        :to="item.path+'/'+item.children[0].path"
8
+        :key="item.children[0].id">
9
+        <el-menu-item :index="item.path+'/'+item.children[0].path" :class="{'submenu-title-noDropdown':!isNest}">
10
+          <svg-icon v-if="item.children[0].meta&&item.children[0].meta.icon" :icon-class="item.children[0].meta.icon"/>
11
+          <span v-if="item.children[0].meta&&item.children[0].meta.title" slot="title">{{ item.children[0].meta.title }}</span>
12
+        </el-menu-item>
13
+      </router-link>
14
+
15
+      <el-submenu v-else :index="item.name||item.path" :key="item.id">
16
+        <template slot="title">
17
+          <svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"/>
18
+          <span v-if="item.meta&&item.meta.title" slot="title">{{ item.meta.title }}</span>
19
+        </template>
20
+
21
+        <template v-for="child in item.children" v-if="!child.hidden">
22
+          <sidebar-item v-if="child.children&&child.children.length>0" :is-nest="true" :routes="[child]" :key="child.id" class="nest-menu"/>
23
+
24
+          <router-link v-else :to="item.path+'/'+child.path" :key="child.id">
25
+            <el-menu-item :index="item.path+'/'+child.path">
26
+              <svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"/>
27
+              <span v-if="child.meta&&child.meta.title" slot="title">{{ child.meta.title }}</span>
28
+            </el-menu-item>
29
+          </router-link>
30
+        </template>
31
+      </el-submenu>
32
+
33
+    </template>
34
+  </div>
35
+</template>
36
+
37
+<script>
38
+export default {
39
+  name: 'SidebarItem',
40
+  props: {
41
+    routes: {
42
+      type: Array,
43
+      default: () => {}
44
+    },
45
+    isNest: {
46
+      type: Boolean,
47
+      default: false
48
+    }
49
+  },
50
+  created() {
51
+    console.log(this.routes)
52
+  },
53
+  methods: {
54
+    hasOneShowingChildren(children) {
55
+      const showingChildren = children.filter(item => {
56
+        return !item.hidden
57
+      })
58
+      if (showingChildren.length === 1) {
59
+        return true
60
+      }
61
+      return false
62
+    }
63
+  }
64
+}
65
+</script>

+ 21 - 1
CallCenterWeb.UI/RMYY/src/views/layout/components/Sidebar/SidebarItem.vue

@@ -19,7 +19,24 @@
19 19
         </template>
20 20
 
21 21
         <template v-for="child in item.children" v-if="!child.hidden">
22
-          <sidebar-item v-if="child.children&&child.children.length>0" :is-nest="true" :routes="[child]" :key="child.id" class="nest-menu"/>
22
+
23
+          <!-- <sidebar-item v-if="child.children&&child.children.length>0" :is-nest="true" :routes="[child]" :key="child.id" class="nest-menu"/> -->
24
+          <el-submenu v-if="child.children&&child.children.length>0" :index="child.name||child.path" :key="child.id">
25
+
26
+            <template slot="title">
27
+              <svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"/>
28
+              <span v-if="child.meta&&child.meta.title" slot="title">{{ child.meta.title }}</span>
29
+            </template>
30
+            <template v-for="childSecond in child.children" v-if="!childSecond.hidden">
31
+              <router-link :to="'/'+childSecond.path" :key="childSecond.id">
32
+                <el-menu-item :index="'/'+childSecond.path">
33
+                  <svg-icon v-if="childSecond.meta&&childSecond.meta.icon" :icon-class="childSecond.meta.icon"/>
34
+                  <span v-if="childSecond.meta&&childSecond.meta.title" slot="title">{{ childSecond.meta.title }}</span>
35
+                </el-menu-item>
36
+              </router-link>
37
+
38
+            </template>
39
+          </el-submenu>
23 40
 
24 41
           <router-link v-else :to="item.path+'/'+child.path" :key="child.id">
25 42
             <el-menu-item :index="item.path+'/'+child.path">
@@ -47,6 +64,9 @@ export default {
47 64
       default: false
48 65
     }
49 66
   },
67
+  created() {
68
+    console.log(this.routes)
69
+  },
50 70
   methods: {
51 71
     hasOneShowingChildren(children) {
52 72
       const showingChildren = children.filter(item => {