safecheck-client 4.0.2-3 → 4.0.2-30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/package.json +2 -2
  2. package/src/components/android/week/CheckResultSimple.vue +222 -0
  3. package/src/components/android/week/FirstWeekCheck.vue +236 -0
  4. package/src/components/android/week/StepHeaderBar.vue +323 -0
  5. package/src/components/android/week/WeekCheck.vue +151 -0
  6. package/src/components/android/week/WeekCheckPaper.vue +151 -0
  7. package/src/components/checkplan/SelectCheckPlan.vue +39 -0
  8. package/src/components/paper/safetyledger.vue +194 -0
  9. package/src/components/pc/CheckBook.vue +1 -1
  10. package/src/components/planmanage/PlanManage.vue +902 -902
  11. package/src/components/planmanage/checkUserList.vue +1 -1
  12. package/src/components/querycheckpaper/CheckSearchUser.vue +2 -1
  13. package/src/components/report/CheckByPlan.vue +1 -1
  14. package/src/components/report/CheckPlanAreaList.vue +45 -2
  15. package/src/filiale/jinhong/android/CurrentCreate.vue +6 -3
  16. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +28 -3
  17. package/src/filiale/jinhong/pc/CheckBookList.vue +28 -18
  18. package/src/filiale/jinhong/pc/PaperList.vue +1 -1
  19. package/src/filiale/jinhong/pc/checkPlanList.vue +73 -24
  20. package/src/filiale/meihekou/android/CurrentCreate.vue +1038 -1038
  21. package/src/filiale/meihekou/android/SafecheckDevices.vue +6 -3
  22. package/src/filiale/meihekou/android/SafecheckOrderV.vue +9 -8
  23. package/src/filiale/meihekou/pc/CheckDetail.vue +208 -0
  24. package/src/filiale/meihekou/pc/CheckPlan.vue +52 -0
  25. package/src/filiale/meihekou/pc/CheckPlanAreaList.vue +504 -0
  26. package/src/filiale/meihekou/pc/SelectCheckPlan.vue +262 -0
  27. package/src/filiale/meihekou/pc.js +3 -0
  28. package/src/filiale/qingjian/pc/SecurityCheckCoordinates.vue +2 -2
  29. package/src/filiale/xinkang/android/SafecheckOrderV.vue +1 -1
  30. package/src/filiale/xinliansihui/pc/PaperList.vue +814 -0
  31. package/src/filiale/xinliansihui/pc/PaperVisitMain.vue +206 -0
  32. package/src/filiale/xinliansihui/pc.js +13 -0
  33. package/src/main.js +33 -33
  34. package/src/safecheck-android.js +10 -0
  35. package/src/safecheck.js +3 -0
@@ -632,9 +632,12 @@ export default {
632
632
  continue
633
633
  }
634
634
  let type = this.config[this.device.device].items[item].type
635
- let multiple = this.config[this.device.device].items[item].multiple?this.config[this.device.device].items[item].multiple:false
635
+ let multiple = false
636
+ if(this.config[this.device.device].items[item].multiple){
637
+ multiple = this.config[this.device.device].items[item].multiple === 'true' || this.config[this.device.device].items[item].multiple === true
638
+ }
636
639
  let options = this.config[this.device.device].items[item].options
