safecheck-client 3.0.34-9 → 3.0.34-90

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) 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 +279 -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/jingyang/android/AddPlanItem.vue +458 -458
  72. package/src/filiale/jingyang/android/CurrentCreate.vue +1080 -1080
  73. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  74. package/src/filiale/jingyang/android.js +15 -15
  75. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  76. package/src/filiale/qianneng/android/SafecheckOrderV.vue +1 -1
  77. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  78. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  79. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  80. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  81. package/src/filiale/qingtongxia/android.js +14 -10
  82. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  83. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  84. package/src/filiale/ruihua/android.js +11 -0
  85. package/src/filiale/shanxian/android/SafecheckOrderV.vue +1 -1
  86. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  87. package/src/filiale/siyang/android/AddPlanItem.vue +450 -0
  88. package/src/filiale/siyang/android/AppCheckPlan.vue +246 -0
  89. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -0
  90. package/src/filiale/siyang/android.js +15 -11
  91. package/src/filiale/siyang/pc/CheckBookList.vue +396 -0
  92. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +667 -0
  93. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  94. package/src/filiale/siyang/pc/CheckSearchUser.vue +1035 -0
  95. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  96. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  97. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  98. package/src/filiale/siyang/pc.js +22 -16
  99. package/src/filiale/tongchuan/android/Select.vue +421 -0
  100. package/src/filiale/tongchuan/android.js +1 -0
  101. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  102. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  103. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  104. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  105. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  106. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  107. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  108. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  109. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  110. package/src/filiale/weinan/android/SafecheckOrderV.vue +6 -2
  111. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  112. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  113. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  114. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  115. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  116. package/src/filiale/weinan/pc.js +1 -0
  117. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2240
  118. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -592
  119. package/src/filiale/xilan/pc/checkUserList.vue +772 -0
  120. package/src/filiale/xilan/pc.js +12 -0
  121. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +10 -6
  122. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +21 -1
  123. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +23 -11
  124. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  125. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  126. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  127. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +84 -10
  129. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  130. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  131. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  132. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  133. package/src/main.js +34 -33
  134. package/src/safecheck-android.js +11 -0
  135. package/src/safecheck-page.js +12 -0
  136. package/src/safecheck.js +3 -0
