safecheck-client 4.0.1-53 → 4.0.1-55

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "safecheck-client",
3
3
  "//": "主分支版本别乱升,测试包的版本直接发包(建议使用1.XX.XX-XXX格式作为测试包,不要频繁升级第三位版本号),别提交版本号。切了分支切记把主分支版本升了,保证主分支始终是最高版本!!!!!",
4
- "version": "4.0.1-53",
4
+ "version": "4.0.1-55",
5
5
  "description": "安检模块 前端组件",
6
6
  "author": "丁新 <417755458@qq.com>",
7
7
  "license": "ISC",
@@ -1,348 +1,348 @@
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:'*',
110
- tablename: 't_check_paper',
111
- condition: condition,
112
- orderitem: '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
- </ul>
143
- </div>
144
- </div>`
145
- },
146
- assemblyData(){
147
- let a2=[]
148
- for(let i=0;i<this.level1.length;i++){
149
- a2.push({
150
- lnglat: [this.level1[i].f_longitude, this.level1[i].f_latitude], //点标记位置
151
- name: '拒检',
152
- id:i,
153
- rowstr:this.level1[i]
154
- })
155
- }
156
- this.level1Mulchs.setData(a2);
157
- this.level1Mulchs.setMap(this.map);
158
-
159
- let a4=[]
160
- for(let p=0;p<this.level3.length;p++){
161
- if (this.level3[p].f_longitude&&this.level3[p].f_latitude){
162
- a4.push({
163
- lnglat: [this.level3[p].f_longitude, this.level3[p].f_latitude], //点标记位置
164
- name: '到访不遇',
165
- id:p,
166
- rowstr:this.level3[p]
167
- })
168
- }
169
- }
170
- this.level3Mulchs.setData(a4);
171
- this.level3Mulchs.setMap(this.map);
172
-
173
- let a5=[]
174
- for(let l=0;l<this.problems.length;l++){
175
- if (this.problems[l].f_longitude&&this.problems[l].f_latitude){
176
- a5.push({
177
- lnglat: [this.problems[l].f_longitude, this.problems[l].f_latitude], //点标记位置
178
- name: '正常',
179
- id:l,
180
- rowstr:this.problems[l]
181
- })
182
- }
183
- }
184
- this.problemsMulchs.setData(a5);
185
- this.problemsMulchs.setMap(this.map);
186
- },
187
- enableChange(vname,val){
188
- switch(vname){
189
- case 'level1':
190
- if(val){
191
- this.level1Mulchs.show()
192
- }else{
193
- this.level1Mulchs.hide()
194
- }
195
- break;
196
- case 'level3':
197
- if(val){
198
- this.level3Mulchs.show()
199
- }else{
200
- this.level3Mulchs.hide()
201
- }
202
- break;
203
- case 'problems':
204
- if(val){
205
- this.problemsMulchs.show()
206
- }else{
207
- this.problemsMulchs.hide()
208
- }
209
- break;
210
- default:
211
- }
212
- },
213
- initMap(){
214
- let that=this
215
- this.map = new AMap.Map('check_map', {
216
- zoom: 12,
217
- viewMode: '2D',
218
- lang: 'zh_cn',
219
- zindex: 99
220
- });
221
- AMap.plugin(
222
- ['AMap.ToolBar','AMap.Geolocation'], () => {
223
- var geolocation = new AMap.Geolocation({
224
- enableHighAccuracy: true,
225
- showbutton: true,
226
- timeout: 10000,
227
- buttonOffset: new AMap.Pixel(10, 20),
228
- buttonPosition: 'LB'
229
- })
230
- that.map.addControl(geolocation)
231
- geolocation.getCurrentPosition();
232
- that.map.addControl(new AMap.ToolBar())
233
- });
234
- this.map.setDefaultCursor('move');
235
- this.infoWindow = new AMap.InfoWindow({
236
- anchor: 'bottom-center',
237
- autoMove:true,
238
- content: '',
239
- offset: new AMap.Pixel(0, -25)
240
- })
241
-
242
- this.level1Mulchs=new AMap.MassMarks([], {
243
- opacity: 0.8,
244
- zIndex: 111,
245
- cursor: 'pointer',
246
- style: this.styleObject[0]
247
- });
248
- this.level1Mulchs.on('click',function (e) {
249
- let defectContent=that.getDefectContent(e.data.rowstr)
250
- that.infoWindow.setContent(defectContent)
251
- that.infoWindow.open(that.map, e.data.lnglat);
252
- })
253
- this.level3Mulchs=new AMap.MassMarks([], {
254
- opacity: 0.8,
255
- zIndex: 111,
256
- cursor: 'pointer',
257
- style: this.styleObject[1]
258
- });
259
- this.level3Mulchs.on('click',function (e) {
260
- let defectContent=that.getDefectContent(e.data.rowstr)
261
- that.infoWindow.setContent(defectContent)
262
- that.infoWindow.open(that.map, e.data.lnglat);
263
- })
264
- this.problemsMulchs=new AMap.MassMarks([], {
265
- opacity: 0.8,
266
- zIndex: 111,
267
- cursor: 'pointer',
268
- style: this.styleObject[2]
269
- });
270
- this.problemsMulchs.on('click',function (e) {
271
- let defectContent=that.getDefectContent(e.data.rowstr)
272
- that.infoWindow.setContent(defectContent)
273
- that.infoWindow.open(that.map, e.data.lnglat);
274
- })
275
- },
276
- async safeRefresh(){
277
- let condition =`f_longitude is not null and f_latitude is not null`
278
- if (this.f_check_start){
279
- condition += ` and f_offsite_time >= '${this.f_check_start} 00:00:00'`
280
- }
281
- if (this.f_check_end){
282
- condition += ` and f_offsite_time <= '${this.f_check_end} 23:59:59'`
283
- }
284
- await this.getNewData(condition)
285
- this.assemblyData()
286
- }
287
- },
288
- destroyed() {
289
- window.clearInterval(this.intervalNum)
290
- }
291
- }
292
- </script>
293
-
294
- <style lang="less" scoped>
295
-
296
- .time-picker-container {
297
- display: flex;
298
- align-items: center;
299
- }
300
-
301
- .time-picker-container /deep/ .v-datepicker {
302
- width: 100% !important;
303
- }
304
-
305
- .date-separator {
306
- padding: 0 5px;
307
- }
308
-
309
- .safe_checkbox_sty{
310
- vertical-align:text-bottom;
311
- margin-right: 3px;
312
-
313
- }
314
- .safe_ul_sty{
315
- list-style-type: none;
316
- font-size: 13px;
317
- padding-left: 5px;
318
- }
319
- .safe_li_sty{
320
- font-size: 13px;
321
- margin-top: 5px;
322
- }
323
- .safe_p{
324
- white-space: nowrap;
325
- overflow: hidden;
326
- text-overflow: ellipsis;
327
- margin: 0 0 0 10px;
328
-
329
- font-size: 12px;
330
- }
331
- .safe_list_li{
332
- margin-top: 5px;
333
- background-color: #ffffff;
334
- border: solid 1px #f0f4fa !important;
335
- color: #666666 !important;
336
- font-size: 1.3rem !important;
337
- font-family: PINGFANG-MEDIUM !important;
338
- padding: 8px;
339
- }
340
- .safe_list_li:hover{
341
- background-color: rgb(203,234,241);
342
- }
343
- .safe_deimg{
344
- vertical-align: text-bottom;
345
- width: 15px;
346
- margin-right: 3px;
347
- }
348
- </style>
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:'*',
110
+ tablename: 't_check_paper',
111
+ condition: condition,
112
+ orderitem: '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
+ </ul>
143
+ </div>
144
+ </div>`
145
+ },
146
+ assemblyData(){
147
+ let a2=[]
148
+ for(let i=0;i<this.level1.length;i++){
149
+ a2.push({
150
+ lnglat: [this.level1[i].f_longitude, this.level1[i].f_latitude], //点标记位置
151
+ name: '拒检',
152
+ id:i,
153
+ rowstr:this.level1[i]
154
+ })
155
+ }
156
+ this.level1Mulchs.setData(a2);
157
+ this.level1Mulchs.setMap(this.map);
158
+
159
+ let a4=[]
160
+ for(let p=0;p<this.level3.length;p++){
161
+ if (this.level3[p].f_longitude&&this.level3[p].f_latitude){
162
+ a4.push({
163
+ lnglat: [this.level3[p].f_longitude, this.level3[p].f_latitude], //点标记位置
164
+ name: '到访不遇',
165
+ id:p,
166
+ rowstr:this.level3[p]
167
+ })
168
+ }
169
+ }
170
+ this.level3Mulchs.setData(a4);
171
+ this.level3Mulchs.setMap(this.map);
172
+
173
+ let a5=[]
174
+ for(let l=0;l<this.problems.length;l++){
175
+ if (this.problems[l].f_longitude&&this.problems[l].f_latitude){
176
+ a5.push({
177
+ lnglat: [this.problems[l].f_longitude, this.problems[l].f_latitude], //点标记位置
178
+ name: '正常',
179
+ id:l,
180
+ rowstr:this.problems[l]
181
+ })
182
+ }
183
+ }
184
+ this.problemsMulchs.setData(a5);
185
+ this.problemsMulchs.setMap(this.map);
186
+ },
187
+ enableChange(vname,val){
188
+ switch(vname){
189
+ case 'level1':
190
+ if(val){
191
+ this.level1Mulchs.show()
192
+ }else{
193
+ this.level1Mulchs.hide()
194
+ }
195
+ break;
196
+ case 'level3':
197
+ if(val){
198
+ this.level3Mulchs.show()
199
+ }else{
200
+ this.level3Mulchs.hide()
201
+ }
202
+ break;
203
+ case 'problems':
204
+ if(val){
205
+ this.problemsMulchs.show()
206
+ }else{
207
+ this.problemsMulchs.hide()
208
+ }
209
+ break;
210
+ default:
211
+ }
212
+ },
213
+ initMap(){
214
+ let that=this
215
+ this.map = new AMap.Map('check_map', {
216
+ zoom: 17,
217
+ viewMode: '2D',
218
+ lang: 'zh_cn',
219
+ zindex: 99
220
+ });
221
+ AMap.plugin(
222
+ ['AMap.ToolBar','AMap.Geolocation'], () => {
223
+ var geolocation = new AMap.Geolocation({
224
+ enableHighAccuracy: true,
225
+ showbutton: true,
226
+ timeout: 10000,
227
+ buttonOffset: new AMap.Pixel(10, 20),
228
+ buttonPosition: 'LB'
229
+ })
230
+ that.map.addControl(geolocation)
231
+ geolocation.getCurrentPosition();
232
+ that.map.addControl(new AMap.ToolBar())
233
+ });
234
+ this.map.setDefaultCursor('move');
235
+ this.infoWindow = new AMap.InfoWindow({
236
+ anchor: 'bottom-center',
237
+ autoMove:true,
238
+ content: '',
239
+ offset: new AMap.Pixel(0, -25)
240
+ })
241
+
242
+ this.level1Mulchs=new AMap.MassMarks([], {
243
+ opacity: 0.8,
244
+ zIndex: 111,
245
+ cursor: 'pointer',
246
+ style: this.styleObject[0]
247
+ });
248
+ this.level1Mulchs.on('click',function (e) {
249
+ let defectContent=that.getDefectContent(e.data.rowstr)
250
+ that.infoWindow.setContent(defectContent)
251
+ that.infoWindow.open(that.map, e.data.lnglat);
252
+ })
253
+ this.level3Mulchs=new AMap.MassMarks([], {
254
+ opacity: 0.8,
255
+ zIndex: 111,
256
+ cursor: 'pointer',
257
+ style: this.styleObject[1]
258
+ });
259
+ this.level3Mulchs.on('click',function (e) {
260
+ let defectContent=that.getDefectContent(e.data.rowstr)
261
+ that.infoWindow.setContent(defectContent)
262
+ that.infoWindow.open(that.map, e.data.lnglat);
263
+ })
264
+ this.problemsMulchs=new AMap.MassMarks([], {
265
+ opacity: 0.8,
266
+ zIndex: 111,
267
+ cursor: 'pointer',
268
+ style: this.styleObject[2]
269
+ });
270
+ this.problemsMulchs.on('click',function (e) {
271
+ let defectContent=that.getDefectContent(e.data.rowstr)
272
+ that.infoWindow.setContent(defectContent)
273
+ that.infoWindow.open(that.map, e.data.lnglat);
274
+ })
275
+ },
276
+ async safeRefresh(){
277
+ let condition =`f_longitude is not null and f_latitude is not null`
278
+ if (this.f_check_start){
279
+ condition += ` and f_offsite_time >= '${this.f_check_start} 00:00:00'`
280
+ }
281
+ if (this.f_check_end){
282
+ condition += ` and f_offsite_time <= '${this.f_check_end} 23:59:59'`
283
+ }
284
+ await this.getNewData(condition)
285
+ this.assemblyData()
286
+ }
287
+ },
288
+ destroyed() {
289
+ window.clearInterval(this.intervalNum)
290
+ }
291
+ }
292
+ </script>
293
+
294
+ <style lang="less" scoped>
295
+
296
+ .time-picker-container {
297
+ display: flex;
298
+ align-items: center;
299
+ }
300
+
301
+ .time-picker-container /deep/ .v-datepicker {
302
+ width: 100% !important;
303
+ }
304
+
305
+ .date-separator {
306
+ padding: 0 5px;
307
+ }
308
+
309
+ .safe_checkbox_sty{
310
+ vertical-align:text-bottom;
311
+ margin-right: 3px;
312
+
313
+ }
314
+ .safe_ul_sty{
315
+ list-style-type: none;
316
+ font-size: 13px;
317
+ padding-left: 5px;
318
+ }
319
+ .safe_li_sty{
320
+ font-size: 13px;
321
+ margin-top: 5px;
322
+ }
323
+ .safe_p{
324
+ white-space: nowrap;
325
+ overflow: hidden;
326
+ text-overflow: ellipsis;
327
+ margin: 0 0 0 10px;
328
+
329
+ font-size: 12px;
330
+ }
331
+ .safe_list_li{
332
+ margin-top: 5px;
333
+ background-color: #ffffff;
334
+ border: solid 1px #f0f4fa !important;
335
+ color: #666666 !important;
336
+ font-size: 1.3rem !important;
337
+ font-family: PINGFANG-MEDIUM !important;
338
+ padding: 8px;
339
+ }
340
+ .safe_list_li:hover{
341
+ background-color: rgb(203,234,241);
342
+ }
343
+ .safe_deimg{
344
+ vertical-align: text-bottom;
345
+ width: 15px;
346
+ margin-right: 3px;
347
+ }
348
+ </style>
@@ -1,133 +1,132 @@
1
- <template>
2
- <div style="height: 100%;width: 100%;padding:10px 0px 10px 0px;">
3
- <div class="auto">
4
- <partial-view v-ref:pv>
5
- <div class="row text-left" style="padding-bottom: 10px">
6
- <label class="col-sm-3 control-label">用户编号:</label>
7
- <span class="col-sm-9">{{ rowdata.f_userinfo_code }}</span>
8
- </div>
9
- <div class="row text-left" style="padding-bottom: 10px">
10
- <label class="col-sm-3 control-label">用户姓名:</label>
11
- <span class="col-sm-9">{{ rowdata.f_user_name }}</span>
12
- </div>
13
- <div class="row text-left" style="padding-bottom: 10px">
14
- <label class="col-sm-3 control-label">用户类型:</label>
15
- <span class="col-sm-9">{{ rowdata.f_user_type }}</span>
16
- </div>
17
- <div class="row text-left" style="padding-bottom: 10px">
18
- <label class="col-sm-3 control-label">用户地址:</label>
19
- <span class="col-sm-9">{{ rowdata.f_address }}</span>
20
- </div>
21
- </partial-view>
22
- </div>
23
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
24
- <template partial='head'>
25
- <tr>
26
- <th>安检人</th>
27
- <!-- <th>安检开始时间</th>-->
28
- <th>安检结束时间</th>
29
- <th>安检上传时间</th>
30
- <th>安检状态</th>
31
- <!-- <th>隐患情况</th>-->
32
- <th>操作</th>
33
- </tr>
34
- </template>
35
- <template partial='body'>
36
- <tr style="text-align: center">
37
- <td style="text-align: center">{{ row.f_checker_name }}</td>
38
- <!-- <td>{{row.f_onsite_time}}</td>-->
39
- <td style="text-align: center">{{ row.f_offsite_time }}</td>
40
- <td style="text-align: center">{{ row.f_upload_date }}</td>
41
- <td style="text-align: center">{{ row.f_entry_status }}</td>
42
- <!-- <td>{{$parent.$parent.getDefect(row.f_defect_content)}}</td>-->
43
- <td style="text-align: center">
44
- <button class="button_spacing button_search-1" @click='$parent.$parent.goDetail(row)'>查看</button>
45
- </td>
46
- </tr>
47
- </template>
48
- </data-grid>
49
- </div>
50
- </template>
51
-
52
- <script>
53
- import {PagedList} from 'vue-client'
54
- import Vue from "vue";
55
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
56
- import {isEmpty} from "../Util";
57
-
58
- let asyncReady = async function (self) {
59
- // 获取配置信息
60
- try {
61
- let res = await new HttpResetClass().load('get','/api/af-safecheck/vue',null, {resolveMsg: null, rejectMsg: null})
62
- self.delConfigKey(res.data)
63
- Vue.config.safecheck=res.data
64
- console.log('获取配置结果===', res.data)
65
- } catch (error) {
66
- // 忽略704,文件找不到异常R
67
- if (error.status !== 704) {
68
- throw error
69
- }
70
- }
71
- }
72
-
73
- export default {
74
- title: '安检记录列表',
75
- props: ['row'],
76
- data() {
77
- return {
78
- rowdata: this.row,
79
- model: new PagedList('api/af-safecheck/sql/查找安检单', 10, {
80
- f_filialeid: "''",
81
- f_plan_id: "''",
82
- f_approved: "''",
83
- f_entry_status: "''",
84
- f_no_checkplan: "''",
85
- orderitem: "'f_offsite_time desc'"
86
- })
87
- }
88
- },
89
- ready() {
90
- this.rowdata = this.row
91
- var condition =' 1=1 '
92
- if(!isEmpty(this.row.f_userinfo_id)){
93
- condition+= " and f_userinfoid = '" + this.row.f_userinfo_id + "'"
94
- }
95
- if (this.row.filialeCon){
96
- condition += ` and ${this.row.filialeCon}`
97
- }
98
- this.model.params.f_defect_content="CASE WHEN CHARINDEX( '\"result\":\"正常\"', f_defect_content ) > 0 THEN '无隐患' ELSE replace(replace(replace( replace( RIGHT ( f_defect_content, len( f_defect_content ) - 26 ), substring('{}',2,1), '' ), substring('{}',1,1), '' ),']',''),'\"','') END"
99
- this.model.search(condition)
100
- },
101
- watch: {
102
- 'row'(val) {
103
- if (val) {
104
- this.rowdata = val
105
- var condition = "f_userinfoid = '" + this.row.f_userinfo_id + "'"
106
- if (this.row.filialeCon){
107
- condition += ` and ${this.row.filialeCon}`
108
- }
109
- this.model.search(condition)
110
-
111
- }
112
- }
113
- },
114
- methods: {
115
- getDefect(val) {
116
- if (val) {
117
- try {
118
- var defect = JSON.parse(val)
119
- return defect.result
120
- } catch (e) {
121
- //tag
122
- return '正常'
123
- }
124
- }
125
- return '正常'
126
- },
127
- goDetail(row) {
128
- row.f_upload_state = '已传'
129
- this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
130
- }
131
- }
132
- }
133
- </script>
1
+ <template>
2
+ <div style="height: 100%;width: 100%;padding:10px 0px 10px 0px;">
3
+ <div class="auto">
4
+ <partial-view v-ref:pv>
5
+ <div class="row text-left" style="padding-bottom: 10px">
6
+ <label class="col-sm-3 control-label">用户编号:</label>
7
+ <span class="col-sm-9">{{ rowdata.f_userinfo_code }}</span>
8
+ </div>
9
+ <div class="row text-left" style="padding-bottom: 10px">
10
+ <label class="col-sm-3 control-label">用户姓名:</label>
11
+ <span class="col-sm-9">{{ rowdata.f_user_name }}</span>
12
+ </div>
13
+ <div class="row text-left" style="padding-bottom: 10px">
14
+ <label class="col-sm-3 control-label">用户类型:</label>
15
+ <span class="col-sm-9">{{ rowdata.f_user_type }}</span>
16
+ </div>
17
+ <div class="row text-left" style="padding-bottom: 10px">
18
+ <label class="col-sm-3 control-label">用户地址:</label>
19
+ <span class="col-sm-9">{{ rowdata.f_address }}</span>
20
+ </div>
21
+ </partial-view>
22
+ </div>
23
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
24
+ <template partial='head'>
25
+ <tr>
26
+ <th>安检人</th>
27
+ <!-- <th>安检开始时间</th>-->
28
+ <th>安检结束时间</th>
29
+ <th>安检上传时间</th>
30
+ <th>安检状态</th>
31
+ <!-- <th>隐患情况</th>-->
32
+ <th>操作</th>
33
+ </tr>
34
+ </template>
35
+ <template partial='body'>
36
+ <tr style="text-align: center">
37
+ <td style="text-align: center">{{ row.f_checker_name }}</td>
38
+ <!-- <td>{{row.f_onsite_time}}</td>-->
39
+ <td style="text-align: center">{{ row.f_offsite_time }}</td>
40
+ <td style="text-align: center">{{ row.f_upload_date }}</td>
41
+ <td style="text-align: center">{{ row.f_entry_status }}</td>
42
+ <!-- <td>{{$parent.$parent.getDefect(row.f_defect_content)}}</td>-->
43
+ <td style="text-align: center">
44
+ <button class="button_spacing button_search-1" @click='$parent.$parent.goDetail(row)'>查看</button>
45
+ </td>
46
+ </tr>
47
+ </template>
48
+ </data-grid>
49
+ </div>
50
+ </template>
51
+
52
+ <script>
53
+ import {PagedList} from 'vue-client'
54
+ import Vue from "vue";
55
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
56
+ import {isEmpty} from "../Util";
57
+
58
+ let asyncReady = async function (self) {
59
+ // 获取配置信息
60
+ try {
61
+ let res = await new HttpResetClass().load('get','/api/af-safecheck/vue',null, {resolveMsg: null, rejectMsg: null})
62
+ self.delConfigKey(res.data)
63
+ Vue.config.safecheck=res.data
64
+ console.log('获取配置结果===', res.data)
65
+ } catch (error) {
66
+ // 忽略704,文件找不到异常R
67
+ if (error.status !== 704) {
68
+ throw error
69
+ }
70
+ }
71
+ }
72
+
73
+ export default {
74
+ title: '安检记录列表',
75
+ props: ['row'],
76
+ data() {
77
+ return {
78
+ rowdata: this.row,
79
+ model: new PagedList('api/af-safecheck/sql/查找安检单', 10, {
80
+ f_filialeid: "''",
81
+ f_plan_id: "''",
82
+ f_approved: "''",
83
+ f_entry_status: "''",
84
+ f_no_checkplan: "''",
85
+ orderitem: "'f_offsite_time desc'"
86
+ })
87
+ }
88
+ },
89
+ ready() {
90
+ this.rowdata = this.row
91
+ var condition =' 1=1 '
92
+ if(!isEmpty(this.row.f_userinfo_id)){
93
+ condition+= " and f_userinfoid = '" + this.row.f_userinfo_id + "'"
94
+ }
95
+ if (this.row.filialeCon){
96
+ condition += ` and ${this.row.filialeCon}`
97
+ }
98
+ this.model.params.f_defect_content="CASE WHEN CHARINDEX( '\"result\":\"正常\"', f_defect_content ) > 0 THEN '无隐患' ELSE replace(replace(replace( replace( RIGHT ( f_defect_content, len( f_defect_content ) - 26 ), substring('{}',2,1), '' ), substring('{}',1,1), '' ),']',''),'\"','') END"
99
+ this.model.search(condition)
100
+ },
101
+ watch: {
102
+ 'row'(val) {
103
+ if (val) {
104
+ this.rowdata = val
105
+ var condition = "f_userinfoid = '" + this.row.f_userinfo_id + "'"
106
+ if (this.row.filialeCon){
107
+ condition += ` and ${this.row.filialeCon}`
108
+ }
109
+ this.model.search(condition)
110
+
111
+ }
112
+ }
113
+ },
114
+ methods: {
115
+ getDefect(val) {
116
+ if (val) {
117
+ try {
118
+ var defect = JSON.parse(val)
119
+ return defect.result
120
+ } catch (e) {
121
+ //tag
122
+ return '正常'
123
+ }
124
+ }
125
+ return '正常'
126
+ },
127
+ goDetail(row) {
128
+ this.$emit('showcheckpaper',row)
129
+ }
130
+ }
131
+ }
132
+ </script>
@@ -1,74 +1,100 @@
1
- <template>
2
- <!--安检综合查询主界面-->
3
- <div id="unit" class="flex-row" :class="{'binary':showItem}">
4
- <div :class="{'basic-main':!showItem,'binary-left':showItem}">
5
- <!--展示查询界面-->
6
- <check-search-user class="flex" :tempval="hidden" :style="style" :style2="style2" @select-changed="selected"
7
- @filiale-change="filialeChange"
8
- @canel-main="close" v-ref:checksearch></check-search-user>
9
- </div>
10
- <div class="binary-right" v-show="showItem">
11
- <div class="flex">
12
- <check-paper-list style="height: 100%" :row="rowData"></check-paper-list>
13
- </div>
14
- </div>
15
- </div>
16
-
17
- </template>
18
-
19
- <script>
20
-
21
- export default {
22
- title: '用户安检情况',
23
- name: 'CheckPaperSearchUser',
24
- data() {
25
- return {
26
- style: 'col-sm-2 form-group',
27
- style2: 'col-sm-4 form-group',
28
- hidden: true,
29
- barwidth: '100%',
30
- showItem: false,
31
- rowData: {},
32
- filialeCon: ''
33
- }
34
- },
35
- methods: {
36
- show() {
37
- this.showItem = this.showItem ? false : true
38
- },
39
- selected(row) {
40
- if (row.val && this.filialeCon){
41
- row.val.filialeCon = this.filialeCon
42
- }
43
- this.showItem = true
44
- this.barwidth = '50%'
45
- this.rowData = row.val
46
- this.hidden = false
47
- //tag
48
- },
49
- filialeChange(filialeCon){
50
- this.filialeCon = filialeCon
51
- },
52
- close() {
53
- this.showItem = false
54
- this.barwidth = '100%'
55
- this.hidden = true
56
- }
57
- },
58
- watch: {
59
- 'showItem'(val) {
60
- //tag
61
- //tag
62
- if (val) {
63
- this.style = 'col-sm-3 form-group'
64
- this.style2 = 'col-sm-6 form-group'
65
- } else {
66
- this.style = 'col-sm-2 form-group'
67
- this.style2 = 'col-sm-4 form-group'
68
- }
69
- }
70
- }
71
- }
72
-
73
- </script>
74
-
1
+ <template>
2
+ <!--安检综合查询主界面-->
3
+ <div id="unit" class="flex-row" :class="{'binary':showItem}">
4
+ <div :class="{'basic-main':!showItem,'binary-left':showItem}">
5
+ <!--展示查询界面-->
6
+ <check-search-user class="flex" :tempval="hidden" :style="style" :style2="style2" @select-changed="selected"
7
+ @filiale-change="filialeChange"
8
+ @canel-main="close" v-ref:checksearch></check-search-user>
9
+ </div>
10
+ <div class="binary-right" v-show="showItem">
11
+ <div class="flex">
12
+ <check-paper-list style="height: 100%" :row="rowData" v-on:showcheckpaper="checkpapershow"></check-paper-list>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ <new-check-paper v-if="showinfo2" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback1"></new-check-paper>
17
+ <new-check-paper-temp v-if="showinfo3" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback2"></new-check-paper-temp>
18
+ </template>
19
+
20
+ <script>
21
+
22
+ export default {
23
+ title: '用户安检情况',
24
+ name: 'CheckPaperSearchUser',
25
+ data() {
26
+ return {
27
+ style: 'col-sm-2 form-group',
28
+ style2: 'col-sm-4 form-group',
29
+ hidden: true,
30
+ barwidth: '100%',
31
+ showItem: false,
32
+ rowData: {},
33
+ filialeCon: '',
34
+ shouinfodata:{},
35
+ showinfo1:true,
36
+ showinfo2: false,
37
+ showinfo3:false
38
+
39
+ }
40
+ },
41
+ methods: {
42
+ showback1(){
43
+ this.showinfo1 = true
44
+ this.showinfo2 = false
45
+ },
46
+ showback2(){
47
+ this.showinfo1 = true
48
+ this.showinfo3 = false
49
+ },
50
+ checkpapershow(val){
51
+ val.f_upload_state = '已传'
52
+ this.shouinfodata = JSON.parse(JSON.stringify(val))
53
+ this.showinfo1 = false
54
+ if (val.f_safe_type == '已挂表未办卡安检'){
55
+ this.showinfo2 = false
56
+ this.showinfo3 = true
57
+ return
58
+ }
59
+ this.showinfo2 = true
60
+ this.showinfo3 = false
61
+ },
62
+ show() {
63
+ this.showItem = this.showItem ? false : true
64
+ },
65
+ selected(row) {
66
+ if (row.val && this.filialeCon){
67
+ row.val.filialeCon = this.filialeCon
68
+ }
69
+ this.showItem = true
70
+ this.barwidth = '50%'
71
+ this.rowData = row.val
72
+ this.hidden = false
73
+ //tag
74
+ },
75
+ filialeChange(filialeCon){
76
+ this.filialeCon = filialeCon
77
+ },
78
+ close() {
79
+ this.showItem = false
80
+ this.barwidth = '100%'
81
+ this.hidden = true
82
+ }
83
+ },
84
+ watch: {
85
+ 'showItem'(val) {
86
+ //tag
87
+ //tag
88
+ if (val) {
89
+ this.style = 'col-sm-3 form-group'
90
+ this.style2 = 'col-sm-6 form-group'
91
+ } else {
92
+ this.style = 'col-sm-2 form-group'
93
+ this.style2 = 'col-sm-4 form-group'
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ </script>
100
+