telephone-clients 3.0.104-10 → 3.0.104-101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/package.json +3 -3
  2. package/src/App.vue +54 -54
  3. package/src/components/android/ImgArea.vue +80 -0
  4. package/src/components/guoxin/Console.vue +42 -14
  5. package/src/components/guoxin/call.state.api.js +3 -1
  6. package/src/components/pc/ComplainWork.vue +3 -0
  7. package/src/components/pc/NewRepairPaper.vue +378 -370
  8. package/src/components/pc/RecordListLeft.vue +80 -10
  9. package/src/components/pc/RepairsWork.vue +33 -3
  10. package/src/components/pc/RoleSelector.vue +7 -1
  11. package/src/components/pc/Seekwork.vue +3 -0
  12. package/src/components/pc/SiteSend.vue +38 -1
  13. package/src/components/pc/TelLossList.vue +20 -3
  14. package/src/components/pc/WorkHistory.vue +1 -1
  15. package/src/components/pc/WorkList.vue +4 -3
  16. package/src/components/pc/WorkListAllNew.vue +16 -8
  17. package/src/components/pc/WorkListNew.vue +722 -712
  18. package/src/components/sendsingle/onlinequeryuser.vue +1 -1
  19. package/src/components/telcount/TelByOrderMan.vue +22 -4
  20. package/src/components/telreport/RepairsDetailsReport.vue +2 -2
  21. package/src/components/telreport/TrafficClassificationReport.vue +13 -13
  22. package/src/components/telreport/Trafficassess.vue +2 -2
  23. package/src/components/temp/HandplanInfo.vue +5 -1
  24. package/src/components/temp/InstructInfo.vue +1 -1
  25. package/src/components/temp/SecuritycheckInfo.vue +14 -0
  26. package/src/components/workorder/RepairDetails.vue +8 -2
  27. package/src/components/workorder/RepairInfo.vue +3 -3
  28. package/src/components/workorder/RepairPaperAndroid.vue +351 -0
  29. package/src/components/workorder/ServiceOnlineQuery.vue +306 -0
  30. package/src/components/workorder/TemporarySingle.vue +346 -302
  31. package/src/filiale/furuike/pc/QueryVisitHistory.vue +14 -1
  32. package/src/filiale/furuike/pc/WorkHistory.vue +576 -576
  33. package/src/filiale/hanzhong/telephone.js +1 -1
  34. package/src/filiale/jiaocheng/android/createQRcode.vue +204 -0
  35. package/src/filiale/jiaocheng/android/onlineBuyGas.vue +637 -0
  36. package/src/filiale/jiaocheng/telephone.js +8 -0
  37. package/src/filiale/jiaocheng/telephoneAndroid.js +15 -0
  38. package/src/filiale/lixian/onlineChangeMeter.vue +481 -0
  39. package/src/filiale/lixian/onlineoperation.vue +606 -0
  40. package/src/filiale/lixian/onlinequeryuser.vue +509 -0
  41. package/src/filiale/lixian/telephoneAndroid.js +23 -0
  42. package/src/filiale/qianneng/android/AppInstallationMaterial.vue +880 -845
  43. package/src/filiale/qianneng/android/TemporarySingle.vue +537 -537
  44. package/src/filiale/qianneng/pc/MaterialDetailed.vue +260 -260
  45. package/src/filiale/qianneng/pc/NewRepairPaper.vue +467 -467
  46. package/src/filiale/qianneng/pc/RepairsWork.vue +992 -992
  47. package/src/filiale/qianneng/pc/WorkListAllNew.vue +757 -757
  48. package/src/filiale/qianneng/pc/changetable.vue +273 -273
  49. package/src/filiale/qianneng/telephone.js +22 -22
  50. package/src/filiale/rizhao/pc/IgnitionVentilation.vue +0 -1
  51. package/src/filiale/rizhao/pc/RepairsWork.vue +0 -1
  52. package/src/filiale/rizhao/pc/WorkListAllNew.vue +11 -5
  53. package/src/filiale/rizhao/telephone.js +1 -1
  54. package/src/filiale/shanxian/android/RepairFirstV.vue +3 -0
  55. package/src/filiale/shanxian/pc/TelFindUser.vue +310 -0
  56. package/src/filiale/shanxian/pc/WorkList.vue +2 -2
  57. package/src/filiale/shanxian/telephone.js +1 -0
  58. package/src/filiale/shexian/android/AddMyTask.vue +7 -0
  59. package/src/filiale/shexian/android/RepairFirstV.vue +5 -0
  60. package/src/filiale/shexian/android/RepairInfo.vue +1 -0
  61. package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +9 -9
  62. package/src/filiale/shexian/pc/TelByRepairType.vue +3 -3
  63. package/src/filiale/shexian/pc/WorkList.vue +4 -1
  64. package/src/filiale/shexian/pc/WorkListAllNew.vue +14 -1
  65. package/src/filiale/tongchuan/android/RepairDetails.vue +623 -0
  66. package/src/filiale/tongchuan/pc/AnalysisMain.vue +7 -7
  67. package/src/filiale/tongchuan/pc/RepairsWork.vue +8 -0
  68. package/src/filiale/tongchuan/pc/UserWork.vue +8 -0
  69. package/src/filiale/tongchuan/telephoneAndroid.js +1 -0
  70. package/src/filiale/wenxi/android/FaultAll.vue +710 -0
  71. package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +73 -162
  72. package/src/filiale/wenxi/android/RepairOrderV.vue +1 -1
  73. package/src/filiale/wenxi/android/ZHihuanFirst.vue +149 -129
  74. package/src/filiale/wenxi/pc/DistributeWork.vue +1 -1
  75. package/src/filiale/wenxi/pc/RecordListLeft.vue +272 -0
  76. package/src/filiale/wenxi/pc/RepairsWork.vue +143 -64
  77. package/src/filiale/wenxi/pc/TelAgentVoiceReport.vue +290 -0
  78. package/src/filiale/wenxi/pc/TelLossList.vue +272 -0
  79. package/src/filiale/wenxi/telephone.js +4 -0
  80. package/src/filiale/wenxi/telephoneAndroid.js +2 -1
  81. package/src/filiale/wuhai/telephone.js +1 -1
  82. package/src/filiale/yuncheng/android/LdapHelper.js +75 -0
  83. package/src/filiale/yuncheng/android/Outlay.vue +201 -0
  84. package/src/filiale/yuncheng/android/RepairInfo.vue +163 -0
  85. package/src/filiale/yuncheng/android/RepairOrderV.vue +1483 -0
  86. package/src/filiale/yuncheng/android/RepairUserInfo.vue +390 -0
  87. package/src/filiale/yuncheng/android/RightTree.vue +218 -0
  88. package/src/filiale/yuncheng/android/TemporarySingle.vue +522 -0
  89. package/src/filiale/yuncheng/android/ZHihuanFirst.vue +541 -0
  90. package/src/filiale/yuncheng/pc/DistributeWork.vue +199 -0
  91. package/src/filiale/yuncheng/pc/GasWork.vue +773 -0
  92. package/src/filiale/yuncheng/pc/TelFindUser.vue +31 -11
  93. package/src/filiale/yuncheng/pc/WorkList.vue +823 -0
  94. package/src/filiale/yuncheng/pc/WorkListAllNew.vue +781 -0
  95. package/src/filiale/yuncheng/telephone.js +5 -1
  96. package/src/filiale/yuncheng/telephoneAndroid.js +19 -0
  97. package/src/filiale/zhongyi/pc/WorkListAllNew.vue +2 -1
  98. package/src/main.js +22 -22
  99. package/src/telephone-android.js +7 -0
  100. package/src/telephone.js +1 -1
