weieryang 3 lat temu
rodzic
commit
e8eee14194

+ 1 - 1
CallCenterWeb.UI/RMYY/src/components/context/commonSelect/selectOrderType.vue

181
 
181
 
182
 <style rel="stylesheet/scss" lang="scss" scoped="scoped">
182
 <style rel="stylesheet/scss" lang="scss" scoped="scoped">
183
   /deep/.el-radio-button__inner {
183
   /deep/.el-radio-button__inner {
184
-    margin-right: 20px;
184
+    margin-right: 15px;
185
     border-radius: 0 !important;
185
     border-radius: 0 !important;
186
     border: 1px solid rgb(205, 205, 205);
186
     border: 1px solid rgb(205, 205, 205);
187
   }
187
   }

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

2
   <div v-loading="loading">
2
   <div v-loading="loading">
3
     <div class="filter-container">
3
     <div class="filter-container">
4
       <el-input v-model="callNum" placeholder="请输入关键字" class="filter-item" size="medium" clearable/>
4
       <el-input v-model="callNum" placeholder="请输入关键字" class="filter-item" size="medium" clearable/>
5
-      <el-date-picker v-model="startTime" size="medium" type="daterange" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
6
-        range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
5
+      <el-date-picker
6
+        v-model="startTime"
7
+        size="medium"
8
+        type="daterange"
9
+        format="yyyy-MM-dd"
10
+        value-format="yyyy-MM-dd"
11
+        range-separator="至"
12
+        start-placeholder="开始日期"
13
+        end-placeholder="结束日期" />
14
+      <el-input v-model="phone" placeholder="请输入电话" class="filter-item" size="medium" clearable/>
7
       <el-button type="primary" class="filter-item" size="medium" @click="btn_search_task">搜索
15
       <el-button type="primary" class="filter-item" size="medium" @click="btn_search_task">搜索
8
       </el-button>
16
       </el-button>
9
     </div>
17
     </div>
15
         </template>
23
         </template>
16
       </el-table-column>
24
       </el-table-column>
17
       <el-table-column prop="F_ProposerName" label="姓名" align="center" min-width />
25
       <el-table-column prop="F_ProposerName" label="姓名" align="center" min-width />
18
-      <el-table-column prop="F_SonType" :formatter="formtOrder" label="工单类别" align="center" />
26
+      <el-table-column :formatter="formtOrder" prop="F_SonType" label="工单类别" align="center" />
19
       <el-table-column prop="F_Content" label="工单内容" align="center" />
27
       <el-table-column prop="F_Content" label="工单内容" align="center" />
20
       <el-table-column prop="StateName" label="工单状态" align="center" />
28
       <el-table-column prop="StateName" label="工单状态" align="center" />
21
       <el-table-column prop="F_CreateTime" label="创建时间" align="center" />
29
       <el-table-column prop="F_CreateTime" label="创建时间" align="center" />
22
     </el-table>
30
     </el-table>
23
-    <pagination v-show="pageParams.total > 0" :total="pageParams.total" :page-sizes="[5, 10, 15, 20]"
24
-      :pageindex.sync="pageParams.pageindex" :pagesize.sync="pageParams.pagesize" :auto-scroll="false"
25
-      class="pagination" @pagination="getList" />
31
+    <pagination
32
+      v-show="pageParams.total > 0"
33
+      :total="pageParams.total"
34
+      :page-sizes="[5, 10, 15, 20]"
35
+      :pageindex.sync="pageParams.pageindex"
36
+      :pagesize.sync="pageParams.pagesize"
37
+      :auto-scroll="false"
38
+      class="pagination"
39
+      @pagination="getList" />
26
   </div>
40
   </div>
27
 </template>
41
 </template>
28
 
42
 
29
 <script>
43
 <script>
