Parcourir la Source

add:故障报修

zhaomin il y a 3 ans
Parent
commit
314cfae454

+ 2 - 2
CallCenterWeb.UI/RMYY/config/sit.env.js

@@ -3,8 +3,8 @@
3 3
 module.exports = {
4 4
   NODE_ENV: '"production"',
5 5
   ENV_CONFIG: '"sit"',
6
-  // BASE_API: '"http://192.168.8.20:1028/"', // API地址
7
-  BASE_API: '"http://192.168.1.37:8000/"', // API地址
6
+  BASE_API: '"http://192.168.8.10:8033/"', // API地址
7
+  //BASE_API: '"http://192.168.1.37:8000/"', // API地址
8 8
   // BASE_API: '"http://117.160.241.16:8000/"', // API地址
9 9
   SOCKET_IP: '"192.168.8.7"', // WebSocket通讯ip
10 10
   SOCKET_PORT: '"8081"', // WebSocket通讯端口

+ 50 - 52
CallCenterWeb.UI/RMYY/src/components/context/commonSelect/selectDeptTree.vue

@@ -1,64 +1,62 @@
1 1
 <template>
2
-  <el-cascader :span="24" style="width: 100%;" v-model="deptids" placeholder="请选择部门" :options="orderData" :props="defaultProps" ref="cascader" filterable clearable @change="handleChange">
3
-  </el-cascader>
2
+  <el-cascader ref="cascader" :span="24" v-model="deptids" :options="orderData" :props="defaultProps" style="width: 100%;" placeholder="请选择部门" filterable clearable @change="handleChange"/>
4 3
 </template>
5 4
 
6 5
 <script>
7
-  import {
8
-    getDeptTree
9
-  } from '@/api/systemSetup/roleSetting/userManage'
10
-  export default {
11
-    name: 'selectDeptTree',
12
-    props: {
13
-      deptparam:{
14
-        type:Array,
15
-        default:[]
16
-      },
17
-      deptparamName:{
18
-        type:String,
19
-        default:''
20
-      }
21
-    },
22
-    data() {
23
-      return {
24
-        defaultProps: {
25
-          checkStrictly: true,
26
-          children: 'children',
27
-          label: 'text',
28
-          value: 'id'
29
-        },
30
-        deptids:this.deptparam,
31
-        parentid:'-1',
32
-        orderData: []
33
-      }
34
-    },
35
-    watch: {
36
-
6
+import {
7
+  getDeptTree
8
+} from '@/api/systemSetup/roleSetting/userManage'
9
+export default {
10
+  name: 'SelectDeptTree',
11
+  props: {
12
+    deptparam: {
13
+      type: Array,
14
+      default: []
37 15
     },
38
-    created() {
39
-      // 默认数据加载
40
-      this.getTreeList()
16
+    deptparamName: {
17
+      type: String,
18
+      default: ''
19
+    }
20
+  },
21
+  data() {
22
+    return {
23
+      defaultProps: {
24
+        checkStrictly: true,
25
+        children: 'children',
26
+        label: 'text',
27
+        value: 'id'
28
+      },
29
+      deptids: this.deptparam,
30
+      parentid: '-1',
31
+      orderData: []
32
+    }
33
+  },
34
+  watch: {
41 35
 
42
-    },
43
-    methods: {
44
-      getTreeList() {
45
-        return new Promise((resolve) => {
46
-          getDeptTree(this.parentid).then((response) => {
47
-            if (response.state.toLowerCase() === 'success') {
48
-              this.orderData = response.data
49
-            }
50
-          })
51
-          resolve()
36
+  },
37
+  created() {
38
+    // 默认数据加载
39
+    this.getTreeList()
40
+  },
41
+  methods: {
42
+    getTreeList() {
43
+      return new Promise((resolve) => {
44
+        getDeptTree(this.parentid).then((response) => {
45
+          if (response.state.toLowerCase() === 'success') {
46
+            this.orderData = response.data
47
+          }
52 48
         })
53
-      },
54
-      handleChange(data) {
55
-        console.log(data)
56
-        // console.log(Number(data[data.length - 1]))
57
-        this.$emit('post-deptid',data)
58
-        // this.$emit('post-deptid',Number(data[data.length - 1]))
59
-      },
49
+        resolve()
50
+      })
51
+    },
52
+    handleChange(data) {
53
+      console.log(data)
54
+      // console.log(Number(data[data.length - 1]))
55
+      this.$emit('post-deptid', data)
56
+      // this.$emit('post-deptid',Number(data[data.length - 1]))
60 57
     }
61 58
   }
59
+}
62 60
 </script>
63 61
 
64 62
 <style>

+ 177 - 173
CallCenterWeb.UI/RMYY/src/components/context/commonSelect/selectOrderTypeTwo.vue

@@ -3,201 +3,205 @@
3 3
     <el-option v-for="item in orderData" :key="item.fid" :label="item.fname" :disabled="item.fid | orderFilter"
4 4
       :value="item.fid" />
5 5
   </el-select> -->
6
-  <el-cascader v-model="orderTypeData.name" :options="orderData" :props="TagProps" ref="cascader" clearable @change="handleChange"></el-cascader>
6
+  <el-cascader ref="cascader" v-model="orderTypeData.name" :options="orderData" :props="TagProps" clearable style="width:100%;" @change="handleChange" />
7 7
 </template>
8 8
 
9 9
 <script>
10
-  import {
11
-    getOrderTypeList
12
-  } from '@/api/commonAPI'
13
-  import { getOrderTypeLists} from '@/api/systemSetup/roleSetting/orderTypeManage'
14
-  import {
15
-    eventBus
16
-  } from './eventBus.js'
17
-  export default {
18
-    name: 'SelectOrderType',
19
-    filters: {
20
-      orderFilter(status) {
21
-        const statusMap = {
22
-          // 2003: true,
23
-          // 2008: true,
24
-          // 2009: true
25
-        }
26
-        return statusMap[status]
10
+import {
11
+  getOrderTypeList
12
+} from '@/api/commonAPI'
13
+import { getOrderTypeLists } from '@/api/systemSetup/roleSetting/orderTypeManage'
14
+import {
15
+  eventBus
16
+} from './eventBus.js'
17
+export default {
18
+  name: 'SelectOrderType',
19
+  filters: {
20
+    orderFilter(status) {
21
+      const statusMap = {
22
+        // 2003: true,
23
+        // 2008: true,
24
+        // 2009: true
27 25
       }
28
-    },
29
-    props: {
30
-      firstOrderType: {
31
-        type: Object,
32
-        default () {
33
-          return {}
34
-        }
35
-      },
36
-      secondOrderType: {
37
-        type: Object,
38
-        default () {
39
-          return {}
40
-        }
41
-      },
42
-      thirdOrderType: {
43
-        type: Object,
44
-        default () {
45
-          return {}
46
-        }
26
+      return statusMap[status]
27
+    }
28
+  },
29
+  props: {
30
+    firstOrderType: {
31
+      type: Object,
32
+      default() {
33
+        return {}
47 34
       }
48 35
     },
49
-    data() {
50
-      return {
51
-        TagProps:{
52
-          checkStrictly: true,
53
-          value: 'id',
54
-          label: 'text',
55
-          children: 'children',
56
-        },
57
-        orderTypeData: {
58
-          name: '',
59
-          value: 0
60
-        },
61
-        typeid: 1,
62
-        pid: 0,
63
-        orderData: [] // 业务类别数据
36
+    secondOrderType: {
37
+      type: Object,
38
+      default() {
39
+        return {}
64 40
       }
65 41
     },
66
-    watch: {
67
-      'firstOrderType.pid': function() {
68
-        this.orderTypeData.name = ''
69
-        this.orderTypeData.value = 0
70
-        this.$emit('post-first-order-type', this.orderTypeData)
71
-        this.typeid = this.firstOrderType.typeid
72
-        this.commonOrderType(this.firstOrderType.typeid, this.firstOrderType.pid)
42
+    thirdOrderType: {
43
+      type: Object,
44
+      default() {
45
+        return {}
46
+      }
47
+    }
48
+  },
49
+  data() {
50
+    return {
51
+      TagProps: {
52
+        checkStrictly: true,
53
+        value: 'id',
54
+        label: 'text',
55
+        children: 'children'
73 56
       },
74
-      'secondOrderType.pid': function() {
75
-        this.orderTypeData.name = ''
76
-        this.orderTypeData.value = 0
77
-        this.$emit('post-second-order-type', this.orderTypeData)
78
-        this.typeid = this.secondOrderType.typeid
79
-        this.commonOrderType(this.secondOrderType.typeid, this.secondOrderType.pid)
57
+      orderTypeData: {
58
+        name: '',
59
+        value: 0
80 60
       },
81
-      'thirdOrderType.pid': function() {
82
-        this.orderTypeData.name = ''
83
-        this.orderTypeData.value = 0
84
-        this.$emit('post-third-order-type', this.orderTypeData)
61
+      typeid: 1,
62
+      pid: 0,
63
+      orderData: [] // 业务类别数据
64
+    }
65
+  },
66
+  watch: {
67
+    'firstOrderType.pid': function() {
68
+      console.log(this.firstOrderType)
69
+      this.orderTypeData.name = ''
70
+      this.orderTypeData.value = 0
71
+      this.$emit('post-first-order-type', this.orderTypeData)
72
+      this.typeid = this.firstOrderType.typeid
73
+      this.commonOrderType(this.firstOrderType.typeid, this.firstOrderType.pid)
74
+    },
75
+    'secondOrderType.pid': function() {
76
+      console.log(this.secondOrderType.pid)
77
+      this.orderTypeData.name = ''
78
+      this.orderTypeData.value = 0
79
+      this.$emit('post-second-order-type', this.orderTypeData)
80
+      this.typeid = this.secondOrderType.typeid
81
+      this.commonOrderType(this.secondOrderType.typeid, this.secondOrderType.pid)
82
+    },
83
+    'thirdOrderType.pid': function() {
84
+      this.orderTypeData.name = ''
85
+      this.orderTypeData.value = 0
86
+      this.$emit('post-third-order-type', this.orderTypeData)
87
+      this.typeid = this.thirdOrderType.typeid
88
+      this.commonOrderType(this.thirdOrderType.typeid, this.thirdOrderType.pid)
89
+    }
90
+
91
+  },
92
+  created() {
93
+    // 默认数据加载
94
+    this.defaultData()
95
+    // 编辑详情展示
96
+    this.showDetail()
97
+
98
+    this.getEventBus()
99
+  },
100
+  methods: {
101
+    getEventBus() {
102
+      eventBus.$on('typeId', (data) => {
103
+        // console.log(data);
104
+        this.secondOrderType.pid = data
105
+      })
106
+    },
107
+    defaultData() {
108
+      if (JSON.stringify(this.firstOrderType) !== '{}') {
109
+        console.log(this.firstOrderType)
110
+        console.log(JSON.stringify(this.firstOrderType))
111
+        this.commonOrderType(this.firstOrderType.typeid, this.firstOrderType.pid)
112
+      }
113
+      if (JSON.stringify(this.thirdOrderType) !== '{}' && this.thirdOrderType.pid) {
85 114
         this.typeid = this.thirdOrderType.typeid
86 115
         this.commonOrderType(this.thirdOrderType.typeid, this.thirdOrderType.pid)
87 116
       }
88
-
117
+      if (JSON.stringify(this.secondOrderType) !== '{}' && this.secondOrderType.pid) {
118
+        this.typeid = this.secondOrderType.typeid
119
+        this.commonOrderType(this.secondOrderType.typeid, this.secondOrderType.pid)
120
+      }
89 121
     },
90
-    created() {
91
-      // 默认数据加载
92
-      this.defaultData()
93
-      // 编辑详情展示
94
-      this.showDetail()
95
-
96
-      this.getEventBus()
97
-
122
+    showDetail() {
123
+      if (this.firstOrderType.name) {
124
+        this.orderTypeData.name = this.firstOrderType.name
125
+      }
126
+      if (this.secondOrderType.name) {
127
+        this.orderTypeData.name = this.secondOrderType.name
128
+      }
129
+      if (this.thirdOrderType.name) {
130
+        this.orderTypeData.name = this.thirdOrderType.name
131
+      }
98 132
     },
99
-    methods: {
100
-      getEventBus() {
101
-        eventBus.$on('typeId', (data) => {
102
-          // console.log(data);
103
-          this.secondOrderType.pid = data
104
-        })
105
-      },
106
-      defaultData() {
107
-        if (JSON.stringify(this.firstOrderType) !== '{}') {
108
-          console.log(JSON.stringify(this.firstOrderType))
109
-          this.commonOrderType(this.firstOrderType.typeid, this.firstOrderType.pid)
110
-        }
111
-        if (JSON.stringify(this.thirdOrderType) !== '{}' && this.thirdOrderType.pid) {
112
-          this.typeid = this.thirdOrderType.typeid
113
-          this.commonOrderType(this.thirdOrderType.typeid, this.thirdOrderType.pid)
114
-        }
115
-        if (JSON.stringify(this.secondOrderType) !== '{}' && this.secondOrderType.pid) {
116
-          this.typeid = this.secondOrderType.typeid
117
-          this.commonOrderType(this.secondOrderType.typeid, this.secondOrderType.pid)
118
-        }
119
-      },
120
-      showDetail() {
121
-        if (this.firstOrderType.name) {
122
-          this.orderTypeData.name = this.firstOrderType.name
123
-        }
124
-        if (this.secondOrderType.name) {
125
-          this.orderTypeData.name = this.secondOrderType.name
126
-        }
127
-        if (this.thirdOrderType.name) {
128
-          this.orderTypeData.name = this.thirdOrderType.name
133
+    commonOrderType(id, pid) {
134
+      console.log(pid)
135
+      this.getTreeList(pid)
136
+      // getOrderTypeList(id, pid).then((response) => {
137
+      //   this.orderData = response.rows
138
+      // })
139
+    },
140
+    getTreeList(pid) {
141
+      return new Promise((resolve) => {
142
+        const params = {
143
+          pid: pid,
144
+          flag: 1
145
+
129 146
         }
130
-      },
131
-      commonOrderType(id, pid) {
132
-        this.getTreeList()
133
-        // getOrderTypeList(id, pid).then((response) => {
134
-        //   this.orderData = response.rows
135
-        // })
136
-      },
137
-      getTreeList() {
138
-        return new Promise((resolve) => {
139
-          const params = {
140
-            pid: this.secondOrderType.pid,
141
-            flag: 1
147
+        getOrderTypeLists(params).then((response) => {
148
+          if (response.state.toLowerCase() === 'success') {
149
+            this.orderData = response.data
142 150
           }
143
-          getOrderTypeLists(params).then((response) => {
144
-            if (response.state.toLowerCase() === 'success') {
145
-              this.orderData = response.data
146
-            }
147
-          })
148
-          resolve()
149 151
         })
150
-      },
151
-      filterTreeDatas(treeDatas) {
152
-        const accessedRouters = []
153
-        let j = -1
154
-        for (const i in treeDatas) {
155
-          j++
156
-          accessedRouters.push({
157
-            id: treeDatas[i].id,
158
-            label: treeDatas[i].text,
159
-            typeId: treeDatas[i].TypeId,
160
-            children: []
161
-          })
162
-          if (treeDatas[i].children) {
163
-            accessedRouters[j].children = this.filterTreeDatas(treeDatas[i].children)
164
-          }
165
-        }
166
-        return accessedRouters
167
-      },
168
-      handleChange(data){
169
-        console.log(Number(data[data.length-1]))
170
-        this.orderTypeData.value = Number(data[data.length-1])
171
-        // this.orderTypeData.name = this.$refs["cascader"].getCheckedNodes()[0].label
172
-        switch (this.typeid) {
173
-          case 1:
174
-            this.$emit('post-first-order-type', this.orderTypeData)
175
-            break
176
-          case 2:
177
-            this.$emit('post-second-order-type', this.orderTypeData)
178
-            break
179
-          case 3:
180
-            this.$emit('post-third-order-type', this.orderTypeData)
181
-            break
182
-        }
183
-      },
184
-      changedOrderType(data) {
185
-        this.orderTypeData.value = data
186
-        this.orderTypeData.name = data ? this.orderData.find(ele => ele.fid === data).text : ''
187
-        switch (this.typeid) {
188
-          case 1:
189
-            this.$emit('post-first-order-type', this.orderTypeData)
190
-            break
191
-          case 2:
192
-            this.$emit('post-second-order-type', this.orderTypeData)
193
-            break
194
-          case 3:
195
-            this.$emit('post-third-order-type', this.orderTypeData)
196
-            break
152
+        resolve()
153
+      })
154
+    },
155
+    filterTreeDatas(treeDatas) {
156
+      const accessedRouters = []
157
+      let j = -1
158
+      for (const i in treeDatas) {
159
+        j++
160
+        accessedRouters.push({
161
+          id: treeDatas[i].id,
162
+          label: treeDatas[i].text,
163
+          typeId: treeDatas[i].TypeId,
164
+          children: []
165
+        })
166
+        if (treeDatas[i].children) {
167
+          accessedRouters[j].children = this.filterTreeDatas(treeDatas[i].children)
197 168
         }
198 169
       }
170
+      return accessedRouters
171
+    },
172
+    handleChange(data) {
173
+      console.log(Number(data[data.length - 1]))
174
+      this.orderTypeData.value = Number(data[data.length - 1])
175
+      // this.orderTypeData.name = this.$refs["cascader"].getCheckedNodes()[0].label
176
+      switch (this.typeid) {
177
+        case 1:
178
+          this.$emit('post-first-order-type', this.orderTypeData)
179
+          break
180
+        case 2:
181
+          this.$emit('post-second-order-type', this.orderTypeData)
182
+          break
183
+        case 3:
184
+          this.$emit('post-third-order-type', this.orderTypeData)
185
+          break
186
+      }
187
+    },
188
+    changedOrderType(data) {
189
+      this.orderTypeData.value = data
190
+      this.orderTypeData.name = data ? this.orderData.find(ele => ele.fid === data).text : ''
191
+      switch (this.typeid) {
192
+        case 1:
193
+          this.$emit('post-first-order-type', this.orderTypeData)
194
+          break
195
+        case 2:
196
+          this.$emit('post-second-order-type', this.orderTypeData)
197
+          break
198
+        case 3:
199
+          this.$emit('post-third-order-type', this.orderTypeData)
200
+          break
201
+      }
199 202
     }
200 203
   }
204
+}
201 205
 </script>
202 206
 
203 207
 <style>

+ 3 - 3
CallCenterWeb.UI/RMYY/src/components/context/commonSelect/selectRepairman.vue

@@ -24,9 +24,9 @@ export default {
24 24
     repairmanParam: {
25 25
       type: Object,
26 26
       default() {
27
-        return {
28
-          name: ''
29
-        }
27
+        // return {
28
+        //   name: ''
29
+        // }
30 30
       }
31 31
     }
32 32
   },

+ 278 - 275
CallCenterWeb.UI/RMYY/src/views/systemSetup/roleSetting/userManage/addOrEdit.vue

@@ -50,7 +50,10 @@
50 50
         <el-col :md="12" class="col_item">
51 51
           <el-form-item label="用户角色" prop="RoleId">
52 52
             <el-select v-model="ruleForm.RoleId" class="form_select" filterable clearable placeholder="请选择用户角色">
53
-              <el-option v-for="item in roleOptions" :key="item.F_RoleId" :label="item.F_RoleName"
53
+              <el-option
54
+                v-for="item in roleOptions"
55
+                :key="item.F_RoleId"
56
+                :label="item.F_RoleName"
54 57
                 :value="item.F_RoleId" />
55 58
             </el-select>
56 59
           </el-form-item>
@@ -74,7 +77,7 @@
74 77
         </el-col>
75 78
         <el-col :md="24" class="col_item">
76 79
           <el-form-item label="备注" prop="Remark">
77
-            <el-input type="textarea" v-model="ruleForm.Remark" placeholder="备注" />
80
+            <el-input v-model="ruleForm.Remark" type="textarea" placeholder="备注" />
78 81
           </el-form-item>
79 82
         </el-col>
80 83
         <!-- <el-col :md="12" class="col_item">
@@ -94,324 +97,324 @@
94 97
 </template>
95 98
 
96 99
 <script>
97
-  import md5 from 'js-md5'
98
-  import avatarUpload from 'vue-image-crop-upload'
99
-  import {
100
-    mapGetters
101
-  } from 'vuex'
102
-  import {
103
-    getRoleSelect,
104
-    getSeatGroup
105
-  } from '@/api/commonAPI'
106
-  import {
107
-    getUserAccount,
108
-    addUserAccount,
109
-    editUserAccount
110
-  } from '@/api/systemSetup/roleSetting/userManage'
111
-  import {
112
-    validUsername,
113
-    validName,
114
-    validPassword,
115
-    validateTel,
116
-    validExtension
117
-  } from '@/utils/validate'
118
-  import {
119
-    getTreeList
120
-  } from '@/api/systemSetup/roleSetting/department'
121
-  import selectDeptTree from '../../../../components/context/commonSelect/selectDeptTree.vue'
122
-  export default {
123
-    name: 'AddOrEdit',
124
-    components: {
125
-      'avatar-upload': avatarUpload,
126
-      'select-dept-tree':selectDeptTree
100
+import md5 from 'js-md5'
101
+import avatarUpload from 'vue-image-crop-upload'
102
+import {
103
+  mapGetters
104
+} from 'vuex'
105
+import {
106
+  getRoleSelect,
107
+  getSeatGroup
108
+} from '@/api/commonAPI'
109
+import {
110
+  getUserAccount,
111
+  addUserAccount,
112
+  editUserAccount
113
+} from '@/api/systemSetup/roleSetting/userManage'
114
+import {
115
+  validUsername,
116
+  validName,
117
+  validPassword,
118
+  validateTel,
119
+  validExtension
120
+} from '@/utils/validate'
121
+import {
122
+  getTreeList
123
+} from '@/api/systemSetup/roleSetting/department'
124
+import selectDeptTree from '../../../../components/context/commonSelect/selectDeptTree.vue'
125
+export default {
126
+  name: 'AddOrEdit',
127
+  components: {
128
+    'avatar-upload': avatarUpload,
129
+    'select-dept-tree': selectDeptTree
130
+  },
131
+  props: {
132
+    rowid: {
133
+      type: String,
134
+      default: ''
127 135
     },
128
-    props: {
129
-      rowid: {
130
-        type: String,
131
-        default: ''
132
-      },
133
-      usercodeList: {
134
-        type: String,
135
-        default: ''
136
-      },
137
-      layerid: {
138
-        type: String,
139
-        default: ''
140
-      }
136
+    usercodeList: {
137
+      type: String,
138
+      default: ''
141 139
     },
142
-    data() {
143
-      const validUsernameRule = (rule, value, callback) => {
144
-        if (!validUsername(value)) {
145
-          callback(new Error('请输入有效的账号(4-20个字符只能是字母、下划线、数字)!'))
146
-        } else {
147
-          callback()
148
-        }
140
+    layerid: {
141
+      type: String,
142
+      default: ''
143
+    }
144
+  },
145
+  data() {
146
+    const validUsernameRule = (rule, value, callback) => {
147
+      if (!validUsername(value)) {
148
+        callback(new Error('请输入有效的账号(4-20个字符只能是字母、下划线、数字)!'))
149
+      } else {
150
+        callback()
149 151
       }
152
+    }
150 153
 
151
-      const validNameRule = (rule, value, callback) => {
152
-        if (!validName(value)) {
153
-          callback(new Error('请输入有效的姓名(2-20位汉字和·•的组合)!'))
154
-        } else {
155
-          callback()
156
-        }
154
+    const validNameRule = (rule, value, callback) => {
155
+      if (!validName(value)) {
156
+        callback(new Error('请输入有效的姓名(2-20位汉字和·•的组合)!'))
157
+      } else {
158
+        callback()
157 159
       }
160
+    }
158 161
 
159
-      const validatePass = (rule, value, callback) => {
160
-        if (!validPassword(value)) {
161
-          callback(new Error('请输入有效的密码(6-32个字符只能是字母、下划线、数字)!'))
162
-        } else {
163
-          if (this.checkPass !== '') {
164
-            this.$refs.ruleForm.validateField('checkPass')
165
-          }
166
-          callback()
162
+    const validatePass = (rule, value, callback) => {
163
+      if (!validPassword(value)) {
164
+        callback(new Error('请输入有效的密码(6-32个字符只能是字母、下划线、数字)!'))
165
+      } else {
166
+        if (this.checkPass !== '') {
167
+          this.$refs.ruleForm.validateField('checkPass')
167 168
         }
169
+        callback()
168 170
       }
171
+    }
169 172
 
170
-      const validatePass2 = (rule, value, callback) => {
171
-        if (!validPassword(this.checkPass)) {
172
-          callback(new Error('请输入有效的确认密码(6-32个字符只能是字母、下划线、数字)!'))
173
-        } else {
174
-          if (this.checkPass !== this.ruleForm.Password) {
175
-            callback(new Error('两次输入密码不一致!'))
176
-          }
177
-          callback()
173
+    const validatePass2 = (rule, value, callback) => {
174
+      if (!validPassword(this.checkPass)) {
175
+        callback(new Error('请输入有效的确认密码(6-32个字符只能是字母、下划线、数字)!'))
176
+      } else {
177
+        if (this.checkPass !== this.ruleForm.Password) {
178
+          callback(new Error('两次输入密码不一致!'))
178 179
         }
180
+        callback()
179 181
       }
182
+    }
180 183
 
181
-      const validateTelRule = (rule, value, callback) => {
182
-        if (!validateTel(value)) {
183
-          callback(new Error('请输入有效的手机号码!'))
184
-        } else {
185
-          callback()
186
-        }
184
+    const validateTelRule = (rule, value, callback) => {
185
+      if (!validateTel(value)) {
186
+        callback(new Error('请输入有效的手机号码!'))
187
+      } else {
188
+        callback()
187 189
       }
190
+    }
188 191
 
189
-      const validGroupRule = (rule, value, callback) => {
190
-        if (this.seatFlag) {
191
-          if (!value) {
192
-            callback(new Error('请选择坐席组!'))
193
-          } else {
194
-            callback()
195
-          }
192
+    const validGroupRule = (rule, value, callback) => {
193
+      if (this.seatFlag) {
194
+        if (!value) {
195
+          callback(new Error('请选择坐席组!'))
196 196
         } else {
197 197
           callback()
198 198
         }
199
+      } else {
200
+        callback()
199 201
       }
202
+    }
200 203
 
201
-      const validateExt = (rule, value, callback) => {
202
-        if (value !== '') {
203
-          if (!validExtension(value)) {
204
-            callback(new Error('分机号格式(4-20个字符只能是数字)!'))
205
-          } else {
206
-            callback()
207
-          }
204
+    const validateExt = (rule, value, callback) => {
205
+      if (value !== '') {
206
+        if (!validExtension(value)) {
207
+          callback(new Error('分机号格式(4-20个字符只能是数字)!'))
208 208
         } else {
209 209
           callback()
210 210
         }
211
+      } else {
212
+        callback()
211 213
       }
214
+    }
212 215
 
213
-      return {
214
-        roleOptions: [], // 角色下拉数据
215
-        departmentDropDatas: [], // 部门下拉
216
-        parentids: [], // 部门下拉数据
217
-        seatFlag: false, // 话务标识
218
-        checkPass: '', // 确认密码
219
-        seatOptions: [],
220
-        deptid:['1','2002'],
221
-        ruleForm: {
222
-          // Usercode: '',
223
-          Username: '',
224
-          Password: '',
225
-          DeptId: '', // 所属部门id
226
-          RoleId: '', // 角色id
227
-          SeatGroup: '',//坐席组id
228
-          Remark: '',
229
-          Phon: '', // 电话
230
-          sex: '男', // 性别
231
-          companyphone:'',
232
-          address:'',
233
-          job:'',
234
-          // userid: '',
235
-          // 话务相关
236
-          // IsSeat: 0 // 标志
237
-        },
238
-        rules: {
239
-          Usercode: [{
240
-            required: true,
241
-            trigger: 'blur',
242
-            validator: validUsernameRule
243
-          }],
244
-          Username: [{
245
-            required: true,
246
-            trigger: 'blur',
247
-            validator: validNameRule
248
-          }],
249
-          SeatGroup: [{
250
-            required: true,
251
-            trigger: 'change',
252
-            validator: validGroupRule
253
-          }],
254
-          Password: [{
255
-            required: true,
256
-            trigger: 'blur',
257
-            validator: validatePass
258
-          }],
259
-          checkPass: [{
260
-            required: true,
261
-            trigger: 'blur',
262
-            validator: validatePass2
263
-          }],
264
-          type: [{
265
-            required: true,
266
-            message: '请选择用户类型',
267
-            trigger: 'change'
268
-          }],
269
-          RoleId: [{
270
-            required: true,
271
-            message: '请选择用户角色',
272
-            trigger: 'change'
273
-          }]
274
-        },
275
-        loading: false,
276
-        // 自定义菜单下拉数据的key值
277
-        props: {
278
-          value: 'id',
279
-          label: 'text'
280
-        },
281
-        is_form_cascader: false
216
+    return {
217
+      roleOptions: [], // 角色下拉数据
218
+      departmentDropDatas: [], // 部门下拉
219
+      parentids: [], // 部门下拉数据
220
+      seatFlag: false, // 话务标识
221
+      checkPass: '', // 确认密码
222
+      seatOptions: [],
223
+      deptid: ['1', '2002'],
224
+      ruleForm: {
225
+        // Usercode: '',
226
+        Username: '',
227
+        Password: '',
228
+        DeptId: '', // 所属部门id
229
+        RoleId: '', // 角色id
230
+        SeatGroup: '', // 坐席组id
231
+        Remark: '',
232
+        Phon: '', // 电话
233
+        sex: '男', // 性别
234
+        companyphone: '',
235
+        address: '',
236
+        job: ''
237
+        // userid: '',
238
+        // 话务相关
239
+        // IsSeat: 0 // 标志
240
+      },
241
+      rules: {
242
+        Usercode: [{
243
+          required: true,
244
+          trigger: 'blur',
245
+          validator: validUsernameRule
246
+        }],
247
+        Username: [{
248
+          required: true,
249
+          trigger: 'blur',
250
+          validator: validNameRule
251
+        }],
252
+        SeatGroup: [{
253
+          required: true,
254
+          trigger: 'change',
255
+          validator: validGroupRule
256
+        }],
257
+        Password: [{
258
+          required: true,
259
+          trigger: 'blur',
260
+          validator: validatePass
261
+        }],
262
+        checkPass: [{
263
+          required: true,
264
+          trigger: 'blur',
265
+          validator: validatePass2
266
+        }],
267
+        type: [{
268
+          required: true,
269
+          message: '请选择用户类型',
270
+          trigger: 'change'
271
+        }],
272
+        RoleId: [{
273
+          required: true,
274
+          message: '请选择用户角色',
275
+          trigger: 'change'
276
+        }]
277
+      },
278
+      loading: false,
279
+      // 自定义菜单下拉数据的key值
280
+      props: {
281
+        value: 'id',
282
+        label: 'text'
283
+      },
284
+      is_form_cascader: false
285
+    }
286
+  },
287
+  computed: {
288
+    ...mapGetters(['token', 'avatar', 'usercode'])
289
+  },
290
+  created() {
291
+    // , this.getTypeDrop()
292
+    Promise.all([this.getRoleSelects(), this.getTypeDrop(), this.getSeatGroupSelects()]).then(() => {
293
+      if (this.rowid) {
294
+        this.ruleForm.userid = this.rowid
295
+        this.ruleForm.Usercode = this.usercodeList
296
+        this.is_form_cascader = true
297
+        this.getDetail(this.rowid, this.usercodeList)
282 298
       }
283
-    },
284
-    computed: {
285
-      ...mapGetters(['token', 'avatar', 'usercode'])
286
-    },
287
-    created() {
288
-      // , this.getTypeDrop()
289
-      Promise.all([this.getRoleSelects(), this.getTypeDrop(), this.getSeatGroupSelects()]).then(() => {
290
-        if (this.rowid) {
291
-          this.ruleForm.userid = this.rowid
292
-          this.ruleForm.Usercode = this.usercodeList
293
-          this.is_form_cascader = true
294
-          this.getDetail(this.rowid, this.usercodeList)
295
-        }
296
-      })
297
-    },
298
-    methods: {
299
-      // 添加编辑
300
-      submitForm() {
301
-        this.$refs.ruleForm.validate((valid) => {
302
-          if (valid) {
303
-            this.loading = true
304
-            // this.ruleForm.Password = md5(this.ruleForm.Password)
305
-            // 添加
306
-            if (!this.rowid) {
307
-              this.ruleForm.Password = md5(this.ruleForm.Password)
308
-              addUserAccount(this.ruleForm)
309
-                .then((response) => {
310
-                  this.loading = false
311
-                  if (response.state.toLowerCase() === 'success') {
312
-                    this.$parent.$layer.close(this.layerid)
313
-                    this.$parent.getList() // 重新加载父级数据
314
-                    this.$message.success('恭喜你,用户信息添加成功!')
315
-                  }
316
-                })
317
-                .catch(() => {
318
-                  this.loading = false
319
-                })
320
-              return
321
-            }
322
-            // 编辑
323
-            editUserAccount(this.ruleForm)
299
+    })
300
+  },
301
+  methods: {
302
+    // 添加编辑
303
+    submitForm() {
304
+      this.$refs.ruleForm.validate((valid) => {
305
+        if (valid) {
306
+          this.loading = true
307
+          // this.ruleForm.Password = md5(this.ruleForm.Password)
308
+          // 添加
309
+          if (!this.rowid) {
310
+            this.ruleForm.Password = md5(this.ruleForm.Password)
311
+            addUserAccount(this.ruleForm)
324 312
               .then((response) => {
325 313
                 this.loading = false
326 314
                 if (response.state.toLowerCase() === 'success') {
327 315
                   this.$parent.$layer.close(this.layerid)
328 316
                   this.$parent.getList() // 重新加载父级数据
329
-                  this.$message.success('恭喜你,用户信息编辑成功!')
317
+                  this.$message.success('恭喜你,用户信息添加成功!')
330 318
                 }
331 319
               })
332 320
               .catch(() => {
333 321
                 this.loading = false
334 322
               })
335
-          } else {
336
-            this.$message.error('请输入有效的必填项信息!')
337
-            return false
323
+            return
338 324
           }
339
-        })
340
-      },
341
-      // 详情
342
-      getDetail() {
343
-        const params = {
344
-          userid: this.rowid, // 第几页 Usercode
345
-          usercode: this.usercodeList
325
+          // 编辑
326
+          editUserAccount(this.ruleForm)
327
+            .then((response) => {
328
+              this.loading = false
329
+              if (response.state.toLowerCase() === 'success') {
330
+                this.$parent.$layer.close(this.layerid)
331
+                this.$parent.getList() // 重新加载父级数据
332
+                this.$message.success('恭喜你,用户信息编辑成功!')
333
+              }
334
+            })
335
+            .catch(() => {
336
+              this.loading = false
337
+            })
338
+        } else {
339
+          this.$message.error('请输入有效的必填项信息!')
340
+          return false
341
+        }
342
+      })
343
+    },
344
+    // 详情
345
+    getDetail() {
346
+      const params = {
347
+        userid: this.rowid, // 第几页 Usercode
348
+        usercode: this.usercodeList
346 349
 
350
+      }
351
+      getUserAccount(params).then((response) => {
352
+        if (response.state.toLowerCase() === 'success') {
353
+          const res = response.data
354
+          this.ruleForm.Usercode = res.F_UserCode // 工号
355
+          this.ruleForm.Username = res.F_UserName // 姓名 Phon
356
+          this.ruleForm.RoleId = res.F_RoleId // 角色
357
+          this.ruleForm.DeptId = res.F_DeptId.toString() // 所属部门Number(res.F_DeptId)
358
+          this.ruleForm.Phon = res.F_Telephone // 电话
359
+          this.ruleForm.companyphone = res.F_WorkPhone// 公司电话
360
+          this.ruleForm.job = res.F_Job// 职务
361
+          // this.ruleForm.DeptId = res.F_DeptId//部门id
362
+          this.ruleForm.DeptId = res.F_DeptName// 部门name
363
+          this.ruleForm.address = res.F_HomeAddress
364
+          this.ruleForm.sex = res.F_Sex && res.F_Sex + '' //
365
+          this.ruleForm.Remark = res.F_Remark
366
+          this.ruleForm.IsSeat = res.F_SeatFlag.toString()
367
+          this.ruleForm.SeatGroup = res.F_SeatGroup // 坐席组id
368
+          this.seatFlag = res.F_SeatFlag
347 369
         }
348
-        getUserAccount(params).then((response) => {
349
-          if (response.state.toLowerCase() === 'success') {
350
-            const res = response.data
351
-            this.ruleForm.Usercode = res.F_UserCode // 工号
352
-            this.ruleForm.Username = res.F_UserName // 姓名 Phon
353
-            this.ruleForm.RoleId = res.F_RoleId // 角色
354
-            this.ruleForm.DeptId = res.F_DeptId.toString() // 所属部门Number(res.F_DeptId)
355
-            this.ruleForm.Phon = res.F_Telephone // 电话
356
-            this.ruleForm.companyphone = res.F_WorkPhone//公司电话
357
-            this.ruleForm.job = res.F_Job//职务
358
-            // this.ruleForm.DeptId = res.F_DeptId//部门id
359
-            this.ruleForm.DeptId = res.F_DeptName//部门name
360
-            this.ruleForm.address = res.F_HomeAddress
361
-            this.ruleForm.sex = res.F_Sex && res.F_Sex + '' //
362
-            this.ruleForm.Remark = res.F_Remark
363
-            this.ruleForm.IsSeat = res.F_SeatFlag.toString()
364
-            this.ruleForm.SeatGroup = res.F_SeatGroup // 坐席组id
365
-            this.seatFlag = res.F_SeatFlag
370
+      })
371
+    },
372
+    // 话务标识切换
373
+    changeSeatFlag() {
374
+      this.seatFlag = !this.seatFlag
375
+    },
376
+    // 获取角色下拉数据
377
+    getRoleSelects() {
378
+      return new Promise((resolve) => {
379
+        const params = {
380
+          pageindex: 1, // 第几页
381
+          pagesize: 9999 // 每页几条信息
382
+        }
383
+        getRoleSelect(params).then((response) => {
384
+          if (response.rows.length > 0) {
385
+            this.roleOptions = response.rows
366 386
           }
367 387
         })
368
-      },
369
-      // 话务标识切换
370
-      changeSeatFlag() {
371
-        this.seatFlag = !this.seatFlag
372
-      },
373
-      // 获取角色下拉数据
374
-      getRoleSelects() {
375
-        return new Promise((resolve) => {
376
-          const params = {
377
-            pageindex: 1, // 第几页
378
-            pagesize: 9999 // 每页几条信息
388
+        resolve()
389
+      })
390
+    },
391
+    // 获取坐席组下拉数据
392
+    getSeatGroupSelects() {
393
+      return new Promise((resolve) => {
394
+        getSeatGroup().then((response) => {
395
+          if (response.state.toLowerCase() === 'success') {
396
+            this.seatOptions = response.data
379 397
           }
380
-          getRoleSelect(params).then((response) => {
381
-            if (response.rows.length > 0) {
382
-              this.roleOptions = response.rows
383
-            }
384
-          })
385
-          resolve()
386
-        })
387
-      },
388
-      // 获取坐席组下拉数据
389
-      getSeatGroupSelects() {
390
-        return new Promise((resolve) => {
391
-          getSeatGroup().then((response) => {
392
-            if (response.state.toLowerCase() === 'success') {
393
-              this.seatOptions = response.data
394
-            }
395
-          })
396
-          resolve()
397 398
         })
398
-      },
399
-      // 获取部门下拉数据  getTreeList
400
-      getTypeDrop() {
401
-        return new Promise((resolve) => {
402
-          getTreeList().then((response) => {
403
-            if (response.state.toLowerCase() === 'success') {
404
-              this.departmentDropDatas = response.data
405
-            }
406
-          })
407
-          resolve()
399
+        resolve()
400
+      })
401
+    },
402
+    // 获取部门下拉数据  getTreeList
403
+    getTypeDrop() {
404
+      return new Promise((resolve) => {
405
+        getTreeList().then((response) => {
406
+          if (response.state.toLowerCase() === 'success') {
407
+            this.departmentDropDatas = response.data
408
+          }
408 409
         })
409
-      },
410
-      getDeptid(data){
411
-        console.log(data,'999999')
412
-      }
410
+        resolve()
411
+      })
412
+    },
413
+    getDeptid(data) {
414
+      console.log(data, '999999')
413 415
     }
414 416
   }
417
+}
415 418
 </script>
416 419
 
417 420
 <style rel="stylesheet/scss" lang="scss" scoped>