safecheck-client 3.0.34-9 → 3.0.34-91

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. package/package.json +1 -1
  2. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  3. package/src/assets/123.png +0 -0
  4. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  5. package/src/components/LoadData.vue +62 -0
  6. package/src/components/NewDefectList/DefectListNew.vue +1 -0
  7. package/src/components/android/AddPlanItemYy.vue +451 -0
  8. package/src/components/android/AndroidDefectDeal.vue +634 -634
  9. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  10. package/src/components/android/AreaSelect.vue +198 -0
  11. package/src/components/android/BuildingSelect.vue +192 -0
  12. package/src/components/android/CheckPlanSelect.vue +229 -0
  13. package/src/components/android/CurrentCreateYy.vue +1051 -0
  14. package/src/components/android/PaperFeedback.vue +33 -0
  15. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  16. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  17. package/src/components/android/SafecheckDevices.vue +2 -2
  18. package/src/components/android/SafecheckOrderV.vue +8 -12
  19. package/src/components/android/UserinfoSelect.vue +714 -0
  20. package/src/components/android/examples/410.png +0 -0
  21. package/src/components/android/examples/SafeListExamples.vue +283 -0
  22. package/src/components/android/examples/UserExamples.vue +137 -0
  23. package/src/components/android/examples/ViewDetailsExamples.vue +1235 -0
  24. package/src/components/android/examples/touxiang.png +0 -0
  25. package/src/components/pc/SafeVisitInfo.vue +261 -0
  26. package/src/components/rongcheng/AddPlanItem.vue +8 -0
  27. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  28. package/src/components/rongcheng/CheckSearchUser.vue +46 -16
  29. package/src/components/rongcheng/PaperStatem.vue +6 -1
  30. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  31. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  32. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  33. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  34. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  35. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  36. package/src/filiale/baiyin/android.js +1 -0
  37. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  38. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  39. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  40. package/src/filiale/bayan/android/AddPlanItem.vue +8 -0
  41. package/src/filiale/bayan/android/PaperFeedback.vue +63 -49
  42. package/src/filiale/bayan/android/PhoneUpUserinfo.vue +40 -40
  43. package/src/filiale/bayan/android/SafecheckOrderV.vue +58 -58
  44. package/src/filiale/bayan/android/SafecheckUserInfo.vue +5 -0
  45. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  46. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  47. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  48. package/src/filiale/huaran/android.js +12 -0
  49. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  50. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  51. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  52. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  53. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  54. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  55. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  56. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  57. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  58. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  59. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  60. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  61. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  62. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  63. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  64. package/src/filiale/huaran/pc.js +27 -0
  65. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  66. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  67. package/src/filiale/jiaxian/android/SafecheckDevices.vue +6 -6
  68. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  69. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  70. package/src/filiale/jiaxian/android.js +4 -0
  71. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  72. package/src/filiale/qianneng/android/SafecheckOrderV.vue +1 -1
  73. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  74. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  75. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  76. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  77. package/src/filiale/qingtongxia/android.js +4 -0
  78. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  79. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  80. package/src/filiale/ruihua/android.js +11 -0
  81. package/src/filiale/shanxian/android/SafecheckOrderV.vue +1 -1
  82. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  83. package/src/filiale/siyang/android/AddPlanItem.vue +450 -0
  84. package/src/filiale/siyang/android/AppCheckPlan.vue +246 -0
  85. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -0
  86. package/src/filiale/siyang/android.js +4 -0
  87. package/src/filiale/siyang/pc/CheckBookList.vue +396 -0
  88. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +667 -0
  89. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  90. package/src/filiale/siyang/pc/CheckSearchUser.vue +1035 -0
  91. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  92. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  93. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  94. package/src/filiale/siyang/pc.js +6 -0
  95. package/src/filiale/tongchuan/android/Select.vue +421 -0
  96. package/src/filiale/tongchuan/android.js +1 -0
  97. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  98. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  99. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  100. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  101. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  102. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  103. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  104. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  105. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  106. package/src/filiale/weinan/android/SafecheckOrderV.vue +6 -2
  107. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  108. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  109. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  110. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  111. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  112. package/src/filiale/weinan/pc.js +1 -0
  113. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -0
  114. package/src/filiale/wuan/android/SafecheckUserInfo.vue +4 -0
  115. package/src/filiale/xilan/android/AddPlanItem.vue +457 -0
  116. package/src/filiale/xilan/android/CurrentCreate.vue +1060 -0
  117. package/src/filiale/xilan/android.js +11 -0
  118. package/src/filiale/xilan/pc/checkUserList.vue +772 -0
  119. package/src/filiale/xilan/pc.js +12 -0
  120. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +10 -6
  121. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +21 -1
  122. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +23 -11
  123. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  124. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  125. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  126. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  127. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +84 -10
  128. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  129. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  130. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  131. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  132. package/src/safecheck-android.js +307 -296
  133. package/src/safecheck-page.js +12 -0
  134. package/src/safecheck.js +3 -0