30
-  import {
31
-    getList,
32
-    getAddWorkOrder,
33
-    getUpdateWorkOrder,
34
-    getDelete,
35
-    getModelDetail,
36
-    getAssignWorkOrder,
37
-    getSureWorkOrder
38
-  } from '@/api/vehicleDispatch/vehicleScheduling.js'
39
-  import {
40
-    getorderList
41
-  } from '@/api/orderManagement/orderList'
42
-  import detail from '../../orderManage/components/orderDetail.vue'
43
-  import askDetail from '../../orderManage/components/askdetail.vue'
44
-  import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
45
-  export default {
46
-    name: 'OrderList',
47
-    components: {
48
-      Pagination
49
-    },
50
-    props: {
51
-      callinNum: {
52
-        type: String,
53
-        default: ''
54
-      }
55
-    },
44
+import {
45
+  getorderList
46
+} from '@/api/orderManagement/orderList'
47
+import detail from '../../orderManage/components/orderDetail.vue'
48
+import askDetail from '../../orderManage/components/askdetail.vue'
49
+import carDetail from '../../orderManage/components/cardetail.vue'
50
+import dispatchDetail from '../../comDispatch/components/dispatchdetail.vue'
51
+import Pagination from '@/components/context/Pagination' // 对el-pagination 二次封装
52
+export default {
53
+  name: 'OrderList',
54
+  components: {
55
+    Pagination
56
+  },
57
+  props: {
58
+    callinNum: {
59
+      type: String,
60
+      default: ''
61
+    }
62
+  },
56
 
63
 
57
-    data() {
58
-      return {
59
-        callNum: '', // 来电号码
60
-        keyword:'',
61
-        startTime:'',
62
-        loading: false,
63
-        pageParams: {
64
-          pageindex: 1, // 当前第几页
65
-          pagesize: 5, // 每页几条数据
66
-          total: 0 // 总共多少数据
67
-        },
68
-        dataLists: [] // 列表数据
69
-      }
70
-    },
71
-    created() {
72
-      if (this.callinNum === '') {
73
-        this.callNum = ''
74
-      } else {
75
-        this.callNum = this.callinNum
64
+  data() {
65
+    return {
66
+      callNum: '', // 来电号码
67
+      keyword: '',
68
+      phone: '',
69
+      startTime: '',
70
+      loading: false,
71
+      pageParams: {
72
+        pageindex: 1, // 当前第几页
73
+        pagesize: 5, // 每页几条数据
74
+        total: 0 // 总共多少数据
75
+      },
76
+      dataLists: [] // 列表数据
77
+    }
78
+  },
79
+  created() {
80
+    if (this.callinNum === '') {
81
+      this.callNum = ''
82
+    } else {
83
+      this.callNum = this.callinNum
84
+    }
85
+    this.getList()
86
+  },
87
+  methods: {
88
+    formtOrder(row, column) {
89
+      if (row.F_SonType) {
90
+        return this.$store.getters.workTypeMap[parseInt(row.F_SonType)].text
76
       }
91
       }
77
-      this.getList()
78
     },
92
     },
79
-    methods: {
80
-      formtOrder(row, column) {
81
-        if (row.F_SonType) {
82
-          return this.$store.getters.workTypeMap[parseInt(row.F_SonType)].text
93
+    getList() {
94
+      return new Promise(resolve => {
95
+        const params = {
96
+          pageindex: this.pageParams.pageindex, // 第几页
97
+          pagesize: this.pageParams.pagesize, // 每页几条信息
98
+          phone: this.phone, //	否	string	模糊查询(呼叫号码)
99
+          keyword: this.callNum,
100
+          starttime: this.startTime && this.startTime[0],
101
+          endtime: this.startTime && this.startTime[1],
102
+          callType: 1 // 呼叫类型
83
         }
103
         }
84
-      },
85
-      getList() {
86
-        this.loading = true
87
-        return new Promise(resolve => {
88
-          const params = {
89
-            pageindex: this.pageParams.pageindex, // 第几页
90
-            pagesize: this.pageParams.pagesize, // 每页几条信息
91
-            phone: this.callNum, //	否	string	模糊查询(呼叫号码)
92
-            keywords:this.callNum,
93
-            starttime:this.startTime[0],
94
-            endtime:this.startTime[1],
95
-            callType: 1 // 呼叫类型
96
-          }
97
-          getorderList(params).then(response => {
98
-            this.loading = false
99
-            if (response.state.toLowerCase() === 'success') {
100
-              if (response.total == null) {
101
-                this.pageParams.total = 0
102
-              } else {
103
-                this.pageParams.total = response.total
104
-              }
105
-              this.dataLists = response.rows
104
+        getorderList(params).then(response => {
105
+          if (response.state.toLowerCase() === 'success') {
106
+            if (response.total == null) {
107
+              this.pageParams.total = 0
108
+            } else {
109
+              this.pageParams.total = response.total
106
             }
110
             }
107
-          })
108
-          resolve()
111
+            this.dataLists = response.rows
112
+          }
113
+        })
114
+        resolve()
115
+      })
116
+    },
117
+    btn_search_task() {
118
+      this.getList()
119
+    },
120
+    hadndleOrderCode(row) {
121
+      if (row.F_Type == 3000) {
122
+        this.$layer.iframe({
123
+          content: {
124
+            content: detail, // 传递的组件对象
125
+            parent: this, // 当前的vue对象
126
+            data: {
127
+              rowid: row.F_WoCode
128
+            } // props
129
+          },
130
+          area: ['80%', '90%'],
131
+          title: '订单详情'
132
+        })
133
+      }
134
+      if (row.F_Type == 1000) {
135
+        this.$layer.iframe({
136
+          content: {
137
+            content: askDetail,
138
+            parent: this,
139
+            data: {
140
+              rowid: row.F_WoCode
141
+            } // props
142
+          },
143
+          area: ['80%', '90%'],
144
+          title: '订单详情'
145
+        })
146
+      }
147
+      if (row.F_Type === 2000) {
148
+        this.$layer.iframe({
149
+          content: {
150
+            content: dispatchDetail,
151
+            parent: this,
152
+            data: {
153
+              rowid: row.F_WoCode
154
+            } // props
155
+          },
156
+          area: ['80%', '90%'],
157
+          title: '工单详情'
158
+        })
159
+      }
160
+      if (row.F_Type === 4000) {
161
+        this.$layer.iframe({
162
+          content: {
163
+            content: carDetail,
164
+            parent: this,
165
+            data: {
166
+              rowid: row.F_WoCode
167
+            } // props
168
+          },
169
+          area: ['80%', '90%'],
170
+          title: '工单详情'
109
         })
171
         })
110
-      },
111
-      btn_search_task(){
112
-        this.getList()
113
-      },
114
-      hadndleOrderCode(row) {
115
-        if(row.F_Type==3000){
116
-          this.$layer.iframe({
117
-            content: {
118
-              content: detail, // 传递的组件对象
119
-              parent: this, // 当前的vue对象
120
-              data: {
121
-                rowid: row.F_WoCode
122
-              } // props
123
-            },
124
-            area: ['80%', '90%'],
125
-            title: '订单详情'
126
-          })
127
-        }
128
-        if(row.F_Type==1000){
129
-          this.$layer.iframe({
130
-            content: {
131
-              content: askDetail,
132
-              parent: this,
133
-              data: {
134
-                rowid: row.F_WoCode
135
-              } // props
136
-            },
137
-            area: ['80%', '90%'],
138
-            title: '订单详情'
139
-          })
140
-        }
141
       }
172
       }
142
     }
173
     }
143
   }
174
   }
175
+}
144
 </script>
