sale-client 4.1.230 → 4.2.1-ronghao

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 (171) hide show
  1. package/build/dev-server.js +29 -46
  2. package/package.json +2 -2
  3. package/src/App.vue +3 -3
  4. package/src/components/FilesManage/UserGeneralInfoTest.vue +4 -4
  5. package/src/components/FilesManageNew/FileUserFiles.vue +2 -4
  6. package/src/components/FilesManageNew/MeterinfoTest.vue +9 -9
  7. package/src/components/FilesManageNew/UserEssentialInfoTest.vue +201 -227
  8. package/src/components/FilesManageNew/UserGeneralInfoTest.vue +0 -2
  9. package/src/components/charge/business/CardMeterCenter.vue +1 -1
  10. package/src/components/charge/business/FilesComplete.vue +3 -3
  11. package/src/components/charge/business/IOTMeterCenter.vue +1 -1
  12. package/src/components/charge/business/OtherChargeNew.vue +68 -48
  13. package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +10 -1
  14. package/src/components/common/userinfo_detail/ic_detail/CardHandRecord.vue +1 -1
  15. package/src/components/common/userinfo_detail/ic_detail/ChangeMeterQueryUser.vue +1 -1
  16. package/src/components/common/userinfo_detail/ic_detail/GarbageRecordList.vue +69 -0
  17. package/src/components/common/userinfo_detail/ic_detail/InsuranceChargesRecord.vue +384 -0
  18. package/src/components/common/userinfo_detail/ic_detail/WebHandQueryUser.vue +1 -1
  19. package/src/components/revenue/Common/MeterMessage.vue +1 -1
  20. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  21. package/src/components/revenue/HandManager/WebHand.vue +7 -4
  22. package/src/components/revenue/base/leftview/SafeCheck.vue +41 -3
  23. package/src/components/revenue/base/leftview/UserFeeInfo.vue +76 -0
  24. package/src/components/revenue/base/leftview/otherinfo.vue +1 -0
  25. package/src/components/revenue/base/rightview/CardList.vue +7 -3
  26. package/src/components/revenue/batchDeduction/batchDeductionList.vue +1 -1
  27. package/src/components/revenue/cardHandManage/cardDown.vue +18 -0
  28. package/src/components/revenue/changeInsurance/InsuranceAdd.vue +1 -0
  29. package/src/components/revenue/changeInsurance/InsuranceRecord.vue +2 -1
  30. package/src/components/revenue/comprehen/ComprehenOperation/BankPayment/BankPayment.vue +1 -1
  31. package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/icTable.vue +4 -2
  32. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  33. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  34. package/src/components/revenue/comprehen/Maintenance/revenue/MeterOperatemain.vue +2 -2
  35. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  36. package/src/components/revenue/machineHandManage/HandplanQuery.vue +1 -1
  37. package/src/components/revenue/machineHandManage/machineHand.vue +3 -2
  38. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  39. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  40. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  41. package/src/filiale/bayan/StockListmain.vue +543 -543
  42. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  43. package/src/filiale/dexin/MeterinfoTest.vue +1239 -0
  44. package/src/filiale/dexin/UserEssentialInfoTest.vue +602 -0
  45. package/src/filiale/dexin/sale.js +5 -0
  46. package/src/filiale/fugou/MeterinfoTest.vue +1 -1
  47. package/src/filiale/jiaxian/AutomaticPurse.vue +349 -0
  48. package/src/filiale/jiaxian/ChangeMeterQueryUser.vue +303 -0
  49. package/src/filiale/jiaxian/ChangeRecord.vue +44 -2
  50. package/src/filiale/jiaxian/FillCardQueryUser.vue +250 -0
  51. package/src/filiale/jiaxian/FillGasQueryUser.vue +270 -0
  52. package/src/filiale/jiaxian/OtherChargeQueryUser.vue +305 -0
  53. package/src/filiale/jiaxian/PriceAdjustmentQueryUser.vue +368 -0
  54. package/src/filiale/jiaxian/PriceChangeQueryUser.vue +243 -0
  55. package/src/filiale/jiaxian/QueryInstruct.vue +436 -0
  56. package/src/filiale/jiaxian/RecordQueryUser.vue +321 -0
  57. package/src/filiale/jiaxian/Repurchase.vue +181 -0
  58. package/src/filiale/jiaxian/TransferQueryUser.vue +274 -0
  59. package/src/filiale/jiaxian/UserInfoDetailManageNew.vue +11 -11
  60. package/src/filiale/jiaxian/Userinfo.vue +426 -0
  61. package/src/filiale/jiaxian/WatchCollection.vue +54 -1
  62. package/src/filiale/jiaxian/WebAutomaticPurse.vue +348 -0
  63. package/src/filiale/jiaxian/contractSigningList.vue +149 -0
  64. package/src/filiale/jiaxian/sale.js +5 -0
  65. package/src/filiale/jinhong/AutoAccountsDetail.vue +63 -0
  66. package/src/filiale/jinhong/CardList.vue +572 -0
  67. package/src/filiale/jinhong/CardMeterCenter.vue +1 -1
  68. package/src/filiale/jinhong/CardMeterCenterInner.vue +61 -22
  69. package/src/filiale/jinhong/GarbageCharge.vue +1 -1
  70. package/src/filiale/jinhong/HandplanQuery.vue +1430 -0
  71. package/src/filiale/jinhong/IOTMeterCenterInner.vue +42 -14
  72. package/src/filiale/jinhong/InsuranceAdd.vue +27 -5
  73. package/src/filiale/jinhong/InsuranceChargesDetails.vue +11 -5
  74. package/src/filiale/jinhong/InsuranceRecord.vue +4 -5
  75. package/src/filiale/jinhong/InsuranceTemp.vue +33 -5
  76. package/src/filiale/jinhong/MachineChargeService.js +8 -0
  77. package/src/filiale/jinhong/MachineMeterCenter.vue +38 -11
  78. package/src/filiale/jinhong/ShowCardSellGasInner.vue +46 -14
  79. package/src/filiale/jinhong/Userinfo.vue +75 -1
  80. package/src/filiale/jinhong/insuranceGuanL.vue +349 -0
  81. package/src/filiale/jinhong/machineDown.vue +1205 -0
  82. package/src/filiale/jinhong/sale.js +9 -0
  83. package/src/filiale/jinhuang/UserInfoDetailManageNew.vue +259 -0
  84. package/src/filiale/jinhuang/WebHand.vue +1026 -0
  85. package/src/filiale/jinhuang/WebHandQueryUser.vue +413 -0
  86. package/src/filiale/jinhuang/cardsHand.vue +911 -0
  87. package/src/filiale/jinhuang/sale.js +8 -0
  88. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  89. package/src/filiale/lixianV3/InsuranceAdd.vue +1 -0
  90. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  91. package/src/filiale/meihekou/CardMeterCenter.vue +991 -0
  92. package/src/filiale/meihekou/ChargeManage.vue +3 -2
  93. package/src/filiale/meihekou/ChargeOper.vue +279 -169
  94. package/src/filiale/meihekou/HandManager.vue +57 -2
  95. package/src/filiale/meihekou/NoCardMeterCenter.vue +542 -0
  96. package/src/filiale/meihekou/OverUseCharge.vue +1 -1
  97. package/src/filiale/meihekou/PrintBill.vue +48 -41
  98. package/src/filiale/meihekou/ReissueBill.vue +4 -1
  99. package/src/filiale/meihekou/ShowCardSellGas.vue +935 -0
  100. package/src/filiale/meihekou/TransferManage.vue +704 -0
  101. package/src/filiale/meihekou/Userinfo.vue +233 -5
  102. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  103. package/src/filiale/meihekou/icTable.vue +233 -0
  104. package/src/filiale/meihekou/machineHand.vue +2158 -0
  105. package/src/filiale/meihekou/manualChargeCenter.vue +394 -0
  106. package/src/filiale/meihekou/meterTable.vue +220 -0
  107. package/src/filiale/meihekou/sale.js +15 -0
  108. package/src/filiale/qianneng/MeterMessage.vue +1 -1
  109. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  110. package/src/filiale/rizhao/InsuranceAdd.vue +1 -0
  111. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  112. package/src/filiale/ronghao/CardList.vue +19 -17
  113. package/src/filiale/ronghao/CardMeterChargeCancel.vue +5 -0
  114. package/src/filiale/ronghao/CardService.js +2144 -2144
  115. package/src/filiale/ronghao/ChangeMeterService.js +1 -1
  116. package/src/filiale/ronghao/ChargeList.vue +17 -17
  117. package/src/filiale/ronghao/ChargeManage.vue +325 -0
  118. package/src/filiale/ronghao/ChargeOper.vue +330 -0
  119. package/src/filiale/ronghao/FilesManageNew/UserEssentialInfoTest.vue +457 -0
  120. package/src/filiale/ronghao/FilesManageNew/UserGeneralInfoTest.vue +690 -0
  121. package/src/filiale/ronghao/HandplanQuery.vue +13 -14
  122. package/src/filiale/ronghao/IOTMeterCenter.vue +15 -6
  123. package/src/filiale/ronghao/InsuranceAdd.vue +1 -0
  124. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  125. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  126. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  127. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  128. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  129. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  130. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  131. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  132. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  133. package/src/filiale/ronghao/Upload.vue +654 -654
  134. package/src/filiale/ronghao/Userinfo.vue +18 -18
  135. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  136. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  137. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  138. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  139. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  140. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  141. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  142. package/src/filiale/ronghao/machineRefund.vue +3 -1
  143. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  144. package/src/filiale/ronghao/sale.js +11 -0
  145. package/src/filiale/ronghao/specificInformation.vue +537 -537
  146. package/src/filiale/ronghao/uploadFilesHistory.vue +214 -0
  147. package/src/filiale/ruihua/FilesManage/MeterinfoTest.vue +10 -0
  148. package/src/filiale/shanxian/components/revenue/InsuranceAdd.vue +1 -0
  149. package/src/filiale/wuan/MeterMessage.vue +1 -1
  150. package/src/filiale/yangchun/BasicLivingList.vue +281 -0
  151. package/src/filiale/yangchun/BlackList/BlackRecordQuery.vue +1 -0
  152. package/src/filiale/yangchun/CardChangeFill.vue +1 -1
  153. package/src/filiale/yangchun/ChargeList.vue +954 -954
  154. package/src/filiale/yangchun/FilesManage/UserPaperInfoTest.vue +3 -3
  155. package/src/filiale/yangchun/NewMeterList.vue +742 -0
  156. package/src/filiale/yangchun/sale.js +3 -0
  157. package/src/filiale/yuncheng/CardList.vue +1 -1
  158. package/src/filiale/yuncheng/IndustryCommerceHand.vue +1145 -0
  159. package/src/filiale/yuncheng/IndustryCommerceHandAudit.vue +794 -0
  160. package/src/filiale/yuncheng/IndustryCommerceHandManager.vue +64 -0
  161. package/src/filiale/yuncheng/InsuranceAdd.vue +1 -0
  162. package/src/filiale/yuncheng/MeterBookUser.vue +781 -0
  163. package/src/filiale/yuncheng/UserDeviceInfoTest.vue +2 -2
  164. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  165. package/src/filiale/yuncheng/industryDown.vue +1118 -0
  166. package/src/filiale/yuncheng/sale.js +11 -0
  167. package/src/filiale/yuncheng/uploadFilesHistory.vue +185 -0
  168. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  169. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  170. package/src/plugins/CardService.js +2217 -2217
  171. package/src/sale.js +3 -1
