sale-client 4.1.230 → 4.2.1-ronghao

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/build/dev-server.js +29 -46
  2. package/package.json +2 -2
  3. package/src/App.vue +3 -3
  4. package/src/components/FilesManage/UserGeneralInfoTest.vue +4 -4
  5. package/src/components/FilesManageNew/FileUserFiles.vue +2 -4
  6. package/src/components/FilesManageNew/MeterinfoTest.vue +9 -9
  7. package/src/components/FilesManageNew/UserEssentialInfoTest.vue +201 -227
  8. package/src/components/FilesManageNew/UserGeneralInfoTest.vue +0 -2
  9. package/src/components/charge/business/CardMeterCenter.vue +1 -1
  10. package/src/components/charge/business/FilesComplete.vue +3 -3
  11. package/src/components/charge/business/IOTMeterCenter.vue +1 -1
  12. package/src/components/charge/business/OtherChargeNew.vue +68 -48
  13. package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +10 -1
  14. package/src/components/common/userinfo_detail/ic_detail/CardHandRecord.vue +1 -1
  15. package/src/components/common/userinfo_detail/ic_detail/ChangeMeterQueryUser.vue +1 -1
  16. package/src/components/common/userinfo_detail/ic_detail/GarbageRecordList.vue +69 -0
  17. package/src/components/common/userinfo_detail/ic_detail/InsuranceChargesRecord.vue +384 -0
  18. package/src/components/common/userinfo_detail/ic_detail/WebHandQueryUser.vue +1 -1
  19. package/src/components/revenue/Common/MeterMessage.vue +1 -1
  20. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  21. package/src/components/revenue/HandManager/WebHand.vue +7 -4
  22. package/src/components/revenue/base/leftview/SafeCheck.vue +41 -3
  23. package/src/components/revenue/base/leftview/UserFeeInfo.vue +76 -0
  24. package/src/components/revenue/base/leftview/otherinfo.vue +1 -0
  25. package/src/components/revenue/base/rightview/CardList.vue +7 -3
  26. package/src/components/revenue/batchDeduction/batchDeductionList.vue +1 -1
  27. package/src/components/revenue/cardHandManage/cardDown.vue +18 -0
  28. package/src/components/revenue/changeInsurance/InsuranceAdd.vue +1 -0
  29. package/src/components/revenue/changeInsurance/InsuranceRecord.vue +2 -1
  30. package/src/components/revenue/comprehen/ComprehenOperation/BankPayment/BankPayment.vue +1 -1
  31. package/src/components/revenue/comprehen/ComprehenOperation/GiftFee/icTable.vue +4 -2
  32. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  33. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  34. package/src/components/revenue/comprehen/Maintenance/revenue/MeterOperatemain.vue +2 -2
  35. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  36. package/src/components/revenue/machineHandManage/HandplanQuery.vue +1 -1
  37. package/src/components/revenue/machineHandManage/machineHand.vue +3 -2
  38. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  39. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  40. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  41. package/src/filiale/bayan/StockListmain.vue +543 -543
  42. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  43. package/src/filiale/dexin/MeterinfoTest.vue +1239 -0
  44. package/src/filiale/dexin/UserEssentialInfoTest.vue +602 -0
  45. package/src/filiale/dexin/sale.js +5 -0
  46. package/src/filiale/fugou/MeterinfoTest.vue +1 -1
  47. package/src/filiale/jiaxian/AutomaticPurse.vue +349 -0
  48. package/src/filiale/jiaxian/ChangeMeterQueryUser.vue +303 -0
  49. package/src/filiale/jiaxian/ChangeRecord.vue +44 -2
  50. package/src/filiale/jiaxian/FillCardQueryUser.vue +250 -0
  51. package/src/filiale/jiaxian/FillGasQueryUser.vue +270 -0
  52. package/src/filiale/jiaxian/OtherChargeQueryUser.vue +305 -0
  53. package/src/filiale/jiaxian/PriceAdjustmentQueryUser.vue +368 -0
  54. package/src/filiale/jiaxian/PriceChangeQueryUser.vue +243 -0
  55. package/src/filiale/jiaxian/QueryInstruct.vue +436 -0
  56. package/src/filiale/jiaxian/RecordQueryUser.vue +321 -0
  57. package/src/filiale/jiaxian/Repurchase.vue +181 -0
  58. package/src/filiale/jiaxian/TransferQueryUser.vue +274 -0
  59. package/src/filiale/jiaxian/UserInfoDetailManageNew.vue +11 -11
  60. package/src/filiale/jiaxian/Userinfo.vue +426 -0
  61. package/src/filiale/jiaxian/WatchCollection.vue +54 -1
  62. package/src/filiale/jiaxian/WebAutomaticPurse.vue +348 -0
  63. package/src/filiale/jiaxian/contractSigningList.vue +149 -0
  64. package/src/filiale/jiaxian/sale.js +5 -0
  65. package/src/filiale/jinhong/AutoAccountsDetail.vue +63 -0
  66. package/src/filiale/jinhong/CardList.vue +572 -0
  67. package/src/filiale/jinhong/CardMeterCenter.vue +1 -1
  68. package/src/filiale/jinhong/CardMeterCenterInner.vue +61 -22
  69. package/src/filiale/jinhong/GarbageCharge.vue +1 -1
  70. package/src/filiale/jinhong/HandplanQuery.vue +1430 -0
  71. package/src/filiale/jinhong/IOTMeterCenterInner.vue +42 -14
  72. package/src/filiale/jinhong/InsuranceAdd.vue +27 -5
  73. package/src/filiale/jinhong/InsuranceChargesDetails.vue +11 -5
  74. package/src/filiale/jinhong/InsuranceRecord.vue +4 -5
  75. package/src/filiale/jinhong/InsuranceTemp.vue +33 -5
  76. package/src/filiale/jinhong/MachineChargeService.js +8 -0
  77. package/src/filiale/jinhong/MachineMeterCenter.vue +38 -11
  78. package/src/filiale/jinhong/ShowCardSellGasInner.vue +46 -14
  79. package/src/filiale/jinhong/Userinfo.vue +75 -1
  80. package/src/filiale/jinhong/insuranceGuanL.vue +349 -0
  81. package/src/filiale/jinhong/machineDown.vue +1205 -0
  82. package/src/filiale/jinhong/sale.js +9 -0
  83. package/src/filiale/jinhuang/UserInfoDetailManageNew.vue +259 -0
  84. package/src/filiale/jinhuang/WebHand.vue +1026 -0
  85. package/src/filiale/jinhuang/WebHandQueryUser.vue +413 -0
  86. package/src/filiale/jinhuang/cardsHand.vue +911 -0
  87. package/src/filiale/jinhuang/sale.js +8 -0
  88. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  89. package/src/filiale/lixianV3/InsuranceAdd.vue +1 -0
  90. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  91. package/src/filiale/meihekou/CardMeterCenter.vue +991 -0
  92. package/src/filiale/meihekou/ChargeManage.vue +3 -2
  93. package/src/filiale/meihekou/ChargeOper.vue +279 -169
  94. package/src/filiale/meihekou/HandManager.vue +57 -2
  95. package/src/filiale/meihekou/NoCardMeterCenter.vue +542 -0
  96. package/src/filiale/meihekou/OverUseCharge.vue +1 -1
  97. package/src/filiale/meihekou/PrintBill.vue +48 -41
  98. package/src/filiale/meihekou/ReissueBill.vue +4 -1
  99. package/src/filiale/meihekou/ShowCardSellGas.vue +935 -0
  100. package/src/filiale/meihekou/TransferManage.vue +704 -0
  101. package/src/filiale/meihekou/Userinfo.vue +233 -5
  102. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  103. package/src/filiale/meihekou/icTable.vue +233 -0
  104. package/src/filiale/meihekou/machineHand.vue +2158 -0
  105. package/src/filiale/meihekou/manualChargeCenter.vue +394 -0
  106. package/src/filiale/meihekou/meterTable.vue +220 -0
  107. package/src/filiale/meihekou/sale.js +15 -0
  108. package/src/filiale/qianneng/MeterMessage.vue +1 -1
  109. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  110. package/src/filiale/rizhao/InsuranceAdd.vue +1 -0
  111. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  112. package/src/filiale/ronghao/CardList.vue +19 -17
  113. package/src/filiale/ronghao/CardMeterChargeCancel.vue +5 -0
  114. package/src/filiale/ronghao/CardService.js +2144 -2144
  115. package/src/filiale/ronghao/ChangeMeterService.js +1 -1
  116. package/src/filiale/ronghao/ChargeList.vue +17 -17
  117. package/src/filiale/ronghao/ChargeManage.vue +325 -0
  118. package/src/filiale/ronghao/ChargeOper.vue +330 -0
  119. package/src/filiale/ronghao/FilesManageNew/UserEssentialInfoTest.vue +457 -0
  120. package/src/filiale/ronghao/FilesManageNew/UserGeneralInfoTest.vue +690 -0
  121. package/src/filiale/ronghao/HandplanQuery.vue +13 -14
  122. package/src/filiale/ronghao/IOTMeterCenter.vue +15 -6
  123. package/src/filiale/ronghao/InsuranceAdd.vue +1 -0
  124. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  125. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  126. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  127. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  128. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  129. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  130. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  131. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  132. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  133. package/src/filiale/ronghao/Upload.vue +654 -654
  134. package/src/filiale/ronghao/Userinfo.vue +18 -18
  135. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  136. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  137. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  138. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  139. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  140. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  141. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  142. package/src/filiale/ronghao/machineRefund.vue +3 -1
  143. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  144. package/src/filiale/ronghao/sale.js +11 -0
  145. package/src/filiale/ronghao/specificInformation.vue +537 -537
  146. package/src/filiale/ronghao/uploadFilesHistory.vue +214 -0
  147. package/src/filiale/ruihua/FilesManage/MeterinfoTest.vue +10 -0
  148. package/src/filiale/shanxian/components/revenue/InsuranceAdd.vue +1 -0
  149. package/src/filiale/wuan/MeterMessage.vue +1 -1
  150. package/src/filiale/yangchun/BasicLivingList.vue +281 -0
  151. package/src/filiale/yangchun/BlackList/BlackRecordQuery.vue +1 -0
  152. package/src/filiale/yangchun/CardChangeFill.vue +1 -1
  153. package/src/filiale/yangchun/ChargeList.vue +954 -954
  154. package/src/filiale/yangchun/FilesManage/UserPaperInfoTest.vue +3 -3
  155. package/src/filiale/yangchun/NewMeterList.vue +742 -0
  156. package/src/filiale/yangchun/sale.js +3 -0
  157. package/src/filiale/yuncheng/CardList.vue +1 -1
  158. package/src/filiale/yuncheng/IndustryCommerceHand.vue +1145 -0
  159. package/src/filiale/yuncheng/IndustryCommerceHandAudit.vue +794 -0
  160. package/src/filiale/yuncheng/IndustryCommerceHandManager.vue +64 -0
  161. package/src/filiale/yuncheng/InsuranceAdd.vue +1 -0
  162. package/src/filiale/yuncheng/MeterBookUser.vue +781 -0
  163. package/src/filiale/yuncheng/UserDeviceInfoTest.vue +2 -2
  164. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  165. package/src/filiale/yuncheng/industryDown.vue +1118 -0
  166. package/src/filiale/yuncheng/sale.js +11 -0
  167. package/src/filiale/yuncheng/uploadFilesHistory.vue +185 -0
  168. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  169. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  170. package/src/plugins/CardService.js +2217 -2217
  171. package/src/sale.js +3 -1