176
 </script>
145
 
177
 
146
 <style rel="stylesheet/scss" lang="scss" scoped>
178
 <style rel="stylesheet/scss" lang="scss" scoped>

+ 18 - 27
CallCenterWeb.UI/RMYY/src/views/callScreen/components/addressNumber.vue

1
 <template>
1
 <template>
2
-  <el-row class="rows" style="padding: 8px 0 !important;background-color: #404040;border-radius: 8px; ">
2
+  <el-row :gutter="24" class="rows" style="padding: 8px 10% !important;background-color: #404040;border-radius:10px; ">
3
     <el-col :span="6">
3
     <el-col :span="6">
4
-      <div class="topbox" style="">
4
+      <div class="topbox">
5
         <img :src="circleUrl" style="width: 100px;height: 100px;"></img>
5
         <img :src="circleUrl" style="width: 100px;height: 100px;"></img>
6
       </div>
6
       </div>
7
     </el-col>
7
     </el-col>
8
-    <el-col :span="7">
9
-      <p class="callin_con">
10
-        <span class="callin_num">来电号码:{{ callinNum }}</span>
11
-      </p>
8
+    <el-col :span="12">
9
+      <div style="height:90px;padding:5px 0">
10
+        <p class="callin_con">
11
+          <span class="callin_num">来电号码:{{ callinNum }}</span>
12
+        </p>
13
+        <p class="callin_con">
14
+          <span class="callin_num">&nbsp;归 属 地:{{ phoneData }}</span>
15
+        </p>
16
+        <p class="callin_con">
17
+          <span class="callin_num">本院患者:是</span>
18
+        </p>
19
+      </div>
12
     </el-col>
20
     </el-col>
13
-    <el-col :span="7">
14
-      <p class="callin_con callin_num" style="text-align: right;">
21
+    <el-col :span="6">
22
+      <p class="callin_con callin_num" style="text-align: left;margin-bottom:30px">
15
         <time v-show="!dropoff">{{ telCallTime.hh }}:{{ telCallTime.mm }}:{{ telCallTime.ss }}</time>
23
         <time v-show="!dropoff">{{ telCallTime.hh }}:{{ telCallTime.mm }}:{{ telCallTime.ss }}</time>
16
         <time v-show="dropoff">{{ callinTime }}</time>
24
         <time v-show="dropoff">{{ callinTime }}</time>
17
       </p>
25
       </p>
18
-    </el-col>
19
-    <el-col :span="14">
20
-      <p class="callin_con">
21
-        <span class="callin_num">&nbsp;归 属 地:{{ phoneData }}</span>
22
-      </p>
23
-    </el-col>
24
-    <el-col :span="7">
25
-      <p class="callin_con">
26
-        <span class="callin_num">本院患者:是</span>
27
-      </p>
28
-    </el-col>
29
-    <el-col :span="8">
30
-      <p class="callin_con" style="text-align: right;cursor: pointer;">
26
+      <p class="callin_con" style="text-align: left;cursor: pointer;">
31
         <i class="el-icon-circle-plus" style="color: red;font-size: 18px;" @click="btn_addBlack"/>
27
         <i class="el-icon-circle-plus" style="color: red;font-size: 18px;" @click="btn_addBlack"/>
32
         <span class="callin_num" style="color: red;font-size: 17px;" @click="btn_addBlack">加入黑名单</span>
28
         <span class="callin_num" style="color: red;font-size: 17px;" @click="btn_addBlack">加入黑名单</span>
33
       </p>
29
       </p>
177
 
173
 
178
   .callin_con {
174
   .callin_con {
179
     margin: 10px auto;
175
     margin: 10px auto;
180
-    padding: 0 20px;
176
+    padding: 0px 10px;
181
     font-size: 14px;
177
     font-size: 14px;
182
     color: #4c4c4c;
178
     color: #4c4c4c;
183
   }
179
   }
225
   }
221
   }
226
 
222
 
227
   .topbox {
223
   .topbox {
228
-    display: inline-block;
229
-    float: left;
230
-    height: 100px;
231
     text-align: center;
224
     text-align: center;
232
-    margin-top: 8px;
233
-    padding: 0 120px;
234
   }
225
   }
235
 </style>
226
 </style>

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

2
   <div v-loading="loading">
2
   <div v-loading="loading">
3
     <div class="filter-container">
3
     <div class="filter-container">
4
       <el-input v-model="callNum" placeholder="请输入手机号" class="filter-item" size="medium" clearable/>
4
       <el-input v-model="callNum" placeholder="请输入手机号" class="filter-item" size="medium" clearable/>
5
-      <el-date-picker v-model="startTime" size="medium" type="daterange" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
6
-        range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
5
+      <el-date-picker
6
+        v-model="startTime"
7
+        size="medium"
8
+        type="daterange"
9
+        format="yyyy-MM-dd"
10
+        value-format="yyyy-MM-dd"
11
+        range-separator="至"
12
+        start-placeholder="开始日期"
13
+        end-placeholder="结束日期" />
7
       <el-button type="primary" class="filter-item" size="medium" @click="btn_search_task">搜索
14
       <el-button type="primary" class="filter-item" size="medium" @click="btn_search_task">搜索
8
       </el-button>
15
       </el-button>
9
     </div>
16
     </div>
