safecheck-client 4.0.1-8 → 4.0.1-80
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/.trae/.ignore +0 -0
- package/.vscode/settings.json +3 -0
- package/package.json +5 -5
- package/src/assets//350/255/246/345/221/212 (3).png +0 -0
- package/src/assets//350/255/246/345/221/212 (4).png +0 -0
- package/src/assets//350/255/246/345/221/212 (5).png +0 -0
- package/src/components/NewDefectList/DefectListNew.vue +22 -3
- package/src/components/Util/RightTreeSafeDep.vue +12 -0
- package/src/components/android/AndroidDefectDeal.vue +356 -323
- package/src/components/android/AndroidDefectDetails.vue +3 -3
- package/src/components/android/AppInstallationMaterial.vue +865 -0
- package/src/components/android/DailyworkloadQuery.vue +2 -1
- package/src/components/android/NewCheckpaperAndroid.vue +22 -48
- package/src/components/android/SafecheckOrderV.vue +6 -0
- package/src/components/android/SwitchValve.vue +1 -1
- package/src/components/checkplan/CheckDetail.vue +1 -1
- package/src/components/map/SecurityCheckCoordinates.vue +361 -0
- package/src/components/paper/PaperList.vue +5 -0
- package/src/components/pc/DefectDeal.vue +2 -1
- package/src/components/pc/DefectMaterialLook.vue +98 -0
- package/src/components/pc/PaperDefectMain.vue +26 -1
- package/src/components/pc/RoleSelectorDep.vue +9 -2
- package/src/components/planmanage/PlanManage.vue +1 -0
- package/src/components/querycheckpaper/CheckPaperList.vue +6 -4
- package/src/components/querycheckpaper/CheckPaperSearchUser.vue +30 -4
- package/src/components/querycheckpaper/CheckSearchUser.vue +6 -1
- package/src/filiale/jinhong/android/CurrentCreate.vue +66 -22
- package/src/filiale/jinhong/pc/CheckBookList.vue +12 -7
- package/src/filiale/jinhong/pc/DefectPaperNew.vue +10 -10
- package/src/filiale/jinhong/pc/PaperList.vue +56 -47
- package/src/filiale/jinhong/pc/PlanManage.vue +2 -0
- package/src/filiale/jinhong/pc/checkPlanList.vue +2 -0
- package/src/filiale/jinhong/pc/checkUserList.vue +766 -742
- package/src/filiale/libo/android/PaperFeedback.vue +1579 -0
- package/src/filiale/libo/android/PhoneUpUserinfo.vue +1249 -0
- package/src/filiale/libo/android/SafecheckOrderV.vue +2302 -0
- package/src/filiale/libo/android.js +14 -0
- package/src/filiale/libo/pc/NewCheckpaper.vue +1987 -0
- package/src/filiale/libo/pc.js +12 -0
- package/src/filiale/meihekou/android/CurrentCreate.vue +1 -1
- package/src/filiale/meihekou/android/MeterReading.vue +9 -5
- package/src/filiale/meihekou/android/PhoneUpUserinfo.vue +3 -2
- package/src/filiale/meihekou/android/SafecheckDevices.vue +5 -5
- package/src/filiale/meihekou/android/SafecheckOrderV.vue +2446 -2427
- package/src/filiale/meihekou/pc/NewCheckpaper.vue +2 -2
- package/src/filiale/meihekou/pc/NewCheckpaperNew.vue +2050 -0
- package/src/filiale/meihekou/pc/PaperList.vue +1205 -0
- package/src/filiale/meihekou/pc.js +2 -0
- package/src/filiale/minsheng/android/SwitchValve.vue +1 -1
- package/src/filiale/qianneng/android/SwitchValve.vue +1 -1
- package/src/filiale/qingjian/pc/checkUserList.vue +35 -0
- package/src/filiale/taiyuan/android/AddPlanItem.vue +456 -0
- package/src/filiale/taiyuan/android/AreaPlan.vue +565 -0
- package/src/filiale/taiyuan/android/CurrentCreate.vue +1016 -0
- package/src/filiale/taiyuan/android/PhoneUpUserinfo.vue +1253 -0
- package/src/filiale/taiyuan/android/SafecheckOrderV.vue +2347 -0
- package/src/filiale/taiyuan/android/SafecheckUserInfo.vue +784 -0
- package/src/filiale/taiyuan/android.js +15 -0
- package/src/filiale/taiyuan/pc/DefectDeal.vue +1034 -0
- package/src/filiale/taiyuan/pc/NewCheckpaper.vue +1976 -0
- package/src/filiale/taiyuan/pc/PaperList.vue +795 -0
- package/src/filiale/taiyuan/pc/PlanManage.vue +891 -0
- package/src/filiale/taiyuan/pc/checkUserList.vue +798 -0
- package/src/filiale/taiyuan/pc.js +16 -0
- package/src/filiale/tianke/android/CurrentCreate.vue +3 -3
- package/src/filiale/tongchuan/android/SwitchValve.vue +1 -1
- package/src/filiale/xinkang/android/AddPlanItem.vue +244 -196
- package/src/filiale/xinkang/android/AndroidDefectDeal.vue +1 -0
- package/src/filiale/xinkang/android/SafecheckDevices.vue +52 -22
- package/src/filiale/xinkang/android/SafecheckOrderV.vue +24 -80
- package/src/filiale/xinkang/android/SafecheckUserInfo.vue +1 -1
- package/src/filiale/xinkang/pc/CheckSearchUser.vue +12 -12
- package/src/filiale/xinkang/pc/NewCheckpaper.vue +57 -72
- package/src/filiale/xinkang/pc/PaperList.vue +25 -10
- package/src/filiale/yuansheng/android/SwitchValve.vue +1 -1
- package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1030 -1030
- package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +4 -4
- package/src/filiale/yunchengminsheng/pc/PaperList.vue +811 -0
- package/src/filiale/yunchengminsheng/pc.js +1 -0
- package/src/main.js +33 -33
- package/src/safecheck-android.js +4 -0
- package/src/safecheck.js +6 -0
@@ -276,6 +276,7 @@ import Vue from 'vue'
|
|
276
276
|
import { PagedList,HttpResetClass } from 'vue-client'
|
277
277
|
import * as Util from '../Util'
|
278
278
|
import co from 'co'
|
279
|
+
import {isEmpty} from "../Util";
|
279
280
|
|
280
281
|
export default {
|
281
282
|
title: '无计划安检查询',
|
@@ -405,7 +406,7 @@ export default {
|
|
405
406
|
// this.getPlanCount()
|
406
407
|
//let condition = `f_filialeid='${Vue.user.orgid}' and f_checker_id='${Vue.user.id}' `
|
407
408
|
let condition = "1=1 "
|
408
|
-
if (this.f_checker_id){
|
409
|
+
if (!isEmpty(this.f_checker_id)){
|
409
410
|
condition += " and f_checker_id = '"+ this.f_checker_id + "'"
|
410
411
|
}
|
411
412
|
if(this.$refs.paged.$refs.cri.model.f_user_name){
|
@@ -53,11 +53,6 @@ div {
|
|
53
53
|
|
54
54
|
<template>
|
55
55
|
<div class="basic-main" style="height: 100%">
|
56
|
-
<!-- <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">-->
|
57
|
-
<!-- <div @click="back()">-->
|
58
|
-
<!-- <img src="../../assets/back.png" style="margin: 0px"/>-->
|
59
|
-
<!-- </div>-->
|
60
|
-
<!-- </div>-->
|
61
56
|
<work-busy :is-busy="loading"></work-busy>
|
62
57
|
<div class="container-fluid" style="overflow: scroll">
|
63
58
|
<div class="row">
|
@@ -387,51 +382,15 @@ import Vue from 'vue'
|
|
387
382
|
import * as Util from '../../components/Util'
|
388
383
|
import {jsonSort} from '../../utils/LdapHelper'
|
389
384
|
import {HttpResetClass} from "vue-client";
|
390
|
-
|
385
|
+
import {isEmpty} from "../../components/Util";
|
391
386
|
let asyncReady = async function (self) {
|
392
|
-
// 获取配置信息
|
393
387
|
try {
|
394
|
-
let res = await new HttpResetClass().load('
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
}
|
401
|
-
})/*.then(res=>{*/
|
402
|
-
//tag
|
403
|
-
//tag)
|
404
|
-
if (res.data.length === 0) {
|
405
|
-
// self.$showMessage("该公司无组织目录,无法获取配置文件,将使用默认配置文件")
|
406
|
-
return
|
407
|
-
}
|
408
|
-
if (!res.data[0].f_dir) {
|
409
|
-
// self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
|
410
|
-
} else {
|
411
|
-
//this.f_dir=res.data[0].f_dir
|
412
|
-
try {
|
413
|
-
let res1 = await new HttpResetClass().load('GET', `${self.$androidUtil.getProxyUrl()}/safecheck/rs/vue/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
|
414
|
-
resolveMsg: '获取居民配置项成功!',
|
415
|
-
rejectMsg: '获取居民配置项出错!'
|
416
|
-
})/*.then(res=>{*/
|
417
|
-
//tag
|
418
|
-
//this.safeConfig["民用配置项"]=Object.assign({},res.data)
|
419
|
-
Vue.config.safecheck.DevicesConfig = res1.data
|
420
|
-
/*})*/
|
421
|
-
let res2 = await new HttpResetClass().load('GET', `${self.$androidUtil.getProxyUrl()}/safecheck/rs/vue/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
|
422
|
-
resolveMsg: '获取非居民配置项成功!',
|
423
|
-
rejectMsg: '获取非居民配置项出错!'
|
424
|
-
})/*.then(res=>{*/
|
425
|
-
//tag
|
426
|
-
//this.safeConfig["非民用配置项"]=Object.assign({},res.data)
|
427
|
-
Vue.config.safecheck.DevicesSetConfig = res2.data
|
428
|
-
/*}).then(res=> {
|
429
|
-
})*/
|
430
|
-
|
431
|
-
} catch (e) {
|
432
|
-
// self.$showMessage("获取配置文件失败" + e)
|
433
|
-
}
|
434
|
-
}
|
388
|
+
let res = await new HttpResetClass().load('GET',`${self.$androidUtil.getProxyUrl()}/api/af-safecheck/vue`,null, {resolveMsg: null, rejectMsg: null})
|
389
|
+
self.delConfigKey(res.data)
|
390
|
+
Vue.config.safecheck=res.data
|
391
|
+
Vue.config.safecheck.DevicesConfig =res.data.DevicesConfig
|
392
|
+
Vue.config.safecheck.DevicesSetConfig = res.data.DevicesSetConfig
|
393
|
+
console.log('获取配置结果===', res.data)
|
435
394
|
} catch (error) {
|
436
395
|
// 忽略704,文件找不到异常R
|
437
396
|
if (error.status !== 704) {
|
@@ -565,7 +524,22 @@ export default {
|
|
565
524
|
}
|
566
525
|
},
|
567
526
|
methods: {
|
527
|
+
delConfigKey(obj){
|
528
|
+
// 从琉璃中获取的配置中会包含 $开头的一些额外描述新的key。为了兼容v3的代码逻辑在此函数中去掉
|
529
|
+
Object.keys(obj).forEach(key =>{
|
530
|
+
Object.keys(obj[key]).forEach(col => {
|
531
|
+
// 检查键是否以$开头
|
532
|
+
if (col.startsWith('$')) {
|
533
|
+
// 使用delete操作符删除键
|
534
|
+
delete obj[key][col];
|
535
|
+
}
|
536
|
+
})
|
537
|
+
})
|
538
|
+
},
|
568
539
|
getimg(val){
|
540
|
+
if(isEmpty(val)){
|
541
|
+
return ''
|
542
|
+
}
|
569
543
|
console.log(`${this.$androidUtil.getProxyUrl()}/${val}`)
|
570
544
|
|
571
545
|
return `${this.$androidUtil.getProxyUrl()}/${val}`
|
@@ -1306,6 +1306,12 @@
|
|
1306
1306
|
}else if(res.code == 309){
|
1307
1307
|
this.$showMessage('该安检单已作废!')
|
1308
1308
|
this.$dispatch('confirm')
|
1309
|
+
}else if(res.code == 310){
|
1310
|
+
this.$showMessage('该单已成功入户,请勿重复上传!')
|
1311
|
+
this.$dispatch('confirm')
|
1312
|
+
}else if(res.code == 311){
|
1313
|
+
this.$showMessage('该单已上传,请勿重复上传!')
|
1314
|
+
this.$dispatch('confirm')
|
1309
1315
|
}else if(res.code == 710){
|
1310
1316
|
this.$showMessage('上传照片失败,请检查网络是否正常!'+res.msg)
|
1311
1317
|
this.onlySave = true
|
@@ -295,7 +295,7 @@ export default {
|
|
295
295
|
meternumberf: this.thisOneData.f_meternumber, //表号
|
296
296
|
contentData: {isOpen: msg=='开阀' ? 1 : 0}, // oper 为true 时为开阀 false 为关阀
|
297
297
|
}
|
298
|
-
this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-
|
298
|
+
this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/openapi/iot_saveInstruct`, {data: data}).then((row) => {
|
299
299
|
this.$showMessage(`${msg}指令发送成功,请等候2分钟进行查询`)
|
300
300
|
//tag
|
301
301
|
this.thisOneData = '';
|
@@ -111,7 +111,7 @@ export default {
|
|
111
111
|
'check' (val) {
|
112
112
|
let condition
|
113
113
|
//tag
|
114
|
-
condition = `
|
114
|
+
condition = `c.f_checker_name='${this.check.f_checker}' and i.f_state!='作废' and c.f_issued='是'`
|
115
115
|
if(this.checkstatus){
|
116
116
|
condition += ` and cp.f_entry_status = '${this.checkstatus}'`
|
117
117
|
}
|
@@ -0,0 +1,361 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="flex-row">
|
3
|
+
<div class="basic-main" style="flex:7">
|
4
|
+
<div id="check_map" style="height:100%">
|
5
|
+
</div>
|
6
|
+
</div>
|
7
|
+
<div id="zzz" class="basic-main" style="flex:1;margin-left: 0px;overflow: hidden">
|
8
|
+
<div class="panel panel-info" style="margin-top:0px; height: 100%; display: flex; flex-direction: column;">
|
9
|
+
<div class="panel-heading" style="height: 50px">
|
10
|
+
<h3 class="panel-title">状态选择</h3>
|
11
|
+
</div>
|
12
|
+
<div class="panel-body">
|
13
|
+
<ul class="safe_ul_sty">
|
14
|
+
<li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level1" @change="enableChange('level1',mulchs.level1)" type="checkbox"/><img class="safe_deimg" src="../../assets/警告 (3).png"/>拒检</li>
|
15
|
+
<li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.level3" @change="enableChange('level3',mulchs.level3)" type="checkbox"/><img class="safe_deimg" src="../../assets/警告 (4).png"/>到访不遇</li>
|
16
|
+
<li class="safe_li_sty"><input class="safe_checkbox_sty" v-model="mulchs.problems" @change="enableChange('problems',mulchs.problems)" type="checkbox"/><img class="safe_deimg" src="../../assets/警告 (5).png"/>正常</li>
|
17
|
+
</ul>
|
18
|
+
</div>
|
19
|
+
<div class="panel-heading" style="height: 50px">
|
20
|
+
<h3 class="panel-title">时间选择</h3>
|
21
|
+
</div>
|
22
|
+
<div class="panel-body">
|
23
|
+
<div class="row" style="height: 50px">
|
24
|
+
<datepicker
|
25
|
+
:value.sync="f_check_start"
|
26
|
+
placeholder='开始时间'
|
27
|
+
:disabled-days-of-week="[]"
|
28
|
+
@change="safeRefresh"
|
29
|
+
:format="'yyyy-MM-dd'"
|
30
|
+
:show-rest-button="reset"
|
31
|
+
v-model="f_check_start">
|
32
|
+
</datepicker>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="row" style="height: 50px">
|
36
|
+
<datepicker
|
37
|
+
:value.sync="f_check_end"
|
38
|
+
placeholder='结束时间'
|
39
|
+
:disabled-days-of-week="[]"
|
40
|
+
@change="safeRefresh"
|
41
|
+
:format="'yyyy-MM-dd'"
|
42
|
+
:show-rest-button="reset"
|
43
|
+
v-model="f_check_end">
|
44
|
+
</datepicker>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
</template>
|
51
|
+
|
52
|
+
<script>
|
53
|
+
import * as Util from '../Util'
|
54
|
+
import {HttpResetClass} from 'vue-client'
|
55
|
+
|
56
|
+
export default {
|
57
|
+
title: '用户安检定位信息',
|
58
|
+
data() {
|
59
|
+
return {
|
60
|
+
loading: false,
|
61
|
+
f_check_start:'',
|
62
|
+
f_check_end:'',
|
63
|
+
map:null,
|
64
|
+
infoWindow:null,
|
65
|
+
level1Mulchs:null,//拒检点位
|
66
|
+
level3Mulchs:null,//到访不遇点位
|
67
|
+
problemsMulchs:null,//正常点位
|
68
|
+
level1:[],
|
69
|
+
level3:[],
|
70
|
+
problems:[],
|
71
|
+
defectList:{rows:[]},
|
72
|
+
intervalNum:'',
|
73
|
+
mulchs:{//覆盖物控制显示
|
74
|
+
level1:true,
|
75
|
+
level3:true,
|
76
|
+
problems:true
|
77
|
+
},
|
78
|
+
styleObject :[
|
79
|
+
{
|
80
|
+
url: require('../../assets/警告 (3).png'), //拒检图标URL
|
81
|
+
anchor: new AMap.Pixel(14, 8), // 图标偏移位置
|
82
|
+
size: new AMap.Size(26, 28) //图标大小
|
83
|
+
},
|
84
|
+
{
|
85
|
+
url: require('../../assets/警告 (4).png'), //到访不遇图标URL
|
86
|
+
anchor: new AMap.Pixel(14, 8), // 图标偏移位置
|
87
|
+
size: new AMap.Size(26, 28) //图标大小
|
88
|
+
},
|
89
|
+
{
|
90
|
+
url: require('../../assets/警告 (5).png'), //正常图标URL
|
91
|
+
anchor: new AMap.Pixel(14, 8), // 图标偏移位置
|
92
|
+
size: new AMap.Size(26, 28) //图标大小
|
93
|
+
}
|
94
|
+
]
|
95
|
+
}
|
96
|
+
},
|
97
|
+
async ready(){
|
98
|
+
this.initMap()
|
99
|
+
await this.getNewData(`f_longitude is not null and f_latitude is not null`)
|
100
|
+
this.assemblyData()
|
101
|
+
this.intervalNum=window.setInterval(this.safeRefresh, 240000)
|
102
|
+
},
|
103
|
+
methods: {
|
104
|
+
async getNewData (condition) {
|
105
|
+
this.loading = true
|
106
|
+
let arr = await new HttpResetClass().load('POST', `api/af-safecheck/sql/safe_singleTable_OrderBy`,
|
107
|
+
{
|
108
|
+
data: {
|
109
|
+
items:'tcp.*,tab.f_adjustable_name,tr.f_name as f_region_name ',
|
110
|
+
tablename: 't_check_paper tcp left join t_userfiles uf on uf.f_userinfo_id = tcp.f_userinfoid left join t_adjustablebox tab on tab.id=uf.f_adjustable_id left join t_region tr on tab.f_region_id=tr.id',
|
111
|
+
condition: condition,
|
112
|
+
orderitem: 'tcp.f_entry_status'
|
113
|
+
}}, {resolveMsg: null, rejectMsg: null})
|
114
|
+
if (arr.data) {
|
115
|
+
this.level1 = []
|
116
|
+
this.level3 = []
|
117
|
+
this.problems = []
|
118
|
+
arr.data.forEach((defect) => {
|
119
|
+
if (defect.f_entry_status == '拒检' ) {
|
120
|
+
this.level1.push(defect)
|
121
|
+
} else if (defect.f_entry_status == '到访不遇' ) {
|
122
|
+
this.level3.push(defect)
|
123
|
+
} else {
|
124
|
+
this.problems.push(defect)
|
125
|
+
}
|
126
|
+
})
|
127
|
+
}
|
128
|
+
this.loading = false
|
129
|
+
this.defectList.rows = arr.data
|
130
|
+
},
|
131
|
+
getDefectContent(row){
|
132
|
+
return `
|
133
|
+
<div style="padding:0px;margin-left: 8px;"><b>安检内容</b></div>
|
134
|
+
<div class="panel panel-default" style="background-color: azure;border-radius: 5px;margin-left: 8px;">
|
135
|
+
<div class="panel-body">
|
136
|
+
<ul style="list-style-type: none;font-size: 15px;">
|
137
|
+
<li style="margin: 3px 0;">用户姓名: ${row.f_user_name}</li>
|
138
|
+
<li style="margin: 3px 0;">用户地址: ${row.f_address}</li>
|
139
|
+
<li style="margin: 3px 0;">安检状态: ${row.f_entry_status}</li>
|
140
|
+
<li style="margin: 3px 0;">安检时间: ${row.f_offsite_time}</li>
|
141
|
+
<li style="margin: 3px 0;">安检人员: ${row.f_checker_name}</li>
|
142
|
+
<li style="margin: 3px 0;">调压箱: ${row.f_adjustable_name?row.f_adjustable_name:'无'}</li>
|
143
|
+
<li style="margin: 3px 0;">所属区域: ${row.f_region_name?row.f_region_name:'无'}</li>
|
144
|
+
</ul>
|
145
|
+
</div>
|
146
|
+
</div>`
|
147
|
+
},
|
148
|
+
assemblyData(){
|
149
|
+
let a2=[]
|
150
|
+
for(let i=0;i<this.level1.length;i++){
|
151
|
+
a2.push({
|
152
|
+
lnglat: [this.level1[i].f_longitude, this.level1[i].f_latitude], //点标记位置
|
153
|
+
name: '拒检',
|
154
|
+
id:i,
|
155
|
+
rowstr:this.level1[i]
|
156
|
+
})
|
157
|
+
}
|
158
|
+
this.level1Mulchs.setData(a2);
|
159
|
+
this.level1Mulchs.setMap(this.map);
|
160
|
+
|
161
|
+
let a4=[]
|
162
|
+
for(let p=0;p<this.level3.length;p++){
|
163
|
+
if (this.level3[p].f_longitude&&this.level3[p].f_latitude){
|
164
|
+
a4.push({
|
165
|
+
lnglat: [this.level3[p].f_longitude, this.level3[p].f_latitude], //点标记位置
|
166
|
+
name: '到访不遇',
|
167
|
+
id:p,
|
168
|
+
rowstr:this.level3[p]
|
169
|
+
})
|
170
|
+
}
|
171
|
+
}
|
172
|
+
this.level3Mulchs.setData(a4);
|
173
|
+
this.level3Mulchs.setMap(this.map);
|
174
|
+
|
175
|
+
let a5=[]
|
176
|
+
for(let l=0;l<this.problems.length;l++){
|
177
|
+
if (this.problems[l].f_longitude&&this.problems[l].f_latitude){
|
178
|
+
a5.push({
|
179
|
+
lnglat: [this.problems[l].f_longitude, this.problems[l].f_latitude], //点标记位置
|
180
|
+
name: '正常',
|
181
|
+
id:l,
|
182
|
+
rowstr:this.problems[l]
|
183
|
+
})
|
184
|
+
}
|
185
|
+
}
|
186
|
+
this.problemsMulchs.setData(a5);
|
187
|
+
this.problemsMulchs.setMap(this.map);
|
188
|
+
},
|
189
|
+
enableChange(vname,val){
|
190
|
+
switch(vname){
|
191
|
+
case 'level1':
|
192
|
+
if(val){
|
193
|
+
this.level1Mulchs.show()
|
194
|
+
}else{
|
195
|
+
this.level1Mulchs.hide()
|
196
|
+
}
|
197
|
+
break;
|
198
|
+
case 'level3':
|
199
|
+
if(val){
|
200
|
+
this.level3Mulchs.show()
|
201
|
+
}else{
|
202
|
+
this.level3Mulchs.hide()
|
203
|
+
}
|
204
|
+
break;
|
205
|
+
case 'problems':
|
206
|
+
if(val){
|
207
|
+
this.problemsMulchs.show()
|
208
|
+
}else{
|
209
|
+
this.problemsMulchs.hide()
|
210
|
+
}
|
211
|
+
break;
|
212
|
+
default:
|
213
|
+
}
|
214
|
+
},
|
215
|
+
initMap(){
|
216
|
+
let that=this
|
217
|
+
this.map = new AMap.Map('check_map', {
|
218
|
+
zoom: 17,
|
219
|
+
viewMode: '2D',
|
220
|
+
lang: 'zh_cn',
|
221
|
+
zindex: 99,
|
222
|
+
zooms: [3, 18], // 设置地图缩放范围为3到18级
|
223
|
+
center: [110.121181, 37.088921],
|
224
|
+
});
|
225
|
+
AMap.plugin(
|
226
|
+
['AMap.ToolBar','AMap.Geolocation'], () => {
|
227
|
+
var geolocation = new AMap.Geolocation({
|
228
|
+
enableHighAccuracy: true,
|
229
|
+
showbutton: true,
|
230
|
+
timeout: 10000,
|
231
|
+
buttonOffset: new AMap.Pixel(10, 20),
|
232
|
+
buttonPosition: 'LB'
|
233
|
+
})
|
234
|
+
that.map.addControl(geolocation)
|
235
|
+
geolocation.getCurrentPosition();
|
236
|
+
that.map.addControl(new AMap.ToolBar())
|
237
|
+
});
|
238
|
+
this.map.setDefaultCursor('move');
|
239
|
+
this.infoWindow = new AMap.InfoWindow({
|
240
|
+
anchor: 'bottom-center',
|
241
|
+
autoMove:true,
|
242
|
+
content: '',
|
243
|
+
offset: new AMap.Pixel(0, -25)
|
244
|
+
})
|
245
|
+
|
246
|
+
this.level1Mulchs=new AMap.MassMarks([], {
|
247
|
+
opacity: 0.8,
|
248
|
+
zIndex: 111,
|
249
|
+
cursor: 'pointer',
|
250
|
+
style: this.styleObject[0]
|
251
|
+
});
|
252
|
+
this.level1Mulchs.on('mouseover',function (e) {
|
253
|
+
let defectContent=that.getDefectContent(e.data.rowstr)
|
254
|
+
that.infoWindow.setContent(defectContent)
|
255
|
+
that.infoWindow.open(that.map, e.data.lnglat);
|
256
|
+
})
|
257
|
+
this.level1Mulchs.on('mouseout',function (e) {
|
258
|
+
that.infoWindow.close();
|
259
|
+
})
|
260
|
+
this.level3Mulchs=new AMap.MassMarks([], {
|
261
|
+
opacity: 0.8,
|
262
|
+
zIndex: 111,
|
263
|
+
cursor: 'pointer',
|
264
|
+
style: this.styleObject[1]
|
265
|
+
});
|
266
|
+
this.level3Mulchs.on('mouseover',function (e) {
|
267
|
+
let defectContent=that.getDefectContent(e.data.rowstr)
|
268
|
+
that.infoWindow.setContent(defectContent)
|
269
|
+
that.infoWindow.open(that.map, e.data.lnglat);
|
270
|
+
})
|
271
|
+
this.level3Mulchs.on('mouseout',function (e) {
|
272
|
+
that.infoWindow.close();
|
273
|
+
})
|
274
|
+
this.problemsMulchs=new AMap.MassMarks([], {
|
275
|
+
opacity: 0.8,
|
276
|
+
zIndex: 111,
|
277
|
+
cursor: 'pointer',
|
278
|
+
style: this.styleObject[2]
|
279
|
+
});
|
280
|
+
this.problemsMulchs.on('mouseover',function (e) {
|
281
|
+
let defectContent=that.getDefectContent(e.data.rowstr)
|
282
|
+
that.infoWindow.setContent(defectContent)
|
283
|
+
that.infoWindow.open(that.map, e.data.lnglat);
|
284
|
+
})
|
285
|
+
this.problemsMulchs.on('mouseout',function (e) {
|
286
|
+
that.infoWindow.close();
|
287
|
+
})
|
288
|
+
},
|
289
|
+
async safeRefresh(){
|
290
|
+
let condition =`f_longitude is not null and f_latitude is not null`
|
291
|
+
if (this.f_check_start){
|
292
|
+
condition += ` and f_offsite_time >= '${this.f_check_start} 00:00:00'`
|
293
|
+
}
|
294
|
+
if (this.f_check_end){
|
295
|
+
condition += ` and f_offsite_time <= '${this.f_check_end} 23:59:59'`
|
296
|
+
}
|
297
|
+
await this.getNewData(condition)
|
298
|
+
this.assemblyData()
|
299
|
+
}
|
300
|
+
},
|
301
|
+
destroyed() {
|
302
|
+
window.clearInterval(this.intervalNum)
|
303
|
+
}
|
304
|
+
}
|
305
|
+
</script>
|
306
|
+
|
307
|
+
<style lang="less" scoped>
|
308
|
+
|
309
|
+
.time-picker-container {
|
310
|
+
display: flex;
|
311
|
+
align-items: center;
|
312
|
+
}
|
313
|
+
|
314
|
+
.time-picker-container /deep/ .v-datepicker {
|
315
|
+
width: 100% !important;
|
316
|
+
}
|
317
|
+
|
318
|
+
.date-separator {
|
319
|
+
padding: 0 5px;
|
320
|
+
}
|
321
|
+
|
322
|
+
.safe_checkbox_sty{
|
323
|
+
vertical-align:text-bottom;
|
324
|
+
margin-right: 3px;
|
325
|
+
|
326
|
+
}
|
327
|
+
.safe_ul_sty{
|
328
|
+
list-style-type: none;
|
329
|
+
font-size: 13px;
|
330
|
+
padding-left: 5px;
|
331
|
+
}
|
332
|
+
.safe_li_sty{
|
333
|
+
font-size: 13px;
|
334
|
+
margin-top: 5px;
|
335
|
+
}
|
336
|
+
.safe_p{
|
337
|
+
white-space: nowrap;
|
338
|
+
overflow: hidden;
|
339
|
+
text-overflow: ellipsis;
|
340
|
+
margin: 0 0 0 10px;
|
341
|
+
|
342
|
+
font-size: 12px;
|
343
|
+
}
|
344
|
+
.safe_list_li{
|
345
|
+
margin-top: 5px;
|
346
|
+
background-color: #ffffff;
|
347
|
+
border: solid 1px #f0f4fa !important;
|
348
|
+
color: #666666 !important;
|
349
|
+
font-size: 1.3rem !important;
|
350
|
+
font-family: PINGFANG-MEDIUM !important;
|
351
|
+
padding: 8px;
|
352
|
+
}
|
353
|
+
.safe_list_li:hover{
|
354
|
+
background-color: rgb(203,234,241);
|
355
|
+
}
|
356
|
+
.safe_deimg{
|
357
|
+
vertical-align: text-bottom;
|
358
|
+
width: 15px;
|
359
|
+
margin-right: 3px;
|
360
|
+
}
|
361
|
+
</style>
|
@@ -268,6 +268,11 @@
|
|
268
268
|
<input type="text" class="input_search" v-model="model.f_card_id"
|
269
269
|
style="width: 60%" placeholder="客户卡号" condition="f_card_id like '%{}%'">
|
270
270
|
</div>
|
271
|
+
<div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
|
272
|
+
<label class="font_normal_body">备注</label>
|
273
|
+
<input type="text" class="input_search" v-model="model.f_repair_approved_note"
|
274
|
+
style="width: 60%" placeholder="备注" condition="f_repair_approved_note like '%{}%'">
|
275
|
+
</div>
|
271
276
|
<div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
|
272
277
|
<label class="font_normal_body">距上次安检天数</label>
|
273
278
|
<input type="number" class="input_search" v-model="model.f_check_date"
|
@@ -34,7 +34,7 @@
|
|
34
34
|
progress="safeGetExportProgress"
|
35
35
|
sqlurl="api/af-safecheck/logic/exportfile" sql-name="defectDetails" template-name='隐患处置'></export-excel>
|
36
36
|
<button style="margin-left: 4px" class="button_search button_spacing" @click="$parent.$parent.showaudio()" v-if="$parent.$parent.audioshow">隐藏</button>
|
37
|
-
<button style="margin-left: 4px" class="button_search button_spacing" @click="$parent.$parent.toRepair" v-if="$parent.$parent.canToRepair == '是'">转维修</button>
|
37
|
+
<button style="margin-left: 4px" class="button_search button_spacing" @click="$parent.$parent.toRepair()" v-if="$parent.$parent.canToRepair == '是'">转维修</button>
|
38
38
|
<button style="margin-left: 4px" class="button_search button_spacing" @click="search()">查询</button>
|
39
39
|
<div
|
40
40
|
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
@@ -985,6 +985,7 @@
|
|
985
985
|
selfSearch(args) {
|
986
986
|
////tag
|
987
987
|
// args.condition += ` and f_is_repaired = '未处理'`
|
988
|
+
args.condition += ` and f_filialeid='${this.$login.f.orgid}'`
|
988
989
|
this.model.search(args.condition, args.model, args.condValue)
|
989
990
|
}
|
990
991
|
},
|
@@ -0,0 +1,98 @@
|
|
1
|
+
<template>
|
2
|
+
<div>
|
3
|
+
<data-grid :model="onetomany" class="list_area table_sy">
|
4
|
+
<template partial='head'>
|
5
|
+
<tr>
|
6
|
+
<th class="textNoLineBreak">序号</th>
|
7
|
+
<th class="textNoLineBreak">材料名称</th>
|
8
|
+
<th class="textNoLineBreak">规格、型号</th>
|
9
|
+
<th class="textNoLineBreak">单价</th>
|
10
|
+
<th class="textNoLineBreak">数量</th>
|
11
|
+
<th class="textNoLineBreak">金额</th>
|
12
|
+
<th class="textNoLineBreak">操作人</th>
|
13
|
+
<th class="textNoLineBreak">操作时间</th>
|
14
|
+
<th class="textNoLineBreak">备注</th>
|
15
|
+
</tr>
|
16
|
+
</template>
|
17
|
+
<template partial='body'>
|
18
|
+
<tr>
|
19
|
+
<td style="text-align: center;">
|
20
|
+
<nobr>{{$index+1}}</nobr>
|
21
|
+
</td>
|
22
|
+
<td style="text-align: center;">
|
23
|
+
<nobr>{{row.f_material_name}}</nobr>
|
24
|
+
</td>
|
25
|
+
<td style="text-align: center;">
|
26
|
+
<nobr>{{row.f_typenumber}}</nobr>
|
27
|
+
</td>
|
28
|
+
|
29
|
+
<td style="text-align: center;">
|
30
|
+
<nobr>{{row.f_material_price}}</nobr>
|
31
|
+
</td>
|
32
|
+
<td style="text-align: center;">
|
33
|
+
<nobr>{{row.f_material_number}}</nobr>
|
34
|
+
</td>
|
35
|
+
<td style="text-align: center;">
|
36
|
+
<nobr>{{row.f_fee}}</nobr>
|
37
|
+
</td>
|
38
|
+
<td style="text-align: center;">
|
39
|
+
<nobr>{{row.f_operator}}</nobr>
|
40
|
+
</td>
|
41
|
+
<td style="text-align: center;">
|
42
|
+
<nobr>{{row.f_date}}</nobr>
|
43
|
+
</td>
|
44
|
+
<td style="text-align: center;">
|
45
|
+
<nobr>{{row.f_remarks}}</nobr>
|
46
|
+
</td>
|
47
|
+
</tr>
|
48
|
+
</template>
|
49
|
+
</data-grid>
|
50
|
+
</div>
|
51
|
+
</template>
|
52
|
+
|
53
|
+
<script>
|
54
|
+
import {HttpResetClass} from 'vue-client'
|
55
|
+
export default {
|
56
|
+
name: '隐患明细材料查看',
|
57
|
+
props: {
|
58
|
+
selectdata: {
|
59
|
+
type: Object
|
60
|
+
}
|
61
|
+
},
|
62
|
+
data () {
|
63
|
+
return {
|
64
|
+
onetomany: {
|
65
|
+
rows: []
|
66
|
+
}
|
67
|
+
}
|
68
|
+
},
|
69
|
+
ready(){
|
70
|
+
this.getOnetoManyData()
|
71
|
+
},
|
72
|
+
methods: {
|
73
|
+
/*获取工单收费添加的材料*/
|
74
|
+
async getOnetoManyData () {
|
75
|
+
let http = new HttpResetClass()
|
76
|
+
let data = {
|
77
|
+
items: '*',
|
78
|
+
tablename: 't_material_service',
|
79
|
+
condition: `f_process_id = '${this.selectdata.f_defect_id}'`,
|
80
|
+
orderitem: 'id'
|
81
|
+
}
|
82
|
+
http.load('post', 'api/af-safecheck/sql/safe_singleTable_OrderBy', {data: data}, {
|
83
|
+
resolveMsg: null,
|
84
|
+
rejectMsg: '获取数据失败'
|
85
|
+
}).then(res => {
|
86
|
+
this.onetomany.rows = res.data
|
87
|
+
})
|
88
|
+
}
|
89
|
+
},
|
90
|
+
events: {
|
91
|
+
},
|
92
|
+
}
|
93
|
+
|
94
|
+
</script>
|
95
|
+
|
96
|
+
<style scoped>
|
97
|
+
|
98
|
+
</style>
|