637
- if ((this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') && item == this.f_items[n].f_item_name) {
640
+ if ((this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') && this.config[this.device.device].items[item].itemname == this.f_items[n].f_item_name) {
638
641
  for (let i in options) {
639
642
  if(typeof options[i]=='function'){
640
643
  continue
@@ -1043,7 +1046,7 @@ export default {
1043
1046
  verification_text:'',
1044
1047
  verification_state:'',// ai验证是否通过 npass(未通过)/pass(通过)
1045
1048
  f_is_defect: '',
1046
- multiple:this.config[this.device.device].items[item].multiple == true?this.config[this.device.device].items[item].multiple:false,
1049
+ multiple:this.config[this.device.device].items[item].multiple === 'true' || this.config[this.device.device].items[item].multiple == true?this.config[this.device.device].items[item].multiple:false,
1047
1050
  isshow:this.config[this.device.device].items[item].isshow == false?this.config[this.device.device].items[item].isshow:true,
1048
1051
  readonly: this.config[this.device.device].items[item].readonly == true?true:false,
1049
1052
  remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
@@ -876,16 +876,12 @@ export default {
876
876
  this.checkResult[f_device_type + '-' + f_item_name] = []
877
877
  }
878
878
  this.checkResult[f_device_type + '-' + f_item_name].push(f_item_value)
879
-
880
879
  }
881
-
882
880
  let f_selected = f_item_value
883
- if (!items.f_selected) {
881
+ if (!items.f_selected || !(items.f_selected instanceof Array)){
884
882
  items.f_selected = []
885
- items.f_selected.push(f_item_value)
886
- } else {
887
- items.f_selected.push(f_item_value)
888
883
  }
884
+ items.f_selected.push(f_item_value)
889
885
  }
890
886
  }
891
887
  }
@@ -994,6 +990,8 @@ export default {
994
990
  if (this.repairDefect.result != '正常') {
995
991
  return this.$showMessage('有隐患的处理方式为转维修,请点击转维修')
996
992
  }
993
+ //先临时保存
994
+ this.save('temp')
997
995
  this.save()
998
996
  },
999
997
  //将数据组装提出
@@ -1328,7 +1326,7 @@ export default {
1328
1326
  }
1329
1327
  if (jo.state == 'ok') {
1330
1328
  let res = JSON.parse(jo.result)
1331
- if (res.code == 200) {
1329
+ if (res.code == 200 || res.code == 310 || res.code == 311) {
1332
1330
  this.$set('data.f_paper_id', res.id)
1333
1331
  this.isStrat = false
1334
1332
  if (url != "") {
@@ -2186,9 +2184,12 @@ export default {
2186
2184
  }
2187
2185
  }
2188
2186
  }
2189
- if (item.f_items[i].f_item_value instanceof Array) {
2187
+ if (item.f_items[i].f_selected) {
2190
2188
  item.f_items[i].f_item_value = JSON.parse(item.f_items[i].f_selected)
2191
2189
  }
2190
+ if (item.f_items[i].f_item_lists.length > 0){
2191
+ item.f_items[i].f_item_value = item.f_items[i].f_item_lists[0].f_item_value
2192
+ }
2192
2193
  }
2193
2194
  for (let de in that.devices) {
2194
2195
  if (typeof that.devices[de] == 'function') {
@@ -0,0 +1,208 @@
1
+ <template>
2
+ <div>
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
+ <div partial>
6
+ <ul class="nav nav-tabs">
7
+ <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">安检计划项明细</a></li>
8
+ </ul>
9
+ <div class="row">
10
+ <div class="form-group col-sm-4" >
11
+ <label class="font_normal_body">安检状态</label>
12
+ <v-select style="width:60% "
13
+ class="select select_list"
14
+ :value.sync="$parent.$parent.f_state"
15
+ v-model="$parent.$parent.f_state"
16
+ :options='$parent.$parent.checkState'
17
+ placeholder='安检状态'
18
+ close-on-select
19
+ value-single
20
+ >
21
+ </v-select>
22
+ </div>
23
+ <div class="form-group col-sm-4" v-if="$parent.$parent.f_state=='未入户'" >
24
+ <v-select style="width:60% "
25
+ class="select select_list"
26
+ :value.sync="$parent.$parent.f_noruhu"
27
+ v-model="$parent.$parent.f_noruhu"
28
+ :options='$parent.$parent.noChecks'
29
+ placeholder='请选择状态'
30
+ :multiple="true"
31
+ >
32
+ </v-select>
33
+ </div>
34
+ <div class="form-group col-sm-4" >
35
+ <label class="font_normal_body">小区</label>
36
+ <input type="text" class="input_search"
37
+ v-model="$parent.$parent.f_residential_area"
38
+ style="width: 60%" placeholder="小区"
39
+ condition="f_residential_area like '%{}%'">
40
+ </div>
41
+ <div class="form-group col-sm-4" >
42
+ <label class="font_normal_body">楼号</label>
43
+ <input type="text" class="input_search"
44
+ v-model="$parent.$parent.f_building"
45
+ style="width: 60%" placeholder="楼号"
46
+ condition="f_building like '%{}%'">
47
+ </div>
48
+ <div class="form-group col-sm-4 button-range" >
49
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
50
+ <export-excel :data="$parent.$parent.exportParameter"
51
+ :field="$parent.$parent.excelHeaders"
52
+ sqlurl="api/af-safecheck/logic/exportfile" sql-name="planItem"
53
+ template-name='安检计划明细' :choose-col="true">
54
+ </export-excel>
55
+ <!--<export-excel-->
56
+ <!--:data="{condition: $parent.$parent.condition}"-->
57
+ <!--:field="$parent.$parent.getfield"-->
58
+ <!--sqlurl="api/af-safecheck/logic/saleExport" sql-name="getGasUser" :template-name="$parent.$parent.pricename+'气价使用人'"-->
59
+ <!--:choose-col="true"></export-excel>-->
60
+
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </criteria>
65
+ <data-grid :model="model" partial='list' class="table_sy">
66
+
67
+ <template partial='head'>
68
+ <tr>
69
+ <th><nobr>计划名称</nobr></th>
70
+ <th><nobr>用户编号</nobr></th>
71
+ <th><nobr>用户名称</nobr></th>
72
+ <th><nobr>小区名称</nobr></th>
73
+ <th><nobr>地址</nobr></th>
74
+ <th><nobr>安检状态</nobr></th>
75
+ <th><nobr>是否安检</nobr></th>
76
+ </tr>
77
+ </template>
78
+ <template partial='body'>
79
+ <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>
80
+ <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
81
+ <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
82
+ <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
83
+ <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
84
+ <td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
85
+ <td style="text-align: center"><nobr>{{row.f_state}}</nobr></td>
86
+ </template>
87
+ </data-grid>
88
+ </criteria-paged>
89
+ </div>
90
+ </template>
91
+
92
+ <script>
93
+ import { PagedList } from 'vue-client'
94
+
95
+ export default {
96
+ title: '安检计划项列表',
97
+ data () {
98
+ return {
99
+ model: new PagedList('api/af-safecheck/sql/planItemNew', 20),
100
+ checkState:[{label:'全部',value:''},{label:'入户',value:'入户'},{label:'未入户',value:'未入户'}],
101
+ noChecks:[{label:'未检',value:'未检'},{label:'到访不遇',value:'到访不遇'},{label:'拒检',value:'拒检'}],
102
+ excelHeaders: {
103
+ //用户编号 用户名称 用户电话 安检次数 用户类型 小区名称 地址 安检日期 安检状态 安检结果
104
+
105
+ 'f_userinfo_code': '用户编号',
106
+ 'f_user_name': '用户名称',
107
+ 'f_user_phone': '用户电话',
108
+ //'count_item':'安检次数',
109
+ 'f_user_type': '用户类型',
110
+ 'f_residential_area': '小区名称',
111
+ 'f_address':'地址',
112
+ 'f_last_check_date':'安检日期',
113
+ 'f_last_check_state': '安检状态',
114
+ 'f_state':'是否已检',
115
+ 'f_last_check_result':'安检结果'
116
+ },
117
+ area:[{label:'全部',value:''}],
118
+ f_state:'',
119
+ f_noruhu:'',
120
+ f_residential_area:'',
121
+ f_building:'',
122
+ }
123
+ },
124
+ props: [ 'check','checkstatus','checkstart','checkend' ],
125
+ watch: {
126
+ 'check' (val) {
127
+ debugger
128
+ let condition
129
+ condition = `f_checker='${this.check.f_checker}'`
130
+ if(this.checkstart){
131
+ condition+= `and f_last_check_date>='${this.checkstart}'`
132
+ }
133
+ if (this.checkend){
134
+ condition += `and f_last_check_date<='${this.f_endcheckend_time}'`
135
+ }
136
+ this.f_noruhu=[]
137
+ this.f_state=''
138
+ this.model.search(condition, {})
139
+
140
+ }
141
+ },
142
+
143
+ ready () {
144
+ if (this.check) {
145
+ let condition
146
+ condition = `f_checker='${this.check.f_checker}'`
147
+ if(this.checkstart){
148
+ condition += `and f_last_check_date>='${this.checkstart}'`
149
+ }
150
+ if (this.checkend){
151
+ condition += ` and f_last_check_date<='${this.f_end_tcheckendime}'`
152
+ }
153
+ this.model.search(condition, {})
154
+ }
155
+ },
156
+ methods:{
157
+ selfSearch(args){
158
+ if (this.check) {
159
+ args.condition = `f_checker='${this.check.f_checker}'`
160
+ if(this.checkstart){
161
+ args.condition+= `and f_last_check_date>='${this.checkstart}'`
162
+ }
163
+ if (this.checkend){
164
+ args.condition += `and f_last_check_date<='${this.checkend}'`
165
+ }
166
+ if( this.f_state){
167
+ if(this.f_state=='入户'){
168
+ args.condition=args.condition+" and i.f_state='已检' and f_last_check_state='入户'"
169
+ }else if(this.f_state=='未入户'){
170
+ if(this.f_noruhu && this.f_noruhu.length==1){
171
+ args.condition += this.f_noruhu[0]=='未检'?" and i.f_state='未检'":` and i.f_state='已检' and f_last_check_state='${this.f_noruhu[0]}'`
172
+ }else if(this.f_noruhu && this.f_noruhu.length==2){
173
+ if(this.f_noruhu.indexOf('未检')!=-1){
174
+ if(this.f_noruhu.indexOf('到访不遇')!=-1){
175
+ args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and f_last_check_state='到访不遇'))"
176
+ }else{
177
+ args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and f_last_check_state='拒检'))"
178
+ }
179
+ }else{
180
+ args.condition=args.condition+" and (i.f_state='已检' and (f_last_check_state='到访不遇' or f_last_check_state='拒检'))"
181
+ }
182
+ }else{
183
+ args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and (f_last_check_state='到访不遇' or f_last_check_state='拒检')))"
184
+ }
185
+
186
+ }
187
+
188
+ }
189
+ if (this.f_residential_area){
190
+ args.condition += ` and i.f_residential_area like'%${this.f_residential_area}%'`
191
+ }
192
+ if (this.f_building){
193
+ args.condition += ` and i.f_building='${this.f_building}'`
194
+ }
195
+ this.model.search(args.condition, args.model)
196
+ }
197
+ }
198
+ },
199
+ computed: {
200
+ // 导出到Excel的条件构造
201
+ exportParameter() {
202
+ return {
203
+ condition: this.$refs.paged.model.condition
204
+ }
205
+ }
206
+ },
207
+ }
208
+ </script>
@@ -0,0 +1,52 @@
1
+ <template>
2
+ <div id="unit" class="flex-row" :class="{'binary':showItem}">
3
+ <div :class="{'basic-main':!showItem,'binary-left':showItem}" >
4
+ <select-check-plan-new @select-changed="selected" :style="style" :style2="style2" v-ref:check></select-check-plan-new>
5
+ </div>
6
+ <div class="binary-right" v-show="showItem">
7
+ <div class="flex">
8
+ <check-detail v-if='$refs.check && $refs.check.selected' :check='$refs.check.selected' :checkstart="$refs.check.f_start_time" :checkend="$refs.check.f_end_time"
9
+ v-ref:detail></check-detail>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ </template>
14
+ <script>
15
+ import SelectCheckPlanNew from '../pc/SelectCheckPlan.vue'
16
+ import CheckDetail from '../pc/CheckDetail.vue'
17
+ export default {
18
+ title: '安检员考核',
19
+ props: ['f'],
20
+ components: {SelectCheckPlanNew, CheckDetail},
21
+ data() {
22
+ return {
23
+ showItem: false,
24
+ checkstatus: null,
25
+ style:'col-sm-2 form-group',
26
+ style2:'col-sm-4 form-group'
27
+ }
28
+ },
29
+ methods: {
30
+ selected(row) {
31
+ this.showItem = true
32
+ },
33
+ checkstatusChange(val){
34
+ this.checkstatus = val
35
+ }
36
+ }
37
+ }
38
+ </script>
39
+ <style>
40
+ .form-input-group label {
41
+ text-align: right;
42
+ width: auto;
43
+ }
44
+
45
+ .datapanel {
46
+ color: #333;
47
+ background-color: white;
48
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
49
+ padding: 5px 7px 5px 7px;
50
+ border-radius: 10px;
51
+ }
52
+ </style>