@@ -0,0 +1,1145 @@
1
+ <template>
2
+ <div class="flex-row" id="machineHandManager">
3
+ <div class="basic-main">
4
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
5
+ <criteria partial='criteria' v-ref:criteria @condition-changed="$parent.selfSearch">
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="col-sm-2 form-group">
9
+ <label class="font_normal_body color-red">归属起始</label>
10
+ <datepicker placeholder="开始日期"
11
+ style="width:60%"
12
+ class="datepicker"
13
+ v-model="model.startDate"
14
+ condition="f_hand_date >='{} 00:00:00'"
15
+ :value.sync="model.startDate"
16
+ :format="'yyyy-MM-dd'"
17
+ ></datepicker>
18
+ </div>
19
+ <div class="col-sm-2 form-group">
20
+ <label class="font_normal_body color-red">归属结束</label>
21
+ <datepicker placeholder="结束日期"
22
+ style="width:60%"
23
+ v-model="model.endDate"
24
+ :value.sync="model.endDate"
25
+ condition="f_hand_date <='{} 23:59:59'"
26
+ :format="'yyyy-MM-dd'"
27
+ ></datepicker>
28
+ </div>
29
+ <div class="col-sm-2 form-group">
30
+ <label class="font_normal_body">客户编号</label>
31
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
32
+ condition="f_userinfo_code='{}'" placeholder='客户编号'>
33
+ </div>
34
+ <div class="span" style="float:right;">
35
+ <button
36
+ class="button_search button_spacing" style="width:90px" @click="$parent.$parent.danhuShow()">
37
+ 单户抄表
38
+ </button>
39
+ <button class="button_search button_spacing" @click="$parent.$parent.search()">查询</button>
40
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
41
+ <export-excel
42
+ :data="$parent.$parent.getCondition"
43
+ :field="$parent.$parent.getfield"
44
+ sqlurl="api/af-revenue/logic/saleExport" sql-name="getIndustryCommerceHand" template-name='工业商业抄表导出'
45
+ :choose-col="true">
46
+ </export-excel>
47
+ <div
48
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
49
+ @click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
50
+ </div>
51
+ </div>
52
+ </div>
53
+ <div class="row" v-show="$parent.$parent.criteriaShow">
54
+ <div class="col-sm-2 form-group">
55
+ <label class="font_normal_body">表&emsp;&emsp;号</label>
56
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
57
+ condition="f_meternumber like '%{}%'" placeholder='表号'>
58
+ </div>
59
+ <div class="col-sm-2 form-group">
60
+ <label class="font_normal_body">客户姓名</label>
61
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
62
+ placeholder='客户姓名'
63
+ condition="f_user_name = '{}'">
64
+ </div>
65
+ <div class="col-sm-2 form-group">
66
+ <label class="font_normal_body">小&ensp;&ensp;&ensp;&ensp;区</label>
67
+ <v-select :value.sync="model.f_residential_area"
68
+ class="select_list select"
69
+ enter-push
70
+ v-model="model.f_residential_area"
71
+ style="width: 60%"
72
+ multiple="true"
73
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
74
+ close-on-select v-el:cc>
75
+ </v-select>
76
+ </div>
77
+ <div class="col-sm-2 form-group">
78
+ <label class="font_normal_body">楼&emsp;&emsp;栋</label>
79
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_building"
80
+ condition="f_building = '{}'" placeholder='楼栋'>
81
+ </div>
82
+ <div class="col-sm-2 form-group">
83
+ <label class="font_normal_body">单&emsp;&emsp;元</label>
84
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_unit"
85
+ condition="f_unit = '{}'" placeholder='单元'>
86
+ </div>
87
+ <div class="col-sm-2 form-group">
88
+ <label class="font_normal_body">楼&emsp;&emsp;层</label>
89
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_floor"
90
+ condition="f_floor = '{}'" placeholder='楼层'>
91
+ </div>
92
+ <div class="col-sm-2 form-group">
93
+ <label class="font_normal_body">门&ensp;牌&ensp;号</label>
94
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_room"
95
+ condition="f_room like '%{}%'" placeholder='门牌号'>
96
+ </div>
97
+ <div class="col-sm-2 form-group">
98
+ <label class="font_normal_body">客户地址</label>
99
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
100
+ condition="f_address like '%{}%'" placeholder='客户地址'>
101
+ </div>
102
+ <div class="col-sm-2 form-group">
103
+ <label class="font_normal_body">抄&ensp;表&ensp;员</label>
104
+ <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
105
+ style="width:60%"
106
+ multiple="true"
107
+ :options='$parent.$parent.inputtores' placeholder='抄表员'
108
+ close-on-select
109
+ v-el:cc></v-select>
110
+ </div>
111
+ <div class="col-sm-2 form-group">
112
+ <label class="font_normal_body">抄表单状态</label>
113
+ <v-select :value.sync="model.f_meter_state"
114
+ v-model='model.f_meter_state'
115
+ style="width:60%"
116
+ :options='$parent.$parent.meterstates'
117
+ placeholder='抄表单状态'
118
+ close-on-select
119
+ condition="f_meter_state = '{}'"></v-select>
120
+ </div>
121
+
122
+ <div class="col-sm-2 form-group">
123
+ <label class="font_normal_body">客户类型</label>
124
+ <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
125
+ :options='$parent.$parent.usertypes' placeholder='客户类型'
126
+ style="width:60%"
127
+ close-on-select
128
+ condition="f_user_type = '{}'"></v-select>
129
+ </div>
130
+ <div class="col-sm-2 form-group">
131
+ <label class="font_normal_body">审核状态</label>
132
+ <v-select
133
+ v-model="model.f_audit_state"
134
+ placeholder='审核状态'
135
+ style="width: 60%"
136
+ :value.sync="model.f_audit_state"
137
+ :options='$parent.$parent.f_audit_state'
138
+ condition="f_audit_state {}"
139
+ close-on-select></v-select>
140
+ </div>
141
+ <div class="col-sm-2 form-group" style="white-space: nowrap">
142
+ <label class="font_normal_body">用&ensp;气&ensp;量</label>
143
+ <div class="row">
144
+ <input type="text" style="width:30%" class="input_search" v-model="model.oughtamountmin"
145
+ condition="f_oughtamount >= {} " placeholder="">
146
+ <label class="font_normal_body"> ≤ x ≤ </label>
147
+ <input type="text" style="width:30%" class="input_search" v-model="model.oughtamountmax"
148
+ condition="f_oughtamount <= {} " placeholder="">
149
+ </div>
150
+ </div>
151
+ <div class="col-sm-2 form-group">
152
+ <label class="font_normal_body">气表品牌</label>
153
+ <v-select :value.sync="model.f_meter_brand" v-model="model.f_meter_brand"
154
+ :options='$parent.$parent.meterbrands' placeholder='请选择' condition="f_meter_brand = '{}'"
155
+ close-on-select></v-select>
156
+ </div>
157
+ <div class="col-sm-2 form-group">
158
+ <label class="font_normal_body">气表型号</label>
159
+ <v-select :value.sync="model.f_meter_style" v-model="model.f_meter_style"
160
+ :options='$parent.$parent.meterstyle[model.f_meter_brand]' placeholder='请选择'
161
+ condition="f_meter_style = '{}'" close-on-select></v-select>
162
+ </div>
163
+ <div class="col-sm-2 form-group">
164
+ <label class="font_normal_body">防盗卡号</label>
165
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_defendcard"
166
+ condition="f_defendcard = '{}'" placeholder='防盗卡号'>
167
+ </div>
168
+ <div class="col-sm-2 form-group" style="white-space: nowrap">
169
+ <label class="font_normal_body">累购气量</label>
170
+ <div class="row">
171
+ <input type="text" style="width:30%" class="input_search" v-model="model.totalgasmin"
172
+ condition="f_total_gas >= {} " placeholder="">
173
+ <label class="font_normal_body"> ≤ x ≤ </label>
174
+ <input type="text" style="width:30%" class="input_search" v-model="model.totalgasmax"
175
+ condition="f_total_gas <= {} " placeholder="">
176
+ </div>
177
+ </div>
178
+
179
+ <res-select-group :initres="$parent.$parent.initres"
180
+ @re-res="$parent.$parent.getRes"
181
+ :show-component="['company']"
182
+ v-ref:sel>
183
+ </res-select-group>
184
+ </div>
185
+ </div>
186
+ </criteria>
187
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid id="hand_manager_grid">
188
+ <template partial='head'>
189
+ <tr>
190
+ <th>
191
+ <nobr>序号</nobr>
192
+ </th>
193
+ <th>
194
+ <nobr>
195
+ <data-order field="f_userinfo_code" name="客户编号"
196
+ :order.sync="$parent.$parent.$parent.orderFields.f_userinfo_code"></data-order>
197
+ </nobr>
198
+ </th>
199
+ <th>
200
+ <nobr>
201
+ <data-order field="f_address" name="基本信息"
202
+ :order.sync="$parent.$parent.$parent.orderFields.f_address"></data-order>
203
+ </nobr>
204
+ </th>
205
+ <th>
206
+ <nobr>所属年月</nobr>
207
+ </th>
208
+ <th>
209
+ <nobr>表号</nobr>
210
+ </th>
211
+ <th>
212
+ <nobr>用户电话</nobr>
213
+ </th>
214
+ <th>
215
+ <nobr>上期底数</nobr>
216
+ </th>
217
+ <th>
218
+ <nobr>本期底数</nobr>
219
+ </th>
220
+ <th>
221
+ <nobr>用气量</nobr>
222
+ </th>
223
+ <th>
224
+ <nobr>
225
+ <data-order field="f_last_input_date" name="上次抄表录入日期"
226
+ :order.sync="$parent.$parent.$parent.orderFields.f_last_input_date"></data-order>
227
+ </nobr>
228
+ </th>
229
+ <th>
230
+ <nobr>
231
+ <data-order field="f_hand_date" name="下发日期"
232
+ :order.sync="$parent.$parent.$parent.orderFields.f_hand_date"></data-order>
233
+ </nobr>
234
+ </th>
235
+ <th>
236
+ <nobr>
237
+ <data-order field="f_input_date" name="抄表录入日期"
238
+ :order.sync="$parent.$parent.$parent.orderFields.f_input_date"></data-order>
239
+ </nobr>
240
+ </th>
241
+ <th>
242
+ <nobr>抄表员</nobr>
243
+ </th>
244
+ <th>
245
+ <nobr>录入人员</nobr>
246
+ </th>
247
+ <th>
248
+ <nobr>下发人员</nobr>
249
+ </th>
250
+ <th>
251
+ <nobr>气表品牌</nobr>
252
+ </th>
253
+ <th>
254
+ <nobr>气表型号</nobr>
255
+ </th>
256
+ <th>
257
+ <nobr>防盗卡号</nobr>
258
+ </th>
259
+ <th>
260
+ <nobr>累购气量</nobr>
261
+ </th>
262
+ <th>
263
+ <nobr>审核状态</nobr>
264
+ </th>
265
+ <th>
266
+ <nobr>审核人员</nobr>
267
+ </th>
268
+ <th>
269
+ <nobr>审核时间</nobr>
270
+ </th>
271
+ <th>
272
+ <nobr>审核未通过原因</nobr>
273
+ </th>
274
+ <th>
275
+ <nobr>备注</nobr>
276
+ </th>
277
+ <th>
278
+ <nobr>附件</nobr>
279
+ </th>
280
+ <th>
281
+ <nobr>操作</nobr>
282
+ </th>
283
+ <!-- f_oughtfee-->
284
+ </tr>
285
+ </template>
286
+ <template partial='body'>
287
+ <td style="text-align: center;">{{ $index + 1 }}</td>
288
+ <td style="text-align: center;">{{ row.f_userinfo_code }}</td>
289
+ <td style="text-align: center;">{{ row.f_user_name }}&nbsp;&nbsp;{{ row.f_address }}</td>
290
+ <td style="text-align: center;">{{ row.belongmonth }}</td>
291
+ <td style="text-align: center;">{{ row.f_meternumber }}</td>
292
+ <td style="text-align: center;">{{ row.f_user_phone }}</td>
293
+ <td style="text-align: center;">{{ row.f_last_tablebase }}</td>
294
+ <td id="hand-creat" v-if="row.f_meter_state === '未抄表'" style="text-align: center;">
295
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
296
+ 'has-success has-feedback': !row.error,
297
+ 'has-error has-feedback': row.error}">
298
+ <input title="可录入小数点后三位"
299
+ type="text" class="input_search"
300
+ v-model="row.f_tablebase"
301
+ @blur="$parent.$parent.$parent.beforenter($index, row)"
302
+ v-next-el="{id: $index+2}"
303
+ :id="$index+1"
304
+ style="width: 100px;padding: 6px;"
305
+ @focus="$parent.$parent.$parent.clearError(row)"
306
+ :disabled="row.state === '开始'">
307
+ </div>
308
+ <span v-if="row.error && row.error !== ''" style="color: #ff0000;">{{ row.error }}</span>
309
+ </td>
310
+ <td id="hand-creat" v-if="row.f_meter_state !== '未抄表' " style="text-align: center;">
311
+ {{ row.f_tablebase }}
312
+ </td>
313
+ <td style="text-align: center;">{{ $parent.$parent.$parent.calculationBase(row) }}</td>
314
+ <td style="text-align: center;">{{ row.f_last_input_date }}</td>
315
+ <td style="text-align: center;">{{ row.f_hand_date }}</td>
316
+ <td style="text-align: center;">
317
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
318
+ 'has-success has-feedback': !row.error,
319
+ 'has-error has-feedback': row.error}"
320
+ v-if="row.f_meter_state === '未抄表' && $parent.$parent.$parent.jurisdiction.includes('录入日期修正')">
321
+ <datepicker id="endDate" placeholder="抄表时间"
322
+ v-model="row.f_input_date"
323
+ :value.sync="row.f_input_date"
324
+ :format="'yyyy-MM-dd HH:mm:ss'"
325
+ :show-reset-button="true">
326
+ </datepicker>
327
+ </div>
328
+ <div v-else>
329
+ {{ row.f_input_date }}
330
+ </div>
331
+ </td>
332
+ <td style="text-align: center;">{{ row.f_inputtor }}</td>
333
+ <td style="text-align: center;">{{ row.f_input_person }}</td>
334
+ <td style="text-align: center;">{{ row.f_operator }}</td>
335
+ <td style="text-align: center;">{{ row.f_meter_brand }}</td>
336
+ <td style="text-align: center;">{{ row.f_meter_style }}</td>
337
+ <td style="text-align: center;">{{ row.f_defendcard }}</td>
338
+ <td style="text-align: center;">{{ row.f_total_gas }}</td>
339
+ <td style="text-align: center;">{{ row.f_audit_state }}</td>
340
+ <td style="text-align: center;">{{ row.f_audit_person }}</td>
341
+ <td style="text-align: center;">{{ row.f_audit_date }}</td>
342
+ <td style="text-align: center;">{{ row.f_examinereason }}</td>
343
+ <td style="text-align: center;">{{ row.f_comments }}</td>
344
+ <td style="text-align: center;"><nobr>
345
+ <button v-if="row.f_notified_path" class="btn btn-link" @click.stop="$parent.$parent.$parent.imgShow(row.f_notified_path)">图像识别1</button>
346
+ <br>
347
+ <button v-if="row.f_notified2_path" class="btn btn-link" @click.stop="$parent.$parent.$parent.imgShow(row.f_notified2_path)">图像识别2</button>
348
+ <br>
349
+ <button v-if="row.f_notified3_path" class="btn btn-link" @click.stop="$parent.$parent.$parent.imgShow(row.f_notified3_path)">图像识别3</button>
350
+ </nobr></td>
351
+ <td style="text-align: center;">
352
+ <nobr>
353
+ <button type="button" name="button" class="button_search button_spacing width-60"
354
+ v-if="row.f_meter_state === '已抄表' && (row.id == row.maxid || !row.maxid)"
355
+ @click.stop="$parent.$parent.$parent.cancelAuditHand(row)">撤销
356
+ </button>
357
+ <button type="button" name="button" class="btn btn-danger"
358
+ v-if="row.f_meter_state === '未抄表'"
359
+ @click.stop="$parent.$parent.$parent.delectHand(row)">
360
+ 删除
361
+ </button>
362
+ </nobr>
363
+ </td>
364
+ </template>
365
+ </data-grid>
366
+ </criteria-paged>
367
+ <table class="table-hover">
368
+ <tr style="position: relative" class="table-bordered">
369
+ <td
370
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
371
+ 汇总信息
372
+ </td>
373
+ <td
374
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
375
+ 用气量:&emsp;{{ sumsmodel.f_oughtamount }}
376
+ </td>
377
+ </tr>
378
+ </table>
379
+ </div>
380
+ <modal :show.sync="danhu.show" :title='danhutitle' backdrop="false" coverstyle="danhumodal">
381
+ <article slot="modal-body" class="modal-body">
382
+ <div class="panel panel-primary datapanel">
383
+ <div class="row">
384
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">客户姓名:{{danhu.info.f_user_name}}</label>
385
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">客户编号:{{danhu.info.f_userinfo_code}}</label>
386
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">用户证号:{{danhu.info.f_book_no}}</label>
387
+ <label class="control-label col-sm-12 flex-row" style="transform: translate(0,8px)">客户地址:{{danhu.info.f_address}}</label>
388
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">上次抄表日期:{{danhu.info.f_input_date}}</label>
389
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">上期底数:{{danhu.info.f_last_tablebase}}</label>
390
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">本期用量:{{f_current_usage}}</label>
391
+ </div>
392
+ </div>
393
+ <div class="panel panel-primary datapanel">
394
+ <div class="row">
395
+ <div class="col-sm-6 flex-row" style="margin-top: 2px">
396
+ <label for="danhucode" class="control-label" style="transform: translate(0,8px)">客户编号</label>
397
+ <input id="danhucode" type="text" class="input_search " style="width: 60% !important;"
398
+ v-model="danhu.f_userinfo_code" v-ref:danhucode @keyup.enter.stop="danhuCodeSearch"
399
+ placeholder='客户编号'/>
400
+ </div>
401
+ <div class="col-sm-6 flex-row" style="margin-top: 2px">
402
+ <label for="danhubase" class="control-label" style="transform: translate(0,8px)">本期底数</label>
403
+ <input id="danhubase" type="number" class="input_search " style="width: 60% !important;"
404
+ v-model="danhu.f_new_tablebase" @keyup.enter.stop="downAndHand"
405
+ @blur="tableBaseBlur"
406
+ placeholder='本期底数'/>
407
+ </div>
408
+ </div>
409
+ </div>
410
+ <upload :blodid="row.f_userinfo_id" v-if="config.showupload" isremark="true" fusetype="物联网表收费"></upload>
411
+ </article>
412
+ <footer slot="modal-footer">
413
+ </footer>
414
+ </modal>
415
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true" coverstyle="modalContentRight">
416
+ <header slot="modal-header" class="modal-header">
417
+ 抄表图像识别照片
418
+ </header>
419
+ <article slot="modal-body" class="modal-body">
420
+ <div class="from-group">
421
+ <img-self :src="imgfilename" :width="750" :height="750"></img-self>
422
+ </div>
423
+ </article>
424
+ <footer slot="modal-footer" class="modal-footer">
425
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
426
+ </footer>
427
+ </modal>
428
+ </div>
429
+ </template>
430
+ <script>
431
+ import {PagedList, HttpResetClass} from 'vue-client'
432
+ import Vue from 'vue'
433
+ let readySomething = async function (self) {
434
+ await self.$LoadParams.loadParam()
435
+ self.initParams()
436
+ }
437
+ let readyGen = async function (self) {
438
+ self.getfield = self.config.excelHeaders
439
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
440
+ self.reflash()
441
+ }
442
+
443
+ export default {
444
+ title: '工商业抄表',
445
+ data () {
446
+ return {
447
+ priceModel: false,
448
+ initres: {
449
+ org: [this.$login.f.orgid],
450
+ dep: [],
451
+ user: []
452
+ },
453
+ f_audit_state: [{label: '全部', value: ''}, {label: '审核通过', value: `= '审核通过'`}, {label: '审核不通过', value: `= '审核不通过'`}],
454
+ sumsmodel: [],
455
+ meterbrands: [],
456
+ // 气表型号
457
+ meterstyle: {},
458
+ orgCondtionStr: '',
459
+ deletestate: false,
460
+ criteriaShow: false,
461
+ imgshow: false,
462
+ imgfilename: '',
463
+ model: new PagedList('api/af-revenue/sql/getIndustryCommerceHand', 50, {orderitem: this.orderDefault ? '"' + this.orderDefault + ' "' : `'f_hand_date desc'`}, {
464
+ f_oughtamount: 0,
465
+ f_oughtfee: 0
466
+ }),
467
+ config: {
468
+ // 导出列要和查询列相同
469
+ excelHeaders: {
470
+ 'f_user_id': '表编号',
471
+ 'f_meternumber': '表号',
472
+ 'f_inputtor': '抄表员',
473
+ 'f_last_input_date': '上次抄表时间',
474
+ 'f_input_date': '抄表日期',
475
+ 'f_userinfo_code': '客户编号',
476
+ 'f_address': '客户地址',
477
+ 'f_residential_area': '小区名称',
478
+ 'f_user_name': '客户姓名',
479
+ 'f_last_tablebase': '上期底数',
480
+ 'f_tablebase': '本期指数',
481
+ 'f_oughtamount': '应交气量',
482
+ 'f_input_person': '录入人员',
483
+ 'f_meter_classify': '气表分类',
484
+ 'f_meter_brand': '气表品牌',
485
+ 'f_meter_style': '气表型号',
486
+ 'f_user_phone': '客户电话',
487
+ 'f_comments': '备注',
488
+ 'f_audit_state': '审核状态',
489
+ 'f_audit_person': '审核人员',
490
+ 'f_audit_date': '审核时间',
491
+ 'f_examinereason': '审核未通过原因',
492
+ 'f_defendcard': '防盗卡号',
493
+ 'f_total_gas': '累购气量'
494
+ },
495
+ examine: true,
496
+ customCal: false
497
+ },
498
+ meter_state: false, // 是否显示计划下发按钮
499
+ downModel: {
500
+ downDate: Vue.$login.toStandardTimeString(),
501
+ downWay: 'downWithUserfiles',
502
+ downInputtor: []
503
+ },
504
+ inputtorModel: {
505
+ inputtor: [],
506
+ reason: ''
507
+ },
508
+ f_current_usage:'',
509
+ auditState: [{label: '全部', value: ''}, {label: '未抄表', value: '未抄表'}, {
510
+ label: '待审核',
511
+ value: '待审核'
512
+ }, {label: '已抄表', value: '已抄表'}],
513
+
514
+ plans: [], // 记录当前行是否被勾选
515
+ all: false, // 是否全选
516
+ show: false, // 下发日期模态框显示
517
+ unhandplan: [], // 之前是否有未抄表记录
518
+ downConfirm: false, // 下发若有未抄记录,确认框
519
+ uploadshow: false,
520
+ // 小区
521
+ residentialArea: [],
522
+
523
+ // downDate: this.$login.toStandardYearMonth().replace("-", ""),
524
+ msg: '',
525
+ condition: '',
526
+ orderDefault: 'f_hand_date',
527
+ orderFields: {
528
+ f_userinfo_id: 'no'
529
+ },
530
+ getfield: {},
531
+ outlet: '',
532
+ filiale: '',
533
+ condition2: '',
534
+ area: [],
535
+ inputtouPerson: [],
536
+ meters: [{label: '全部', value: ''}, {label: '机表', value: '机表'}, {label: '物联网表', value: '物联网表'}],
537
+ resultstate: this.$appdata.getParam('抄表结果状态'),
538
+ meterstates: [{label: '全部', value: ''}, {label: '未抄表', value: '未抄表'}, {label: '已抄表', value: '已抄表'}],
539
+ usertypes: this.$appdata.getParam('客户类型') ? [{
540
+ label: '全部',
541
+ value: ''
542
+ }, ...this.$appdata.getParam('客户类型')] : [],
543
+ splitdata: '',
544
+ f_filialeid: this.$login.f.orgid,
545
+ meterbooks: [],
546
+ upshow: false,
547
+ inputid: 0,
548
+ examineshow: false,
549
+ examinerow: null,
550
+ showfiles: false,
551
+ uploadText: '抄表',
552
+ examinetype: false,
553
+ danhu: {
554
+ show: false,
555
+ f_userinfo_code: '',
556
+ f_new_tablebase: '',
557
+ info: {}
558
+ },
559
+ showerr: false,
560
+ err: '',
561
+ // 请求对象(批量导入,查询进度使用)
562
+ HttpReset: new HttpResetClass(),
563
+ row: null,
564
+ // 应抄底数
565
+ should_base: 0,
566
+ // 计算公式
567
+ designFormulas: null
568
+ }
569
+ },
570
+ ready () {
571
+ readySomething(this).then(() => {
572
+ this.$emit('ready')
573
+ }).catch((error) => {
574
+ this.$emit('error', error)
575
+ })
576
+ this.getaddress()
577
+ readyGen(this)
578
+ },
579
+ mounted () {
580
+ console.log(this.inputid)
581
+ document.getElementById(this.inputid).focus()
582
+ },
583
+ methods: {
584
+ initParams() {
585
+ // 初始化气表品牌
586
+ let brandArr = []
587
+ this.$GetSaleParam.getGasbrand().forEach((item) => {
588
+ let temp = {}
589
+ temp.label = item.label
590
+ temp.value = item.value.f_meter_brand
591
+ brandArr.push(temp)
592
+ // 取出对应气表型号
593
+ let styleArr = []
594
+ for (let row of item.value.gasmodel) {
595
+ styleArr.push({label: row.label, value: row.value.f_meter_style})
596
+ }
597
+ this.meterstyle[temp.value] = styleArr
598
+ })
599
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
600
+ //初始化气表价格
601
+ this.prices = this.$GetSaleParam.getPrices();
602
+ },
603
+ tableBaseBlur () {
604
+ if (this.danhu.f_new_tablebase) {
605
+ this.f_current_usage = (this.danhu.f_new_tablebase -0) - (this.danhu.info.f_last_tablebase -0)
606
+ }
607
+ },
608
+ imgclose () {
609
+ this.imgshow = false
610
+ },
611
+ imgShow (val) {
612
+ this.imgfilename = `api/af-revenue/file/image/` + val
613
+ this.imgshow = true
614
+ },
615
+ async danhuCodeSearch () {
616
+ this.danhu.f_userinfo_code = this.danhu.f_userinfo_code.replace(/(^\s*)|(\s*$)/g, '')
617
+ await this.$resetpost('api/af-revenue/sql/getIndustryCommerceDanHu', {
618
+ data: {
619
+ f_userinfo_code: this.danhu.f_userinfo_code,
620
+ f_orgid: this.f_filialeid
621
+ }
622
+ },
623
+ {resolveMsg: null, rejectMsg: '查询用户信息失败,网络错误'}).then(res => {
624
+ if (res.data.length !== 1) {
625
+ this.$showAlert(res.data.length === 0 ? '没有查询到用户' : '查询到多条用户信息', 'warning', 3000)
626
+ return
627
+ }
628
+ if (res.data[0].f_meter_state === '未抄表') {
629
+ this.$showAlert('该用户有未抄表记录', 'warning', 3000)
630
+ return
631
+ }
632
+ this.danhu.info = res.data[0]
633
+ document.getElementById('danhubase').focus()
634
+ })
635
+ },
636
+ calculationBase (row) {
637
+ let oughtamount = null
638
+ if (row.f_tablebase) {
639
+ if (row.f_share_gas) {
640
+ oughtamount = (row.f_tablebase - 0 - (row.f_last_tablebase - 0)).toFixed(4) + (row.f_share_gas > 0 ? '+' : '') + row.f_share_gas.toFixed(3)
641
+ } else {
642
+ if (row.f_capacity && row.f_capacity > 0 && row.f_tablebase < row.f_last_tablebase) {
643
+ oughtamount = (row.f_tablebase - 0 + (row.f_capacity - row.f_last_tablebase)).toFixed(3)
644
+ } else {
645
+ oughtamount = (row.f_tablebase - 0 - (row.f_last_tablebase - 0)).toFixed(3)
646
+ }
647
+ }
648
+ } else {
649
+ oughtamount = 0
650
+ }
651
+ row.f_oughtamount = oughtamount
652
+ return oughtamount
653
+ },
654
+ cancelHand (row) {
655
+ if (this.config.examine) {
656
+ let handdate = new Date(row.f_hand_date)
657
+ let ima = new Date()
658
+ if (handdate.getMonth() == ima.getMonth()) {
659
+ this.cancelHand3(row)
660
+ } else {
661
+ if (!this.$login.r.find(value => value == '抄表隔月冲正')) {
662
+ this.$showMessage('当前登录用户没有【抄表隔月冲正】权限, 请联系管理员!')
663
+ } else {
664
+ this.cancelHand3(row)
665
+ }
666
+ }
667
+ } else {
668
+ this.cancelHand3(row)
669
+ }
670
+ },
671
+ cancelAuditHand (row) {
672
+ let param = {
673
+ f_hand_id: row.id,
674
+ operInfo: {
675
+ f_operator: this.$login.f.name,
676
+ f_operatorid: this.$login.f.id,
677
+ f_orgid: this.$login.f.orgid,
678
+ f_orgname: this.$login.f.orgs,
679
+ f_depid: this.$login.f.depids,
680
+ f_depname: this.$login.f.deps
681
+ }
682
+ }
683
+ let url = 'api/af-revenue/logic/IndustryCommerceHandCancel'
684
+ this.$resetpost(url, {data: param}, {warnMsg: '确定对这条记录进行撤销吗?'}).then(() => {
685
+ this.search()
686
+ this.close()
687
+ })
688
+ },
689
+ // 单户抄表
690
+ async downAndHand () {
691
+ if (!this.danhu.info.f_userinfo_code || this.danhu.info.f_userinfo_code === '') {
692
+ this.$showAlert(`请先查询用户信息`, 'warning', 2000)
693
+ return
694
+ }
695
+ if (this.danhu.f_new_tablebase < 0) {
696
+ this.$showAlert(`底数不能小于0,请注意!`, 'warning', 2000)
697
+ return
698
+ } else if (this.danhu.f_new_tablebase.toString().split('.').length > 1 && this.danhu.f_new_tablebase.toString().split('.')[1].length > 3) {
699
+ this.$showAlert(`底数最多只能输入小数点后3位,请注意!`, 'warning', 2000)
700
+ return
701
+ } else if (this.danhu.f_new_tablebase < this.danhu.info.f_tablebase && !this.danhu.info.f_capacity) {
702
+ this.$showAlert(`本期表底数不能低于上期表底数`, 'warning', 2000)
703
+ return
704
+ }
705
+ this.danhu.info.f_hand_date = this.$login.toStandardTimeString()
706
+ this.danhu.info.f_meter_source = '单户抄表'
707
+ this.danhu.info.f_operatorid = this.$login.f.id
708
+ this.danhu.info.f_operator = this.$login.f.name
709
+ this.danhu.info.f_inputtor = this.$login.f.name
710
+ this.danhu.info.f_orgid = this.$login.f.orgid
711
+ this.danhu.info.f_orgname = this.$login.f.orgs
712
+ this.danhu.info.f_depid = this.$login.f.depids
713
+ this.danhu.info.f_depname = this.$login.f.deps
714
+ this.danhu.info.f_input_person = this.$login.f.name
715
+ this.danhu.info.f_new_tablebase = this.danhu.f_new_tablebase
716
+ this.$resetpost('api/af-revenue/logic/IndustryCommerceHandEnter', {data: this.danhu.info}, {
717
+ resolveMsg: null,
718
+ rejectMsg: null
719
+ }).then((res) => {
720
+ this.$showAlert(`单户抄表成功!`, 'success', 2000)
721
+ this.danhuShow()
722
+ }).catch((error) => {
723
+ this.danhu.show = false
724
+ this.$showAlert(`抄表失败,请注意查看,失败原因:` + JSON.toString(error), 'danger', 2000)
725
+ })
726
+ },
727
+ danhuShow () {
728
+ this.model.params.startDate = this.$refs.paged.$refs.criteria.model.startDate
729
+ this.model.params.endDate = this.$refs.paged.$refs.criteria.model.endDate
730
+ this.downModel.downDate = this.$login.toStandardTimeString()
731
+ this.danhu = {
732
+ show: true,
733
+ f_userinfo_code: '',
734
+ f_new_tablebase: '',
735
+ info: {}
736
+ }
737
+ this.f_current_usage = ''
738
+ setTimeout(() => {
739
+ document.getElementById('danhucode').focus()
740
+ this.$refs.paged.$refs.criteria.search()
741
+ }, 100)
742
+ },
743
+ paycodefocus () {
744
+ this.$nextTick(() => {
745
+ this.$els.paycode.focus()
746
+ })
747
+ },
748
+ getRes (obj) {
749
+ this.orgCondtionStr = obj
750
+ },
751
+ async getaddress () {
752
+ console.log('开始获取小区')
753
+ let HttpReset = new HttpResetClass()
754
+ var data = await HttpReset.load('POST', 'api/af-revenue/sql/manage_getarealist', {
755
+ data: {
756
+ condition: `1=1 and s.f_filialeid = '${this.$login.f.orgid}'`
757
+ }
758
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
759
+ console.log('小区', data)
760
+ let house = []
761
+ house.push()
762
+ for (let row of data.data) {
763
+ console.log('开始保存小区')
764
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
765
+ }
766
+ this.residentialArea = house
767
+ },
768
+ hidden () {
769
+ this.criteriaShow = !this.criteriaShow
770
+ },
771
+ clear () {
772
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
773
+ this.$refs.paged.$refs.criteria.model[key] = []
774
+ })
775
+ },
776
+ search () {
777
+ // 查询前清空选择项
778
+ this.plans = []
779
+ this.$refs.paged.$refs.criteria.search()
780
+ },
781
+ selfSearch (args) {
782
+ this.meter_state = args.condition.includes('未下发')
783
+ this.inputtor_change = args.condition.includes('未抄表')
784
+ console.log('=====抄表1====', args.condition.includes('未抄表'))
785
+ console.log('=====抄表1====', this.deletestate)
786
+ if (args.condition.includes('未抄表')) {
787
+ this.deletestate = true
788
+ } else {
789
+ this.deletestate = false
790
+ }
791
+ console.log('=====抄表1====', this.deletestate)
792
+ if (!this.orgCondtionStr) {
793
+ args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
794
+ } else {
795
+ args.condition = `${args.condition}` + this.orgCondtionStr
796
+ }
797
+
798
+ // 抄表员查询条件
799
+ this.inputtouPerson = this.$refs.paged.$refs.criteria.model.f_inputtor
800
+ if (this.inputtouPerson.length !== 0) {
801
+ let str = JSON.stringify(this.inputtouPerson)
802
+ str = str.replace(/"/g, `'`)
803
+ str = str.replace(/\[/g, ``)
804
+ str = str.replace(/\]/g, ``)
805
+ console.log('=====抄表员model22222222222绑定====', str)
806
+ // 查询多个抄表员时条件
807
+ args.condition += ` and f_inputtor in ( ${str} )`
808
+ }
809
+ // 小区查询条件
810
+ this.area = this.$refs.paged.$refs.criteria.model.f_residential_area
811
+ console.log('=====小区model绑定====', this.area)
812
+ if (this.area.length !== 0) {
813
+ let str = JSON.stringify(this.area)
814
+ str = str.replace(/"/g, `'`)
815
+ str = str.replace(/\[/g, ``)
816
+ str = str.replace(/\]/g, ``)
817
+ console.log('=====小区model22222222222绑定====', str)
818
+ // 查询多个小区时条件
819
+ args.condition += ` and f_residential_area in ( ${str} )`
820
+ }
821
+
822
+ if (args.model.f_meter_brand && args.model.f_meter_brand.length > 0) {
823
+ if (args.model.f_meter_brand[0].f_meter_brand) {
824
+ args.condition = `${args.condition} and f_meter_brand = '${args.model.f_meter_brand[0].f_meter_brand}'`
825
+ }
826
+ }
827
+ this.model.params.startDate = this.$refs.paged.$refs.criteria.model.startDate
828
+ this.model.params.endDate = this.$refs.paged.$refs.criteria.model.endDate
829
+ this.condition2 = args.condition
830
+ console.log('selfsearch..', args.condition, this.model)
831
+ this.model.search(args.condition, this.model)
832
+ },
833
+ reflash () {
834
+ this.$refs.paged.$refs.criteria.model.f_orgid = `${Vue.$login.f.orgid}`
835
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStartAndEndDateString()[0]
836
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStartAndEndDateString()[1]
837
+ this.search()
838
+ },
839
+ beforenter (index, row) {
840
+ this.inputid = index + 1
841
+ // 限制本次抄表不能低于上次
842
+ if (row.f_tablebase) {
843
+ if (row.f_tablebase < 0) {
844
+ row.state = '失败'
845
+ Vue.set(row, 'error', '底数不能小于0')
846
+ this.speckText('底数不能小于0,请注意!')
847
+ } else if (this.danhu.f_new_tablebase.toString().split('.').length > 1 && this.danhu.f_new_tablebase.toString().split('.')[1].length > 3) {
848
+ row.state = '失败'
849
+ Vue.set(row, 'error', '底数最多只能输入小数点后3位')
850
+ this.speckText('底数最多只能输入小数点后3位,请注意!')
851
+ } else if (row.f_tablebase < row.f_last_tablebase && !row.f_capacity) {
852
+ row.state = '失败'
853
+ Vue.set(row, 'error', '本期表底数不能低于上期表底数')
854
+ this.speckText('本期表底数不能低于上期表底数,请注意!')
855
+ } else {
856
+ if (row.f_tablebase < row.f_last_tablebase) {
857
+ this.$showMessage('本次抄表已超越最大量程, 请熟知!')
858
+ }
859
+ // 抄表结果状态没选默认给正常
860
+ row.f_result_state = row.f_result_state ? row.f_result_state : '正常'
861
+ this.enter(index, row)
862
+ }
863
+ }
864
+ },
865
+ enter (index, row) {
866
+ console.log('录入数据。..', row)
867
+ let auditFlag = false
868
+ if (this.$appdata.getSingleValue('工商抄表审核') === '启用') {
869
+ auditFlag = true
870
+ }
871
+ if (auditFlag) {
872
+ let f_input_date = Vue.$login.toStandardTimeString()
873
+ let handplan = {
874
+ id: row.id,
875
+ f_oughtamount: row.f_oughtamount,
876
+ f_tablebase: row.f_tablebase,
877
+ f_hand_date: f_input_date,
878
+ f_input_date: f_input_date,
879
+ f_input_person: Vue.$login.f.name,
880
+ f_meter_state: '待审核',
881
+ f_meter_source: '手动录入',
882
+ f_operator: Vue.$login.f.name,
883
+ f_operatorid: Vue.$login.f.id,
884
+ f_orgid: Vue.$login.f.orgid,
885
+ f_orgname: Vue.$login.f.orgs,
886
+ f_depid: Vue.$login.f.depids,
887
+ f_depname: Vue.$login.f.deps
888
+ }
889
+ console.log('抄表负数。。0', handplan)
890
+ this.$resetpost('api/af-revenue/entity/save/t_yccustom_handplan', handplan, {
891
+ resolveMsg: null,
892
+ rejectMsg: '抄表数据保存出错!!!'
893
+ }).then((res) => {
894
+ row.f_meter_state = '待审核'
895
+ row.f_input_date = f_input_date
896
+ }).catch((error) => {
897
+ row.state = '失败'
898
+ Vue.set(row, 'error', JSON.stringify(error))
899
+ this.speckText('抄表录入出错,请注意!')
900
+ })
901
+ } else {
902
+ let f_input_date = Vue.$login.toStandardTimeString()
903
+ let handplan = {
904
+ id: row.id,
905
+ f_oughtamount: row.f_oughtamount,
906
+ f_tablebase: row.f_tablebase,
907
+ f_hand_date: f_input_date,
908
+ f_input_date: f_input_date,
909
+ f_input_person: Vue.$login.f.name,
910
+ f_meter_state: '已抄表',
911
+ f_meter_source: '手动录入',
912
+ f_operator: Vue.$login.f.name,
913
+ f_operatorid: Vue.$login.f.id,
914
+ f_orgid: Vue.$login.f.orgid,
915
+ f_orgname: Vue.$login.f.orgs,
916
+ f_depid: Vue.$login.f.depids,
917
+ f_depname: Vue.$login.f.deps
918
+ }
919
+ console.log('抄表负数。。0', handplan)
920
+ this.$resetpost('api/af-revenue/entity/save/t_yccustom_handplan', handplan, {
921
+ resolveMsg: null,
922
+ rejectMsg: '抄表数据保存出错!!!'
923
+ }).then((res) => {
924
+ row.f_meter_state = '已抄表'
925
+ row.f_input_date = f_input_date
926
+ let sql = `update t_userfiles set f_yc_meter_base = ${row.f_tablebase} where f_userfiles_id = '${row.f_userfiles_id}' `
927
+ this.$resetpost('api/af-revenue/logic/runSQL', { sql: sql })
928
+ }).catch((error) => {
929
+ row.state = '失败'
930
+ Vue.set(row, 'error', JSON.stringify(error))
931
+ this.speckText('抄表录入出错,请注意!')
932
+ })
933
+ }
934
+ },
935
+ clearError (row) {
936
+ if (row.f_tablebase === 0) {
937
+ row.f_tablebase = ''
938
+ }
939
+ Vue.set(row, 'error', null)
940
+ },
941
+ async speckText (str) {
942
+ var url = 'http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text=' + encodeURI(str)
943
+ await new Audio(url).play()
944
+ this.err = str
945
+ this.showerr = true
946
+ this.paycodefocus()
947
+ },
948
+ closeerr () {
949
+ this.showerr = false
950
+ },
951
+ // 删除这条计划
952
+ delectHand (row) {
953
+ let sql = `update t_yccustom_handplan set f_hand_state = '无效' where id = '${row.id}' `
954
+ this.$resetpost('api/af-revenue/logic/runSQL', { sql: sql }).then((res) => {
955
+ this.search()
956
+ })
957
+ },
958
+ cancelHand3 (row) {
959
+ // 抄表加入权限
960
+ if (!this.$login.r.find(value => value == '机表抄表冲正')) {
961
+ this.$showMessage('当前登录用户没有冲正权限, 请联系管理员!')
962
+ return
963
+ }
964
+ // console.log('抄表冲正。、。。、', row)
965
+ let param = {
966
+ f_hand_id: row.id,
967
+ operInfo: {
968
+ f_operator: this.$login.f.name,
969
+ f_operatorid: this.$login.f.id,
970
+ f_orgid: this.$login.f.orgid,
971
+ f_orgname: this.$login.f.orgs,
972
+ f_depid: this.$login.f.depids,
973
+ f_depname: this.$login.f.deps
974
+ }
975
+ }
976
+ let url = 'api/af-revenue/logic/sale_commonEnterCancel'
977
+ this.$resetpost(url, {data: param}, {warnMsg: '确定对这条记录进行撤销吗?'}).then(() => {
978
+ this.search()
979
+ this.close()
980
+ })
981
+ },
982
+ // 关闭下发计划得弹出框
983
+ close () {
984
+ this.show = false
985
+ this.inputtor_show = false
986
+ this.downConfirm = false
987
+ this.examineshow = false
988
+ this.examinetype = false
989
+ this.detailsShow = false
990
+ this.priceModel = false
991
+ // 初始化模态框数据
992
+ this.initModal()
993
+ if (this.uploadshow) {
994
+ this.uploadshow = false
995
+ // 讲选的文件清空
996
+ this.$refs.file.$el.querySelector('input').value = ''
997
+ }
998
+ },
999
+ initModal () {
1000
+ this.downModel = {
1001
+ downDate: Vue.$login.toStandardDateString(),
1002
+ downWay: 'downWithUserfiles',
1003
+ downInputtor: []
1004
+ }
1005
+ this.inputtorModel = {
1006
+ inputtor: [],
1007
+ reason: ''
1008
+ }
1009
+ },
1010
+ // 判断当前登陆人是不是子公司的人员
1011
+ isHead () {
1012
+ return this.$login.f.parent.parent.name.includes('统一资源管理')
1013
+ },
1014
+ sort (field, rule) {
1015
+ // 将所有排序方式设为不排序,实现相互排斥
1016
+ for (let key in this.orderFields) {
1017
+ if (key === field) {
1018
+ this.orderFields[key] = rule
1019
+ } else {
1020
+ this.orderFields[key] = 'no'
1021
+ }
1022
+ }
1023
+ // 如果新规则不排序,还原为默认排序
1024
+ if (rule === 'no') {
1025
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
1026
+ } else {
1027
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
1028
+ }
1029
+ this.search()
1030
+ }
1031
+ },
1032
+ watch: {
1033
+ 'detailsShow' (val) {
1034
+ if (!val) {
1035
+ this.should_base = 0
1036
+ this.designFormulas = null
1037
+ }
1038
+ }
1039
+ },
1040
+ computed: {
1041
+ danhutitle () {
1042
+ return '单户抄表 当前计划年月:' + this.downModel.downDate
1043
+ },
1044
+ getCondition () {
1045
+ return {
1046
+ startDate: this.$refs.paged.$refs.criteria.model.startDate,
1047
+ endDate: this.$refs.paged.$refs.criteria.model.endDate,
1048
+ orderitem: this.orderDefault ? this.orderDefault : 'id',
1049
+ condition: this.condition2
1050
+ }
1051
+ },
1052
+ inputtores () {
1053
+ // 获取抄表员
1054
+ console.log('获取抄表员', this.$login.f)
1055
+ let rs = []
1056
+ if (this.$login.f.f_gasman.length > 0) {
1057
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
1058
+ let temp = {
1059
+ label: this.$login.f.f_gasman[i].name,
1060
+ value: this.$login.f.f_gasman[i].name
1061
+ }
1062
+ rs.push(temp)
1063
+ }
1064
+ }
1065
+ this.inputtores2 = rs
1066
+ return [...rs]
1067
+ },
1068
+ // 界面细节权限
1069
+ jurisdiction () {
1070
+ console.log('抄表界面细节', this.$login.r)
1071
+ return this.$login.r ? this.$login.r : []
1072
+ }
1073
+ },
1074
+ events: {
1075
+ dblclick: function (row, index) {
1076
+ this.row = row
1077
+ this.detailsShow = true
1078
+ },
1079
+ // 删除Resid数组元素
1080
+ 'delResid' (val) {
1081
+ this.resid.$remove({id: val, f_biobid: ''})
1082
+ },
1083
+ // 增加Resid数组元素
1084
+ 'resid' (val) {
1085
+ console.log('-=', val)
1086
+ this.resid.push({id: val, f_biobid: ''})
1087
+ }
1088
+ }
1089
+ }
1090
+ </script>
1091
+ <style lang="less">
1092
+ #handManager {
1093
+ display: flex;
1094
+ justify-content: space-around;
1095
+ align-items: center;
1096
+
1097
+ .btn {
1098
+ margin: 0px;
1099
+ }
1100
+
1101
+ .hand-loading {
1102
+ border: 3px solid #ccc;
1103
+ border-right-color: #337ab7;
1104
+ border-radius: 50%;
1105
+ animation: spin 0.6s linear;
1106
+ position: absolute;
1107
+ animation-iteration-count: infinite;
1108
+ top: 0;
1109
+ right: 50%;
1110
+ z-index: 2;
1111
+ display: block;
1112
+ width: 28px;
1113
+ height: 28px;
1114
+ line-height: 28px;
1115
+ text-align: center;
1116
+ pointer-events: none;
1117
+ }
1118
+
1119
+ @keyframes spin {
1120
+ 100% {
1121
+ transform: rotate(360deg);
1122
+ }
1123
+ }
1124
+
1125
+ .detail-panel {
1126
+ text-align: center;
1127
+ color: #31708f;
1128
+ background-color: #e8f1f9;
1129
+ border-color: #F2F6FA;
1130
+ }
1131
+ }
1132
+
1133
+ #hand_manager_grid {
1134
+ thead {
1135
+ position: relative;
1136
+ z-index: 2;
1137
+ }
1138
+ }
1139
+
1140
+ #machineHandManager {
1141
+ .color-red {
1142
+ color: red;
1143
+ }
1144
+ }
1145
+ </style>