sale-client 3.6.310 → 3.6.311

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 (748) hide show
  1. package/build/dev-server.js +108 -108
  2. package/build/versionCheck.js +29 -29
  3. package/package.json +120 -120
  4. package/src/components/FilesManage/AddHostMeterUserList.vue +185 -185
  5. package/src/components/FilesManage/AddSubMeterUserList.vue +185 -185
  6. package/src/components/FilesManage/FileAddressList.vue +141 -141
  7. package/src/components/FilesManage/FileMergeInfo.vue +68 -68
  8. package/src/components/FilesManage/FileUserAddress.vue +776 -776
  9. package/src/components/FilesManage/FileUserAddressChange.vue +65 -65
  10. package/src/components/FilesManage/FileUserFiles.vue +1073 -1073
  11. package/src/components/FilesManage/FileUserMerge.vue +203 -203
  12. package/src/components/FilesManage/HostMeterAdd.vue +219 -219
  13. package/src/components/FilesManage/HostMeterList.vue +323 -323
  14. package/src/components/FilesManage/HostMeterUserList.vue +270 -270
  15. package/src/components/FilesManage/MeterinfoTest.vue +1207 -1207
  16. package/src/components/FilesManage/TemplateManage.vue +167 -167
  17. package/src/components/FilesManage/TotalSplit/SplitList.vue +154 -154
  18. package/src/components/FilesManage/TotalSplit/TotalSplitList.vue +83 -83
  19. package/src/components/FilesManage/UserAddressCollection.vue +694 -694
  20. package/src/components/FilesManage/UserAddressInFile.vue +646 -646
  21. package/src/components/FilesManage/UserDeviceInfoTest.vue +410 -410
  22. package/src/components/FilesManage/UserEssentialInfoTest.vue +602 -602
  23. package/src/components/FilesManage/UserGeneralInfoTest.vue +800 -800
  24. package/src/components/FilesManage/UserPaperInfoTest.vue +63 -63
  25. package/src/components/FilesManageNew/FileAddressList.vue +138 -138
  26. package/src/components/FilesManageNew/FileMergeInfo.vue +68 -68
  27. package/src/components/FilesManageNew/FileUserAddress.vue +484 -484
  28. package/src/components/FilesManageNew/FileUserAddressChange.vue +65 -65
  29. package/src/components/FilesManageNew/FileUserFiles.vue +749 -749
  30. package/src/components/FilesManageNew/FileUserMerge.vue +202 -202
  31. package/src/components/FilesManageNew/MeterinfoTest.vue +831 -831
  32. package/src/components/FilesManageNew/TotalSplit/SplitList.vue +154 -154
  33. package/src/components/FilesManageNew/TotalSplit/TotalSplitList.vue +83 -83
  34. package/src/components/FilesManageNew/UserGeneralInfoTest.vue +692 -692
  35. package/src/components/MaterialsManage/MaterialsBase.vue +163 -163
  36. package/src/components/MaterialsManage/MaterialsList.vue +186 -186
  37. package/src/components/SellGasCharge/ChargeCancel/CardMeterChargeCancel.vue +395 -395
  38. package/src/components/SellGasCharge/MeterCharge/CustomInvoice.vue +282 -282
  39. package/src/components/SellGasCharge/MeterChargeforUser/ChargeUserCenter.vue +183 -183
  40. package/src/components/SellGasCharge/MeterChargeforUser/ChargeUserManager.vue +112 -112
  41. package/src/components/SellGasCharge/MeterChargeforUser/ChargeUserlist.vue +82 -82
  42. package/src/components/SellGasCharge/MeterTrace/MeterList.vue +142 -142
  43. package/src/components/SellGasCharge/MeterTrace/MeterTrace.vue +222 -222
  44. package/src/components/UserFiles/AdjustableBox/AddBox.vue +343 -343
  45. package/src/components/UserFiles/AdjustableBox/BOXUserList.vue +54 -54
  46. package/src/components/UserFiles/AdjustableBox/BoxList.vue +186 -186
  47. package/src/components/UserFiles/AreaList.vue +84 -84
  48. package/src/components/UserFiles/Meterinfo.vue +428 -428
  49. package/src/components/UserFiles/NewAreaInfo.vue +556 -556
  50. package/src/components/UserFiles/UserFiles.vue +459 -459
  51. package/src/components/UserFiles/UserGeneralInfo.vue +378 -378
  52. package/src/components/UserFiles/UserPriceChangeHistory.vue +66 -66
  53. package/src/components/UserFiles/UserPriceChangeManage.vue +662 -662
  54. package/src/components/UserFiles/XieKaUser/AddUser.vue +208 -208
  55. package/src/components/UserFiles/XieKaUser/UsersList.vue +269 -269
  56. package/src/components/UserFiles/XieKaUser/XieKaManager.vue +148 -148
  57. package/src/components/UserFiles/admissibility.vue +46 -46
  58. package/src/components/UserFiles/batchUpdateInputtor.vue +347 -347
  59. package/src/components/WechatManage/Knowledge.vue +439 -439
  60. package/src/components/WechatManage/KnowledgeAdd.vue +326 -326
  61. package/src/components/WechatManage/KnowledgeModify.vue +325 -325
  62. package/src/components/WechatManage/KnowledgeRecord.vue +64 -64
  63. package/src/components/WechatManage/OrderCenter/Step.vue +153 -153
  64. package/src/components/WechatManage/OrderCenter/orderList.vue +258 -258
  65. package/src/components/WechatManage/OutLets.vue +461 -461
  66. package/src/components/WechatManage/OutLetsRecord.vue +65 -65
  67. package/src/components/WechatManage/Stopgas.vue +240 -240
  68. package/src/components/WechatManage/UserNoticeList.vue +745 -745
  69. package/src/components/WechatManage/UserNoticeRecord.vue +106 -106
  70. package/src/components/archives/ArchivesAdd.vue +190 -190
  71. package/src/components/archives/ArchivesList.vue +219 -219
  72. package/src/components/archives/UserfilesList.vue +351 -351
  73. package/src/components/baichuan/ChangeTable.vue +284 -284
  74. package/src/components/baichuan/newTableInfo.vue +202 -202
  75. package/src/components/charge/ChargeList.vue +948 -948
  76. package/src/components/charge/ChargeManage.vue +316 -316
  77. package/src/components/charge/ChargeManageOther.vue +204 -204
  78. package/src/components/charge/ChargeManageSell.vue +202 -202
  79. package/src/components/charge/ChargeModal.vue +101 -101
  80. package/src/components/charge/ChargeOper.vue +285 -285
  81. package/src/components/charge/ChargeOtherOper.vue +195 -195
  82. package/src/components/charge/HandList.vue +121 -121
  83. package/src/components/charge/NfcCardReplacement.vue +88 -88
  84. package/src/components/charge/business/CardChangeFill.vue +627 -627
  85. package/src/components/charge/business/CardMeterCenter.vue +980 -980
  86. package/src/components/charge/business/ChangeMeterAddGas.vue +559 -559
  87. package/src/components/charge/business/DigitalCharge.vue +440 -440
  88. package/src/components/charge/business/FilesComplete.vue +254 -254
  89. package/src/components/charge/business/IOT/IotChangeFill.vue +488 -488
  90. package/src/components/charge/business/IOTMeterCenter.vue +871 -871
  91. package/src/components/charge/business/IotOpen.vue +78 -78
  92. package/src/components/charge/business/NoCardMeterCenter.vue +498 -498
  93. package/src/components/charge/business/OtherCharge.vue +341 -341
  94. package/src/components/charge/business/OtherChargeByPay.vue +477 -477
  95. package/src/components/charge/business/OtherChargeNew.vue +614 -614
  96. package/src/components/charge/business/PriceChangeCompensation/IotCompensation.vue +307 -307
  97. package/src/components/charge/business/PriceChangeCompensation/JbCompensation.vue +343 -343
  98. package/src/components/charge/business/PriceChangeCompensation/SurplusRecordDetail.vue +72 -72
  99. package/src/components/charge/business/RepairCharge.vue +347 -347
  100. package/src/components/charge/business/ReturnMoneyExamine.vue +274 -274
  101. package/src/components/charge/business/ShowCardSellGas.vue +931 -931
  102. package/src/components/charge/business/ShowCardSellGasJB.vue +202 -202
  103. package/src/components/charge/business/ShowCardSellGasWeb.vue +203 -203
  104. package/src/components/charge/business/ShowCiTiaoCard.vue +169 -169
  105. package/src/components/charge/business/depositCharge/DepositCharge.vue +461 -461
  106. package/src/components/charge/business/machine/MachineChangeFill.vue +81 -81
  107. package/src/components/charge/business/machine/MachineCharge.vue +173 -173
  108. package/src/components/charge/business/machine/MachineMeterCenter.vue +691 -691
  109. package/src/components/charge/business/machine/MachineMeterPartCenter.vue +389 -389
  110. package/src/components/charge/business/machine/MachinePartCharge.vue +143 -143
  111. package/src/components/charge/business/machine/OweList.vue +157 -157
  112. package/src/components/charge/business/refund/DropTableRefund.vue +229 -229
  113. package/src/components/charge/business/refund/IOTRefund.vue +267 -267
  114. package/src/components/charge/business/refund/machineRefund.vue +223 -223
  115. package/src/components/charge/business/refund_copy/IOTRefund.vue +237 -237
  116. package/src/components/charge/business/refund_copy/machineRefund.vue +193 -193
  117. package/src/components/charge/bzjcancel.vue +309 -309
  118. package/src/components/charge/detailinfo/DevicesDetail.vue +69 -69
  119. package/src/components/charge/detailinfo/OldmeterDetail.vue +88 -88
  120. package/src/components/charge/detailinfo/OtherChargeRecord.vue +81 -81
  121. package/src/components/charge/detailinfo/UserfilesDetail.vue +79 -79
  122. package/src/components/charge/detailinfo/UserinfoDetail.vue +66 -66
  123. package/src/components/charge/detailinfo/price/MixpriceDetail.vue +48 -48
  124. package/src/components/charge/detailinfo/price/StairpriceDetail.vue +129 -129
  125. package/src/components/charge/gasloss/gasLossDetail.vue +262 -262
  126. package/src/components/charge/gasloss/gasLossForm.vue +90 -90
  127. package/src/components/charge/gasloss/gasLossOperate.vue +383 -383
  128. package/src/components/charge/gasloss/gasLossRecords.vue +294 -294
  129. package/src/components/charge/gasmove.vue +249 -249
  130. package/src/components/chargeBatch/BatchCharge.vue +374 -374
  131. package/src/components/chargeBatch/BatchChargeDetail.vue +72 -72
  132. package/src/components/chargeBatch/CardList.vue +518 -518
  133. package/src/components/chargeBatch/ChargeBatchList.vue +460 -460
  134. package/src/components/chargeBatch/ChargeGroupList.vue +337 -337
  135. package/src/components/chargeBatch/ChargeManageBatch.vue +214 -214
  136. package/src/components/chargeBatch/ChargeManageGroup.vue +216 -216
  137. package/src/components/chargeBatch/OweRecordQuery.vue +126 -126
  138. package/src/components/chargeBatch/RecordCancel.vue +346 -346
  139. package/src/components/chargeBatch/ReissueBillBatch.vue +97 -97
  140. package/src/components/chargeBatch/groupFeeDeduction.vue +118 -118
  141. package/src/components/chargeBatch/groupRefund.vue +181 -181
  142. package/src/components/chargeNew/BookBill.vue +121 -121
  143. package/src/components/chargeNew/ChargeList.vue +934 -934
  144. package/src/components/chargeNew/ChargeManageNew.vue +232 -232
  145. package/src/components/chargeNew/ChargeOper.vue +234 -234
  146. package/src/components/chargeNew/MeterReset.vue +81 -81
  147. package/src/components/chargeNew/SendBook.vue +107 -107
  148. package/src/components/chargeNew/thirdSurplus.vue +356 -356
  149. package/src/components/common/limit/LimitHistory.vue +299 -299
  150. package/src/components/common/limit/LimitList.vue +634 -634
  151. package/src/components/common/searchuploadfile/uploadFileSearch.vue +138 -138
  152. package/src/components/common/searchuploadfile/uploadFilesHistory.vue +187 -187
  153. package/src/components/common/userinfo_detail/SplitPrice.vue +354 -354
  154. package/src/components/common/userinfo_detail/TableUsageChart.vue +81 -81
  155. package/src/components/common/userinfo_detail/UserBaseInfo.vue +379 -379
  156. package/src/components/common/userinfo_detail/UserBaseInfoNew.vue +672 -672
  157. package/src/components/common/userinfo_detail/UserInfoDetailManage.vue +143 -143
  158. package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +218 -218
  159. package/src/components/common/userinfo_detail/contractSig.vue +51 -51
  160. package/src/components/common/userinfo_detail/contractSigningBrain.vue +109 -109
  161. package/src/components/common/userinfo_detail/ic_detail/AutomaticPurse.vue +299 -299
  162. package/src/components/common/userinfo_detail/ic_detail/CardHandRecord.vue +268 -268
  163. package/src/components/common/userinfo_detail/ic_detail/ChangeMeterQueryUser.vue +240 -240
  164. package/src/components/common/userinfo_detail/ic_detail/ChangeRecord.vue +235 -235
  165. package/src/components/common/userinfo_detail/ic_detail/ChargeQueryUser.vue +530 -530
  166. package/src/components/common/userinfo_detail/ic_detail/ChargeRecordQuery.vue +102 -102
  167. package/src/components/common/userinfo_detail/ic_detail/DeveiceRecord.vue +251 -251
  168. package/src/components/common/userinfo_detail/ic_detail/FillCardQueryUser.vue +210 -210
  169. package/src/components/common/userinfo_detail/ic_detail/FillGasQueryUser.vue +229 -229
  170. package/src/components/common/userinfo_detail/ic_detail/HandQueryUser.vue +387 -387
  171. package/src/components/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +261 -261
  172. package/src/components/common/userinfo_detail/ic_detail/MeterParam.vue +152 -152
  173. package/src/components/common/userinfo_detail/ic_detail/OtherChargeQueryUser.vue +251 -251
  174. package/src/components/common/userinfo_detail/ic_detail/OtherChargeQueryUserDetail.vue +81 -81
  175. package/src/components/common/userinfo_detail/ic_detail/PriceAdjustmentQueryUser.vue +313 -313
  176. package/src/components/common/userinfo_detail/ic_detail/PriceChangeQueryUser.vue +194 -194
  177. package/src/components/common/userinfo_detail/ic_detail/RecordQueryUser.vue +252 -252
  178. package/src/components/common/userinfo_detail/ic_detail/Repurchase.vue +132 -132
  179. package/src/components/common/userinfo_detail/ic_detail/TransferQueryUser.vue +223 -223
  180. package/src/components/common/userinfo_detail/ic_detail/UserDeviceQuery.vue +252 -252
  181. package/src/components/common/userinfo_detail/ic_detail/WebAutomaticPurse.vue +298 -298
  182. package/src/components/common/userinfo_detail/ic_detail/WebChargeQueryUser.vue +378 -378
  183. package/src/components/common/userinfo_detail/ic_detail/WebHandQueryUser.vue +368 -368
  184. package/src/components/common/userinfo_detail/ic_detail/contractSigningList.vue +117 -117
  185. package/src/components/common/userinfo_detail/iot_detail/QueryHistoryInstruct.vue +304 -304
  186. package/src/components/common/userinfo_detail/iot_detail/QueryInstruct.vue +342 -342
  187. package/src/components/common/userinfo_detail/iot_detail/WatchCollection.vue +115 -115
  188. package/src/components/common/userinfo_detail/iot_detail/WatchDealWarning.vue +236 -236
  189. package/src/components/cooker/WareRecord.vue +85 -85
  190. package/src/components/matchmakingManagement/PlatformAddEdit.vue +145 -145
  191. package/src/components/matchmakingManagement/PlatformList.vue +150 -150
  192. package/src/components/meterBook/MeterList.vue +187 -187
  193. package/src/components/meterBook/MeterMsg.vue +194 -194
  194. package/src/components/meterBook/addMeterBook.vue +153 -153
  195. package/src/components/meterBook/addUserToBook.vue +155 -155
  196. package/src/components/newBill/CardList.vue +536 -536
  197. package/src/components/newBill/CardMeterCenter.vue +902 -902
  198. package/src/components/newBill/IOTMeterCenter.vue +797 -797
  199. package/src/components/newBill/NoCardMeterCenter.vue +466 -466
  200. package/src/components/newBill/PrintBill.vue +146 -146
  201. package/src/components/newBill/ReissueBill.vue +329 -329
  202. package/src/components/newpriceadjustment/NewPriceAdjustment.vue +906 -906
  203. package/src/components/newpriceadjustment/NewPriceAdjustmentSell.vue +596 -596
  204. package/src/components/newpriceadjustment/NewPriceAdjustmentWebmeter.vue +600 -600
  205. package/src/components/priceadjustment/adjustPrice.vue +121 -121
  206. package/src/components/priceadjustment/adjustUser.vue +247 -247
  207. package/src/components/revenue/Common/EticketModal.vue +95 -95
  208. package/src/components/revenue/Common/EticketPrint.vue +230 -230
  209. package/src/components/revenue/Common/EticketPrintAsync.vue +196 -196
  210. package/src/components/revenue/Common/LimitGas.vue +231 -231
  211. package/src/components/revenue/Common/MeterMessage.vue +184 -184
  212. package/src/components/revenue/Common/Movemeter.vue +467 -467
  213. package/src/components/revenue/Common/PaymentCode.vue +159 -159
  214. package/src/components/revenue/Common/PrintBill.vue +134 -134
  215. package/src/components/revenue/Common/ReissueBill.vue +294 -294
  216. package/src/components/revenue/Common/ValidateBill.vue +56 -56
  217. package/src/components/revenue/Common/batchDisable.vue +503 -503
  218. package/src/components/revenue/Common/uploadFiles.vue +503 -503
  219. package/src/components/revenue/Common/userFlowSheet.vue +154 -154
  220. package/src/components/revenue/HandManager/CardHand.vue +873 -873
  221. package/src/components/revenue/HandManager/EstimateCardManager.vue +1184 -1184
  222. package/src/components/revenue/HandManager/EstimateManager.vue +1769 -1769
  223. package/src/components/revenue/HandManager/HandManager.vue +1831 -1831
  224. package/src/components/revenue/HandManager/HandManagerCard.vue +1163 -1163
  225. package/src/components/revenue/HandManager/MbpeopleList.vue +498 -498
  226. package/src/components/revenue/HandManager/MeterBookAdd.vue +396 -396
  227. package/src/components/revenue/HandManager/MeterBookList.vue +488 -488
  228. package/src/components/revenue/HandManager/MeterBookUser.vue +724 -724
  229. package/src/components/revenue/HandManager/OverdueSetList.vue +295 -295
  230. package/src/components/revenue/HandManager/OverdueSetUser.vue +93 -93
  231. package/src/components/revenue/HandManager/PriceAdjustment.vue +377 -377
  232. package/src/components/revenue/HandManager/PriceAdjustmentCard.vue +377 -377
  233. package/src/components/revenue/HandManager/PriceAdjustmentSelling.vue +377 -377
  234. package/src/components/revenue/HandManager/PriceAdjustmentWebmeter.vue +430 -430
  235. package/src/components/revenue/HandManager/RemainAdjustment.vue +282 -282
  236. package/src/components/revenue/HandManager/VolumeAdjustment/VolumeAdjustmentManage.vue +406 -406
  237. package/src/components/revenue/HandManager/meterbookEntry.vue +90 -90
  238. package/src/components/revenue/HandManager/openEticket/HandUserManage.vue +154 -154
  239. package/src/components/revenue/HandManager/openEticket/HasOpenHand.vue +149 -149
  240. package/src/components/revenue/HandManager/openEticket/HasOpenReceipt.vue +137 -137
  241. package/src/components/revenue/HandManager/openEticket/UnOpenHand.vue +167 -167
  242. package/src/components/revenue/HandManager/openEticket/UnOpenReceipt.vue +221 -221
  243. package/src/components/revenue/HandManager/qtxCardHand/GassaleHand.vue +228 -228
  244. package/src/components/revenue/HandManager/qtxCardHand/TrqtmHand.vue +292 -292
  245. package/src/components/revenue/IssuanceManagement/batchCardIssuance.vue +339 -339
  246. package/src/components/revenue/analysis/FarawayQuery.vue +392 -392
  247. package/src/components/revenue/analysis/outStockQuery.vue +288 -288
  248. package/src/components/revenue/bank/BankForm.vue +156 -156
  249. package/src/components/revenue/bank/BankList.vue +143 -143
  250. package/src/components/revenue/bank/bankOffer.vue +199 -199
  251. package/src/components/revenue/bank/bankReturn.vue +217 -217
  252. package/src/components/revenue/base/GasWaterSearch.vue +195 -195
  253. package/src/components/revenue/base/PurchaseWater.vue +237 -237
  254. package/src/components/revenue/base/UserList.vue +480 -480
  255. package/src/components/revenue/base/leftview/CheckGas.vue +55 -55
  256. package/src/components/revenue/base/leftview/MeterUse.vue +140 -140
  257. package/src/components/revenue/base/leftview/MixPriceInfo.vue +60 -60
  258. package/src/components/revenue/base/leftview/RecordStoryinfo.vue +131 -131
  259. package/src/components/revenue/base/leftview/SafeCheck.vue +339 -339
  260. package/src/components/revenue/base/leftview/ServiceRepair.vue +128 -128
  261. package/src/components/revenue/base/leftview/Stairinfo.vue +156 -156
  262. package/src/components/revenue/base/leftview/UserFees.vue +57 -57
  263. package/src/components/revenue/base/leftview/Userinfo.vue +279 -279
  264. package/src/components/revenue/base/leftview/billMessage.vue +125 -125
  265. package/src/components/revenue/base/rightview/CardList.vue +558 -558
  266. package/src/components/revenue/base/rightview/InstallCardList.vue +298 -298
  267. package/src/components/revenue/base/rightview/RecordCancel.vue +338 -338
  268. package/src/components/revenue/base/rightview/canceldetail/AutoaccountsCancelDetail.vue +82 -82
  269. package/src/components/revenue/base/rightview/canceldetail/CardmetercenterCancelDetail.vue +64 -64
  270. package/src/components/revenue/base/rightview/canceldetail/ChangeMeterCancelDetail.vue +76 -76
  271. package/src/components/revenue/base/rightview/canceldetail/IOTMeterCenterCancelDetail.vue +62 -62
  272. package/src/components/revenue/base/rightview/canceldetail/MachinemetercenterCancelDetail.vue +86 -86
  273. package/src/components/revenue/base/rightview/canceldetail/OtherchargeCancelDetail.vue +62 -62
  274. package/src/components/revenue/base/rightview/canceldetail/ReplacecardmanageCancelDetail.vue +59 -59
  275. package/src/components/revenue/base/rightview/canceldetail/TransfermanageCancelDetail.vue +63 -63
  276. package/src/components/revenue/base/rightview/carddetail/AddUserDetail.vue +62 -62
  277. package/src/components/revenue/base/rightview/carddetail/AdvanceDeliveryDetail.vue +50 -50
  278. package/src/components/revenue/base/rightview/carddetail/AutoAccountsDetail.vue +77 -77
  279. package/src/components/revenue/base/rightview/carddetail/BankDKDetail.vue +77 -77
  280. package/src/components/revenue/base/rightview/carddetail/BankPay.vue +79 -79
  281. package/src/components/revenue/base/rightview/carddetail/BlacklistDetail.vue +63 -63
  282. package/src/components/revenue/base/rightview/carddetail/BuildFeeDetail.vue +77 -77
  283. package/src/components/revenue/base/rightview/carddetail/CancellationDetail.vue +58 -58
  284. package/src/components/revenue/base/rightview/carddetail/CardMeterCenterDetail.vue +72 -72
  285. package/src/components/revenue/base/rightview/carddetail/CardOverUserDetail.vue +64 -64
  286. package/src/components/revenue/base/rightview/carddetail/ChangeFeeDetail.vue +116 -116
  287. package/src/components/revenue/base/rightview/carddetail/ChangeFlowmeterDetail.vue +119 -119
  288. package/src/components/revenue/base/rightview/carddetail/ChangeMeterDetail.vue +80 -80
  289. package/src/components/revenue/base/rightview/carddetail/DisableManageDetail.vue +60 -60
  290. package/src/components/revenue/base/rightview/carddetail/EnableManageDetail.vue +53 -53
  291. package/src/components/revenue/base/rightview/carddetail/FeeDeductionDetail.vue +70 -70
  292. package/src/components/revenue/base/rightview/carddetail/GarbageDetail.vue +59 -59
  293. package/src/components/revenue/base/rightview/carddetail/GasLossDetail.vue +52 -52
  294. package/src/components/revenue/base/rightview/carddetail/GasPriceChangeDetail.vue +58 -58
  295. package/src/components/revenue/base/rightview/carddetail/IOTMeterCenterDetail.vue +62 -62
  296. package/src/components/revenue/base/rightview/carddetail/InputtorChangeDetail.vue +59 -59
  297. package/src/components/revenue/base/rightview/carddetail/MachineMeterCenterDetail.vue +72 -72
  298. package/src/components/revenue/base/rightview/carddetail/OffGasAddGasDetail.vue +68 -68
  299. package/src/components/revenue/base/rightview/carddetail/OpenMeterDetail.vue +48 -48
  300. package/src/components/revenue/base/rightview/carddetail/OtherChargeDetail.vue +67 -67
  301. package/src/components/revenue/base/rightview/carddetail/OverUserChangeDetail.vue +61 -61
  302. package/src/components/revenue/base/rightview/carddetail/PriceAdjustmentDetail.vue +76 -76
  303. package/src/components/revenue/base/rightview/carddetail/ReduceFeeDetail.vue +77 -77
  304. package/src/components/revenue/base/rightview/carddetail/RefundDetail.vue +62 -62
  305. package/src/components/revenue/base/rightview/carddetail/ReissueBill.vue +111 -111
  306. package/src/components/revenue/base/rightview/carddetail/RepairFeeDeduction.vue +70 -70
  307. package/src/components/revenue/base/rightview/carddetail/ReplaceCardManageDetail.vue +51 -51
  308. package/src/components/revenue/base/rightview/carddetail/ReturnMoney.vue +52 -52
  309. package/src/components/revenue/base/rightview/carddetail/SalecardgasDetail.vue +62 -62
  310. package/src/components/revenue/base/rightview/carddetail/StopApplyDetail.vue +70 -70
  311. package/src/components/revenue/base/rightview/carddetail/TransferManageDetail.vue +61 -61
  312. package/src/components/revenue/base/rightview/carddetail/UserChangeDetail.vue +79 -79
  313. package/src/components/revenue/base/rightview/carddetail/WeChatPay.vue +79 -79
  314. package/src/components/revenue/base/rightview/carddetail/WithGas.vue +70 -70
  315. package/src/components/revenue/base/rightview/carddetail/machineCardDetail.vue +48 -48
  316. package/src/components/revenue/base/rightview/carddetail/movegasDetail.vue +66 -66
  317. package/src/components/revenue/base/rightview/carddetail/movemeterdetail.vue +74 -74
  318. package/src/components/revenue/base/rightview/reissuebill/OtherBill.vue +197 -197
  319. package/src/components/revenue/base/rightview/valueaddinfo.vue +325 -325
  320. package/src/components/revenue/batchDeduction/batchDeduction.vue +47 -47
  321. package/src/components/revenue/batchDeduction/batchDeductionList.vue +238 -238
  322. package/src/components/revenue/batchDeduction/batchDeductionOper.vue +119 -119
  323. package/src/components/revenue/batchPreloads/batchPreloads.vue +41 -41
  324. package/src/components/revenue/batchPreloads/batchPreloadsCharge.vue +117 -117
  325. package/src/components/revenue/batchPreloads/batchPreloadsList.vue +234 -234
  326. package/src/components/revenue/cancelHandplan/IotHandplanCanel.vue +88 -88
  327. package/src/components/revenue/cardHandManage/cardDown.vue +1112 -1112
  328. package/src/components/revenue/cardHandManage/cardHandAudit.vue +483 -483
  329. package/src/components/revenue/cardHandManage/cardsHand.vue +891 -891
  330. package/src/components/revenue/changeInsurance/InsuranceAdd.vue +411 -411
  331. package/src/components/revenue/changeInsurance/InsuranceChargesDetails.vue +405 -405
  332. package/src/components/revenue/changeInsurance/InsuranceList.vue +264 -264
  333. package/src/components/revenue/changeInsurance/InsuranceRecord.vue +129 -129
  334. package/src/components/revenue/changeInsurance/UserInsurance.vue +77 -77
  335. package/src/components/revenue/comprehen/Bill/CustQueryEticket.vue +271 -271
  336. package/src/components/revenue/comprehen/Bill/CustomInvoice.vue +327 -327
  337. package/src/components/revenue/comprehen/Bill/Eticket/EticketOpenCard.vue +331 -331
  338. package/src/components/revenue/comprehen/Bill/Eticket/EticketOpenJBPage.vue +311 -311
  339. package/src/components/revenue/comprehen/Bill/Eticket/EticketOpenPage.vue +329 -329
  340. package/src/components/revenue/comprehen/Bill/Eticket/EticketRecordList.vue +269 -269
  341. package/src/components/revenue/comprehen/Bill/EticketManage.vue +198 -198
  342. package/src/components/revenue/comprehen/Bill/EticketRecordList.vue +354 -354
  343. package/src/components/revenue/comprehen/Bill/EticketV4/CustQueryEticket.vue +333 -333
  344. package/src/components/revenue/comprehen/Bill/EticketV4/EticketManage.vue +67 -67
  345. package/src/components/revenue/comprehen/Bill/EticketV4/EticketOpenCard.vue +348 -348
  346. package/src/components/revenue/comprehen/Bill/EticketV4/EticketOpenJBPage.vue +349 -349
  347. package/src/components/revenue/comprehen/Bill/EticketV4/EticketOpenPage.vue +340 -340
  348. package/src/components/revenue/comprehen/Bill/EticketV4/EticketRecordList.vue +400 -400
  349. package/src/components/revenue/comprehen/Bill/asyncEticket/CustQueryEticketAsync.vue +308 -308
  350. package/src/components/revenue/comprehen/Bill/paper/AddBill.vue +186 -186
  351. package/src/components/revenue/comprehen/Bill/paper/BillChangeDetail.vue +57 -57
  352. package/src/components/revenue/comprehen/Bill/paper/BillDetail.vue +289 -289
  353. package/src/components/revenue/comprehen/Bill/paper/BillList.vue +238 -238
  354. package/src/components/revenue/comprehen/Bill/paperbill/DistributionDetail.vue +186 -186
  355. package/src/components/revenue/comprehen/Bill/paperbill/DistributionGather.vue +139 -139
  356. package/src/components/revenue/comprehen/CardManage/CardAllotEdit.vue +171 -171
  357. package/src/components/revenue/comprehen/CardManage/CardAllotList.vue +110 -110
  358. package/src/components/revenue/comprehen/CardManage/CardDetailEdit.vue +130 -130
  359. package/src/components/revenue/comprehen/CardManage/CardDetailList.vue +110 -110
  360. package/src/components/revenue/comprehen/ComprehenOperation/BankPayment/BankPayment.vue +300 -300
  361. package/src/components/revenue/comprehen/ComprehenOperation/BankPayment/BankPaymentConstrast.vue +301 -301
  362. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/BatchCancellation.vue +245 -245
  363. package/src/components/revenue/comprehen/ComprehenOperation/BatchChange/ChangeMeterReader.vue +93 -93
  364. package/src/components/revenue/comprehen/ComprehenOperation/ChangeAccount/TransferManage.vue +533 -533
  365. package/src/components/revenue/comprehen/ComprehenOperation/ChangeAccount/TransferRecords.vue +236 -236
  366. package/src/components/revenue/comprehen/ComprehenOperation/ChangeAccount/Transferlist.vue +209 -209
  367. package/src/components/revenue/comprehen/ComprehenOperation/ChangeMeter/ChangeNewMeter.vue +562 -562
  368. package/src/components/revenue/comprehen/ComprehenOperation/ChangeMeter/IOTMeter.vue +133 -133
  369. package/src/components/revenue/comprehen/ComprehenOperation/ChangeMeter/MachineMeter.vue +114 -114
  370. package/src/components/revenue/comprehen/ComprehenOperation/FeeDeduction/feeDeduction.vue +201 -201
  371. package/src/components/revenue/comprehen/ComprehenOperation/FeeDeduction/feeMachine.vue +169 -169
  372. package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/icTable.vue +255 -255
  373. package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/iotTable.vue +162 -162
  374. package/src/components/revenue/comprehen/ComprehenOperation/MeterDisable/DisableManage.vue +95 -95
  375. package/src/components/revenue/comprehen/ComprehenOperation/MeterEnable/EnableManage.vue +186 -186
  376. package/src/components/revenue/comprehen/ComprehenOperation/OffGasAddGas/OffGasAddGas.vue +335 -335
  377. package/src/components/revenue/comprehen/ComprehenOperation/OrderDetails/OrderDetails.vue +412 -412
  378. package/src/components/revenue/comprehen/ComprehenOperation/OtherGas/OtherGas.vue +508 -508
  379. package/src/components/revenue/comprehen/ComprehenOperation/OverCharge/OverUseCharge.vue +438 -438
  380. package/src/components/revenue/comprehen/ComprehenOperation/PriceJustment/priceJustment.vue +124 -124
  381. package/src/components/revenue/comprehen/ComprehenOperation/RefundManage/RefundManage.vue +254 -254
  382. package/src/components/revenue/comprehen/ComprehenOperation/ReplaceCard/MachineCardBill.vue +92 -92
  383. package/src/components/revenue/comprehen/ComprehenOperation/ReplaceCard/ReplaceCardManage.vue +415 -415
  384. package/src/components/revenue/comprehen/ComprehenOperation/SellRecordChange/SellRecord.vue +83 -83
  385. package/src/components/revenue/comprehen/ComprehenOperation/SellRecordChange/UserinfoList.vue +74 -74
  386. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeMeter.vue +1149 -1149
  387. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ResetMeter.vue +1101 -1101
  388. package/src/components/revenue/comprehen/ComprehenOperation/removeTable.vue +235 -235
  389. package/src/components/revenue/comprehen/ComprehenOperation/removeTableCancel.vue +136 -136
  390. package/src/components/revenue/comprehen/ComprehenOperation/resetShowCardgas/ResetShowCardGas.vue +163 -163
  391. package/src/components/revenue/comprehen/ComprehenOperation/wallheating/WallheatingInfoAdd.vue +174 -174
  392. package/src/components/revenue/comprehen/Exemption/GasFeeReduction.vue +250 -250
  393. package/src/components/revenue/comprehen/Maintenance/T+MoneyDocking/moneyDocking.vue +202 -202
  394. package/src/components/revenue/comprehen/Maintenance/T+MoneyDocking/moneyDockingTow.vue +169 -169
  395. package/src/components/revenue/comprehen/Maintenance/bill/billListMaintain.vue +160 -160
  396. package/src/components/revenue/comprehen/Maintenance/bill/billOperate.vue +266 -266
  397. package/src/components/revenue/comprehen/Maintenance/bill/billRecordMaintain.vue +119 -119
  398. package/src/components/revenue/comprehen/Maintenance/changeMeter/changemeterListMaintain.vue +374 -374
  399. package/src/components/revenue/comprehen/Maintenance/changeMeter/changemeterOperate.vue +283 -283
  400. package/src/components/revenue/comprehen/Maintenance/changeMeter/maintenanceChangeMeterRecords.vue +148 -148
  401. package/src/components/revenue/comprehen/Maintenance/fillgas/fillgasRecordMaintain.vue +148 -148
  402. package/src/components/revenue/comprehen/Maintenance/fillgas/fillgasRecordMaintainList.vue +337 -337
  403. package/src/components/revenue/comprehen/Maintenance/fillgas/fillgasSpecific.vue +297 -297
  404. package/src/components/revenue/comprehen/Maintenance/group/MeterOperatemaingroup.vue +394 -394
  405. package/src/components/revenue/comprehen/Maintenance/group/StockListmaingroup.vue +477 -477
  406. package/src/components/revenue/comprehen/Maintenance/group/maintenancegroup.vue +149 -149
  407. package/src/components/revenue/comprehen/Maintenance/hand/handListMaintain.vue +640 -640
  408. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  409. package/src/components/revenue/comprehen/Maintenance/hand/maintenanceHandmeterRecords.vue +148 -148
  410. package/src/components/revenue/comprehen/Maintenance/otherRecords/OtherMaintenanceLists.vue +233 -233
  411. package/src/components/revenue/comprehen/Maintenance/otherRecords/Otherrecordmaintenance.vue +173 -173
  412. package/src/components/revenue/comprehen/Maintenance/otherRecords/specificInformation.vue +416 -416
  413. package/src/components/revenue/comprehen/Maintenance/pictureManage/pictureListMaintain.vue +377 -377
  414. package/src/components/revenue/comprehen/Maintenance/revenue/MeterOperatemain.vue +397 -397
  415. package/src/components/revenue/comprehen/Maintenance/revenue/StockListmain.vue +529 -529
  416. package/src/components/revenue/comprehen/Maintenance/revenue/maintenance.vue +150 -150
  417. package/src/components/revenue/comprehen/Message/AllUser.vue +608 -608
  418. package/src/components/revenue/comprehen/Message/AllUserNew.vue +617 -617
  419. package/src/components/revenue/comprehen/Message/ArrearsList.vue +397 -397
  420. package/src/components/revenue/comprehen/Message/MessageList.vue +635 -635
  421. package/src/components/revenue/comprehen/Message/TemplateMessage.vue +92 -92
  422. package/src/components/revenue/comprehen/Message/UserDefinedMessage.vue +90 -90
  423. package/src/components/revenue/comprehen/Message/UserDefinedMessageNew.vue +114 -114
  424. package/src/components/revenue/comprehen/PreferentialPolicies/PrivilegeEdit.vue +257 -257
  425. package/src/components/revenue/comprehen/PreferentialPolicies/PrivilegeList.vue +135 -135
  426. package/src/components/revenue/comprehen/ResourceRecord/ResourceRecordQuery.vue +186 -186
  427. package/src/components/revenue/comprehen/SpecialUser/BasicLiving/BasicLiving.vue +277 -277
  428. package/src/components/revenue/comprehen/SpecialUser/BasicLiving/BasicLivingList.vue +280 -280
  429. package/src/components/revenue/comprehen/SpecialUser/BasicLiving/UpdateBasicLiving.vue +59 -59
  430. package/src/components/revenue/comprehen/SpecialUser/BasicLiving/stopBasicLiving.vue +171 -171
  431. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackList.vue +290 -290
  432. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackListDetail.vue +71 -71
  433. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackListList.vue +275 -275
  434. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackListRecord.vue +62 -62
  435. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackModal.vue +211 -211
  436. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackRecordQuery.vue +211 -211
  437. package/src/components/revenue/comprehen/StairPrice/GasPrice.vue +521 -521
  438. package/src/components/revenue/comprehen/StairPrice/GasPriceList.vue +319 -319
  439. package/src/components/revenue/comprehen/StairPrice/GasPriceUser.vue +485 -485
  440. package/src/components/revenue/comprehen/StairPrice/PriceChangeDetail.vue +76 -76
  441. package/src/components/revenue/comprehen/StairPrice/PriceChangeHistory.vue +71 -71
  442. package/src/components/revenue/comprehen/StairPrice/PriceRecord.vue +138 -138
  443. package/src/components/revenue/comprehen/StairPrice/UpdateInfo.vue +68 -68
  444. package/src/components/revenue/comprehen/ToolCard/CardTypeDetail.vue +191 -191
  445. package/src/components/revenue/comprehen/TotalSplit/AllUserFiles.vue +120 -120
  446. package/src/components/revenue/comprehen/TotalSplit/SplitList.vue +264 -264
  447. package/src/components/revenue/comprehen/TotalSplit/TotalSplitList.vue +126 -126
  448. package/src/components/revenue/comprehen/TotalSplit/TotalSplitManage.vue +46 -46
  449. package/src/components/revenue/comprehen/alipay/alipayConstrast.vue +291 -291
  450. package/src/components/revenue/comprehen/alipay/alipayDetail.vue +395 -395
  451. package/src/components/revenue/comprehen/batch/batchEditFiles.vue +237 -237
  452. package/src/components/revenue/comprehen/batch/batchEditHistory.vue +93 -93
  453. package/src/components/revenue/comprehen/batch/batchEditManage.vue +131 -131
  454. package/src/components/revenue/comprehen/batch/batchUserList.vue +327 -327
  455. package/src/components/revenue/comprehen/closeaccount/Closeaccount.vue +190 -190
  456. package/src/components/revenue/comprehen/closeaccount/battchcancelaudit.vue +419 -419
  457. package/src/components/revenue/comprehen/common/ImportExcel.vue +133 -133
  458. package/src/components/revenue/comprehen/device/deviceEdit.vue +106 -106
  459. package/src/components/revenue/comprehen/device/deviceList.vue +146 -146
  460. package/src/components/revenue/comprehen/gasbrand/AddGasBrand.vue +512 -512
  461. package/src/components/revenue/comprehen/gasbrand/AddGasMeterInitParam.vue +153 -153
  462. package/src/components/revenue/comprehen/gasbrand/AddGasModel.vue +122 -122
  463. package/src/components/revenue/comprehen/gasbrand/AddGasModelInfo.vue +128 -128
  464. package/src/components/revenue/comprehen/gasbrand/AddJsonParameter.vue +163 -163
  465. package/src/components/revenue/comprehen/gasbrand/AddUseringOrg.vue +177 -177
  466. package/src/components/revenue/comprehen/gasbrand/GasBrandList.vue +241 -241
  467. package/src/components/revenue/comprehen/gasbrand/GasBrandUser.vue +185 -185
  468. package/src/components/revenue/comprehen/gasbrand/GasModelInfo.vue +93 -93
  469. package/src/components/revenue/comprehen/gasbrand/Parames.vue +293 -293
  470. package/src/components/revenue/comprehen/gasbrand/ViewOrg.vue +43 -43
  471. package/src/components/revenue/comprehen/handAudit/MeterReadAudit.vue +392 -392
  472. package/src/components/revenue/comprehen/insurance/insuranceGuanL.vue +337 -337
  473. package/src/components/revenue/comprehen/ovdue/Overduetax.vue +624 -624
  474. package/src/components/revenue/comprehen/posQuery/PosQueryList.vue +430 -430
  475. package/src/components/revenue/comprehen/replacement/replaceMentList.vue +412 -412
  476. package/src/components/revenue/comprehen/replacement/replacementHandInfoRecord.vue +155 -155
  477. package/src/components/revenue/comprehen/replacement/replacementSingleInfoOperation.vue +296 -296
  478. package/src/components/revenue/comprehen/wechatpay/WeChatPayContrast.vue +327 -327
  479. package/src/components/revenue/comprehen/wechatpay/WeChatPayDetail.vue +448 -448
  480. package/src/components/revenue/comprehen/wechatpay/WeChatPayPos.vue +177 -177
  481. package/src/components/revenue/comprehen/wechatpay/wechatValidateManage.vue +303 -303
  482. package/src/components/revenue/concentrator/ncAddressList.vue +141 -141
  483. package/src/components/revenue/concentrator/ncArchivesAdd.vue +646 -646
  484. package/src/components/revenue/concentrator/ncArchivesList.vue +199 -199
  485. package/src/components/revenue/concentrator/ncUserfilesList.vue +391 -391
  486. package/src/components/revenue/concentrator/ncUserfilesList2.vue +478 -478
  487. package/src/components/revenue/dispatch/dispatchDown.vue +402 -402
  488. package/src/components/revenue/dispatch/dispatchList.vue +430 -430
  489. package/src/components/revenue/dispatch/showList.vue +83 -83
  490. package/src/components/revenue/invoiceuse/CompanyTitleInput.vue +98 -98
  491. package/src/components/revenue/invoiceuse/InvoiceChargeList.vue +301 -301
  492. package/src/components/revenue/invoiceuse/InvoiceEntry.vue +78 -78
  493. package/src/components/revenue/invoiceuse/InvoiceGoodsInfoEntry.vue +140 -140
  494. package/src/components/revenue/invoiceuse/InvoiceGoodsInput.vue +90 -90
  495. package/src/components/revenue/invoiceuse/InvoiceInfoEntry.vue +142 -142
  496. package/src/components/revenue/invoiceuse/InvoiceInformationInput.vue +110 -110
  497. package/src/components/revenue/invoiceuse/InvoiceUse.vue +269 -269
  498. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +919 -919
  499. package/src/components/revenue/machineHandManage/HandplanQuery.vue +1350 -1350
  500. package/src/components/revenue/machineHandManage/machineDown.vue +1148 -1148
  501. package/src/components/revenue/machineHandManage/machineHand.vue +2071 -2071
  502. package/src/components/revenue/machineHandManage/machineHandAudit.vue +773 -773
  503. package/src/components/revenue/machineHandManage/machineUploaded.vue +316 -316
  504. package/src/components/revenue/priceAdjustment/CardPriceAdjustment.vue +169 -169
  505. package/src/components/revenue/priceAdjustment/cardMange/cardSellingDifference.vue +331 -331
  506. package/src/components/revenue/printing/PrintingFileUserFiles.vue +867 -867
  507. package/src/components/revenue/regionalgas/regionalList.vue +232 -232
  508. package/src/components/revenue/regionalgas/regionalListRecord.vue +72 -72
  509. package/src/components/revenue/regionalgas/regionaladd.vue +267 -267
  510. package/src/components/revenue/stopairmanage/stopairList.vue +201 -201
  511. package/src/components/revenue/stopairmanage/stopairListRecord.vue +82 -82
  512. package/src/components/revenue/stopairmanage/stopairadd.vue +228 -228
  513. package/src/components/revenue/third/rizhao/transferAudit.vue +205 -205
  514. package/src/components/revenue/third/rizhao/transferAuditDisposeBasics.vue +220 -220
  515. package/src/components/revenue/third/transferAudit.vue +205 -205
  516. package/src/components/revenue/third/transferAuditDisposeBasics.vue +213 -213
  517. package/src/components/revenue/todoList/CompileList.vue +93 -93
  518. package/src/components/revenue/todoList/TodoList.vue +129 -129
  519. package/src/components/service/BluetoothSell.js +76 -76
  520. package/src/components/service/PCSell.js +77 -77
  521. package/src/components/service/Save.js +77 -77
  522. package/src/components/valueaddserver/valueaddservershow.vue +253 -253
  523. package/src/components/webMeter/MeterManage/WebMeterBatchOperate.vue +200 -200
  524. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +818 -818
  525. package/src/components/webMeter/NewWebMeterHandPlan.vue +716 -716
  526. package/src/components/webMeter/WebBalanceQuery.vue +532 -532
  527. package/src/components/webMeter/WebmeterFlowmeter.vue +1064 -1064
  528. package/src/components/webMeter/approvalHandleList.vue +548 -548
  529. package/src/components/webMeter/common/MeterMsg.vue +596 -596
  530. package/src/components/webMeter/common/NewWatchMsg.vue +586 -586
  531. package/src/components/webMeter/common/QueryInstruct.vue +244 -244
  532. package/src/components/webMeter/common/SignParameter.vue +278 -278
  533. package/src/components/webMeter/common/WatchCollection.vue +96 -96
  534. package/src/components/webMeter/common/WatchCost.vue +101 -101
  535. package/src/components/webMeter/common/WatchDealWarning.vue +231 -231
  536. package/src/components/webMeter/common/WatchRecharge.vue +159 -159
  537. package/src/components/webMeter/common/WebMeterInfoManage.vue +124 -124
  538. package/src/components/webMeter/common/batteryEcharts.vue +159 -159
  539. package/src/components/webMeter/common/signalEcharts.vue +155 -155
  540. package/src/components/webMeter/dataCollection/NewWebMeterHandPlan.vue +810 -810
  541. package/src/components/webMeter/iotBalanceAnalyse.vue +374 -374
  542. package/src/components/webMeter/meterinfo/NewMeterList.vue +706 -706
  543. package/src/components/webMeter/paramSave/ParamHistory.vue +115 -115
  544. package/src/components/webMeter/paramSave/ParamSet.vue +668 -668
  545. package/src/components/webMeter/paramSave/ParamSetForm.vue +344 -344
  546. package/src/components/webMeter/paramSaveNew/ParamExceptions.vue +56 -56
  547. package/src/components/webMeter/paramSaveNew/ParamHistory.vue +164 -164
  548. package/src/components/webMeter/paramSaveNew/ParamSet.vue +596 -596
  549. package/src/components/webMeter/paramSaveNew/ParamSetDefault.vue +221 -221
  550. package/src/components/webMeter/paramSaveNew/ParamSetDefaultList.vue +68 -68
  551. package/src/components/webMeter/paramSaveNew/ParamSetForm.vue +507 -507
  552. package/src/components/webMeter/webInfo/EditWebMeterInfo.vue +278 -278
  553. package/src/components/webMeter/webInfo/MeterHistory.vue +74 -74
  554. package/src/components/webMeter/webInfo/UseWebMeter.vue +185 -185
  555. package/src/components/webMeter/webInfo/WebMeterInfo.vue +80 -80
  556. package/src/components/webMeter/webInfo/WebMeterList.vue +430 -430
  557. package/src/components/webMeter/webInfo/qinhua/EditWebMeterInfo.vue +247 -247
  558. package/src/components/webMeter/webInfo/qinhua/MeterHistory.vue +74 -74
  559. package/src/components/webMeter/webInfo/qinhua/WebMeterInfo.vue +79 -79
  560. package/src/components/webMeter/webInfo/qinhua/WebMeterList.vue +357 -357
  561. package/src/components/weinan/YuShou.vue +116 -116
  562. package/src/components/weinan/tree/Hhhh.vue +194 -194
  563. package/src/components/weinan/tree/ShowMessage.vue +136 -136
  564. package/src/components/zhoukou/DeveloperInfo.vue +327 -327
  565. package/src/components/zhoukou/LogRecordList.vue +188 -188
  566. package/src/filiale/alashan/UserBaseInfoNew.vue +481 -481
  567. package/src/filiale/ancheng/NewMeterList.vue +607 -607
  568. package/src/filiale/bayan/CardMeterCenter.vue +956 -956
  569. package/src/filiale/bayan/CardService.js +2237 -2237
  570. package/src/filiale/bayan/ChargeManage.vue +316 -316
  571. package/src/filiale/bayan/ChargeOper.vue +312 -312
  572. package/src/filiale/bayan/IOTMeterCenter.vue +873 -873
  573. package/src/filiale/bayan/MachineMeterCenter.vue +665 -665
  574. package/src/filiale/bayan/NoCardMeterCenter.vue +501 -501
  575. package/src/filiale/bayan/OtherChargeNew.vue +643 -643
  576. package/src/filiale/bayan/ReplaceCardManage.vue +419 -419
  577. package/src/filiale/bayan/ShowCardSellGas.vue +935 -935
  578. package/src/filiale/bayan/UnWriteCardCenter.vue +112 -112
  579. package/src/filiale/bayan/Userinfo.vue +280 -280
  580. package/src/filiale/bayan/sale.js +30 -30
  581. package/src/filiale/dexin/TransferManage.vue +534 -534
  582. package/src/filiale/dexin/sale.js +7 -7
  583. package/src/filiale/dongguan/components/common/userinfo_detail/UserBaseInfoNew.vue +504 -504
  584. package/src/filiale/dongguan/components/common/userinfo_detail/WebMeterBatchOperationValve.vue +789 -789
  585. package/src/filiale/ganquan/components/UserFiles/UserPaperInfoTest.vue +81 -81
  586. package/src/filiale/gehua/UserBaseInfoNew.vue +469 -469
  587. package/src/filiale/gehua/machineHandManage/HandplanQuery.vue +1259 -1259
  588. package/src/filiale/guangxi/WebMeterBatchOperationValve.vue +788 -788
  589. package/src/filiale/haile/UserBaseInfoNew.vue +463 -463
  590. package/src/filiale/haile/machineHand.vue +2135 -2135
  591. package/src/filiale/haile/unHandplanQuery.vue +760 -760
  592. package/src/filiale/jingyang/ChangeMeter.vue +1171 -1171
  593. package/src/filiale/jingyang/EticketPrint.vue +228 -228
  594. package/src/filiale/jingyang/EticketV4/CustQueryEticket.vue +417 -417
  595. package/src/filiale/jingyang/EticketV4/EticketManage.vue +67 -67
  596. package/src/filiale/jingyang/EticketV4/EticketOpenCard.vue +411 -411
  597. package/src/filiale/jingyang/EticketV4/EticketOpenPage.vue +431 -431
  598. package/src/filiale/jingyang/EticketV4/EticketRecordList.vue +448 -448
  599. package/src/filiale/jingyang/GovernmentSell.vue +361 -361
  600. package/src/filiale/jingyang/charge/IOTMeterCenter.vue +872 -872
  601. package/src/filiale/jingyang/sale.js +26 -26
  602. package/src/filiale/kelai/FeeDeduction/deductionManage.vue +25 -25
  603. package/src/filiale/kelai/FeeDeduction/feeDeduction.vue +211 -211
  604. package/src/filiale/kelai/FeeDeduction/feeMachine.vue +169 -169
  605. package/src/filiale/kelai/meterinfodetail.vue +255 -255
  606. package/src/filiale/kelai/sale.js +52 -52
  607. package/src/filiale/liaoyuan/CardList.vue +559 -559
  608. package/src/filiale/liaoyuan/FileManage/MeterinfoTest.vue +581 -581
  609. package/src/filiale/liaoyuan/UserBaseInfoNew.vue +472 -472
  610. package/src/filiale/liaoyuan/sale.js +57 -57
  611. package/src/filiale/lixianV3/MachineMeterCenter.vue +691 -691
  612. package/src/filiale/lixianV3/OweDetailList.vue +79 -79
  613. package/src/filiale/lixianV3/OweList.vue +157 -157
  614. package/src/filiale/lixianV3/sale.js +21 -21
  615. package/src/filiale/macheng/FilesManageNew/UserEssentialInfoTest.vue +373 -373
  616. package/src/filiale/macheng/HandManager.vue +1597 -1597
  617. package/src/filiale/macheng/UserBaseInfoNew.vue +353 -353
  618. package/src/filiale/macheng/UserEssentialInfoTest.vue +368 -368
  619. package/src/filiale/meihekou/ChargeList.vue +807 -807
  620. package/src/filiale/meihekou/FileUserFiles.vue +986 -986
  621. package/src/filiale/meihekou/HandManager.vue +1789 -1789
  622. package/src/filiale/meihekou/MbpeopleList.vue +573 -573
  623. package/src/filiale/meihekou/MeterBookAdd.vue +410 -410
  624. package/src/filiale/meihekou/MeterinfoTest.vue +635 -635
  625. package/src/filiale/meihekou/UserBaseInfoNew.vue +488 -488
  626. package/src/filiale/meihekou/meterinfodetail.vue +240 -240
  627. package/src/filiale/meihekou/sale.js +52 -52
  628. package/src/filiale/ningjin/HandplanQuery.vue +1194 -1194
  629. package/src/filiale/qianneng/ArrearsList.vue +417 -417
  630. package/src/filiale/qianneng/components/common/userinfo_detail/UserBaseInfoNew.vue +470 -470
  631. package/src/filiale/qianneng/revenue/common/ic_detail/HandQueryUser.vue +419 -419
  632. package/src/filiale/qianneng/sale.js +103 -103
  633. package/src/filiale/qingtongxia/UserBaseInfoNew.vue +603 -603
  634. package/src/filiale/qingtongxia/sale.js +17 -17
  635. package/src/filiale/rizhao/ChargeList.vue +1062 -1062
  636. package/src/filiale/rizhao/IOTMeterCenter.vue +795 -795
  637. package/src/filiale/rizhao/UserBaseInfoNew.vue +452 -452
  638. package/src/filiale/rizhao/otherinfo.vue +92 -92
  639. package/src/filiale/rongchuang/CardMeterCenter.vue +918 -918
  640. package/src/filiale/rongchuang/DepositCharge.vue +373 -373
  641. package/src/filiale/rongchuang/EticketPrint.vue +503 -503
  642. package/src/filiale/rongchuang/EticketRecordList.vue +265 -265
  643. package/src/filiale/rongchuang/GasPriceList.vue +359 -359
  644. package/src/filiale/rongchuang/IOTMeterCenter.vue +809 -809
  645. package/src/filiale/rongchuang/LimitGas.vue +233 -233
  646. package/src/filiale/rongchuang/MeterinfoTest.vue +752 -752
  647. package/src/filiale/rongchuang/NoCardMeterCenter.vue +469 -469
  648. package/src/filiale/rongchuang/OtherChargeNew.vue +445 -445
  649. package/src/filiale/rongchuang/OtherGas.vue +329 -329
  650. package/src/filiale/rongchuang/OverUseCharge.vue +435 -435
  651. package/src/filiale/rongchuang/PrintBill.vue +113 -113
  652. package/src/filiale/rongchuang/ReissueBill.vue +294 -294
  653. package/src/filiale/rongchuang/ReplaceCardManage.vue +412 -412
  654. package/src/filiale/rongchuang/ShowCardSellGas.vue +852 -852
  655. package/src/filiale/rongchuang/Userinfo.vue +176 -176
  656. package/src/filiale/rongchuang/bill/CustQueryEticket.vue +439 -439
  657. package/src/filiale/rongchuang/bill/EticketOpenCard.vue +264 -264
  658. package/src/filiale/rongchuang/bill/EticketOpenJBPage.vue +261 -261
  659. package/src/filiale/rongchuang/bill/EticketOpenPage.vue +249 -249
  660. package/src/filiale/rongchuang/bill/EticketRecordList.vue +277 -277
  661. package/src/filiale/rongchuang/handListMaintain.vue +641 -641
  662. package/src/filiale/rongchuang/handOperate.vue +454 -454
  663. package/src/filiale/rongchuang/sale.js +50 -50
  664. package/src/filiale/shangluo/ChangeMeter.vue +1184 -1184
  665. package/src/filiale/shangluo/sale.js +19 -19
  666. package/src/filiale/shanxian/components/webMeter/WebMeterBatchOperationValve.vue +792 -792
  667. package/src/filiale/shanxian/components/webMeter/meterinfo/NewMeterList.vue +602 -602
  668. package/src/filiale/shaoguan/HandplanQuery.vue +1329 -1329
  669. package/src/filiale/shaoguan/base/UserBaseInfoNew.vue +474 -474
  670. package/src/filiale/shexian/ChargeList.vue +1026 -1026
  671. package/src/filiale/shexian/UserBaseInfoNew.vue +469 -469
  672. package/src/filiale/shexian/revenue/newchangemeter/ChangeMeter.vue +1168 -1168
  673. package/src/filiale/shiquan/GasPriceList.vue +342 -342
  674. package/src/filiale/shiquan/sale.js +31 -31
  675. package/src/filiale/taizhoukesi/ChangeMeterQueryUser.vue +244 -244
  676. package/src/filiale/taizhoukesi/UserInfoDetailManageNew.vue +214 -214
  677. package/src/filiale/taizhoukesi/sale.js +6 -6
  678. package/src/filiale/tongchuan/EticketManage.vue +60 -60
  679. package/src/filiale/tongchuan/Maintenance/revenue/MeterOperatemain.vue +319 -319
  680. package/src/filiale/tongchuan/UserBaseInfoNew.vue +378 -378
  681. package/src/filiale/tongchuan/bill/CustQueryEticketQueryV4.vue +337 -337
  682. package/src/filiale/tongchuan/bill/EticketOpenCard.vue +323 -323
  683. package/src/filiale/tongchuan/bill/EticketOpenIotSalePage.vue +333 -333
  684. package/src/filiale/tongchuan/bill/EticketOpenJBPage.vue +386 -386
  685. package/src/filiale/tongchuan/bill/EticketOpenPage.vue +347 -347
  686. package/src/filiale/tongchuan/bill/EticketPrint.vue +483 -483
  687. package/src/filiale/tongchuan/bill/EticketRecordList.vue +278 -278
  688. package/src/filiale/tongchuan/paperaudit.vue +310 -310
  689. package/src/filiale/tongchuan/sale.js +154 -154
  690. package/src/filiale/wenxi/DisableManage.vue +150 -150
  691. package/src/filiale/wenxi/cardsHand.vue +974 -974
  692. package/src/filiale/wenxi/plugging/UserPlugging.vue +100 -100
  693. package/src/filiale/xinkang/UserBaseInfoNew.vue +446 -446
  694. package/src/filiale/xinkang/WebMeterBatchOperationValve.vue +789 -789
  695. package/src/filiale/yangchun/CardList.vue +559 -559
  696. package/src/filiale/yangchun/CardMeterCenter.vue +992 -965
  697. package/src/filiale/yangchun/ChangeMeter.vue +1191 -1191
  698. package/src/filiale/yangchun/EticketModal.vue +95 -95
  699. package/src/filiale/yangchun/EticketV4/CustQueryEticket.vue +334 -334
  700. package/src/filiale/yangchun/EticketV4/EticketManage.vue +64 -64
  701. package/src/filiale/yangchun/EticketV4/EticketOpenCard.vue +349 -349
  702. package/src/filiale/yangchun/EticketV4/EticketOpenJBPage.vue +350 -350
  703. package/src/filiale/yangchun/EticketV4/EticketOpenPage.vue +341 -341
  704. package/src/filiale/yangchun/FilesManage/UserEssentialInfoTest.vue +643 -643
  705. package/src/filiale/yangchun/FilesManage/UserGeneralInfoTest.vue +810 -810
  706. package/src/filiale/yangchun/FilesManage/UserPaperInfoTest.vue +63 -63
  707. package/src/filiale/yangchun/OtherChargeDetail.vue +97 -97
  708. package/src/filiale/yangchun/OtherChargeNew.vue +702 -702
  709. package/src/filiale/yangchun/plugins/LogicService.js +496 -496
  710. package/src/filiale/yangchun/sale.js +65 -65
  711. package/src/filiale/yuansheng/UserBaseInfoNew.vue +447 -447
  712. package/src/filiale/yuncheng/ChargeManage.vue +316 -316
  713. package/src/filiale/yuncheng/ChargeOper.vue +286 -286
  714. package/src/filiale/yuncheng/HandplanQuery.vue +1377 -1377
  715. package/src/filiale/yuncheng/Mulitinfo.vue +75 -75
  716. package/src/filiale/yuncheng/deviceinfodetail.vue +144 -144
  717. package/src/filiale/yuncheng/machineDown.vue +1151 -1151
  718. package/src/filiale/yuncheng/machineHandAudit.vue +893 -893
  719. package/src/filiale/yuncheng/sale.js +52 -52
  720. package/src/filiale/zhongsheng/charge/UserBaseInfoNew.vue +451 -451
  721. package/src/filiale/zhongyi/HandplanQuery.vue +1198 -1198
  722. package/src/filiale/zhongyi/common/MeterMessage.vue +184 -184
  723. package/src/filiale/zhongyi/machineHand.vue +2212 -2212
  724. package/src/filiale/zhongyi/sale.js +40 -40
  725. package/src/main.js +33 -33
  726. package/src/plugins/BillService.js +63 -63
  727. package/src/plugins/CancelService.js +298 -298
  728. package/src/plugins/CardManageService.js +21 -21
  729. package/src/plugins/CardService.js +2119 -2119
  730. package/src/plugins/ChangeMeterService.js +760 -760
  731. package/src/plugins/CommonService.js +302 -302
  732. package/src/plugins/FileManageService.js +460 -460
  733. package/src/plugins/FileService.js +270 -270
  734. package/src/plugins/GetLoginInfoService.js +495 -495
  735. package/src/plugins/GetSaleParams.js +217 -217
  736. package/src/plugins/HandService.js +35 -35
  737. package/src/plugins/InvoiceService.js +80 -80
  738. package/src/plugins/LoadParams.js +117 -117
  739. package/src/plugins/LogicService.js +491 -491
  740. package/src/plugins/MachineChargeService.js +120 -120
  741. package/src/plugins/OffGasAddGasService.js +176 -176
  742. package/src/plugins/PrintService.js +134 -134
  743. package/src/plugins/SelectService.js +44 -44
  744. package/src/plugins/jsign.js +168 -168
  745. package/src/project/State.js +17 -17
  746. package/src/sale.js +1212 -1212
  747. package/src/sign.html +399 -399
  748. package/src/stores/MagLoadParams.js +61 -61