70
     return {
77
     return {
71
       callNum: '11', // 来电号码
78
       callNum: '11', // 来电号码
72
       loading: false,
79
       loading: false,
73
-      phone:'',
74
-      startTime:'',
80
+      phone: '',
81
+      startTime: '',
75
       pageParams: {
82
       pageParams: {
76
         pageindex: 1, // 当前第几页
83
         pageindex: 1, // 当前第几页
77
         pagesize: 5, // 每页几条数据
84
         pagesize: 5, // 每页几条数据
96
           pageindex: this.pageParams.pageindex, // 第几页
103
           pageindex: this.pageParams.pageindex, // 第几页
97
           pagesize: this.pageParams.pagesize, // 每页几条信息
104
           pagesize: this.pageParams.pagesize, // 每页几条信息
98
           phone: this.callNum, //	否	string	模糊查询(呼叫号码)
105
           phone: this.callNum, //	否	string	模糊查询(呼叫号码)
99
-          starttime: this.startTime[0],
100
-          endtime: this.startTime[1],
106
+          starttime: this.startTime && this.startTime[0],
107
+          endtime: this.startTime && this.startTime[1],
101
           callType: 1 // 呼叫类型
108
           callType: 1 // 呼叫类型
102
         }
109
         }
103
         getCallRecords(params).then(response => {
110
         getCallRecords(params).then(response => {
114
         resolve()
121
         resolve()
115
       })
122
       })
116
     },
123
     },
117
-    btn_search_task(){
124
+    btn_search_task() {
118
       this.getList()
125
       this.getList()
119
     }
126
     }
120
   }
127
   }

+ 106 - 99
CallCenterWeb.UI/RMYY/src/views/callScreen/components/orderType.vue

2
   <div v-loading="loading">
2
   <div v-loading="loading">
3
     <el-row :gutter="5">
3
     <el-row :gutter="5">
4
       <el-col :span="24">
4
       <el-col :span="24">
5
-        <el-form ref="orderTypeData" :rules="rules" :model="orderTypeData" label-width="150px" style="font-size: 14px"
5
+        <el-form
6
+          ref="orderTypeData"
7
+          :rules="rules"
8
+          :model="orderTypeData"
9
+          label-width="150px"
10
+          style="font-size: 14px"
6
           class="order_form">
11
           class="order_form">
7
           <!-- 工单信息 -->
12
           <!-- 工单信息 -->
8
           <el-row>
13
           <el-row>
9
-            <el-col :span="20">
14
+            <el-col :span="24">
10
               <el-form-item label="业务类别" prop="F_Type1">
15
               <el-form-item label="业务类别" prop="F_Type1">
11
-                <select-order-type :isedit='isedit' :rtype='rtype' :first-order-type="firstOrderTypeParam" @post-first-order-type="getFirstOrderType" />
16
+                <select-order-type :isedit="isedit" :rtype="rtype" :first-order-type="firstOrderTypeParam" @post-first-order-type="getFirstOrderType" />
12
               </el-form-item>
17
               </el-form-item>
13
             </el-col>
18
             </el-col>
14
 
19
 
15
-            <el-col :span="20" v-if="isshowtype==true">
20
+            <el-col v-if="isshowtype==true" :span="22">
16
               <el-form-item label="工单类别" prop="F_Type2">
21
               <el-form-item label="工单类别" prop="F_Type2">
17
-                <select-order-type-two :r2type='r2type' :second-order-type="secondOrderTypeParam"
22
+                <select-order-type-two
23
+                  :r2type="r2type"
24
+                  :second-order-type="secondOrderTypeParam"
18
                   @post-second-order-type="getSecondOrderType" />
25
                   @post-second-order-type="getSecondOrderType" />
19
               </el-form-item>
26
               </el-form-item>
20
             </el-col>
27
             </el-col>
26
 </template>
33
 </template>
27
 
34
 
28
 <script>
35
 <script>