@@ -0,0 +1,1239 @@
1
+ <template>
2
+ <div class="auto" id="meterInfoTest">
3
+ <validator name='m' @valid="mValid(true)" @invalid="mValid(false)">
4
+ <form class="form-horizontal select-overspread ">
5
+ <div style="margin-top: 2%;">
6
+ <a style="font-size: 16px;font-weight: 500;">表具信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
7
+ </div>
8
+ <div class="row" >
9
+ <div class="col-sm-4 form-group" :class="[$m.brand.required ? 'has-error' : '']">
10
+ <label for="gasbrand" class="font_normal_body">气表品牌</label>
11
+ <input type="text" class="input_search" style="width:60%" v-show="false" v-model="$refs.brand.selectedItems"
12
+ v-validate:brand='{required: true }'>
13
+ <v-select :value.sync="row.gasbrand" :options='meterbrands' placeholder='气表品牌' close-on-select
14
+ search @change='brandChange' v-model='row.gasbrand' v-ref:brand></v-select>
15
+ </div>
16
+ <div class="col-sm-4 form-group" :class="[$m.model.required ? 'has-error' : '']">
17
+ <label for="gasmodel" class="font_normal_body">气表型号</label>
18
+ <input type="text" v-show="false" v-model="$refs.model.selectedItems"
19
+ v-validate:model='{required: true }'>
20
+ <v-select :value.sync="row.gasmodel" :options='row.gasbrand[0].gasmodel' placeholder='气表型号'
21
+ close-on-select
22
+ v-model='row.gasmodel' :disabled="row.gasbrand.length === 0" v-ref:model></v-select>
23
+ </div>
24
+
25
+ <div class="col-sm-4 form-group" :class="[$m.f_meternumber.required ? 'has-error' : '']">
26
+ <label for="f_meternumber" class="font_normal_body">&ensp;表&emsp;&emsp;号</label>
27
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
28
+ @blur="meternumberValidate()" placeholder='表号' v-validate:f_meternumber='{required: true }'
29
+ v-next-el="{id: 'metertitles'}" :disabled="meterNumberDisabled && meterChangeDisabled">
30
+ </div>
31
+ <!-- <div class="col-sm-4 form-group" v-else>-->
32
+ <!-- <label for="f_meternumber" class="font_normal_body">&ensp;表&emsp;&emsp;号</label>-->
33
+ <!-- <input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"-->
34
+ <!-- @blur="meternumberValidate()" placeholder='表号'-->
35
+ <!-- v-next-el="{id: 'metertitles'}">-->
36
+ <!-- </div>-->
37
+ <div class="col-sm-4 form-group" :class="[$m.f_defendcard.required ? 'has-error' : '']"
38
+ v-show="(formconfig && formconfig.f_defendcard && formconfig.f_defendcard.required) || !onlyshowmust"
39
+ v-if="getConfigShowItem('f_defendcard',false)">
40
+ <label class="font_normal_body">防盗卡号1</label>
41
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_defendcard"
42
+ v-validate:f_defendcard=getConfigValidate("f_defendcard",false)
43
+ :value.sync="row.f_defendcard"
44
+ placeholder='防盗卡号1' >
45
+ </div>
46
+ <div class="col-sm-4 form-group" :class="[$m.f_defendcard_two.required ? 'has-error' : '']"
47
+ v-show="(formconfig && formconfig.f_defendcard_two && formconfig.f_defendcard_two.required) || !onlyshowmust"
48
+ v-if="getConfigShowItem('f_defendcard_two',false)">
49
+ <label class="font_normal_body">防盗卡号2</label>
50
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_defendcard_two"
51
+ v-validate:f_defendcard_two=getConfigValidate("f_defendcard_two",false)
52
+ :value.sync="row.f_defendcard_two"
53
+ placeholder='防盗卡号2' >
54
+ </div>
55
+ <div class="col-sm-4 form-group" :class="[$m.f_metertitles.required ? 'has-error' : '']"
56
+ v-show="(formconfig && formconfig.f_metertitles && formconfig.f_metertitles.required) || !onlyshowmust"
57
+ v-if="getConfigShowItem('f_metertitles')">
58
+ <label for="f_metertitles" class="font_normal_body">&ensp;表&ensp;封&ensp;号</label>
59
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_metertitles" placeholder='表封号'
60
+ v-next-el="{id: 'meterbase'}">
61
+ </div>
62
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_table_state')"
63
+ v-show="(formconfig && formconfig.f_table_state && formconfig.f_table_state.required) || !onlyshowmust">
64
+ <label for="f_metertitles" class="font_normal_body">表具状态</label>
65
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_table_state" placeholder='表具状态' disabled>
66
+ </div>
67
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_meter_base')"
68
+ v-show="(formconfig && formconfig.f_meter_base && formconfig.f_meter_base.required) || !onlyshowmust">
69
+ <label for="f_meter_base" class="font_normal_body">&ensp;表&ensp;读&ensp;数</label>
70
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_meter_base" placeholder='表底数'
71
+ :disabled="!jurisdiction.includes('档案信息查询修改')" :readonly="!row.f_userfiles_id"
72
+ v-on:keyup="validateInput($event, 'f_meter_base')" >
73
+ </div>
74
+ <div class="col-sm-4 form-group" title="涉及权限:【档案信息查询修改】" v-if="getConfigShowItem('f_initial_base')"
75
+ v-show="(formconfig && formconfig.f_initial_base && formconfig.f_initial_base.required) || !onlyshowmust">
76
+ <label for="f_meter_base" class="font_normal_body">&ensp;初始底数</label>
77
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_initial_base" placeholder='表底数'
78
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_initial_base')">
79
+ </div>
80
+
81
+ <div class="col-sm-4 form-group" title="涉及权限:【档案信息查询修改】" v-if="getConfigShowItem('f_total_gas')"
82
+ v-show="(formconfig && formconfig.f_total_gas && formconfig.f_total_gas.required) || !onlyshowmust">
83
+ <label for="f_meter_base" class="font_normal_body">&ensp;累购气量</label>
84
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_total_gas" placeholder='累购气量'
85
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_total_gas')">
86
+ </div>
87
+ <div class="col-sm-4 form-group" title="涉及权限:【档案信息查询修改】" v-if="getConfigShowItem('f_write_totalgas')"
88
+ v-show="(formconfig && formconfig.f_write_totalgas && formconfig.f_write_totalgas.required) || !onlyshowmust">
89
+ <label for="f_meter_base" class="font_normal_body">表写卡累购气量</label>
90
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_write_totalgas" placeholder='表写卡累购气量'
91
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_write_totalgas')" >
92
+ </div>
93
+ <div class="col-sm-4 form-group" title="涉及权限:【档案信息查询修改】" v-if="getConfigShowItem('f_total_fee')"
94
+ v-show="(formconfig && formconfig.f_total_fee && formconfig.f_total_fee.required) || !onlyshowmust">
95
+ <label for="f_meter_base" class="font_normal_body">&ensp;累购金额</label>
96
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_total_fee" placeholder='累购金额'
97
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_total_fee')">
98
+ </div>
99
+ <div class="col-sm-4 form-group" title="涉及权限:【档案信息查询修改】" v-if="getConfigShowItem('f_write_totalfee')"
100
+ v-show="(formconfig && formconfig.f_write_totalfee && formconfig.f_write_totalfee.required) || !onlyshowmust">
101
+ <label for="f_meter_base" class="font_normal_body">表写卡累购金额</label>
102
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_write_totalfee" placeholder='表写卡累购金额'
103
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_write_totalfee')">
104
+ </div>
105
+ <div class="col-sm-4 form-group" v-show="row.f_meter_classify != '机表' && ((formconfig && formconfig.f_times && formconfig.f_times.required) || !onlyshowmust)" title="涉及权限:【档案信息查询修改】"
106
+ v-if="getConfigShowItem('f_times')">
107
+ <label for="f_times" class="font_normal_body">&ensp;写卡次数</label>
108
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_times" placeholder='写卡次数'
109
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_times')">
110
+ </div>
111
+ <div class="col-sm-4 form-group" v-show="row.f_meter_classify == '物联网表' && ((formconfig && formconfig.f_iot_times && formconfig.f_iot_times.required) || !onlyshowmust)" title="涉及权限:【档案信息查询修改】"
112
+ v-if="getConfigShowItem('f_iot_times')">
113
+ <label for="f_iot_times" class="font_normal_body">物联网次数</label>
114
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_iot_times" placeholder='物联网次数'
115
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_iot_times')">
116
+ </div>
117
+ <div class="col-sm-4 form-group" v-show="row.f_meter_classify == '物联网表' && ((formconfig && formconfig.f_alert_close_valve_threshold && formconfig.f_alert_close_valve_threshold.required) || !onlyshowmust)" title="涉及权限:【档案信息查询修改】"
118
+ v-if="getConfigShowItem('f_alert_close_valve_threshold')">
119
+ <label for="f_alert_close_valve_threshold" class="font_normal_body">警告关阀额度</label>
120
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_alert_close_valve_threshold" placeholder='警告关阀额度'
121
+ :disabled="!jurisdiction.includes('档案信息查询修改')" v-on:keyup="validateInput($event, 'f_alert_close_valve_threshold')">
122
+ </div>
123
+ <div class="col-sm-4 form-group" v-show="false">
124
+ <label for="f_remanent_gas" class="font_normal_body">剩余气量</label>
125
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_remanent_gas"
126
+ placeholder='剩余气量'
127
+ :disabled="f_userinfo_id" v-on:keyup="validateInput($event, 'f_remanent_gas')"></input>
128
+ <!--<button type="button" name="button" class="btn btn-link" @click="modefiy('f_remanent_gas')" v-if="f_userinfo_id">修改</button>-->
129
+ </div>
130
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_capacity')"
131
+ v-show="(formconfig && formconfig.f_capacity && formconfig.f_capacity.required) || !onlyshowmust">
132
+ <label for="f_times" class="font_normal_body">&ensp;最大量程</label>
133
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_capacity" placeholder='最大量程'
134
+ v-on:keyup="validateInput($event, 'f_capacity')">
135
+ </div>
136
+ <div class="col-sm-4 form-group" v-show="row.f_meter_classify == '物联网表' && (formconfig && formconfig.f_valve_state.required || !onlyshowmust)" v-if="getConfigShowItem('f_valve_state')">
137
+ <label for="gasmodel" class="font_normal_body">&ensp;阀门状态</label>
138
+ <v-select :value.sync="row.f_valve_state" :options='valvestate' placeholder='阀门状态' close-on-select
139
+ v-model='row.f_valve_state'></v-select>
140
+ </div>
141
+ <div class="col-sm-4 form-group"
142
+ v-show="row.gasbrand.length > 0 && row.gasbrand[0].f_meter_type == '物联网表' && row.gasbrand[0].f_hascard == '是' && (
143
+ (formconfig && formconfig.f_open_way && formconfig.f_open_way.required) || !onlyshowmust
144
+ )">
145
+ <label class="font_normal_body" title="开户方式">开户方式</label>
146
+ <v-select :value.sync="row.f_open_way" :options='openWay' value-single placeholder='开户方式' close-on-select v-if="row.f_userfiles_id"
147
+ search v-model='row.f_open_way' :disabled="curuser.f_user_state != '预备'"></v-select>
148
+ <v-select :value.sync="row.f_open_way" :options='openWay' value-single placeholder='开户方式' close-on-select v-else
149
+ search v-model='row.f_open_way' :disabled="false"></v-select>
150
+ </div>
151
+ <div class="col-sm-4 form-group" v-show="row.gasbrand.length > 0 && row.gasbrand[0].f_meter_brand.indexOf('集中器') !== -1
152
+ && ((formconfig && formconfig.f_concentrator_id && formconfig.f_concentrator_id.required) || !onlyshowmust)">
153
+ <label class="font_normal_body" title="集中器">集&ensp;中&ensp;器</label>
154
+ <v-select :value.sync="row.f_concentrator_id" :options='concentrators' value-single placeholder='集中器' close-on-select v-if="row.f_userfiles_id"
155
+ search v-model='row.f_concentrator_id' :disabled="true"></v-select>
156
+ <v-select :value.sync="row.f_concentrator_id" :options='concentrators' value-single placeholder='集中器' close-on-select v-else
157
+ search v-model='row.f_concentrator_id' :disabled="false"></v-select>
158
+ </div>
159
+ <div class="col-sm-4 form-group" v-if="(row.gasbrand.length > 0 && ((row.gasbrand[0].f_meter_type == '物联网表' && row.gasbrand[0].f_hascard == '是') || (row.f_meter_classify.includes('卡表'))) && row.f_user_id )">
160
+ <label class="font_normal_body">&ensp;卡&emsp;&emsp;号</label>
161
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_card_id" placeholder='卡号' @blur="checkCardId" :disabled="!jurisdiction.includes('卡号修改')">
162
+ </div>
163
+ <div class="col-sm-4 form-group" :class="[$m.f_force_measure.required ? 'has-error' : '']"
164
+ v-show="(formconfig && formconfig.f_force_measure && formconfig.f_force_measure.required) || !onlyshowmust"
165
+ v-if="getConfigShowItem('f_force_measure',false)">
166
+ <label class="font_normal_body">{{getConfigLabelName('f_force_measure','三项强制措施')}}</label>
167
+ <input type="text" v-model="$refs.measure.selectedItems" v-show="false"
168
+ v-validate:f_force_measure=getConfigValidate("f_force_measure",false)>
169
+ <v-select :value.sync="row.f_force_measure" v-model="row.f_force_measure"
170
+ :options='forceMeasure' placeholder='三项强制措施' :multiple="true"
171
+ v-ref:measure>
172
+ </v-select>
173
+ </div>
174
+ <div class="col-sm-4 form-group" :class="[$m.f_usetype.required ? 'has-error' : '']"
175
+ v-show="(formconfig && formconfig.f_usetype && formconfig.f_usetype.required) || !onlyshowmust"
176
+ v-if="getConfigShowItem('f_usetype')">
177
+ <label for="f_usetype" class="font_normal_body" title="参数:使用类型">&ensp;{{getConfigLabelName('f_usetype','使用类型')}}</label>
178
+ <input type="text" v-model="row.f_usetype" v-show="false"
179
+ v-validate:f_usetype=getConfigValidate("f_usetype",false)>
180
+ <v-select :value.sync="row.f_usetype" v-model="row.f_usetype"
181
+ :options='usetype' placeholder='使用类型'
182
+ close-on-select></v-select>
183
+ </div>
184
+ </div>
185
+ <div>
186
+ <a style="font-size: 16px;font-weight: 500;">气价信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
187
+ </div>
188
+ <div class="row">
189
+ <div class="col-sm-4 form-group" :class="[$m.name.required ? 'has-error' : '']">
190
+ <label for="pricename" class="font_normal_body">气价名称</label>
191
+ <v-select :value.sync="row.pricename" v-model="row.pricename" search
192
+ placeholder='气价名称' :options="getPricenames" @change="priceChange"
193
+ close-on-select :disabled="permissionPrice" v-ref:name></v-select>
194
+ <input type="text" v-show="false" v-model="$refs.name.selectedItems" v-validate:name='{required: true }'>
195
+ </div>
196
+ <div class="col-sm-4 form-group">
197
+ <label for="f_username" class="font_normal_body">&ensp;客户类型</label>
198
+ <v-select :value.sync="row.f_user_type"
199
+ :options='usertypes' placeholder='客户类型'
200
+ @change="userTypeChange()"
201
+ :disabled="true"
202
+ close-on-select></v-select>
203
+ </div>
204
+ <div class="col-sm-4 form-group"
205
+ :class="[$m.gas.required ? 'select-error' : '']">
206
+ <label for="f_username" class="font_normal_body">&ensp;用气性质</label>
207
+ <input type="text" v-show="false" v-model="$refs.gas.selectedItems" v-validate:gas='{required: true }'>
208
+ <v-select :value.sync="row.f_gasproperties" v-model="row.f_gasproperties"
209
+ :options='gasproperties' placeholder='用气性质'
210
+ :disabled="true"
211
+ close-on-select v-ref:gas></v-select>
212
+ </div>
213
+ <div class="col-sm-4 form-group">
214
+ <label for="f_detailprice" class="font_normal_body">&ensp;价&emsp;&emsp;格</label>
215
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_detailprice" placeholder='价格'
216
+ disabled>
217
+ </div>
218
+ <div class="col-sm-4 form-group" :class="[$m.type.required ? 'select-error' : '']">
219
+ <label for="pricetype" class="font_normal_body">&ensp;气价类型</label>
220
+ <v-select :value.sync="row.pricetype" v-model="row.pricetype"
221
+ placeholder='气价类型' :options="pricetypes"
222
+ :value-single="true"
223
+ :disabled="true"
224
+ close-on-select v-ref:type>
225
+ </v-select>
226
+ <input type="text" v-show="false" v-model="$refs.type.selectedItems" v-validate:type='{required: true }'>
227
+ </div>
228
+ <div class="col-sm-4 form-group">
229
+ <label class="font_normal_body">&ensp;气价备注</label>
230
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_price_comments" placeholder='气价备注' disabled>
231
+ </div>
232
+ </div>
233
+ <div>
234
+ <a style="font-size: 16px;font-weight: 500;">表具其他信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
235
+ </div>
236
+ <div class="row">
237
+ <div class="col-sm-4 form-group" v-show="(row.f_gasproperties=='工业'||row.f_gasproperties=='工业用气') && (formconfig && formconfig.f_gongye_type.required || !onlyshowmust)"
238
+ :class="[$m.f_gongye_type.required ? 'has-error' : '']"
239
+ v-if="getConfigShowItem('f_gongye_type')">
240
+ <label for="f_gongye_type" class="font_normal_body" title="参数:工业备注">&ensp;{{getConfigLabelName('f_gongye_type','工业备注')}}</label>
241
+ <input type="text" v-show="false" v-model="row.f_gongye_type"
242
+ v-validate:f_gongye_type=getConfigValidate("f_gongye_type",false)>
243
+ <v-select :value.sync="row.f_gongye_type" v-model='row.f_gongye_type'
244
+ :options='gongyetype'
245
+ :placeholder="getConfigPlaceholder('f_gongye_type','工业备注')"
246
+ close-on-select
247
+ v-el:cc></v-select>
248
+ </div>
249
+ <div class="col-sm-4 form-group"
250
+ :class="[$m.f_aroundmeter.required ? 'has-error' : '']"
251
+ v-show="(formconfig && formconfig.f_aroundmeter && formconfig.f_aroundmeter.required) || !onlyshowmust"
252
+ v-if="getConfigShowItem('f_aroundmeter')">
253
+ <input type="text" v-show="false" v-model="row.f_aroundmeter"
254
+ v-validate:f_aroundmeter=true>
255
+ <label for="gasmodel" class="font_normal_body w2" style="width: auto;letter-spacing: 2em;margin-right: -2em;margin-left: -2em;">&ensp;{{getConfigLabelName('f_aroundmeter','表向')}}</label>
256
+ <v-select :value.sync="row.f_aroundmeter" :options='aroundmeters'
257
+ :placeholder="getConfigPlaceholder('f_aroundmeter','表向')"
258
+ close-on-select
259
+ v-model='row.f_aroundmeter'></v-select>
260
+ </div>
261
+ <div class="col-sm-4 form-group" :class="[$m.f_bqf_type.required ? 'has-error' : '']"
262
+ v-show="(formconfig && formconfig.f_bqf_type && formconfig.f_bqf_type.required) || !onlyshowmust"
263
+ v-if="getConfigShowItem('f_bqf_type')">
264
+ <label for="f_bqf_type" class="font_normal_body">{{getConfigLabelName('f_bqf_type','表前阀型号')}}</label>
265
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_bqf_type"
266
+ v-validate:f_bqf_type=getConfigValidate("f_bqf_type",false)
267
+ :placeholder="getConfigPlaceholder('f_bqf_type','表前阀型号')">
268
+ </div>
269
+ <div class="col-sm-4 form-group" :class="[$m.f_use_limit.required ? 'has-error' : '']"
270
+ v-show="(formconfig && formconfig.f_use_limit && formconfig.f_use_limit.required) || !onlyshowmust"
271
+ v-if="getConfigShowItem('f_use_limit')">
272
+ <label class="font_normal_body">表具使用年限</label>
273
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_use_limit"
274
+ v-validate:f_use_limit=getConfigValidate("f_use_limit",false)
275
+ :value.sync="row.f_use_limit"
276
+ placeholder='表具使用年限' >
277
+ </div>
278
+ <div class="col-sm-4 form-group" :class="[$m.f_gas_person.required ? 'has-error' : '']"
279
+ v-show="(formconfig && formconfig.f_gas_person && formconfig.f_gas_person.required) || !onlyshowmust"
280
+ v-if="getConfigShowItem('f_gas_person')">
281
+ <label for="f_gas_person" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em"
282
+ class="font_normal_body">&ensp;{{getConfigLabelName('f_gas_person','通气人')}}</label>
283
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_gas_person"
284
+ v-validate:f_gas_person=getConfigValidate("f_gas_person",false)
285
+ placeholder='通气人'></input>
286
+ </div>
287
+ <div class="col-sm-4 form-group" :class="[$m.f_gas_date.required ? 'has-error' : '']"
288
+ v-show="(formconfig && formconfig.f_gas_date && formconfig.f_gas_date.required) || !onlyshowmust"
289
+ v-if="getConfigShowItem('f_gas_date')">
290
+ <input type="text" v-model="$refs.f_gas_date.value" v-show="false"
291
+ v-validate:f_gas_date=getConfigValidate("f_gas_date",false)>
292
+ <label for="f_gas_date" class="font_normal_body">&ensp;{{getConfigLabelName('f_gas_date','通气日期')}}</label>
293
+ <datepicker style="width:60%" placeholder="通气日期"
294
+ v-model="row.f_gas_date"
295
+ v-ref:f_gas_date
296
+ @change="gasDateChange"
297
+ :value.sync="row.f_gas_date"
298
+ :format="'yyyy-MM-dd HH:mm:ss'"
299
+ ></datepicker>
300
+ </div>
301
+
302
+ <div class="col-sm-4 form-group" :class="[$m.f_position.required ? 'has-error' : '']"
303
+ v-show="(formconfig && formconfig.f_position && formconfig.f_position.required) || !onlyshowmust"
304
+ v-if="getConfigShowItem('f_gas_date')">
305
+ <label for="f_position" class="font_normal_body" title="参数:安装位置">&ensp;{{getConfigLabelName('f_position','安装位置')}}</label>
306
+ <input type="text" v-model="row.f_position" v-show="false"
307
+ v-validate:f_position=getConfigValidate("f_position",false)>
308
+ <v-select :value.sync="row.f_position" v-model="row.f_position"
309
+ :options='positions' placeholder='安装位置'
310
+ close-on-select></v-select>
311
+ </div>
312
+ <div class="col-sm-4 form-group" :class="[$m.f_install_person.required ? 'has-error' : '']"
313
+ v-show="(formconfig && formconfig.f_install_person && formconfig.f_install_person.required) || !onlyshowmust"
314
+ v-if="getConfigShowItem('f_install_person')">
315
+ <label for="f_install_person" class="font_normal_body" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em">&ensp;{{getConfigLabelName('f_install_person','安装人')}}</label>
316
+ <input type="text" v-model="row.f_install_person" v-show="false"
317
+ v-validate:f_install_person=getConfigValidate("f_install_person",false)>
318
+ <v-select :value.sync="row.f_install_person" v-model="row.f_install_person"
319
+ :options='installperson' placeholder='安装人'
320
+ close-on-select></v-select>
321
+ </div>
322
+ <div class="col-sm-4 form-group" :class="[$m.f_subscribe_date.required ? 'has-error' : '']"
323
+ v-show="(formconfig && formconfig.f_subscribe_date && formconfig.f_subscribe_date.required) || !onlyshowmust"
324
+ v-if="getConfigShowItem('f_subscribe_date')">
325
+ <label for="f_subscribe_date" class="font_normal_body">&ensp;{{getConfigLabelName('f_subscribe_date','预约时间')}}</label>
326
+ <input type="text" v-model="row.f_subscribe_date" v-show="false"
327
+ v-validate:f_subscribe_date=getConfigValidate("f_subscribe_date",false)>
328
+ <datepicker style="width:60%" placeholder="预约通气时间"
329
+ v-model="row.f_subscribe_date"
330
+ :value.sync="row.f_subscribe_date"
331
+ :format="'yyyy-MM-dd HH:mm:ss'"
332
+ ></datepicker>
333
+ </div>
334
+ <div class="col-sm-4 form-group" v-show="opteratormetrbook && ((formconfig && formconfig.f_meter_book_num && formconfig.f_meter_book_num.required) || !onlyshowmust)" :class="[$m.f_meter_book_num.required ? 'has-error' : '']"
335
+ v-if="getConfigShowItem('f_meter_book_num')">
336
+ <label for="f_position" class="font_normal_body" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em">&ensp;{{getConfigLabelName('f_meter_book_num','抄表册')}}</label>
337
+ <input type="text" v-model="row.f_meter_book_num" v-show="false"
338
+ v-validate:f_meter_book_num=getConfigValidate("f_meter_book_num",false)>
339
+ <v-select :value.sync="row.f_meter_book_num" v-model="row.f_meter_book_num"
340
+ :options='meterbookoptions' placeholder='抄表册'
341
+ close-on-select></v-select>
342
+ </div>
343
+ <div class="col-sm-4 form-group" :class="[$m.f_install_date.required ? 'has-error' : '']"
344
+ v-show="(formconfig && formconfig.f_install_date && formconfig.f_install_date.required) || !onlyshowmust"
345
+ v-if="getConfigShowItem('f_install_date')">
346
+ <input type="text" v-model="row.f_install_date" v-show="false"
347
+ v-validate:f_install_date=getConfigValidate("f_install_date",true)>
348
+ <label for="f_install_date" class="font_normal_body">&ensp;{{getConfigLabelName('f_install_date','安装日期')}}</label>
349
+ <datepicker style="width:60%" id="startDate" placeholder="安装日期" width='100%'
350
+ v-model="row.f_install_date"
351
+ :value.sync="row.f_install_date"
352
+ class="datepicker"
353
+ v-ref:f_install_date
354
+ :format="'yyyy-MM-dd HH:mm:ss'"
355
+ :show-reset-button="true">
356
+ </datepicker>
357
+ </div>
358
+ <div class="col-sm-4 form-group" :class="[$m.f_adjustable.required ? 'has-error' : '']"
359
+ v-show="(formconfig && formconfig.f_adjustable && formconfig.f_adjustable.required) || !onlyshowmust"
360
+ v-if="getConfigShowItem('f_adjustable')">
361
+ <label for="f_adjustable" class="font_normal_body" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em">&ensp;{{getConfigLabelName('f_adjustable','调压箱')}}</label>
362
+ <input type="text" v-model="row.f_adjustable" v-show="false"
363
+ v-validate:f_adjustable=getConfigValidate("f_adjustable",false)>
364
+ <v-select :value.sync="row.f_adjustable" :options='adjustables' placeholder='调压箱' close-on-select
365
+ v-model='row.f_adjustable' :search='true'></v-select>
366
+ </div>
367
+ <div class="col-sm-4 form-group" :class="[$m.f_hand_date.required ? 'has-error' : '']"
368
+ v-show="(formconfig && formconfig.f_hand_date && formconfig.f_hand_date.required) || !onlyshowmust"
369
+ v-if="getConfigShowItem('f_hand_date')">
370
+ <label for="f_hand_date" class="font_normal_body">&ensp;{{getConfigLabelName('f_hand_date','上次抄表')}}</label>
371
+ <input type="text" v-model="row.f_hand_date" v-show="false"
372
+ v-validate:f_hand_date=getConfigValidate("f_hand_date",false)>
373
+ <datepicker style="width:60%" id="f_hand_date" placeholder="上次抄表日期"
374
+ v-model="row.f_hand_date"
375
+ :value.sync="row.f_hand_date"
376
+ class="datepicker"
377
+ :format="'yyyy-MM-dd HH:mm:ss'"
378
+ :show-reset-button="true">
379
+ </datepicker>
380
+ </div>
381
+ <div class="col-sm-4 form-group" :class="[$m.f_price_ratio.required ? 'has-error' : '']"
382
+ v-show="(formconfig && formconfig.f_price_ratio && formconfig.f_price_ratio.required) || !onlyshowmust"
383
+ v-if="getConfigShowItem('f_price_ratio')">
384
+ <label for="f_ratio" class="font_normal_body" style="width: auto;letter-spacing: 2em;margin-right: -2em;margin-left: -2em">&ensp;{{getConfigLabelName('f_price_ratio','比率')}}</label>
385
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_price_ratio"
386
+ :value.sync="row.f_price_ratio"
387
+ v-validate:f_price_ratio=getConfigValidate("f_price_ratio",false)
388
+ placeholder='比率'>
389
+ </div>
390
+ <div class="col-sm-4 form-group" :class="[$m.f_factory_date.required ? 'has-error' : '']"
391
+ v-show="(formconfig && formconfig.f_factory_date && formconfig.f_factory_date.required) || !onlyshowmust"
392
+ v-if="getConfigShowItem('f_factory_date')">
393
+ <label for="f_factory_date" class="font_normal_body">&ensp;{{getConfigLabelName('f_factory_date','出厂日期')}}</label>
394
+ <input type="text" v-model="row.f_factory_date" v-show="false"
395
+ v-validate:f_factory_date=getConfigValidate("f_factory_date",false)>
396
+ <datepicker style="width:60%" id="f_factory_date" placeholder="出厂日期" width='100%'
397
+ v-model="row.f_factory_date"
398
+ :value.sync="row.f_factory_date"
399
+ class="datepicker"
400
+ :format="'yyyy-MM-dd'"
401
+ :show-reset-button="true">
402
+ </datepicker>
403
+ </div>
404
+ <div class="col-sm-4 form-group" :class="[$m.f_check_time.required ? 'has-error' : '']"
405
+ v-show="(formconfig && formconfig.f_check_time && formconfig.f_check_time.required) || !onlyshowmust"
406
+ v-if="getConfigShowItem('f_check_time')">
407
+ <label for="f_check_time" class="font_normal_body">&ensp;{{getConfigLabelName('f_check_time','校验日期')}}</label>
408
+ <input type="text" v-model="row.f_check_time" v-show="false"
409
+ v-validate:f_check_time=getConfigValidate("f_check_time",true)>
410
+ <datepicker style="width:60%" id="f_check_time" placeholder="校验日期" width='100%'
411
+ v-model="row.f_check_time"
412
+ :value.sync="row.f_check_time"
413
+ class="datepicker"
414
+ :format="'yyyy-MM-dd'"
415
+ :show-reset-button="true">
416
+ </datepicker>
417
+ </div>
418
+ <div class="col-sm-4 form-group" :class="[$m.f_scrap_date.required ? 'has-error' : '']"
419
+ v-show="(formconfig && formconfig.f_scrap_date && formconfig.f_scrap_date.required) || !onlyshowmust"
420
+ v-if="getConfigShowItem('f_scrap_date')">
421
+ <label for="f_scrap_date" class="font_normal_body">&ensp;{{getConfigLabelName('f_scrap_date','报废日期')}}</label>
422
+ <input type="text" v-model="row.f_scrap_date" v-show="false"
423
+ v-validate:f_scrap_date=getConfigValidate("f_scrap_date",false)>
424
+ <datepicker style="width:60%" id="ScrapDate" placeholder="报废日期" width='100%'
425
+ v-model="row.f_scrap_date"
426
+ :value.sync="row.f_scrap_date"
427
+ class="datepicker"
428
+ :format="'yyyy-MM-dd'"
429
+ :show-reset-button="true">
430
+ </datepicker>
431
+ </div>
432
+ <div class="col-sm-4 form-group" :class="[$m.f_garbage_fee.required ? 'has-error' : '']"
433
+ v-show="(formconfig && formconfig.f_garbage_fee && formconfig.f_garbage_fee.required) || !onlyshowmust"
434
+ v-if="getConfigShowItem('f_garbage_fee')">
435
+ <label for="gasmodel" class="font_normal_body" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em">&ensp;{{getConfigLabelName('f_garbage_fee','垃圾费')}}</label>
436
+ <input type="text" v-model="row.f_garbage_fee" v-show="false"
437
+ v-validate:f_garbage_fee=getConfigValidate("f_garbage_fee",false)>
438
+ <v-select :value.sync="row.f_garbage_fee" :options='garbagefee' placeholder='垃圾费' close-on-select
439
+ :value-single="true"
440
+ v-model='row.f_garbage_fee'></v-select>
441
+ </div>
442
+ <div class="col-sm-4 form-group" :class="[$m.f_inputtor.required ? 'has-error' : '']"
443
+ v-show="(formconfig && formconfig.f_inputtor && formconfig.f_inputtor.required) || !onlyshowmust"
444
+ v-if="getConfigShowItem('f_inputtor')">
445
+ <label class="font_normal_body" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em">&ensp;{{getConfigLabelName('f_inputtor','抄表员')}}</label>
446
+ <input type="text" v-model="row.f_inputtor" v-show="false"
447
+ v-validate:f_inputtor=getConfigValidate("f_inputtor",false)>
448
+ <v-select :value.sync="row.f_inputtor" v-model='row.f_inputtor'
449
+ style="width:60%"
450
+ :options='inputtores' placeholder='抄表员'
451
+ close-on-select
452
+ condition="f_inputtor like '%{}%'" v-el:cc></v-select>
453
+ </div>
454
+ <div class="col-sm-4 form-group" :class="[$m.f_usestate.required ? 'has-error' : '']"
455
+ v-show="(formconfig && formconfig.f_usestate && formconfig.f_usestate.required) || !onlyshowmust"
456
+ v-if="getConfigShowItem('f_usestate')">
457
+ <label for="f_position" class="font_normal_body" title="参数:使用状态">&ensp;{{getConfigLabelName('f_usestate','使用状态')}}</label>
458
+ <input type="text" v-model="row.f_usestate" v-show="false"
459
+ v-validate:f_usestate=getConfigValidate("f_usestate",false)>
460
+ <v-select :value.sync="row.f_usestate" v-model="row.f_usestate"
461
+ :options='usestate' placeholder='使用状态'
462
+ close-on-select></v-select>
463
+ </div>
464
+ <div class="col-sm-4 form-group" :class="[$m.f_limit_sms.required ? 'has-error' : '']"
465
+ v-show="(formconfig && formconfig.f_limit_sms && formconfig.f_limit_sms.required) || !onlyshowmust"
466
+ v-if="getConfigShowItem('f_limit_sms')">
467
+ <label for="f_limit_sms" class="font_normal_body">&ensp;{{getConfigLabelName('f_limit_sms','短信限定')}}</label>
468
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_limit_sms"
469
+ v-validate:f_limit_sms=getConfigValidate("f_limit_sms",false)
470
+ placeholder='短信限定'></input>
471
+ </div>
472
+ <div style="" class="col-sm-4 form-group" :class="[$m.f_alarm_code.required ? 'has-error' : '']"
473
+ v-show="(formconfig && formconfig.f_alarm_code && formconfig.f_alarm_code.required) || !onlyshowmust"
474
+ v-if="getConfigShowItem('f_alarm_code')">
475
+ <label for="f_alarm_code" class="font_normal_body ">&ensp;{{getConfigLabelName('f_alarm_code','报警器号')}}</label>
476
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_alarm_code" placeholder='报警器号'
477
+ v-validate:f_alarm_code=getConfigValidate("f_alarm_code",false) >
478
+ </div>
479
+ <div style="" class="col-sm-4 form-group" :class="[$m.f_hand_month.required ? 'has-error' : '']"
480
+ v-show="(formconfig && formconfig.f_hand_month && formconfig.f_hand_month.required) || !onlyshowmust"
481
+ v-if="getConfigShowItem('f_hand_month')">
482
+ <label for="f_hand_month" class="font_normal_body ">&ensp;{{getConfigLabelName('f_hand_month','抄表月份')}}</label>
483
+ <input type="text" v-model="row.f_hand_month" v-show="false"
484
+ v-validate:f_hand_month=getConfigValidate("f_hand_month",false)>
485
+ <v-select :value.sync="row.f_hand_month" v-model="row.f_hand_month"
486
+ :options='handmonth' placeholder='抄表月份'
487
+ close-on-select></v-select>
488
+ </div>
489
+ <div style="" class="col-sm-4 form-group" :class="[$m.f_userfiles_address.required ? 'has-error' : '']"
490
+ v-show="(formconfig && formconfig.f_userfiles_address && formconfig.f_userfiles_address.required) || !onlyshowmust"
491
+ v-if="getConfigShowItem('f_userfiles_address')">
492
+ <label for="f_userfiles_address" class="font_normal_body ">&ensp;{{getConfigLabelName('f_userfiles_address','用气点名')}}</label>
493
+ <input class="input_search" style="width:60%" v-model="row.f_userfiles_address"
494
+ v-validate:f_userfiles_address=getConfigValidate("f_userfiles_address",false) >
495
+ </div>
496
+ <div style="" class="col-sm-4 form-group" :class="[$m.f_userfiles_lng.required ? 'has-error' : '']"
497
+ v-show="(formconfig && formconfig.f_userfiles_lng && formconfig.f_userfiles_lng.required) || !onlyshowmust"
498
+ v-if="getConfigShowItem('f_userfiles_lng')">
499
+ <label class="font_normal_body" style="width: auto;letter-spacing: 2em;margin-right: -2em;margin-left: -2em">&ensp;{{getConfigLabelName('f_userfiles_lng','经度')}}</label>
500
+ <input type="text" style="width:60%" v-model="row.f_userfiles_lng" class="input_search" placeholder="经度"
501
+ v-validate:f_userfiles_lng=getConfigValidate("f_userfiles_lng",false)>
502
+ </div>
503
+ <div style="" class="col-sm-4 form-group" :class="[$m.f_userfiles_lat.required ? 'has-error' : '']"
504
+ v-show="(formconfig && formconfig.f_userfiles_lat && formconfig.f_userfiles_lat.required) || !onlyshowmust"
505
+ v-if="getConfigShowItem('f_userfiles_lat')">
506
+ <label class="font_normal_body" style="width: auto;letter-spacing: 2em;margin-right: -2em;margin-left: -2em">&ensp;{{getConfigLabelName('f_userfiles_lat','纬度')}}</label>
507
+ <input type="text" style="width:48%" v-model="row.f_userfiles_lat" class="input_search" placeholder="纬度"
508
+ v-validate:f_userfiles_lat=getConfigValidate("f_userfiles_lat",false)>
509
+ &ensp;<span class="glyphicon glyphicon-map-marker" @click="openModal" ></span>
510
+ </div>
511
+ <div class="col-sm-4 form-group" :class="[$m.f_comments.required ? 'has-error' : '']"
512
+ v-show="(formconfig && formconfig.f_comments && formconfig.f_comments.required) || !onlyshowmust"
513
+ v-if="getConfigShowItem('f_comments')">
514
+ <label class="font_normal_body" style="width: auto;letter-spacing: 2em;margin-right: -2em;margin-left: -2em">&ensp;{{getConfigLabelName('f_comments','备注')}}</label>
515
+ <input type="text" style="width:60%" v-model="row.f_comments" class="input_search" placeholder="备注"
516
+ v-validate:f_comments=getConfigValidate("f_comments",false)>
517
+ </div>
518
+ <div class="col-sm-4 form-group" :class="[$m.f_overdue_set.required ? 'has-error' : '']"
519
+ v-show="(formconfig && formconfig.f_overdue_set && formconfig.f_overdue_set.required) || !onlyshowmust"
520
+ v-if="getConfigShowItem('f_overdue_set')">
521
+ <label class="font_normal_body">{{getConfigLabelName('f_overdue_set','违约金规则')}}</label>
522
+ <input type="text" v-model="row.f_overdue_set" v-show="false"
523
+ v-validate:f_overdue_set=getConfigValidate("f_overdue_set",false)>
524
+ <v-select :value.sync="row.f_overdue_set" v-model="row.f_overdue_set"
525
+ :options='overdueset' placeholder='违约金规则'
526
+ close-on-select></v-select>
527
+ </div>
528
+ <div class="col-sm-4 form-group" :class="[$m.f_seal_number.required ? 'has-error' : '']"
529
+ v-show="(formconfig && formconfig.f_seal_number && formconfig.f_seal_number.required) || !onlyshowmust"
530
+ v-if="getConfigShowItem('f_seal_number')">
531
+ <label for="f_seal_number" class="font_normal_body">&ensp;铅封编号</label>
532
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_seal_number" placeholder='铅封编号'
533
+ v-validate:f_comments=getConfigValidate("f_seal_number",false)>
534
+ </div>
535
+ <template v-if="config.stuckFlowmeterShow">
536
+ <div class="col-sm-4 form-group">
537
+ <label class="font_normal_body" title="控制器通经">控制器通经</label>
538
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_control_pass"
539
+ placeholder='控制器通经'></input>
540
+ </div>
541
+ <div class="col-sm-4 form-group">
542
+ <label class="font_normal_body" title="控制器压力等级">控制器压力等级</label>
543
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_control_mpa_level"
544
+ placeholder='控制器压力等级'></input>
545
+ </div>
546
+ <div class="col-sm-4 form-group">
547
+ <label class="font_normal_body" title="流量计表号">流量计表号</label>
548
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_number"
549
+ placeholder='流量计表号'></input>
550
+ </div>
551
+ <div class="col-sm-4 form-group">
552
+ <label class="font_normal_body" title="流量计表封号">流量计表封号</label>
553
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_metertitles"
554
+ placeholder='流量计表封号'></input>
555
+ </div>
556
+ <div class="col-sm-4 form-group">
557
+ <label class="font_normal_body" title="流量计品牌">流量计品牌</label>
558
+ <v-select :value.sync="row.f_flowmeter_brand" :options='flowmeterbrands' value-single placeholder='流量计品牌' close-on-select
559
+ search v-model='row.f_flowmeter_brand'></v-select>
560
+ </div>
561
+ <div class="col-sm-4 form-group">
562
+ <label class="font_normal_body" title="流量计型号">流量计型号</label>
563
+ <v-select :value.sync="row.f_flowmeter_model" :options='flowmetermodels(row.f_flowmeter_brand)' value-single placeholder='流量计型号' close-on-select
564
+ v-model='row.f_flowmeter_model' :disabled='row.f_flowmeter_brand.length === 0'></v-select>
565
+ </div>
566
+ <div class="col-sm-4 form-group">
567
+ <label class="font_normal_body" title="流量计通经">流量计通经</label>
568
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_pass"
569
+ placeholder='流量计通经'></input>
570
+ </div>
571
+ <div class="col-sm-4 form-group">
572
+ <label class="font_normal_body" title="流量计压力等级">流量计压力等级</label>
573
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_mpa_level"
574
+ placeholder='流量计压力等级'></input>
575
+ </div>
576
+ <div class="col-sm-4 form-group">
577
+ <label class="font_normal_body" title="流量计出厂日期">流量计出厂日期</label>
578
+ <datepicker style="width:60%" placeholder="流量计出厂日期"
579
+ v-model="row.f_flowmeter_factory_date"
580
+ :value.sync="row.f_flowmeter_factory_date"
581
+ :format="'yyyy-MM-dd HH:mm:ss'"
582
+ ></datepicker>
583
+ </div>
584
+ <div class="col-sm-4 form-group">
585
+ <label class="font_normal_body" title="流量计精准度">流量计精准度</label>
586
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_accuracy"
587
+ placeholder='流量计精准度'></input>
588
+ </div>
589
+ <div class="col-sm-4 form-group">
590
+ <label class="font_normal_body" title="流量计电仪出厂编号">流量计电仪出厂编号</label>
591
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_factory_num"
592
+ placeholder='流量计电仪出厂编号'></input>
593
+ </div>
594
+ <div class="col-sm-4 form-group">
595
+ <label class="font_normal_body" title="流量计电仪出厂编号">流量计类型</label>
596
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_type"
597
+ placeholder='流量计类型'></input>
598
+ </div>
599
+ <div class="col-sm-4 form-group">
600
+ <label class="font_normal_body" title="流量计安装日期">流量计安装日期</label>
601
+ <datepicker style="width:60%" placeholder="流量计安装日期"
602
+ v-model="row.f_flowmeter_install_date"
603
+ :value.sync="row.f_flowmeter_install_date"
604
+ :format="'yyyy-MM-dd HH:mm:ss'"
605
+ ></datepicker>
606
+ </div>
607
+ </template>
608
+ </div>
609
+ </form>
610
+ </validator>
611
+ <!--<idverify :show.sync="show" @change-con="changeVal"></idverify>-->
612
+ <modal v-if="showParame" :show.sync="showParame" v-ref:modal backdrop="false">
613
+ <header slot="modal-header" class="modal-header">
614
+ <button type="button" class="close" @click="cancel"><span>&times;</span></button>
615
+ <h3 class="modal-title" style="text-align: center;">添加参数</h3>
616
+ </header>
617
+ <article slot="modal-body" class="modal-body">
618
+ <add-json-parameter v-ref:addparamlist :gasmodel_id="userfileid" :gastype="gastype"
619
+ :gasid="gasid"></add-json-parameter>
620
+ </article>
621
+ <footer slot="modal-footer" class="modal-footer">
622
+ <button type="button" class="btn btn-primary" @click='confirmUserfiles()'>确认</button>
623
+ </footer>
624
+ </modal>
625
+
626
+ <modal :show.sync="mapShow" v-if="mapShow" large backdrop="false" :width="900">
627
+ <header slot="modal-header" class="modal-header">
628
+ </header>
629
+ <article slot="modal-body" class="modal-body">
630
+ <amap-location :islocationclearmark="false" dom="addboxmap" v-ref:positionInfo @getmylocation="getmylocation"></amap-location>
631
+ </article>
632
+ <footer slot="modal-footer" class="modal-footer">
633
+ <button v-show="mapShow" type="button" class="button_clear btn-gn" @click='closeModal'>取消</button>
634
+ <button v-show="mapShow" type="button" class="button_clear btn-gn" @click='confirmLocation'>确认</button>
635
+ </footer>
636
+ </modal>
637
+ </div>
638
+ </template>
639
+
640
+ <script>
641
+ import co from 'co'
642
+ import {HttpResetClass} from 'vue-client'
643
+ import Vue from 'vue'
644
+ let meterBookGen = function * (self) {
645
+ if (self.$login.r.find(value => value == '抄表册建档')) {
646
+ self.opteratormetrbook = true
647
+ }
648
+ let temp = {
649
+ tablename: 't_meter_book',
650
+ condition: `f_book_state='有效' and f_filiale_id='${self.$login.f.orgid}'`
651
+ }
652
+ let http = new HttpResetClass()
653
+ let meterbooks = yield http.load('POST', 'api/af-revenue/sql/saleSingleTable', {data: temp},
654
+ {resolveMsg: null, rejectMsg: '获取抄表册信息失败!!'})
655
+ if (meterbooks.data.length > 0) {
656
+ let options = []
657
+ for (let i = 0; i < meterbooks.data.length; i++) {
658
+ let tmp = {label: meterbooks.data[i].f_book_name, value: `${meterbooks.data[i].id}`}
659
+ options.push(tmp)
660
+ }
661
+ self.meterbookoptions = options
662
+ }
663
+ try {
664
+ let result = yield http.load('GET', `rs/vue/MeterinfoTest.json`, {}, {resolveMsg: null, rejectMsg: null})
665
+ Object.assign(self.config, result.data)
666
+ if (!self.row.f_open_way) {
667
+ self.row.f_open_way = self.config.open_way
668
+ }
669
+ if (!self.row.f_usetype || self.row.f_usetype.length === 0) {
670
+ self.row.f_usetype = self.config.f_usetype
671
+ }
672
+ } catch (error) {
673
+ // 忽略704,文件找不到异常
674
+ if (error.status !== 704) {
675
+ throw error
676
+ }
677
+ }
678
+ }
679
+ let brandChangeGen = function* (self, val) {
680
+ let beforeRecord = null
681
+
682
+ if (self.meter.f_meter_classify === '机表') {
683
+ beforeRecord = yield self.$resetpost('api/af-revenue/sql/saleSingleTable', {
684
+ data: {
685
+ tablename: 't_handplan',
686
+ condition: `f_user_id = '${self.row.f_user_id}' and f_meter_state in ('已抄表','未抄表')`
687
+ }
688
+ }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前机表抄表信息出错!!'})
689
+ } else if (self.meter.f_meter_classify === '物联网表') {
690
+ beforeRecord = yield self.$resetpost('api/af-revenue/sql/saleSingleTable', {
691
+ data: {
692
+ tablename: 't_instruct',
693
+ condition: `f_user_id = '${self.row.f_user_id}'`
694
+ }
695
+ }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前机表抄表信息出错!!'})
696
+ } else {
697
+ beforeRecord = yield self.$resetpost('api/af-revenue/sql/saleSingleTable', {
698
+ data: {
699
+ tablename: 't_sellinggas',
700
+ condition: `f_user_id = '${self.row.f_user_id}' and f_state = '有效'`
701
+ }
702
+ }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前卡表收费信息出错!!'})
703
+ }
704
+ if (beforeRecord.data.length > 0 && self.row.gasbrand[0].f_meter_brand != self.oldrow.gasbrand[0].f_meter_brand) {
705
+ self.$showAlert('该气表已投入使用,如需更改请执行换表操作', 'warning', 3000)
706
+ self.$dispatch('success')
707
+ } else {
708
+ self.row.f_whether_hairpin = self.row.gasbrand[0].f_meter_type === '机表' ? '无卡' : '未发'
709
+ }
710
+ }
711
+ export default {
712
+ title: '表具信息',
713
+ data () {
714
+ return {
715
+ config: {
716
+ // 卡控流量计相关字段显示
717
+ stuckFlowmeterShow: false,
718
+ overduesetShow: true,
719
+ f_install_date: true,
720
+ f_usetype: '',
721
+ open_way: '指令开户'
722
+ },
723
+ mapShow: false,
724
+ viewsee: false,
725
+ row: this.meter,
726
+ show: false,
727
+ field: '',
728
+ ratioshow: false,
729
+ // 原本的卡号
730
+ orginCardId: '',
731
+ userfileid: '',
732
+ gasid: '',
733
+ gastype: 'userfiles',
734
+ showParame: false,
735
+ selectUserFiles: '', // 选中的 userfiles
736
+ jurisdiction: this.$login.r,
737
+ positions: this.$appdata.getParam('安装位置'),
738
+ usetype: this.$appdata.getParam('使用类型'),
739
+ usestate: this.$appdata.getParam('使用状态'),
740
+ aroundmeters: this.$appdata.getParam('左右表'),
741
+ forceMeasure: this.$appdata.getParam('三项强制措施'),
742
+ garbagefee: this.$appdata.getParam('垃圾费'),
743
+ valvestate: this.$appdata.getParam('阀门状态'),
744
+ usertypes: this.$appdata.getParam('用户类型'),
745
+ handmonth: [{label: '单月', value: '单月'}, {label: '双月', value: '双月'}],
746
+ gasproperties: this.meter.f_user_type && this.meter.f_user_type.length === 1 ? this.$appdata.getParam(this.meter.f_user_type[0]) : [],
747
+ pricetypes: this.$appdata.getParam('气价类型'),
748
+ industrycomments: this.$appdata.getParam('工业备注'),
749
+ openWay: [{label: '指令开户', value: '指令开户'}, {label: '发卡开户', value: '发卡开户'}],
750
+ concentrators: [],
751
+ meterbookoptions: [], // 抄表册选项
752
+ opteratormetrbook: false, // 抄表册操作
753
+ oldrow: [],
754
+ overdueset: [],
755
+ isiot: true,
756
+ meterNumberDisabled: false,
757
+ meterChangeDisabled: this.$appdata.getSingleValue('建档后禁止更改表号') ? this.$appdata.getSingleValue('建档后禁止更改表号') : false,
758
+ templng: '', // 临时经度
759
+ templat: '' // 临时纬度
760
+ }
761
+ },
762
+ props: ['f_filialeid', 'meter', 'isdecimal', 'valid', 'f_userinfo_id', 'overdueset', 'curuser', 'formconfig', 'onlyshowmust'],
763
+ async ready () {
764
+ console.log('看看meter里面的数据', this.meter, this.row)
765
+ this.row = Object.assign(this.row, this.meter, {f_use_limit: this.$appdata.getSingleValue('报废年限')})
766
+ this.orginCardId = this.row.f_card_id
767
+ if (this.row.f_meter_classify) {
768
+ if (this.row.f_meter_classify === '物联网表') {
769
+ this.isiot = true
770
+ } else {
771
+ this.isiot = false
772
+ }
773
+ }
774
+ this.oldrow = this.row
775
+ this.isdecimal = this.row.gasbrand.length > 0 ? this.row.gasbrand.f_isdecimal : '否'
776
+ this.row.valid = false
777
+ if (this.row.pricetype === '混合气价') {
778
+ this.ratioshow = true
779
+ }
780
+ if (this.row) {
781
+ if (this.row.f_force_measure !== undefined && Object.prototype.toString.call(this.row.f_force_measure) === '[object Array]') {
782
+ if (this.row.f_force_measure[0]) {
783
+ this.row.f_force_measure = this.row.f_force_measure[0].split(',')
784
+ }
785
+ }
786
+ }
787
+ if (this.row.f_meternumber) {
788
+ this.meterNumberDisabled = true
789
+ }
790
+ await this.getConcentrators()
791
+ co(meterBookGen(this))
792
+ },
793
+ methods: {
794
+ validateInput (event, key) {
795
+ const value = event.target.value
796
+ const sanitizedValue = value.replace(/[^0-9.]/g, '')
797
+ this.row[key] = sanitizedValue
798
+ },
799
+ getConfigValidate (name, defaultVal) {
800
+ this.$resetValidation()
801
+ if (this.formconfig && this.formconfig[name]) {
802
+ let Validate = {}
803
+ if (this.formconfig[name].required) {
804
+ Object.assign(Validate, {required: true})
805
+ }
806
+ if (this.formconfig[name].minlength || this.formconfig[name].minlength === 0) {
807
+ Object.assign(Validate, {minlength: this.formconfig[name].minlength})
808
+ }
809
+ if (this.formconfig[name].maxlength) {
810
+ Object.assign(Validate, {maxlength: this.formconfig[name].maxlength})
811
+ }
812
+ return Validate
813
+ } else if (name === 'f_user_phone') {
814
+ return { minlength: 11, maxlength: 11 }
815
+ } else if (defaultVal) {
816
+ return {required: defaultVal}
817
+ }
818
+ return {}
819
+ },
820
+ getConfigShowItem (name,defaultVal = true) {
821
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].hasOwnProperty('showItem')) {
822
+ return this.formconfig[name].showItem
823
+ } else {
824
+ return defaultVal
825
+ }
826
+ },
827
+ getConfigLabelName (name, defaultVal) {
828
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].labelName) {
829
+ return this.formconfig[name].labelName
830
+ } else {
831
+ return defaultVal
832
+ }
833
+ },
834
+ getConfigPlaceholder (name, defaultVal) {
835
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].placeholder) {
836
+ return this.formconfig[name].placeholder
837
+ } else {
838
+ return defaultVal
839
+ }
840
+ },
841
+ checkCardId () {
842
+ this.$resetpost('api/af-revenue/logic/checkCardId', {
843
+ data: {
844
+ f_userfiles_id: this.row.f_userfiles_id,
845
+ gasbrandId: this.row.f_gasbrand_id,
846
+ cardId: this.row.f_card_id,
847
+ f_orgid: this.row.f_orgid
848
+ }
849
+ }, {resolveMsg: null, rejectMsg: '获取表号出错'}).then(res => {
850
+ if (res.data.code !== '200') {
851
+ this.row.f_card_id = this.orginCardId
852
+ this.$showAlert(res.data.msg, 'warning', 1500)
853
+ }
854
+ })
855
+ },
856
+ gasDateChange () {
857
+ if (!this.row.f_scrap_date && this.row.f_gas_date) {
858
+ if (this.row.f_use_limit) {
859
+ let date = new Date(this.row.f_gas_date)
860
+ let year = date.getFullYear() + (this.row.f_use_limit / 1)
861
+ this.$set('row.f_scrap_date', year + this.row.f_gas_date.slice(4))
862
+ }
863
+ }
864
+ },
865
+ // 获取集中器下拉框
866
+ async getConcentrators () {
867
+ let condition = {
868
+ items: 'id,f_mpc_alias',
869
+ tablename: 't_concentrator',
870
+ condition: `f_mpc_state !='删除'`,
871
+ orderitem: 'id'
872
+ }
873
+ let data = await this.$resetpost('api/af-revenue/sql/saleSingleTable', {data: condition}, {resolveMsg: null, rejectMsg: '获取集中器失败!'})
874
+ this.concentrators = []
875
+ for (let row of data.data) {
876
+ this.concentrators.push({label: row.f_mpc_alias, value: row.id})
877
+ }
878
+ },
879
+ async confirmUserfiles () {
880
+ if (this.$refs.addparamlist.confirm()) {
881
+ var paramlist = this.$refs.addparamlist.addGasParameter
882
+ await this.$resetpost('api/af-revenue/logic/updateGasParam', {
883
+ data: {
884
+ id: this.selectUserFiles.f_user_id,
885
+ paramlist: paramlist,
886
+ gastype: 'userfiles'
887
+ }
888
+ }, {resolveMsg: '更新成功', rejectMsg: '更新失败'})
889
+ this.showParame = false
890
+ }
891
+ },
892
+
893
+ priceChange (val) {
894
+ if (val.length > 0) {
895
+ this.row.f_user_type = [val[0].f_user_type]
896
+ this.row.f_gasproperties = [val[0].f_gasproperties]
897
+ this.row.pricetype = val[0].f_price_type
898
+ // 展示气价备注
899
+ this.$set('row.f_price_comments', val[0].f_comments ? val[0].f_comments : '无')
900
+ // 展示价格明细
901
+ if (val[0].detailprice) {
902
+ // this.row.f_detailprice = this.$CommonService.getShowPriceDetail(val[0].detailprice)
903
+ this.$set('row.f_detailprice', this.$CommonService.getShowPriceDetail(val[0].detailprice))
904
+ }
905
+ }
906
+ },
907
+ cancel () {
908
+ this.gasid = ''
909
+ this.userfileid = ''
910
+ this.showParame = false
911
+ },
912
+ tablebaseChange () {
913
+ if (this.isdecimal === '是') {
914
+ this.$set('row.f_meter_base', (this.row.f_meter_base - 0).toFixed(4))
915
+ } else {
916
+ this.$set('row.f_meter_base', (this.row.f_meter_base - 0).toFixed(0))
917
+ }
918
+ },
919
+ brandChange (val) {
920
+ this.isdecimal = val.length > 0 ? val[0].f_isdecimal : '否'
921
+ console.log('sadasfasf', val)
922
+ if (val.length > 0 && val[0].f_meter_type === '物联网表') {
923
+ this.isiot = true
924
+ } else {
925
+ this.isiot = false
926
+ }
927
+ // this.tablebaseChange()
928
+ if (this.row.f_user_id) {
929
+ co(brandChangeGen(this))
930
+ }
931
+ this.meternumberValidate()
932
+ },
933
+ userTypeChange () {
934
+ this.gasproperties = []
935
+ if (this.row.f_user_type.length === 1) {
936
+ this.gasproperties = this.$appdata.getParam(this.row.f_user_type[0])
937
+ }
938
+ },
939
+ // getPricenames(pricetype) {
940
+ // console.log('气价。,。。', pricetype, this.row.f_user_type, this.row.f_gasproperties)
941
+ // let rs = []
942
+ // if (this.row.f_user_type.length === 1 && this.row.f_gasproperties.length === 1 && pricetype.length === 1) {
943
+ // let params = {
944
+ // f_user_type: this.row.f_user_type[0],
945
+ // f_gasproperties: this.row.f_gasproperties[0],
946
+ // f_price_type: pricetype[0],
947
+ // filter: this.f_filialeid
948
+ // }
949
+ // rs = this.$GetSaleParam.getPrice(params)
950
+ // }
951
+ // if (rs.length === 0) {
952
+ // this.row.f_price_name = ''
953
+ // }
954
+ // return rs
955
+ // },
956
+ mValid (bool) {
957
+ this.row.valid = bool
958
+ this.$dispatch('self-valid')
959
+ },
960
+ // 带权限修改单值返回修改后得值和修改原因
961
+ modefiy (field) {
962
+ this.show = true
963
+ this.field = field
964
+ },
965
+ async meternumberValidate () {
966
+ let http1 = new HttpResetClass()
967
+ let res1 = await http1.load('POST', '/api/af-revenue/sql/getBrandAndType', {data: {condition: ` mi.f_meternumber = '${this.row.f_meternumber}'`}}, {resolveMsg: null, rejectMsg: '获取默认气表品牌型号失败!!'})
968
+ if (res1.data.length > 0) {
969
+ // 替换表号自带的气表品牌和型号
970
+ let meterbrands = this.meterbrands
971
+ for (let row of meterbrands) {
972
+ if (row.label == res1.data[0].f_meter_brand) {
973
+ // 已经选择了气表品牌则不再替换
974
+ if (this.row.gasbrand.length <= 0) this.row.gasbrand = [row.value]
975
+ // 替换气表型号
976
+ if (res1.data[0].f_meter_style) {
977
+ for (let model of row.value.gasmodel) {
978
+ if (model.label == res1.data[0].f_meter_style) {
979
+ // 已经选择了气表型号则不再替换
980
+ if (this.row.gasmodel.length <= 0) this.row.gasmodel = [model.value]
981
+ continue
982
+ }
983
+ }
984
+ }
985
+ continue
986
+ }
987
+ }
988
+ }
989
+ // 验证表号
990
+ if (this.row.f_meternumber && this.row.gasbrand.length > 0) {
991
+ // 表号位数验证
992
+ let meternumberLen = this.row.gasbrand[0].f_meternumber_len
993
+ if (meternumberLen) {
994
+ if (this.row.f_meternumber.length != meternumberLen) {
995
+ this.row.f_meternumber = ''
996
+ this.$showAlert(`表号位数不正确, 当前气表品牌表号位数是: ${meternumberLen}`, 'warning', 3000)
997
+ return
998
+ }
999
+ }
1000
+ // 表计信息验证
1001
+ if (this.row.gasbrand[0].f_meterverification == '是') {
1002
+ if (res1.data.length <= 0) {
1003
+ this.$showAlert(`当前表号: ${this.row.f_meternumber}在表计信息中无记录, 请核实!!!`, 'warning', 3000)
1004
+ this.row.f_meternumber = ''
1005
+ return
1006
+ }
1007
+ }
1008
+ let param = {
1009
+ f_meternumber: this.row.f_meternumber,
1010
+ f_gasbrand_id: this.row.gasbrand[0].id
1011
+ }
1012
+ if (this.row.f_userfiles_id) {
1013
+ param.f_userfiles_id = this.row.f_userfiles_id
1014
+ }
1015
+ let res = await this.$resetpost('api/af-revenue/logic/meternumberValidate', param, {
1016
+ resolveMsg: null,
1017
+ rejectMsg: '表号验证失败!!'
1018
+ })
1019
+ if (this.row.gasbrand[0].f_meter_type === '物联网表') {
1020
+ if (res.data) {
1021
+ this.row.f_meternumber = ''
1022
+ this.$showAlert('表号已存在!!', 'warning', 3000)
1023
+ }
1024
+ } else {
1025
+ if (res.data) {
1026
+ this.$showAlert('请注意,相同的表号已存在', 'warning', 3000)
1027
+ }
1028
+ }
1029
+ }
1030
+ },
1031
+ openModal () {
1032
+ this.mapShow = true
1033
+ },
1034
+ closeModal () {
1035
+ this.mapShow = false
1036
+ },
1037
+ getmylocation (res) {
1038
+ this.templng = res.position.lng
1039
+ this.templat = res.position.lat
1040
+ },
1041
+ confirmLocation () {
1042
+ this.row.f_userfiles_lat = this.templat
1043
+ this.row.f_userfiles_lng = this.templng
1044
+ this.mapShow = false
1045
+ },
1046
+ flowmetermodels (label) {
1047
+ let gasbrand = this.$GetSaleParam.getGasbrand()
1048
+ let flowmetermodels = []
1049
+ for (let row of gasbrand) {
1050
+ if (row.label == label) {
1051
+ for (let gasmodel of row.value.gasmodel) {
1052
+ flowmetermodels.push({label: gasmodel.label, value: gasmodel.label})
1053
+ }
1054
+ break
1055
+ }
1056
+ }
1057
+ return flowmetermodels
1058
+ }
1059
+ },
1060
+ watch: {
1061
+ 'meter' () {
1062
+ this.row = Object.assign(this.row, this.meter, {})
1063
+ this.isdecimal = this.row.gasbrand.f_isdecimal
1064
+ this.row.valid = false
1065
+ this.showtype = this.row.gasbrand.f_meter_type
1066
+ },
1067
+ 'row.pricetype' (val) {
1068
+ if (val == '混合气价') {
1069
+ this.ratioshow = true
1070
+ } else {
1071
+ this.ratioshow = false
1072
+ }
1073
+ }
1074
+ },
1075
+ computed: {
1076
+
1077
+ // 控制用户类型修改
1078
+ permissionUserType () {
1079
+ let res = false
1080
+ if (this.row.f_user_id) {
1081
+ res = !(this.jurisdiction.includes('民用气价修改') && this.jurisdiction.includes('非民用气价修改'))
1082
+ }
1083
+ return res
1084
+ },
1085
+
1086
+ // 控制用气性质,气价类型,气价名称修改
1087
+ permissionPrice () {
1088
+ let res = false
1089
+ if (this.row.f_user_id) {
1090
+ console.log('获取权限、', this.row, this.jurisdiction)
1091
+ // 变更操作
1092
+ if (this.row.pricename.length > 0) {
1093
+ if (this.row.f_user_type[0] === '民用') {
1094
+ // 判断是否有民用气价权限
1095
+ res = !this.jurisdiction.includes('民用气价修改')
1096
+ } else if (this.row.f_user_type[0] === '非民用') {
1097
+ // 判断是否有非民用气价权限
1098
+ res = !this.jurisdiction.includes('非民用气价修改')
1099
+ }
1100
+ }
1101
+ }
1102
+ console.log('有无气价权限', res)
1103
+ return res
1104
+ },
1105
+
1106
+ getPricenames () {
1107
+ let f_filialeid = this.f_filialeid
1108
+ let result = []
1109
+ this.$GetSaleParam.prices.forEach((item) => {
1110
+ if (item.f_state === '有效' && f_filialeid == item.f_filialeid) {
1111
+ let value = {
1112
+ label: item.f_price_name,
1113
+ value: item
1114
+ }
1115
+ result.push(value)
1116
+ }
1117
+ })
1118
+ return Array.from(new Set(result))
1119
+ },
1120
+
1121
+ adjustables () {
1122
+ let arr = []
1123
+ let filter = this.f_filialeid
1124
+ this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
1125
+ let temp = {}
1126
+ temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
1127
+ temp.value = item.value
1128
+ arr.push(temp)
1129
+ })
1130
+ return [{label: '全部', value: ''}, ...arr]
1131
+ },
1132
+ inputtores () {
1133
+ // return this.$login.f.f_gasman
1134
+ let rs = new Array()
1135
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
1136
+ let temp = {
1137
+ label: this.$login.f.f_gasman[i].name,
1138
+ value: this.$login.f.f_gasman[i].name
1139
+ }
1140
+ rs.push(temp)
1141
+ }
1142
+ return rs
1143
+ },
1144
+ installperson () {
1145
+ // return this.$login.f.f_installman
1146
+ let rs = new Array()
1147
+ for (let i = 0; i < this.$login.f.f_installman.length; i++) {
1148
+ let temp = {
1149
+ label: this.$login.f.f_installman[i].name,
1150
+ value: this.$login.f.f_installman[i].name
1151
+ }
1152
+ rs.push(temp)
1153
+ }
1154
+ return rs
1155
+ },
1156
+ meterbrands () {
1157
+ return this.$GetSaleParam.getGasbrand()
1158
+ },
1159
+ aroundmeters () {
1160
+ return this.$appdata.getParam('左右表')
1161
+ },
1162
+ positions () {
1163
+ return this.$appdata.getParam('安装位置')
1164
+ },
1165
+ usetype () {
1166
+ return this.$appdata.getParam('使用类型')
1167
+ },
1168
+ usestate () {
1169
+ return this.$appdata.getParam('使用状态')
1170
+ },
1171
+ gongyetype () {
1172
+ return this.$appdata.getParam('工业备注')
1173
+ },
1174
+ flowmeterbrands () {
1175
+ let gasbrand = this.$GetSaleParam.getGasbrand()
1176
+ let flowmeterbrands = []
1177
+ for (let row of gasbrand) {
1178
+ flowmeterbrands.push({label: row.label, value: row.label})
1179
+ }
1180
+ return flowmeterbrands
1181
+ }
1182
+ }
1183
+ }
1184
+ </script>
1185
+ <style lang="less">
1186
+ #meterInfoTest{
1187
+ // 去掉number类型输入框的上下箭头
1188
+ input[type="number"] {
1189
+ &::-webkit-inner-spin-button,
1190
+ &::-webkit-outer-spin-button {
1191
+ -webkit-appearance: none;
1192
+ margin: 0;
1193
+ }
1194
+
1195
+ & {
1196
+ -moz-appearance: textfield;
1197
+ }
1198
+ }
1199
+ #addboxmap {
1200
+ height: 300px;
1201
+ }
1202
+ .glyphicon-map-marker:hover {
1203
+ color: red;
1204
+ }
1205
+ .glyphicon-map-marker {
1206
+ color: blue;
1207
+ cursor: pointer;
1208
+ }
1209
+ .col-sm-4 {
1210
+ .font_normal_body {
1211
+ width: 73px;
1212
+ overflow: auto;
1213
+ white-space: nowrap;
1214
+ // 指滚动条两边的按钮
1215
+ &::-webkit-scrollbar-button {
1216
+ display: none;
1217
+ }
1218
+ // 滚动条的宽度
1219
+ &::-webkit-scrollbar {
1220
+ width: 5px !important;
1221
+ height: 5px !important;
1222
+ }
1223
+ // 滚动条的设置
1224
+ &::-webkit-scrollbar-thumb {
1225
+ background-color: #ddd;
1226
+ background-clip: padding-box;
1227
+ }
1228
+ &::-webkit-scrollbar-thumb:hover {
1229
+ background-color: #bbb;
1230
+ }
1231
+ &::-webkit-scrollbar-track {
1232
+ /*滚动条里面轨道*/
1233
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
1234
+ background: #ededed;
1235
+ }
1236
+ }
1237
+ }
1238
+ }
1239
+ </style>