@@ -1,2212 +1,2212 @@
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
- <modal :show.sync="$parent.$parent.upshow" width="500px" title="文件导入" v-ref:modal large backdrop="false">
8
- <article slot="modal-body" class="modal-body">
9
- <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success"
10
- style="border-radius: 2px;"
11
- action="rs/file/uploadFile" tagname="导入" v-ref:filebattch :headers="headers"
12
- multiple></file-upload>
13
- </article>
14
- <footer slot="modal-footer" class="modal-footer">
15
- </footer>
16
- </modal>
17
- <div class="row">
18
- <!--<div class="col-sm-6">-->
19
- <!--style="border: 1px solid #a6d5ea; box-shadow: darkgrey 1px 1px 1px 2px;padding: 0.5%">-->
20
- <div class="col-sm-2 form-group">
21
- <label class="font_normal_body color-red">归属起始</label>
22
- <datepicker placeholder="开始日期"
23
- style="width:60%"
24
- class="datepicker"
25
- v-model="model.startDate"
26
- condition="f_hand_date >='{} 00:00:00'"
27
-
28
- :value.sync="model.startDate"
29
- :format="'yyyy-MM-dd'"
30
- ></datepicker>
31
- </div>
32
- <div class="col-sm-2 form-group">
33
- <label class="font_normal_body color-red">归属结束</label>
34
- <datepicker placeholder="结束日期"
35
- style="width:60%"
36
- v-model="model.endDate"
37
- :value.sync="model.endDate"
38
- condition="f_hand_date <='{} 23:59:59'"
39
- :format="'yyyy-MM-dd'"
40
- ></datepicker>
41
- </div>
42
-
43
- <div class="col-sm-2 form-group">
44
- <label class="font_normal_body">客户编号</label>
45
- <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
46
- condition="f_userinfo_code='{}'" placeholder='客户编号'>
47
- </div>
48
-
49
- <div class="span" style="float:right;">
50
- <button v-if="$parent.$parent.jurisdiction.includes('单户抄表')"
51
- class="button_search button_spacing" style="width:90px" @click="$parent.$parent.danhuShow()">
52
- 单户抄表
53
- </button>
54
-
55
- <button class="button_search button_spacing" @click="$parent.$parent.search()">查询</button>
56
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
57
- <button class="button_delete button_spacing" @click="$parent.$parent.deletehand()">删除抄表</button>
58
- <button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.downloadFiles()">模板下载
59
- </button>
60
- <button class="button_search button_spacing" @click="$parent.$parent.clickupshow()">导入抄表</button>
61
-
62
- <export-excel
63
- :data="$parent.$parent.getCondition"
64
- :field="$parent.$parent.getfield"
65
- sqlurl="rs/logic/saleExport" sql-name="getPlan" template-name='抄表导出'
66
- :choose-col="true">
67
- </export-excel>
68
- <div
69
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
70
- @click="$parent.$parent.hidden()" class="button_spacing" style="float: right"></div>
71
- </div>
72
- </div>
73
- <div class="row" v-show="$parent.$parent.criteriaShow">
74
- <!-- <div class="col-sm-2 form-group">-->
75
- <!-- <label class="font_normal_body">表&ensp;编&ensp;号</label>-->
76
- <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_id"-->
77
- <!-- condition="f_user_id='{}'" placeholder='表编号'>-->
78
- <!-- </div>-->
79
- <div class="col-sm-2 form-group">
80
- <label class="font_normal_body">抄表状态</label>
81
- <v-select :value.sync="model.f_audit_state"
82
- class="select_list select"
83
- v-model="model.f_audit_state"
84
- style="width: 60%"
85
- condition="f_meter_state = '{}'"
86
- :options='$parent.$parent.auditState' placeholder='抄表状态'
87
- close-on-select v-el:cc>
88
- </v-select>
89
- </div>
90
- <div class="col-sm-2 form-group">
91
- <label class="font_normal_body">表&emsp;&emsp;号</label>
92
- <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
93
- condition="f_meternumber like '%{}%'" placeholder='表号'>
94
- </div>
95
- <div class="col-sm-2 form-group">
96
- <label class="font_normal_body">客户姓名</label>
97
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name" placeholder='客户姓名'
98
- condition="f_user_name = '{}'">
99
- </div>
100
- <div class="col-sm-2 form-group">
101
- <label class="font_normal_body">小&ensp;&ensp;&ensp;&ensp;区</label>
102
- <v-select :value.sync="model.f_residential_area"
103
- class="select_list select"
104
- enter-push
105
- v-model="model.f_residential_area"
106
- style="width: 60%"
107
- multiple="true"
108
- :options='$parent.$parent.residentialArea' placeholder='选择小区'
109
- close-on-select v-el:cc>
110
- </v-select>
111
- </div>
112
- <div class="col-sm-2 form-group">
113
- <label class="font_normal_body">楼&emsp;&emsp;栋</label>
114
- <input type="text" style="width:60%" class="input_search" v-model="model.f_building"
115
- condition="f_building = '{}'" placeholder='楼栋'>
116
- </div>
117
- <div class="col-sm-2 form-group">
118
- <label class="font_normal_body">单&emsp;&emsp;元</label>
119
- <input type="text" style="width:60%" class="input_search" v-model="model.f_unit"
120
- condition="f_unit = '{}'" placeholder='单元'>
121
- </div>
122
- <div class="col-sm-2 form-group">
123
- <label class="font_normal_body">楼&emsp;&emsp;层</label>
124
- <input type="text" style="width:60%" class="input_search" v-model="model.f_floor"
125
- condition="f_floor = '{}'" placeholder='楼层'>
126
- </div>
127
- <div class="col-sm-2 form-group">
128
- <label class="font_normal_body">门&ensp;牌&ensp;号</label>
129
- <input type="text" style="width:60%" class="input_search" v-model="model.f_room"
130
- condition="f_room like '%{}%'" placeholder='门牌号'>
131
- </div>
132
- <div class="col-sm-2 form-group">
133
- <label class="font_normal_body">客户地址</label>
134
- <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
135
- condition="f_address like '%{}%'" placeholder='客户地址'>
136
- </div>
137
- <div class="col-sm-2 form-group">
138
- <label class="font_normal_body">抄&ensp;表&ensp;员</label>
139
- <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
140
- style="width:60%"
141
- multiple="true"
142
- :options='$parent.$parent.inputtores' placeholder='抄表员'
143
- close-on-select
144
- v-el:cc></v-select>
145
- </div>
146
- <!-- <div class="col-sm-2 form-group">-->
147
- <!-- <label class="font_normal_body">是否缴费</label>-->
148
- <!-- <v-select :value.sync="model.f_whether_pay" v-model='model.f_whether_pay'-->
149
- <!-- style="width:60%"-->
150
- <!-- :options='$parent.$parent.whetherpaies' placeholder='是否缴费'-->
151
- <!-- close-on-select-->
152
- <!-- condition="f_whether_pay = '{}'"></v-select>-->
153
- <!-- </div>-->
154
- <div class="col-sm-2 form-group">
155
- <label class="font_normal_body">抄表单状态</label>
156
- <v-select :value.sync="model.f_meter_state" v-model='model.f_meter_state'
157
- style="width:60%"
158
- :options='$parent.$parent.meterstates' placeholder='抄表单状态'
159
- close-on-select
160
- condition="f_meter_state = '{}'"></v-select>
161
- </div>
162
-
163
- <div class="col-sm-2 form-group">
164
- <label for="belongmonth" class="font_normal_body">所属年月</label>
165
- <datepicker placeholder="所属年月" style="width:60%"
166
- v-model="model.belongmonth"
167
- :value.sync="model.belongmonth"
168
- :format="'yyyy-MM'"
169
- :show-reset-button="true"
170
- condition="belongmonth = '{}'"
171
- :select-month="true">
172
- </datepicker>
173
- </div>
174
- <div class="col-sm-2 form-group">
175
- <label class="font_normal_body">客户类型</label>
176
- <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
177
- :options='$parent.$parent.usertypes' placeholder='客户类型'
178
- style="width:60%"
179
- close-on-select
180
- condition="f_user_type = '{}'"></v-select>
181
- </div>
182
- <div class="col-sm-2 form-group">
183
- <label class="font_normal_body">用户等级</label>
184
- <v-select :value.sync="model.f_user_level" v-model="model.f_user_level"
185
- :options='$parent.$parent.userlevels' placeholder='用户等级'
186
- style="width:60%"
187
- close-on-select
188
- condition="f_user_level = '{}'"></v-select>
189
- </div>
190
- <div class="col-sm-2 form-group">
191
- <label class="font_normal_body color-red">抄&ensp;表&ensp;册</label>
192
- <v-select :value.sync="model.f_meter_book" v-model="model.f_meter_book"
193
- :options='$parent.$parent.meterbooks' placeholder='抄表册'
194
- :multiple="true"
195
- style="width:60%"
196
- condition="f_meter_book_num in {}"></v-select>
197
- </div>
198
- <div class="col-sm-2 form-group">
199
- <label class="font_normal_body">调压箱名</label>
200
- <v-select :value.sync="model.f_adjustable_name" v-model="model.f_adjustable_name"
201
- :options='$parent.$parent.adjustablename' placeholder='调压箱名称'
202
- style="width:60%"
203
- close-on-select
204
- condition="f_adjustable_name = '{}'"></v-select>
205
- </div>
206
- <div class="col-sm-2 flex-row" style="white-space: nowrap" >
207
- <label class="font_normal_body">应交气量</label>
208
- <div class="row">
209
- <input type="text" style="width:30%" class="input_search" v-model="model.oughtamountmin"
210
- condition="f_oughtamount >= {} " placeholder="">
211
- <label class="font_normal_body"> ≤ x ≤ </label>
212
- <input type="text" style="width:30%" class="input_search" v-model="model.oughtamountmax"
213
- condition="f_oughtamount <= {} " placeholder="">
214
- </div>
215
- </div>
216
- <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"
217
- v-ref:sel></res-select-group>
218
- <div class="col-sm-2 form-group">
219
- <label class="font_normal_body">录入时间</label>
220
- <datepicker placeholder="开始日期"
221
- style="width:60%"
222
- class="datepicker"
223
- v-model="model.startDate1"
224
- condition="f_input_date >='{} 00:00:00'"
225
-
226
- :value.sync="model.startDate1"
227
- :format="'yyyy-MM-dd'"
228
- ></datepicker>
229
- </div>
230
- <div class="col-sm-2 form-group">
231
- <label class="font_normal_body">录入时间</label>
232
- <datepicker placeholder="结束日期"
233
- style="width:60%"
234
- v-model="model.endDate1"
235
- :value.sync="model.endDate1"
236
- condition="f_input_date <='{} 23:59:59'"
237
- :format="'yyyy-MM-dd'"
238
- ></datepicker>
239
- </div>
240
- </div>
241
-
242
-
243
- <!-- 多选框 -->
244
- <!--<div class="col-sm-2 form-group">-->
245
- <!--<button class="btn btn-success" @click="$parent.$parent.batchDownHand()">计划下发</button>-->
246
- <!--</div>-->
247
-
248
- <!--<div class="form-group" v-if="$parent.$parent.meter_state">-->
249
- <!--<button class="btn btn-success" @click="$parent.$parent.allDownHand()" >全部下发</button>-->
250
- <!--</div>-->
251
- <!-- 多选框结束 -->
252
-
253
- <!--<div class="col-sm-2 form-group">-->
254
- <!--<button class="btn btn-success" @click="$parent.$parent.adjust()">抄表员调整</button>-->
255
- <!--</div>-->
256
- <!--<div class="col-sm-2 form-group">-->
257
- <!--<button class="btn btn-success" @click="$parent.$parent.fileUpload()">文件上传</button>-->
258
- <!--</div>-->
259
- <!--<div class="col-sm-2 form-group">-->
260
- <!--<button class="btn btn-success" @click="search(), $parent.$parent.clean()">打印</button>-->
261
- <!--</div>-->
262
-
263
- </div>
264
- </criteria>
265
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid id="hand_manager_grid">
266
- <template partial='head'>
267
- <tr>
268
- <!--<th><input type='checkbox' v-model="$parent.$parent.$parent.all" @change="$parent.$parent.$parent.chooseAll"></th>-->
269
- <th>
270
- <nobr>序号</nobr>
271
- </th>
272
- <th>
273
- <nobr>
274
- <data-order field="f_userinfo_code" name="客户编号"
275
- :order.sync="$parent.$parent.$parent.orderFields.f_userinfo_code"></data-order>
276
- </nobr>
277
- </th>
278
- <th>
279
- <nobr>&emsp;&emsp;小区&emsp;&emsp;</nobr>
280
- </th>
281
- <!-- <th>基本信息</th>-->
282
- <th>
283
- <nobr>
284
- <data-order field="f_address" name="基本信息"
285
- :order.sync="$parent.$parent.$parent.orderFields.f_address"></data-order>
286
- </nobr>
287
- </th>
288
- <th>
289
- <nobr>用户等级</nobr>
290
- </th>
291
- <!--<th><nobr><data-order field="f_building" name="楼号"-->
292
- <!--:order.sync="$parent.$parent.$parent.orderFields.f_building"></data-order></nobr>-->
293
- <!--</th>-->
294
- <!--<th><nobr><data-order field="f_unit" name="单元号"-->
295
- <!--:order.sync="$parent.$parent.$parent.orderFields.f_unit"></data-order></nobr>-->
296
- <!--</th>-->
297
- <!--<th><nobr><data-order field="f_room" name="房号"-->
298
- <!--:order.sync="$parent.$parent.$parent.orderFields.f_room"></data-order></nobr>-->
299
- <!--</th>-->
300
- <th>
301
- <nobr>所属年月</nobr>
302
- </th>
303
- <th>
304
- <nobr>上期结余</nobr>
305
- </th>
306
- <th>
307
- <nobr>平均用气量</nobr>
308
- </th>
309
- <th>
310
- <nobr>表号</nobr>
311
- </th>
312
- <th>
313
- <nobr>上期底数</nobr>
314
- </th>
315
- <th>
316
- <nobr>本期底数</nobr>
317
- </th>
318
-
319
-
320
- <th>
321
- <nobr>应交气量</nobr>
322
- </th>
323
- <th>
324
- <nobr>增量值</nobr>
325
- </th>
326
- <th>
327
- <nobr>应交金额</nobr>
328
- </th>
329
- <th>
330
- <nobr>抄表结果状态</nobr>
331
- </th>
332
- <th>
333
- <nobr>是否缴费</nobr>
334
- </th>
335
- <!-- <th>上次抄表日期</th>-->
336
- <th>
337
- <nobr>
338
- <data-order field="f_last_input_date" name="上次抄表录入日期"
339
- :order.sync="$parent.$parent.$parent.orderFields.f_last_input_date"></data-order>
340
- </nobr>
341
- </th>
342
- <!-- <th>下发日期</th>-->
343
- <th>
344
- <nobr>
345
- <data-order field="f_hand_date" name="下发日期"
346
- :order.sync="$parent.$parent.$parent.orderFields.f_hand_date"></data-order>
347
- </nobr>
348
- </th>
349
- <!-- <th>抄表日期</th>-->
350
- <th>
351
- <nobr>
352
- <data-order field="f_input_date" name="抄表录入日期"
353
- :order.sync="$parent.$parent.$parent.orderFields.f_input_date"></data-order>
354
- </nobr>
355
- </th>
356
- <!-- <th>抄表册</th>-->
357
- <th>
358
- <nobr>
359
- <data-order field="f_book_name" name="抄表册"
360
- :order.sync="$parent.$parent.$parent.orderFields.f_book_name"></data-order>
361
- </nobr>
362
-
363
- </th>
364
- <th>
365
- <nobr>调压箱名称</nobr>
366
- </th>
367
- <th>
368
- <nobr>抄表员</nobr>
369
- </th>
370
- <th>
371
- <nobr>录入人员</nobr>
372
- </th>
373
- <th>
374
- <nobr>下发人员</nobr>
375
- </th>
376
- <th>
377
- <nobr>操作</nobr>
378
- </th>
379
- <!-- f_oughtfee-->
380
- </tr>
381
- </template>
382
- <template partial='body'>
383
- <!--<td style="text-align: center;">-->
384
- <!--<input v-if="row.f_meter_state === '未下发'"-->
385
- <!--:id="model.pageIndex" type='checkbox' @change="$parent.$parent.$parent.chooseOne($event,row,model.rows)"-->
386
- <!--:checked="$parent.$parent.$parent.ischecked(row)"/>-->
387
- <!--</td>-->
388
- <td style="text-align: center;">{{$index + 1}}</td>
389
- <td>{{row.f_userinfo_code}}</td>
390
- <td style="width: 200px">{{row.area}}</td>
391
- <td>{{row.f_user_name}}&nbsp;&nbsp;{{row.f_address}}</td>
392
- <td>{{row.f_user_level}}</td>
393
- <!--<td>{{row.f_building}}</td>-->
394
- <!--<td>{{row.f_unit}}</td>-->
395
- <!--<td>{{row.f_room}}</td>-->
396
- <td>{{row.belongmonth}}</td>
397
- <td style="text-align: center;">{{row.f_balance}}</td>
398
- <td style="text-align: center;">{{Math.round(row.avggas)}}</td>
399
- <td>{{row.f_meternumber}}</td>
400
- <td>{{row.f_last_tablebase}}</td>
401
- <td id="hand-creat" v-if="row.f_meter_state === '未抄表' && row.crossyear && $parent.$parent.$parent.config.crossyear ">
402
- <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
403
- 'has-success has-feedback': !row.error,
404
- 'has-error has-feedback': row.error}"
405
- >
406
- <button type="button" name="button" class="btn btn-link"
407
-
408
- @click.stop="$parent.$parent.$parent.yearhand(row) "
409
- >跨年抄表
410
- </button>
411
- <!-- <input title="只能录入整数" type="text" class="input_search" v-model="row.f_tablebase"-->
412
- <!-- @blur="$parent.$parent.$parent.beforenter($index, row)"-->
413
- <!-- v-next-el="{id: $index+2}" :id="$index+1" style="width: 100px;padding: 6px;"-->
414
- <!-- @focus="$parent.$parent.$parent.clearError(row)"-->
415
- <!-- :disabled="row.state === '开始'">-->
416
- </div>
417
-
418
- <span v-if="row.error && row.error !== ''" style="color: #ff0000;">{{row.error}}</span>
419
- </td>
420
- <td id="hand-creat" v-if="row.f_meter_state === '未抄表' && ! row.crossyear ">
421
- <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
422
- 'has-success has-feedback': !row.error,
423
- 'has-error has-feedback': row.error}"
424
- >
425
-
426
- <input title="只能录入整数" type="text" class="input_search" v-model="row.f_tablebase"
427
- @blur="$parent.$parent.$parent.beforenter($index, row)"
428
- v-next-el="{id: $index+2}" :id="$index+1" style="width: 100px;padding: 6px;"
429
- @focus="$parent.$parent.$parent.clearError(row)"
430
- :disabled="row.state === '开始'">
431
- </div>
432
-
433
- <span v-if="row.error && row.error !== ''" style="color: #ff0000;">{{row.error}}</span>
434
- </td>
435
- <td id="hand-creat" v-if="row.f_meter_state !== '未抄表' ">
436
- {{row.f_tablebase}}
437
- </td>
438
- <!--<td style="text-align: center;" v-if="row.f_oughtamount">{{ row.f_oughtamount }}</td>-->
439
- <td style="text-align: center;">{{$parent.$parent.$parent.calculationBase(row)}}</td>
440
- <td style="text-align: center;">
441
- <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{'has-success has-feedback': !row.error,'has-error has-feedback': row.error}"
442
- v-if="row.f_meter_state === '未抄表' && row.states !== 0 && $parent.$parent.$parent.jurisdiction.includes('增量录入')">
443
- <input title="只能录入整数" type="number" class="input_search" v-model="row.f_adjustment_volume"
444
- style="width: 100px;padding: 6px;"
445
- :disabled="row.state === '开始'">
446
- </div>
447
- <div v-else>
448
- {{row.f_adjustment_volume}}
449
- </div>
450
- </td>
451
- <td style="text-align: center;">{{row.f_oughtfee}}</td>
452
-
453
- <td>
454
- <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
455
- 'has-success has-feedback': !row.error,
456
- 'has-error has-feedback': row.error}"
457
- v-if="row.f_meter_state === '未抄表' && row.states !== 0">
458
- <v-select :value.sync="row.f_result_state" v-model="row.f_result_state"
459
- :options='$parent.$parent.$parent.resultstate' placeholder='抄表结果状态'
460
- style="margin-right:90px" width="100%"
461
- :value-single="true"
462
- close-on-select
463
- condition="f_adjustable_name = '{}'"></v-select>
464
- <!-- <span id="inputError2Status" class="sr-only">(error)</span> -->
465
- </div>
466
- <div style="text-align: center;" v-else>
467
- {{row.f_result_state}}
468
- </div>
469
- </td>
470
- <td style="text-align: center;">{{row.f_whether_pay}}</td>
471
- <td>{{row.f_last_input_date}}</td>
472
- <td>{{row.f_hand_date}}</td>
473
- <td>
474
- <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
475
- 'has-success has-feedback': !row.error,
476
- 'has-error has-feedback': row.error}"
477
- v-if="row.f_meter_state === '未抄表' && row.states !== 0 && $parent.$parent.$parent.jurisdiction.includes('录入日期修正')">
478
- <datepicker id="endDate" placeholder="抄表时间"
479
- v-model="row.f_input_date"
480
- :value.sync="row.f_input_date"
481
- :format="'yyyy-MM-dd HH:mm:ss'"
482
- :show-reset-button="true">
483
- </datepicker>
484
- </div>
485
- <div v-else>
486
- {{row.f_input_date}}
487
- </div>
488
- </td>
489
- <td>{{row.f_book_name}}</td>
490
- <td>{{row.f_adjustable_name}}</td>
491
- <td>{{row.f_inputtor}}</td>
492
- <td>{{row.f_input_person}}</td>
493
- <td>{{row.f_operator}}</td>
494
- <td style="text-align: center;"><nobr>
495
- <!-- 已抄表,还没审核-->
496
- <button type="button" name="button" class="button_search button_spacing width-60"
497
- v-if="row.f_meter_state === '待审核' && (row.id == row.maxid || !row.maxid)"
498
- @click.stop="$parent.$parent.$parent.cancelAuditHand(row)">撤销
499
- </button>
500
- <!-- 未抄表,删除计划,直接删表内数据-->
501
- <button type="button" name="button" class="btn btn-danger"
502
- v-if="row.f_meter_state === '未抄表'"
503
- @click.stop="$parent.$parent.$parent.delectHand(row) && row.states === 1"
504
- >删除
505
- </button>
506
- <!-- 已抄表,已审核,冲正(状态改为冲正,添加负记录,需要重新下发)-->
507
- <button type="button" name="button" class="button_search button_spacing width-60"
508
- @click.stop="$parent.$parent.$parent.cancelHand(row)"
509
- v-if="row.f_meter_state === '已抄表' && row.maxid==row.id && (row.f_whether_pay === '否' || row.f_accounts_state === '自动下账' || (row.f_whether_pay === '是'))" >冲正
510
- </button>
511
-
512
- <!-- <button type="button" name="button" class="btn btn-link"-->
513
- <!-- v-if="row.f_meter_state === '待审核' ">待审核-->
514
- <!-- </button>-->
515
-
516
-
517
- </nobr>
518
- </td>
519
- </template>
520
- </data-grid>
521
- </criteria-paged>
522
- <table class="table-hover">
523
- <tr style="position: relative" class="table-bordered">
524
- <td
525
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
526
- 汇总信息
527
- </td>
528
- <td
529
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
530
- 应缴气量:&emsp;{{sumsmodel.f_oughtamount}}
531
- </td>
532
- <td
533
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
534
- 应缴金额:&emsp;{{sumsmodel.f_oughtfee}}
535
- </td>
536
- </tr>
537
- </table>
538
- <split-price :showdata="splitdata" :pricesplit="priceSplit" v-if="priceSplit"></split-price>
539
-
540
- <modal :show.sync="danhu.show" :title='danhutitle' backdrop="false" coverstyle="danhumodal">
541
- <article slot="modal-body" class="modal-body">
542
- <div class="panel panel-primary datapanel">
543
- <div class="row">
544
- <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">客户姓名:{{danhu.info.f_user_name}}</label>
545
- <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">客户编号:{{danhu.info.f_userinfo_code}}</label>
546
- <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">用户证号:{{danhu.info.f_book_no}}</label>
547
- <label class="control-label col-sm-12 flex-row" style="transform: translate(0,8px)">客户地址:{{danhu.info.f_address}}</label>
548
- <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">上次抄表日期:{{danhu.info.f_hand_date}}</label>
549
- <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">上期底数:{{danhu.info.f_tablebase}}</label>
550
- </div>
551
- </div>
552
- <div class="panel panel-primary datapanel">
553
- <div class="row">
554
- <div class="col-sm-6 flex-row" style="margin-top: 2px">
555
- <label for="danhucode" class="control-label" style="transform: translate(0,8px)">客户编号</label>
556
- <input id="danhucode" type="text" class="input_search " style="width: 60% !important;"
557
- v-model="danhu.f_userinfo_code" v-ref:danhucode @keyup.enter.stop="danhuCodeSearch"
558
- placeholder='客户编号'/>
559
- </div>
560
- <div class="col-sm-6 flex-row" style="margin-top: 2px">
561
- <label for="danhubase" class="control-label" style="transform: translate(0,8px)">本期底数</label>
562
- <input id="danhubase" type="number" class="input_search " style="width: 60% !important;"
563
- v-model="danhu.f_tablebase" @keyup.enter.stop="downAndHand"
564
- placeholder='本期底数'/>
565
- </div>
566
- </div>
567
- </div>
568
- </article>
569
- <footer slot="modal-footer">
570
- </footer>
571
- </modal>
572
-
573
- <modal :show.sync="uploadshow" v-ref:modal backdrop="false">
574
- <header slot="modal-header" class="modal-header">
575
- <button type="button" class="close" @click="close"><span>&times;</span></button>
576
- <h4 class="modal-title">文件上传</h4>
577
- </header>
578
- <article slot="modal-body" class="modal-body">
579
- <div class="col-sm-2 form-group">
580
- <file-upload class="my-file-uploader" name="myFile"
581
- action="rs/file/upload" tagname="文件上传" :headers="headers" multiple v-ref:file></file-upload>
582
- </div>
583
- </article>
584
-
585
- <footer slot="modal-footer" class="modal-footer">
586
- <!-- <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
587
- <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button> -->
588
- </footer>
589
- </modal>
590
- <modal :show.sync="examineshow" v-ref:modal backdrop="false">
591
- <header slot="modal-header" class="modal-header">
592
- <button type="button" class="close" @click="close"><span>&times;</span></button>
593
- <h4 class="modal-title">冲正审核</h4>
594
- </header>
595
- <article slot="modal-body" class="modal-body">
596
- <div class="row">
597
- <div class="col-sm-12 form-group">
598
- <label class="font_normal_body">冲正原因</label>
599
- <input type="text" style="width:90%" class="input_search" :disabled="examinetype"
600
- v-model="examinerow.f_examinereason"
601
- placeholder='冲正原因'>
602
- </div>
603
- <upload :blodid="examinerow.id" v-ref:upload :fusetype="uploadText" isremark="true"
604
- style="width:auto"></upload>
605
- </div>
606
-
607
- </article>
608
-
609
- <footer slot="modal-footer" class="modal-footer">
610
- <button v-show="examineshow" type="button" class="btn btn-default" @click='close'>取消</button>
611
- <button v-show="!examinetype" type="button" class="btn btn-success" @click='examineconfirm()'>确认</button>
612
- <button type="button" v-show="examinetype" class="btn btn-success" @click='cancelHand5()'>审核通过</button>
613
- </footer>
614
- </modal>
615
- <modal :show.sync="showstair" backdrop="false">
616
- <header slot="modal-header" class="modal-header">
617
- <button type="button" class="close" @click="closeerr"><span>&times;</span></button>
618
- <h4 class="modal-title">跨阶抄表</h4>
619
- </header>
620
- <article slot="modal-body" class="modal-body">
621
- <div class="row">
622
- <div class="form-group col-sm-12">
623
- <label class="col-xs-2 col-sm-2 col-md-2 form-group">本期表底数</label>
624
- <div class="col-xs-4 col-sm-4 col-md-4 form-group">
625
- <input type="number" class="form-control show-font" v-model="row.f_tablebase" width="80%" @blur="getamount(row)" placeholder="本期表底数" maxlength="10">
626
- </div>
627
-
628
- </div>
629
- <div class="form-group col-sm-12">
630
- <label class="col-xs-2 col-sm-2 col-md-2 form-group">用气量</label>
631
- <div class="col-xs-4 col-sm-4 col-md-4 form-group">
632
- <input type="number" class="form-control show-font" v-model="row.f_oughtamount" width="80%" disabled placeholder="用气量" maxlength="10">
633
- </div>
634
- </div>
635
-
636
- <div v-for="(index,item) in stairdata" class="row">
637
- <div class="col-xs-2 col-sm-2 col-md-2 form-group">
638
- <span class="text-left font" style="color: darkblue">{{ item.year }}周期</span>
639
- </div>
640
- <div class="col-xs-4 col-sm-4 col-md-4 form-group">
641
- <input type="number" class="form-control show-font" v-model="item.f_dispensed_amount" width="80%" placeholder="分配量(单位:方)" maxlength="10">
642
- </div>
643
- <div class="col-xs-4 col-sm-4 col-md-4 form-group">
644
- <input type="number" class="form-control show-font" v-model="item.f_dispensed_price" placeholder="金额(单位:元)" maxlength="10">
645
- </div>
646
- </div>
647
- </div>
648
- </article>
649
- <footer slot="modal-footer" class="modal-footer">
650
- <button type="button" class="btn btn-default" @click='closeyear'>取消</button>
651
- <button type="button" class="btn btn-default" @click='confirmyearhand'>确认</button>
652
- </footer>
653
- </modal>
654
- <modal :show.sync="showerr" backdrop="false">
655
- <header slot="modal-header" class="modal-header">
656
- <button type="button" class="close" @click="closeerr"><span>&times;</span></button>
657
- <h4 class="modal-title">抄表出错!</h4>
658
- </header>
659
- <article slot="modal-body" class="modal-body">
660
- <div class="row">
661
- <p> {{err}}</p>
662
- <input type="text" class="form-control" @blur="paycodefocus" v-el:paycode>
663
- </div>
664
-
665
- </article>
666
-
667
- <footer slot="modal-footer" class="modal-footer">
668
- <button v-show="showerr" type="button" class="btn btn-default" @click='closeerr'>关闭</button>
669
- </footer>
670
- </modal>
671
-
672
- <modal :show.sync="detailsShow" v-ref:model_details backdrop="true" width="700px">
673
- <article slot="modal-body" class="modal-body">
674
- <div class="flex-row">
675
- <div style="width: 50%">
676
- <mix-price-info :data="row" v-if="row.f_price_type === '固定气价'" v-ref:mix_price></mix-price-info>
677
- <stairinfo :data="row" v-if="row.f_price_type === '阶梯气价'" v-ref:statir></stairinfo>
678
- </div>
679
- <div style="width: 50%" class="panel">
680
- <div class="panel-heading detail-panel">
681
- <h4>计算工具</h4>
682
- </div>
683
- <form class="form-horizontal" style="padding: 10px">
684
- <div class="form-group">
685
- <label class="col-sm-4 col-md-4 control-label" style="text-align: left">预购金额:</label>
686
- <div class="col-sm-8 col-md-8">
687
- <input type="number" class="form-control" placeholder="预购金额" @blur="computeAmount" v-el:inputmoney>
688
- </div>
689
- </div>
690
- <div class="form-group">
691
- <label class="col-sm-4 col-md-4 control-label" style="text-align: left">当前底数:</label>
692
- <div class="col-sm-8 col-md-8">
693
- <input type="number" class="form-control" placeholder="当前底数" v-model="row.f_last_tablebase" disabled>
694
- </div>
695
- </div>
696
- <div class="form-group">
697
- <label class="col-sm-4 col-md-4 control-label" style="text-align: left">应抄底数:</label>
698
- <div class="col-sm-8 col-md-8">
699
- <input type="number" class="form-control" placeholder="应抄底数" v-model="should_base" disabled>
700
- </div>
701
- </div>
702
- <div class="form-group">
703
- <label class="col-sm-12 col-md-12 control-label" style="text-align: center">计算公式</label>
704
- <div class="col-sm-12 col-md-12">
705
- <input type="text" class="form-control" placeholder="计算公式" v-model="designFormulas" disabled>
706
- </div>
707
- </div>
708
- </form>
709
- </div>
710
- </div>
711
- </article>
712
- <footer slot="modal-footer" class="modal-footer">
713
- <button type="button" class="button_search button_spacing" @click='customPricing()'>自定义划价</button>
714
- </footer>
715
- </modal>
716
-
717
- <modal :show.sync="priceModel" v-ref:modal backdrop="false">
718
- <header slot="modal-header" class="modal-header">
719
- <h4 class="modal-title">自定义划价</h4>
720
- </header>
721
- <article slot="modal-body" class="modal-body">
722
- <div>
723
- <mix-price-info :data="row" v-if="row.f_price_type === '固定气价'" v-ref:mix_price></mix-price-info>
724
- <stairinfo :data="row" v-if="row.f_price_type === '阶梯气价'" v-ref:statir></stairinfo>
725
- </div>
726
- <div class="row">
727
- <template v-if="row.f_price_type === '固定气价'">
728
- <div class="col-sm-4 form-group">
729
- <label class="font_normal_body">单价</label>
730
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price1" placeholder='单价'></input>
731
- </div>
732
- <div class="col-sm-4 form-group">
733
- <label class="font_normal_body">数量</label>
734
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas1" placeholder='数量'></input>
735
- </div>
736
- <div class="col-sm-4 form-group">
737
- <label class="font_normal_body">金额</label>
738
- <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money1 = stairMoney(row.f_stair_price1, row.f_stair_gas1) }}</p>
739
- </div>
740
- </template>
741
-
742
- <template v-if="row.f_price_type === '阶梯气价'">
743
- <div class="col-sm-4 form-group" >
744
- <label class="font_normal_body">阶梯一单价</label>
745
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price1" placeholder='阶梯一单价'></input>
746
- </div>
747
- <div class="col-sm-4 form-group">
748
- <label class="font_normal_body">阶梯一数量</label>
749
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas1" placeholder='阶梯一数量'></input>
750
- </div>
751
- <div class="col-sm-4 form-group">
752
- <label class="font_normal_body">阶梯一金额</label>
753
- <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money1 = stairMoney(row.f_stair_price1, row.f_stair_gas1) }}</p>
754
- </div>
755
- <div class="col-sm-4 form-group" >
756
- <label class="font_normal_body">阶梯二单价</label>
757
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price2" placeholder='阶梯二单价'></input>
758
- </div>
759
- <div class="col-sm-4 form-group">
760
- <label class="font_normal_body">阶梯二数量</label>
761
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas2" placeholder='阶梯二数量'></input>
762
- </div>
763
- <div class="col-sm-4 form-group">
764
- <label class="font_normal_body">阶梯二金额</label>
765
- <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money2 = stairMoney(row.f_stair_price2, row.f_stair_gas2) }}</p>
766
- </div>
767
- <div class="col-sm-4 form-group" >
768
- <label class="font_normal_body">阶梯三单价</label>
769
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price3" placeholder='阶梯三单价'></input>
770
- </div>
771
- <div class="col-sm-4 form-group">
772
- <label class="font_normal_body">阶梯三数量</label>
773
- <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas3" placeholder='阶梯三数量'></input>
774
- </div>
775
- <div class="col-sm-4 form-group">
776
- <label class="font_normal_body">阶梯三金额</label>
777
- <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money3 = stairMoney(row.f_stair_price3, row.f_stair_gas3) }}</p>
778
- </div>
779
- </template>
780
- <div class="col-sm-4 form-group" >
781
- </div>
782
- <div class="col-sm-4 form-group">
783
- <label class="font_normal_body">总用气量</label>
784
- <p class="form-control" style="width:60%" disabled>{{ ((row.f_stair_gas1 - 0)+(row.f_stair_gas2 - 0)+(row.f_stair_gas3 - 0)).toFixed(2) }}</p>
785
- </div>
786
- <div class="col-sm-4 form-group">
787
- <label class="font_normal_body">总用气金额</label>
788
- <p class="form-control" style="width:60%" disabled>{{ row.f_oughtfee = ((row.f_stair_money1 - 0)+(row.f_stair_money2 - 0)+(row.f_stair_money3 - 0)).toFixed(2) }}</p>
789
- </div>
790
- <p style="color: red">注意: 自定义气量总量必须等于本次抄表用气量, 本次抄表总量: {{row.f_oughtamount}}</p>
791
- </div>
792
- </article>
793
- <footer slot="modal-footer" class="modal-footer">
794
- <button type="button" class="button_clear button_spacing" @click="close()">取消</button>
795
- <button type="button" class="button_search button_spacing" @click='customPricingConfirm()'>确认</button>
796
- </footer>
797
- </modal>
798
- </div>
799
- </div>
800
- </template>
801
- <script>
802
- import MixPriceInfo from '../../components/revenue/base/leftview/MixPriceInfo'
803
- import {PagedList, HttpResetClass} from 'vue-client'
804
- import Vue from 'vue'
805
- import co from 'co'
806
-
807
- let readyGen = async function (self) {
808
- await self.$getConfig(self, 'HandManager')
809
- await self.$LoadParams.loadMeterBook(self.f_filialeid)
810
- self.loadMeterBooks()
811
- self.getfield = self.config.excelHeaders
812
- self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
813
- self.reflash()
814
- }
815
-
816
- let downGen = function* (type, condition, data, self) {
817
- // if(data == 0 ) {
818
- // self.$showAlert('下发计划户数为0!请选择需要下发的计划!!', 'danger', 0)
819
- // return
820
- // }
821
- self.condition = condition
822
- self.msg = '确认下发计划'
823
- // 判断之前是否有未抄表数据
824
- let getUnhand = null
825
- // let getUnhand = yield Vue.resetpost('rs/sql/getUnhand', {data: {startDate: self.startDate, condition: self.condition}}, {resolveMsg: null, rejectMsg: '获取未抄表数据异常!!'})
826
- // if (type === 'batch' || type === 'single') {
827
- if (type === 'single') {
828
- getUnhand = yield Vue.resetpost('rs/sql/getUnhand', {
829
- data: {
830
- startDate: self.model.params.startDate,
831
- condition: condition
832
- }
833
- }, {resolveMsg: null, rejectMsg: '获取未抄表数据异常!!'})
834
- self.msg = `下发客户编号为${data.f_userinfo_code}的抄表计划?`
835
- // } else if (type === 'all') {
836
- } else if (type === 'batch') {
837
- let tempCondition = condition.replace("and f_meter_state = '未下发'", '')
838
- getUnhand = yield Vue.resetpost('rs/sql/getUnhand', {
839
- data: {
840
- startDate: self.model.params.startDate,
841
- condition: tempCondition
842
- }
843
- }, {resolveMsg: null, rejectMsg: '获取未抄表数据异常!!'})
844
- self.msg = `确认下发当前总计: ${data} 户计划`
845
- }
846
- for (let i = 0; i < getUnhand.data.length; i++) {
847
- let temp = {
848
- id: getUnhand.data[i].id,
849
- f_user_id: getUnhand.data[i].f_user_id,
850
- f_userfiles_id: getUnhand.data[i].f_userfiles_id,
851
- f_adjustable_id: getUnhand.data[i].f_adjustable_id,
852
- f_adjustable_name: getUnhand.data[i].f_adjustable_name
853
- }
854
- console.log('=================================================================================')
855
- console.log('下发计划查看调压箱和调压箱编号', temp)
856
- console.log('========================================================================================')
857
- self.unhandplan.push(temp)
858
- }
859
- if (getUnhand.data.length > 0) {
860
- self.msg = self.msg + `, 警告: 之前有 ${getUnhand.data.length} 条未抄表数据`
861
- }
862
- self.show = true
863
- }
864
-
865
- let beforenterGen = async function (self, index, row) {
866
- // 验证是不是总表
867
- // self.enter(index, row)
868
- if (row.f_totalsplit_type === '总表') {
869
- let hasUnHand = await self.$HandService.getSplitInfo(row.f_userfiles_id)
870
- if (hasUnHand) {
871
- self.$showAlert('该表下面有未抄或未审核的分表信息!!请先抄录或审核分表信息!', 'danger', 0)
872
- row.f_tablebase = null
873
- } else {
874
- self.enter(index, row)
875
- }
876
- } else {
877
- self.enter(index, row)
878
- }
879
- }
880
-
881
- export default {
882
- title: '机表抄表',
883
- components: { MixPriceInfo },
884
- data () {
885
- return {
886
- priceModel: false,
887
- initres: {
888
- org: [this.$login.f.orgid],
889
- dep: [],
890
- user: []
891
- },
892
- showstair: false,
893
- stairdata: [],
894
- sumsmodel: [],
895
- orgCondtionStr: '',
896
- priceSplit: false,
897
- deletestate: false,
898
- criteriaShow: false,
899
- model: new PagedList('rs/sql/getPlan', 50, {orderitem: this.orderDefault ? '"' + this.orderDefault + ' "' : `'f_hand_date desc'`}, {
900
- f_oughtamount: 0,
901
- f_oughtfee: 0
902
- }),
903
- config: {
904
- crossyear: true,
905
- // 导出列要和查询列相同
906
- excelHeaders: {
907
- 'f_user_id': '表编号',
908
- 'f_meternumber': '表号',
909
- 'f_inputtor': '抄表员',
910
- 'f_balance': '上期结余',
911
- 'f_last_input_date': '上次抄表',
912
- 'f_hand_date': '下发时间',
913
- 'f_input_date': '抄表日期',
914
- 'f_userinfo_code': '客户编号',
915
- 'f_address': '客户地址',
916
- 'area': '小区名称',
917
- 'f_user_name': '客户姓名',
918
- 'f_last_tablebase': '上期底数',
919
- 'f_tablebase': '本期指数',
920
- 'f_oughtfee': '应交金额',
921
- 'f_oughtamount': '应交气量',
922
- 'f_whether_pay': '是否缴费',
923
- 'f_book_name': '抄表册',
924
- 'f_input_person': '录入人员',
925
- 'f_operator': '下发人员',
926
- 'f_meter_classify': '气表分类',
927
- 'f_meter_style': '气表型号',
928
- 'f_accounts_state': '下账标识',
929
- 'f_user_phone': '客户电话',
930
- 'f_adjustable_id': '表箱号'
931
- },
932
- examine: true,
933
- customCal: false
934
- },
935
- meter_state: false, // 是否显示计划下发按钮
936
- downModel: {
937
- downDate: Vue.$login.toStandardTimeString(),
938
- downWay: 'downWithUserfiles',
939
- downInputtor: []
940
- },
941
- inputtorModel: {
942
- inputtor: [],
943
- reason: ''
944
- },
945
- auditState: [{label: '全部', value: ''}, {label: '未抄表', value: '未抄表'}, {label: '待审核', value: '待审核'}, {label: '已抄表', value: '已抄表'}],
946
-
947
- plans: [], // 记录当前行是否被勾选
948
- all: false, // 是否全选
949
- show: false, // 下发日期模态框显示
950
- unhandplan: [], // 之前是否有未抄表记录
951
- downConfirm: false, // 下发若有未抄记录,确认框
952
- uploadshow: false,
953
- // 小区
954
- residentialArea: [],
955
-
956
- // downDate: this.$login.toStandardYearMonth().replace("-", ""),
957
- msg: '',
958
- condition: '',
959
- headers: {'username': Vue.$login.f.name, 'blodid': Vue.$login.guid()},
960
- orderDefault: 'f_hand_date',
961
- orderFields: {
962
- f_userinfo_id: 'no'
963
- },
964
- getfield: {},
965
- outlet: '',
966
- filiale: '',
967
- condition2: '',
968
- area: [],
969
- inputtouPerson: [],
970
- meters: [{label: '全部', value: ''}, {label: '机表', value: '机表'}, {label: '物联网表', value: '物联网表'}],
971
- resultstate: this.$appdata.getParam('抄表结果状态'),
972
- meterstates: this.$appdata.getParam('抄表状态') ? [{
973
- label: '全部',
974
- value: ''
975
- }, ...this.$appdata.getParam('抄表状态')] : [],
976
- usertypes: this.$appdata.getParam('客户类型') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('客户类型')] : [],
977
- userlevels: this.$appdata.getParam('用户等级') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户等级')] : [],
978
- adjustablename: this.$appdata.getParam('调压箱名称') ? [{
979
- label: '全部',
980
- value: ''
981
- }, ...this.$appdata.getParam('调压箱名称')] : [],
982
- inputtores2: [], // 下发时使用自定义抄表员,
983
- splitdata: '',
984
- f_filialeid: this.$login.f.orgid,
985
- meterbooks: [],
986
- upshow: false,
987
- inputid: 0,
988
- examineshow: false,
989
- examinerow: null,
990
- showfiles: false,
991
- uploadText: '抄表',
992
- examinetype: false,
993
- danhu: {
994
- show: false,
995
- f_userinfo_code: '',
996
- f_tablebase: '',
997
- info: {}
998
- },
999
- showerr: false,
1000
- err: '',
1001
- // 请求对象(批量导入,查询进度使用)
1002
- HttpReset: new HttpResetClass(),
1003
- // 气价使用详情展示
1004
- detailsShow: false,
1005
- row: null,
1006
- // 应抄底数
1007
- should_base: 0,
1008
- // 计算公式
1009
- designFormulas: null,
1010
- usermlimit: this.$appdata.getSingleValue('民用自动审核区间'),
1011
- userfmlimit: this.$appdata.getSingleValue('非民用自动审核区间')
1012
- }
1013
- },
1014
- ready () {
1015
- this.getaddress()
1016
- readyGen(this)
1017
- },
1018
- mounted () {
1019
- console.log(this.inputid)
1020
- document.getElementById(this.inputid).focus()
1021
- },
1022
- methods: {
1023
- getamount (row) {
1024
- if(row.f_tablebase<row.f_last_tablebase){
1025
- this.$showMessage('本地底数小于上期底数')
1026
- }else{
1027
- row.f_oughtamount = (row.f_tablebase - 0) - (row.f_last_tablebase - 0)
1028
- }
1029
- },
1030
- closeyear(){
1031
- this.showstair =false
1032
- this.row = null
1033
- },
1034
- confirmyearhand () {
1035
- if (this.stairdata){
1036
- let amount = 0
1037
- let price = 0
1038
- let f_oughtamount = this.row.f_oughtamount
1039
-
1040
- for (let i=0;i<this.stairdata.length;i++){
1041
- console.log('qiliang----------------->',this.stairdata[i].f_dispensed_amount)
1042
- if (this.stairdata[i].f_dispensed_amount && this.stairdata[i].f_dispensed_price){
1043
- amount = amount + parseFloat(this.stairdata[i].f_dispensed_amount)
1044
- console.log("amount-------->",amount)
1045
- price = price + parseFloat(this.stairdata[i].f_dispensed_price)
1046
- console.log("price-------->",price)
1047
- }
1048
- }
1049
-
1050
- console.log("amount--最后算的------>",amount)
1051
- console.log("f_oughtamount--最后算的------>",f_oughtamount)
1052
-
1053
- if (f_oughtamount !== amount && amount >0){
1054
- this.$showMessage('请重新录入分配气量')
1055
- return
1056
- }
1057
- }
1058
- this.row.dataArr = this.stairdata
1059
- let url = 'rs/logic/yearCommonEnter'
1060
- this.$resetpost(url, {data: this.row}, {warnMsg: '确定对这条记录进行抄表吗?'}).then(() => {
1061
- this.search()
1062
- this.showstair =false
1063
- this.row = null
1064
- })
1065
- },
1066
- yearhand (data) {
1067
- this.stairdata = []
1068
- this.row = data
1069
- if (data.f_last_input_date) {
1070
- console.log('核算时间----------', data.f_last_input_date)
1071
- let date1 = data.f_last_input_date // 上次抄表时间
1072
- let date2 = new Date(Date.parse(date1)) // 上次抄表时间
1073
- let date3 = new Date() // 当前时间
1074
- let days = date3.getFullYear() - date2.getFullYear()
1075
- console.log('年份差值----------->', days)
1076
- if (days >= 1) {
1077
- console.log('days大于1就进来')
1078
- for (let i = 0; i <= days; i++) {
1079
- let year = date2.getFullYear() + i
1080
- console.log('加入的年份------->', year)
1081
- let temp = {
1082
- f_dispensed_amount: null,
1083
- f_dispensed_price: null,
1084
- year: year
1085
- }
1086
- this.stairdata.push(temp)
1087
- }
1088
- this.showstair = true
1089
- console.log('数组长度---------->', this.stairdata)
1090
- }
1091
- }
1092
- },
1093
- stairMoney (price, gas) {
1094
- return (price * gas).toFixed(2) - 0
1095
- },
1096
- async customPricingConfirm () {
1097
- let sumGas = (this.row.f_stair_gas1 - 0) + (this.row.f_stair_gas2 - 0) + (this.row.f_stair_gas3 - 0)
1098
- if (sumGas !== (this.row.f_oughtamount - 0)) {
1099
- this.$showMessage('自定义划价总气量不符, 请检查')
1100
- return
1101
- }
1102
- let row = {
1103
- id: this.row.id,
1104
- f_oughtfee: this.row.f_oughtfee,
1105
- f_stair_price1: this.row.f_stair_price1,
1106
- f_stair_gas1: this.row.f_stair_gas1,
1107
- f_stair_money1: this.row.f_stair_money1,
1108
- f_stair_price2: this.row.f_stair_price2,
1109
- f_stair_gas2: this.row.f_stair_gas2,
1110
- f_stair_money2: this.row.f_stair_money2,
1111
- f_stair_price3: this.row.f_stair_price3,
1112
- f_stair_gas3: this.row.f_stair_gas3,
1113
- f_stair_money3: this.row.f_stair_money3
1114
- }
1115
- await this.$resetpost('rs/logic/customPricing', {data: row}, {resolveMsg: '保存成功', rejectMsg: '保存失败'}).then(res => {
1116
- this.close()
1117
- this.search()
1118
- })
1119
- },
1120
- customPricing () {
1121
- if (!this.$login.r.find(value => value == '抄表自定义划价')) {
1122
- this.$showMessage('当前登录用户没有【抄表自定义划价】权限, 请联系管理员!')
1123
- return
1124
- }
1125
- if (this.row.f_meter_state !== '已抄表') {
1126
- this.$showMessage('当前抄表单不是已抄表状态,无法进行自定义划价!')
1127
- return
1128
- }
1129
- if (this.row.f_whether_pay !== '否') {
1130
- this.$showMessage('当前抄表单已经缴费,无法进行自定义划价!')
1131
- return
1132
- }
1133
- this.detailsShow = false
1134
- this.priceModel = true
1135
- },
1136
- downloadFiles () {
1137
- let downurl = 'rs/downloadfile/file?filename=机表抄表导入Excel模板_zhongyi'
1138
- this.$downFile(downurl, '机表抄表导入Excel模板.xlsx')
1139
- },
1140
- calculationBase (row) {
1141
- let oughtamount = null
1142
- if (row.f_tablebase) {
1143
- if (row.f_share_gas) {
1144
- oughtamount = (row.f_tablebase - 0 - (row.f_last_tablebase - 0)).toFixed(4) + (row.f_share_gas > 0 ? '+' : '') + row.f_share_gas.toFixed(2)
1145
- } else {
1146
- if (row.f_capacity && row.f_capacity > 0 && row.f_tablebase < row.f_last_tablebase) {
1147
- oughtamount = (row.f_tablebase - 0 + (row.f_capacity - row.f_last_tablebase)).toFixed(2)
1148
- } else {
1149
- oughtamount = (row.f_tablebase - 0 - (row.f_last_tablebase - 0)).toFixed(2)
1150
- }
1151
- }
1152
- } else {
1153
- oughtamount = 0
1154
- }
1155
- row.f_oughtamount = oughtamount
1156
- return oughtamount
1157
- },
1158
- cancelHand (row) {
1159
- if (this.config.examine) {
1160
- let handdate = new Date(row.f_hand_date)
1161
- let ima = new Date()
1162
- if (handdate.getMonth() == ima.getMonth()) {
1163
- this.cancelHand3(row)
1164
- } else {
1165
- if (!this.$login.r.find(value => value == '抄表隔月冲正')) {
1166
- this.$showMessage('当前登录用户没有【抄表隔月冲正】权限, 请联系管理员!')
1167
- } else {
1168
- this.cancelHand3(row)
1169
- }
1170
- }
1171
- } else {
1172
- this.cancelHand3(row)
1173
- }
1174
- },
1175
-
1176
- cancelHand3 (row) {
1177
- // 抄表加入权限
1178
- if (!this.$login.r.find(value => value == '机表抄表冲正')) {
1179
- this.$showMessage('当前登录用户没有冲正权限, 请联系管理员!')
1180
- return
1181
- }
1182
- // console.log('抄表冲正。、。。、', row)
1183
- let param = {
1184
- f_hand_id: row.id,
1185
- operInfo: {
1186
- f_operator: this.$login.f.name,
1187
- f_operatorid: this.$login.f.id,
1188
- f_orgid: this.$login.f.orgid,
1189
- f_orgname: this.$login.f.orgs,
1190
- f_depid: this.$login.f.depids,
1191
- f_depname: this.$login.f.deps
1192
- }
1193
- }
1194
- let url = 'rs/logic/sale_commonEnterCancel'
1195
- this.$resetpost(url, {data: param}, {warnMsg: '确定对这条记录进行撤销吗?'}).then(() => {
1196
- this.search()
1197
- this.close()
1198
- })
1199
- },
1200
- cancelAuditHand (row) {
1201
- console.log('撤回本次录入。。。', row)
1202
- let handplan = {
1203
- id: row.id,
1204
- f_oughtamount: 0,
1205
- f_tablebase: 0,
1206
- f_input_date: null,
1207
- f_meter_state: '未抄表',
1208
- f_meter_source: null
1209
- }
1210
- this.$resetpost('rs/entity/t_handplan', handplan, {
1211
- resolveMsg: null,
1212
- rejectMsg: '撤回失败'
1213
- }).then((res) => {
1214
- this.search()
1215
- })
1216
- },
1217
- async danhuCodeSearch () {
1218
- this.danhu.f_userinfo_code = this.danhu.f_userinfo_code.replace(/(^\s*)|(\s*$)/g, '')
1219
- await this.$resetpost('rs/sql/getInfoOfDanhu', {
1220
- data: {
1221
- f_userinfo_code: this.danhu.f_userinfo_code,
1222
- f_orgid: this.f_filialeid
1223
- }
1224
- },
1225
- {resolveMsg: null, rejectMsg: '查询用户信息失败,网络错误'}).then(res => {
1226
- if (res.data.length !== 1) {
1227
- this.$showAlert(res.data.length === 0 ? '没有查询到用户' : '查询到多条用户信息', 'warning', 3000)
1228
- return
1229
- }
1230
- if (res.data[0].f_meter_state === '待审核') {
1231
- this.$showAlert('用户有待审核的记录', 'warning', 3000)
1232
- return
1233
- }
1234
- if (res.data[0].f_whether_pay === '否') {
1235
- this.$showAlert('用户有未缴费的抄表记录', 'warning', 3000)
1236
- }
1237
- this.danhu.info = res.data[0]
1238
- // = Object.assign(this.danhu,{info:res.data[0]})
1239
- document.getElementById('danhubase').focus()
1240
- })
1241
- },
1242
- // 单户抄表 下发计划并抄表
1243
- async downAndHand () {
1244
- if (!this.danhu.info.f_userinfo_code || this.danhu.info.f_userinfo_code === '') {
1245
- this.$showAlert(`请先查询用户信息`, 'warning', 2000)
1246
- return
1247
- }
1248
-
1249
- if (this.danhu.f_tablebase < 0) {
1250
- this.$showAlert(`底数不能小于0,请注意!`, 'warning', 2000)
1251
- return
1252
- } else if (this.danhu.f_tablebase - parseInt(this.danhu.f_tablebase) !== 0) {
1253
- this.$showAlert(`底数只能输入整数,请注意!`, 'warning', 2000)
1254
- return
1255
- } else if (this.danhu.f_tablebase < this.danhu.info.f_tablebase && !this.danhu.info.f_capacity) {
1256
- this.$showAlert(`本期表底数不能低于上期表底数`, 'warning', 2000)
1257
- return
1258
- } else {
1259
- if (this.danhu.f_tablebase < this.danhu.info.f_tablebase) {
1260
- this.$showMessage('本次抄表已超越最大量程, 请熟知!')
1261
- }
1262
- }
1263
- let param = {
1264
- downDate: this.downModel.downDate,
1265
- startDate: this.model.params.startDate,
1266
- endDate: this.model.params.endDate,
1267
- condition: ` f_userfiles_id = '${this.danhu.info.f_userfiles_id}' `,
1268
- f_operator: this.$login.f.name,
1269
- f_operatorid: this.$login.f.id,
1270
- danhu: true,
1271
- userfilesid: this.danhu.info.f_userfiles_id
1272
- }
1273
- console.log('下发参数:', param)
1274
- this.$resetpost('rs/logic/downHand', {data: param}, {resolveMsg: null, rejectMsg: '下发失败,请检查该用户是否在该归属期内已有抄表记录'}).then((res) => {
1275
- console.log('下发计划成功', res)
1276
- this.$resetpost('/rs/sql/querySingleTable', {
1277
- data: {
1278
- items: 'max(id) id',
1279
- tablename: 't_handplan',
1280
- condition: ` f_userfiles_id = '${this.danhu.info.f_userfiles_id}' `
1281
- }
1282
- }, {resolveMsg: null, rejectMsg: '查询抄表信息失败'}).then((res2) => {
1283
- let handParam = {
1284
- f_meter_classify: this.danhu.info.f_meter_classify,
1285
- f_meter_brand: this.danhu.info.f_meter_brand,
1286
- f_hand_id: res2.data[0].id,
1287
- f_tablebase: this.danhu.f_tablebase,
1288
- f_userinfo_id: this.danhu.info.f_userinfo_id
1289
- }
1290
- this.$resetpost('rs/logic/sale_commonEnter', {data: handParam}, {
1291
- resolveMsg: null,
1292
- rejectMsg: null
1293
- })
1294
- }).then((res) => {
1295
- this.$showAlert(`单户抄表成功!`, 'success', 2000)
1296
- this.danhuShow()
1297
- }).catch((error) => {
1298
- this.danhu.show = false
1299
- this.$showAlert(`单户抄表失败!` + JSON.toString(error), 'danger', 2000)
1300
- })
1301
- }).catch((error) => {
1302
- this.danhu.show = false
1303
- this.$showAlert(`抄表失败,请注意查看,失败原因:` + JSON.toString(error), 'danger', 2000)
1304
- })
1305
- },
1306
- // 获得本月的最后一天。
1307
- getLastDayOfMonth (year, month) {
1308
- let new_year = year // 取当前的年份
1309
- let new_month = month++// 取下一个月的第一天,方便计算(最后一天不固定)
1310
- if (month > 12) // 如果当前大于12月,则年份转到下一年
1311
- {
1312
- new_month -= 12 // 月份减
1313
- new_year++ // 年份增
1314
- }
1315
- let new_date = new Date(new_year, new_month, 1) // 取当年当月中的第一天
1316
- let date_count = (new Date(new_date.getTime() - 1000 * 60 * 60 * 24)).getDate()// 获取当月的天数
1317
- // let last_date = new Date(new_date.getTime() - 1000 * 60 * 60 * 24);//获得当月最后一天的日期
1318
- return date_count
1319
- },
1320
- danhuShow () {
1321
- this.model.params.startDate = this.$refs.paged.$refs.criteria.model.startDate
1322
- this.model.params.endDate = this.$refs.paged.$refs.criteria.model.endDate
1323
- this.downModel.downDate = this.$login.toStandardTimeString()
1324
- this.danhu = {
1325
- show: true,
1326
- f_userinfo_code: '',
1327
- f_tablebase: '',
1328
- info: {}
1329
- }
1330
- setTimeout(() => {
1331
- document.getElementById('danhucode').focus()
1332
- this.$refs.paged.$refs.criteria.search()
1333
- }, 100)
1334
- },
1335
- paycodefocus () {
1336
- this.$nextTick(() => {
1337
- this.$els.paycode.focus()
1338
- })
1339
- },
1340
- getRes (obj) {
1341
- this.orgCondtionStr = obj
1342
- },
1343
- async getaddress () {
1344
- console.log('开始获取小区')
1345
- let HttpReset = new HttpResetClass()
1346
- var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
1347
- data: {
1348
- condition: `1=1 and s.f_filialeid = '${this.$login.f.orgid}'`
1349
- }
1350
- }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
1351
- console.log('小区', data)
1352
- let house = []
1353
- house.push()
1354
- for (let row of data.data) {
1355
- console.log('开始保存小区')
1356
- house.push({label: row.f_residential_area, value: row.f_residential_area})
1357
- }
1358
- this.residentialArea = house
1359
- },
1360
- loadMeterBooks () {
1361
- this.meterbooks = this.$GetSaleParam.getMeterBooks()
1362
- },
1363
-
1364
- fileterprice (row) {
1365
- this.splitdata = row
1366
- this.priceSplit = true
1367
- console.log('row==>', row)
1368
- },
1369
- hidden () {
1370
- this.criteriaShow = !this.criteriaShow
1371
- },
1372
- clear () {
1373
- Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
1374
- this.$refs.paged.$refs.criteria.model[key] = []
1375
- })
1376
- },
1377
-
1378
- // 判断当前页是否全选
1379
- isChooseAll (rows) {
1380
- if (this.plans.length == 0 && rows.length == 0) {
1381
- return false
1382
- }
1383
- for (var i = 0; i < rows.length; i++) {
1384
- let flag = false
1385
- if (rows[i].f_meter_state == '未下发') {
1386
- for (let plan of this.plans) {
1387
- if (plan.id == rows[i].f_userfiles_id) {
1388
- flag = true
1389
- if (!plan.state) {
1390
- return false
1391
- }
1392
- }
1393
- }
1394
- if (!flag) {
1395
- return false
1396
- }
1397
- }
1398
- }
1399
- return true
1400
- },
1401
- // 选择需要下发的计划
1402
- chooseOne (e, row, rows) {
1403
- console.log('row', row)
1404
- let checked = e.target.checked
1405
- console.log('state', e.target.checked)
1406
- // 判断当前行是否被选中
1407
- if (checked) {
1408
- let onePlan = {
1409
- id: row.f_userfiles_id,
1410
- state: true
1411
- }
1412
- // 记录被选中计划的状态
1413
- let flag = false
1414
- for (let plan of this.plans) {
1415
- if (plan.id == row.f_userfiles_id) {
1416
- flag = true
1417
- plan.state = true
1418
- }
1419
- }
1420
- if (!flag) {
1421
- this.plans.push(onePlan)
1422
- }
1423
- } else {
1424
- for (let plan of this.plans) {
1425
- if (plan.id == row.f_userfiles_id) {
1426
- plan.state = false
1427
- }
1428
- }
1429
- }
1430
- // let param = {id:row.id,isChoose:true}
1431
-
1432
- if (this.isChooseAll(rows)) {
1433
- this.all = true
1434
- } else {
1435
- this.all = false
1436
- }
1437
- // this.delRepetition()
1438
- },
1439
- uploadFiles () {
1440
- this.showfiles = !this.showfiles
1441
- },
1442
- chooseAll () {
1443
- if (this.all) {
1444
- // this.chooseInfo[index-1] = []
1445
- // for (let row of this.model.rows){
1446
- // this.chooseInfo[index-1].push(row)
1447
- // }
1448
- // this.chooseInfo = Object.assign([],this.chooseInfo,this.model.rows)
1449
-
1450
- for (let row of this.model.rows) {
1451
- if (row.f_meter_state == '未下发') {
1452
- let onePlan = {
1453
- id: row.f_userfiles_id,
1454
- state: true
1455
- }
1456
- let flag = false
1457
- for (let plan of this.plans) {
1458
- if (plan.id == row.f_userfiles_id) {
1459
- flag = true
1460
- plan.state = true
1461
- }
1462
- }
1463
- if (!flag) {
1464
- this.plans.push(onePlan)
1465
- }
1466
- }
1467
- }
1468
- } else {
1469
- // this.chooseInfo[index-1] = []
1470
- // console.log("this.chooseInfo[index-1]",this.chooseInfo[index-1])
1471
- for (let row of this.model.rows) {
1472
- if (row.f_meter_state == '未下发') {
1473
- for (let plan of this.plans) {
1474
- if (plan.id == row.f_userfiles_id) {
1475
- plan.state = false
1476
- }
1477
- }
1478
- }
1479
- }
1480
- }
1481
- },
1482
- search () {
1483
- // 查询前清空选择项
1484
- this.plans = []
1485
- this.$refs.paged.$refs.criteria.search()
1486
- },
1487
- clickupshow () {
1488
- if (!this.$login.r.find(value => value == '机表抄表导入抄表')) {
1489
- this.$showMessage('你没有机表抄表导入抄表的权限,请联系管理员!')
1490
- return
1491
- }
1492
- this.upshow = !this.upshow
1493
- },
1494
- deletehand () {
1495
- if (!this.$login.r.find(value => value == '抄表计划删除')) {
1496
- this.$showMessage('你没有【抄表计划删除】的权限,请联系管理员!')
1497
- } else {
1498
- if (this.deletestate) {
1499
- console.log('mode', this.model)
1500
- let cons = this.model.params
1501
- this.$showMessage('删除后不可恢复,确认删除该批未抄表计划吗?', ['confirm', 'cancel']).then((res) => {
1502
- if (res === 'confirm') {
1503
- this.$resetpost('rs/logic/deletePlanAll', {data: cons}).then((res) => {
1504
- this.$dispatch('refresh', '删除计划', cons)
1505
- console.log('ressss:', res)
1506
- this.$showAlert(`共计删除${res.data.index}条记录`, 'success', 2000)
1507
- this.search()
1508
- })
1509
- }
1510
- })
1511
- } else {
1512
- this.$showMessage('为保证误删操作,请先选择抄表单查询条件为未抄表,查询后,再点击删除计划按钮!')
1513
- }
1514
- }
1515
- },
1516
- searchPrint () {
1517
- console.log('mode', this.model)
1518
- let cons = this.model.params
1519
- let data = {
1520
- 'body': {
1521
- 'data': {
1522
- 'condition': ''
1523
- },
1524
- 'field': [],
1525
- 'templateName': '',
1526
- 'sqlName': ''
1527
- },
1528
- 'condition': cons,
1529
- 'sqlname': 'periodAlreadyIssuedOrder'
1530
- }
1531
- this.$resetpost('rs/logic/allExportExcel', {data: data}, {resolveMsg: null, rejectMsg: '上传失败'}).then((res) => {
1532
- if (res.data === 'no user') {
1533
- this.$showAlert(`无匹配用户,无法导出对应excel`, 'warning', 2000)
1534
- } else {
1535
- var link = document.createElement('a')
1536
- res.data.forEach((item) => {
1537
- console.log('导出路径', item.filename)
1538
- let path = item.filename
1539
- // 本地
1540
- // let pathName = "http://" + location.host + "/excel" + path.split('excel')[1]
1541
- // 服务器
1542
- let pathName = 'http://' + location.host + '/webapps' + path.split('webapps')[1]
1543
- link.href = pathName
1544
- console.log('=============================', path.split('excel/')[1])
1545
- link.download = path.split('excel/')[1]
1546
- link.dispatchEvent(new MouseEvent('click'))
1547
- })
1548
- }
1549
- })
1550
- },
1551
- selfSearch (args) {
1552
- this.meter_state = args.condition.includes('未下发')
1553
- this.inputtor_change = args.condition.includes('未抄表')
1554
- console.log('=====抄表1====', args.condition.includes('未抄表'))
1555
- console.log('=====抄表1====', this.deletestate)
1556
- if (args.condition.includes('未抄表')) {
1557
- this.deletestate = true
1558
- } else {
1559
- this.deletestate = false
1560
- }
1561
- console.log('=====抄表1====', this.deletestate)
1562
- if (!this.orgCondtionStr) {
1563
- args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
1564
- } else {
1565
- args.condition = `${args.condition}` + this.orgCondtionStr
1566
- }
1567
-
1568
- // 抄表员查询条件
1569
- this.inputtouPerson = this.$refs.paged.$refs.criteria.model.f_inputtor
1570
- if (this.inputtouPerson.length !== 0) {
1571
- let str = JSON.stringify(this.inputtouPerson)
1572
- str = str.replace(/"/g, `'`)
1573
- str = str.replace(/\[/g, ``)
1574
- str = str.replace(/\]/g, ``)
1575
- console.log('=====抄表员model22222222222绑定====', str)
1576
- // 查询多个抄表员时条件
1577
- args.condition += ` and f_inputtor in ( ${str} )`
1578
- }
1579
- // 小区查询条件
1580
- this.area = this.$refs.paged.$refs.criteria.model.f_residential_area
1581
- console.log('=====小区model绑定====', this.area)
1582
- if (this.area.length !== 0) {
1583
- let str = JSON.stringify(this.area)
1584
- str = str.replace(/"/g, `'`)
1585
- str = str.replace(/\[/g, ``)
1586
- str = str.replace(/\]/g, ``)
1587
- console.log('=====小区model22222222222绑定====', str)
1588
- // 查询多个小区时条件
1589
- args.condition += ` and f_residential_area in ( ${str} )`
1590
- }
1591
-
1592
- if (args.model.f_meter_brand && args.model.f_meter_brand.length > 0) {
1593
- if (args.model.f_meter_brand[0].f_meter_brand) {
1594
- args.condition = `${args.condition} and f_meter_brand = '${args.model.f_meter_brand[0].f_meter_brand}'`
1595
- }
1596
- }
1597
- this.model.params.startDate = this.$refs.paged.$refs.criteria.model.startDate
1598
- this.model.params.endDate = this.$refs.paged.$refs.criteria.model.endDate
1599
- this.condition2 = args.condition
1600
- console.log('selfsearch..', args.condition, this.model)
1601
- this.model.search(args.condition, this.model)
1602
- },
1603
- reflash () {
1604
- this.$refs.paged.$refs.criteria.model.f_orgid = `${Vue.$login.f.orgid}`
1605
- this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStartAndEndDateString()[0]
1606
- this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStartAndEndDateString()[1]
1607
- this.search()
1608
- },
1609
- beforenter (index, row) {
1610
- this.inputid = index + 1
1611
- // 限制本次抄表不能低于上次
1612
- if (row.f_tablebase) {
1613
- if (row.f_tablebase < 0) {
1614
- row.state = '失败'
1615
- Vue.set(row, 'error', '底数不能小于0')
1616
- this.speckText('底数不能小于0,请注意!')
1617
- } else if (row.f_tablebase - parseInt(row.f_tablebase) !== 0) {
1618
- row.state = '失败'
1619
- Vue.set(row, 'error', '底数只能输入整数')
1620
- this.speckText('底数只能输入整数,请注意!')
1621
- } else if (row.f_tablebase < row.f_last_tablebase && !row.f_capacity) {
1622
- row.state = '失败'
1623
- Vue.set(row, 'error', '本期表底数不能低于上期表底数')
1624
- this.speckText('本期表底数不能低于上期表底数,请注意!')
1625
- } else {
1626
- if (row.f_tablebase < row.f_last_tablebase) {
1627
- this.$showMessage('本次抄表已超越最大量程, 请熟知!')
1628
- }
1629
- // 抄表结果状态没选默认给正常
1630
- row.f_result_state = row.f_result_state ? row.f_result_state : '正常'
1631
- beforenterGen(this, index, row)
1632
- }
1633
- }
1634
- },
1635
- enter (index, row) {
1636
- console.log('录入数据。..', row)
1637
- let auditFlag = false
1638
- let num = (row.f_tablebase - row.f_last_tablebase)
1639
- let reg = /^\d+,\d+$/
1640
- if (row.f_user_type === '民用' && this.usermlimit) {
1641
- if (!reg.test(this.usermlimit)) {
1642
- this.$showMessage('民用自动审核区间参数设置有误, 请检查!')
1643
- return
1644
- }
1645
- let limit = this.usermlimit.split(',')
1646
- if (!(limit[0] - 0 <= num && num <= limit[1] - 0)) {
1647
- auditFlag = true
1648
- }
1649
- } else if (row.f_user_type === '非民用' && this.userfmlimit) {
1650
- if (!reg.test(this.userfmlimit)) {
1651
- this.$showMessage('非民用自动审核区间参数设置有误, 请检查!')
1652
- return
1653
- }
1654
- let limit = this.userfmlimit.split(',')
1655
- if (!(limit[0] - 0 <= num && num <= limit[1] - 0)) {
1656
- auditFlag = true
1657
- }
1658
- } else if (this.$appdata.getSingleValue('抄表审核') === '启用') {
1659
- auditFlag = true
1660
- }
1661
- if (auditFlag) {
1662
- let f_input_date = Vue.$login.toStandardDateString()
1663
- if (row.f_input_date && row.f_input_date != '') {
1664
- f_input_date = row.f_input_date
1665
- }
1666
- let handplan = {
1667
- id: row.id,
1668
- f_oughtamount: row.f_oughtamount,
1669
- f_adjustment_volume: row.f_adjustment_volume ? row.f_adjustment_volume : 0,
1670
- f_tablebase: row.f_tablebase,
1671
- f_hand_date: row.f_hand_date,
1672
- f_input_date: f_input_date,
1673
- f_input_person: Vue.$login.f.name,
1674
- f_meter_state: '待审核',
1675
- f_meter_source: '手动录入',
1676
-
1677
- f_operator: Vue.$login.f.name,
1678
- f_operatorid: Vue.$login.f.id,
1679
- f_orgid: Vue.$login.f.orgid,
1680
- f_orgname: Vue.$login.f.orgs,
1681
- f_depid: Vue.$login.f.depids,
1682
- f_depname: Vue.$login.f.deps
1683
-
1684
- }
1685
- console.log('抄表负数。。0', handplan)
1686
- this.$resetpost('rs/entity/t_handplan', handplan, {
1687
- resolveMsg: null,
1688
- rejectMsg: '抄表数据保存出错!!!'
1689
- }).then((res) => {
1690
- row.f_meter_state = '待审核'
1691
- row.f_whether_pay = '否'
1692
- row.f_input_date = res.data.f_input_date
1693
- // this.search()
1694
- }).catch((error) => {
1695
- row.state = '失败'
1696
- Vue.set(row, 'error', JSON.stringify(error))
1697
- this.speckText('抄表录入出错,请注意!')
1698
- })
1699
- } else {
1700
- // 没有启用抄表审核功能
1701
- row.f_input_person = this.$login.f.name
1702
- row.f_inputtor = row.f_inputtor
1703
- row.f_userinfo_id = row.f_userinfo_id + ''
1704
- row.f_userfiles_id = row.f_userfiles_id + ''
1705
- this.pass(row)
1706
- }
1707
- },
1708
- pass (row) {
1709
- let param = {
1710
- f_meter_classify: row.f_meter_classify,
1711
- f_meter_brand: row.f_meter_brand,
1712
- f_hand_id: row.id,
1713
- f_operator: Vue.$login.f.name,
1714
- f_tablebase: row.f_tablebase,
1715
- f_userinfo_id: row.f_userinfo_id,
1716
- f_adjustment_volume: row.f_adjustment_volume ? row.f_adjustment_volume : 0
1717
- }
1718
- this.$resetpost('rs/logic/sale_commonEnter', {data: param}, {resolveMsg: null, rejectMsg: null}).then((res) => {
1719
- row.f_meter_state = res.data.f_meter_state
1720
- row.f_whether_pay = res.data.f_whether_pay
1721
- row.f_oughtfee = res.data.f_oughtfee
1722
- row.f_oughtamount = res.data.f_oughtamount
1723
- // this.$resetpost('rs/logic/getMeterSms', {data: param}, {resolveMsg: null, rejectMsg: null}).then((res) => {
1724
- // this.search()
1725
- let f_result_state = '正常'
1726
- if (row.f_result_state && row.f_result_state != '') {
1727
- f_result_state = row.f_result_state
1728
- }
1729
- let f_input_date = ''
1730
- if (row.f_input_date && row.f_input_date != '') {
1731
- f_input_date = ` ,f_input_date = '${row.f_input_date}'`
1732
- }
1733
- let sqldata = `update t_handplan set f_result_state = '${f_result_state}' ${f_input_date} where id = '${row.id}'`
1734
- this.$resetpost('rs/logic/runSQL', {data: {sql: sqldata}}, {resolveMsg: null, rejectMsg: '业务单号保存失败'})
1735
- // }).catch((error) => {
1736
- // row.state = '失败'
1737
- // Vue.set(row, 'error', JSON.stringify(error))
1738
- // this.speckText('抄表出错,请注意!')
1739
- // })
1740
- // this.search()
1741
- }).catch((error) => {
1742
- row.state = '失败'
1743
- Vue.set(row, 'error', JSON.stringify(error))
1744
- this.speckText('抄表出错,请注意!')
1745
- })
1746
- },
1747
- nopass (row) {
1748
- console.log('不通过。。。', row)
1749
- let handplan = {
1750
- id: row.id,
1751
- f_oughtamount: 0,
1752
- f_tablebase: 0,
1753
- f_input_date: null,
1754
- f_meter_state: '未抄表',
1755
- f_meter_source: null
1756
- }
1757
- this.$resetpost('rs/entity/t_handplan', handplan, {
1758
- resolveMsg: null,
1759
- rejectMsg: '未通过,抄表数据返回未抄表保存出错!!!'
1760
- }).then((res) => {
1761
- row.f_tablebase = null
1762
- row.f_meter_state = '未抄表'
1763
- row.f_whether_pay = '否'
1764
- this.search()
1765
- }).catch((error) => {
1766
- row.state = '失败'
1767
- Vue.set(row, 'error', JSON.stringify(error))
1768
- this.speckText('抄表录入出错,请注意!')
1769
- })
1770
- },
1771
- clearError (row) {
1772
- if (row.f_tablebase === 0) {
1773
- row.f_tablebase = ''
1774
- }
1775
- Vue.set(row, 'error', null)
1776
- },
1777
- async speckText (str) {
1778
- var url = 'http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text=' + encodeURI(str)
1779
- await new Audio(url).play()
1780
- this.err = str
1781
- this.showerr = true
1782
- this.paycodefocus()
1783
- },
1784
- closeerr () {
1785
- this.showerr = false
1786
- },
1787
- fileUpload () {
1788
- this.uploadshow = true
1789
- },
1790
- // 删除这条计划
1791
- delectHand (row) {
1792
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
1793
- if (res === 'confirm') {
1794
- this.$resetpost('rs/logic/deletePlan', {data: row}).then(() => {
1795
- this.$dispatch('refresh', '删除计划', row)
1796
- this.search()
1797
- })
1798
- }
1799
- })
1800
- },
1801
- cancelHand4 (row) {
1802
- this.examinerow = row
1803
- this.examineshow = true
1804
- this.examinetype = true
1805
- },
1806
- cancelHand2 (row) {
1807
- if (this.config.examine) {
1808
- let handdate = new Date(row.f_hand_date)
1809
- console.log('获取月份', handdate.getMonth())
1810
- let ima = new Date()
1811
- console.log('获取月份', ima.getMonth())
1812
- if (handdate.getMonth() == ima.getMonth()) {
1813
- this.cancelHand3(row)
1814
- } else {
1815
- if (!this.$login.r.find(value => value == '抄表隔月冲正')) {
1816
- this.$showMessage('当前登录用户没有隔月冲正权限, 请联系管理员!')
1817
- } else {
1818
- this.cancelHand3(row)
1819
- }
1820
- }
1821
- } else {
1822
- this.cancelHand3(row)
1823
- }
1824
- },
1825
- async cancelHand5 () {
1826
- let sqldata = `update t_handplan set f_audit_state ='已审核',f_audit_person='${this.$login.f.name}',
1827
- f_audit_date='${this.$login.toStandardTimeString()}' where id ='${this.examinerow.id}'`
1828
- await this.$resetpost('rs/logic/runSQL', {data: {sql: sqldata}}, {resolveMsg: null, rejectMsg: '更新收费记录订单号失败'})
1829
-
1830
- this.cancelHand3(this.examinerow)
1831
- },
1832
- cancelHand3 (row) {
1833
- // 抄表加入权限
1834
- if (!this.$login.r.find(value => value == '机表抄表冲正')) {
1835
- this.$showMessage('当前登录用户没有冲正权限, 请联系管理员!')
1836
- return
1837
- }
1838
- // console.log('抄表冲正。、。。、', row)
1839
- let param = {
1840
- f_hand_id: row.id,
1841
- operInfo: {
1842
- f_operator: this.$login.f.name,
1843
- f_operatorid: this.$login.f.id,
1844
- f_orgid: this.$login.f.orgid,
1845
- f_orgname: this.$login.f.orgs,
1846
- f_depid: this.$login.f.depids,
1847
- f_depname: this.$login.f.deps
1848
- }
1849
- }
1850
- let url = 'rs/logic/sale_commonEnterCancel'
1851
- this.$resetpost(url, {data: param}, {warnMsg: '确定对这条记录进行撤销吗?'}).then(() => {
1852
- this.search()
1853
- this.close()
1854
- })
1855
- },
1856
- down (type, condition, data) {
1857
- co(downGen(type, condition, data, this))
1858
- },
1859
- // 单条下发计划
1860
- downHand (row) {
1861
- console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + row.f_userfiles_id)
1862
- this.down('single', `f_userfiles_id = '${row.f_userfiles_id}'`, row)
1863
- },
1864
- // 批量下发计划
1865
- batchDownHand () {
1866
- this.down('batch', this.model.condition, this.model.count)
1867
- },
1868
- // batchDownHand () {
1869
- // this.condition = ''
1870
- // let count = 0
1871
- // for (let plan of this.plans){
1872
- // if(plan.state){
1873
- // this.condition = this.condition + plan.id + ','
1874
- // count = count + 1
1875
- // }
1876
- // }
1877
- // this.down('batch', `f_user_id in (${this.condition.substring(0,this.condition.length-1)})`,count)
1878
- // },
1879
- // allDownHand () {
1880
- // this.down('all', this.model.condition, this.model.count)
1881
- // },
1882
-
1883
- validateDate () {
1884
- let currentDown = new Date(this.downModel.downDate)
1885
- console.log(new Date(this.$refs.paged.$refs.criteria.model.startDate))
1886
- console.log(new Date(this.$refs.paged.$refs.criteria.model.endDate))
1887
- return currentDown >= new Date(this.$refs.paged.$refs.criteria.model.startDate + ' 00:00:00') && currentDown <= new Date(this.$refs.paged.$refs.criteria.model.endDate + ' 23:59:59')
1888
- },
1889
-
1890
- async examineconfirm () {
1891
- let sqldata = `update t_handplan set f_audit_state ='审核中',f_examinereason='${this.examinerow.f_examinereason}' where id ='${this.examinerow.id}'`
1892
- await this.$resetpost('rs/logic/runSQL', {data: {sql: sqldata}}, {resolveMsg: null, rejectMsg: null})
1893
- this.close()
1894
- this.search()
1895
- },
1896
- // 关闭下发计划得弹出框
1897
- close () {
1898
- this.show = false
1899
- this.inputtor_show = false
1900
- this.downConfirm = false
1901
- this.examineshow = false
1902
- this.examinetype = false
1903
- this.detailsShow = false
1904
- this.priceModel = false
1905
- // 初始化模态框数据
1906
- this.initModal()
1907
- if (this.uploadshow) {
1908
- this.uploadshow = false
1909
- // 讲选的文件清空
1910
- this.$refs.file.$el.querySelector('input').value = ''
1911
- }
1912
- },
1913
- initModal () {
1914
- this.downModel = {
1915
- downDate: Vue.$login.toStandardDateString(),
1916
- downWay: 'downWithUserfiles',
1917
- downInputtor: []
1918
- }
1919
- this.inputtorModel = {
1920
- inputtor: [],
1921
- reason: ''
1922
- }
1923
- },
1924
- // 判断当前登陆人是不是子公司的人员
1925
- isHead () {
1926
- return this.$login.f.parent.parent.name.includes('统一资源管理')
1927
- },
1928
- sort (field, rule) {
1929
- // 将所有排序方式设为不排序,实现相互排斥
1930
- for (let key in this.orderFields) {
1931
- if (key === field) {
1932
- this.orderFields[key] = rule
1933
- } else {
1934
- this.orderFields[key] = 'no'
1935
- }
1936
- }
1937
- // 如果新规则不排序,还原为默认排序
1938
- if (rule === 'no') {
1939
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
1940
- } else {
1941
- this.model.paramSource.orderitem = `'${field} ${rule}'`
1942
- }
1943
- this.search()
1944
- },
1945
- guid () {
1946
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
1947
- let r = Math.random() * 16 | 0,
1948
- v = c == 'x' ? r : (r & 0x3 | 0x8)
1949
- return v.toString(16)
1950
- })
1951
- },
1952
- computeAmount (event) {
1953
- let money = event.target.value
1954
- if (this.row.f_price_type === '固定气价') {
1955
- let price = this.$refs.mix_price.model.f_price
1956
- // 可以购买的总气量
1957
- let purchaseSum = (money / price).toFixed(2)
1958
- // 计算应抄底数
1959
- this.should_base = (this.row.f_last_tablebase - 0) + (purchaseSum - 0)
1960
- // 计算公式
1961
- this.designFormulas = `${purchaseSum}X${price}`
1962
- } else {
1963
- let mydata = this.$refs.statir.mydata
1964
- // 剩余1阶气量
1965
- let surplus1 = (mydata.f_stair1ceiling - (mydata.f_hasuse1 > 0 ? mydata.f_hasuse1 : 0))
1966
- // 把1阶买完的钱
1967
- let price1 = surplus1 * mydata.f_stair1price
1968
- // 剩余2阶气量
1969
- let surplus2 = (mydata.f_stair2ceiling - mydata.f_stair1ceiling - (mydata.f_hasuse2 > 0 ? mydata.f_hasuse2 : 0)).toFixed(2)
1970
- // 把2阶买完的钱
1971
- let price2 = surplus2 * mydata.f_stair2price
1972
- // 兼容一下
1973
- if (this.$refs.statir.jt != 3) {
1974
- this.$showMessage('暂不支持该气价类型的运算,请联系开发人员!')
1975
- }
1976
- // 开始计算
1977
- // 可以购买各阶梯量
1978
- let purchase1 = 0
1979
- let purchase2 = 0
1980
- let purchase3 = 0
1981
- if (money <= price1) {
1982
- purchase1 = (money / mydata.f_stair1price).toFixed(2)
1983
- } else if (money <= (price1 + price2)) {
1984
- purchase1 = surplus1
1985
- purchase2 = ((money - price1) / mydata.f_stair2price).toFixed(2)
1986
- } else {
1987
- purchase1 = surplus1
1988
- purchase2 = surplus2
1989
- purchase3 = ((money - price1 - price2) / mydata.f_stair3price).toFixed(2)
1990
- }
1991
- // 可以购买的总气量
1992
- let purchaseSum = (purchase1 - 0) + (purchase2 - 0) + (purchase3 - 0)
1993
- // 计算应抄底数
1994
- this.should_base = (this.row.f_last_tablebase - 0) + purchaseSum
1995
- // 计算公式
1996
- this.designFormulas = `${purchase1}X${mydata.f_stair1price} + ${purchase2}X${mydata.f_stair2price} + ${purchase3}X${mydata.f_stair3price}`
1997
- }
1998
- this.should_base = this.should_base.toFixed(2) - 0
1999
- }
2000
- },
2001
- watch: {
2002
- 'downModel.downWay' (val) {
2003
- if (val === 'downWithSelf') {
2004
- console.log('抄表员。。', this.inputtores2)
2005
- if (this.inputtores2.length > 0) {
2006
- this.downModel.downInputtor = [this.inputtores2[0].value]
2007
- }
2008
- }
2009
- },
2010
- 'detailsShow' (val) {
2011
- if (!val) {
2012
- this.should_base = 0
2013
- this.designFormulas = null
2014
- this.$els.inputmoney.value = 0
2015
- }
2016
- }
2017
- // 'model.rows'(val){
2018
- // console.log('页面切换',val)
2019
- // if(this.isChooseAll(val)){
2020
- // this.all = true
2021
- // }else{
2022
- // this.all = false
2023
- // }
2024
- // },
2025
- },
2026
- computed: {
2027
- danhutitle () {
2028
- return '单户抄表 当前计划年月:' + this.downModel.downDate
2029
- },
2030
- getCondition () {
2031
- // return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
2032
- return {
2033
- startDate: this.$refs.paged.$refs.criteria.model.startDate,
2034
- endDate: this.$refs.paged.$refs.criteria.model.endDate,
2035
- orderitem: this.orderDefault ? this.orderDefault : 'id',
2036
- condition: this.condition2
2037
- }
2038
- },
2039
-
2040
- inputtores () {
2041
- // 获取抄表员
2042
- console.log('获取抄表员', this.$login.f)
2043
- let rs = []
2044
- if (this.$login.f.f_gasman.length > 0) {
2045
- for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
2046
- let temp = {
2047
- label: this.$login.f.f_gasman[i].name,
2048
- value: this.$login.f.f_gasman[i].name
2049
- }
2050
- rs.push(temp)
2051
- }
2052
- }
2053
- this.inputtores2 = rs
2054
- return [...rs]
2055
- },
2056
- whetherpaies () {
2057
- return [
2058
- {label: '全部', value: ''},
2059
- {label: '已缴费', value: '是'},
2060
- {label: '未缴费', value: '否'}
2061
- ]
2062
- },
2063
- // 界面细节权限
2064
- jurisdiction () {
2065
- console.log('抄表界面细节', this.$login.r)
2066
- return this.$login.r ? this.$login.r : []
2067
- },
2068
- firestates () {
2069
- return [
2070
- {label: '全部', value: ''},
2071
- {label: '已点火', value: '1'},
2072
- {label: '未点火', value: '0'}
2073
- ]
2074
- },
2075
- ischecked () {
2076
- return function (row) {
2077
- for (let plan of this.plans) {
2078
- if (plan.id == row.f_userfiles_id) {
2079
- return plan.state
2080
- }
2081
- }
2082
- }
2083
- }
2084
- },
2085
- events: {
2086
- onFileUpload: async function (file, res) {
2087
- if (this.upshow) {
2088
- let uuid = this.guid()
2089
- let data = {
2090
- model: {
2091
- f_operator: this.$login.f.name,
2092
- f_end_date: this.$login.nextMonth20(this.$login.toStandardTimeString()),
2093
- f_operatorid: this.$login.f.id,
2094
- f_orgid: this.$login.f.orgid,
2095
- f_orgname: this.$login.f.orgs,
2096
- f_depid: this.$login.f.depids,
2097
- f_depname: this.$login.f.deps
2098
- },
2099
- uuid: uuid,
2100
- filepath: res.f_downloadpath
2101
- }
2102
- try {
2103
- await this.HttpReset.load('POST', 'rs/logic/batchSettleFileupdate', data, {resolveMsg: null, rejectMsg: null}, 1000)
2104
- } catch (e) {}
2105
- this.$showAlert(`文件上传成功,正在后台批量结算, 请耐心等待结果......`, 'success')
2106
- // 启动定时器定时查询上传结果
2107
- let timer = setInterval(async () => {
2108
- let res = await this.HttpReset.load('POST', 'rs/logic/getBatchOperaPro', {data: {uuid: uuid}}, {resolveMsg: null, rejectMsg: null})
2109
- console.log('查询进度返回: ', res)
2110
- if (res.data.msg || res.data.error) {
2111
- res.data.msg ? this.$showAlert(`${res.data.msg}`, 'success', 2000) : this.$showAlert(`${res.data.error}`, 'danger')
2112
- this.upshow = false
2113
- this.search()
2114
- clearInterval(timer)
2115
- }
2116
- }, 5000)
2117
- return
2118
- }
2119
- let data = {
2120
- model: {
2121
- f_operator: this.$login.f.name,
2122
- f_end_date: this.$login.nextMonth20(this.$login.toStandardTimeString())
2123
- },
2124
- filepath: res.path
2125
- }
2126
- if (res.f_downloadpath.includes('抄表数据')) {
2127
- console.log('进入了抄表上传')
2128
- let data1 = {
2129
- filepath: res.f_downloadpath
2130
- }
2131
- this.$resetpost('rs/logic/upLoadHand', data1, {resolveMsg: null, rejectMsg: '上传失败'}, 0).then((res) => {
2132
- // console.log('终于成功了', res)
2133
- this.upshow = false
2134
- // this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条, 未抄下发${res.data.nohandnum}条, 失败下发${res.data.failednum}条, 异常下发${res.data.exceptionnum}条`, 'success', 2000)
2135
- // this.$parent.search()
2136
- })
2137
- } else if (data.filepath.includes('先锋')) {
2138
- this.$resetpost('rs/logic/xfimport', data, {resolveMsg: null, rejectMsg: '上传失败'}, 0).then((res) => {
2139
- // console.log('终于成功了', res)
2140
- this.uploadshow = false
2141
- this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条, 未抄下发${res.data.nohandnum}条, 失败下发${res.data.failednum}条, 异常下发${res.data.exceptionnum}条`, 'success', 2000)
2142
- this.$parent.search()
2143
- })
2144
- } else if (data.filepath.includes('伦力')) {
2145
- this.$resetpost('rs/logic/llimport', data, {resolveMsg: null, rejectMsg: '上传失败'}, 0).then((res) => {
2146
- // console.log('终于成功了', res)
2147
- this.uploadshow = false
2148
- this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条, 未抄下发${res.data.nohandnum}条, 失败下发${res.data.failednum}条, 异常下发${res.data.exceptionnum}条`, 'success', 2000)
2149
- this.$parent.search()
2150
- })
2151
- }
2152
- },
2153
- dblclick: function (row, index) {
2154
- this.row = row
2155
- this.detailsShow = true
2156
- }
2157
- }
2158
- }
2159
- </script>
2160
- <style lang="less">
2161
- #handManager {
2162
- display: flex;
2163
- justify-content: space-around;
2164
- align-items: center;
2165
-
2166
- .btn {
2167
- margin: 0px;
2168
- }
2169
-
2170
- .hand-loading {
2171
- border: 3px solid #ccc;
2172
- border-right-color: #337ab7;
2173
- border-radius: 50%;
2174
- animation: spin 0.6s linear;
2175
- position: absolute;
2176
- animation-iteration-count: infinite;
2177
- top: 0;
2178
- right: 50%;
2179
- z-index: 2;
2180
- display: block;
2181
- width: 28px;
2182
- height: 28px;
2183
- line-height: 28px;
2184
- text-align: center;
2185
- pointer-events: none;
2186
- }
2187
-
2188
- @keyframes spin {
2189
- 100% {
2190
- transform: rotate(360deg);
2191
- }
2192
- }
2193
- .detail-panel {
2194
- text-align: center;
2195
- color: #31708f;
2196
- background-color: #e8f1f9;
2197
- border-color: #F2F6FA;
2198
- }
2199
- }
2200
-
2201
- #hand_manager_grid {
2202
- thead {
2203
- position: relative;
2204
- z-index: 2;
2205
- }
2206
- }
2207
- #machineHandManager {
2208
- .color-red {
2209
- color: red;
2210
- }
2211
- }
2212
- </style>
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
+ <modal :show.sync="$parent.$parent.upshow" width="500px" title="文件导入" v-ref:modal large backdrop="false">
8
+ <article slot="modal-body" class="modal-body">
9
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success"
10
+ style="border-radius: 2px;"
11
+ action="rs/file/uploadFile" tagname="导入" v-ref:filebattch :headers="headers"
12
+ multiple></file-upload>
13
+ </article>
14
+ <footer slot="modal-footer" class="modal-footer">
15
+ </footer>
16
+ </modal>
17
+ <div class="row">
18
+ <!--<div class="col-sm-6">-->
19
+ <!--style="border: 1px solid #a6d5ea; box-shadow: darkgrey 1px 1px 1px 2px;padding: 0.5%">-->
20
+ <div class="col-sm-2 form-group">
21
+ <label class="font_normal_body color-red">归属起始</label>
22
+ <datepicker placeholder="开始日期"
23
+ style="width:60%"
24
+ class="datepicker"
25
+ v-model="model.startDate"
26
+ condition="f_hand_date >='{} 00:00:00'"
27
+
28
+ :value.sync="model.startDate"
29
+ :format="'yyyy-MM-dd'"
30
+ ></datepicker>
31
+ </div>
32
+ <div class="col-sm-2 form-group">
33
+ <label class="font_normal_body color-red">归属结束</label>
34
+ <datepicker placeholder="结束日期"
35
+ style="width:60%"
36
+ v-model="model.endDate"
37
+ :value.sync="model.endDate"
38
+ condition="f_hand_date <='{} 23:59:59'"
39
+ :format="'yyyy-MM-dd'"
40
+ ></datepicker>
41
+ </div>
42
+
43
+ <div class="col-sm-2 form-group">
44
+ <label class="font_normal_body">客户编号</label>
45
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
46
+ condition="f_userinfo_code='{}'" placeholder='客户编号'>
47
+ </div>
48
+
49
+ <div class="span" style="float:right;">
50
+ <button v-if="$parent.$parent.jurisdiction.includes('单户抄表')"
51
+ class="button_search button_spacing" style="width:90px" @click="$parent.$parent.danhuShow()">
52
+ 单户抄表
53
+ </button>
54
+
55
+ <button class="button_search button_spacing" @click="$parent.$parent.search()">查询</button>
56
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
57
+ <button class="button_delete button_spacing" @click="$parent.$parent.deletehand()">删除抄表</button>
58
+ <button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.downloadFiles()">模板下载
59
+ </button>
60
+ <button class="button_search button_spacing" @click="$parent.$parent.clickupshow()">导入抄表</button>
61
+
62
+ <export-excel
63
+ :data="$parent.$parent.getCondition"
64
+ :field="$parent.$parent.getfield"
65
+ sqlurl="rs/logic/saleExport" sql-name="getPlan" template-name='抄表导出'
66
+ :choose-col="true">
67
+ </export-excel>
68
+ <div
69
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
70
+ @click="$parent.$parent.hidden()" class="button_spacing" style="float: right"></div>
71
+ </div>
72
+ </div>
73
+ <div class="row" v-show="$parent.$parent.criteriaShow">
74
+ <!-- <div class="col-sm-2 form-group">-->
75
+ <!-- <label class="font_normal_body">表&ensp;编&ensp;号</label>-->
76
+ <!-- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_id"-->
77
+ <!-- condition="f_user_id='{}'" placeholder='表编号'>-->
78
+ <!-- </div>-->
79
+ <div class="col-sm-2 form-group">
80
+ <label class="font_normal_body">抄表状态</label>
81
+ <v-select :value.sync="model.f_audit_state"
82
+ class="select_list select"
83
+ v-model="model.f_audit_state"
84
+ style="width: 60%"
85
+ condition="f_meter_state = '{}'"
86
+ :options='$parent.$parent.auditState' placeholder='抄表状态'
87
+ close-on-select v-el:cc>
88
+ </v-select>
89
+ </div>
90
+ <div class="col-sm-2 form-group">
91
+ <label class="font_normal_body">表&emsp;&emsp;号</label>
92
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
93
+ condition="f_meternumber like '%{}%'" placeholder='表号'>
94
+ </div>
95
+ <div class="col-sm-2 form-group">
96
+ <label class="font_normal_body">客户姓名</label>
97
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name" placeholder='客户姓名'
98
+ condition="f_user_name = '{}'">
99
+ </div>
100
+ <div class="col-sm-2 form-group">
101
+ <label class="font_normal_body">小&ensp;&ensp;&ensp;&ensp;区</label>
102
+ <v-select :value.sync="model.f_residential_area"
103
+ class="select_list select"
104
+ enter-push
105
+ v-model="model.f_residential_area"
106
+ style="width: 60%"
107
+ multiple="true"
108
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
109
+ close-on-select v-el:cc>
110
+ </v-select>
111
+ </div>
112
+ <div class="col-sm-2 form-group">
113
+ <label class="font_normal_body">楼&emsp;&emsp;栋</label>
114
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_building"
115
+ condition="f_building = '{}'" placeholder='楼栋'>
116
+ </div>
117
+ <div class="col-sm-2 form-group">
118
+ <label class="font_normal_body">单&emsp;&emsp;元</label>
119
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_unit"
120
+ condition="f_unit = '{}'" placeholder='单元'>
121
+ </div>
122
+ <div class="col-sm-2 form-group">
123
+ <label class="font_normal_body">楼&emsp;&emsp;层</label>
124
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_floor"
125
+ condition="f_floor = '{}'" placeholder='楼层'>
126
+ </div>
127
+ <div class="col-sm-2 form-group">
128
+ <label class="font_normal_body">门&ensp;牌&ensp;号</label>
129
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_room"
130
+ condition="f_room like '%{}%'" placeholder='门牌号'>
131
+ </div>
132
+ <div class="col-sm-2 form-group">
133
+ <label class="font_normal_body">客户地址</label>
134
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
135
+ condition="f_address like '%{}%'" placeholder='客户地址'>
136
+ </div>
137
+ <div class="col-sm-2 form-group">
138
+ <label class="font_normal_body">抄&ensp;表&ensp;员</label>
139
+ <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
140
+ style="width:60%"
141
+ multiple="true"
142
+ :options='$parent.$parent.inputtores' placeholder='抄表员'
143
+ close-on-select
144
+ v-el:cc></v-select>
145
+ </div>
146
+ <!-- <div class="col-sm-2 form-group">-->
147
+ <!-- <label class="font_normal_body">是否缴费</label>-->
148
+ <!-- <v-select :value.sync="model.f_whether_pay" v-model='model.f_whether_pay'-->
149
+ <!-- style="width:60%"-->
150
+ <!-- :options='$parent.$parent.whetherpaies' placeholder='是否缴费'-->
151
+ <!-- close-on-select-->
152
+ <!-- condition="f_whether_pay = '{}'"></v-select>-->
153
+ <!-- </div>-->
154
+ <div class="col-sm-2 form-group">
155
+ <label class="font_normal_body">抄表单状态</label>
156
+ <v-select :value.sync="model.f_meter_state" v-model='model.f_meter_state'
157
+ style="width:60%"
158
+ :options='$parent.$parent.meterstates' placeholder='抄表单状态'
159
+ close-on-select
160
+ condition="f_meter_state = '{}'"></v-select>
161
+ </div>
162
+
163
+ <div class="col-sm-2 form-group">
164
+ <label for="belongmonth" class="font_normal_body">所属年月</label>
165
+ <datepicker placeholder="所属年月" style="width:60%"
166
+ v-model="model.belongmonth"
167
+ :value.sync="model.belongmonth"
168
+ :format="'yyyy-MM'"
169
+ :show-reset-button="true"
170
+ condition="belongmonth = '{}'"
171
+ :select-month="true">
172
+ </datepicker>
173
+ </div>
174
+ <div class="col-sm-2 form-group">
175
+ <label class="font_normal_body">客户类型</label>
176
+ <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
177
+ :options='$parent.$parent.usertypes' placeholder='客户类型'
178
+ style="width:60%"
179
+ close-on-select
180
+ condition="f_user_type = '{}'"></v-select>
181
+ </div>
182
+ <div class="col-sm-2 form-group">
183
+ <label class="font_normal_body">用户等级</label>
184
+ <v-select :value.sync="model.f_user_level" v-model="model.f_user_level"
185
+ :options='$parent.$parent.userlevels' placeholder='用户等级'
186
+ style="width:60%"
187
+ close-on-select
188
+ condition="f_user_level = '{}'"></v-select>
189
+ </div>
190
+ <div class="col-sm-2 form-group">
191
+ <label class="font_normal_body color-red">抄&ensp;表&ensp;册</label>
192
+ <v-select :value.sync="model.f_meter_book" v-model="model.f_meter_book"
193
+ :options='$parent.$parent.meterbooks' placeholder='抄表册'
194
+ :multiple="true"
195
+ style="width:60%"
196
+ condition="f_meter_book_num in {}"></v-select>
197
+ </div>
198
+ <div class="col-sm-2 form-group">
199
+ <label class="font_normal_body">调压箱名</label>
200
+ <v-select :value.sync="model.f_adjustable_name" v-model="model.f_adjustable_name"
201
+ :options='$parent.$parent.adjustablename' placeholder='调压箱名称'
202
+ style="width:60%"
203
+ close-on-select
204
+ condition="f_adjustable_name = '{}'"></v-select>
205
+ </div>
206
+ <div class="col-sm-2 flex-row" style="white-space: nowrap" >
207
+ <label class="font_normal_body">应交气量</label>
208
+ <div class="row">
209
+ <input type="text" style="width:30%" class="input_search" v-model="model.oughtamountmin"
210
+ condition="f_oughtamount >= {} " placeholder="">
211
+ <label class="font_normal_body"> ≤ x ≤ </label>
212
+ <input type="text" style="width:30%" class="input_search" v-model="model.oughtamountmax"
213
+ condition="f_oughtamount <= {} " placeholder="">
214
+ </div>
215
+ </div>
216
+ <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"
217
+ v-ref:sel></res-select-group>
218
+ <div class="col-sm-2 form-group">
219
+ <label class="font_normal_body">录入时间</label>
220
+ <datepicker placeholder="开始日期"
221
+ style="width:60%"
222
+ class="datepicker"
223
+ v-model="model.startDate1"
224
+ condition="f_input_date >='{} 00:00:00'"
225
+
226
+ :value.sync="model.startDate1"
227
+ :format="'yyyy-MM-dd'"
228
+ ></datepicker>
229
+ </div>
230
+ <div class="col-sm-2 form-group">
231
+ <label class="font_normal_body">录入时间</label>
232
+ <datepicker placeholder="结束日期"
233
+ style="width:60%"
234
+ v-model="model.endDate1"
235
+ :value.sync="model.endDate1"
236
+ condition="f_input_date <='{} 23:59:59'"
237
+ :format="'yyyy-MM-dd'"
238
+ ></datepicker>
239
+ </div>
240
+ </div>
241
+
242
+
243
+ <!-- 多选框 -->
244
+ <!--<div class="col-sm-2 form-group">-->
245
+ <!--<button class="btn btn-success" @click="$parent.$parent.batchDownHand()">计划下发</button>-->
246
+ <!--</div>-->
247
+
248
+ <!--<div class="form-group" v-if="$parent.$parent.meter_state">-->
249
+ <!--<button class="btn btn-success" @click="$parent.$parent.allDownHand()" >全部下发</button>-->
250
+ <!--</div>-->
251
+ <!-- 多选框结束 -->
252
+
253
+ <!--<div class="col-sm-2 form-group">-->
254
+ <!--<button class="btn btn-success" @click="$parent.$parent.adjust()">抄表员调整</button>-->
255
+ <!--</div>-->
256
+ <!--<div class="col-sm-2 form-group">-->
257
+ <!--<button class="btn btn-success" @click="$parent.$parent.fileUpload()">文件上传</button>-->
258
+ <!--</div>-->
259
+ <!--<div class="col-sm-2 form-group">-->
260
+ <!--<button class="btn btn-success" @click="search(), $parent.$parent.clean()">打印</button>-->
261
+ <!--</div>-->
262
+
263
+ </div>
264
+ </criteria>
265
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid id="hand_manager_grid">
266
+ <template partial='head'>
267
+ <tr>
268
+ <!--<th><input type='checkbox' v-model="$parent.$parent.$parent.all" @change="$parent.$parent.$parent.chooseAll"></th>-->
269
+ <th>
270
+ <nobr>序号</nobr>
271
+ </th>
272
+ <th>
273
+ <nobr>
274
+ <data-order field="f_userinfo_code" name="客户编号"
275
+ :order.sync="$parent.$parent.$parent.orderFields.f_userinfo_code"></data-order>
276
+ </nobr>
277
+ </th>
278
+ <th>
279
+ <nobr>&emsp;&emsp;小区&emsp;&emsp;</nobr>
280
+ </th>
281
+ <!-- <th>基本信息</th>-->
282
+ <th>
283
+ <nobr>
284
+ <data-order field="f_address" name="基本信息"
285
+ :order.sync="$parent.$parent.$parent.orderFields.f_address"></data-order>
286
+ </nobr>
287
+ </th>
288
+ <th>
289
+ <nobr>用户等级</nobr>
290
+ </th>
291
+ <!--<th><nobr><data-order field="f_building" name="楼号"-->
292
+ <!--:order.sync="$parent.$parent.$parent.orderFields.f_building"></data-order></nobr>-->
293
+ <!--</th>-->
294
+ <!--<th><nobr><data-order field="f_unit" name="单元号"-->
295
+ <!--:order.sync="$parent.$parent.$parent.orderFields.f_unit"></data-order></nobr>-->
296
+ <!--</th>-->
297
+ <!--<th><nobr><data-order field="f_room" name="房号"-->
298
+ <!--:order.sync="$parent.$parent.$parent.orderFields.f_room"></data-order></nobr>-->
299
+ <!--</th>-->
300
+ <th>
301
+ <nobr>所属年月</nobr>
302
+ </th>
303
+ <th>
304
+ <nobr>上期结余</nobr>
305
+ </th>
306
+ <th>
307
+ <nobr>平均用气量</nobr>
308
+ </th>
309
+ <th>
310
+ <nobr>表号</nobr>
311
+ </th>
312
+ <th>
313
+ <nobr>上期底数</nobr>
314
+ </th>
315
+ <th>
316
+ <nobr>本期底数</nobr>
317
+ </th>
318
+
319
+
320
+ <th>
321
+ <nobr>应交气量</nobr>
322
+ </th>
323
+ <th>
324
+ <nobr>增量值</nobr>
325
+ </th>
326
+ <th>
327
+ <nobr>应交金额</nobr>
328
+ </th>
329
+ <th>
330
+ <nobr>抄表结果状态</nobr>
331
+ </th>
332
+ <th>
333
+ <nobr>是否缴费</nobr>
334
+ </th>
335
+ <!-- <th>上次抄表日期</th>-->
336
+ <th>
337
+ <nobr>
338
+ <data-order field="f_last_input_date" name="上次抄表录入日期"
339
+ :order.sync="$parent.$parent.$parent.orderFields.f_last_input_date"></data-order>
340
+ </nobr>
341
+ </th>
342
+ <!-- <th>下发日期</th>-->
343
+ <th>
344
+ <nobr>
345
+ <data-order field="f_hand_date" name="下发日期"
346
+ :order.sync="$parent.$parent.$parent.orderFields.f_hand_date"></data-order>
347
+ </nobr>
348
+ </th>
349
+ <!-- <th>抄表日期</th>-->
350
+ <th>
351
+ <nobr>
352
+ <data-order field="f_input_date" name="抄表录入日期"
353
+ :order.sync="$parent.$parent.$parent.orderFields.f_input_date"></data-order>
354
+ </nobr>
355
+ </th>
356
+ <!-- <th>抄表册</th>-->
357
+ <th>
358
+ <nobr>
359
+ <data-order field="f_book_name" name="抄表册"
360
+ :order.sync="$parent.$parent.$parent.orderFields.f_book_name"></data-order>
361
+ </nobr>
362
+
363
+ </th>
364
+ <th>
365
+ <nobr>调压箱名称</nobr>
366
+ </th>
367
+ <th>
368
+ <nobr>抄表员</nobr>
369
+ </th>
370
+ <th>
371
+ <nobr>录入人员</nobr>
372
+ </th>
373
+ <th>
374
+ <nobr>下发人员</nobr>
375
+ </th>
376
+ <th>
377
+ <nobr>操作</nobr>
378
+ </th>
379
+ <!-- f_oughtfee-->
380
+ </tr>
381
+ </template>
382
+ <template partial='body'>
383
+ <!--<td style="text-align: center;">-->
384
+ <!--<input v-if="row.f_meter_state === '未下发'"-->
385
+ <!--:id="model.pageIndex" type='checkbox' @change="$parent.$parent.$parent.chooseOne($event,row,model.rows)"-->
386
+ <!--:checked="$parent.$parent.$parent.ischecked(row)"/>-->
387
+ <!--</td>-->
388
+ <td style="text-align: center;">{{$index + 1}}</td>
389
+ <td>{{row.f_userinfo_code}}</td>
390
+ <td style="width: 200px">{{row.area}}</td>
391
+ <td>{{row.f_user_name}}&nbsp;&nbsp;{{row.f_address}}</td>
392
+ <td>{{row.f_user_level}}</td>
393
+ <!--<td>{{row.f_building}}</td>-->
394
+ <!--<td>{{row.f_unit}}</td>-->
395
+ <!--<td>{{row.f_room}}</td>-->
396
+ <td>{{row.belongmonth}}</td>
397
+ <td style="text-align: center;">{{row.f_balance}}</td>
398
+ <td style="text-align: center;">{{Math.round(row.avggas)}}</td>
399
+ <td>{{row.f_meternumber}}</td>
400
+ <td>{{row.f_last_tablebase}}</td>
401
+ <td id="hand-creat" v-if="row.f_meter_state === '未抄表' && row.crossyear && $parent.$parent.$parent.config.crossyear ">
402
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
403
+ 'has-success has-feedback': !row.error,
404
+ 'has-error has-feedback': row.error}"
405
+ >
406
+ <button type="button" name="button" class="btn btn-link"
407
+
408
+ @click.stop="$parent.$parent.$parent.yearhand(row) "
409
+ >跨年抄表
410
+ </button>
411
+ <!-- <input title="只能录入整数" type="text" class="input_search" v-model="row.f_tablebase"-->
412
+ <!-- @blur="$parent.$parent.$parent.beforenter($index, row)"-->
413
+ <!-- v-next-el="{id: $index+2}" :id="$index+1" style="width: 100px;padding: 6px;"-->
414
+ <!-- @focus="$parent.$parent.$parent.clearError(row)"-->
415
+ <!-- :disabled="row.state === '开始'">-->
416
+ </div>
417
+
418
+ <span v-if="row.error && row.error !== ''" style="color: #ff0000;">{{row.error}}</span>
419
+ </td>
420
+ <td id="hand-creat" v-if="row.f_meter_state === '未抄表' && ! row.crossyear ">
421
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
422
+ 'has-success has-feedback': !row.error,
423
+ 'has-error has-feedback': row.error}"
424
+ >
425
+
426
+ <input title="只能录入整数" type="text" class="input_search" v-model="row.f_tablebase"
427
+ @blur="$parent.$parent.$parent.beforenter($index, row)"
428
+ v-next-el="{id: $index+2}" :id="$index+1" style="width: 100px;padding: 6px;"
429
+ @focus="$parent.$parent.$parent.clearError(row)"
430
+ :disabled="row.state === '开始'">
431
+ </div>
432
+
433
+ <span v-if="row.error && row.error !== ''" style="color: #ff0000;">{{row.error}}</span>
434
+ </td>
435
+ <td id="hand-creat" v-if="row.f_meter_state !== '未抄表' ">
436
+ {{row.f_tablebase}}
437
+ </td>
438
+ <!--<td style="text-align: center;" v-if="row.f_oughtamount">{{ row.f_oughtamount }}</td>-->
439
+ <td style="text-align: center;">{{$parent.$parent.$parent.calculationBase(row)}}</td>
440
+ <td style="text-align: center;">
441
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{'has-success has-feedback': !row.error,'has-error has-feedback': row.error}"
442
+ v-if="row.f_meter_state === '未抄表' && row.states !== 0 && $parent.$parent.$parent.jurisdiction.includes('增量录入')">
443
+ <input title="只能录入整数" type="number" class="input_search" v-model="row.f_adjustment_volume"
444
+ style="width: 100px;padding: 6px;"
445
+ :disabled="row.state === '开始'">
446
+ </div>
447
+ <div v-else>
448
+ {{row.f_adjustment_volume}}
449
+ </div>
450
+ </td>
451
+ <td style="text-align: center;">{{row.f_oughtfee}}</td>
452
+
453
+ <td>
454
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
455
+ 'has-success has-feedback': !row.error,
456
+ 'has-error has-feedback': row.error}"
457
+ v-if="row.f_meter_state === '未抄表' && row.states !== 0">
458
+ <v-select :value.sync="row.f_result_state" v-model="row.f_result_state"
459
+ :options='$parent.$parent.$parent.resultstate' placeholder='抄表结果状态'
460
+ style="margin-right:90px" width="100%"
461
+ :value-single="true"
462
+ close-on-select
463
+ condition="f_adjustable_name = '{}'"></v-select>
464
+ <!-- <span id="inputError2Status" class="sr-only">(error)</span> -->
465
+ </div>
466
+ <div style="text-align: center;" v-else>
467
+ {{row.f_result_state}}
468
+ </div>
469
+ </td>
470
+ <td style="text-align: center;">{{row.f_whether_pay}}</td>
471
+ <td>{{row.f_last_input_date}}</td>
472
+ <td>{{row.f_hand_date}}</td>
473
+ <td>
474
+ <div class="form-group" style="margin-bottom:0px;display: contents;" :class="{
475
+ 'has-success has-feedback': !row.error,
476
+ 'has-error has-feedback': row.error}"
477
+ v-if="row.f_meter_state === '未抄表' && row.states !== 0 && $parent.$parent.$parent.jurisdiction.includes('录入日期修正')">
478
+ <datepicker id="endDate" placeholder="抄表时间"
479
+ v-model="row.f_input_date"
480
+ :value.sync="row.f_input_date"
481
+ :format="'yyyy-MM-dd HH:mm:ss'"
482
+ :show-reset-button="true">
483
+ </datepicker>
484
+ </div>
485
+ <div v-else>
486
+ {{row.f_input_date}}
487
+ </div>
488
+ </td>
489
+ <td>{{row.f_book_name}}</td>
490
+ <td>{{row.f_adjustable_name}}</td>
491
+ <td>{{row.f_inputtor}}</td>
492
+ <td>{{row.f_input_person}}</td>
493
+ <td>{{row.f_operator}}</td>
494
+ <td style="text-align: center;"><nobr>
495
+ <!-- 已抄表,还没审核-->
496
+ <button type="button" name="button" class="button_search button_spacing width-60"
497
+ v-if="row.f_meter_state === '待审核' && (row.id == row.maxid || !row.maxid)"
498
+ @click.stop="$parent.$parent.$parent.cancelAuditHand(row)">撤销
499
+ </button>
500
+ <!-- 未抄表,删除计划,直接删表内数据-->
501
+ <button type="button" name="button" class="btn btn-danger"
502
+ v-if="row.f_meter_state === '未抄表'"
503
+ @click.stop="$parent.$parent.$parent.delectHand(row) && row.states === 1"
504
+ >删除
505
+ </button>
506
+ <!-- 已抄表,已审核,冲正(状态改为冲正,添加负记录,需要重新下发)-->
507
+ <button type="button" name="button" class="button_search button_spacing width-60"
508
+ @click.stop="$parent.$parent.$parent.cancelHand(row)"
509
+ v-if="row.f_meter_state === '已抄表' && row.maxid==row.id && (row.f_whether_pay === '否' || row.f_accounts_state === '自动下账' || (row.f_whether_pay === '是'))" >冲正
510
+ </button>
511
+
512
+ <!-- <button type="button" name="button" class="btn btn-link"-->
513
+ <!-- v-if="row.f_meter_state === '待审核' ">待审核-->
514
+ <!-- </button>-->
515
+
516
+
517
+ </nobr>
518
+ </td>
519
+ </template>
520
+ </data-grid>
521
+ </criteria-paged>
522
+ <table class="table-hover">
523
+ <tr style="position: relative" class="table-bordered">
524
+ <td
525
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
526
+ 汇总信息
527
+ </td>
528
+ <td
529
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
530
+ 应缴气量:&emsp;{{sumsmodel.f_oughtamount}}
531
+ </td>
532
+ <td
533
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
534
+ 应缴金额:&emsp;{{sumsmodel.f_oughtfee}}
535
+ </td>
536
+ </tr>
537
+ </table>
538
+ <split-price :showdata="splitdata" :pricesplit="priceSplit" v-if="priceSplit"></split-price>
539
+
540
+ <modal :show.sync="danhu.show" :title='danhutitle' backdrop="false" coverstyle="danhumodal">
541
+ <article slot="modal-body" class="modal-body">
542
+ <div class="panel panel-primary datapanel">
543
+ <div class="row">
544
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">客户姓名:{{danhu.info.f_user_name}}</label>
545
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">客户编号:{{danhu.info.f_userinfo_code}}</label>
546
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">用户证号:{{danhu.info.f_book_no}}</label>
547
+ <label class="control-label col-sm-12 flex-row" style="transform: translate(0,8px)">客户地址:{{danhu.info.f_address}}</label>
548
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">上次抄表日期:{{danhu.info.f_hand_date}}</label>
549
+ <label class="control-label col-sm-6 flex-row" style="transform: translate(0,8px)">上期底数:{{danhu.info.f_tablebase}}</label>
550
+ </div>
551
+ </div>
552
+ <div class="panel panel-primary datapanel">
553
+ <div class="row">
554
+ <div class="col-sm-6 flex-row" style="margin-top: 2px">
555
+ <label for="danhucode" class="control-label" style="transform: translate(0,8px)">客户编号</label>
556
+ <input id="danhucode" type="text" class="input_search " style="width: 60% !important;"
557
+ v-model="danhu.f_userinfo_code" v-ref:danhucode @keyup.enter.stop="danhuCodeSearch"
558
+ placeholder='客户编号'/>
559
+ </div>
560
+ <div class="col-sm-6 flex-row" style="margin-top: 2px">
561
+ <label for="danhubase" class="control-label" style="transform: translate(0,8px)">本期底数</label>
562
+ <input id="danhubase" type="number" class="input_search " style="width: 60% !important;"
563
+ v-model="danhu.f_tablebase" @keyup.enter.stop="downAndHand"
564
+ placeholder='本期底数'/>
565
+ </div>
566
+ </div>
567
+ </div>
568
+ </article>
569
+ <footer slot="modal-footer">
570
+ </footer>
571
+ </modal>
572
+
573
+ <modal :show.sync="uploadshow" v-ref:modal backdrop="false">
574
+ <header slot="modal-header" class="modal-header">
575
+ <button type="button" class="close" @click="close"><span>&times;</span></button>
576
+ <h4 class="modal-title">文件上传</h4>
577
+ </header>
578
+ <article slot="modal-body" class="modal-body">
579
+ <div class="col-sm-2 form-group">
580
+ <file-upload class="my-file-uploader" name="myFile"
581
+ action="rs/file/upload" tagname="文件上传" :headers="headers" multiple v-ref:file></file-upload>
582
+ </div>
583
+ </article>
584
+
585
+ <footer slot="modal-footer" class="modal-footer">
586
+ <!-- <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
587
+ <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button> -->
588
+ </footer>
589
+ </modal>
590
+ <modal :show.sync="examineshow" v-ref:modal backdrop="false">
591
+ <header slot="modal-header" class="modal-header">
592
+ <button type="button" class="close" @click="close"><span>&times;</span></button>
593
+ <h4 class="modal-title">冲正审核</h4>
594
+ </header>
595
+ <article slot="modal-body" class="modal-body">
596
+ <div class="row">
597
+ <div class="col-sm-12 form-group">
598
+ <label class="font_normal_body">冲正原因</label>
599
+ <input type="text" style="width:90%" class="input_search" :disabled="examinetype"
600
+ v-model="examinerow.f_examinereason"
601
+ placeholder='冲正原因'>
602
+ </div>
603
+ <upload :blodid="examinerow.id" v-ref:upload :fusetype="uploadText" isremark="true"
604
+ style="width:auto"></upload>
605
+ </div>
606
+
607
+ </article>
608
+
609
+ <footer slot="modal-footer" class="modal-footer">
610
+ <button v-show="examineshow" type="button" class="btn btn-default" @click='close'>取消</button>
611
+ <button v-show="!examinetype" type="button" class="btn btn-success" @click='examineconfirm()'>确认</button>
612
+ <button type="button" v-show="examinetype" class="btn btn-success" @click='cancelHand5()'>审核通过</button>
613
+ </footer>
614
+ </modal>
615
+ <modal :show.sync="showstair" backdrop="false">
616
+ <header slot="modal-header" class="modal-header">
617
+ <button type="button" class="close" @click="closeerr"><span>&times;</span></button>
618
+ <h4 class="modal-title">跨阶抄表</h4>
619
+ </header>
620
+ <article slot="modal-body" class="modal-body">
621
+ <div class="row">
622
+ <div class="form-group col-sm-12">
623
+ <label class="col-xs-2 col-sm-2 col-md-2 form-group">本期表底数</label>
624
+ <div class="col-xs-4 col-sm-4 col-md-4 form-group">
625
+ <input type="number" class="form-control show-font" v-model="row.f_tablebase" width="80%" @blur="getamount(row)" placeholder="本期表底数" maxlength="10">
626
+ </div>
627
+
628
+ </div>
629
+ <div class="form-group col-sm-12">
630
+ <label class="col-xs-2 col-sm-2 col-md-2 form-group">用气量</label>
631
+ <div class="col-xs-4 col-sm-4 col-md-4 form-group">
632
+ <input type="number" class="form-control show-font" v-model="row.f_oughtamount" width="80%" disabled placeholder="用气量" maxlength="10">
633
+ </div>
634
+ </div>
635
+
636
+ <div v-for="(index,item) in stairdata" class="row">
637
+ <div class="col-xs-2 col-sm-2 col-md-2 form-group">
638
+ <span class="text-left font" style="color: darkblue">{{ item.year }}周期</span>
639
+ </div>
640
+ <div class="col-xs-4 col-sm-4 col-md-4 form-group">
641
+ <input type="number" class="form-control show-font" v-model="item.f_dispensed_amount" width="80%" placeholder="分配量(单位:方)" maxlength="10">
642
+ </div>
643
+ <div class="col-xs-4 col-sm-4 col-md-4 form-group">
644
+ <input type="number" class="form-control show-font" v-model="item.f_dispensed_price" placeholder="金额(单位:元)" maxlength="10">
645
+ </div>
646
+ </div>
647
+ </div>
648
+ </article>
649
+ <footer slot="modal-footer" class="modal-footer">
650
+ <button type="button" class="btn btn-default" @click='closeyear'>取消</button>
651
+ <button type="button" class="btn btn-default" @click='confirmyearhand'>确认</button>
652
+ </footer>
653
+ </modal>
654
+ <modal :show.sync="showerr" backdrop="false">
655
+ <header slot="modal-header" class="modal-header">
656
+ <button type="button" class="close" @click="closeerr"><span>&times;</span></button>
657
+ <h4 class="modal-title">抄表出错!</h4>
658
+ </header>
659
+ <article slot="modal-body" class="modal-body">
660
+ <div class="row">
661
+ <p> {{err}}</p>
662
+ <input type="text" class="form-control" @blur="paycodefocus" v-el:paycode>
663
+ </div>
664
+
665
+ </article>
666
+
667
+ <footer slot="modal-footer" class="modal-footer">
668
+ <button v-show="showerr" type="button" class="btn btn-default" @click='closeerr'>关闭</button>
669
+ </footer>
670
+ </modal>
671
+
672
+ <modal :show.sync="detailsShow" v-ref:model_details backdrop="true" width="700px">
673
+ <article slot="modal-body" class="modal-body">
674
+ <div class="flex-row">
675
+ <div style="width: 50%">
676
+ <mix-price-info :data="row" v-if="row.f_price_type === '固定气价'" v-ref:mix_price></mix-price-info>
677
+ <stairinfo :data="row" v-if="row.f_price_type === '阶梯气价'" v-ref:statir></stairinfo>
678
+ </div>
679
+ <div style="width: 50%" class="panel">
680
+ <div class="panel-heading detail-panel">
681
+ <h4>计算工具</h4>
682
+ </div>
683
+ <form class="form-horizontal" style="padding: 10px">
684
+ <div class="form-group">
685
+ <label class="col-sm-4 col-md-4 control-label" style="text-align: left">预购金额:</label>
686
+ <div class="col-sm-8 col-md-8">
687
+ <input type="number" class="form-control" placeholder="预购金额" @blur="computeAmount" v-el:inputmoney>
688
+ </div>
689
+ </div>
690
+ <div class="form-group">
691
+ <label class="col-sm-4 col-md-4 control-label" style="text-align: left">当前底数:</label>
692
+ <div class="col-sm-8 col-md-8">
693
+ <input type="number" class="form-control" placeholder="当前底数" v-model="row.f_last_tablebase" disabled>
694
+ </div>
695
+ </div>
696
+ <div class="form-group">
697
+ <label class="col-sm-4 col-md-4 control-label" style="text-align: left">应抄底数:</label>
698
+ <div class="col-sm-8 col-md-8">
699
+ <input type="number" class="form-control" placeholder="应抄底数" v-model="should_base" disabled>
700
+ </div>
701
+ </div>
702
+ <div class="form-group">
703
+ <label class="col-sm-12 col-md-12 control-label" style="text-align: center">计算公式</label>
704
+ <div class="col-sm-12 col-md-12">
705
+ <input type="text" class="form-control" placeholder="计算公式" v-model="designFormulas" disabled>
706
+ </div>
707
+ </div>
708
+ </form>
709
+ </div>
710
+ </div>
711
+ </article>
712
+ <footer slot="modal-footer" class="modal-footer">
713
+ <button type="button" class="button_search button_spacing" @click='customPricing()'>自定义划价</button>
714
+ </footer>
715
+ </modal>
716
+
717
+ <modal :show.sync="priceModel" v-ref:modal backdrop="false">
718
+ <header slot="modal-header" class="modal-header">
719
+ <h4 class="modal-title">自定义划价</h4>
720
+ </header>
721
+ <article slot="modal-body" class="modal-body">
722
+ <div>
723
+ <mix-price-info :data="row" v-if="row.f_price_type === '固定气价'" v-ref:mix_price></mix-price-info>
724
+ <stairinfo :data="row" v-if="row.f_price_type === '阶梯气价'" v-ref:statir></stairinfo>
725
+ </div>
726
+ <div class="row">
727
+ <template v-if="row.f_price_type === '固定气价'">
728
+ <div class="col-sm-4 form-group">
729
+ <label class="font_normal_body">单价</label>
730
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price1" placeholder='单价'></input>
731
+ </div>
732
+ <div class="col-sm-4 form-group">
733
+ <label class="font_normal_body">数量</label>
734
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas1" placeholder='数量'></input>
735
+ </div>
736
+ <div class="col-sm-4 form-group">
737
+ <label class="font_normal_body">金额</label>
738
+ <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money1 = stairMoney(row.f_stair_price1, row.f_stair_gas1) }}</p>
739
+ </div>
740
+ </template>
741
+
742
+ <template v-if="row.f_price_type === '阶梯气价'">
743
+ <div class="col-sm-4 form-group" >
744
+ <label class="font_normal_body">阶梯一单价</label>
745
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price1" placeholder='阶梯一单价'></input>
746
+ </div>
747
+ <div class="col-sm-4 form-group">
748
+ <label class="font_normal_body">阶梯一数量</label>
749
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas1" placeholder='阶梯一数量'></input>
750
+ </div>
751
+ <div class="col-sm-4 form-group">
752
+ <label class="font_normal_body">阶梯一金额</label>
753
+ <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money1 = stairMoney(row.f_stair_price1, row.f_stair_gas1) }}</p>
754
+ </div>
755
+ <div class="col-sm-4 form-group" >
756
+ <label class="font_normal_body">阶梯二单价</label>
757
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price2" placeholder='阶梯二单价'></input>
758
+ </div>
759
+ <div class="col-sm-4 form-group">
760
+ <label class="font_normal_body">阶梯二数量</label>
761
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas2" placeholder='阶梯二数量'></input>
762
+ </div>
763
+ <div class="col-sm-4 form-group">
764
+ <label class="font_normal_body">阶梯二金额</label>
765
+ <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money2 = stairMoney(row.f_stair_price2, row.f_stair_gas2) }}</p>
766
+ </div>
767
+ <div class="col-sm-4 form-group" >
768
+ <label class="font_normal_body">阶梯三单价</label>
769
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_price3" placeholder='阶梯三单价'></input>
770
+ </div>
771
+ <div class="col-sm-4 form-group">
772
+ <label class="font_normal_body">阶梯三数量</label>
773
+ <input type="text" class="form-control" style="width:60%" v-model="row.f_stair_gas3" placeholder='阶梯三数量'></input>
774
+ </div>
775
+ <div class="col-sm-4 form-group">
776
+ <label class="font_normal_body">阶梯三金额</label>
777
+ <p class="form-control" style="width:60%" disabled>{{ row.f_stair_money3 = stairMoney(row.f_stair_price3, row.f_stair_gas3) }}</p>
778
+ </div>
779
+ </template>
780
+ <div class="col-sm-4 form-group" >
781
+ </div>
782
+ <div class="col-sm-4 form-group">
783
+ <label class="font_normal_body">总用气量</label>
784
+ <p class="form-control" style="width:60%" disabled>{{ ((row.f_stair_gas1 - 0)+(row.f_stair_gas2 - 0)+(row.f_stair_gas3 - 0)).toFixed(2) }}</p>
785
+ </div>
786
+ <div class="col-sm-4 form-group">
787
+ <label class="font_normal_body">总用气金额</label>
788
+ <p class="form-control" style="width:60%" disabled>{{ row.f_oughtfee = ((row.f_stair_money1 - 0)+(row.f_stair_money2 - 0)+(row.f_stair_money3 - 0)).toFixed(2) }}</p>
789
+ </div>
790
+ <p style="color: red">注意: 自定义气量总量必须等于本次抄表用气量, 本次抄表总量: {{row.f_oughtamount}}</p>
791
+ </div>
792
+ </article>
793
+ <footer slot="modal-footer" class="modal-footer">
794
+ <button type="button" class="button_clear button_spacing" @click="close()">取消</button>
795
+ <button type="button" class="button_search button_spacing" @click='customPricingConfirm()'>确认</button>
796
+ </footer>
797
+ </modal>
798
+ </div>
799
+ </div>
800
+ </template>
801
+ <script>
802
+ import MixPriceInfo from '../../components/revenue/base/leftview/MixPriceInfo'
803
+ import {PagedList, HttpResetClass} from 'vue-client'
804
+ import Vue from 'vue'
805
+ import co from 'co'
806
+
807
+ let readyGen = async function (self) {
808
+ await self.$getConfig(self, 'HandManager')
809
+ await self.$LoadParams.loadMeterBook(self.f_filialeid)
810
+ self.loadMeterBooks()
811
+ self.getfield = self.config.excelHeaders
812
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
813
+ self.reflash()
814
+ }
815
+
816
+ let downGen = function* (type, condition, data, self) {
817
+ // if(data == 0 ) {
818
+ // self.$showAlert('下发计划户数为0!请选择需要下发的计划!!', 'danger', 0)
819
+ // return
820
+ // }
821
+ self.condition = condition
822
+ self.msg = '确认下发计划'
823
+ // 判断之前是否有未抄表数据
824
+ let getUnhand = null
825
+ // let getUnhand = yield Vue.resetpost('rs/sql/getUnhand', {data: {startDate: self.startDate, condition: self.condition}}, {resolveMsg: null, rejectMsg: '获取未抄表数据异常!!'})
826
+ // if (type === 'batch' || type === 'single') {
827
+ if (type === 'single') {
828
+ getUnhand = yield Vue.resetpost('rs/sql/getUnhand', {
829
+ data: {
830
+ startDate: self.model.params.startDate,
831
+ condition: condition
832
+ }
833
+ }, {resolveMsg: null, rejectMsg: '获取未抄表数据异常!!'})
834
+ self.msg = `下发客户编号为${data.f_userinfo_code}的抄表计划?`
835
+ // } else if (type === 'all') {
836
+ } else if (type === 'batch') {
837
+ let tempCondition = condition.replace("and f_meter_state = '未下发'", '')
838
+ getUnhand = yield Vue.resetpost('rs/sql/getUnhand', {
839
+ data: {
840
+ startDate: self.model.params.startDate,
841
+ condition: tempCondition
842
+ }
843
+ }, {resolveMsg: null, rejectMsg: '获取未抄表数据异常!!'})
844
+ self.msg = `确认下发当前总计: ${data} 户计划`
845
+ }
846
+ for (let i = 0; i < getUnhand.data.length; i++) {
847
+ let temp = {
848
+ id: getUnhand.data[i].id,
849
+ f_user_id: getUnhand.data[i].f_user_id,
850
+ f_userfiles_id: getUnhand.data[i].f_userfiles_id,
851
+ f_adjustable_id: getUnhand.data[i].f_adjustable_id,
852
+ f_adjustable_name: getUnhand.data[i].f_adjustable_name
853
+ }
854
+ console.log('=================================================================================')
855
+ console.log('下发计划查看调压箱和调压箱编号', temp)
856
+ console.log('========================================================================================')
857
+ self.unhandplan.push(temp)
858
+ }
859
+ if (getUnhand.data.length > 0) {
860
+ self.msg = self.msg + `, 警告: 之前有 ${getUnhand.data.length} 条未抄表数据`
861
+ }
862
+ self.show = true
863
+ }
864
+
865
+ let beforenterGen = async function (self, index, row) {
866
+ // 验证是不是总表
867
+ // self.enter(index, row)
868
+ if (row.f_totalsplit_type === '总表') {
869
+ let hasUnHand = await self.$HandService.getSplitInfo(row.f_userfiles_id)
870
+ if (hasUnHand) {
871
+ self.$showAlert('该表下面有未抄或未审核的分表信息!!请先抄录或审核分表信息!', 'danger', 0)
872
+ row.f_tablebase = null
873
+ } else {
874
+ self.enter(index, row)
875
+ }
876
+ } else {
877
+ self.enter(index, row)
878
+ }
879
+ }
880
+
881
+ export default {
882
+ title: '机表抄表',
883
+ components: { MixPriceInfo },
884
+ data () {
885
+ return {
886
+ priceModel: false,
887
+ initres: {
888
+ org: [this.$login.f.orgid],
889
+ dep: [],
890
+ user: []
891
+ },
892
+ showstair: false,
893
+ stairdata: [],
894
+ sumsmodel: [],
895
+ orgCondtionStr: '',
896
+ priceSplit: false,
897
+ deletestate: false,
898
+ criteriaShow: false,
899
+ model: new PagedList('rs/sql/getPlan', 50, {orderitem: this.orderDefault ? '"' + this.orderDefault + ' "' : `'f_hand_date desc'`}, {
900
+ f_oughtamount: 0,
901
+ f_oughtfee: 0
902
+ }),
903
+ config: {
904
+ crossyear: true,
905
+ // 导出列要和查询列相同
906
+ excelHeaders: {
907
+ 'f_user_id': '表编号',
908
+ 'f_meternumber': '表号',
909
+ 'f_inputtor': '抄表员',
910
+ 'f_balance': '上期结余',
911
+ 'f_last_input_date': '上次抄表',
912
+ 'f_hand_date': '下发时间',
913
+ 'f_input_date': '抄表日期',
914
+ 'f_userinfo_code': '客户编号',
915
+ 'f_address': '客户地址',
916
+ 'area': '小区名称',
917
+ 'f_user_name': '客户姓名',
918
+ 'f_last_tablebase': '上期底数',
919
+ 'f_tablebase': '本期指数',
920
+ 'f_oughtfee': '应交金额',
921
+ 'f_oughtamount': '应交气量',
922
+ 'f_whether_pay': '是否缴费',
923
+ 'f_book_name': '抄表册',
924
+ 'f_input_person': '录入人员',
925
+ 'f_operator': '下发人员',
926
+ 'f_meter_classify': '气表分类',
927
+ 'f_meter_style': '气表型号',
928
+ 'f_accounts_state': '下账标识',
929
+ 'f_user_phone': '客户电话',
930
+ 'f_adjustable_id': '表箱号'
931
+ },
932
+ examine: true,
933
+ customCal: false
934
+ },
935
+ meter_state: false, // 是否显示计划下发按钮
936
+ downModel: {
937
+ downDate: Vue.$login.toStandardTimeString(),
938
+ downWay: 'downWithUserfiles',
939
+ downInputtor: []
940
+ },
941
+ inputtorModel: {
942
+ inputtor: [],
943
+ reason: ''
944
+ },
945
+ auditState: [{label: '全部', value: ''}, {label: '未抄表', value: '未抄表'}, {label: '待审核', value: '待审核'}, {label: '已抄表', value: '已抄表'}],
946
+
947
+ plans: [], // 记录当前行是否被勾选
948
+ all: false, // 是否全选
949
+ show: false, // 下发日期模态框显示
950
+ unhandplan: [], // 之前是否有未抄表记录
951
+ downConfirm: false, // 下发若有未抄记录,确认框
952
+ uploadshow: false,
953
+ // 小区
954
+ residentialArea: [],
955
+
956
+ // downDate: this.$login.toStandardYearMonth().replace("-", ""),
957
+ msg: '',
958
+ condition: '',
959
+ headers: {'username': Vue.$login.f.name, 'blodid': Vue.$login.guid()},
960
+ orderDefault: 'f_hand_date',
961
+ orderFields: {
962
+ f_userinfo_id: 'no'
963
+ },
964
+ getfield: {},
965
+ outlet: '',
966
+ filiale: '',
967
+ condition2: '',
968
+ area: [],
969
+ inputtouPerson: [],
970
+ meters: [{label: '全部', value: ''}, {label: '机表', value: '机表'}, {label: '物联网表', value: '物联网表'}],
971
+ resultstate: this.$appdata.getParam('抄表结果状态'),
972
+ meterstates: this.$appdata.getParam('抄表状态') ? [{
973
+ label: '全部',
974
+ value: ''
975
+ }, ...this.$appdata.getParam('抄表状态')] : [],
976
+ usertypes: this.$appdata.getParam('客户类型') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('客户类型')] : [],
977
+ userlevels: this.$appdata.getParam('用户等级') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户等级')] : [],
978
+ adjustablename: this.$appdata.getParam('调压箱名称') ? [{
979
+ label: '全部',
980
+ value: ''
981
+ }, ...this.$appdata.getParam('调压箱名称')] : [],
982
+ inputtores2: [], // 下发时使用自定义抄表员,
983
+ splitdata: '',
984
+ f_filialeid: this.$login.f.orgid,
985
+ meterbooks: [],
986
+ upshow: false,
987
+ inputid: 0,
988
+ examineshow: false,
989
+ examinerow: null,
990
+ showfiles: false,
991
+ uploadText: '抄表',
992
+ examinetype: false,
993
+ danhu: {
994
+ show: false,
995
+ f_userinfo_code: '',
996
+ f_tablebase: '',
997
+ info: {}
998
+ },
999
+ showerr: false,
1000
+ err: '',
1001
+ // 请求对象(批量导入,查询进度使用)
1002
+ HttpReset: new HttpResetClass(),
1003
+ // 气价使用详情展示
1004
+ detailsShow: false,
1005
+ row: null,
1006
+ // 应抄底数
1007
+ should_base: 0,
1008
+ // 计算公式
1009
+ designFormulas: null,
1010
+ usermlimit: this.$appdata.getSingleValue('民用自动审核区间'),
1011
+ userfmlimit: this.$appdata.getSingleValue('非民用自动审核区间')
1012
+ }
1013
+ },
1014
+ ready () {
1015
+ this.getaddress()
1016
+ readyGen(this)
1017
+ },
1018
+ mounted () {
1019
+ console.log(this.inputid)
1020
+ document.getElementById(this.inputid).focus()
1021
+ },
1022
+ methods: {
1023
+ getamount (row) {
1024
+ if(row.f_tablebase<row.f_last_tablebase){
1025
+ this.$showMessage('本地底数小于上期底数')
1026
+ }else{
1027
+ row.f_oughtamount = (row.f_tablebase - 0) - (row.f_last_tablebase - 0)
1028
+ }
1029
+ },
1030
+ closeyear(){
1031
+ this.showstair =false
1032
+ this.row = null
1033
+ },
1034
+ confirmyearhand () {
1035
+ if (this.stairdata){
1036
+ let amount = 0
1037
+ let price = 0
1038
+ let f_oughtamount = this.row.f_oughtamount
1039
+
1040
+ for (let i=0;i<this.stairdata.length;i++){
1041
+ console.log('qiliang----------------->',this.stairdata[i].f_dispensed_amount)
1042
+ if (this.stairdata[i].f_dispensed_amount && this.stairdata[i].f_dispensed_price){
1043
+ amount = amount + parseFloat(this.stairdata[i].f_dispensed_amount)
1044
+ console.log("amount-------->",amount)
1045
+ price = price + parseFloat(this.stairdata[i].f_dispensed_price)
1046
+ console.log("price-------->",price)
1047
+ }
1048
+ }
1049
+
1050
+ console.log("amount--最后算的------>",amount)
1051
+ console.log("f_oughtamount--最后算的------>",f_oughtamount)
1052
+
1053
+ if (f_oughtamount !== amount && amount >0){
1054
+ this.$showMessage('请重新录入分配气量')
1055
+ return
1056
+ }
1057
+ }
1058
+ this.row.dataArr = this.stairdata
1059
+ let url = 'rs/logic/yearCommonEnter'
1060
+ this.$resetpost(url, {data: this.row}, {warnMsg: '确定对这条记录进行抄表吗?'}).then(() => {
1061
+ this.search()
1062
+ this.showstair =false
1063
+ this.row = null
1064
+ })
1065
+ },
1066
+ yearhand (data) {
1067
+ this.stairdata = []
1068
+ this.row = data
1069
+ if (data.f_last_input_date) {
1070
+ console.log('核算时间----------', data.f_last_input_date)
1071
+ let date1 = data.f_last_input_date // 上次抄表时间
1072
+ let date2 = new Date(Date.parse(date1)) // 上次抄表时间
1073
+ let date3 = new Date() // 当前时间
1074
+ let days = date3.getFullYear() - date2.getFullYear()
1075
+ console.log('年份差值----------->', days)
1076
+ if (days >= 1) {
1077
+ console.log('days大于1就进来')
1078
+ for (let i = 0; i <= days; i++) {
1079
+ let year = date2.getFullYear() + i
1080
+ console.log('加入的年份------->', year)
1081
+ let temp = {
1082
+ f_dispensed_amount: null,
1083
+ f_dispensed_price: null,
1084
+ year: year
1085
+ }
1086
+ this.stairdata.push(temp)
1087
+ }
1088
+ this.showstair = true
1089
+ console.log('数组长度---------->', this.stairdata)
1090
+ }
1091
+ }
1092
+ },
1093
+ stairMoney (price, gas) {
1094
+ return (price * gas).toFixed(2) - 0
1095
+ },
1096
+ async customPricingConfirm () {
1097
+ let sumGas = (this.row.f_stair_gas1 - 0) + (this.row.f_stair_gas2 - 0) + (this.row.f_stair_gas3 - 0)
1098
+ if (sumGas !== (this.row.f_oughtamount - 0)) {
1099
+ this.$showMessage('自定义划价总气量不符, 请检查')
1100
+ return
1101
+ }
1102
+ let row = {
1103
+ id: this.row.id,
1104
+ f_oughtfee: this.row.f_oughtfee,
1105
+ f_stair_price1: this.row.f_stair_price1,
1106
+ f_stair_gas1: this.row.f_stair_gas1,
1107
+ f_stair_money1: this.row.f_stair_money1,
1108
+ f_stair_price2: this.row.f_stair_price2,
1109
+ f_stair_gas2: this.row.f_stair_gas2,
1110
+ f_stair_money2: this.row.f_stair_money2,
1111
+ f_stair_price3: this.row.f_stair_price3,
1112
+ f_stair_gas3: this.row.f_stair_gas3,
1113
+ f_stair_money3: this.row.f_stair_money3
1114
+ }
1115
+ await this.$resetpost('rs/logic/customPricing', {data: row}, {resolveMsg: '保存成功', rejectMsg: '保存失败'}).then(res => {
1116
+ this.close()
1117
+ this.search()
1118
+ })
1119
+ },
1120
+ customPricing () {
1121
+ if (!this.$login.r.find(value => value == '抄表自定义划价')) {
1122
+ this.$showMessage('当前登录用户没有【抄表自定义划价】权限, 请联系管理员!')
1123
+ return
1124
+ }
1125
+ if (this.row.f_meter_state !== '已抄表') {
1126
+ this.$showMessage('当前抄表单不是已抄表状态,无法进行自定义划价!')
1127
+ return
1128
+ }
1129
+ if (this.row.f_whether_pay !== '否') {
1130
+ this.$showMessage('当前抄表单已经缴费,无法进行自定义划价!')
1131
+ return
1132
+ }
1133
+ this.detailsShow = false
1134
+ this.priceModel = true
1135
+ },
1136
+ downloadFiles () {
1137
+ let downurl = 'rs/downloadfile/file?filename=机表抄表导入Excel模板_zhongyi'
1138
+ this.$downFile(downurl, '机表抄表导入Excel模板.xlsx')
1139
+ },
1140
+ calculationBase (row) {
1141
+ let oughtamount = null
1142
+ if (row.f_tablebase) {
1143
+ if (row.f_share_gas) {
1144
+ oughtamount = (row.f_tablebase - 0 - (row.f_last_tablebase - 0)).toFixed(4) + (row.f_share_gas > 0 ? '+' : '') + row.f_share_gas.toFixed(2)
1145
+ } else {
1146
+ if (row.f_capacity && row.f_capacity > 0 && row.f_tablebase < row.f_last_tablebase) {
1147
+ oughtamount = (row.f_tablebase - 0 + (row.f_capacity - row.f_last_tablebase)).toFixed(2)
1148
+ } else {
1149
+ oughtamount = (row.f_tablebase - 0 - (row.f_last_tablebase - 0)).toFixed(2)
1150
+ }
1151
+ }
1152
+ } else {
1153
+ oughtamount = 0
1154
+ }
1155
+ row.f_oughtamount = oughtamount
1156
+ return oughtamount
1157
+ },
1158
+ cancelHand (row) {
1159
+ if (this.config.examine) {
1160
+ let handdate = new Date(row.f_hand_date)
1161
+ let ima = new Date()
1162
+ if (handdate.getMonth() == ima.getMonth()) {
1163
+ this.cancelHand3(row)
1164
+ } else {
1165
+ if (!this.$login.r.find(value => value == '抄表隔月冲正')) {
1166
+ this.$showMessage('当前登录用户没有【抄表隔月冲正】权限, 请联系管理员!')
1167
+ } else {
1168
+ this.cancelHand3(row)
1169
+ }
1170
+ }
1171
+ } else {
1172
+ this.cancelHand3(row)
1173
+ }
1174
+ },
1175
+
1176
+ cancelHand3 (row) {
1177
+ // 抄表加入权限
1178
+ if (!this.$login.r.find(value => value == '机表抄表冲正')) {
1179
+ this.$showMessage('当前登录用户没有冲正权限, 请联系管理员!')
1180
+ return
1181
+ }
1182
+ // console.log('抄表冲正。、。。、', row)
1183
+ let param = {
1184
+ f_hand_id: row.id,
1185
+ operInfo: {
1186
+ f_operator: this.$login.f.name,
1187
+ f_operatorid: this.$login.f.id,
1188
+ f_orgid: this.$login.f.orgid,
1189
+ f_orgname: this.$login.f.orgs,
1190
+ f_depid: this.$login.f.depids,
1191
+ f_depname: this.$login.f.deps
1192
+ }
1193
+ }
1194
+ let url = 'rs/logic/sale_commonEnterCancel'
1195
+ this.$resetpost(url, {data: param}, {warnMsg: '确定对这条记录进行撤销吗?'}).then(() => {
1196
+ this.search()
1197
+ this.close()
1198
+ })
1199
+ },
1200
+ cancelAuditHand (row) {
1201
+ console.log('撤回本次录入。。。', row)
1202
+ let handplan = {
1203
+ id: row.id,
1204
+ f_oughtamount: 0,
1205
+ f_tablebase: 0,
1206
+ f_input_date: null,
1207
+ f_meter_state: '未抄表',
1208
+ f_meter_source: null
1209
+ }
1210
+ this.$resetpost('rs/entity/t_handplan', handplan, {
1211
+ resolveMsg: null,
1212
+ rejectMsg: '撤回失败'
1213
+ }).then((res) => {
1214
+ this.search()
1215
+ })
1216
+ },
1217
+ async danhuCodeSearch () {
1218
+ this.danhu.f_userinfo_code = this.danhu.f_userinfo_code.replace(/(^\s*)|(\s*$)/g, '')
1219
+ await this.$resetpost('rs/sql/getInfoOfDanhu', {
1220
+ data: {
1221
+ f_userinfo_code: this.danhu.f_userinfo_code,
1222
+ f_orgid: this.f_filialeid
1223
+ }
1224
+ },
1225
+ {resolveMsg: null, rejectMsg: '查询用户信息失败,网络错误'}).then(res => {
1226
+ if (res.data.length !== 1) {
1227
+ this.$showAlert(res.data.length === 0 ? '没有查询到用户' : '查询到多条用户信息', 'warning', 3000)
1228
+ return
1229
+ }
1230
+ if (res.data[0].f_meter_state === '待审核') {
1231
+ this.$showAlert('用户有待审核的记录', 'warning', 3000)
1232
+ return
1233
+ }
1234
+ if (res.data[0].f_whether_pay === '否') {
1235
+ this.$showAlert('用户有未缴费的抄表记录', 'warning', 3000)
1236
+ }
1237
+ this.danhu.info = res.data[0]
1238
+ // = Object.assign(this.danhu,{info:res.data[0]})
1239
+ document.getElementById('danhubase').focus()
1240
+ })
1241
+ },
1242
+ // 单户抄表 下发计划并抄表
1243
+ async downAndHand () {
1244
+ if (!this.danhu.info.f_userinfo_code || this.danhu.info.f_userinfo_code === '') {
1245
+ this.$showAlert(`请先查询用户信息`, 'warning', 2000)
1246
+ return
1247
+ }
1248
+
1249
+ if (this.danhu.f_tablebase < 0) {
1250
+ this.$showAlert(`底数不能小于0,请注意!`, 'warning', 2000)
1251
+ return
1252
+ } else if (this.danhu.f_tablebase - parseInt(this.danhu.f_tablebase) !== 0) {
1253
+ this.$showAlert(`底数只能输入整数,请注意!`, 'warning', 2000)
1254
+ return
1255
+ } else if (this.danhu.f_tablebase < this.danhu.info.f_tablebase && !this.danhu.info.f_capacity) {
1256
+ this.$showAlert(`本期表底数不能低于上期表底数`, 'warning', 2000)
1257
+ return
1258
+ } else {
1259
+ if (this.danhu.f_tablebase < this.danhu.info.f_tablebase) {
1260
+ this.$showMessage('本次抄表已超越最大量程, 请熟知!')
1261
+ }
1262
+ }
1263
+ let param = {
1264
+ downDate: this.downModel.downDate,
1265
+ startDate: this.model.params.startDate,
1266
+ endDate: this.model.params.endDate,
1267
+ condition: ` f_userfiles_id = '${this.danhu.info.f_userfiles_id}' `,
1268
+ f_operator: this.$login.f.name,
1269
+ f_operatorid: this.$login.f.id,
1270
+ danhu: true,
1271
+ userfilesid: this.danhu.info.f_userfiles_id
1272
+ }
1273
+ console.log('下发参数:', param)
1274
+ this.$resetpost('rs/logic/downHand', {data: param}, {resolveMsg: null, rejectMsg: '下发失败,请检查该用户是否在该归属期内已有抄表记录'}).then((res) => {
1275
+ console.log('下发计划成功', res)
1276
+ this.$resetpost('/rs/sql/querySingleTable', {
1277
+ data: {
1278
+ items: 'max(id) id',
1279
+ tablename: 't_handplan',
1280
+ condition: ` f_userfiles_id = '${this.danhu.info.f_userfiles_id}' `
1281
+ }
1282
+ }, {resolveMsg: null, rejectMsg: '查询抄表信息失败'}).then((res2) => {
1283
+ let handParam = {
1284
+ f_meter_classify: this.danhu.info.f_meter_classify,
1285
+ f_meter_brand: this.danhu.info.f_meter_brand,
1286
+ f_hand_id: res2.data[0].id,
1287
+ f_tablebase: this.danhu.f_tablebase,
1288
+ f_userinfo_id: this.danhu.info.f_userinfo_id
1289
+ }
1290
+ this.$resetpost('rs/logic/sale_commonEnter', {data: handParam}, {
1291
+ resolveMsg: null,
1292
+ rejectMsg: null
1293
+ })
1294
+ }).then((res) => {
1295
+ this.$showAlert(`单户抄表成功!`, 'success', 2000)
1296
+ this.danhuShow()
1297
+ }).catch((error) => {
1298
+ this.danhu.show = false
1299
+ this.$showAlert(`单户抄表失败!` + JSON.toString(error), 'danger', 2000)
1300
+ })
1301
+ }).catch((error) => {
1302
+ this.danhu.show = false
1303
+ this.$showAlert(`抄表失败,请注意查看,失败原因:` + JSON.toString(error), 'danger', 2000)
1304
+ })
1305
+ },
1306
+ // 获得本月的最后一天。
1307
+ getLastDayOfMonth (year, month) {
1308
+ let new_year = year // 取当前的年份
1309
+ let new_month = month++// 取下一个月的第一天,方便计算(最后一天不固定)
1310
+ if (month > 12) // 如果当前大于12月,则年份转到下一年
1311
+ {
1312
+ new_month -= 12 // 月份减
1313
+ new_year++ // 年份增
1314
+ }
1315
+ let new_date = new Date(new_year, new_month, 1) // 取当年当月中的第一天
1316
+ let date_count = (new Date(new_date.getTime() - 1000 * 60 * 60 * 24)).getDate()// 获取当月的天数
1317
+ // let last_date = new Date(new_date.getTime() - 1000 * 60 * 60 * 24);//获得当月最后一天的日期
1318
+ return date_count
1319
+ },
1320
+ danhuShow () {
1321
+ this.model.params.startDate = this.$refs.paged.$refs.criteria.model.startDate
1322
+ this.model.params.endDate = this.$refs.paged.$refs.criteria.model.endDate
1323
+ this.downModel.downDate = this.$login.toStandardTimeString()
1324
+ this.danhu = {
1325
+ show: true,
1326
+ f_userinfo_code: '',
1327
+ f_tablebase: '',
1328
+ info: {}
1329
+ }
1330
+ setTimeout(() => {
1331
+ document.getElementById('danhucode').focus()
1332
+ this.$refs.paged.$refs.criteria.search()
1333
+ }, 100)
1334
+ },
1335
+ paycodefocus () {
1336
+ this.$nextTick(() => {
1337
+ this.$els.paycode.focus()
1338
+ })
1339
+ },
1340
+ getRes (obj) {
1341
+ this.orgCondtionStr = obj
1342
+ },
1343
+ async getaddress () {
1344
+ console.log('开始获取小区')
1345
+ let HttpReset = new HttpResetClass()
1346
+ var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
1347
+ data: {
1348
+ condition: `1=1 and s.f_filialeid = '${this.$login.f.orgid}'`
1349
+ }
1350
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
1351
+ console.log('小区', data)
1352
+ let house = []
1353
+ house.push()
1354
+ for (let row of data.data) {
1355
+ console.log('开始保存小区')
1356
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
1357
+ }
1358
+ this.residentialArea = house
1359
+ },
1360
+ loadMeterBooks () {
1361
+ this.meterbooks = this.$GetSaleParam.getMeterBooks()
1362
+ },
1363
+
1364
+ fileterprice (row) {
1365
+ this.splitdata = row
1366
+ this.priceSplit = true
1367
+ console.log('row==>', row)
1368
+ },
1369
+ hidden () {
1370
+ this.criteriaShow = !this.criteriaShow
1371
+ },
1372
+ clear () {
1373
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
1374
+ this.$refs.paged.$refs.criteria.model[key] = []
1375
+ })
1376
+ },
1377
+
1378
+ // 判断当前页是否全选
1379
+ isChooseAll (rows) {
1380
+ if (this.plans.length == 0 && rows.length == 0) {
1381
+ return false
1382
+ }
1383
+ for (var i = 0; i < rows.length; i++) {
1384
+ let flag = false
1385
+ if (rows[i].f_meter_state == '未下发') {
1386
+ for (let plan of this.plans) {
1387
+ if (plan.id == rows[i].f_userfiles_id) {
1388
+ flag = true
1389
+ if (!plan.state) {
1390
+ return false
1391
+ }
1392
+ }
1393
+ }
1394
+ if (!flag) {
1395
+ return false
1396
+ }
1397
+ }
1398
+ }
1399
+ return true
1400
+ },
1401
+ // 选择需要下发的计划
1402
+ chooseOne (e, row, rows) {
1403
+ console.log('row', row)
1404
+ let checked = e.target.checked
1405
+ console.log('state', e.target.checked)
1406
+ // 判断当前行是否被选中
1407
+ if (checked) {
1408
+ let onePlan = {
1409
+ id: row.f_userfiles_id,
1410
+ state: true
1411
+ }
1412
+ // 记录被选中计划的状态
1413
+ let flag = false
1414
+ for (let plan of this.plans) {
1415
+ if (plan.id == row.f_userfiles_id) {
1416
+ flag = true
1417
+ plan.state = true
1418
+ }
1419
+ }
1420
+ if (!flag) {
1421
+ this.plans.push(onePlan)
1422
+ }
1423
+ } else {
1424
+ for (let plan of this.plans) {
1425
+ if (plan.id == row.f_userfiles_id) {
1426
+ plan.state = false
1427
+ }
1428
+ }
1429
+ }
1430
+ // let param = {id:row.id,isChoose:true}
1431
+
1432
+ if (this.isChooseAll(rows)) {
1433
+ this.all = true
1434
+ } else {
1435
+ this.all = false
1436
+ }
1437
+ // this.delRepetition()
1438
+ },
1439
+ uploadFiles () {
1440
+ this.showfiles = !this.showfiles
1441
+ },
1442
+ chooseAll () {
1443
+ if (this.all) {
1444
+ // this.chooseInfo[index-1] = []
1445
+ // for (let row of this.model.rows){
1446
+ // this.chooseInfo[index-1].push(row)
1447
+ // }
1448
+ // this.chooseInfo = Object.assign([],this.chooseInfo,this.model.rows)
1449
+
1450
+ for (let row of this.model.rows) {
1451
+ if (row.f_meter_state == '未下发') {
1452
+ let onePlan = {
1453
+ id: row.f_userfiles_id,
1454
+ state: true
1455
+ }
1456
+ let flag = false
1457
+ for (let plan of this.plans) {
1458
+ if (plan.id == row.f_userfiles_id) {
1459
+ flag = true
1460
+ plan.state = true
1461
+ }
1462
+ }
1463
+ if (!flag) {
1464
+ this.plans.push(onePlan)
1465
+ }
1466
+ }
1467
+ }
1468
+ } else {
1469
+ // this.chooseInfo[index-1] = []
1470
+ // console.log("this.chooseInfo[index-1]",this.chooseInfo[index-1])
1471
+ for (let row of this.model.rows) {
1472
+ if (row.f_meter_state == '未下发') {
1473
+ for (let plan of this.plans) {
1474
+ if (plan.id == row.f_userfiles_id) {
1475
+ plan.state = false
1476
+ }
1477
+ }
1478
+ }
1479
+ }
1480
+ }
1481
+ },
1482
+ search () {
1483
+ // 查询前清空选择项
1484
+ this.plans = []
1485
+ this.$refs.paged.$refs.criteria.search()
1486
+ },
1487
+ clickupshow () {
1488
+ if (!this.$login.r.find(value => value == '机表抄表导入抄表')) {
1489
+ this.$showMessage('你没有机表抄表导入抄表的权限,请联系管理员!')
1490
+ return
1491
+ }
1492
+ this.upshow = !this.upshow
1493
+ },
1494
+ deletehand () {
1495
+ if (!this.$login.r.find(value => value == '抄表计划删除')) {
1496
+ this.$showMessage('你没有【抄表计划删除】的权限,请联系管理员!')
1497
+ } else {
1498
+ if (this.deletestate) {
1499
+ console.log('mode', this.model)
1500
+ let cons = this.model.params
1501
+ this.$showMessage('删除后不可恢复,确认删除该批未抄表计划吗?', ['confirm', 'cancel']).then((res) => {
1502
+ if (res === 'confirm') {
1503
+ this.$resetpost('rs/logic/deletePlanAll', {data: cons}).then((res) => {
1504
+ this.$dispatch('refresh', '删除计划', cons)
1505
+ console.log('ressss:', res)
1506
+ this.$showAlert(`共计删除${res.data.index}条记录`, 'success', 2000)
1507
+ this.search()
1508
+ })
1509
+ }
1510
+ })
1511
+ } else {
1512
+ this.$showMessage('为保证误删操作,请先选择抄表单查询条件为未抄表,查询后,再点击删除计划按钮!')
1513
+ }
1514
+ }
1515
+ },
1516
+ searchPrint () {
1517
+ console.log('mode', this.model)
1518
+ let cons = this.model.params
1519
+ let data = {
1520
+ 'body': {
1521
+ 'data': {
1522
+ 'condition': ''
1523
+ },
1524
+ 'field': [],
1525
+ 'templateName': '',
1526
+ 'sqlName': ''
1527
+ },
1528
+ 'condition': cons,
1529
+ 'sqlname': 'periodAlreadyIssuedOrder'
1530
+ }
1531
+ this.$resetpost('rs/logic/allExportExcel', {data: data}, {resolveMsg: null, rejectMsg: '上传失败'}).then((res) => {
1532
+ if (res.data === 'no user') {
1533
+ this.$showAlert(`无匹配用户,无法导出对应excel`, 'warning', 2000)
1534
+ } else {
1535
+ var link = document.createElement('a')
1536
+ res.data.forEach((item) => {
1537
+ console.log('导出路径', item.filename)
1538
+ let path = item.filename
1539
+ // 本地
1540
+ // let pathName = "http://" + location.host + "/excel" + path.split('excel')[1]
1541
+ // 服务器
1542
+ let pathName = 'http://' + location.host + '/webapps' + path.split('webapps')[1]
1543
+ link.href = pathName
1544
+ console.log('=============================', path.split('excel/')[1])
1545
+ link.download = path.split('excel/')[1]
1546
+ link.dispatchEvent(new MouseEvent('click'))
1547
+ })
1548
+ }
1549
+ })
1550
+ },
1551
+ selfSearch (args) {
1552
+ this.meter_state = args.condition.includes('未下发')
1553
+ this.inputtor_change = args.condition.includes('未抄表')
1554
+ console.log('=====抄表1====', args.condition.includes('未抄表'))
1555
+ console.log('=====抄表1====', this.deletestate)
1556
+ if (args.condition.includes('未抄表')) {
1557
+ this.deletestate = true
1558
+ } else {
1559
+ this.deletestate = false
1560
+ }
1561
+ console.log('=====抄表1====', this.deletestate)
1562
+ if (!this.orgCondtionStr) {
1563
+ args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
1564
+ } else {
1565
+ args.condition = `${args.condition}` + this.orgCondtionStr
1566
+ }
1567
+
1568
+ // 抄表员查询条件
1569
+ this.inputtouPerson = this.$refs.paged.$refs.criteria.model.f_inputtor
1570
+ if (this.inputtouPerson.length !== 0) {
1571
+ let str = JSON.stringify(this.inputtouPerson)
1572
+ str = str.replace(/"/g, `'`)
1573
+ str = str.replace(/\[/g, ``)
1574
+ str = str.replace(/\]/g, ``)
1575
+ console.log('=====抄表员model22222222222绑定====', str)
1576
+ // 查询多个抄表员时条件
1577
+ args.condition += ` and f_inputtor in ( ${str} )`
1578
+ }
1579
+ // 小区查询条件
1580
+ this.area = this.$refs.paged.$refs.criteria.model.f_residential_area
1581
+ console.log('=====小区model绑定====', this.area)
1582
+ if (this.area.length !== 0) {
1583
+ let str = JSON.stringify(this.area)
1584
+ str = str.replace(/"/g, `'`)
1585
+ str = str.replace(/\[/g, ``)
1586
+ str = str.replace(/\]/g, ``)
1587
+ console.log('=====小区model22222222222绑定====', str)
1588
+ // 查询多个小区时条件
1589
+ args.condition += ` and f_residential_area in ( ${str} )`
1590
+ }
1591
+
1592
+ if (args.model.f_meter_brand && args.model.f_meter_brand.length > 0) {
1593
+ if (args.model.f_meter_brand[0].f_meter_brand) {
1594
+ args.condition = `${args.condition} and f_meter_brand = '${args.model.f_meter_brand[0].f_meter_brand}'`
1595
+ }
1596
+ }
1597
+ this.model.params.startDate = this.$refs.paged.$refs.criteria.model.startDate
1598
+ this.model.params.endDate = this.$refs.paged.$refs.criteria.model.endDate
1599
+ this.condition2 = args.condition
1600
+ console.log('selfsearch..', args.condition, this.model)
1601
+ this.model.search(args.condition, this.model)
1602
+ },
1603
+ reflash () {
1604
+ this.$refs.paged.$refs.criteria.model.f_orgid = `${Vue.$login.f.orgid}`
1605
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStartAndEndDateString()[0]
1606
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStartAndEndDateString()[1]
1607
+ this.search()
1608
+ },
1609
+ beforenter (index, row) {
1610
+ this.inputid = index + 1
1611
+ // 限制本次抄表不能低于上次
1612
+ if (row.f_tablebase) {
1613
+ if (row.f_tablebase < 0) {
1614
+ row.state = '失败'
1615
+ Vue.set(row, 'error', '底数不能小于0')
1616
+ this.speckText('底数不能小于0,请注意!')
1617
+ } else if (row.f_tablebase - parseInt(row.f_tablebase) !== 0) {
1618
+ row.state = '失败'
1619
+ Vue.set(row, 'error', '底数只能输入整数')
1620
+ this.speckText('底数只能输入整数,请注意!')
1621
+ } else if (row.f_tablebase < row.f_last_tablebase && !row.f_capacity) {
1622
+ row.state = '失败'
1623
+ Vue.set(row, 'error', '本期表底数不能低于上期表底数')
1624
+ this.speckText('本期表底数不能低于上期表底数,请注意!')
1625
+ } else {
1626
+ if (row.f_tablebase < row.f_last_tablebase) {
1627
+ this.$showMessage('本次抄表已超越最大量程, 请熟知!')
1628
+ }
1629
+ // 抄表结果状态没选默认给正常
1630
+ row.f_result_state = row.f_result_state ? row.f_result_state : '正常'
1631
+ beforenterGen(this, index, row)
1632
+ }
1633
+ }
1634
+ },
1635
+ enter (index, row) {
1636
+ console.log('录入数据。..', row)
1637
+ let auditFlag = false
1638
+ let num = (row.f_tablebase - row.f_last_tablebase)
1639
+ let reg = /^\d+,\d+$/
1640
+ if (row.f_user_type === '民用' && this.usermlimit) {
1641
+ if (!reg.test(this.usermlimit)) {
1642
+ this.$showMessage('民用自动审核区间参数设置有误, 请检查!')
1643
+ return
1644
+ }
1645
+ let limit = this.usermlimit.split(',')
1646
+ if (!(limit[0] - 0 <= num && num <= limit[1] - 0)) {
1647
+ auditFlag = true
1648
+ }
1649
+ } else if (row.f_user_type === '非民用' && this.userfmlimit) {
1650
+ if (!reg.test(this.userfmlimit)) {
1651
+ this.$showMessage('非民用自动审核区间参数设置有误, 请检查!')
1652
+ return
1653
+ }
1654
+ let limit = this.userfmlimit.split(',')
1655
+ if (!(limit[0] - 0 <= num && num <= limit[1] - 0)) {
1656
+ auditFlag = true
1657
+ }
1658
+ } else if (this.$appdata.getSingleValue('抄表审核') === '启用') {
1659
+ auditFlag = true
1660
+ }
1661
+ if (auditFlag) {
1662
+ let f_input_date = Vue.$login.toStandardDateString()
1663
+ if (row.f_input_date && row.f_input_date != '') {
1664
+ f_input_date = row.f_input_date
1665
+ }
1666
+ let handplan = {
1667
+ id: row.id,
1668
+ f_oughtamount: row.f_oughtamount,
1669
+ f_adjustment_volume: row.f_adjustment_volume ? row.f_adjustment_volume : 0,
1670
+ f_tablebase: row.f_tablebase,
1671
+ f_hand_date: row.f_hand_date,
1672
+ f_input_date: f_input_date,
1673
+ f_input_person: Vue.$login.f.name,
1674
+ f_meter_state: '待审核',
1675
+ f_meter_source: '手动录入',
1676
+
1677
+ f_operator: Vue.$login.f.name,
1678
+ f_operatorid: Vue.$login.f.id,
1679
+ f_orgid: Vue.$login.f.orgid,
1680
+ f_orgname: Vue.$login.f.orgs,
1681
+ f_depid: Vue.$login.f.depids,
1682
+ f_depname: Vue.$login.f.deps
1683
+
1684
+ }
1685
+ console.log('抄表负数。。0', handplan)
1686
+ this.$resetpost('rs/entity/t_handplan', handplan, {
1687
+ resolveMsg: null,
1688
+ rejectMsg: '抄表数据保存出错!!!'
1689
+ }).then((res) => {
1690
+ row.f_meter_state = '待审核'
1691
+ row.f_whether_pay = '否'
1692
+ row.f_input_date = res.data.f_input_date
1693
+ // this.search()
1694
+ }).catch((error) => {
1695
+ row.state = '失败'
1696
+ Vue.set(row, 'error', JSON.stringify(error))
1697
+ this.speckText('抄表录入出错,请注意!')
1698
+ })
1699
+ } else {
1700
+ // 没有启用抄表审核功能
1701
+ row.f_input_person = this.$login.f.name
1702
+ row.f_inputtor = row.f_inputtor
1703
+ row.f_userinfo_id = row.f_userinfo_id + ''
1704
+ row.f_userfiles_id = row.f_userfiles_id + ''
1705
+ this.pass(row)
1706
+ }
1707
+ },
1708
+ pass (row) {
1709
+ let param = {
1710
+ f_meter_classify: row.f_meter_classify,
1711
+ f_meter_brand: row.f_meter_brand,
1712
+ f_hand_id: row.id,
1713
+ f_operator: Vue.$login.f.name,
1714
+ f_tablebase: row.f_tablebase,
1715
+ f_userinfo_id: row.f_userinfo_id,
1716
+ f_adjustment_volume: row.f_adjustment_volume ? row.f_adjustment_volume : 0
1717
+ }
1718
+ this.$resetpost('rs/logic/sale_commonEnter', {data: param}, {resolveMsg: null, rejectMsg: null}).then((res) => {
1719
+ row.f_meter_state = res.data.f_meter_state
1720
+ row.f_whether_pay = res.data.f_whether_pay
1721
+ row.f_oughtfee = res.data.f_oughtfee
1722
+ row.f_oughtamount = res.data.f_oughtamount
1723
+ // this.$resetpost('rs/logic/getMeterSms', {data: param}, {resolveMsg: null, rejectMsg: null}).then((res) => {
1724
+ // this.search()
1725
+ let f_result_state = '正常'
1726
+ if (row.f_result_state && row.f_result_state != '') {
1727
+ f_result_state = row.f_result_state
1728
+ }
1729
+ let f_input_date = ''
1730
+ if (row.f_input_date && row.f_input_date != '') {
1731
+ f_input_date = ` ,f_input_date = '${row.f_input_date}'`
1732
+ }
1733
+ let sqldata = `update t_handplan set f_result_state = '${f_result_state}' ${f_input_date} where id = '${row.id}'`
1734
+ this.$resetpost('rs/logic/runSQL', {data: {sql: sqldata}}, {resolveMsg: null, rejectMsg: '业务单号保存失败'})
1735
+ // }).catch((error) => {
1736
+ // row.state = '失败'
1737
+ // Vue.set(row, 'error', JSON.stringify(error))
1738
+ // this.speckText('抄表出错,请注意!')
1739
+ // })
1740
+ // this.search()
1741
+ }).catch((error) => {
1742
+ row.state = '失败'
1743
+ Vue.set(row, 'error', JSON.stringify(error))
1744
+ this.speckText('抄表出错,请注意!')
1745
+ })
1746
+ },
1747
+ nopass (row) {
1748
+ console.log('不通过。。。', row)
1749
+ let handplan = {
1750
+ id: row.id,
1751
+ f_oughtamount: 0,
1752
+ f_tablebase: 0,
1753
+ f_input_date: null,
1754
+ f_meter_state: '未抄表',
1755
+ f_meter_source: null
1756
+ }
1757
+ this.$resetpost('rs/entity/t_handplan', handplan, {
1758
+ resolveMsg: null,
1759
+ rejectMsg: '未通过,抄表数据返回未抄表保存出错!!!'
1760
+ }).then((res) => {
1761
+ row.f_tablebase = null
1762
+ row.f_meter_state = '未抄表'
1763
+ row.f_whether_pay = '否'
1764
+ this.search()
1765
+ }).catch((error) => {
1766
+ row.state = '失败'
1767
+ Vue.set(row, 'error', JSON.stringify(error))
1768
+ this.speckText('抄表录入出错,请注意!')
1769
+ })
1770
+ },
1771
+ clearError (row) {
1772
+ if (row.f_tablebase === 0) {
1773
+ row.f_tablebase = ''
1774
+ }
1775
+ Vue.set(row, 'error', null)
1776
+ },
1777
+ async speckText (str) {
1778
+ var url = 'http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text=' + encodeURI(str)
1779
+ await new Audio(url).play()
1780
+ this.err = str
1781
+ this.showerr = true
1782
+ this.paycodefocus()
1783
+ },
1784
+ closeerr () {
1785
+ this.showerr = false
1786
+ },
1787
+ fileUpload () {
1788
+ this.uploadshow = true
1789
+ },
1790
+ // 删除这条计划
1791
+ delectHand (row) {
1792
+ this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
1793
+ if (res === 'confirm') {
1794
+ this.$resetpost('rs/logic/deletePlan', {data: row}).then(() => {
1795
+ this.$dispatch('refresh', '删除计划', row)
1796
+ this.search()
1797
+ })
1798
+ }
1799
+ })
1800
+ },
1801
+ cancelHand4 (row) {
1802
+ this.examinerow = row
1803
+ this.examineshow = true
1804
+ this.examinetype = true
1805
+ },
1806
+ cancelHand2 (row) {
1807
+ if (this.config.examine) {
1808
+ let handdate = new Date(row.f_hand_date)
1809
+ console.log('获取月份', handdate.getMonth())
1810
+ let ima = new Date()
1811
+ console.log('获取月份', ima.getMonth())
1812
+ if (handdate.getMonth() == ima.getMonth()) {
1813
+ this.cancelHand3(row)
1814
+ } else {
1815
+ if (!this.$login.r.find(value => value == '抄表隔月冲正')) {
1816
+ this.$showMessage('当前登录用户没有隔月冲正权限, 请联系管理员!')
1817
+ } else {
1818
+ this.cancelHand3(row)
1819
+ }
1820
+ }
1821
+ } else {
1822
+ this.cancelHand3(row)
1823
+ }
1824
+ },
1825
+ async cancelHand5 () {
1826
+ let sqldata = `update t_handplan set f_audit_state ='已审核',f_audit_person='${this.$login.f.name}',
1827
+ f_audit_date='${this.$login.toStandardTimeString()}' where id ='${this.examinerow.id}'`
1828
+ await this.$resetpost('rs/logic/runSQL', {data: {sql: sqldata}}, {resolveMsg: null, rejectMsg: '更新收费记录订单号失败'})
1829
+
1830
+ this.cancelHand3(this.examinerow)
1831
+ },
1832
+ cancelHand3 (row) {
1833
+ // 抄表加入权限
1834
+ if (!this.$login.r.find(value => value == '机表抄表冲正')) {
1835
+ this.$showMessage('当前登录用户没有冲正权限, 请联系管理员!')
1836
+ return
1837
+ }
1838
+ // console.log('抄表冲正。、。。、', row)
1839
+ let param = {
1840
+ f_hand_id: row.id,
1841
+ operInfo: {
1842
+ f_operator: this.$login.f.name,
1843
+ f_operatorid: this.$login.f.id,
1844
+ f_orgid: this.$login.f.orgid,
1845
+ f_orgname: this.$login.f.orgs,
1846
+ f_depid: this.$login.f.depids,
1847
+ f_depname: this.$login.f.deps
1848
+ }
1849
+ }
1850
+ let url = 'rs/logic/sale_commonEnterCancel'
1851
+ this.$resetpost(url, {data: param}, {warnMsg: '确定对这条记录进行撤销吗?'}).then(() => {
1852
+ this.search()
1853
+ this.close()
1854
+ })
1855
+ },
1856
+ down (type, condition, data) {
1857
+ co(downGen(type, condition, data, this))
1858
+ },
1859
+ // 单条下发计划
1860
+ downHand (row) {
1861
+ console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + row.f_userfiles_id)
1862
+ this.down('single', `f_userfiles_id = '${row.f_userfiles_id}'`, row)
1863
+ },
1864
+ // 批量下发计划
1865
+ batchDownHand () {
1866
+ this.down('batch', this.model.condition, this.model.count)
1867
+ },
1868
+ // batchDownHand () {
1869
+ // this.condition = ''
1870
+ // let count = 0
1871
+ // for (let plan of this.plans){
1872
+ // if(plan.state){
1873
+ // this.condition = this.condition + plan.id + ','
1874
+ // count = count + 1
1875
+ // }
1876
+ // }
1877
+ // this.down('batch', `f_user_id in (${this.condition.substring(0,this.condition.length-1)})`,count)
1878
+ // },
1879
+ // allDownHand () {
1880
+ // this.down('all', this.model.condition, this.model.count)
1881
+ // },
1882
+
1883
+ validateDate () {
1884
+ let currentDown = new Date(this.downModel.downDate)
1885
+ console.log(new Date(this.$refs.paged.$refs.criteria.model.startDate))
1886
+ console.log(new Date(this.$refs.paged.$refs.criteria.model.endDate))
1887
+ return currentDown >= new Date(this.$refs.paged.$refs.criteria.model.startDate + ' 00:00:00') && currentDown <= new Date(this.$refs.paged.$refs.criteria.model.endDate + ' 23:59:59')
1888
+ },
1889
+
1890
+ async examineconfirm () {
1891
+ let sqldata = `update t_handplan set f_audit_state ='审核中',f_examinereason='${this.examinerow.f_examinereason}' where id ='${this.examinerow.id}'`
1892
+ await this.$resetpost('rs/logic/runSQL', {data: {sql: sqldata}}, {resolveMsg: null, rejectMsg: null})
1893
+ this.close()
1894
+ this.search()
1895
+ },
1896
+ // 关闭下发计划得弹出框
1897
+ close () {
1898
+ this.show = false
1899
+ this.inputtor_show = false
1900
+ this.downConfirm = false
1901
+ this.examineshow = false
1902
+ this.examinetype = false
1903
+ this.detailsShow = false
1904
+ this.priceModel = false
1905
+ // 初始化模态框数据
1906
+ this.initModal()
1907
+ if (this.uploadshow) {
1908
+ this.uploadshow = false
1909
+ // 讲选的文件清空
1910
+ this.$refs.file.$el.querySelector('input').value = ''
1911
+ }
1912
+ },
1913
+ initModal () {
1914
+ this.downModel = {
1915
+ downDate: Vue.$login.toStandardDateString(),
1916
+ downWay: 'downWithUserfiles',
1917
+ downInputtor: []
1918
+ }
1919
+ this.inputtorModel = {
1920
+ inputtor: [],
1921
+ reason: ''
1922
+ }
1923
+ },
1924
+ // 判断当前登陆人是不是子公司的人员
1925
+ isHead () {
1926
+ return this.$login.f.parent.parent.name.includes('统一资源管理')
1927
+ },
1928
+ sort (field, rule) {
1929
+ // 将所有排序方式设为不排序,实现相互排斥
1930
+ for (let key in this.orderFields) {
1931
+ if (key === field) {
1932
+ this.orderFields[key] = rule
1933
+ } else {
1934
+ this.orderFields[key] = 'no'
1935
+ }
1936
+ }
1937
+ // 如果新规则不排序,还原为默认排序
1938
+ if (rule === 'no') {
1939
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
1940
+ } else {
1941
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
1942
+ }
1943
+ this.search()
1944
+ },
1945
+ guid () {
1946
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
1947
+ let r = Math.random() * 16 | 0,
1948
+ v = c == 'x' ? r : (r & 0x3 | 0x8)
1949
+ return v.toString(16)
1950
+ })
1951
+ },
1952
+ computeAmount (event) {
1953
+ let money = event.target.value
1954
+ if (this.row.f_price_type === '固定气价') {
1955
+ let price = this.$refs.mix_price.model.f_price
1956
+ // 可以购买的总气量
1957
+ let purchaseSum = (money / price).toFixed(2)
1958
+ // 计算应抄底数
1959
+ this.should_base = (this.row.f_last_tablebase - 0) + (purchaseSum - 0)
1960
+ // 计算公式
1961
+ this.designFormulas = `${purchaseSum}X${price}`
1962
+ } else {
1963
+ let mydata = this.$refs.statir.mydata
1964
+ // 剩余1阶气量
1965
+ let surplus1 = (mydata.f_stair1ceiling - (mydata.f_hasuse1 > 0 ? mydata.f_hasuse1 : 0))
1966
+ // 把1阶买完的钱
1967
+ let price1 = surplus1 * mydata.f_stair1price
1968
+ // 剩余2阶气量
1969
+ let surplus2 = (mydata.f_stair2ceiling - mydata.f_stair1ceiling - (mydata.f_hasuse2 > 0 ? mydata.f_hasuse2 : 0)).toFixed(2)
1970
+ // 把2阶买完的钱
1971
+ let price2 = surplus2 * mydata.f_stair2price
1972
+ // 兼容一下
1973
+ if (this.$refs.statir.jt != 3) {
1974
+ this.$showMessage('暂不支持该气价类型的运算,请联系开发人员!')
1975
+ }
1976
+ // 开始计算
1977
+ // 可以购买各阶梯量
1978
+ let purchase1 = 0
1979
+ let purchase2 = 0
1980
+ let purchase3 = 0
1981
+ if (money <= price1) {
1982
+ purchase1 = (money / mydata.f_stair1price).toFixed(2)
1983
+ } else if (money <= (price1 + price2)) {
1984
+ purchase1 = surplus1
1985
+ purchase2 = ((money - price1) / mydata.f_stair2price).toFixed(2)
1986
+ } else {
1987
+ purchase1 = surplus1
1988
+ purchase2 = surplus2
1989
+ purchase3 = ((money - price1 - price2) / mydata.f_stair3price).toFixed(2)
1990
+ }
1991
+ // 可以购买的总气量
1992
+ let purchaseSum = (purchase1 - 0) + (purchase2 - 0) + (purchase3 - 0)
1993
+ // 计算应抄底数
1994
+ this.should_base = (this.row.f_last_tablebase - 0) + purchaseSum
1995
+ // 计算公式
1996
+ this.designFormulas = `${purchase1}X${mydata.f_stair1price} + ${purchase2}X${mydata.f_stair2price} + ${purchase3}X${mydata.f_stair3price}`
1997
+ }
1998
+ this.should_base = this.should_base.toFixed(2) - 0
1999
+ }
2000
+ },
2001
+ watch: {
2002
+ 'downModel.downWay' (val) {
2003
+ if (val === 'downWithSelf') {
2004
+ console.log('抄表员。。', this.inputtores2)
2005
+ if (this.inputtores2.length > 0) {
2006
+ this.downModel.downInputtor = [this.inputtores2[0].value]
2007
+ }
2008
+ }
2009
+ },
2010
+ 'detailsShow' (val) {
2011
+ if (!val) {
2012
+ this.should_base = 0
2013
+ this.designFormulas = null
2014
+ this.$els.inputmoney.value = 0
2015
+ }
2016
+ }
2017
+ // 'model.rows'(val){
2018
+ // console.log('页面切换',val)
2019
+ // if(this.isChooseAll(val)){
2020
+ // this.all = true
2021
+ // }else{
2022
+ // this.all = false
2023
+ // }
2024
+ // },
2025
+ },
2026
+ computed: {
2027
+ danhutitle () {
2028
+ return '单户抄表 当前计划年月:' + this.downModel.downDate
2029
+ },
2030
+ getCondition () {
2031
+ // return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
2032
+ return {
2033
+ startDate: this.$refs.paged.$refs.criteria.model.startDate,
2034
+ endDate: this.$refs.paged.$refs.criteria.model.endDate,
2035
+ orderitem: this.orderDefault ? this.orderDefault : 'id',
2036
+ condition: this.condition2
2037
+ }
2038
+ },
2039
+
2040
+ inputtores () {
2041
+ // 获取抄表员
2042
+ console.log('获取抄表员', this.$login.f)
2043
+ let rs = []
2044
+ if (this.$login.f.f_gasman.length > 0) {
2045
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
2046
+ let temp = {
2047
+ label: this.$login.f.f_gasman[i].name,
2048
+ value: this.$login.f.f_gasman[i].name
2049
+ }
2050
+ rs.push(temp)
2051
+ }
2052
+ }
2053
+ this.inputtores2 = rs
2054
+ return [...rs]
2055
+ },
2056
+ whetherpaies () {
2057
+ return [
2058
+ {label: '全部', value: ''},
2059
+ {label: '已缴费', value: '是'},
2060
+ {label: '未缴费', value: '否'}
2061
+ ]
2062
+ },
2063
+ // 界面细节权限
2064
+ jurisdiction () {
2065
+ console.log('抄表界面细节', this.$login.r)
2066
+ return this.$login.r ? this.$login.r : []
2067
+ },
2068
+ firestates () {
2069
+ return [
2070
+ {label: '全部', value: ''},
2071
+ {label: '已点火', value: '1'},
2072
+ {label: '未点火', value: '0'}
2073
+ ]
2074
+ },
2075
+ ischecked () {
2076
+ return function (row) {
2077
+ for (let plan of this.plans) {
2078
+ if (plan.id == row.f_userfiles_id) {
2079
+ return plan.state
2080
+ }
2081
+ }
2082
+ }
2083
+ }
2084
+ },
2085
+ events: {
2086
+ onFileUpload: async function (file, res) {
2087
+ if (this.upshow) {
2088
+ let uuid = this.guid()
2089
+ let data = {
2090
+ model: {
2091
+ f_operator: this.$login.f.name,
2092
+ f_end_date: this.$login.nextMonth20(this.$login.toStandardTimeString()),
2093
+ f_operatorid: this.$login.f.id,
2094
+ f_orgid: this.$login.f.orgid,
2095
+ f_orgname: this.$login.f.orgs,
2096
+ f_depid: this.$login.f.depids,
2097
+ f_depname: this.$login.f.deps
2098
+ },
2099
+ uuid: uuid,
2100
+ filepath: res.f_downloadpath
2101
+ }
2102
+ try {
2103
+ await this.HttpReset.load('POST', 'rs/logic/batchSettleFileupdate', data, {resolveMsg: null, rejectMsg: null}, 1000)
2104
+ } catch (e) {}
2105
+ this.$showAlert(`文件上传成功,正在后台批量结算, 请耐心等待结果......`, 'success')
2106
+ // 启动定时器定时查询上传结果
2107
+ let timer = setInterval(async () => {
2108
+ let res = await this.HttpReset.load('POST', 'rs/logic/getBatchOperaPro', {data: {uuid: uuid}}, {resolveMsg: null, rejectMsg: null})
2109
+ console.log('查询进度返回: ', res)
2110
+ if (res.data.msg || res.data.error) {
2111
+ res.data.msg ? this.$showAlert(`${res.data.msg}`, 'success', 2000) : this.$showAlert(`${res.data.error}`, 'danger')
2112
+ this.upshow = false
2113
+ this.search()
2114
+ clearInterval(timer)
2115
+ }
2116
+ }, 5000)
2117
+ return
2118
+ }
2119
+ let data = {
2120
+ model: {
2121
+ f_operator: this.$login.f.name,
2122
+ f_end_date: this.$login.nextMonth20(this.$login.toStandardTimeString())
2123
+ },
2124
+ filepath: res.path
2125
+ }
2126
+ if (res.f_downloadpath.includes('抄表数据')) {
2127
+ console.log('进入了抄表上传')
2128
+ let data1 = {
2129
+ filepath: res.f_downloadpath
2130
+ }
2131
+ this.$resetpost('rs/logic/upLoadHand', data1, {resolveMsg: null, rejectMsg: '上传失败'}, 0).then((res) => {
2132
+ // console.log('终于成功了', res)
2133
+ this.upshow = false
2134
+ // this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条, 未抄下发${res.data.nohandnum}条, 失败下发${res.data.failednum}条, 异常下发${res.data.exceptionnum}条`, 'success', 2000)
2135
+ // this.$parent.search()
2136
+ })
2137
+ } else if (data.filepath.includes('先锋')) {
2138
+ this.$resetpost('rs/logic/xfimport', data, {resolveMsg: null, rejectMsg: '上传失败'}, 0).then((res) => {
2139
+ // console.log('终于成功了', res)
2140
+ this.uploadshow = false
2141
+ this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条, 未抄下发${res.data.nohandnum}条, 失败下发${res.data.failednum}条, 异常下发${res.data.exceptionnum}条`, 'success', 2000)
2142
+ this.$parent.search()
2143
+ })
2144
+ } else if (data.filepath.includes('伦力')) {
2145
+ this.$resetpost('rs/logic/llimport', data, {resolveMsg: null, rejectMsg: '上传失败'}, 0).then((res) => {
2146
+ // console.log('终于成功了', res)
2147
+ this.uploadshow = false
2148
+ this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条, 未抄下发${res.data.nohandnum}条, 失败下发${res.data.failednum}条, 异常下发${res.data.exceptionnum}条`, 'success', 2000)
2149
+ this.$parent.search()
2150
+ })
2151
+ }
2152
+ },
2153
+ dblclick: function (row, index) {
2154
+ this.row = row
2155
+ this.detailsShow = true
2156
+ }
2157
+ }
2158
+ }
2159
+ </script>
2160
+ <style lang="less">
2161
+ #handManager {
2162
+ display: flex;
2163
+ justify-content: space-around;
2164
+ align-items: center;
2165
+
2166
+ .btn {
2167
+ margin: 0px;
2168
+ }
2169
+
2170
+ .hand-loading {
2171
+ border: 3px solid #ccc;
2172
+ border-right-color: #337ab7;
2173
+ border-radius: 50%;
2174
+ animation: spin 0.6s linear;
2175
+ position: absolute;
2176
+ animation-iteration-count: infinite;
2177
+ top: 0;
2178
+ right: 50%;
2179
+ z-index: 2;
2180
+ display: block;
2181
+ width: 28px;
2182
+ height: 28px;
2183
+ line-height: 28px;
2184
+ text-align: center;
2185
+ pointer-events: none;
2186
+ }
2187
+
2188
+ @keyframes spin {
2189
+ 100% {
2190
+ transform: rotate(360deg);
2191
+ }
2192
+ }
2193
+ .detail-panel {
2194
+ text-align: center;
2195
+ color: #31708f;
2196
+ background-color: #e8f1f9;
2197
+ border-color: #F2F6FA;
2198
+ }
2199
+ }
2200
+
2201
+ #hand_manager_grid {
2202
+ thead {
2203
+ position: relative;
2204
+ z-index: 2;
2205
+ }
2206
+ }
2207
+ #machineHandManager {
2208
+ .color-red {
2209
+ color: red;
2210
+ }
2211
+ }
2212
+ </style>