29
-  import {
30
-    mapGetters
31
-  } from 'vuex'
32
-  export default {
33
-    name: 'OrderType',
34
-    props:{
35
-      rtype:{
36
-        type:String,
37
-        default:''
38
-      },
39
-      r2type:{
40
-        type:String,
41
-        default:''
42
-      },
43
-      isedit:{
44
-        type:String,
45
-        default:''
46
-      }
47
-    },
48
-    data() {
49
-      return {
50
-        firstOrderTypeParam: {
51
-          typeid: 1,
52
-          pid: 0
53
-        },
54
-        secondOrderTypeParam: {
55
-          typeid: 2,
56
-          pid: 0
57
-        },
58
-        thirdOrderTypeParam: {
59
-          typeid: 3,
60
-          pid: 0
61
-        },
62
-        orderTypeData: {
63
-          F_Type1: 1000, // 工单类别
64
-          F_TypeName1: '业务咨询', // 工单类别
65
-          F_Type2: 0, // 工单子类
66
-          F_TypeName2: '', // 工单子类
67
-          F_Type3: 0, // 工单三类
68
-          F_TypeName3: '' ,// 工单三类
69
-          identification:'',
70
-          type2Arr:[]
71
-        },
72
-        isshowtype:true,
73
-        rules: {
74
-          F_Type1: [{
75
-            required: true,
76
-            message: '请选择业务类别',
77
-            trigger: 'change'
78
-          }],
79
-          F_Type2: [{
80
-            required: true,
81
-            message: '请选择工单类别',
82
-            trigger: 'change'
83
-          }],
84
-        },
85
-        loading: false
86
-      }
87
-    },
88
-    computed: {
89
-      ...mapGetters(['screenState'])
36
+import {
37
+  mapGetters
38
+} from 'vuex'
39
+export default {
40
+  name: 'OrderType',
41
+  props: {
42
+    rtype: {
43
+      type: String,
44
+      default: ''
90
     },
45
     },
91
-    created() {
46
+    r2type: {
47
+      type: String,
48
+      default: ''
92
     },
49
     },
93
-    methods: {
94
-      // 一级改变时触发
95
-      getFirstOrderType(data) {
96
-        this.orderTypeData.F_Type1 = data.value
97
-        this.orderTypeData.F_TypeName1 = data.name
98
-        if(data.value == '3000'){
99
-          this.isshowtype = false
100
-        }else{
101
-          this.isshowtype = true
102
-        }
103
-        this.$bus.$emit('typeSecondId', data.value) // 知识库页面列表需用到
104
-        this.$emit('order-type-data', this.orderTypeData)
105
-        this.secondOrderTypeParam.typeid = 2
106
-        this.secondOrderTypeParam.pid = data.value
107
-        // console.log(data)
50
+    isedit: {
51
+      type: String,
52
+      default: ''
53
+    }
54
+  },
55
+  data() {
56
+    return {
57
+      firstOrderTypeParam: {
58
+        typeid: 1,
59
+        pid: 0
108
       },
60
       },
109
-      // 二级改变时触发
110
-      getSecondOrderType(data) {
111
-        // console.log(data,'777')
112
-        this.orderTypeData.F_Type2 = data.value
113
-        this.orderTypeData.F_TypeName2 = data.name
114
-        this.orderTypeData.identification = data.identification
115
-        this.orderTypeData.type2Arr = data.type2Arr
116
-        this.$bus.$emit('typeSecondId', data.value) // 知识库页面列表需用到
117
-        this.$emit('order-type-data', this.orderTypeData)
118
-        this.thirdOrderTypeParam.typeid = 3
119
-        this.thirdOrderTypeParam.pid = data.value
61
+      secondOrderTypeParam: {
62
+        typeid: 2,
63
+        pid: 0
120
       },
64
       },
121
-
122
-      // 三级改变时触发
123
-      getThirdOrderType(data) {
124
-        this.orderTypeData.F_Type3 = data.value
125
-        this.orderTypeData.F_TypeName3 = data.name
126
-        this.$emit('order-type-data', this.orderTypeData)
65
+      thirdOrderTypeParam: {
66
+        typeid: 3,
67
+        pid: 0
68
+      },
69
+      orderTypeData: {
70
+        F_Type1: 1000, // 工单类别
71
+        F_TypeName1: '业务咨询', // 工单类别
72
+        F_Type2: 0, // 工单子类
73
+        F_TypeName2: '', // 工单子类
74
+        F_Type3: 0, // 工单三类
75
+        F_TypeName3: '', // 工单三类
76
+        identification: '',
77
+        type2Arr: []
78
+      },
79
+      isshowtype: true,
80
+      rules: {
81
+        F_Type1: [{
82
+          required: true,
83
+          message: '请选择业务类别',
84
+          trigger: 'change'
85
+        }],
86
+        F_Type2: [{
87
+          required: true,
88
+          message: '请选择工单类别',
89
+          trigger: 'change'
90
+        }]
91
+      },
92
+      loading: false
93
+    }
94
+  },
95
+  computed: {
96
+    ...mapGetters(['screenState'])
97
+  },
98
+  created() {
99
+  },
100
+  methods: {
101
+    // 一级改变时触发
102
+    getFirstOrderType(data) {
103
+      this.orderTypeData.F_Type1 = data.value
104
+      this.orderTypeData.F_TypeName1 = data.name
105
+      if (data.value == '3000') {
106
+        this.isshowtype = false
107
+      } else {
108
+        this.isshowtype = true
127
       }
109
       }
110
+      this.$bus.$emit('typeSecondId', data.value) // 知识库页面列表需用到
111
+      this.$emit('order-type-data', this.orderTypeData)
112
+      this.secondOrderTypeParam.typeid = 2
113
+      this.secondOrderTypeParam.pid = data.value
114
+      // console.log(data)
115
+    },
116
+    // 二级改变时触发
117
+    getSecondOrderType(data) {
118
+      // console.log(data,'777')
119
+      this.orderTypeData.F_Type2 = data.value
120
+      this.orderTypeData.F_TypeName2 = data.name
121
+      this.orderTypeData.identification = data.identification
122
+      this.orderTypeData.type2Arr = data.type2Arr
123
+      this.$bus.$emit('typeSecondId', data.value) // 知识库页面列表需用到
124
+      this.$emit('order-type-data', this.orderTypeData)
125
+      this.thirdOrderTypeParam.typeid = 3
126
+      this.thirdOrderTypeParam.pid = data.value
127
+    },
128
 
128
 
129
+    // 三级改变时触发
130
+    getThirdOrderType(data) {
131
+      this.orderTypeData.F_Type3 = data.value
132
+      this.orderTypeData.F_TypeName3 = data.name
133
+      this.$emit('order-type-data', this.orderTypeData)
129
     }
134
     }
135
+
130
   }
136
   }
137
+}
131
 </script>
138
 </script>

+ 119 - 110
CallCenterWeb.UI/RMYY/src/views/layout/components/Navbar/index.vue

29
     </el-popover>
29
     </el-popover>
30
 
30
 
31
     <div v-if="seatflag" class="navar_item close">
31
     <div v-if="seatflag" class="navar_item close">
32
+      <i
33
+        class="el-icon-chat-dot-square"
34
+        style="color: white; font-size: 20px; vertical-align: middle;margin-right:10px"
35
+        @click="drawer = true"
36
+      />
32
       <span class="" @click="logout">退出</span>