@@ -0,0 +1,390 @@
1
+ <template>
2
+ <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
+ <div class="bq-parent" v-if="shutype == 'heng'">
4
+ <blockquote class="blockquote">
5
+ <p><span>用户基本信息</span><a @click="mute()" style="float:right" href="javascript:void(0)"
6
+ class="repair-mute-class"><img src="../../../assets/novoice.png" width="25px;"
7
+ alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a>
8
+ </p>
9
+ </blockquote>
10
+ </div>
11
+ <div class="panel panel-default auto repair-info-content">
12
+ <div class="panel-body">
13
+ <div v-if="data" class="row repair-info-content auto">
14
+ <div class="col-xs-12 col-sm-12 col-md-12 form-input-group">
15
+ <label class="control-label">
16
+ <nobr>到达时间:</nobr>
17
+ </label>
18
+ <span>{{ data.f_date_come }}</span>
19
+ </div>
20
+ <div class="col-xs-12 col-sm-12 col-md-12 form-input-group" v-if="data.f_date_leave">
21
+ <label class="control-label">
22
+ <nobr>离开时间:</nobr>
23
+ </label>
24
+ <span>{{ data.f_date_leave }}</span>
25
+ </div>
26
+ </div>
27
+ <div v-if="model" class="auto repair-info-content compatible">
28
+ <div class="row auto">
29
+ <div class="{{shuclass}}">
30
+ <label class=" lb-left text-justify">姓名</label>
31
+ <span v-if="show" style="font-weight:bold">{{ model.f_user_name }}</span>
32
+ <template v-if="!show">
33
+ <input :disabled="worktype == '报修单'" type="text" class="form-control" v-model="model.f_user_name"
34
+ :readonly="issee">
35
+ </template>
36
+ </div>
37
+ <div v-show="false" class="{{shuclass}}"
38
+ v-if="!((worktype == '置换通气单'||worktype == '安装单') && model.f_user_type == '非民用')">
39
+ <label class="lb-left text-justify">客户类型</label>
40
+ <input type="text" class="form-control" v-model="model.f_user_type" readonly v-if="!show">
41
+ <span v-if="show" style="font-weight:bold">{{ model.f_user_type }}</span>
42
+ </div>
43
+ <div class="{{shuclass}}" v-if="((worktype == '置换通气单'||worktype == '安装单') && model.f_user_type == '民用')">
44
+ <label class="lb-left text-justify">用气性质</label>
45
+ <input type="text" class="form-control" v-model="model.f_gasproperties" readonly v-if="!show">
46
+ <span v-if="show" style="font-weight:bold">{{ model.f_gasproperties }}</span>
47
+ </div>
48
+ <div v-show="false" class="{{shuclass}}"
49
+ v-if="(worktype == '置换通气单'||worktype == '安装单') && model.f_user_type == '非民用'">
50
+ <label class="lb-left text-justify">客户类型</label>
51
+ <input type="text" class="form-control" v-model="model.f_user_type" readonly v-if="!show">
52
+ <span v-if="show" style="font-weight:bold">{{ model.f_user_type }}</span>
53
+ </div>
54
+ <div class="{{shuclass}}" v-if="(worktype == '置换通气单'||worktype == '安装单') && model.f_user_type == '非民用'">
55
+ <label class="lb-left text-justify">用气性质</label>
56
+ <input type="text" class="form-control" v-model="model.f_gasproperties" readonly v-if="!show">
57
+ <span v-if="show" style="font-weight:bold">{{ model.f_gasproperties }}</span>
58
+ </div>
59
+ <div class="{{shuclass}}">
60
+ <label class=" lb-left text-justify">联系电话</label>
61
+ <span v-if="show" style="font-weight:bold">{{ model.f_user_phone }}</span>
62
+ <template v-if="!show">
63
+ <input type="text" class="form-control" v-model="model.f_user_phone" :readonly="issee"
64
+ onkeyup="value=value.replace(/[^\d\.]/g,'')">
65
+ </template>
66
+ </div>
67
+ <div class="col-xs-12 col-sm-12 col-md-6 form-input-group">
68
+ <label class=" lb-left text-justify">地址</label>
69
+ <span v-if="show" style="font-weight:bold">{{ model.f_address }}</span>
70
+ <template v-if="!show">
71
+ <textarea :disabled="worktype == '报修单'" type="text" class="form-control" v-model="model.f_address"
72
+ readonly></textarea>
73
+ </template>
74
+ </div>
75
+
76
+ </div>
77
+ <div class="row">
78
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单'||worktype == '安装单'">
79
+ <label class="lb-left text-justify">用户类型</label>
80
+ <v-select :value="model.f_house_type" :value-single="true"
81
+ :options='housetype' placeholder='请选择'
82
+ close-on-select
83
+ v-on:change="housetypechange"
84
+ :disabled="issee">
85
+ </v-select>
86
+ </div>
87
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单' && model.f_user_type == '民用'">
88
+ <label class="lb-left text-justify">防盗卡号</label>
89
+ <input type="text" class="form-control" v-model="model.f_defendcard">
90
+ </div>
91
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单' && model.f_user_type == '非民用'">
92
+ <label class="lb-left text-justify">铅封号</label>
93
+ <input type="text" class="form-control" v-model="model.f_gmd_lsnumber">
94
+ </div>
95
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单'">
96
+ <label class="lb-left text-justify">办理日期</label>
97
+ <span style="font-weight:bold">{{ f_open_date }}</span>
98
+ </div>
99
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单'">
100
+ <label class="lb-left text-justify">经办人</label>
101
+ <span style="font-weight:bold">{{ f_open_person }}</span>
102
+ </div>
103
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单'">
104
+ <label class="lb-left text-justify">通气人</label>
105
+ <span style="font-weight:bold">{{ f_order_man }}</span>
106
+ </div>
107
+ <div class="{{shuclass}}" v-if="worktype == '置换通气单'">
108
+ <label class="lb-left text-justify">通气日期</label>
109
+ <span style="font-weight:bold">{{ data.f_date_come }}</span>
110
+ </div>
111
+ <div class="{{shuclass}}"
112
+ v-if="worktype == '报修单' && noExp && meterinfo && meterinfo.f_collection_type == '按气量'">
113
+ <label class="lb-left text-justify">累购气量</label>
114
+ <input type="text" class="form-control" v-model="meterinfo.f_total_gas" :disabled="show"
115
+ :readonly="issee">
116
+ </div>
117
+ <div class="{{shuclass}}"
118
+ v-if="worktype == '报修单' && noExp && meterinfo && meterinfo.f_collection_type == '按金额'">
119
+ <label class="lb-left text-justify">累购金额</label>
120
+ <input type="text" class="form-control" v-model="meterinfo.f_total_fee" :disabled="show"
121
+ :readonly="issee">
122
+ </div>
123
+ <div class="{{shuclass}}" v-if="(worktype == '报修单' || worktype == '置换通气单') && noExp">
124
+ <label class="lb-left text-justify">气表品牌</label>
125
+ <input type="text" class="form-control" v-model="meterinfo.f_meter_brand" :disabled="show"
126
+ :readonly="issee">
127
+ </div>
128
+ <div class="{{shuclass}}" v-if="(worktype == '报修单' || worktype == '置换通气单') && noExp">
129
+ <label class="lb-left text-justify">气表型号</label>
130
+ <input type="text" class="form-control" v-model="meterinfo.f_meter_style" :disabled="show"
131
+ :readonly="issee">
132
+ </div>
133
+ <div class="{{shuclass}}" v-if="(worktype == '报修单' || worktype == '置换通气单') && noExp">
134
+ <label class="lb-left text-justify">左右表</label>
135
+ <input type="text" class="form-control" v-model="meterinfo.f_aroundmeter" :disabled="show"
136
+ :readonly="issee">
137
+ </div>
138
+ <div class="{{shuclass}}" v-if="worktype == '报修单' && noExp">
139
+ <label class="lb-left text-justify">安装位置</label>
140
+ <input type="text" class="form-control" v-model="meterinfo.f_position" :disabled="show" :readonly="issee">
141
+ </div>
142
+ <div class="{{shuclass}}" v-if="worktype == '报修单' && noExp">
143
+ <label class="lb-left text-justify">表号</label>
144
+ <input type="text" class="form-control" v-model="meterinfo.f_meternumber" :disabled="show"
145
+ :readonly="issee">
146
+ </div>
147
+ <div class="{{shuclass}}" v-if="worktype == '报修单' && noExp">
148
+ <label class="lb-left text-justify">气表初始底数</label>
149
+ <input type="text" class="form-control" v-model="model.f_initial_base" :disabled="show" :readonly="issee">
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </template>
157
+ <script>
158
+ import * as Util from '../../../components/Util'
159
+ import Vue from 'vue'
160
+ import {HttpResetClass} from "vue-client";
161
+
162
+
163
+ export default {
164
+ title: '维修列表客户基本信息',
165
+ data() {
166
+ return {
167
+ f_order_man: Vue.user.name,
168
+ telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
169
+ watchtype: this.$appdata.getParam('表型'),
170
+ gasdirection: this.$appdata.getParam('进气方向'),
171
+ watchhull: this.$appdata.getParam('表封'),
172
+ ictype: this.$appdata.getParam('IC卡类型'),
173
+ meterstyle: [],
174
+ shuclass: 'col-xs-6 col-sm-6 col-md-6 form-input-group mg8',
175
+ isshenfenzheng: false,
176
+ noExp: false,
177
+ f_open_date: '',
178
+ f_open_person: '',
179
+ meterinfo: {}
180
+ }
181
+ },
182
+ props: {
183
+ issee: '',
184
+ worktype: {
185
+ type: String,
186
+ default: '报修单'
187
+ },
188
+ model: {
189
+ type: Object
190
+ },
191
+ repair: {
192
+ type: Object
193
+ },
194
+ savevalid: {},
195
+ sum: {},
196
+ user: {
197
+ type: Object
198
+ },
199
+ show: {
200
+ type: Boolean,
201
+ default: false
202
+ },
203
+ data: {
204
+ type: Object
205
+ },
206
+ shutype: 'heng'
207
+ },
208
+ methods: {
209
+ housetypechange(val) {
210
+ if (val) {
211
+ this.model.f_house_type = val
212
+ }
213
+ },
214
+ usertypeschange(val) {
215
+ this.model.f_npuser_type = val
216
+ },
217
+ gasbrandchange(val) {
218
+ this.model.f_gasbrand_id = val
219
+ let ret = this.$TelGetSaleParam.getGasbrand()
220
+ let rs = new Array()
221
+ if (this.model.f_gasbrand_id) {
222
+ ret.forEach((item, index) => {
223
+ if (this.model.f_gasbrand_id == item.value.id) {
224
+ this.model.f_gasbrand_name = item.label
225
+ item.value.gasmodel.forEach((item1, index1) => {
226
+ rs.push({label: item1.label, value: item1.value.id})
227
+ })
228
+ }
229
+ })
230
+ }
231
+ this.meterstyle = rs
232
+ },
233
+ gasmodelchange(val) {
234
+ if (val == undefined || val == '') {
235
+ return
236
+ }
237
+ this.model.f_gasmodel_id = val
238
+ let ret = this.$TelGetSaleParam.getGasbrand()
239
+ if (this.model.f_gasbrand_id && this.model.f_gasmodel_id) {
240
+ ret.forEach((item, index) => {
241
+ if (this.model.f_gasbrand_id == item.value.id) {
242
+ item.value.gasmodel.forEach((item1, index1) => {
243
+ if (this.model.f_gasmodel_id == item1.value.id) {
244
+ this.model.f_gasmodel_name = item1.label
245
+ }
246
+ })
247
+ }
248
+ })
249
+ }
250
+ },
251
+ mute() {
252
+ HostApp.mute()
253
+ },
254
+ ifCreatDate() {
255
+ if (this.data && !this.data.f_date) {
256
+ this.data.f_date = Util.toStandardTimeString()
257
+ }
258
+ if (this.data && !this.data.f_date_come) {
259
+ this.data.f_date_come = Util.toStandardTimeString()
260
+ }
261
+ }
262
+ },
263
+ async ready() {
264
+ if ((this.worktype == '报修单' || this.worktype == '置换通气单') && this.repair.f_userinfo_id) {
265
+ this.show = true
266
+ let http = new HttpResetClass()
267
+ let res = await http.load('POST', this.$androidUtil.getProxyUrl() + '/rs/sql/getBaseMeterInfo', {
268
+ data: {
269
+ f_userinfo_id: this.repair.f_userinfo_id
270
+ }
271
+ }, {warnMsg: null, resolveMsg: null, rejectMsg: null})
272
+ if (res.data[0]) {
273
+ this.meterinfo = res.data[0]
274
+ this.noExp = true
275
+ }
276
+ }
277
+ if (this.worktype == '置换通气单') {
278
+ let http = new HttpResetClass()
279
+ let res = await http.load('POST', this.$androidUtil.getProxyUrl() + '/rs/sql/tel_singleTable_OrderBy', {
280
+ data: {
281
+ items: '*',
282
+ tablename: 't_userinfo',
283
+ orderitem: '1',
284
+ condition: `f_userinfo_id = '${this.repair.f_userinfo_id}'`
285
+ }
286
+ }, {warnMsg: null, resolveMsg: null, rejectMsg: null})
287
+ if (res.data[0]) {
288
+ this.f_open_date = res.data[0].f_createfile_date
289
+ this.f_open_person = res.data[0].f_createfile_person
290
+ }
291
+ }
292
+ this.ifCreatDate()
293
+ },
294
+ watch: {
295
+ 'model.f_gasbrand_id'(val) {
296
+ if (val == undefined || val == '') {
297
+ return
298
+ }
299
+ if (this.model.f_gasbrand_id) {
300
+ let ret = this.$TelGetSaleParam.getGasbrand()
301
+ let rs = new Array()
302
+ if (this.model.f_gasbrand_id) {
303
+ ret.forEach((item, index) => {
304
+ if (this.model.f_gasbrand_id == item.value.id) {
305
+ this.model.f_gasbrand_name = item.label
306
+ item.value.gasmodel.forEach((item1, index1) => {
307
+ rs.push({label: item1.label, value: item1.value.id})
308
+ })
309
+ }
310
+ })
311
+ }
312
+ this.meterstyle = rs
313
+ }
314
+ },
315
+ 'repair'() {
316
+ if (this.repair.f_orderstatus) {
317
+ return
318
+ }
319
+ if (this.model.f_address) {
320
+ return
321
+ }
322
+ this.$set('model.f_linkphone', this.repair.f_phone)
323
+ this.$set('model.f_address', this.repair.f_address)
324
+ this.$set('model.f_userinfo_id', this.repair.f_userinfo_id)
325
+ this.$set('model.f_user_phone', this.repair.f_contact_phone)
326
+ this.$set('model.f_user_name', this.repair.f_user_name)
327
+ this.$set('model.f_user_type', this.repair.f_user_type)
328
+ this.$set('model.f_gasproperties', this.repair.f_gasproperties)
329
+ this.$set('model.f_userinfo_code', this.repair.f_userinfo_code)
330
+ if (!this.model.f_house_type) {
331
+ this.model.f_house_type == '自有房'
332
+ }
333
+ if (this.model.f_user_type == '非民用') {
334
+ if (this.model.f_gasproperties == '工业用气') {
335
+ this.$set('model.f_house_type', '工业用户')
336
+ } else if (this.model.f_gasproperties == '商业用气') {
337
+ this.$set('model.f_house_type', '商业用户')
338
+ }
339
+ }
340
+ },
341
+ 'valid'() {
342
+ this.savevalid.uservalid = this.$v.valid
343
+ },
344
+ 'shutype'(val) {
345
+ if (val == 'shu') {
346
+ this.shuclass = 'col-xs-12 col-sm-12 col-md-12 form-input-group mg8'
347
+ }
348
+ },
349
+ 'model.f_shenfenzheng'(val) {
350
+ if (val) {
351
+ if (!(/^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/.test(val))) {
352
+ this.isshenfenzheng = true
353
+ } else {
354
+ this.isshenfenzheng = false
355
+ }
356
+ } else {
357
+ this.isshenfenzheng = false
358
+ }
359
+ }
360
+ },
361
+ computed: {
362
+ positions() {
363
+ return this.$appdata.getParam('安装位置')
364
+ },
365
+ usertypes() {
366
+ return this.$appdata.getParam('非民用用户类型')
367
+ },
368
+ housetype() {
369
+ if (this.model.f_user_type == '民用') {
370
+ return this.$appdata.getParam('民用置换住户类型')
371
+ } else {
372
+ return this.$appdata.getParam('非民用置换住户类型')
373
+ }
374
+ },
375
+ aroundmeters() {
376
+ return this.$appdata.getParam('左右表')
377
+ },
378
+ valid() {
379
+ this.savevalid.uservalid = this.$v.valid
380
+ return this.$v.valid
381
+ }
382
+ }
383
+ }
384
+ </script>
385
+ <style lang="less">
386
+ .class-erro {
387
+ color: #a94442;
388
+ }
389
+ </style>
390
+
@@ -0,0 +1,218 @@
1
+ <template>
2
+ <dropdown :model='model' class="auto" id="res-tree" v-if="!islist" v-el:dropdown :style="{width:width}">
3
+ <button type="button" class="btn btn-default dropdown-toggle select-style" data-toggle="dropdown">
4
+ <span class='btn-content' :style="{textOverflow:'ellipsis',overflow: 'hidden'}">{{ resname }}</span>
5
+ <span class="caret"></span>
6
+ </button>
7
+ <tree :model='model' :is-click="false" slot="dropdown-menu" class="dropdown-menu auto" role="menu">
8
+ <span partial>
9
+ <span class="glyphicon glyphicon-chevron-down" v-show="row.open&&row.data.children.length>0" style="color:balck;"></span>
10
+ <span class="glyphicon glyphicon-chevron-right" v-show="!row.open&&row.data.children.length>0" style="color:balck;"></span>
11
+ <span class="RightTreeCanSelect" v-if="row.data.hasright" @click.stop="$parent.$parent.$parent.selectclick(row.data)">{{row.data.name}}</span>
12
+ <span class="RightTreeCanNotSelect" v-else>{{row.data.name}}</span>
13
+ <span class="glyphicon glyphicon-ok " v-if="$parent.$parent.$parent.isSelect(row.data.id)" style="color:balck;"></span>
14
+ </span>
15
+ </tree>
16
+ </dropdown>
17
+ <v-select v-if="islist"
18
+ placeholder='请选择'
19
+ :options='childrenOptions'
20
+ @change="selectclick"
21
+ :width="'100%'"
22
+ :value-single="true"
23
+ close-on-select></v-select>
24
+ </template>
25
+ <script>
26
+ import * as ldapHelper from './LdapHelper'
27
+ import Vue from 'vue'
28
+ export default {
29
+ title: '资源树',
30
+ props: {
31
+ source: {
32
+ type: String,
33
+ require: true,
34
+ default:`tool.getFullTree(this.getRights().where(row.getType() == $organization$))`
35
+ },
36
+ resid: {
37
+ },
38
+ islist: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ //是否有查看上级的权限
43
+ Url:{
44
+ type: String,
45
+ default:''
46
+ }
47
+ },
48
+ data () {
49
+ return {
50
+ width:'100%',
51
+ resobj:{res:Vue.user.orgs, resids:Vue.user.orgid},
52
+ userid: Vue.user.id,
53
+ resname:[Vue.user.orgs],
54
+ orgnames : [Vue.user.orgs],
55
+ orgids : [Vue.user.orgid],
56
+ orgobj:[],
57
+ model: [
58
+
59
+ ],
60
+ childrenOptions: []
61
+ }
62
+ },
63
+ methods: {
64
+ selectRes () {
65
+ let newobj={
66
+ "res": [this.resname],
67
+ "resids": [this.orgids],
68
+ }
69
+ this.$emit('re-res', newobj)
70
+ },
71
+ //点击资源的方法
72
+ selectclick (row) {
73
+ if(this.orgids.includes(row.id)){
74
+ this.orgnames=[]
75
+ this.orgids=[]
76
+ this.removeResChild(row)
77
+ this.orgnames.push(row.name)
78
+ this.orgids.push(row.id)
79
+ this.orgobj.push(row)
80
+ }else{
81
+ this.orgnames=[]
82
+ this.orgids=[]
83
+ this.orgobj=[]
84
+ this.addResChild(row)
85
+ }
86
+ console.log(this.orgnames.join(','))
87
+ this.resname = this.orgnames.length > 0 ? this.orgnames.join(','):'请选择'
88
+ let newobj={
89
+ "res": this.orgnames,
90
+ "resids": this.orgids,
91
+ "orgobj": this.orgobj,
92
+ }
93
+ this.$emit('re-res', newobj)
94
+ },
95
+ addResChild(val){
96
+ // if(this.orgids.includes(val.id)){
97
+ // this.orgnames.splice(this.orgnames.indexOf(val.name),1)
98
+ // this.orgids.splice(this.orgids.indexOf(val.id),1)
99
+ // }
100
+ this.orgnames.push(val.name)
101
+ this.orgids.push(val.id)
102
+ this.orgobj.push(val)
103
+ if(val.children && val.children.length>0){
104
+ Object.keys(val.children).forEach((key) => {
105
+ this.addResChild(val.children[key])
106
+ })
107
+ }
108
+ },
109
+ removeResChild(val){
110
+ this.orgnames.splice(this.orgnames.indexOf(val.name),1)
111
+ this.orgids.splice(this.orgids.indexOf(val.id),1)
112
+ this.orgobj.splice(this.orgids.indexOf(val),1)
113
+ if(val.children && val.children.length>0){
114
+ Object.keys(val.children).forEach((key) => {
115
+ this.removeResChild(val.children[key])
116
+ })
117
+ }
118
+ },
119
+ //检查是否显示对勾
120
+ isSelect(val) {
121
+ if(this.orgids.includes(val)){
122
+ return true
123
+ }else{
124
+ return false
125
+ }
126
+ },
127
+ //树形结构变成list
128
+ treetoList(val) {
129
+ for (let value of val) {
130
+ this.ergodicList(value)
131
+ }
132
+ },
133
+ //找到跟节点
134
+ ergodicList (val) {
135
+ val.children.length > 0 ? this.treetoList(val.children) : ((val.name == '永济客服部' || val.name == '话务中心') ? this.childrenOptions.push({label: val.name, value: val}) : '')
136
+ },
137
+ //处理显示默认值
138
+ dealResObj (val) {
139
+ try{
140
+ var arr=val.res.split(".")
141
+ //截取最后一个分公司名字
142
+ this.resname=arr[arr.length-1].toString()
143
+ this.resid = val.resids
144
+ }catch (e){
145
+ this.resname='请选择组织'
146
+ }
147
+ },
148
+ judgBoundary(){
149
+ //判断是否超出边界,超出移动
150
+ if(document.documentElement.offsetWidth< this.$els.dropdown.getBoundingClientRect().right){
151
+ this.left = document.documentElement.offsetWidth - this.$els.dropdown.getBoundingClientRect().right - 25
152
+ }
153
+ }
154
+ },
155
+ events: {
156
+
157
+ },
158
+ ready () {
159
+ console.log('righttree ready')
160
+ if(this.$els.dropdown){
161
+ console.log('righttree1')
162
+ this.width = this.$els.dropdown.clientWidth * 0.7 +'px'
163
+ }
164
+ console.log('righttree2')
165
+ this.dealResObj (this.resobj)
166
+ console.log('righttree3')
167
+ var data = {
168
+ source: this.source,
169
+ userid: this.userid
170
+ }
171
+ console.log('向资源服务发送请求')
172
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/search`, data,{
173
+ resolveMsg : null ,
174
+ rejectMsg : null,
175
+ }).then((ret) => {
176
+ console.log('向资源服务请求结束')
177
+ // 去掉前面的两层节点
178
+ ret.data[0].children[0].children.forEach((item) => {
179
+ this.model.push(item)
180
+ })
181
+ // 给资源添加父关系
182
+ ldapHelper.procParent(this.model)
183
+ if (this.islist) {
184
+ this.treetoList(this.model)
185
+ }
186
+ this.selectRes()
187
+ })
188
+ },
189
+ watch: {
190
+ }
191
+ }
192
+ </script>
193
+ <style lang="less">
194
+ #res-tree {
195
+ .list-group-item {
196
+ background-color: #FFF;
197
+ color: #000;
198
+ padding: 5px 10px;
199
+ border:0px;
200
+ white-space: nowrap;
201
+ }
202
+ }
203
+ #res-tree .list-group {
204
+ width: auto;
205
+ min-width: 100%;
206
+ }
207
+ .hide-text-overflow{
208
+ overflow: hidden;
209
+ text-overflow: ellipsis
210
+ }
211
+ .select-style {
212
+ border: 0px;
213
+ /*border-bottom: 2px solid #C9CCCF;*/
214
+ border: 1px solid #93B2D3;
215
+ border-radius: 0px;
216
+ color: #555;
217
+ }
218
+ </style>