@@ -0,0 +1,167 @@
1
+ <template>
2
+ <div id='app' class="basic-main" style="height: 100%">
3
+ <criteria-paged :model="model" :pager='false'>
4
+ <criteria partial='criteria' @condition-changed='$parent.search' class="search_area">
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="col-sm-4 form-group">
8
+ <role-selector-safe role-name="安检员" role-lable="安&ensp;检&ensp;员" @re-res="$parent.$parent.getRes"
9
+ :value.sync="model.f_checker_id" v-model="model.f_checker_id" condition="f_checker_name like '%{}%'">
10
+ </role-selector-safe>
11
+ </div>
12
+ <div class="col-sm-2 form-group">
13
+ <label for="startDate" class="font_normal_body">开始日期:</label>
14
+ <datepicker id="startDate" placeholder="开始日期" v-model="model.startDate" :value.sync="model.startDate"
15
+ style="width: 60%;" :disabled-days-of-Week="[]" :format="'yyyy-MM-dd 00:00:00'"
16
+ :show-reset-button="reset">
17
+ </datepicker>
18
+ </div>
19
+ <div class="col-sm-2 form-group">
20
+ <label for="endDate" class="font_normal_body">结束日期:</label>
21
+ <datepicker id="endDate" placeholder="结束日期" v-model="model.endDate" :value.sync="model.endDate"
22
+ :disabled-days-of-Week="[]" style="width: 60%;" :format="'yyyy-MM-dd 23:59:59'"
23
+ :show-reset-button="reset">
24
+ </datepicker>
25
+ </div>
26
+ <div class="col-sm-4 form-group" style="margin-top: 8px">
27
+ <button class="button_search button_spacing" @click="search()">查询</button>
28
+ <report-print class="button_export button_spacing" style="width:28%" id='shexian'></report-print>
29
+ <report-excel class="button_export button_spacing" style="width:28%" id='shexian'></report-excel>
30
+ </div>
31
+ </div>
32
+ <div class="row">
33
+ <div class="col-sm-2 form-group">
34
+ <label class="font_normal_body">用气性质</label>
35
+ <v-select class="select_list select" placeholder='用气性质' style="width: 60%" v-model='model.userType'
36
+ :value.sync="model.userType" :options='$parent.$parent.userTypes' condition="tuf.f_gasproperties in {} "
37
+ :multiple="true"></v-select>
38
+ </div>
39
+ <div class="col-sm-2 form-group">
40
+ <label class="font_normal_body">气表类型</label>
41
+ <v-select class="select_list select" placeholder='气表类型' style="width: 60%" v-model='model.tableType'
42
+ :value.sync="model.tableType" :options='$parent.$parent.tableTypes'
43
+ condition="tuf.f_meter_classify = '{}'" :value-single="true" close-on-select clear-button></v-select>
44
+ </div>
45
+ <div class="col-sm-2 form-group">
46
+ <label class="font_normal_body">气表品牌</label>
47
+ <v-select class="select_list select" placeholder='气表类型' style="width: 60%" v-model='model.tableBrand'
48
+ :value.sync="model.tableBrand" :options='$parent.$parent.tableBrands'
49
+ condition="gb.f_meter_brand = '{}'" :value-single="true" close-on-select clear-button></v-select>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </criteria>
54
+ <div partial='list' id='shexian' class="list_area" style="overflow-y: scroll">
55
+ <table class='tableprint' style="margin: 0px auto">
56
+ <thead>
57
+ <tr>
58
+ <th colspan='5' style="font-weight: normal; text-align: left;">
59
+ <h3 style="text-align: center">隐患报表</h3>
60
+ </th>
61
+ </tr>
62
+ <tr>
63
+ <th colspan='5' style="font-weight: normal; text-align: center;">
64
+ 隐患户数:{{ $parent.hiddenHouseholds }}&nbsp;&nbsp;&nbsp;
65
+ 隐患发生数:{{ $parent.hiddenNumber }}&nbsp;&nbsp;&nbsp;
66
+ 开始时间:{{ model.model.startDate }}&nbsp;&nbsp;&nbsp;
67
+ 结束时间:{{ model.model.endDate }}
68
+ </th>
69
+ </tr>
70
+ </thead>
71
+ <tr>
72
+ <th colspan='5' style="font-weight: normal;">
73
+ {{{ model.data.substring(26, model.data.length - 8) }}}
74
+ </th>
75
+ </tr>
76
+ </table>
77
+ </div>
78
+ </criteria-paged>
79
+ </div>
80
+
81
+ </template>
82
+
83
+ <script>
84
+ import { DataModel, HttpResetClass } from 'vue-client'
85
+
86
+ export default {
87
+ title: '隐患报表',
88
+ data() {
89
+
90
+ let model = new DataModel('rs/report/hiddensituation', {
91
+ startDate: 'this.model.startDate',
92
+ endDate: 'this.model.endDate',
93
+ f_filialeid: 'this.f_filialeid'
94
+ })
95
+ model.f_filialeid = '(' + this.$login.f.orgid + ')'
96
+ return {
97
+ userTypes: [{ label: '全部', value: '' }, ...this.$appdata.getParam('用气性质')],
98
+ tableTypes: [{ label: '全部', value: '' }, ...this.$appdata.getParam('气表类型')],
99
+ tableBrands: [{ label: '全部', value: '' }],
100
+ filialeNameStr: '',
101
+ hiddenNumber: '',
102
+ hiddenHouseholds: '',
103
+ filialeCodeStr: '',
104
+ userid: this.$login.f.id,
105
+ source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() == $organization$))`,
106
+ model: model
107
+ }
108
+ },
109
+ methods: {
110
+ search(args) {
111
+ this.model.search(args.condition, args.model)
112
+ let dateCondition
113
+ if (args.model.startDate && args.model.endDate) {
114
+ dateCondition = `f_offsite_time BETWEEN '${args.model.startDate}' AND '${args.model.endDate}'`
115
+ } else if (args.model.startDate) {
116
+ dateCondition = `f_offsite_time >= '${args.model.startDate}'`
117
+ } else if (args.model.endDate) {
118
+ dateCondition = `f_offsite_time <= '${args.model.endDate}'`
119
+ }
120
+ if (dateCondition){
121
+ this.getHiddenNumber(dateCondition)
122
+ this.getHiddenHouseholds(dateCondition)
123
+ }
124
+ },
125
+ getRes(obj) {
126
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids)
127
+ },
128
+ getHiddenNumber(condition) {
129
+ new HttpResetClass().load("POST", `/rs/sql/defectDetails`,
130
+ { data: { condition: condition } },
131
+ { resolveMsg: null, rejectMsg: null }).then(resp => {
132
+ this.$set('hiddenNumber',resp.data.length)
133
+ })
134
+ },
135
+ getHiddenHouseholds(condition) {
136
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_GroupBy`,
137
+ { data: { items: "f_userinfoid", tablename: "t_check_paper", groupitem: "f_userinfoid", condition: ` f_defect_content LIKE '%有隐患%' and ${condition}` } },
138
+ { resolveMsg: null, rejectMsg: null }).then(resp => {
139
+ this.$set('hiddenHouseholds',resp.data.length)
140
+ })
141
+ },
142
+ getTableBrands() {
143
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
144
+ { data: { items: "*", tablename: "t_gasbrand", orderitem: "id", condition: ` 1=1 ` } },
145
+ { resolveMsg: null, rejectMsg: null }).then((resp) => {
146
+ resp.data.forEach((result) => {
147
+ this.tableBrands.push({ label: result.f_meter_brand, value: result.f_meter_brand })
148
+ })
149
+ })
150
+ },
151
+ },
152
+ ready() {
153
+ this.getTableBrands()
154
+ },
155
+ computed: {
156
+ selected() {
157
+ return this.$refs.grid.selected
158
+ }
159
+ // outlets () {
160
+ // return [{label: '全部', value: ''}, ...AppData.getParam('营业网点')]
161
+ // },
162
+ // operator () {
163
+ // return [{label: '全部', value: ''}, ...AppData.getParam('操作员')]
164
+ // }
165
+ }
166
+ }
167
+ </script>
@@ -0,0 +1,367 @@
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
+ <div class="row">
7
+ <label class="form-group font_normal_body"><b>计划信息</b></label>
8
+ <div class="form-group col-sm-1" v-show="false">
9
+ <!--隐藏条件-->
10
+ <input type="text" class="input_search" v-model="model.f_plan_id"
11
+ style="width: 95%" placeholder="计划id" condition=" i.f_plan_id='{}'">
12
+ </div>
13
+ <div class="form-group col-sm-1" >
14
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
15
+ style="width: 95%" placeholder="客户编号" condition="i.f_userinfo_code='{}'">
16
+ </div>
17
+ <div class="form-group col-sm-1" >
18
+ <input type="text" class="input_search" v-model="model.f_user_name"
19
+ style="width: 95%" placeholder="客户名称" condition="i.f_user_name like '%{}%'">
20
+ </div>
21
+ <div class="form-group col-sm-1" >
22
+ <input type="text" class="input_search" v-model="model.f_address"
23
+ style="width: 95%" placeholder="客户地址" condition="i.f_address like '%{}%'">
24
+ </div>
25
+ <!--<div class="form-group col-sm-1" >
26
+ <v-select :width="'95%'"
27
+ class="select select_list"
28
+ :value.sync="$parent.$parent.f_state"
29
+ v-model="$parent.$parent.f_state"
30
+ :options='$parent.$parent.checkState'
31
+ placeholder='安检状态'
32
+ close-on-select
33
+ value-single
34
+ >
35
+ </v-select>
36
+ </div>-->
37
+ <div class="form-group col-sm-3" >
38
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
39
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
40
+ <!-- <button class="button_search" style="margin-right: 10px" @click="clear()">清除</button>-->
41
+ <export-excel-safe :data="$parent.$parent.exportParameter"
42
+ :field="$parent.$parent.exportExcelField"
43
+ style="margin-left: 0px"
44
+ sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
45
+ :template-name="$parent.$parent.selectplan.f_plan_name + '安检计划导出'" :choose-col="true">
46
+ </export-excel-safe>
47
+ </div>
48
+ <div class="form-group col-sm-2 safe_p">
49
+ <label class="font_normal_body" :title="$parent.$parent.selectplan.f_plan_name">{{$parent.$parent.selectplan.f_plan_name?'当前选中 : '+$parent.$parent.selectplan.f_plan_name:''}}</label>
50
+ </div>
51
+ <div class="form-group col-sm-2" style="float: right">
52
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.showplanModal()">计划调整</button>
53
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.delPlanItem()" v-show="$parent.$parent.isdelete">移出计划</button>
54
+ </div>
55
+ <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
56
+ <div slot="modal-header" class="modal-header">
57
+ <h4 class="modal-title">
58
+ 计划内用户查询条件
59
+ </h4>
60
+ </div>
61
+ <div slot="modal-body" class="modal-body">
62
+ <div class="row">
63
+ <div class="form-group col-sm-4" >
64
+ <label class="font_normal_body">是否已检:</label>
65
+ <v-select
66
+ class="select select_list"
67
+ :value.sync="model.f_state"
68
+ v-model="model.f_state"
69
+ :options='$parent.$parent.checkState'
70
+ @change="$parent.$parent.checkStateChange(model.f_state)"
71
+ placeholder='请选择'
72
+ condition="i.f_state='{}'"
73
+ close-on-select
74
+ value-single
75
+ >
76
+ </v-select>
77
+ </div>
78
+ <div class="form-group col-sm-4" >
79
+ <label class="font_normal_body">安检结果:</label>
80
+ <v-select
81
+ class="select_list select"
82
+ placeholder='请选择' style="width: 60%"
83
+ v-model='model.f_check_state'
84
+ :value.sync="model.f_check_state"
85
+ :options='$parent.$parent.checkResults'
86
+ condition="i.f_last_check_state in {} "
87
+ :multiple="true"
88
+ ></v-select>
89
+ </div>
90
+ <div class="form-group col-sm-4" >
91
+ <label class="font_normal_body">安检起始:</label>
92
+ <datepicker
93
+ placeholder='请选择'
94
+ style="width:60%"
95
+ :disabled-days-of-week="[]"
96
+ :format="'yyyy-MM-dd'"
97
+ :show-rest-button="reset"
98
+ :value.sync="model.f_startfile_time"
99
+ v-model="model.f_startfile_time"
100
+ condition="i.f_last_check_date >='{} 00:00:00'">
101
+ </datepicker>
102
+ </div>
103
+ <div class="form-group col-sm-4" >
104
+ <label class="font_normal_body">安检截止:</label>
105
+ <datepicker
106
+ placeholder='请选择'
107
+ :disabled-days-of-week="[]"
108
+ style="width:60%"
109
+ :format="'yyyy-MM-dd'"
110
+ :show-rest-button="reset"
111
+ :value.sync="model.f_endfile_time"
112
+ v-model="model.f_endfile_time"
113
+ condition="i.f_last_check_date <='{} 00:00:00'">
114
+ </datepicker>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
119
+ <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
120
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
121
+ </div>
122
+ </modal>
123
+ </div>
124
+ </div>
125
+ </criteria>
126
+ <data-grid :model="model" partial='list' class="table_sy">
127
+
128
+ <template partial='head'>
129
+ <tr>
130
+ <th><nobr><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
131
+ <th><nobr>用户编号</nobr></th>
132
+ <th><nobr>用户名称</nobr></th>
133
+ <th><nobr>用户电话</nobr></th>
134
+ <th><nobr>用户类型</nobr></th>
135
+ <th><nobr>小区名称</nobr></th>
136
+ <th><nobr>安检状态</nobr></th>
137
+ <th><nobr>地址</nobr></th>
138
+ </tr>
139
+ </template>
140
+ <template partial='body'>
141
+ <td style="text-align: center;white-space:nowrap;"><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.isChecked(row.f_check_item_id)" @change="$parent.$parent.$parent.setCheckes(row.f_check_item_id)" /></td>
142
+ <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
143
+ <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
144
+ <td style="text-align: center"><nobr>{{row.f_user_phone}}</nobr></td>
145
+ <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
146
+ <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
147
+ <td style="text-align: center"><nobr>{{row.f_state==='已检'?row.f_last_check_state:'未检'}}</nobr></td>
148
+ <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
149
+ </template>
150
+ </data-grid>
151
+ </criteria-paged>
152
+ <modal :show.sync="showPlanModal" v-ref:modalp>
153
+ <div slot="modal-header" class="modal-header">
154
+ <h4 class="modal-title">
155
+ 计划内用户调整
156
+ </h4>
157
+ </div>
158
+ <div slot="modal-body" class="modal-body">
159
+ <plan-chooser :f.sync="userlogin.orgid" v-ref:chooser></plan-chooser>
160
+ </div>
161
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
162
+ <button class="button_search" style="margin-right: 15px" @click="dragtoOtherPlanIteem">确认</button>
163
+ <button class="button_search" @click="cancel">取消</button>
164
+ </div>
165
+ </modal>
166
+ </div>
167
+ </template>
168
+
169
+ <script>
170
+ import {HttpResetClass, PagedList} from "vue-client";
171
+ import Vue from "vue";
172
+
173
+ export default {
174
+ name: "PlanManage",
175
+ title: '计划管理',
176
+ data() {
177
+ return {
178
+ model:new PagedList('/rs/sql/planItem', 100, {}),
179
+ isdelete:this.$login.r ? this.$login.r.includes("安检计划删除"):false,
180
+ a:'1',
181
+ opt:[{label:"测试",value:"测试"}],
182
+ showCondtion:false,
183
+ checkAll:false,
184
+ checkes:[],
185
+ checkResults:[{label:'到访不遇',value:'到访不遇'},{label:'拒检',value:'拒检'},{label:'入户',value:'入户'}],
186
+ checkState:[{label:'全部',value:''},{label:'未检',value:'未检'},{label:'已检',value:'已检'}],
187
+ showPlanModal:false,
188
+ exportExcelField: {
189
+ 'f_userinfo_code':'用户编号',
190
+ 'f_user_name':'用户名称',
191
+ 'f_user_type':'用户类型',
192
+ 'f_residential_area':'小区名称',
193
+ 'f_state':'安检状态',
194
+ 'f_address':'地址',
195
+ 'f_user_phone':'用户电话',
196
+ 'f_newfile_date':'建档日期'
197
+ }
198
+ }
199
+ },
200
+ props:["selectplan","userlogin"],
201
+ ready(){
202
+
203
+ },
204
+ computed:{
205
+ exportParameter(){
206
+ // excel 导出条件拼接
207
+ return {
208
+ condition: this.$refs.paged.model.condition,
209
+ groupName: this.groupNameForSql
210
+ }
211
+ }
212
+ },
213
+ methods:{
214
+ clear(){
215
+ this.model.f_plan_id = '';
216
+ this.model.f_userinfo_code = '';
217
+ this.model.f_user_name = '';
218
+ this.model.f_address='';
219
+
220
+ },
221
+ //将某个计划下的一项拖到另一个计划
222
+ async dragtoOtherPlanIteem() {
223
+ //tag)
224
+
225
+ if (!this.$refs.modalp.$children[0].selectedRow.id) {
226
+ this.$showMessage("请选择需要调整到那个计划中!")
227
+ return
228
+ }
229
+ this.$parent.isSend=true
230
+ try{
231
+ let res=await new HttpResetClass().load("POST", "/rs/logic/UpCheckPlanItem", {
232
+ data:{
233
+ f_operator:this.userlogin.name,
234
+ f_plan_id:this.$refs.modalp.$children[0].selectedRow.id,
235
+ condition:this.model.condition,
236
+ switchCheckAll:true,
237
+ checkAll:this.checkAll,
238
+ param:this.checkes,
239
+ columnName: "i.id"
240
+ }
241
+ }, {resolveMsg: null, rejectMsg: null})
242
+ this.$parent.isSend=false
243
+ if(res.data.code==200){
244
+ this.$showMessage("更换安检计划成功!")
245
+ this.$parent.refreshPlan()
246
+ }else{
247
+ this.$showMessage("更换安检计划失败!")
248
+ }
249
+ }catch (e) {
250
+ this.$parent.isSend=false
251
+ this.$showMessage("更换安检计划失败!")
252
+ }
253
+ },
254
+ showplanModal(){
255
+ if(!this.selectplan || !this.selectplan.id){
256
+ this.$showMessage("请先打开一个计划再进行操作")
257
+ return
258
+ }
259
+ if(!this.checkAll && this.checkes.length==0){
260
+ this.$showMessage("请先在计划中勾选你要调整的用户!")
261
+ return
262
+ }
263
+ this.showPlanModal=true
264
+ },
265
+ showUserCondition(){
266
+ this.showCondtion=true
267
+ },
268
+ isChecked(v) {
269
+ // 如果全选,不在的按选中算,否则,在的按选中算
270
+ if (this.checkAll) {
271
+ return this.checkes.indexOf(v) == -1
272
+ } else {
273
+ return this.checkes.indexOf(v) != -1
274
+ }
275
+ },
276
+ setCheckAll() {
277
+ this.checkAll=this.checkAll?false:true;
278
+ // 全选改变后,清空选中数据
279
+ this.checkes = []
280
+ },
281
+ setCheckes(id) {
282
+ let index=this.checkes.indexOf(id)
283
+ if(index<0){
284
+ this.checkes.push(id)
285
+ }else{
286
+ this.checkes.splice(index,1)
287
+ }
288
+ },
289
+ cancel(){
290
+ this.showCondtion=false
291
+ this.showPlanModal=false
292
+ },
293
+ selfSearch (args) {
294
+ if(!this.selectplan.id){
295
+ this.$showMessage("请先选择一个计划!")
296
+ return
297
+ }
298
+ this.cancel()
299
+ this.checkes=[]
300
+ this.checkAll=false
301
+ args.condition+= ` and i.f_state!= '作废'`
302
+ this.model.search(args.condition, args.model, args.condValue)
303
+ },
304
+ checkStateChange(val){
305
+ if(val=='未检'){
306
+ this.checkResults=[]
307
+ this.$refs.paged.$refs.criteria.model.f_check_state=''
308
+ }else{
309
+ this.checkResults=[{label:'到访不遇',value:'到访不遇'},{label:'拒检',value:'拒检'},{label:'入户',value:'入户'}]
310
+ }
311
+ },
312
+ //修改计划项状态为作废
313
+ async delPlanItem() {
314
+ if(!this.selectplan || !this.selectplan.id){
315
+ this.$showMessage("请先打开一个计划再进行操作")
316
+ return
317
+ }
318
+ if(!this.checkAll && this.checkes.length==0){
319
+ this.$showMessage("请先在计划中勾选你要作废的用户!")
320
+ return
321
+ }
322
+ this.$showMessage("此操作无法撤回,确定要执行作废安检单操作吗?",['confirm','cancel']).then((button)=>{
323
+ if(button=='confirm'){
324
+ let resu=new HttpResetClass().load("POST", "/rs/logic/UpCheckPlanItemState", {
325
+ data: {
326
+ f_operator:this.userlogin.name,
327
+ condition:this.model.condition,
328
+ switchCheckAll:true,
329
+ checkAll:this.checkAll,
330
+ param:this.checkes,
331
+ columnName: "i.id"
332
+ }
333
+ }, {resolveMsg: null, rejectMsg: null}).then((resu)=>{
334
+
335
+ //tag)
336
+ if(resu.data.code==200){
337
+ this.$showMessage("移除安检单成功! 成功移除:"+resu.data.res.up+"条"+(resu.data.res.noup>0?"有"+resu.data.res.noup+"条已经不是 ‘未检’ 状态!":""))
338
+ //this.checkes=[]
339
+ //this.checkAll=false
340
+ this.$parent.refresh()
341
+ }else{
342
+ this.$showMessage("取消安检计划失败!")
343
+ }
344
+ })
345
+ }
346
+ })
347
+ }
348
+ },
349
+ watch:{
350
+ 'selectplan.id' (){
351
+ //tag
352
+ if(this.selectplan.id){
353
+ this.$refs.paged.$refs.criteria.model.f_plan_id=this.selectplan.id
354
+ this.$refs.paged.$refs.criteria.search()
355
+ }
356
+ }
357
+ }
358
+ }
359
+ </script>
360
+
361
+ <style scoped>
362
+ .safe_p{
363
+ white-space: nowrap;
364
+ overflow: hidden;
365
+ text-overflow: ellipsis;
366
+ }
367
+ </style>
@@ -265,20 +265,6 @@
265
265
  >