37
       <span class="" @click="logout">退出</span>
33
     </div>
38
     </div>
34
     <el-dropdown class="avatar-container" trigger="click">
39
     <el-dropdown class="avatar-container" trigger="click">
35
       <div class="avatar-wrapper">
40
       <div class="avatar-wrapper">
36
-        <img :src="!avatar ? usertx : avatar" class="user-avatar" />
41
+        <img :src="!avatar ? usertx : avatar" class="user-avatar" >
37
       </div>
42
       </div>
38
       <el-dropdown-menu slot="dropdown" class="user-dropdown">
43
       <el-dropdown-menu slot="dropdown" class="user-dropdown">
39
         <router-link class="inlineBlock" to="/">
44
         <router-link class="inlineBlock" to="/">
48
       </el-dropdown-menu>
53
       </el-dropdown-menu>
49
     </el-dropdown>
54
     </el-dropdown>
50
     <!-- 发送消息 -->
55
     <!-- 发送消息 -->
51
-    <div
56
+    <!-- <div
52
       style="
57
       style="
53
         display: inline-block;
58
         display: inline-block;
54
         float: right;
59
         float: right;
58
       "
63
       "
59
     >
64
     >
60
       <i
65
       <i
61
-        @click="drawer = true"
62
         class="el-icon-chat-dot-square"
66
         class="el-icon-chat-dot-square"
63
         style="color: white; font-size: 25px; vertical-align: middle"
67
         style="color: white; font-size: 25px; vertical-align: middle"
64
-      ></i>
65
-    </div>
68
+        @click="drawer = true"
69
+      />
70
+    </div> -->
66
     <el-drawer
71
     <el-drawer
67
-      style="margin-top: 100px"
68
-      size="20%"
69
       :modal="false"
72
       :modal="false"
70
-      title="消息通讯"
71
       :visible.sync="drawer"
73
       :visible.sync="drawer"
72
       :show-close="false"
74
       :show-close="false"
73
       :direction="direction"
75
       :direction="direction"
76
+      style="margin-top: 100px"
77
+      size="20%"
78
+      title="消息通讯"
74
     >
79
     >
75
       <el-tabs
80
       <el-tabs
76
-        style="padding: 0 20px"
77
         v-model="activeName"
81
         v-model="activeName"
82
+        style="padding: 0 20px"
78
         type="card"
83
         type="card"
79
         @tab-click="handleClick"
84
         @tab-click="handleClick"
80
       >
85
       >
91
           >
96
           >
92
             <div style="width: 80px; text-align: center">
97
             <div style="width: 80px; text-align: center">
93
               <img
98
               <img
94
-                class="pimg"
95
                 :src="$store.getters.serverConfig.BASE_API + item.F_See"
99
                 :src="$store.getters.serverConfig.BASE_API + item.F_See"
96
-              />
100
+                class="pimg"
101
+              >
97
               <p class="puser">{{ item.F_UserName }}</p>
102
               <p class="puser">{{ item.F_UserName }}</p>
98
             </div>
103
             </div>
99
             <div class="pcon">{{ item.Content }}</div>
104
             <div class="pcon">{{ item.Content }}</div>
100
             <div class="pdate">
105
             <div class="pdate">
101
               {{ item.CreateDate }}
106
               {{ item.CreateDate }}
102
-              <span class="phf" @click="tosend(item.F_RoleId, item.FromUserId)"
103
-                >回复</span
107
+              <span
108
+                class="phf"
109
+                @click="tosend(item.F_RoleId, item.FromUserId)"
110
+              >回复</span
104
               >
111
               >
105
             </div>
112
             </div>
106
           </div>
113
           </div>
114
           >
121
           >
115
             <div style="width: 80px; text-align: center">
122
             <div style="width: 80px; text-align: center">
116
               <img
123
               <img
117
-                class="pimg"
118
                 :src="$store.getters.serverConfig.BASE_API + item.F_See"
124
                 :src="$store.getters.serverConfig.BASE_API + item.F_See"
119
-              />
125
+                class="pimg"
126
+              >
120
               <p class="puser">{{ item.F_UserName }}</p>
127
               <p class="puser">{{ item.F_UserName }}</p>
121
             </div>
128
             </div>
122
             <div class="pcon">{{ item.Content }}</div>
129
             <div class="pcon">{{ item.Content }}</div>
123
             <div class="pdate">
130
             <div class="pdate">
124
               {{ item.CreateDate }}
131
               {{ item.CreateDate }}
125
-              <span class="phf" @click="tosend(item.F_RoleId, item.FromUserId)"
126
-                >回复</span
132
+              <span
133
+                class="phf"
134
+                @click="tosend(item.F_RoleId, item.FromUserId)"
135
+              >回复</span
127
               >
136
               >
128
             </div>
137
             </div>
129
           </div>
138
           </div>
136
 </template>
145
 </template>
137
 
146
 
138
 <script>
147
 <script>
