safecheck-client 3.0.35-2 → 3.0.35-21
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 +1 -1
- package/src/App.vue +31 -31
- package/src/components/Util/SafecheckUpload.vue +4 -0
- package/src/components/android/CivilCurrentCreate.vue +56 -41
- package/src/components/android/NoCivilCurrentCreate.vue +10 -0
- package/src/components/android/PhoneUpUserinfo.vue +25 -6
- package/src/components/android/examples/UserExamples.vue +136 -136
- package/src/components/pc/SecurityCheckLedger.vue +113 -0
- package/src/components/rongcheng/AddPlanItem.vue +1 -1
- package/src/components/rongcheng/AspiratedPaperFeedbackm.vue +4 -0
- package/src/components/rongcheng/AspiratedUserInfo.vue +407 -399
- package/src/components/rongcheng/SafecheckOrderV.vue +1 -1
- package/src/components/rongcheng/SafecheckUserInfo.vue +1005 -1005
- package/src/filiale/bayan/android/AddPlanItem.vue +22 -2
- package/src/filiale/bayan/android/CheckPlanDown.vue +2 -2
- package/src/filiale/bayan/android/CurrentCreate.vue +10 -0
- package/src/filiale/bayan/android/PaperFeedback.vue +1669 -1669
- package/src/filiale/bayan/android/PhoneUpUserinfo.vue +908 -905
- package/src/filiale/bayan/android/SafecheckOrderV.vue +76 -20
- package/src/filiale/bayan/android/SafecheckUserInfo.vue +4 -0
- package/src/filiale/bayan/pc/CheckPlanAreaList.vue +607 -601
- package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
- package/src/filiale/bayan/pc/NewCheckpaper.vue +1992 -1992
- package/src/filiale/bayan/pc/PaperList.vue +900 -900
- package/src/filiale/bayan/pc/PlanManage.vue +2 -0
- package/src/filiale/bayan/pc/SelectCheckPlan.vue +391 -391
- package/src/filiale/huaran/android/CheckPlanDown.vue +212 -0
- package/src/filiale/huaran/android.js +1 -0
- package/src/filiale/shanxian/android/AddPlanItem.vue +1 -1
- package/src/filiale/shanxian/android/SafecheckOrderV.vue +1 -1
- package/src/filiale/siyang/pc/checkUserList.vue +108 -133
- package/src/filiale/tongchuan/android/SafecheckDevices.vue +1207 -1207
- package/src/filiale/tongchuan/android/SafecheckOrderV.vue +3035 -3035
- package/src/filiale/tongchuan/pc/CheckSearchUser.vue +1045 -1053
- package/src/filiale/tongchuan/pc/checkUserList.vue +639 -639
- package/src/filiale/xilan/android/AddPlanItem.vue +4 -0
- package/src/filiale/xilan/android/CurrentCreate.vue +6 -2
- package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +642 -642
- package/src/main.js +33 -33
- package/src/safecheck.js +3 -0
@@ -1,136 +1,136 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="work-badge" style="height: 100%">
|
3
|
-
<div class="badge-top" style="height: 5%">
|
4
|
-
<div class="badge-number">NO.{{ f_head_code }}</div>
|
5
|
-
</div>
|
6
|
-
<div class="badge-middle" style="height: 80%">
|
7
|
-
<img class="badge-image" :src="f_head_pic" alt="Badge Image">
|
8
|
-
<h1 class="name">{{ f_head_name }}</h1>
|
9
|
-
<div class="white-line"></div>
|
10
|
-
<span class="position">{{ f_head_post }}</span>
|
11
|
-
</div>
|
12
|
-
<div class="badge-bottom" style="height: 10%">
|
13
|
-
<div class="contact">
|
14
|
-
<img class="phone-icon" src="../../../assets/123.png" style="height: 30px;width: 30px" alt="Phone Icon">
|
15
|
-
<span style="font-size: 30px;font-style: italic;">{{ f_head_phone }}</span>
|
16
|
-
</div>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
</template>
|
20
|
-
<script>
|
21
|
-
import {HttpResetClass} from "vue-client";
|
22
|
-
|
23
|
-
export default {
|
24
|
-
name: 'WorkBadge',
|
25
|
-
title:'WorkBadge',
|
26
|
-
data () {
|
27
|
-
return {
|
28
|
-
// 默认值或初始状态
|
29
|
-
f_head_pic: '',
|
30
|
-
f_head_code: '',
|
31
|
-
f_head_name: '',
|
32
|
-
f_head_post: '',
|
33
|
-
f_head_phone: ''
|
34
|
-
};
|
35
|
-
},
|
36
|
-
async ready () {
|
37
|
-
console.log(window.location.href)
|
38
|
-
let id = ''
|
39
|
-
let url = window.location.href
|
40
|
-
if (url.includes('id')){
|
41
|
-
const urlObj = new URL(url);
|
42
|
-
id = urlObj.searchParams.get('id');
|
43
|
-
let QRCode = await new HttpResetClass().load('post',`rs/sql/tel_singleTable_OrderBy`,{data: {
|
44
|
-
items: 'tqr.*,tf.f_downloadpath as url',
|
45
|
-
tablename: 't_qr_code tqr left join t_files tf on tf.f_businessid = tqr.id and f_table_name = \'t_qr_code\'',
|
46
|
-
condition: `f_head_code = '${id}'`,
|
47
|
-
orderitem: '1'
|
48
|
-
}},{resolveMsg: null,rejectMsg: null})
|
49
|
-
if (QRCode && QRCode.data && QRCode.data.length > 0){
|
50
|
-
if (QRCode.data[0].url){
|
51
|
-
this.f_head_pic = QRCode.data[0].url
|
52
|
-
}else {
|
53
|
-
this.f_head_pic = `/rs/image/file/${QRCode.data[0].f_head_pic}`
|
54
|
-
}
|
55
|
-
this.f_head_code = QRCode.data[0].f_userhead_code
|
56
|
-
this.f_head_name = QRCode.data[0].f_head_name
|
57
|
-
this.f_head_post = QRCode.data[0].f_head_post
|
58
|
-
this.f_head_phone = QRCode.data[0].f_head_phone
|
59
|
-
}else {
|
60
|
-
console.log('获取二维码信息失败')
|
61
|
-
console.log(QRCode)
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
65
|
-
};
|
66
|
-
</script>
|
67
|
-
<style scoped>
|
68
|
-
.white-line {
|
69
|
-
width: 65%;
|
70
|
-
height: 5px;
|
71
|
-
background-color: white;
|
72
|
-
margin: 10px 0 10px 17%;
|
73
|
-
}
|
74
|
-
.work-badge {
|
75
|
-
display: flex;
|
76
|
-
flex-direction: column;
|
77
|
-
background-image: url('../../../assets/f8632d3c8c4c1cb68e99da754cab1a7.png');
|
78
|
-
align-items: center;
|
79
|
-
background-color: #007BFF;
|
80
|
-
color: white;
|
81
|
-
padding: 20px;
|
82
|
-
}
|
83
|
-
|
84
|
-
.badge-top {
|
85
|
-
display: flex;
|
86
|
-
align-items: center;
|
87
|
-
justify-content: space-between;
|
88
|
-
width: 100%;
|
89
|
-
margin-bottom: 2%;
|
90
|
-
}
|
91
|
-
|
92
|
-
.badge-image {
|
93
|
-
border: 3px solid #fcfcfc;
|
94
|
-
width: 80%;
|
95
|
-
border-radius: 15px;
|
96
|
-
}
|
97
|
-
|
98
|
-
.badge-number {
|
99
|
-
font-size: 24px;
|
100
|
-
float: left;
|
101
|
-
text-align: left;
|
102
|
-
font-weight: bold;
|
103
|
-
}
|
104
|
-
|
105
|
-
.badge-middle {
|
106
|
-
text-align: center;
|
107
|
-
margin-bottom: 2%;
|
108
|
-
}
|
109
|
-
|
110
|
-
.name {
|
111
|
-
font-size: 50px;
|
112
|
-
font-weight: bold;
|
113
|
-
margin-bottom: 10px;
|
114
|
-
}
|
115
|
-
|
116
|
-
.position {
|
117
|
-
font-size: 24px;
|
118
|
-
}
|
119
|
-
|
120
|
-
.badge-bottom {
|
121
|
-
display: flex;
|
122
|
-
align-items: center;
|
123
|
-
justify-content: center;
|
124
|
-
}
|
125
|
-
|
126
|
-
.contact {
|
127
|
-
display: flex;
|
128
|
-
align-items: center;
|
129
|
-
}
|
130
|
-
|
131
|
-
.phone-icon {
|
132
|
-
width: 30px;
|
133
|
-
height: 30px;
|
134
|
-
margin-right: 10px;
|
135
|
-
}
|
136
|
-
</style>
|
1
|
+
<template>
|
2
|
+
<div class="work-badge" style="height: 100%">
|
3
|
+
<div class="badge-top" style="height: 5%">
|
4
|
+
<div class="badge-number">NO.{{ f_head_code }}</div>
|
5
|
+
</div>
|
6
|
+
<div class="badge-middle" style="height: 80%">
|
7
|
+
<img class="badge-image" :src="f_head_pic" alt="Badge Image">
|
8
|
+
<h1 class="name">{{ f_head_name }}</h1>
|
9
|
+
<div class="white-line"></div>
|
10
|
+
<span class="position">{{ f_head_post }}</span>
|
11
|
+
</div>
|
12
|
+
<div class="badge-bottom" style="height: 10%">
|
13
|
+
<div class="contact">
|
14
|
+
<img class="phone-icon" src="../../../assets/123.png" style="height: 30px;width: 30px" alt="Phone Icon">
|
15
|
+
<span style="font-size: 30px;font-style: italic;">{{ f_head_phone }}</span>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</template>
|
20
|
+
<script>
|
21
|
+
import {HttpResetClass} from "vue-client";
|
22
|
+
|
23
|
+
export default {
|
24
|
+
name: 'WorkBadge',
|
25
|
+
title:'WorkBadge',
|
26
|
+
data () {
|
27
|
+
return {
|
28
|
+
// 默认值或初始状态
|
29
|
+
f_head_pic: '',
|
30
|
+
f_head_code: '',
|
31
|
+
f_head_name: '',
|
32
|
+
f_head_post: '',
|
33
|
+
f_head_phone: ''
|
34
|
+
};
|
35
|
+
},
|
36
|
+
async ready () {
|
37
|
+
console.log(window.location.href)
|
38
|
+
let id = ''
|
39
|
+
let url = window.location.href
|
40
|
+
if (url.includes('id')){
|
41
|
+
const urlObj = new URL(url);
|
42
|
+
id = urlObj.searchParams.get('id');
|
43
|
+
let QRCode = await new HttpResetClass().load('post',`rs/sql/tel_singleTable_OrderBy`,{data: {
|
44
|
+
items: 'tqr.*,tf.f_downloadpath as url',
|
45
|
+
tablename: 't_qr_code tqr left join t_files tf on tf.f_businessid = tqr.id and f_table_name = \'t_qr_code\'',
|
46
|
+
condition: `f_head_code = '${id}'`,
|
47
|
+
orderitem: '1'
|
48
|
+
}},{resolveMsg: null,rejectMsg: null})
|
49
|
+
if (QRCode && QRCode.data && QRCode.data.length > 0){
|
50
|
+
if (QRCode.data[0].url){
|
51
|
+
this.f_head_pic = QRCode.data[0].url
|
52
|
+
}else {
|
53
|
+
this.f_head_pic = `/rs/image/file/${QRCode.data[0].f_head_pic}`
|
54
|
+
}
|
55
|
+
this.f_head_code = QRCode.data[0].f_userhead_code
|
56
|
+
this.f_head_name = QRCode.data[0].f_head_name
|
57
|
+
this.f_head_post = QRCode.data[0].f_head_post
|
58
|
+
this.f_head_phone = QRCode.data[0].f_head_phone
|
59
|
+
}else {
|
60
|
+
console.log('获取二维码信息失败')
|
61
|
+
console.log(QRCode)
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
};
|
66
|
+
</script>
|
67
|
+
<style scoped>
|
68
|
+
.white-line {
|
69
|
+
width: 65%;
|
70
|
+
height: 5px;
|
71
|
+
background-color: white;
|
72
|
+
margin: 10px 0 10px 17%;
|
73
|
+
}
|
74
|
+
.work-badge {
|
75
|
+
display: flex;
|
76
|
+
flex-direction: column;
|
77
|
+
background-image: url('../../../assets/f8632d3c8c4c1cb68e99da754cab1a7.png');
|
78
|
+
align-items: center;
|
79
|
+
background-color: #007BFF;
|
80
|
+
color: white;
|
81
|
+
padding: 20px;
|
82
|
+
}
|
83
|
+
|
84
|
+
.badge-top {
|
85
|
+
display: flex;
|
86
|
+
align-items: center;
|
87
|
+
justify-content: space-between;
|
88
|
+
width: 100%;
|
89
|
+
margin-bottom: 2%;
|
90
|
+
}
|
91
|
+
|
92
|
+
.badge-image {
|
93
|
+
border: 3px solid #fcfcfc;
|
94
|
+
width: 80%;
|
95
|
+
border-radius: 15px;
|
96
|
+
}
|
97
|
+
|
98
|
+
.badge-number {
|
99
|
+
font-size: 24px;
|
100
|
+
float: left;
|
101
|
+
text-align: left;
|
102
|
+
font-weight: bold;
|
103
|
+
}
|
104
|
+
|
105
|
+
.badge-middle {
|
106
|
+
text-align: center;
|
107
|
+
margin-bottom: 2%;
|
108
|
+
}
|
109
|
+
|
110
|
+
.name {
|
111
|
+
font-size: 50px;
|
112
|
+
font-weight: bold;
|
113
|
+
margin-bottom: 10px;
|
114
|
+
}
|
115
|
+
|
116
|
+
.position {
|
117
|
+
font-size: 24px;
|
118
|
+
}
|
119
|
+
|
120
|
+
.badge-bottom {
|
121
|
+
display: flex;
|
122
|
+
align-items: center;
|
123
|
+
justify-content: center;
|
124
|
+
}
|
125
|
+
|
126
|
+
.contact {
|
127
|
+
display: flex;
|
128
|
+
align-items: center;
|
129
|
+
}
|
130
|
+
|
131
|
+
.phone-icon {
|
132
|
+
width: 30px;
|
133
|
+
height: 30px;
|
134
|
+
margin-right: 10px;
|
135
|
+
}
|
136
|
+
</style>
|
@@ -0,0 +1,113 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="flex-row">
|
3
|
+
<div class="basic-main">
|
4
|
+
<criteria-paged :model="model" v-ref:paged>
|
5
|
+
<criteria partial='criteria' class="search_area" @condition-changed='$parent.selfSearch' v-ref:criteria>
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
7
|
+
<div class="row">
|
8
|
+
<div class="form-group col-sm-2" >
|
9
|
+
<label class="font_normal_body">小区名称</label>
|
10
|
+
<input type="text" class="input_search" v-model="model.f_residential_area"
|
11
|
+
style="width: 60%" placeholder="小区名称" condition="ta.f_residential_area like '%{}%'">
|
12
|
+
</div>
|
13
|
+
<div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
|
14
|
+
<export-excel-safe :data="$parent.$parent.searchData"
|
15
|
+
:field="$parent.$parent.excelHeaders"
|
16
|
+
:choose-col="true"
|
17
|
+
sqlurl="rs/logic/SafeExportExcel" sql-name="securityCheckLedger" template-name='安检台账'></export-excel-safe>
|
18
|
+
<button class="button_spacing button_search" @click="search()">查询</button>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</criteria>
|
23
|
+
<data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
|
24
|
+
<template partial='head'>
|
25
|
+
<tr>
|
26
|
+
<th>
|
27
|
+
<nobr>小区名称</nobr>
|
28
|
+
</th>
|
29
|
+
<th>
|
30
|
+
<nobr>小区用户数</nobr>
|
31
|
+
</th>
|
32
|
+
<th>
|
33
|
+
<nobr>所属计划</nobr>
|
34
|
+
</th>
|
35
|
+
<th>
|
36
|
+
<nobr>计划内用户数</nobr>
|
37
|
+
</th>
|
38
|
+
<th>
|
39
|
+
<nobr>计划下发时间</nobr>
|
40
|
+
</th>
|
41
|
+
<th>
|
42
|
+
<nobr>执行时间</nobr>
|
43
|
+
</th>
|
44
|
+
<th>
|
45
|
+
<nobr>执行周期</nobr>
|
46
|
+
</th>
|
47
|
+
<th>
|
48
|
+
<nobr>周期单位</nobr>
|
49
|
+
</th>
|
50
|
+
<th>
|
51
|
+
<nobr>距离下周期时间(天)</nobr>
|
52
|
+
</th>
|
53
|
+
</tr>
|
54
|
+
</template>
|
55
|
+
<template partial='body'>
|
56
|
+
<td style="text-align: center">{{row.f_residential_area}}</td>
|
57
|
+
<td style="text-align: center">{{row.area_num}}</td>
|
58
|
+
<td style="text-align: center">{{row.f_plan_name}}</td>
|
59
|
+
<td style="text-align: center">{{row.plan_num}}</td>
|
60
|
+
<td style="text-align: center">{{row.f_issue_time}}</td>
|
61
|
+
<td style="text-align: center">{{row.first_check_date}}</td>
|
62
|
+
<td style="text-align: center">{{row.zq_value}}</td>
|
63
|
+
<td style="text-align: center">{{row.dw_value}}</td>
|
64
|
+
<td style="text-align: center">{{row.difference_day}}</td>
|
65
|
+
</template>
|
66
|
+
</data-grid>
|
67
|
+
</criteria-paged>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
</template>
|
71
|
+
|
72
|
+
<script>
|
73
|
+
import {PagedList} from 'vue-client'
|
74
|
+
|
75
|
+
export default {
|
76
|
+
title: '安检台账',
|
77
|
+
data() {
|
78
|
+
return {
|
79
|
+
model: new PagedList('rs/sql/securityCheckLedger', 20),
|
80
|
+
searchData: {
|
81
|
+
condition: "1=1"
|
82
|
+
},
|
83
|
+
excelHeaders: {
|
84
|
+
'f_residential_area': '小区名称',
|
85
|
+
'area_num': '小区用户数',
|
86
|
+
'f_plan_name': '所属计划',
|
87
|
+
'plan_num': '计划内用户数',
|
88
|
+
'f_issue_time': '计划下发时间',
|
89
|
+
'first_check_date': '执行时间',
|
90
|
+
'zq_value': '执行周期',
|
91
|
+
'dw_value': '周期单位',
|
92
|
+
'difference_day': '距离下周期时间(天)'
|
93
|
+
}
|
94
|
+
}
|
95
|
+
},
|
96
|
+
methods: {
|
97
|
+
selfSearch(args) {
|
98
|
+
this.model.search(args.condition, args.model, args.condValue)
|
99
|
+
}
|
100
|
+
},
|
101
|
+
ready() {
|
102
|
+
|
103
|
+
},
|
104
|
+
watch: {
|
105
|
+
'model.condition'(val) {
|
106
|
+
if (val) {
|
107
|
+
this.searchData.condition = val
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
}
|
113
|
+
</script>
|
@@ -168,7 +168,7 @@
|
|
168
168
|
</div>
|
169
169
|
<div class="col-xs-12">
|
170
170
|
<p class="panel-title col-xs-5 text-left font"><b>隐患情况:</b></p>
|
171
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.
|
171
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_defect_text }}</p>
|
172
172
|
</div>
|
173
173
|
</div>
|
174
174
|
</div>
|
@@ -456,6 +456,10 @@
|
|
456
456
|
let temp = getFile.data[i].f_downloadpath
|
457
457
|
if (temp) {
|
458
458
|
let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
|
459
|
+
if (temp.startsWith('E:')){
|
460
|
+
URL = `rs/image/file/${getFile.data[i].f_filename}`
|
461
|
+
}
|
462
|
+
console.log(URL)
|
459
463
|
getFile.data[i].f_downloadURL = "http://" + location.host + "/" + URL
|
460
464
|
}
|
461
465
|
}
|