sale-client 4.2.62 → 4.2.64

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