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.
- package/package.json +3 -3
- package/src/App.vue +54 -54
- package/src/components/android/ImgArea.vue +80 -0
- package/src/components/guoxin/Console.vue +42 -14
- package/src/components/guoxin/call.state.api.js +3 -1
- package/src/components/pc/ComplainWork.vue +3 -0
- package/src/components/pc/NewRepairPaper.vue +378 -370
- package/src/components/pc/RecordListLeft.vue +80 -10
- package/src/components/pc/RepairsWork.vue +33 -3
- package/src/components/pc/RoleSelector.vue +7 -1
- package/src/components/pc/Seekwork.vue +3 -0
- package/src/components/pc/SiteSend.vue +38 -1
- package/src/components/pc/TelLossList.vue +20 -3
- package/src/components/pc/WorkHistory.vue +1 -1
- package/src/components/pc/WorkList.vue +4 -3
- package/src/components/pc/WorkListAllNew.vue +16 -8
- package/src/components/pc/WorkListNew.vue +722 -712
- package/src/components/sendsingle/onlinequeryuser.vue +1 -1
- package/src/components/telcount/TelByOrderMan.vue +22 -4
- package/src/components/telreport/RepairsDetailsReport.vue +2 -2
- package/src/components/telreport/TrafficClassificationReport.vue +13 -13
- package/src/components/telreport/Trafficassess.vue +2 -2
- package/src/components/temp/HandplanInfo.vue +5 -1
- package/src/components/temp/InstructInfo.vue +1 -1
- package/src/components/temp/SecuritycheckInfo.vue +14 -0
- package/src/components/workorder/RepairDetails.vue +8 -2
- package/src/components/workorder/RepairInfo.vue +3 -3
- package/src/components/workorder/RepairPaperAndroid.vue +351 -0
- package/src/components/workorder/ServiceOnlineQuery.vue +306 -0
- package/src/components/workorder/TemporarySingle.vue +346 -302
- package/src/filiale/furuike/pc/QueryVisitHistory.vue +14 -1
- package/src/filiale/furuike/pc/WorkHistory.vue +576 -576
- package/src/filiale/hanzhong/telephone.js +1 -1
- package/src/filiale/jiaocheng/android/createQRcode.vue +204 -0
- package/src/filiale/jiaocheng/android/onlineBuyGas.vue +637 -0
- package/src/filiale/jiaocheng/telephone.js +8 -0
- package/src/filiale/jiaocheng/telephoneAndroid.js +15 -0
- package/src/filiale/lixian/onlineChangeMeter.vue +481 -0
- package/src/filiale/lixian/onlineoperation.vue +606 -0
- package/src/filiale/lixian/onlinequeryuser.vue +509 -0
- package/src/filiale/lixian/telephoneAndroid.js +23 -0
- package/src/filiale/qianneng/android/AppInstallationMaterial.vue +880 -845
- package/src/filiale/qianneng/android/TemporarySingle.vue +537 -537
- package/src/filiale/qianneng/pc/MaterialDetailed.vue +260 -260
- package/src/filiale/qianneng/pc/NewRepairPaper.vue +467 -467
- package/src/filiale/qianneng/pc/RepairsWork.vue +992 -992
- package/src/filiale/qianneng/pc/WorkListAllNew.vue +757 -757
- package/src/filiale/qianneng/pc/changetable.vue +273 -273
- package/src/filiale/qianneng/telephone.js +22 -22
- package/src/filiale/rizhao/pc/IgnitionVentilation.vue +0 -1
- package/src/filiale/rizhao/pc/RepairsWork.vue +0 -1
- package/src/filiale/rizhao/pc/WorkListAllNew.vue +11 -5
- package/src/filiale/rizhao/telephone.js +1 -1
- package/src/filiale/shanxian/android/RepairFirstV.vue +3 -0
- package/src/filiale/shanxian/pc/TelFindUser.vue +310 -0
- package/src/filiale/shanxian/pc/WorkList.vue +2 -2
- package/src/filiale/shanxian/telephone.js +1 -0
- package/src/filiale/shexian/android/AddMyTask.vue +7 -0
- package/src/filiale/shexian/android/RepairFirstV.vue +5 -0
- package/src/filiale/shexian/android/RepairInfo.vue +1 -0
- package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +9 -9
- package/src/filiale/shexian/pc/TelByRepairType.vue +3 -3
- package/src/filiale/shexian/pc/WorkList.vue +4 -1
- package/src/filiale/shexian/pc/WorkListAllNew.vue +14 -1
- package/src/filiale/tongchuan/android/RepairDetails.vue +623 -0
- package/src/filiale/tongchuan/pc/AnalysisMain.vue +7 -7
- package/src/filiale/tongchuan/pc/RepairsWork.vue +8 -0
- package/src/filiale/tongchuan/pc/UserWork.vue +8 -0
- package/src/filiale/tongchuan/telephoneAndroid.js +1 -0
- package/src/filiale/wenxi/android/FaultAll.vue +710 -0
- package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +73 -162
- package/src/filiale/wenxi/android/RepairOrderV.vue +1 -1
- package/src/filiale/wenxi/android/ZHihuanFirst.vue +149 -129
- package/src/filiale/wenxi/pc/DistributeWork.vue +1 -1
- package/src/filiale/wenxi/pc/RecordListLeft.vue +272 -0
- package/src/filiale/wenxi/pc/RepairsWork.vue +143 -64
- package/src/filiale/wenxi/pc/TelAgentVoiceReport.vue +290 -0
- package/src/filiale/wenxi/pc/TelLossList.vue +272 -0
- package/src/filiale/wenxi/telephone.js +4 -0
- package/src/filiale/wenxi/telephoneAndroid.js +2 -1
- package/src/filiale/wuhai/telephone.js +1 -1
- package/src/filiale/yuncheng/android/LdapHelper.js +75 -0
- package/src/filiale/yuncheng/android/Outlay.vue +201 -0
- package/src/filiale/yuncheng/android/RepairInfo.vue +163 -0
- package/src/filiale/yuncheng/android/RepairOrderV.vue +1483 -0
- package/src/filiale/yuncheng/android/RepairUserInfo.vue +390 -0
- package/src/filiale/yuncheng/android/RightTree.vue +218 -0
- package/src/filiale/yuncheng/android/TemporarySingle.vue +522 -0
- package/src/filiale/yuncheng/android/ZHihuanFirst.vue +541 -0
- package/src/filiale/yuncheng/pc/DistributeWork.vue +199 -0
- package/src/filiale/yuncheng/pc/GasWork.vue +773 -0
- package/src/filiale/yuncheng/pc/TelFindUser.vue +31 -11
- package/src/filiale/yuncheng/pc/WorkList.vue +823 -0
- package/src/filiale/yuncheng/pc/WorkListAllNew.vue +781 -0
- package/src/filiale/yuncheng/telephone.js +5 -1
- package/src/filiale/yuncheng/telephoneAndroid.js +19 -0
- package/src/filiale/zhongyi/pc/WorkListAllNew.vue +2 -1
- package/src/main.js +22 -22
- package/src/telephone-android.js +7 -0
- package/src/telephone.js +1 -1
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<label class="font text-left">用户姓名:</label>
|
|
77
77
|
</div>
|
|
78
78
|
<div class="col-xs-8" >
|
|
79
|
-
<input class="search_input input-font" v-model="model.f_user_name" condition="ui.f_user_name
|
|
79
|
+
<input class="search_input input-font" v-model="model.f_user_name" condition="ui.f_user_name like '%{}%'" />
|
|
80
80
|
</div>
|
|
81
81
|
</div>
|
|
82
82
|
<div class="row app-row">
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<div novalidate class="form-inline" partial>
|
|
7
7
|
<div class="row" >
|
|
8
8
|
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
9
|
-
<label class="font_normal_body" style="width: 40%"
|
|
10
|
-
<datepicker placeholder="
|
|
9
|
+
<label class="font_normal_body" style="width: 40%">派单时间</label>
|
|
10
|
+
<datepicker placeholder="派单开始时间"
|
|
11
11
|
:value.sync="model.f_created_startdate"
|
|
12
12
|
v-model="model.f_created_startdate"
|
|
13
13
|
:format="'yyyy-MM-dd 00:00:00'"
|
|
@@ -15,14 +15,32 @@
|
|
|
15
15
|
></datepicker>
|
|
16
16
|
</div>
|
|
17
17
|
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
18
|
-
<label class="font_normal_body" style="width: 40%"
|
|
19
|
-
<datepicker placeholder="
|
|
18
|
+
<label class="font_normal_body" style="width: 40%">派单时间</label>
|
|
19
|
+
<datepicker placeholder="派单结束时间"
|
|
20
20
|
:value.sync="model.f_created_enddate"
|
|
21
21
|
v-model="model.f_created_enddate"
|
|
22
22
|
:format="'yyyy-MM-dd 23:59:59'"
|
|
23
23
|
condition="swo.f_created_date < '{}'"
|
|
24
24
|
></datepicker>
|
|
25
25
|
</div>
|
|
26
|
+
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
27
|
+
<label class="font_normal_body" style="width: 40%">完工时间</label>
|
|
28
|
+
<datepicker placeholder="完工起始时间"
|
|
29
|
+
:value.sync="model.f_leave_startdate"
|
|
30
|
+
v-model="model.f_leave_startdate"
|
|
31
|
+
:format="'yyyy-MM-dd 00:00:00'"
|
|
32
|
+
condition="sw.f_date_leave> '{}'"
|
|
33
|
+
></datepicker>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
36
|
+
<label class="font_normal_body" style="width: 40%">完工时间</label>
|
|
37
|
+
<datepicker placeholder="完工截止时间"
|
|
38
|
+
:value.sync="model.f_leave_enddate"
|
|
39
|
+
v-model="model.f_leave_enddate"
|
|
40
|
+
:format="'yyyy-MM-dd 23:59:59'"
|
|
41
|
+
condition="sw.f_date_leave < '{}'"
|
|
42
|
+
></datepicker>
|
|
43
|
+
</div>
|
|
26
44
|
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
27
45
|
<button type="button" name="button" style="float: right;margin-top: 8px" class="button_search button_spacing" @click="search(),$dispatch('search')">查询</button>
|
|
28
46
|
<export-excel-tel :data="$parent.$parent.searchData"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
:value.sync="model.startDate"
|
|
12
12
|
style="width: 60%;"
|
|
13
13
|
:disabled-days-of-Week="[]"
|
|
14
|
-
:format="'yyyy-MM-dd'"
|
|
14
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
15
15
|
:show-reset-button="reset">
|
|
16
16
|
</datepicker>
|
|
17
17
|
</div>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
:value.sync="model.endDate"
|
|
23
23
|
:disabled-days-of-Week="[]"
|
|
24
24
|
style="width: 60%;"
|
|
25
|
-
:format="'yyyy-MM-dd'"
|
|
25
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
26
26
|
:show-reset-button="reset">
|
|
27
27
|
</datepicker>
|
|
28
28
|
</div>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
:value.sync="model.startDate"
|
|
12
12
|
style="width: 60%;"
|
|
13
13
|
:disabled-days-of-Week="[]"
|
|
14
|
-
:format="'yyyy-MM-dd
|
|
14
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
15
15
|
:show-reset-button="reset">
|
|
16
16
|
</datepicker>
|
|
17
17
|
</div>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
:value.sync="model.endDate"
|
|
23
23
|
:disabled-days-of-Week="[]"
|
|
24
24
|
style="width: 60%;"
|
|
25
|
-
:format="'yyyy-MM-dd
|
|
25
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
26
26
|
:show-reset-button="reset">
|
|
27
27
|
</datepicker>
|
|
28
28
|
</div>
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
<v-select :value.sync="model.attendants"
|
|
32
32
|
:options='$parent.$parent.operators'
|
|
33
33
|
placeholder='请选择话务员'
|
|
34
|
+
:multiple="true"
|
|
34
35
|
style="width: 60%"
|
|
35
36
|
></v-select>
|
|
36
37
|
</div>
|
|
@@ -99,27 +100,26 @@
|
|
|
99
100
|
this.model.f_filialeid = this.$login.convertToIn(obj.resids);
|
|
100
101
|
},
|
|
101
102
|
search(args){
|
|
102
|
-
debugger
|
|
103
103
|
if (args.model.attendants && args.model.attendants.length>0){
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
args.model.attendant = args.model.attendants[0]
|
|
104
|
+
let attStr = ""
|
|
105
|
+
for (let attendantKey in args.model.attendants) {
|
|
106
|
+
attStr +=`'${args.model.attendants[attendantKey]}',',',`
|
|
107
|
+
}
|
|
108
|
+
attStr=attStr.substring(0, attStr.length-1)
|
|
109
|
+
args.model.attendant = attStr
|
|
110
|
+
// args.model.attendant = args.model.attendants[0]
|
|
111
111
|
}else {
|
|
112
|
-
|
|
112
|
+
this.$showMessage('请选择话务员')
|
|
113
|
+
return
|
|
113
114
|
}
|
|
114
115
|
this.model.search('1=1',args.model)
|
|
115
116
|
}
|
|
116
117
|
},
|
|
117
118
|
ready() {
|
|
118
119
|
let date = new Date()
|
|
119
|
-
let month = date.getMonth()
|
|
120
120
|
let realMonth = date.getMonth()+1
|
|
121
121
|
let day = date.getDate()
|
|
122
|
-
this.$refs.paged.$refs.criteria.model.startDate = date.getFullYear() + '-' + (
|
|
122
|
+
this.$refs.paged.$refs.criteria.model.startDate = date.getFullYear() + '-' + (realMonth<10? '0'+ realMonth : realMonth) + '-' + (day<10? '0'+ day : day) + ' 00:00:00'
|
|
123
123
|
this.$refs.paged.$refs.criteria.model.endDate = date.getFullYear() + '-' + (realMonth<10? '0'+ realMonth : realMonth) + '-' + (day<10? '0'+ day : day) + ' 23:59:59'
|
|
124
124
|
this.getOperators('话务员')
|
|
125
125
|
},
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
:value.sync="model.startDate"
|
|
17
17
|
style="width: 60%;"
|
|
18
18
|
:disabled-days-of-Week="[]"
|
|
19
|
-
:format="'yyyy-MM-dd
|
|
19
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
20
20
|
:show-reset-button="reset">
|
|
21
21
|
</datepicker>
|
|
22
22
|
</div>
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
:value.sync="model.endDate"
|
|
28
28
|
:disabled-days-of-Week="[]"
|
|
29
29
|
style="width: 60%;"
|
|
30
|
-
:format="'yyyy-MM-dd
|
|
30
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
31
31
|
:show-reset-button="reset">
|
|
32
32
|
</datepicker>
|
|
33
33
|
</div>
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
title: '抄表记录',
|
|
46
46
|
data () {
|
|
47
47
|
return {
|
|
48
|
-
model: new PagedList((this.user && this.user.isphone) ? '${this.$androidUtil.getProxyUrl()}/' : '' + 'rs/sql/tel_singleTable_OrderBy', 8, {items: '"*"', tablename: 'this.tablename', orderitem: '"
|
|
48
|
+
model: new PagedList((this.user && this.user.isphone) ? '${this.$androidUtil.getProxyUrl()}/' : '' + 'rs/sql/tel_singleTable_OrderBy', 8, {items: '"*"', tablename: 'this.tablename', orderitem: '"f_hand_date desc"'}),
|
|
49
49
|
show: false,
|
|
50
50
|
row: Object
|
|
51
51
|
}
|
|
@@ -74,6 +74,10 @@
|
|
|
74
74
|
this.model.rows = []
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
|
+
/*
|
|
78
|
+
1.12月18 2W
|
|
79
|
+
2.1月18
|
|
80
|
+
*/
|
|
77
81
|
ready () {
|
|
78
82
|
if (this.user && this.user.f_userinfo_id) {
|
|
79
83
|
if(this.user.f_meter_classify == '物联网表'){
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
title: '指令查看',
|
|
46
46
|
data () {
|
|
47
47
|
return {
|
|
48
|
-
model: new PagedList('rs/sql/tel_singleTable_OrderBy', 8, {items: '"f_callback_date,f_instruct_date,f_receive_state,f_instruct_state,f_instruct_title,f_meternumber,f_instruct_type,f_manufacturers"', tablename: '"t_instruct with (nolock)"', orderitem: '"
|
|
48
|
+
model: new PagedList('rs/sql/tel_singleTable_OrderBy', 8, {items: '"f_callback_date,f_instruct_date,f_receive_state,f_instruct_state,f_instruct_title,f_meternumber,f_instruct_type,f_manufacturers"', tablename: '"t_instruct with (nolock)"', orderitem: '"f_instruct_date desc"'}),
|
|
49
49
|
show: false,
|
|
50
50
|
row: Object
|
|
51
51
|
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
<th><nobr>安检日期</nobr></th>
|
|
11
11
|
<th><nobr>入户情况</nobr></th>
|
|
12
12
|
<th><nobr>安检员</nobr></th>
|
|
13
|
+
<th> <nobr>隐患明细</nobr></th>>
|
|
13
14
|
</tr>
|
|
14
15
|
</template>
|
|
15
16
|
<template partial='body'>
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
<td style="text-align: center"><nobr>{{row.f_onsite_time.substring(0,11)}}</nobr></td>
|
|
18
19
|
<td style="text-align: center"><nobr>{{row.f_entry_status}}</nobr></td>
|
|
19
20
|
<td style="text-align: center"><nobr>{{row.f_checker_name}}</nobr></td>
|
|
21
|
+
<td style="text-align: center" ><nobr>{{row.f_defect_text?row.f_defect_text:$parent.$parent.$parent.getjsonData(row.f_defect_content)}}</nobr></td>
|
|
20
22
|
</template>
|
|
21
23
|
</data-grid>
|
|
22
24
|
</criteria-paged>
|
|
@@ -28,6 +30,7 @@
|
|
|
28
30
|
*用户档案相关信息组件
|
|
29
31
|
*/
|
|
30
32
|
import { PagedList } from 'vue-client'
|
|
33
|
+
import {isEmpty} from "../Util";
|
|
31
34
|
export default {
|
|
32
35
|
title: '用户安检历史',
|
|
33
36
|
data () {
|
|
@@ -43,6 +46,17 @@
|
|
|
43
46
|
clearflg:0
|
|
44
47
|
},
|
|
45
48
|
methods: {
|
|
49
|
+
getjsonData(value){
|
|
50
|
+
//将value字符串转换成json对象
|
|
51
|
+
let jsonStr= JSON.parse(value);
|
|
52
|
+
let str = jsonStr.data;
|
|
53
|
+
if(jsonStr.result=='正常'){
|
|
54
|
+
return '正常'
|
|
55
|
+
}else{
|
|
56
|
+
return str
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
},
|
|
46
60
|
selected (row) {
|
|
47
61
|
if (this.row === row) {
|
|
48
62
|
this.row = null
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
></datepicker>
|
|
31
31
|
<input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project.indexOf('表号') == -1" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">
|
|
32
32
|
<input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project.indexOf('表号') != -1 " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >
|
|
33
|
-
<button v-show="ischecked == '有'" type="button" name="button" class="btn btn-primary" @click="scan(row.f_project)" v-if="!show && row.f_project.indexOf('表号') != -1 ">扫码</button>
|
|
33
|
+
<button v-show="ischecked == '有'" type="button" name="button" class="btn btn-primary" @click="scan(row.f_project)" v-if="!show && row.f_project.indexOf('表号') != -1 && row.type == 'string'">扫码</button>
|
|
34
34
|
<v-select v-show="ischecked == '有'"
|
|
35
35
|
:value.sync="row.f_content"
|
|
36
36
|
:options='getOptions(row.f_project)'
|
|
@@ -154,6 +154,7 @@
|
|
|
154
154
|
title: '维修列表信息',
|
|
155
155
|
data() {
|
|
156
156
|
return {
|
|
157
|
+
is_has_jingweidu: this.$appdata.getSingleValue('照片水印加经纬度') || 'false',
|
|
157
158
|
telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
|
|
158
159
|
meterstyle:[],
|
|
159
160
|
shuclass:'col-xs-6 col-sm-6 col-md-6 form-input-group mg8',
|
|
@@ -404,6 +405,7 @@
|
|
|
404
405
|
}
|
|
405
406
|
},
|
|
406
407
|
takePic(prop, title,order) {
|
|
408
|
+
const obj = HostApp.getGpsDetailAddress()
|
|
407
409
|
|
|
408
410
|
HostApp.__callback__ = this.cameraCallBack
|
|
409
411
|
HostApp.__this__ = this
|
|
@@ -414,9 +416,13 @@
|
|
|
414
416
|
}else if(order==2 && (!this.Detail.details[prop].f_second_repairimg || this.Detail.details[prop].f_second_repairimg.includes("nopic.png"))) {
|
|
415
417
|
fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
|
|
416
418
|
}
|
|
419
|
+
let jingweidu = ''
|
|
420
|
+
if (this.is_has_jingweidu == 'true'){
|
|
421
|
+
jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
|
|
422
|
+
}
|
|
417
423
|
HostApp._open_a_page({type: 'boomerang',
|
|
418
424
|
page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
|
|
419
|
-
param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'", "%s",'+order+');', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name}
|
|
425
|
+
param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'", "%s",'+order+');', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name +jingweidu}
|
|
420
426
|
})
|
|
421
427
|
},
|
|
422
428
|
cameraCallBack(prop, fileName,order) {
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
<phone-sell-info-lite v-if="showSellInfo" :user="{}" :f_userinfo_id="service.f_userinfo_id"></phone-sell-info-lite>
|
|
25
25
|
</div>
|
|
26
26
|
<div class="from-group">
|
|
27
|
-
<img-self v-if="service.f_single_path" :src="imgfilename" width="200" height="200"></img-self>
|
|
28
|
-
<img-self v-if="service.f_singlea_path" :src="imgfilenamea" width="200" height="200"></img-self>
|
|
29
|
-
<img-self v-if="service.f_singleb_path" :src="imgfilenameb" width="200" height="200"></img-self>
|
|
27
|
+
<img-self style="float: left;margin: 2px" v-if="service.f_single_path" :src="imgfilename" width="200" height="200"></img-self>
|
|
28
|
+
<img-self style="float: left;margin: 2px" v-if="service.f_singlea_path" :src="imgfilenamea" width="200" height="200"></img-self>
|
|
29
|
+
<img-self style="float: left;margin: 2px" v-if="service.f_singleb_path" :src="imgfilenameb" width="200" height="200"></img-self>
|
|
30
30
|
</div>
|
|
31
31
|
<route name="info-route" ></route>
|
|
32
32
|
</div>
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basic-main" style="height: 100%">
|
|
3
|
+
<!-- <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">-->
|
|
4
|
+
<!-- <div @click="back()">-->
|
|
5
|
+
<!-- <img src="../../assets/back.png" style="margin: 0px"/>-->
|
|
6
|
+
<!-- </div>-->
|
|
7
|
+
<!-- </div>-->
|
|
8
|
+
<work-busy :is-busy="loading"></work-busy>
|
|
9
|
+
<div class="container-fluid" style="overflow: scroll">
|
|
10
|
+
<div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
|
|
11
|
+
<div style="width: 100%;margin: auto">
|
|
12
|
+
<table class="table table-striped table-bordered" style="margin-bottom: 6px">
|
|
13
|
+
<thead>
|
|
14
|
+
<tr>
|
|
15
|
+
<th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
|
|
16
|
+
</tr>
|
|
17
|
+
</thead>
|
|
18
|
+
<tbody>
|
|
19
|
+
<tr>
|
|
20
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
|
|
21
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
|
|
22
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
|
|
23
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
|
|
24
|
+
</tr>
|
|
25
|
+
<tr>
|
|
26
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
|
|
27
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
|
|
28
|
+
</tr>
|
|
29
|
+
<tr v-if="serviceall.f_workorder_type=='报修单'">
|
|
30
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
|
|
31
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
|
|
32
|
+
</tr>
|
|
33
|
+
<tr v-if="serviceall.f_workorder_type=='报修单'">
|
|
34
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
|
|
35
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
|
|
36
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左右表:</td>
|
|
37
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
|
|
38
|
+
</tr>
|
|
39
|
+
<tr v-if="serviceall.f_workorder_type=='报修单'">
|
|
40
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">气表品牌:</td>
|
|
41
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_meter_brand }}</td>
|
|
42
|
+
</tr>
|
|
43
|
+
<tr v-if="serviceall.f_workorder_type=='报修单'">
|
|
44
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">气表型号:</td>
|
|
45
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_meter_style }}</td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr v-if="serviceall.f_workorder_type=='置换通气单'">
|
|
48
|
+
|
|
49
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户姓名:</td>
|
|
50
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
|
|
51
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
|
|
52
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
|
|
53
|
+
</tr>
|
|
54
|
+
<tr v-if="serviceall.f_workorder_type=='置换通气单'">
|
|
55
|
+
|
|
56
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
|
|
57
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
|
|
58
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
|
|
59
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
|
|
60
|
+
</tr>
|
|
61
|
+
<tr v-if="serviceall.f_workorder_type=='置换通气单'">
|
|
62
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
|
|
63
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
|
|
64
|
+
</tr>
|
|
65
|
+
<tr v-if="serviceall.f_workorder_type=='置换通气单'">
|
|
66
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
|
|
67
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
|
|
68
|
+
</tr>
|
|
69
|
+
<!-- <tr>-->
|
|
70
|
+
|
|
71
|
+
<!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
|
|
72
|
+
<!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
|
|
73
|
+
<!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
|
|
74
|
+
<!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
|
|
75
|
+
<!-- </tr>-->
|
|
76
|
+
<tr>
|
|
77
|
+
|
|
78
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
|
|
79
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
|
|
80
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
|
|
81
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
|
|
82
|
+
</tr>
|
|
83
|
+
<tr>
|
|
84
|
+
<td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
|
|
85
|
+
<td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
|
|
86
|
+
</tr>
|
|
87
|
+
</tbody>
|
|
88
|
+
</table>
|
|
89
|
+
<table class="table table-striped table-bordered">
|
|
90
|
+
<thead>
|
|
91
|
+
<tr>
|
|
92
|
+
<th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
|
|
93
|
+
</tr>
|
|
94
|
+
</thead>
|
|
95
|
+
<tbody>
|
|
96
|
+
<tr>
|
|
97
|
+
<td style="margin: auto;text-align: center">
|
|
98
|
+
<div class="container" style="max-width: 550px;background: #FFFFFF">
|
|
99
|
+
<div class="img" v-for="img in serviceall.imgs">
|
|
100
|
+
<img-self :src="getimg(img.android_file)" style="float: left" width="150"
|
|
101
|
+
height="200"></img-self>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
</td>
|
|
105
|
+
</tr>
|
|
106
|
+
</tbody>
|
|
107
|
+
</table>
|
|
108
|
+
<table class="table table-striped table-bordered">
|
|
109
|
+
<thead>
|
|
110
|
+
<tr>
|
|
111
|
+
<th style="text-align: center;background-color: #dfedfb;color:black;">用户签名照片</th>
|
|
112
|
+
</tr>
|
|
113
|
+
</thead>
|
|
114
|
+
<tr>
|
|
115
|
+
<td style="margin: auto;text-align: center">
|
|
116
|
+
<div class="container" style="max-width: 500px;background: #FFFFFF">
|
|
117
|
+
<div class="img" style="float: none">
|
|
118
|
+
<img-self :src="getimg(serviceall.f_signname)" width="200" height="200"></img-self>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</td>
|
|
122
|
+
</tr>
|
|
123
|
+
</table>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
<div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
|
|
127
|
+
<div class="col-md-6" style="height: 100%;overflow: scroll">
|
|
128
|
+
<div style="width: 95%;margin-left: 5%">
|
|
129
|
+
<table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
|
|
130
|
+
<thead>
|
|
131
|
+
<tr>
|
|
132
|
+
<th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
|
|
133
|
+
</tr>
|
|
134
|
+
</thead>
|
|
135
|
+
<tbody>
|
|
136
|
+
<tr v-for="detail in serviceone.details">
|
|
137
|
+
<td>
|
|
138
|
+
<div class="row">
|
|
139
|
+
<div class="col-md-8" style="text-align: center;">{{ detail.f_project }}</div>
|
|
140
|
+
<div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
|
|
141
|
+
{{ detail.f_content?detail.f_content:'无' }}
|
|
142
|
+
</div>
|
|
143
|
+
<div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
|
|
144
|
+
<button-link style="color: black" type="button" class="btn btn-link"
|
|
145
|
+
@click="showpath(serviceone.imgs,detail.f_project)">查看照片
|
|
146
|
+
</button-link>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
|
|
149
|
+
无照片
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</td>
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
</tr>
|
|
156
|
+
</tbody>
|
|
157
|
+
</table>
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
<modal :show.sync="imgshow" v-ref:modal backdrop="true">
|
|
166
|
+
<header slot="modal-header" class="modal-header">
|
|
167
|
+
{{ picturename }}
|
|
168
|
+
</header>
|
|
169
|
+
<article slot="modal-body" class="modal-body">
|
|
170
|
+
<div class="from-group">
|
|
171
|
+
<div class="row">
|
|
172
|
+
<div class="col-md-6" v-for="item in showimgs">
|
|
173
|
+
<img-self :src="getimg(item)" width="300" height="400"></img-self>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
</article>
|
|
178
|
+
<footer slot="modal-footer" class="modal-footer" v-show="false">
|
|
179
|
+
<button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
|
|
180
|
+
</footer>
|
|
181
|
+
</modal>
|
|
182
|
+
</template>
|
|
183
|
+
|
|
184
|
+
<script>
|
|
185
|
+
import {HttpResetClass} from 'vue-client'
|
|
186
|
+
|
|
187
|
+
export default {
|
|
188
|
+
title: '工单详情',
|
|
189
|
+
props: ['curActivity', 'service'],
|
|
190
|
+
data () {
|
|
191
|
+
return {
|
|
192
|
+
imgshow:false,
|
|
193
|
+
picturename:'',
|
|
194
|
+
showimg:'',
|
|
195
|
+
baseuserinfo: {},
|
|
196
|
+
showimgs:[],
|
|
197
|
+
allimgs: [],
|
|
198
|
+
servicerepair: [],
|
|
199
|
+
serviceall: {},
|
|
200
|
+
usermeter:{},
|
|
201
|
+
loading: false
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
ready () {
|
|
205
|
+
this.loading=true
|
|
206
|
+
////tag
|
|
207
|
+
////tag)
|
|
208
|
+
let http = new HttpResetClass()
|
|
209
|
+
////tag
|
|
210
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/path/serviceWork`, {data: {id: this.curActivity.id}}, {
|
|
211
|
+
resolveMsg: null,
|
|
212
|
+
rejectMsg: null
|
|
213
|
+
}).then(res => {
|
|
214
|
+
////tag)
|
|
215
|
+
for (let i = 0; i < res.data.length; i++) {
|
|
216
|
+
if (res.data[i].id == this.curActivity.id) {
|
|
217
|
+
this.serviceall = res.data[i]
|
|
218
|
+
this.baseuserinfo = res.data[i].baseuserinfo
|
|
219
|
+
this.servicerepair = res.data[i].servicerepair
|
|
220
|
+
this.allimgs = res.data[i].imgs
|
|
221
|
+
http.load('post',`${this.$androidUtil.getProxyUrl()}/rs/sql/getBaseMeterInfo`,{data:{f_userinfo_id:this.baseuserinfo.f_userinfo_id}},{
|
|
222
|
+
resolveMsg: null,
|
|
223
|
+
rejectMsg: null
|
|
224
|
+
}).then(res=>{
|
|
225
|
+
this.usermeter=res.data[0]
|
|
226
|
+
})
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
////tag)
|
|
231
|
+
////tag)
|
|
232
|
+
////tag)
|
|
233
|
+
////tag)
|
|
234
|
+
this.loading=false
|
|
235
|
+
})
|
|
236
|
+
},
|
|
237
|
+
methods: {
|
|
238
|
+
getimg(val){
|
|
239
|
+
console.log(`${this.$androidUtil.getProxyUrl()}/rs/image/file/${val}`)
|
|
240
|
+
|
|
241
|
+
return `${this.$androidUtil.getProxyUrl()}/rs/image/file/${val}`
|
|
242
|
+
},
|
|
243
|
+
changefailure(val){
|
|
244
|
+
let failureall=''
|
|
245
|
+
// val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
|
|
246
|
+
let failure = JSON.parse(val)
|
|
247
|
+
for (let i = 0; i <failure.length; i++) {
|
|
248
|
+
if (failure[i].failurecase.length>0){
|
|
249
|
+
failureall+=failure[i].f_failure_type+":"
|
|
250
|
+
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
251
|
+
failureall+=failure[i].failurecase[j]
|
|
252
|
+
if (j+1!=failure[i].failurecase.length){
|
|
253
|
+
failureall+=","
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
}else{
|
|
258
|
+
failureall+=failure[i].f_failure_type
|
|
259
|
+
}
|
|
260
|
+
if (i+1!=failure.length){
|
|
261
|
+
failureall+=';'
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return failureall
|
|
265
|
+
},
|
|
266
|
+
imgclose(){
|
|
267
|
+
this.imgshow=false
|
|
268
|
+
},
|
|
269
|
+
ispicture(imgs,imgid){
|
|
270
|
+
let imgstr=''
|
|
271
|
+
let imgpath=''
|
|
272
|
+
for (let i = 0; i < imgs.length; i++) {
|
|
273
|
+
if (imgs[i].imgpath==imgid){
|
|
274
|
+
imgstr=imgs[i].android_file
|
|
275
|
+
imgpath=imgs[i].imgpath
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
////tag
|
|
279
|
+
////tag
|
|
280
|
+
if (imgstr){
|
|
281
|
+
return true
|
|
282
|
+
}
|
|
283
|
+
return false
|
|
284
|
+
},
|
|
285
|
+
showpath (imgs,imgid) {
|
|
286
|
+
const img = imgs.filter(res => res.imgpath === imgid).map(res => res.android_file)
|
|
287
|
+
if (img.length > 0) {
|
|
288
|
+
this.showimgs = img
|
|
289
|
+
this.picturename = imgid
|
|
290
|
+
this.imgshow = true
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
back () {
|
|
294
|
+
this.$back()
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
</script>
|
|
299
|
+
|
|
300
|
+
<style scoped>
|
|
301
|
+
.img {
|
|
302
|
+
border: 1px solid #9773ed;
|
|
303
|
+
width: auto;
|
|
304
|
+
height: auto;
|
|
305
|
+
float: left;
|
|
306
|
+
text-align: center;
|
|
307
|
+
margin: 6px;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
img {
|
|
311
|
+
margin: 6px;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
.container {
|
|
316
|
+
margin: 10px auto;
|
|
317
|
+
width: 80%;
|
|
318
|
+
height: auto;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
div::-webkit-scrollbar {
|
|
322
|
+
width: 0 !important;
|
|
323
|
+
height: 0 !important;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
div {
|
|
327
|
+
-ms-overflow-style: none;
|
|
328
|
+
overflow: -moz-scrollbars-none;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.divmask {
|
|
332
|
+
pointer-events: none;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.app-header {
|
|
336
|
+
border-radius: 50%;
|
|
337
|
+
background: rgba(73, 158, 223, 0.4);
|
|
338
|
+
color: #FFF;
|
|
339
|
+
padding: 20px;
|
|
340
|
+
text-align: center;
|
|
341
|
+
font-size: 1.2em;
|
|
342
|
+
z-index: 10;
|
|
343
|
+
opacity: 0.5;
|
|
344
|
+
bottom: 50px;
|
|
345
|
+
margin-top: -20px;
|
|
346
|
+
position: absolute;
|
|
347
|
+
top: 10%;
|
|
348
|
+
right: 2%;
|
|
349
|
+
height: 8%;
|
|
350
|
+
}
|
|
351
|
+
</style>
|