@@ -0,0 +1,198 @@
1
+ <style scoped>
2
+ .app-row {
3
+ background-color: white;
4
+ padding: 10px 10px 0 10px;
5
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
6
+ }
7
+
8
+ .search_input {
9
+ border: 0;
10
+ outline: none;
11
+ }
12
+
13
+ .font {
14
+ font: 15px PingFang-SC-Medium;
15
+ color: #666666;
16
+ }
17
+
18
+ .input-font {
19
+ font: 15px PingFang-SC-Medium;
20
+ color: #333333;
21
+ }
22
+
23
+ .btn-font {
24
+ font: 600 16px PingFang-SC-Bold;
25
+ color: #499EDF;
26
+ }
27
+
28
+ .btn-color {
29
+ background-color: #FFFFFF;
30
+ border-radius: 10px;
31
+ border: 1px solid #499EDF;
32
+ }
33
+
34
+ .app-text {
35
+ font-size: 12px;
36
+ }
37
+
38
+ .panel-self {
39
+ border-radius: 10px;
40
+ border: 1px solid #499EDF;
41
+ background-color: #F8F8F8;
42
+ }
43
+
44
+ table {
45
+ text-align: center;
46
+ white-space: nowrap;
47
+ font-size: 12px;
48
+ width: 50%;
49
+ border-collapse: collapse;
50
+ margin: 20px 0;
51
+ margin: auto;
52
+ }
53
+
54
+ th,
55
+ td {
56
+ padding: 12px;
57
+ border-bottom: 1px solid #ddd;
58
+ }
59
+
60
+ th {
61
+ background-color: #f2f2f2;
62
+ }
63
+
64
+ tr:hover {
65
+ background-color: #f5f5f5;
66
+ }
67
+ </style>
68
+ <template>
69
+ <div style="height: auto;width: 100%">
70
+ <criteria-paged :model="model" v-ref:paged :pager="false">
71
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
72
+ <div partial>
73
+ <form>
74
+ <div class="row app-row">
75
+ <div class="col-xs-4">
76
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
77
+ <label for="f_userinfo_code" class="font text-left">小区名称:</label>
78
+ </div>
79
+ <div class="col-xs-8">
80
+ <input id="f_userinfo_code" class="search_input input-font"
81
+ v-model=model.f_residential_area condition="f_residential_area like '%{}%'" />
82
+ </div>
83
+ </div>
84
+ <div class="row app-row">
85
+ <div class="col-xs-4">
86
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
87
+ <label for="f_userinfo_code" class="font text-left">小区地址:</label>
88
+ </div>
89
+ <div class="col-xs-8">
90
+ <input id="f_userinfo_code" class="search_input input-font" v-model=model.f_area_address
91
+ condition="f_area_address like '%{}%'" />
92
+ </div>
93
+ </div>
94
+ <div class="row text-center" style="margin-top: 20px;">
95
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
96
+ @click="search">查询</button>
97
+ <img @click="$parent.$parent.getNewOrder" src="../../assets/shuaxindaiban1.png"
98
+ style="float: right;margin-right: 3%;width: 40px;padding: 5px; float:right">
99
+ </div>
100
+ <div class="col-sm-12">
101
+ </div>
102
+ <div style="height:30px;"></div>
103
+ </form>
104
+ </div>
105
+ </criteria>
106
+ <list :model="model" partial='list'>
107
+ <div partial>
108
+ <div class="auto app-text" style="margin-top: 5px;">
109
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
110
+ <div class="panel-body panel-self" @click="$parent.$parent.$parent.gotoBuildingSelect(row)">
111
+ <div class="col-xs-12">
112
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
113
+ <b>小区名称:</b>
114
+ </p>
115
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{
116
+ row.f_residential_area }}</p>
117
+ </div>
118
+ <div class="col-xs-12">
119
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
120
+ <b>小区地址:</b>
121
+ </p>
122
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
123
+ row.f_area_address }}</p>
124
+ </div>
125
+ <div class="col-xs-12">
126
+ <table>
127
+ <tr>
128
+ <td style="color: #00A3F0">{{ row.jihuazongshu }}</td>
129
+ <td style="color: #3CC51F">{{ row.yijian }}</td>
130
+ <td style="color: coral">{{ row.weijian }}</td>
131
+ <td style="color: red">{{ row.daofangbuyu }}</td>
132
+ </tr>
133
+ <tr>
134
+ <th>计划总户数</th>
135
+ <th>已检户数</th>
136
+ <th>未检户数</th>
137
+ <th>到访不遇户数</th>
138
+ </tr>
139
+ </table>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </list>
146
+ </criteria-paged>
147
+ </div>
148
+ </template>
149
+ <script>
150
+ import LocalPagedList from '../../plugins/LocalPagedList'
151
+ export default {
152
+ title: 'area-select',
153
+ props: ['row'],
154
+ data() {
155
+ return {
156
+ model: new LocalPagedList('androidGetuserinfo', 20, { condition: 'this.condition' }),
157
+ }
158
+ },
159
+ ready() {
160
+ },
161
+ methods: {
162
+ getNewOrder() {
163
+ HostApp.__this__ = this
164
+ HostApp.logicWithHint({
165
+ 'logic': 'SafeCheckServiceTimeOut',
166
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
167
+ 'data': { params: '' },
168
+ 'backresult': 1
169
+ })
170
+ HostApp.logicWithHint({
171
+ 'logic': 'FreshPlanItem',
172
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
173
+ 'data': { params: '' },
174
+ 'backresult': 1
175
+ })
176
+ },
177
+ getNewOrderCallBack() {
178
+ this.model.search()
179
+ },
180
+ gotoBuildingSelect(row) {
181
+ let _this = this
182
+ _this.$goto('building-select', { row: row, f_plan_id: this.row.id }, 'self', _this.$back)
183
+ },
184
+ search(args) {
185
+ this.model.rows = []
186
+ args.condition += ` and f_plan_id = '${this.row.id}'`
187
+ let criteria = {
188
+ items: `tcpi.f_residential_area,tcpi.f_area_address,COUNT(tcpi.id) as jihuazongshu,sum( CASE WHEN tcpi.f_state = '未检' THEN 1 ELSE 0 END ) as weijian,sum( CASE WHEN tcpi.f_state = '已检' THEN 1 ELSE 0 END ) as yijian,sum( CASE WHEN tcpi.f_last_check_state = '到访不遇' THEN 1 ELSE 0 END ) as daofangbuyu`,
189
+ tablename: 't_check_plan_item tcpi ',
190
+ condition: args.condition,
191
+ groupitem: 'tcpi.f_residential_area,tcpi.f_area_address'
192
+ }
193
+ let result = HostApp._executeTask({ 'type': 'sql', 'data': { 'alias': 'safe_singleTable_GroupBy', 'criteria': criteria } })
194
+ this.model.rows = result.data.rows
195
+ }
196
+ }
197
+ }
198
+ </script>
@@ -0,0 +1,192 @@
1
+ <style scoped>
2
+ .app-row {
3
+ background-color: white;
4
+ padding: 10px 10px 0 10px;
5
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
6
+ }
7
+
8
+ .search_input {
9
+ border: 0;
10
+ outline: none;
11
+ }
12
+
13
+ .font {
14
+ font: 15px PingFang-SC-Medium;
15
+ color: #666666;
16
+ }
17
+
18
+ .input-font {
19
+ font: 15px PingFang-SC-Medium;
20
+ color: #333333;
21
+ }
22
+
23
+ .btn-font {
24
+ font: 600 16px PingFang-SC-Bold;
25
+ color: #499EDF;
26
+ }
27
+
28
+ .btn-color {
29
+ background-color: #FFFFFF;
30
+ border-radius: 10px;
31
+ border: 1px solid #499EDF;
32
+ }
33
+
34
+ .app-text {
35
+ font-size: 12px;
36
+ }
37
+
38
+ .panel-self {
39
+ border-radius: 10px;
40
+ border: 1px solid #499EDF;
41
+ background-color: #F8F8F8;
42
+ }
43
+
44
+ table {
45
+ text-align: center;
46
+ white-space: nowrap;
47
+ font-size: 12px;
48
+ width: 50%;
49
+ border-collapse: collapse;
50
+ margin: 20px 0;
51
+ margin: auto;
52
+ }
53
+
54
+ th,
55
+ td {
56
+ padding: 12px;
57
+ border-bottom: 1px solid #ddd;
58
+ }
59
+
60
+ th {
61
+ background-color: #f2f2f2;
62
+ }
63
+
64
+ tr:hover {
65
+ background-color: #f5f5f5;
66
+ }
67
+ </style>
68
+ <template>
69
+ <div style="height: auto;width: 100%">
70
+ <criteria-paged :model="model" v-ref:paged :pager="false">
71
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
72
+ <div partial>
73
+ <form>
74
+ <div class="row app-row">
75
+ <div class="col-xs-4">
76
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
77
+ <label for="f_userinfo_code" class="font text-left">楼栋:</label>
78
+ </div>
79
+ <div class="col-xs-8">
80
+ <input id="f_userinfo_code" class="search_input input-font" v-model=model.f_building
81
+ condition="f_building like '%{}%'" />
82
+ </div>
83
+ </div>
84
+ <div class="row text-center" style="margin-top: 20px;">
85
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
86
+ @click="search">查询</button>
87
+ <img @click="$parent.$parent.getNewOrder" src="../../assets/shuaxindaiban1.png"
88
+ style="float: right;margin-right: 3%;width: 40px;padding: 5px; float:right">
89
+ </div>
90
+ <div class="col-sm-12">
91
+ </div>
92
+ <div style="height:30px;"></div>
93
+ </form>
94
+ </div>
95
+ </criteria>
96
+ <list :model="model" partial='list'>
97
+ <div partial>
98
+ <div class="auto app-text" style="margin-top: 5px;">
99
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
100
+ <div class="panel-body panel-self" @click="$parent.$parent.$parent.gotoUserinfoSelect(row)">
101
+ <div class="col-xs-12">
102
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
103
+ <b>小区名称:</b></p>
104
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{
105
+ $parent.$parent.$parent.row.f_residential_area }}</p>
106
+ </div>
107
+ <div class="col-xs-12">
108
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
109
+ <b>小区地址:</b></p>
110
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
111
+ $parent.$parent.$parent.row.f_area_address }}</p>
112
+ </div>
113
+ <div class="col-xs-12">
114
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
115
+ <b>楼栋:</b></p>
116
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
117
+ row.f_building }}</p>
118
+ </div>
119
+ <div class="col-xs-12">
120
+ <table>
121
+ <tr>
122
+ <td style="color: #00A3F0">{{ row.jihuazongshu }}</td>
123
+ <td style="color: #3CC51F">{{ row.yijian }}</td>
124
+ <td style="color: coral">{{ row.weijian }}</td>
125
+ <td style="color: red">{{ row.daofangbuyu }}</td>
126
+ </tr>
127
+ <tr>
128
+ <th>计划总户数</th>
129
+ <th>已检户数</th>
130
+ <th>未检户数</th>
131
+ <th>到访不遇户数</th>
132
+ </tr>
133
+ </table>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </list>
140
+ </criteria-paged>
141
+ </div>
142
+ </template>
143
+ <script>
144
+ import LocalPagedList from '../../plugins/LocalPagedList'
145
+ export default {
146
+ title: 'building-select',
147
+ props: ['row', 'f_plan_id'],
148
+ data() {
149
+ return {
150
+ model: new LocalPagedList('androidGetuserinfo', 20, { condition: 'this.condition' }),
151
+ }
152
+ },
153
+ ready() {
154
+ },
155
+ methods: {
156
+ getNewOrder() {
157
+ HostApp.__this__ = this
158
+ HostApp.logicWithHint({
159
+ 'logic': 'SafeCheckServiceTimeOut',
160
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
161
+ 'data': { params: '' },
162
+ 'backresult': 1
163
+ })
164
+ HostApp.logicWithHint({
165
+ 'logic': 'FreshPlanItem',
166
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
167
+ 'data': { params: '' },
168
+ 'backresult': 1
169
+ })
170
+ },
171
+ getNewOrderCallBack() {
172
+ this.model.search()
173
+ },
174
+ gotoUserinfoSelect(row) {
175
+ let _this = this
176
+ _this.$goto('userinfo-select', { row: { f_plan_id: this.f_plan_id, f_residential_area: this.row.f_residential_area, f_area_address: this.row.f_area_address, f_building: row.f_building } }, 'self', _this.$back)
177
+ },
178
+ search(args) {
179
+ this.model.rows = []
180
+ args.condition += ` and f_plan_id = '${this.f_plan_id}' and f_residential_area = '${this.row.f_residential_area}'`
181
+ let criteria = {
182
+ items: `tcpi.f_building,COUNT(tcpi.id) as jihuazongshu,sum( CASE WHEN tcpi.f_state = '未检' THEN 1 ELSE 0 END ) as weijian,sum( CASE WHEN tcpi.f_state = '已检' THEN 1 ELSE 0 END ) as yijian,sum( CASE WHEN tcpi.f_last_check_state = '到访不遇' THEN 1 ELSE 0 END ) as daofangbuyu`,
183
+ tablename: 't_check_plan_item tcpi ',
184
+ condition: args.condition,
185
+ groupitem: 'tcpi.f_building'
186
+ }
187
+ let result = HostApp._executeTask({ 'type': 'sql', 'data': { 'alias': 'safe_singleTable_GroupBy', 'criteria': criteria } })
188
+ this.model.rows = result.data.rows
189
+ },
190
+ }
191
+ }
192
+ </script>
@@ -0,0 +1,229 @@
1
+ <style scoped>
2
+ .app-row {
3
+ background-color: white;
4
+ padding: 10px 10px 0 10px;
5
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
6
+ }
7
+
8
+ .font {
9
+ font: 15px PingFang-SC-Medium;
10
+ color: #666666;
11
+ }
12
+
13
+ .input-font {
14
+ font: 15px PingFang-SC-Medium;
15
+ color: #333333;
16
+ }
17
+
18
+ .btn-font {
19
+ font: 600 16px PingFang-SC-Bold;
20
+ color: #499EDF;
21
+ }
22
+
23
+ .btn-color {
24
+ background-color: #FFFFFF;
25
+ border-radius: 10px;
26
+ border: 1px solid #499EDF;
27
+ }
28
+
29
+ .app-text {
30
+ font-size: 12px;
31
+ }
32
+
33
+ .panel-self {
34
+ border-radius: 10px;
35
+ border: 1px solid #499EDF;
36
+ background-color: #F8F8F8;
37
+ }
38
+
39
+ table {
40
+ text-align: center;
41
+ white-space: nowrap;
42
+ font-size: 12px;
43
+ width: 50%;
44
+ border-collapse: collapse;
45
+ margin: 20px 0;
46
+ margin: auto;
47
+ }
48
+
49
+ th,
50
+ td {
51
+ padding: 12px;
52
+ border-bottom: 1px solid #ddd;
53
+ }
54
+
55
+ th {
56
+ background-color: #f2f2f2;
57
+ }
58
+
59
+ tr:hover {
60
+ background-color: #f5f5f5;
61
+ }
62
+ </style>
63
+ <template>
64
+ <div style="height: auto;width: 100%">
65
+ <criteria-paged :model="model" v-ref:paged :pager="false">
66
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
67
+ <div partial>
68
+ <form>
69
+ <div class="row app-row">
70
+ <div class="col-xs-4">
71
+ <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
72
+ <label for="f_plan_name" class="font text-left">计划名称:</label>
73
+ </div>
74
+ <v-select id="f_plan_name" :value.sync="model.f_plan_name" class="input-font"
75
+ :options='$parent.$parent.planNameOptions' placeholder='计划名称' :width="'60%'"
76
+ v-model="model.f_plan_name" condition="f_plan_name = '{}'" close-on-select clear-button>
77
+ </v-select>
78
+ </div>
79
+ <div class="row app-row">
80
+ <div class="col-xs-4">
81
+ <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
82
+ <label for="f_plan_name" class="font text-left">计划类型:</label>
83
+ </div>
84
+ <v-select id="f_plan_name" :value.sync="model.f_safecheck_type" class="input-font"
85
+ :options='$parent.$parent.safecheckTypes' placeholder='计划类型' :width="'60%'"
86
+ v-model="model.f_safecheck_type" condition="f_safecheck_type = '{}'" close-on-select
87
+ clear-button>
88
+ </v-select>
89
+ </div>
90
+ <div class="row app-row">
91
+ <div class="col-xs-4">
92
+ <img src="../../assets/安检状态.png" style="width: 20px;margin-bottom: 5px" alt="">
93
+ <label for="f_plan_name" class="font text-left">计划时间:</label>
94
+ </div>
95
+ <datepicker id="f_start_date" style="width: 30%;" :value.sync="model.f_start_date"
96
+ :disabled-days-of-Week="[]" v-model="model.f_start_date" class="input-font"
97
+ :format="'yyyy-MM-dd 00:00:00'" condition="f_issue_time >= '{}'">
98
+ </datepicker>-
99
+ <datepicker id="f_end_date" style="width: 30%;" :value.sync="model.f_end_date"
100
+ :disabled-days-of-Week="[]" v-model="model.f_end_date" class="input-font"
101
+ :format="'yyyy-MM-dd 23:59:00'" condition="f_issue_time <= '{}'">
102
+ </datepicker>
103
+ </div>
104
+ <div class="row text-center" style="margin-top: 20px;">
105
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
106
+ @click="search">查询</button>
107
+ <img @click="$parent.$parent.getNewOrder" src="../../assets/shuaxindaiban1.png"
108
+ style="float: right;margin-right: 3%;width: 40px;padding: 5px; float:right">
109
+ </div>
110
+ <div class="col-sm-12">
111
+ </div>
112
+ <div style="height:30px;"></div>
113
+ </form>
114
+ </div>
115
+ </criteria>
116
+ <list :model="model" partial='list'>
117
+ <div partial>
118
+ <div class="auto app-text" style="margin-top: 5px;">
119
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
120
+ <div class="panel-body panel-self" @click="$parent.$parent.$parent.gotoAreaSelect(row)">
121
+ <div class="col-xs-12">
122
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
123
+ <b>计划名称:</b>
124
+ </p>
125
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{
126
+ row.f_plan_name }}</p>
127
+ </div>
128
+ <div class="col-xs-12">
129
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
130
+ <b>计划发型:</b>
131
+ </p>
132
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
133
+ row.f_safecheck_type }}</p>
134
+ </div>
135
+ <div class="col-xs-12">
136
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left">
137
+ <b>计划时间:</b>
138
+ </p>
139
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{
140
+ row.f_issue_time }}</p>
141
+ </div>
142
+ <div class="col-xs-12">
143
+ <table>
144
+ <tr>
145
+ <td style="color: #00A3F0">{{ row.jihuazongshu }}</td>
146
+ <td style="color: #3CC51F">{{ row.yijian }}</td>
147
+ <td style="color: coral">{{ row.weijian }}</td>
148
+ <td style="color: red">{{ row.daofangbuyu }}</td>
149
+ </tr>
150
+ <tr>
151
+ <th>计划总户数</th>
152
+ <th>已检户数</th>
153
+ <th>未检户数</th>
154
+ <th>到访不遇户数</th>
155
+ </tr>
156
+ </table>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ </div>
162
+ </list>
163
+ </criteria-paged>
164
+ </div>
165
+ </template>
166
+ <script>
167
+ import LocalPagedList from '../../plugins/LocalPagedList'
168
+ export default {
169
+ title: 'current-create',
170
+ data() {
171
+ return {
172
+ planNameOptions: [{ label: '请选择', value: '' },],
173
+ safecheckTypes: [{ label: '请选择', value: '' }, { label: '年度安检', value: '年度安检' }, { label: '抽检', value: '抽检' }],
174
+ model: new LocalPagedList('androidGetuserinfo', 20, { condition: 'this.condition' }),
175
+ }
176
+ },
177
+ ready() {
178
+ this.getAllPlanName()
179
+ },
180
+ methods: {
181
+ getNewOrder() {
182
+ HostApp.__this__ = this
183
+ HostApp.logicWithHint({
184
+ 'logic': 'SafeCheckServiceTimeOut',
185
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
186
+ 'data': { params: '' },
187
+ 'backresult': 1
188
+ })
189
+ HostApp.logicWithHint({
190
+ 'logic': 'FreshPlanItem',
191
+ 'callback': 'javascript:HostApp.__this__.getNewOrderCallBack()',
192
+ 'data': { params: '' },
193
+ 'backresult': 1
194
+ })
195
+ },
196
+ getNewOrderCallBack() {
197
+ this.model.search()
198
+ },
199
+ gotoAreaSelect(row) {
200
+ var _this = this
201
+ _this.$goto('area-select-safe', { row: row }, 'self', _this.$back)
202
+ },
203
+ search(args) {
204
+ let condition = '1=1'
205
+ this.model.rows = []
206
+ let criteria = {
207
+ items: `tcp.id,tcp.f_plan_name,tcp.f_issue_time,tcp.f_safecheck_type,COUNT(tcp.id) as jihuazongshu,sum( CASE WHEN tcpi.f_state = '未检' THEN 1 ELSE 0 END ) as weijian,sum( CASE WHEN tcpi.f_state = '已检' THEN 1 ELSE 0 END ) as yijian,sum( CASE WHEN tcpi.f_last_check_state = '到访不遇' THEN 1 ELSE 0 END ) as daofangbuyu`,
208
+ tablename: 't_check_plan tcp LEFT JOIN t_check_plan_item tcpi ON tcp.id = tcpi.f_plan_id',
209
+ condition: args.condition || condition,
210
+ groupitem: 'tcp.id,tcp.f_plan_name,tcp.f_issue_time,tcp.f_safecheck_type'
211
+ }
212
+ let result = HostApp._executeTask({ 'type': 'sql', 'data': { 'alias': 'safe_singleTable_GroupBy', 'criteria': criteria } })
213
+ this.model.rows = result.data.rows
214
+ },
215
+ getAllPlanName() {
216
+ let criteria = {
217
+ items: 'f_plan_name',
218
+ tablename: 't_check_plan',
219
+ condition: `f_plan_name IS NOT NULL AND f_plan_name != ''`,
220
+ groupitem: 'f_plan_name'
221
+ }
222
+ let result = HostApp._executeTask({ 'type': 'sql', 'data': { 'alias': 'safe_singleTable_GroupBy', 'criteria': criteria } })
223
+ if (result.code == 200) {
224
+ result.data.rows.forEach(item => this.planNameOptions.push({ label: item.f_plan_name, value: item.f_plan_name }))
225
+ }
226
+ },
227
+ }
228
+ }
229
+ </script>