266
266
  </v-select>
267
267
  </div>
268
- <div class="form-group col-sm-4" v-if="$parent.$parent.hasCheckBooks == '是'">
269
- <label class="font_normal_body">安检册:</label>
270
- <v-select
271
- class="select select_list"
272
- :value.sync="model.checkBook"
273
- v-model="model.checkBook"
274
- :options='$parent.$parent.checkBooks'
275
- placeholder='请选择'
276
- :search="false"
277
- close-on-select
278
- value-single
279
- >
280
- </v-select>
281
- </div>
282
268
  <div class="form-group col-sm-4" >
283
269
  <label class="font_normal_body">通气起始:</label>
284
270
  <datepicker
@@ -305,6 +291,25 @@
305
291
  condition="ui.f_uservent_date <= '{} 23:59:59'">
306
292
  </datepicker>
307
293
  </div>
294
+ <div class="form-group col-sm-4">
295
+ <label class="font_normal_body">安检册:</label>
296
+ <v-select
297
+ class="select select_list"
298
+ :value.sync="model.checkBook"
299
+ v-model="model.checkBook"
300
+ :options='$parent.$parent.checkBooks'
301
+ placeholder='请选择'
302
+ :search="false"
303
+ close-on-select
304
+ value-single
305
+ >
306
+ </v-select>
307
+ </div>
308
+ <div class="form-group col-sm-4">
309
+ <label class="font_normal_body">安检时间:</label>
310
+ <input type="number" class="input_search" v-model="model.month"
311
+ style="width: 60%" placeholder="距上次安检时间(月)">
312
+ </div>
308
313
  <!--<div class="form-group col-sm-4" >