139
-import { mapGetters } from "vuex";
140
-import store from "@/store";
141
-import { getLogout } from "@/api/layout/permsgEdit";
142
-import { createWebSocket } from "@/utils/telWebsocket";
148
+import { mapGetters } from 'vuex'
149
+import store from '@/store'
150
+import { getLogout } from '@/api/layout/permsgEdit'
151
+import { createWebSocket } from '@/utils/telWebsocket'
143
 import {
152
 import {
144
   getGetChatLists,
153
   getGetChatLists,
145
-  getGetChatCount,
146
-} from "@/api/AnnounceManagement/chart";
147
-import Teloperation from "./teloperation";
148
-import NavUserInfo from "./NavUserInfo";
149
-import navTelStateMsg from "./navTelStateMsg";
150
-import permsgEdit from "./permsgEdit.vue";
151
-import sendMsg from "./sendmsg.vue";
154
+  getGetChatCount
155
+} from '@/api/AnnounceManagement/chart'
156
+import Teloperation from './teloperation'
157
+import NavUserInfo from './NavUserInfo'
158
+import navTelStateMsg from './navTelStateMsg'
159
+import permsgEdit from './permsgEdit.vue'
160
+import sendMsg from './sendmsg.vue'
152
 export default {
161
 export default {
153
-  name: "Navbar",
162
+  name: 'Navbar',
154
   components: {
163
   components: {
155
     Teloperation,
164
     Teloperation,
156
     NavUserInfo,
165
     NavUserInfo,
157
-    navTelStateMsg,
166
+    navTelStateMsg
158
   },
167
   },
159
   data() {
168
   data() {
160
     return {
169
     return {
161
-      usertx: "",
162
-      activeName: "0",
163
-      noread: "",
170
+      usertx: '',
171
+      activeName: '0',
172
+      noread: '',
164
       noreadlist: [],
173
       noreadlist: [],
165
       readlist: [],
174
       readlist: [],
166
       drawer: false,
175
       drawer: false,
167
       orderFlag: true,
176
       orderFlag: true,
168
-      direction: "rtl",
177
+      direction: 'rtl',
169
       showTopNotice: false, // 是否显示项目到期的消息
178
       showTopNotice: false, // 是否显示项目到期的消息
170
-      telTopRightText: "",
179
+      telTopRightText: '',
171
       offsetRight: 0,
180
       offsetRight: 0,
172
       offsetBottom: 0,
181
       offsetBottom: 0,
173
       topNoticeNum: 0, // 顶部消息数量
182
       topNoticeNum: 0, // 顶部消息数量
174
-      roleName: "", // 用户角色名称
175
-    };
183
+      roleName: '' // 用户角色名称
184
+    }
176
   },
185
   },
177
   computed: {
186
   computed: {
178
     ...mapGetters([
187
     ...mapGetters([
179
-      "telSeatState", // 坐席状态
180
-      "teamName", // 中心
181
-      "groupName", // 小组
182
-      "sidebar",
183
-      "avatar",
184
-      "seatflag",
185
-      "telIsLogin", // 是否签入
186
-      "telIsConnected", // 连接是否建立
187
-    ]),
188
+      'telSeatState', // 坐席状态
189
+      'teamName', // 中心
190
+      'groupName', // 小组
191
+      'sidebar',
192
+      'avatar',
193
+      'seatflag',
194
+      'telIsLogin', // 是否签入
195
+      'telIsConnected' // 连接是否建立
196
+    ])
188
   },
197
   },
189
   watch: {
198
   watch: {
190
-    telTopRightState: function (newT) {
191
-      if (this.telSeatState === 2 && (newT === "空闲" || newT === "忙碌")) {
192
-        this.telTopRightText = "空闲";
193
-        store.dispatch("ChangeTopRightState", ["空闲", true]);
199
+    telTopRightState: function(newT) {
200
+      if (this.telSeatState === 2 && (newT === '空闲' || newT === '忙碌')) {
201
+        this.telTopRightText = '空闲'
202
+        store.dispatch('ChangeTopRightState', ['空闲', true])
194
       } else if (
203
       } else if (
195
         this.telSeatState === 5 &&
204
         this.telSeatState === 5 &&
196
-        (newT === "空闲" || newT === "忙碌")
205
+        (newT === '空闲' || newT === '忙碌')
197
       ) {
206
       ) {
198
-        this.telTopRightText = "忙碌";
199
-        store.dispatch("ChangeTopRightState", ["忙碌", false]);
207
+        this.telTopRightText = '忙碌'
208
+        store.dispatch('ChangeTopRightState', ['忙碌', false])
200
       } else {
209
       } else {
201
-        this.telTopRightText = newT;
210
+        this.telTopRightText = newT
202
       }
211
       }
203
-    },
212
+    }
204
   },
213
   },
205
   created() {
214
   created() {
206
     this.usertx =
215
     this.usertx =
207
       this.$store.getters.serverConfig.BASE_API +
216
       this.$store.getters.serverConfig.BASE_API +
208
-      localStorage.getItem("storageUsertx");
209
-    this.roleName = window.localStorage.getItem("roleName");
217
+      localStorage.getItem('storageUsertx')
218
+    this.roleName = window.localStorage.getItem('roleName')
210
     if (!this.telIsConnected && this.seatflag) {
219
     if (!this.telIsConnected && this.seatflag) {
211
-      createWebSocket();
220
+      createWebSocket()
212
     }
221
     }
213
-    this.getList();
222
+    this.getList()
214
   },
223
   },
215
   methods: {
224
   methods: {
216
     getList() {
225
     getList() {
217
       return new Promise((resolve) => {
226
       return new Promise((resolve) => {
218
         const params = {
227
         const params = {
219
           top: 50,
228
           top: 50,
220
-          fromid: parseInt(localStorage.getItem("storageUserid")),
221
-          isread: this.activeName,
222
-        };
229
+          fromid: parseInt(localStorage.getItem('storageUserid')),
230
+          isread: this.activeName
231
+        }
223
         getGetChatLists(params).then((response) => {
232
         getGetChatLists(params).then((response) => {
224
-          this.noread = response.total;
225
-          if (this.activeName == "0") {
226
-            this.noreadlist = response.rows;
233
+          this.noread = response.total
234
+          if (this.activeName == '0') {
235
+            this.noreadlist = response.rows
227
           }
236
           }
228
-          if (this.activeName == "1") {
229
-            this.readlist = response.rows;
237
+          if (this.activeName == '1') {
238
+            this.readlist = response.rows
230
           }
239
           }
231
-        });
232
-        resolve();
233
-      });
240
+        })
241
+        resolve()
242
+      })
234
     },
243
     },
235
     handleClick(tab, event) {
244
     handleClick(tab, event) {
236
-      this.getList();
245
+      this.getList()
237
     },
246
     },
238
     logout() {
247
     logout() {
239
-      this.$confirm("您确定退出吗?", "提示", {
240
-        confirmButtonText: "确定",
241
-        cancelButtonText: "取消",
242
-        type: "warning",
248
+      this.$confirm('您确定退出吗?', '提示', {
249
+        confirmButtonText: '确定',
250
+        cancelButtonText: '取消',
251
+        type: 'warning'
243
       })
252
       })
244
         .then(() => {
253
         .then(() => {
245
-          this.isDisable = false;
246
-          this.loginout();
247
-          this.signOut(); // 签出
254
+          this.isDisable = false
255
+          this.loginout()
256
+          this.signOut() // 签出
248
         })
257
         })
249
         .catch(() => {
258
         .catch(() => {
250
           this.$message({
259
           this.$message({
251
-            type: "info",
252
-            message: "已取消",
253
-          });
254
-        });
260
+            type: 'info',
261
+            message: '已取消'
262
+          })
263
+        })
255
     },
264
     },
256
     loginout() {
265
     loginout() {
257
       const params = {
266
       const params = {
258
-        token: localStorage.getItem("Admin-Token").split(" ")[1],
259
-      };
267
+        token: localStorage.getItem('Admin-Token').split(' ')[1]
268
+      }
260
       return new Promise((resolve, reject) => {
269
       return new Promise((resolve, reject) => {
261
         getLogout(params)
270
         getLogout(params)
262
           .then((response) => {
271
           .then((response) => {
263
-            this.$store.dispatch("FedLogOut").then(() => {
264
-              location.reload(); // 为了重新实例化vue-router对象 避免bug
265
-            });
272
+            this.$store.dispatch('FedLogOut').then(() => {
273
+              location.reload() // 为了重新实例化vue-router对象 避免bug
274
+            })
266
           })
275
           })
267
           .catch((error) => {
276
           .catch((error) => {
268
-            reject(error);
269
-          });
270
-      });
277
+            reject(error)
278
+          })
279
+      })
271
     },
280
     },
272
 
281
 
273
     tosend(roleid, uesrid) {
282
     tosend(roleid, uesrid) {
277
           parent: this, // 当前的vue对象
286
           parent: this, // 当前的vue对象
278
           data: {
287
           data: {
279
             roleid: roleid,
288
             roleid: roleid,
280
-            userid: uesrid,
281
-          }, // props
289
+            userid: uesrid
290
+          } // props
282
         },
291
         },
283
-        area: ["50%", "70%"],
284
-        title: "发送消息",
285
-      });
292
+        area: ['50%', '70%'],
293
+        title: '发送消息'
294
+      })
286
     },
295
     },
287
     sendMsg() {
296
     sendMsg() {
288
       this.$layer.iframe({
297
       this.$layer.iframe({
289
         content: {
298
         content: {
290
           content: sendMsg, // 传递的组件对象
299
           content: sendMsg, // 传递的组件对象
291
           parent: this, // 当前的vue对象
300
           parent: this, // 当前的vue对象
292
-          data: {}, // props
301
+          data: {} // props
293
         },
302
         },
294
-        area: ["50%", "70%"],
295
-        title: "发送消息",
296
-      });
303
+        area: ['50%', '70%'],
304
+        title: '发送消息'
305
+      })
297
     },
306
     },
298
     onedit() {
307
     onedit() {
299
       this.$layer.iframe({
308
       this.$layer.iframe({
300
         content: {
309
         content: {
301
           content: permsgEdit, // 传递的组件对象
310
           content: permsgEdit, // 传递的组件对象
302
           parent: this, // 当前的vue对象
311
           parent: this, // 当前的vue对象
303
-          data: {}, // props
312
+          data: {} // props
304
         },
313
         },
305
-        area: ["50%", "70%"],
306
-        title: "个人中心",
307
-      });
314
+        area: ['50%', '70%'],
315
+        title: '个人中心'
316
+      })
308
     },
317
     },
309
     // 签出
318
     // 签出
310
     signOut() {
319
     signOut() {
311
-      store.dispatch("UpdateCalloutScreen", false);
320
+      store.dispatch('UpdateCalloutScreen', false)
312
     },
321
     },
313
     // 从子组件获取的 消息数量值
322
     // 从子组件获取的 消息数量值
314
     getTopNoticeNum(value) {
323
     getTopNoticeNum(value) {
315
-      this.topNoticeNum = value.num;
316
-    },
317
-  },
318
-};
324
+      this.topNoticeNum = value.num
325
+    }
326
+  }
327
+}
319
 </script>
328
 </script>
320
 
329
 
321
 <style rel="stylesheet/scss" lang="scss" scoped>
330
 <style rel="stylesheet/scss" lang="scss" scoped>
453
   }
462
   }
454
 
463
 
455
   .close {
464
   .close {
456
-    width: 60px;
457
-    right: 60px;
465
+    width: 120px;
466
+    right: 40px;
458
     cursor: pointer;
467
     cursor: pointer;
459
 
468
 
460
     span {
469
     span {