309
314
  <label class="font_normal_body">入户情况:</label>
310
315
  <v-select
@@ -432,7 +437,6 @@
432
437
  entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
433
438
  sliceArea:[],
434
439
  meterbooks:[],
435
- hasCheckBooks:'否',
436
440
  checkBooks:[],
437
441
  cbc:[],
438
442
  areaList:[],
@@ -446,9 +450,6 @@
446
450
  props:["selectplan","userlogin"],
447
451
  ready(){
448
452
  this.$refs.paged.$refs.criteria.model.f_user_state='正常'
449
- this.hasCheckBooks=this.$appdata.getSingleValue('是否使用安检册')
450
- // this.$refs.paged.$refs.criteria.model.f_endfile_time=Util.toStartDateYearString()
451
- //this.$refs.paged.$refs.criteria.model.f_hasHousehold='未入户'
452
453
  this.getCheckBook()
453
454
  this.setConList()
454
455
  this.loadpage()
@@ -540,6 +541,9 @@
540
541
  if(this.uploadCodeCondition){
541
542
  args.condition +=` and ${this.uploadCodeCondition}`
542
543
  }
544
+ if (args.model.month){
545
+ args.condition += ` and DATEDIFF(MONTH, ui.f_last_check_date, GETDATE()) = '${args.model.month}'`
546
+ }
543
547
  this.cancel()
544
548
  this.checkes=[]
545
549
  this.checkAll=false
@@ -4,10 +4,16 @@ import Vue from "vue";
4
4
  //手机特殊目录注册到该文件中
5
5
  let specialComp = {
6
6
  'plan-manage':(resolve) => { require(['./pc/PlanManage'], resolve) },
7
+ 'check-search-user':(resolve) => { require(['./pc/CheckSearchUser'], resolve) },
8
+ 'check-plan-list':(resolve) => { require(['./pc/checkPlanList'], resolve) },
9
+ 'check-plan-area-list':(resolve) => { require(['./pc/CheckPlanAreaList'], resolve) },
10
+ 'hiddensituation':(resolve) => { require(['./pc/HiddenSituation'], resolve) },
11
+ 'check-book-search-area':(resolve) => { require(['./pc/CheckBookSearchArea'], resolve) },
7
12
  'paper-main':(resolve) => { require(['./pc/PaperList'], resolve) },
8
13
  'new-check-paper':(resolve) => {require(['./pc/NewCheckpaper'], resolve)},
9
14
  'check-user-list':(resolve) => { require(['./pc/checkUserList'], resolve) },
10
15
  'paper-defect-main':(resolve) => { require(['./pc/PaperDefectMain'], resolve) },
16
+ 'check-book-list':(resolve) => { require(['./pc/CheckBookList'], resolve) },
11
17
  }
12
18
  exports.specialComp = specialComp
13
19