sale-client 3.4.72 → 3.4.76

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 (130) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.gradle/5.5/executionHistory/executionHistory.bin +0 -0
  4. package/.gradle/5.5/executionHistory/executionHistory.lock +0 -0
  5. package/.gradle/{3.5/file-changes → 5.5/fileChanges}/last-build.bin +0 -0
  6. package/.gradle/5.5/fileContent/fileContent.lock +0 -0
  7. package/.gradle/5.5/fileHashes/fileHashes.bin +0 -0
  8. package/.gradle/5.5/fileHashes/fileHashes.lock +0 -0
  9. package/.gradle/{buildOutputCleanup/built.bin → 5.5/gc.properties} +0 -0
  10. package/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  11. package/.gradle/7.1/dependencies-accessors/gc.properties +0 -0
  12. package/.gradle/7.1/executionHistory/executionHistory.bin +0 -0
  13. package/.gradle/7.1/executionHistory/executionHistory.lock +0 -0
  14. package/.gradle/7.1/fileChanges/last-build.bin +0 -0
  15. package/.gradle/7.1/fileHashes/fileHashes.bin +0 -0
  16. package/.gradle/7.1/fileHashes/fileHashes.lock +0 -0
  17. package/.gradle/7.1/gc.properties +0 -0
  18. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  19. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  20. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  21. package/.gradle/checksums/checksums.lock +0 -0
  22. package/.gradle/vcs-1/gc.properties +0 -0
  23. package/.project +11 -11
  24. package/README.md +38 -38
  25. package/build/css-loaders.js +34 -34
  26. package/build/dev-client.js +8 -8
  27. package/build/dev-server.js +157 -157
  28. package/build/libs/SaleClient-3.1.1-11.jar +0 -0
  29. package/build/release.sh +28 -28
  30. package/build/tmp/jar/MANIFEST.MF +2 -0
  31. package/build/utils.js +71 -71
  32. package/build/webpack.dev.conf.js +31 -31
  33. package/build/webpack.example.conf.js +49 -49
  34. package/build/webpack.test.conf.js +31 -31
  35. package/config/dev.env.js +6 -6
  36. package/config/index.js +38 -38
  37. package/config/prod.env.js +3 -3
  38. package/config/test.env.js +6 -6
  39. package/examples/ReadCard/index.html +11 -11
  40. package/package.json +1 -1
  41. package/release.bat +5 -5
  42. package/sale-client.iml +8 -8
  43. package/src/assets/binding.svg +1 -1
  44. package/src/assets/unbind.svg +1 -1
  45. package/src/assets//345/205/254/345/221/212.svg +1 -1
  46. package/src/assets//347/207/203/346/260/224/347/274/264/350/264/271.eps +116 -116
  47. package/src/assets//350/201/224/347/263/273/346/210/221/344/273/254.svg +1 -1
  48. package/src/components/FilesManage/MeterinfoTest.vue +891 -891
  49. package/src/components/Hello.vue +39 -39
  50. package/src/components/List.vue +51 -51
  51. package/src/components/SellGasCharge/FakaList.vue +23 -23
  52. package/src/components/UserFiles/admissibility.vue +46 -46
  53. package/src/components/charge/business/DigitalCharge.vue +6 -6
  54. package/src/components/charge/business/NoCardMeterCenter.vue +460 -460
  55. package/src/components/charge/business/OtherChargeNew.vue +9 -10
  56. package/src/components/charge/gasloss/gasLossOperate.vue +15 -10
  57. package/src/components/chargeBatch/ChargeGroupList.vue +281 -0
  58. package/src/components/chargeBatch/ChargeManageGroup.vue +2 -2
  59. package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +2 -2
  60. package/src/components/getNowDate.js +25 -25
  61. package/src/components/revenue/Common/PaymentCode.vue +3 -3
  62. package/src/components/revenue/HandManager/MbpeopleList.vue +6 -6
  63. package/src/components/revenue/HandManager/MeterBookUser.vue +33 -2
  64. package/src/components/revenue/HandManager/OverdueSet.vue +45 -45
  65. package/src/components/revenue/HandManager/OverdueSetList.vue +295 -295
  66. package/src/components/revenue/HandManager/OverdueSetUser.vue +93 -93
  67. package/src/components/revenue/bank/BankDocking.vue +62 -62
  68. package/src/components/revenue/base/CardServer/CardInfoModal.vue +52 -52
  69. package/src/components/revenue/base/rightview/carddetail/StopApplyDetail.vue +70 -70
  70. package/src/components/revenue/comprehen/CardManage/CardManage.vue +83 -83
  71. package/src/components/revenue/comprehen/ComprehenOperation/ChangeAccount/TransferManage.vue +8 -2
  72. package/src/components/revenue/comprehen/ComprehenOperation/ChangeMeter/NoMessage.vue +30 -30
  73. package/src/components/revenue/comprehen/ComprehenOperation/ComprehenSearch.vue +13 -13
  74. package/src/components/revenue/comprehen/ComprehenOperation/OffGasAddGas/OffGasAddGas.vue +196 -196
  75. package/src/components/revenue/comprehen/ComprehenOperation/OtherGas/OtherGas.vue +344 -344
  76. package/src/components/revenue/comprehen/ComprehenOperation/OverCharge/OverUseCharge.vue +6 -7
  77. package/src/components/revenue/comprehen/Message/MessageList.vue +499 -480
  78. package/src/components/revenue/comprehen/TotalSplit/TotalSplitManage.vue +45 -45
  79. package/src/components/revenue/comprehen/batch/batchEditFiles.vue +237 -237
  80. package/src/components/revenue/comprehen/batch/batchEditManage.vue +131 -131
  81. package/src/components/revenue/comprehen/batch/batchUserList.vue +327 -327
  82. package/src/components/webMeter/MeterManage/WebMeterBatchOperate.vue +150 -0
  83. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +285 -269
  84. package/src/components/webMeter/meterinfo/NewMeterList.vue +9 -9
  85. package/src/components/webMeter/webInfo/WebMeterInfo.vue +1 -1
  86. package/src/components/webMeter/webInfo/WebMeterList.vue +35 -12
  87. package/src/filiale/macheng/UserBaseInfoNew.vue +346 -0
  88. package/src/filiale/macheng/sale.js +2 -1
  89. package/src/filiale/qianneng/GasPriceList.vue +18 -7
  90. package/src/filiale/qianneng/MbpeopleList.vue +2 -17
  91. package/src/filiale/tongchuan/Message/AllUser.vue +569 -0
  92. package/src/filiale/tongchuan/Message/MessageManage.vue +137 -0
  93. package/src/filiale/tongchuan/bill/CustQueryEticket.vue +2 -2
  94. package/src/filiale/tongchuan/sale.js +102 -97
  95. package/src/filiale/wuhai/MeterinfoTest.vue +1 -2
  96. package/src/filiale/wuhai/OtherChargeNew.vue +590 -0
  97. package/src/filiale/wuhai/TransferManage.vue +403 -0
  98. package/src/filiale/wuhai/UserEssentialInfoTest.vue +320 -0
  99. package/src/filiale/wuhai/sale.js +7 -2
  100. package/src/main.js +23 -23
  101. package/src/plugins/CardListen.js +29 -29
  102. package/src/plugins/CardManageService.js +21 -21
  103. package/src/plugins/LogicService.js +477 -474
  104. package/src/plugins/OffGasAddGasService.js +169 -169
  105. package/src/plugins/SelectService.js +41 -41
  106. package/src/project/ProjectPage.vue +24 -24
  107. package/src/project/State.js +17 -17
  108. package/src/sale.js +1059 -1055
  109. package/test/e2e/custom-assertions/elementCount.js +26 -26
  110. package/test/e2e/nightwatch.conf.js +40 -40
  111. package/test/e2e/runner.js +30 -30
  112. package/test/e2e/specs/test.js +13 -13
  113. package/test/unit/.eslintrc +5 -5
  114. package/test/unit/context.html +20 -20
  115. package/test/unit/index.js +13 -13
  116. package/test/unit/init.js +13 -13
  117. package/test/unit/karma.conf.js +55 -55
  118. package/test/unit/specs/components/UserFiles/AreaList.spec.js +25 -25
  119. package/test/unit/specs/components/UserFiles/UserFiles.spec.js +22 -22
  120. package/test/unit/specs/components/UserFiles/UserGeneralInfo.spec.js +55 -55
  121. package/test/unit/specs/components/revenue/Common/ReissueBill.spec.js +29 -29
  122. package/test/unit/specs/components/revenue/base/CardServer/ReadCard.spec.js +23 -23
  123. package/test/unit/specs/components/revenue/base/UserList.spec.js +21 -21
  124. package/test/unit/specs/components/revenue/base/rightview/CardList.spec.js +29 -29
  125. package/test/unit/specs/components/revenue/todoList/ToDoListManage.spec.js +20 -20
  126. package/test/unit/specs/service/delete.spec.js +8 -8
  127. package/test/unit/specs/service/getSaleInitData.spec.js +16 -16
  128. package/test/unit/specs/service/uploadFile.spec.js +8 -8
  129. package/.gradle/3.5/taskHistory/taskHistory.lock +0 -0
  130. package/.gradle/buildOutputCleanup/cache.properties.lock +0 -1
@@ -1,891 +1,891 @@
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" v-if="isiot" :class="[$m.f_meternumber.required ? 'has-error' : '']">
10
- <label for="f_meternumber" class="font_normal_body">&ensp;表&emsp;&emsp;号</label>
11
- <input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
12
- @blur="meternumberValidate()" placeholder='表号' v-validate:f_meternumber='{required: true }'
13
- v-next-el="{id: 'metertitles'}">
14
- </div>
15
- <div class="col-sm-4 form-group" v-else>
16
- <label for="f_meternumber" class="font_normal_body">&ensp;表&emsp;&emsp;号</label>
17
- <input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
18
- @blur="meternumberValidate()" placeholder='表号'
19
- v-next-el="{id: 'metertitles'}">
20
- </div>
21
- <div class="col-sm-4 form-group">
22
- <label for="f_metertitles" class="font_normal_body">&ensp;表&ensp;封&ensp;号</label>
23
- <input type="text" class="input_search" style="width:60%" v-model="row.f_metertitles" placeholder='表封号'
24
- v-next-el="{id: 'meterbase'}">
25
- </div>
26
- <div class="col-sm-4 form-group">
27
- <label for="f_meter_base" class="font_normal_body">&ensp;表&ensp;读&ensp;数</label>
28
- <input type="number" class="input_search" style="width:60%" v-model="row.f_meter_base" placeholder='表底数'
29
- :disabled="!jurisdiction.includes('档案信息查询修改')" :readonly="!row.f_userfiles_id">
30
- </div>
31
- <div class="col-sm-4 form-group">
32
- <label for="f_meter_base" class="font_normal_body">&ensp;初始底数</label>
33
- <input type="number" class="input_search" style="width:60%" v-model="row.f_initial_base" placeholder='表底数'
34
- :disabled="!jurisdiction.includes('档案信息查询修改')">
35
- </div>
36
-
37
- <div class="col-sm-4 form-group" :class="[$m.brand.required ? 'has-error' : '']">
38
- <label for="gasbrand" class="font_normal_body">气表品牌</label>
39
- <input type="text" class="input_search" style="width:60%" v-show="false" v-model="$refs.brand.selectedItems"
40
- v-validate:brand='{required: true }'>
41
- <v-select :value.sync="row.gasbrand" :options='meterbrands' placeholder='气表品牌' close-on-select
42
- search @change='brandChange' v-model='row.gasbrand' v-ref:brand></v-select>
43
- </div>
44
- <div class="col-sm-4 form-group" :class="[$m.model.required ? 'has-error' : '']">
45
- <label for="gasmodel" class="font_normal_body">气表型号</label>
46
- <input type="text" v-show="false" v-model="$refs.model.selectedItems"
47
- v-validate:model='{required: true }'>
48
- <v-select :value.sync="row.gasmodel" :options='row.gasbrand[0].gasmodel' placeholder='气表型号'
49
- close-on-select
50
- v-model='row.gasmodel' :disabled='row.gasbrand.length === 0 ' v-ref:model></v-select>
51
- </div>
52
- <div class="col-sm-4 form-group">
53
- <label for="f_meter_base" class="font_normal_body">&ensp;累购气量</label>
54
- <input type="number" class="input_search" style="width:60%" v-model="row.f_total_gas" placeholder='累购气量'
55
- :disabled="!jurisdiction.includes('档案信息查询修改')">
56
- </div>
57
-
58
- <div class="col-sm-4 form-group">
59
- <label for="f_meter_base" class="font_normal_body">&ensp;累购金额</label>
60
- <input type="number" class="input_search" style="width:60%" v-model="row.f_total_fee" placeholder='累购金额'
61
- :disabled="!jurisdiction.includes('档案信息查询修改')">
62
- </div>
63
- <div class="col-sm-4 form-group" v-show="row.f_meter_classify != '机表'">
64
- <label for="f_times" class="font_normal_body">&ensp;写卡次数</label>
65
- <input type="number" class="input_search" style="width:60%" v-model="row.f_times" placeholder='写卡次数'
66
- :disabled="!jurisdiction.includes('档案信息查询修改')">
67
- </div>
68
- <div class="col-sm-4 form-group" v-show="false">
69
- <label for="f_remanent_gas" class="font_normal_body">剩余气量</label>
70
- <input type="number" class="input_search" style="width:60%" v-model="row.f_remanent_gas"
71
- placeholder='剩余气量'
72
- :disabled="f_userinfo_id"></input>
73
- <!--<button type="button" name="button" class="btn btn-link" @click="modefiy('f_remanent_gas')" v-if="f_userinfo_id">修改</button>-->
74
- </div>
75
- <div class="col-sm-4 form-group">
76
- <label for="f_times" class="font_normal_body">&ensp;最大量程</label>
77
- <input type="number" class="input_search" style="width:60%" v-model="row.f_capacity" placeholder='最大量程'>
78
- </div>
79
- <div class="col-sm-4 form-group" v-show="row.f_meter_classify == '物联网表'">
80
- <label for="gasmodel" class="font_normal_body">&ensp;阀门状态</label>
81
- <v-select :value.sync="row.f_valve_state" :options='valvestate' placeholder='阀门状态' close-on-select
82
- v-model='row.f_valve_state'></v-select>
83
- </div>
84
- <div class="col-sm-4 form-group" v-show="row.gasbrand.length > 0 && row.gasbrand[0].f_meter_type == '物联网表' && row.gasbrand[0].f_hascard == '是'">
85
- <label class="font_normal_body" title="开户方式">开户方式</label>
86
- <v-select :value.sync="row.f_open_way" :options='openWay' value-single placeholder='开户方式' close-on-select v-if="row.f_userfiles_id"
87
- search v-model='row.f_open_way' :disabled="true"></v-select>
88
- <v-select :value.sync="row.f_open_way" :options='openWay' value-single placeholder='开户方式' close-on-select v-else
89
- search v-model='row.f_open_way' :disabled="false"></v-select>
90
- </div>
91
- </div>
92
- <div>
93
- <a style="font-size: 16px;font-weight: 500;">气价信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
94
- </div>
95
- <div class="row">
96
- <div class="col-sm-4 form-group" :class="[$m.name.required ? 'has-error' : '']">
97
- <label for="pricename" class="font_normal_body">气价名称</label>
98
- <v-select :value.sync="row.pricename" v-model="row.pricename" search
99
- placeholder='气价名称' :options="getPricenames" @change="priceChange"
100
- close-on-select :disabled="permissionPrice" v-ref:name></v-select>
101
- <input type="text" v-show="false" v-model="$refs.name.selectedItems" v-validate:name='{required: true }'>
102
- </div>
103
- <div class="col-sm-4 form-group">
104
- <label for="f_username" class="font_normal_body">&ensp;客户类型</label>
105
- <v-select :value.sync="row.f_user_type"
106
- :options='usertypes' placeholder='客户类型'
107
- @change="userTypeChange()"
108
- :disabled="true"
109
- close-on-select></v-select>
110
- </div>
111
- <div class="col-sm-4 form-group"
112
- :class="[$m.gas.required ? 'select-error' : '']">
113
- <label for="f_username" class="font_normal_body">&ensp;用气性质</label>
114
- <input type="text" v-show="false" v-model="$refs.gas.selectedItems" v-validate:gas='{required: true }'>
115
- <v-select :value.sync="row.f_gasproperties" v-model="row.f_gasproperties"
116
- :options='gasproperties' placeholder='用气性质'
117
- :disabled="true"
118
- close-on-select v-ref:gas></v-select>
119
- </div>
120
- <div class="col-sm-4 form-group">
121
- <label for="f_detailprice" class="font_normal_body">&ensp;价&emsp;&emsp;格</label>
122
- <input type="text" class="input_search" style="width:60%" v-model="row.f_detailprice" placeholder='价格'
123
- disabled>
124
- </div>
125
- <div class="col-sm-4 form-group" :class="[$m.type.required ? 'select-error' : '']">
126
- <label for="pricetype" class="font_normal_body">&ensp;气价类型</label>
127
- <v-select :value.sync="row.pricetype" v-model="row.pricetype"
128
- placeholder='气价类型' :options="pricetypes"
129
- :value-single="true"
130
- :disabled="true"
131
- close-on-select v-ref:type>
132
- </v-select>
133
- <input type="text" v-show="false" v-model="$refs.type.selectedItems" v-validate:type='{required: true }'>
134
- </div>
135
- <div class="col-sm-4 form-group">
136
- <label class="font_normal_body">&ensp;气价备注</label>
137
- <input type="text" class="input_search" style="width:60%" v-model="row.f_price_comments" placeholder='气价备注' disabled>
138
- </div>
139
- </div>
140
- <div>
141
- <a style="font-size: 16px;font-weight: 500;">表具其他信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
142
- </div>
143
- <div class="row">
144
- <div class="col-sm-4 form-group" v-show="row.f_gasproperties=='工业'||row.f_gasproperties=='工业用气'">
145
- <label for="f_gongye_type" class="font_normal_body" title="参数:工业备注">&ensp;工业备注</label>
146
- <v-select :value.sync="row.f_gongye_type" v-model='row.f_gongye_type'
147
- :options='gongyetype' placeholder='工业备注'
148
- close-on-select
149
- v-el:cc></v-select>
150
- </div>
151
- <div class="col-sm-4 form-group">
152
- <label for="gasmodel" class="font_normal_body">&ensp;表&ensp;&ensp;&ensp;&ensp;向</label>
153
- <v-select :value.sync="row.f_aroundmeter" :options='aroundmeters' placeholder='左右表' close-on-select
154
- v-model='row.f_aroundmeter'></v-select>
155
- </div>
156
- <div class="col-sm-4 form-group" >
157
- <label for="f_bqf_type" class="font_normal_body">表前阀型号</label>
158
- <input type="text" class="input_search" style="width:60%" v-model="row.f_bqf_type"
159
- placeholder='表前阀型号'>
160
- </div>
161
- <div class="col-sm-4 form-group">
162
- <label class="font_normal_body">表具使用年限</label>
163
- <input type="number" class="input_search" style="width:60%" v-model="fireinfo.f_use_limit"
164
- placeholder='表具使用年限' >
165
- </div>
166
- <div class="col-sm-4 form-group">
167
- <label for="f_gas_person" class="font_normal_body">&ensp;通&ensp;气&ensp;人</label>
168
- <input type="text" class="input_search" style="width:60%" style="width:60%" v-model="row.f_gas_person"
169
- placeholder='通气人'></input>
170
- <!-- <v-select :value.sync="row.f_gas_person" v-model="row.f_gas_person"
171
- :options='gasperson' placeholder='通气人'
172
- close-on-select></v-select> -->
173
- </div>
174
- <div class="col-sm-4 form-group" :class="[$m.f_gas_date.required ? 'has-error' : '']">
175
- <input type="text" v-model="$refs.f_gas_date.value" v-show="false" v-validate:f_gas_date='{required: true }'>
176
- <label for="f_gas_date" class="font_normal_body">&ensp;通气日期</label>
177
- <datepicker style="width:60%" placeholder="通气日期"
178
- v-model="row.f_gas_date"
179
- v-ref:f_gas_date
180
- :value.sync="row.f_gas_date"
181
- :format="'yyyy-MM-dd HH:mm:ss'"
182
- ></datepicker>
183
- </div>
184
-
185
- <div class="col-sm-4 form-group" >
186
- <label for="f_position" class="font_normal_body" title="参数:安装位置">&ensp;安装位置</label>
187
- <v-select :value.sync="row.f_position" v-model="row.f_position"
188
- :options='positions' placeholder='安装位置'
189
- close-on-select></v-select>
190
- </div>
191
- <div class="col-sm-4 form-group" v-show="true">
192
- <label for="f_install_person" class="font_normal_body">&ensp;安&ensp;装&ensp;人</label>
193
- <v-select :value.sync="row.f_install_person" v-model="row.f_install_person"
194
- :options='installperson' placeholder='安装人'
195
- close-on-select></v-select>
196
- </div>
197
- <div class="col-sm-4 form-group">
198
- <label for="f_subscribe_date" class="font_normal_body">&ensp;预约时间</label>
199
- <datepicker style="width:60%" placeholder="预约通气时间"
200
- v-model="row.f_subscribe_date"
201
- :value.sync="row.f_subscribe_date"
202
- :format="'yyyy-MM-dd HH:mm:ss'"
203
- ></datepicker>
204
- </div>
205
- <div class="col-sm-4 form-group" v-show="opteratormetrbook" >
206
- <label for="f_position" class="font_normal_body" >&ensp;抄&ensp;表&ensp;册</label>
207
- <v-select :value.sync="row.f_meter_book_num" v-model="row.f_meter_book_num"
208
- :value-single="true"
209
- :options='meterbookoptions' placeholder='抄表册'
210
- close-on-select></v-select>
211
- </div>
212
- <div class="col-sm-4 form-group" v-show="true" :class="[$m.f_install_date.required ? 'has-error' : '']">
213
- <input type="text" v-model="$refs.f_install_date.value" v-show="false" v-validate:f_install_date='{required: true }'>
214
- <label for="f_install_date" class="font_normal_body">&ensp;安装日期</label>
215
- <datepicker style="width:60%" id="startDate" placeholder="安装日期" width='100%'
216
- v-model="row.f_install_date"
217
- :value.sync="row.f_install_date"
218
- class="datepicker"
219
- v-ref:f_install_date
220
- :format="'yyyy-MM-dd HH:mm:ss'"
221
- :show-reset-button="true">
222
- </datepicker>
223
- </div>
224
- <div class="col-sm-4 form-group">
225
- <label for="f_adjustable" class="font_normal_body">&ensp;调&ensp;压&ensp;箱</label>
226
- <v-select :value.sync="row.f_adjustable" :options='adjustables' placeholder='调压箱' close-on-select
227
- v-model='row.f_adjustable' :search='true'></v-select>
228
- </div>
229
- <div class="col-sm-4 form-group">
230
- <label for="f_hand_date" class="font_normal_body">&ensp;上次抄表</label>
231
- <datepicker style="width:60%" id="f_hand_date" placeholder="上次抄表日期"
232
- v-model="row.f_hand_date"
233
- :value.sync="row.f_hand_date"
234
- class="datepicker"
235
- :format="'yyyy-MM-dd HH:mm:ss'"
236
- :show-reset-button="true">
237
- </datepicker>
238
- </div>
239
- <div v-if="ratioshow" class="col-sm-4 form-group"
240
- :class="[$m.meternumber.required ? 'has-error' : '']">
241
- <label for="f_ratio" class="font_normal_body">比&emsp;&emsp;率</label>
242
- <input type="number" class="input_search" style="width:60%" v-model="row.f_price_ratio"
243
- :value.sync="row.f_price_ratio"
244
- v-validate:meternumber='{required: true }' placeholder='比率'>
245
- </div>
246
- <div class="col-sm-4 form-group" >
247
- <label for="f_scrap_date" class="font_normal_body">&ensp;报废日期</label>
248
- <datepicker style="width:60%" id="ScrapDate" placeholder="报废日期" width='100%'
249
- v-model="row.f_scrap_date"
250
- :value.sync="row.f_scrap_date"
251
- class="datepicker"
252
- :format="'yyyy-MM-dd'"
253
- :show-reset-button="true">
254
- </datepicker>
255
- </div>
256
- <div class="col-sm-4 form-group">
257
- <label for="gasmodel" class="font_normal_body">&ensp;垃&ensp;圾&ensp;费</label>
258
- <v-select :value.sync="row.f_garbage_fee" :options='garbagefee' placeholder='垃圾费' close-on-select
259
- :value-single="true"
260
- v-model='row.f_garbage_fee'></v-select>
261
- </div>
262
- <div class="col-sm-4 form-group">
263
- <label class="font_normal_body">&ensp;抄&ensp;表&ensp;员</label>
264
- <v-select :value.sync="row.f_inputtor" v-model='row.f_inputtor'
265
- style="width:60%"
266
- :options='inputtores' placeholder='抄表员'
267
- close-on-select
268
- condition="f_inputtor like '%{}%'" v-el:cc></v-select>
269
- </div>
270
- <div class="col-sm-4 form-group" >
271
- <label for="f_usetype" class="font_normal_body" title="参数:使用类型">&ensp;使用类型</label>
272
- <v-select :value.sync="row.f_usetype" v-model="row.f_usetype"
273
- :options='usetype' placeholder='使用类型'
274
- close-on-select></v-select>
275
- </div>
276
- <div class="col-sm-4 form-group" >
277
- <label for="f_position" class="font_normal_body" title="参数:使用状态">&ensp;使用状态</label>
278
- <v-select :value.sync="row.f_usestate" v-model="row.f_usestate"
279
- :options='usestate' placeholder='使用状态'
280
- close-on-select></v-select>
281
- </div>
282
- <div class="col-sm-4 form-group" >
283
- <label for="f_limit_sms" class="font_normal_body">&ensp;短信限定</label>
284
- <input type="text" class="input_search" style="width:60%" v-model="row.f_limit_sms"
285
- placeholder='短信限定'></input>
286
- </div>
287
- <div style="" class="col-sm-4 form-group">
288
- <label for="f_alarm_code" class="font_normal_body ">&ensp;报警器号</label>
289
- <input type="text" class="input_search" style="width:60%" v-model="row.f_alarm_code" placeholder='报警器号'/>
290
- </div>
291
- <div style="" class="col-sm-4 form-group">
292
- <label for="f_hand_month" class="font_normal_body ">&ensp;抄表月份</label>
293
- <v-select :value.sync="row.f_hand_month" v-model="row.f_hand_month"
294
- :options='handmonth' placeholder='抄表月份'
295
- close-on-select></v-select>
296
- </div>
297
- <div style="" class="col-sm-4 form-group">
298
- <label for="f_userfiles_address" class="font_normal_body ">&ensp;用气点名</label>
299
- <input class="input_search" style="width:60%" v-model="row.f_userfiles_address"/>
300
- </div>
301
- <div style="" class="col-sm-4 form-group">
302
- <label class="font_normal_body">&ensp;经&ensp;&ensp;&ensp;&ensp;度</label>
303
- <input type="text" style="width:60%" v-model="row.f_userfiles_lng" class="input_search" placeholder="经度"/>
304
- </div>
305
- <div style="" class="col-sm-4 form-group">
306
- <label class="font_normal_body">&ensp;纬&ensp;&ensp;&ensp;&ensp;度</label>
307
- <input type="text" style="width:48%" v-model="row.f_userfiles_lat" class="input_search" placeholder="纬度"/>
308
- &ensp;<span class="glyphicon glyphicon-map-marker" @click="openModal" ></span>
309
- </div>
310
- <div class="col-sm-4 form-group" v-if="config.overduesetShow">
311
- <label class="font_normal_body">滞纳金规则</label>
312
- <v-select :value.sync="row.f_overdue_set" v-model="row.f_overdue_set"
313
- :options='overdueset' placeholder='滞纳金规则'
314
- close-on-select></v-select>
315
- </div>
316
-
317
- <template v-if="config.stuckFlowmeterShow">
318
- <div class="col-sm-4 form-group">
319
- <label class="font_normal_body" title="控制器通经">控制器通经</label>
320
- <input type="text" class="input_search" style="width:60%" v-model="row.f_control_pass"
321
- placeholder='控制器通经'></input>
322
- </div>
323
- <div class="col-sm-4 form-group">
324
- <label class="font_normal_body" title="控制器压力等级">控制器压力等级</label>
325
- <input type="text" class="input_search" style="width:60%" v-model="row.f_control_mpa_level"
326
- placeholder='控制器压力等级'></input>
327
- </div>
328
- <div class="col-sm-4 form-group">
329
- <label class="font_normal_body" title="流量计表号">流量计表号</label>
330
- <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_number"
331
- placeholder='流量计表号'></input>
332
- </div>
333
- <div class="col-sm-4 form-group">
334
- <label class="font_normal_body" title="流量计表封号">流量计表封号</label>
335
- <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_metertitles"
336
- placeholder='流量计表封号'></input>
337
- </div>
338
- <div class="col-sm-4 form-group">
339
- <label class="font_normal_body" title="流量计品牌">流量计品牌</label>
340
- <v-select :value.sync="row.f_flowmeter_brand" :options='flowmeterbrands' value-single placeholder='流量计品牌' close-on-select
341
- search v-model='row.f_flowmeter_brand'></v-select>
342
- </div>
343
- <div class="col-sm-4 form-group">
344
- <label class="font_normal_body" title="流量计型号">流量计型号</label>
345
- <v-select :value.sync="row.f_flowmeter_model" :options='flowmetermodels(row.f_flowmeter_brand)' value-single placeholder='流量计型号' close-on-select
346
- v-model='row.f_flowmeter_model' :disabled='row.f_flowmeter_brand.length === 0'></v-select>
347
- </div>
348
- <div class="col-sm-4 form-group">
349
- <label class="font_normal_body" title="流量计通经">流量计通经</label>
350
- <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_pass"
351
- placeholder='流量计通经'></input>
352
- </div>
353
- <div class="col-sm-4 form-group">
354
- <label class="font_normal_body" title="流量计压力等级">流量计压力等级</label>
355
- <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_mpa_level"
356
- placeholder='流量计压力等级'></input>
357
- </div>
358
- <div class="col-sm-4 form-group">
359
- <label class="font_normal_body" title="流量计出厂日期">流量计出厂日期</label>
360
- <datepicker style="width:60%" placeholder="流量计出厂日期"
361
- v-model="row.f_flowmeter_factory_date"
362
- :value.sync="row.f_flowmeter_factory_date"
363
- :format="'yyyy-MM-dd HH:mm:ss'"
364
- ></datepicker>
365
- </div>
366
- <div class="col-sm-4 form-group">
367
- <label class="font_normal_body" title="流量计精准度">流量计精准度</label>
368
- <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_accuracy"
369
- placeholder='流量计精准度'></input>
370
- </div>
371
- <div class="col-sm-4 form-group">
372
- <label class="font_normal_body" title="流量计电仪出厂编号">流量计电仪出厂编号</label>
373
- <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_factory_num"
374
- placeholder='流量计电仪出厂编号'></input>
375
- </div>
376
- <div class="col-sm-4 form-group">
377
- <label class="font_normal_body" title="流量计电仪出厂编号">流量计类型</label>
378
- <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_type"
379
- placeholder='流量计类型'></input>
380
- </div>
381
- <div class="col-sm-4 form-group">
382
- <label class="font_normal_body" title="流量计安装日期">流量计安装日期</label>
383
- <datepicker style="width:60%" placeholder="流量计安装日期"
384
- v-model="row.f_flowmeter_install_date"
385
- :value.sync="row.f_flowmeter_install_date"
386
- :format="'yyyy-MM-dd HH:mm:ss'"
387
- ></datepicker>
388
- </div>
389
- </template>
390
- </div>
391
- </form>
392
- </validator>
393
- <!--<idverify :show.sync="show" @change-con="changeVal"></idverify>-->
394
- <modal v-if="showParame" :show.sync="showParame" v-ref:modal backdrop="false">
395
- <header slot="modal-header" class="modal-header">
396
- <button type="button" class="close" @click="cancel"><span>&times;</span></button>
397
- <h3 class="modal-title" style="text-align: center;">添加参数</h3>
398
- </header>
399
- <article slot="modal-body" class="modal-body">
400
- <add-json-parameter v-ref:addparamlist :gasmodel_id="userfileid" :gastype="gastype"
401
- :gasid="gasid"></add-json-parameter>
402
- </article>
403
- <footer slot="modal-footer" class="modal-footer">
404
- <button type="button" class="btn btn-primary" @click='confirmUserfiles()'>确认</button>
405
- </footer>
406
- </modal>
407
-
408
- <modal :show.sync="mapShow" v-if="mapShow" large backdrop="false" :width="900">
409
- <header slot="modal-header" class="modal-header">
410
- </header>
411
- <article slot="modal-body" class="modal-body">
412
- <amap-location :islocationclearmark="false" dom="addboxmap" v-ref:positionInfo @getmylocation="getmylocation"></amap-location>
413
- </article>
414
- <footer slot="modal-footer" class="modal-footer">
415
- <button v-show="mapShow" type="button" class="button_clear btn-gn" @click='closeModal'>取消</button>
416
- <button v-show="mapShow" type="button" class="button_clear btn-gn" @click='confirmLocation'>确认</button>
417
- </footer>
418
- </modal>
419
- </div>
420
- </template>
421
-
422
- <script>
423
- import co from 'co'
424
- import {HttpResetClass} from 'vue-client'
425
- import Vue from 'vue'
426
-
427
- let meterBookGen = function * (self) {
428
- if (self.$login.r.find(value => value == '抄表册建档')) {
429
- self.opteratormetrbook = true
430
- }
431
- let temp = {
432
- tablename: 't_meter_book',
433
- condition: `f_book_state='有效' and f_filiale_id='${self.$login.f.orgid}'`
434
- }
435
- let http = new HttpResetClass()
436
- let meterbooks = yield http.load('POST', 'rs/sql/saleSingleTable', {data: temp},
437
- {resolveMsg: null, rejectMsg: '获取抄表册信息失败!!'})
438
- if (meterbooks.data.length > 0) {
439
- let options = []
440
- for (let i = 0; i < meterbooks.data.length; i++) {
441
- let tmp = {label: meterbooks.data[i].f_book_name, value: `${meterbooks.data[i].id}`}
442
- options.push(tmp)
443
- }
444
- self.meterbookoptions = options
445
- }
446
- try {
447
- let result = yield http.load('GET', `rs/vue/MeterinfoTest.json`, {}, {resolveMsg: null, rejectMsg: null})
448
- Object.assign(self.config, result.data)
449
- if (!self.row.f_open_way) self.row.f_open_way = self.config.open_way
450
- } catch (error) {
451
- // 忽略704,文件找不到异常
452
- if (error.status !== 704) {
453
- throw error
454
- }
455
- }
456
- }
457
- let brandChangeGen = function* (self, val) {
458
- let beforeRecord = null
459
-
460
- if (self.meter.f_meter_classify === '机表') {
461
- beforeRecord = yield self.$resetpost('rs/sql/saleSingleTable', {
462
- data: {
463
- tablename: 't_handplan',
464
- condition: `f_user_id = '${self.row.f_user_id}' and f_meter_state in ('已抄表','未抄表')`
465
- }
466
- }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前机表抄表信息出错!!'})
467
- } else {
468
- beforeRecord = yield self.$resetpost('rs/sql/saleSingleTable', {
469
- data: {
470
- tablename: 't_sellinggas',
471
- condition: `f_user_id = '${self.row.f_user_id}' and f_state = '有效'`
472
- }
473
- }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前卡表收费信息出错!!'})
474
- }
475
- if (beforeRecord.data.length > 0 && self.row.gasbrand[0].f_meter_brand != self.oldrow.gasbrand[0].f_meter_brand) {
476
- self.$showAlert('该气表已投入使用,如需更改请执行换表操作', 'warning', 3000)
477
- // self.row.gasbrand = self.meter.gasbrand
478
- self.$dispatch('success')
479
- /* self.row.valid = bool
480
- self.$dispatch('self-valid') */
481
- } else {
482
- self.row.f_whether_hairpin = self.row.gasbrand[0].f_meter_type === '机表' ? '无卡' : '未发'
483
- }
484
- console.log('111', self.row)
485
- }
486
- export default {
487
- title: '表具信息',
488
- data () {
489
- return {
490
- config: {
491
- // 卡控流量计相关字段显示
492
- stuckFlowmeterShow: false,
493
- overduesetShow: true,
494
- open_way: '指令开户'
495
- },
496
- mapShow: false,
497
- viewsee: false,
498
- row: this.meter,
499
- show: false,
500
- field: '',
501
- ratioshow: false,
502
- userfileid: '',
503
- gasid: '',
504
- gastype: 'userfiles',
505
- showParame: false,
506
- selectUserFiles: '', // 选中的 userfiles
507
- jurisdiction: this.$login.r,
508
- positions: this.$appdata.getParam('安装位置'),
509
- usetype: this.$appdata.getParam('使用类型'),
510
- usestate: this.$appdata.getParam('使用状态'),
511
- aroundmeters: this.$appdata.getParam('左右表'),
512
- garbagefee: this.$appdata.getParam('垃圾费'),
513
- valvestate: this.$appdata.getParam('阀门状态'),
514
- usertypes: this.$appdata.getParam('用户类型'),
515
- handmonth: [{label: '单月', value: '单月'}, {label: '双月', value: '双月'}],
516
- gasproperties: this.meter.f_user_type.length === 1 ? this.$appdata.getParam(this.meter.f_user_type[0]) : [],
517
- pricetypes: this.$appdata.getParam('气价类型'),
518
- industrycomments: this.$appdata.getParam('工业备注'),
519
- openWay: [{label: '指令开户', value: '指令开户'}, {label: '发卡开户', value: '发卡开户'}],
520
- meterbookoptions: [], // 抄表册选项
521
- opteratormetrbook: false, // 抄表册操作
522
- oldrow: [],
523
- overdueset:[],
524
- isiot: true,
525
- templng: '', // 临时经度
526
- templat: '' // 临时纬度
527
- }
528
- },
529
- props: ['f_filialeid', 'meter', 'isdecimal', 'valid', 'f_userinfo_id','overdueset'],
530
- ready () {
531
- console.log('看看meter里面的数据', this.meter, this.row)
532
- this.row = Object.assign(this.row, this.meter, {})
533
- this.oldrow = this.row
534
- this.isdecimal = this.row.gasbrand.length > 0 ? this.row.gasbrand.f_isdecimal : '否'
535
- this.row.valid = false
536
- if (this.row.pricetype === '混合气价') {
537
- this.ratioshow = true
538
- }
539
- co(meterBookGen(this))
540
- },
541
- methods: {
542
- async confirmUserfiles () {
543
- if (this.$refs.addparamlist.confirm()) {
544
- var paramlist = this.$refs.addparamlist.addGasParameter
545
- await this.$resetpost('rs/logic/updateGasParam', {
546
- data: {
547
- id: this.selectUserFiles.f_user_id,
548
- paramlist: paramlist,
549
- gastype: 'userfiles'
550
- }
551
- }, {resolveMsg: '更新成功', rejectMsg: '更新失败'})
552
- this.showParame = false
553
- }
554
- },
555
-
556
- priceChange (val) {
557
- if (val.length > 0) {
558
- this.row.f_user_type = [val[0].f_user_type]
559
- this.row.f_gasproperties = [val[0].f_gasproperties]
560
- this.row.pricetype = val[0].f_price_type
561
- // 展示气价备注
562
- this.$set('row.f_price_comments', val[0].f_comments ? val[0].f_comments : '无')
563
- // 展示价格明细
564
- if (val[0].detailprice) {
565
- // this.row.f_detailprice = this.$CommonService.getShowPriceDetail(val[0].detailprice)
566
- this.$set('row.f_detailprice', this.$CommonService.getShowPriceDetail(val[0].detailprice))
567
- }
568
- }
569
- },
570
- cancel () {
571
- this.gasid = ''
572
- this.userfileid = ''
573
- this.showParame = false
574
- },
575
- tablebaseChange () {
576
- if (this.isdecimal === '是') {
577
- this.$set('row.f_meter_base', (this.row.f_meter_base - 0).toFixed(4))
578
- } else {
579
- this.$set('row.f_meter_base', (this.row.f_meter_base - 0).toFixed(0))
580
- }
581
- },
582
- brandChange (val) {
583
- this.isdecimal = val.length > 0 ? val[0].f_isdecimal : '否'
584
- console.log('sadasfasf', val)
585
- if (val.length > 0 && val[0].f_meter_type === '物联网表') {
586
- this.isiot = true
587
- } else {
588
- this.isiot = false
589
- }
590
- // this.tablebaseChange()
591
- if (this.row.f_user_id) {
592
- co(brandChangeGen(this))
593
- }
594
- this.meternumberValidate()
595
- },
596
- userTypeChange () {
597
- this.gasproperties = []
598
- if (this.row.f_user_type.length === 1) {
599
- this.gasproperties = this.$appdata.getParam(this.row.f_user_type[0])
600
- }
601
- },
602
- // getPricenames(pricetype) {
603
- // console.log('气价。,。。', pricetype, this.row.f_user_type, this.row.f_gasproperties)
604
- // let rs = []
605
- // if (this.row.f_user_type.length === 1 && this.row.f_gasproperties.length === 1 && pricetype.length === 1) {
606
- // let params = {
607
- // f_user_type: this.row.f_user_type[0],
608
- // f_gasproperties: this.row.f_gasproperties[0],
609
- // f_price_type: pricetype[0],
610
- // filter: this.f_filialeid
611
- // }
612
- // rs = this.$GetSaleParam.getPrice(params)
613
- // }
614
- // if (rs.length === 0) {
615
- // this.row.f_price_name = ''
616
- // }
617
- // return rs
618
- // },
619
- mValid (bool) {
620
- this.row.valid = bool
621
- this.$dispatch('self-valid')
622
- },
623
- // 带权限修改单值返回修改后得值和修改原因
624
- modefiy (field) {
625
- this.show = true
626
- this.field = field
627
- },
628
- async meternumberValidate () {
629
- let http1 = new HttpResetClass()
630
- let res1 = await http1.load('POST', '/rs/sql/getBrandAndType', {data: {condition: ` mi.f_meternumber = '${this.row.f_meternumber}' and mi.f_filialeid= '${this.$login.f.orgid}'`}}, {resolveMsg: null, rejectMsg: '获取默认气表品牌型号失败!!'})
631
- if (res1.data.length > 0) {
632
- // 替换表号自带的气表品牌和型号
633
- let meterbrands = this.meterbrands
634
- for (let row of meterbrands) {
635
- if (row.label == res1.data[0].f_meter_brand) {
636
- // 已经选择了气表品牌则不再替换
637
- if (this.row.gasbrand.length <= 0) this.row.gasbrand = [row.value]
638
- // 替换气表型号
639
- if (res1.data[0].f_meter_style) {
640
- for (let model of row.value.gasmodel) {
641
- if (model.label == res1.data[0].f_meter_style) {
642
- // 已经选择了气表型号则不再替换
643
- if (this.row.gasmodel.length <= 0) this.row.gasmodel = [model.value]
644
- continue
645
- }
646
- }
647
- }
648
- continue
649
- }
650
- }
651
- }
652
- // 验证表号
653
- if (this.row.f_meternumber && this.row.gasbrand.length > 0) {
654
- // 表号位数验证
655
- let meternumberLen = this.row.gasbrand[0].f_meternumber_len
656
- if (meternumberLen) {
657
- if (this.row.f_meternumber.length != meternumberLen) {
658
- this.row.f_meternumber = ''
659
- this.$showAlert(`表号位数不正确, 当前气表品牌表号位数是: ${meternumberLen}`, 'warning', 3000)
660
- return
661
- }
662
- }
663
- // 表计信息验证
664
- if (this.row.gasbrand[0].f_meterverification == '是') {
665
- if (res1.data.length <= 0) {
666
- this.$showAlert(`当前表号: ${this.row.f_meternumber}在表计信息中无记录, 请核实!!!`, 'warning', 3000)
667
- this.row.f_meternumber = ''
668
- return
669
- }
670
- }
671
- let param = {
672
- f_meternumber: this.row.f_meternumber,
673
- f_gasbrand_id: this.row.gasbrand[0].id
674
- }
675
- if (this.row.f_userfiles_id) {
676
- param.f_userfiles_id = this.row.f_userfiles_id
677
- }
678
- let res = await this.$resetpost('rs/logic/meternumberValidate', param, {
679
- resolveMsg: null,
680
- rejectMsg: '表号验证失败!!'
681
- })
682
- if (this.row.gasbrand[0].f_meter_type === '物联网表') {
683
- if (res.data) {
684
- this.row.f_meternumber = ''
685
- this.$showAlert('表号已存在!!', 'warning', 3000)
686
- }
687
- } else {
688
- if (res.data) {
689
- this.$showAlert('请注意,相同的表号已存在', 'warning', 3000)
690
- }
691
- }
692
- }
693
- },
694
- openModal () {
695
- this.mapShow = true
696
- },
697
- closeModal () {
698
- this.mapShow = false;
699
- },
700
- getmylocation (res) {
701
- this.templng = res.position.lng
702
- this.templat = res.position.lat
703
- },
704
- confirmLocation () {
705
- this.row.f_userfiles_lat = this.templat
706
- this.row.f_userfiles_lng = this.templng
707
- this.mapShow = false;
708
- },
709
- flowmetermodels (label) {
710
- let gasbrand = this.$GetSaleParam.getGasbrand()
711
- let flowmetermodels = []
712
- for (let row of gasbrand) {
713
- if (row.label == label) {
714
- for (let gasmodel of row.value.gasmodel) {
715
- flowmetermodels.push({label: gasmodel.label, value: gasmodel.label})
716
- }
717
- break
718
- }
719
- }
720
- return flowmetermodels
721
- }
722
- },
723
- watch: {
724
- 'meter' () {
725
- this.row = Object.assign(this.row, this.meter, {})
726
- this.isdecimal = this.row.gasbrand.f_isdecimal
727
- this.row.valid = false
728
- this.showtype = this.row.gasbrand.f_meter_type
729
- },
730
- 'row.pricetype' (val) {
731
- if (val == '混合气价') {
732
- this.ratioshow = true
733
- } else {
734
- this.ratioshow = false
735
- }
736
- }
737
-
738
- },
739
- computed: {
740
-
741
- // 控制用户类型修改
742
- permissionUserType () {
743
- let res = false
744
- if (this.row.f_user_id) {
745
- res = !(this.jurisdiction.includes('民用气价修改') && this.jurisdiction.includes('非民用气价修改'))
746
- }
747
- return res
748
- },
749
-
750
- // 控制用气性质,气价类型,气价名称修改
751
- permissionPrice () {
752
- let res = false
753
- if (this.row.f_user_id) {
754
- console.log('获取权限、', this.row, this.jurisdiction)
755
- // 变更操作
756
- if (this.row.pricename.length > 0) {
757
- if (this.row.f_user_type[0] === '民用') {
758
- // 判断是否有民用气价权限
759
- res = !this.jurisdiction.includes('民用气价修改')
760
- } else if (this.row.f_user_type[0] === '非民用') {
761
- // 判断是否有非民用气价权限
762
- res = !this.jurisdiction.includes('非民用气价修改')
763
- }
764
- }
765
- }
766
- console.log('有无气价权限', res)
767
- return res
768
- },
769
-
770
- getPricenames () {
771
- let f_filialeid = this.f_filialeid
772
- let result = []
773
- this.$GetSaleParam.prices.forEach((item) => {
774
- if (item.f_state === '有效' && f_filialeid == item.f_filialeid) {
775
- let value = {
776
- label: item.f_price_name,
777
- value: item
778
- }
779
- result.push(value)
780
- }
781
- })
782
- return Array.from(new Set(result))
783
- },
784
-
785
- adjustables () {
786
- let arr = []
787
- let filter = this.f_filialeid
788
- this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
789
- let temp = {}
790
- temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
791
- temp.value = item.value
792
- arr.push(temp)
793
- })
794
- return [{label: '全部', value: ''}, ...arr]
795
- },
796
- inputtores () {
797
- // return this.$login.f.f_gasman
798
- let rs = new Array()
799
- for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
800
- let temp = {
801
- label: this.$login.f.f_gasman[i].name,
802
- value: this.$login.f.f_gasman[i].name
803
- }
804
- rs.push(temp)
805
- }
806
- return rs
807
- },
808
- installperson () {
809
- // return this.$login.f.f_installman
810
- let rs = new Array()
811
- for (let i = 0; i < this.$login.f.f_installman.length; i++) {
812
- let temp = {
813
- label: this.$login.f.f_installman[i].name,
814
- value: this.$login.f.f_installman[i].name
815
- }
816
- rs.push(temp)
817
- }
818
- return rs
819
- },
820
- meterbrands () {
821
- return this.$GetSaleParam.getGasbrand()
822
- },
823
- aroundmeters () {
824
- return this.$appdata.getParam('左右表')
825
- },
826
- positions () {
827
- return this.$appdata.getParam('安装位置')
828
- },
829
- usetype () {
830
- return this.$appdata.getParam('使用类型')
831
- },
832
- usestate () {
833
- return this.$appdata.getParam('使用状态')
834
- },
835
- gongyetype () {
836
- return this.$appdata.getParam('工业备注')
837
- },
838
- flowmeterbrands () {
839
- let gasbrand = this.$GetSaleParam.getGasbrand()
840
- let flowmeterbrands = []
841
- for (let row of gasbrand) {
842
- flowmeterbrands.push({label: row.label, value: row.label})
843
- }
844
- return flowmeterbrands
845
- }
846
- }
847
- }
848
- </script>
849
- <style lang="less">
850
- #meterInfoTest{
851
- #addboxmap {
852
- height: 300px;
853
- }
854
- .glyphicon-map-marker:hover {
855
- color: red;
856
- }
857
- .glyphicon-map-marker {
858
- color: blue;
859
- cursor: pointer;
860
- }
861
- .col-sm-4 {
862
- .font_normal_body {
863
- width: 73px;
864
- overflow: auto;
865
- white-space: nowrap;
866
- // 指滚动条两边的按钮
867
- &::-webkit-scrollbar-button {
868
- display: none;
869
- }
870
- // 滚动条的宽度
871
- &::-webkit-scrollbar {
872
- width: 5px !important;
873
- height: 5px !important;
874
- }
875
- // 滚动条的设置
876
- &::-webkit-scrollbar-thumb {
877
- background-color: #ddd;
878
- background-clip: padding-box;
879
- }
880
- &::-webkit-scrollbar-thumb:hover {
881
- background-color: #bbb;
882
- }
883
- &::-webkit-scrollbar-track {
884
- /*滚动条里面轨道*/
885
- box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
886
- background: #ededed;
887
- }
888
- }
889
- }
890
- }
891
- </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" v-if="isiot" :class="[$m.f_meternumber.required ? 'has-error' : '']">
10
+ <label for="f_meternumber" class="font_normal_body">&ensp;表&emsp;&emsp;号</label>
11
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
12
+ @blur="meternumberValidate()" placeholder='表号' v-validate:f_meternumber='{required: true }'
13
+ v-next-el="{id: 'metertitles'}">
14
+ </div>
15
+ <div class="col-sm-4 form-group" v-else>
16
+ <label for="f_meternumber" class="font_normal_body">&ensp;表&emsp;&emsp;号</label>
17
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
18
+ @blur="meternumberValidate()" placeholder='表号'
19
+ v-next-el="{id: 'metertitles'}">
20
+ </div>
21
+ <div class="col-sm-4 form-group">
22
+ <label for="f_metertitles" class="font_normal_body">&ensp;表&ensp;封&ensp;号</label>
23
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_metertitles" placeholder='表封号'
24
+ v-next-el="{id: 'meterbase'}">
25
+ </div>
26
+ <div class="col-sm-4 form-group">
27
+ <label for="f_meter_base" class="font_normal_body">&ensp;表&ensp;读&ensp;数</label>
28
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_meter_base" placeholder='表底数'
29
+ :disabled="!jurisdiction.includes('档案信息查询修改')" :readonly="!row.f_userfiles_id">
30
+ </div>
31
+ <div class="col-sm-4 form-group">
32
+ <label for="f_meter_base" class="font_normal_body">&ensp;初始底数</label>
33
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_initial_base" placeholder='表底数'
34
+ :disabled="!jurisdiction.includes('档案信息查询修改')">
35
+ </div>
36
+
37
+ <div class="col-sm-4 form-group" :class="[$m.brand.required ? 'has-error' : '']">
38
+ <label for="gasbrand" class="font_normal_body">气表品牌</label>
39
+ <input type="text" class="input_search" style="width:60%" v-show="false" v-model="$refs.brand.selectedItems"
40
+ v-validate:brand='{required: true }'>
41
+ <v-select :value.sync="row.gasbrand" :options='meterbrands' placeholder='气表品牌' close-on-select
42
+ search @change='brandChange' v-model='row.gasbrand' v-ref:brand></v-select>
43
+ </div>
44
+ <div class="col-sm-4 form-group" :class="[$m.model.required ? 'has-error' : '']">
45
+ <label for="gasmodel" class="font_normal_body">气表型号</label>
46
+ <input type="text" v-show="false" v-model="$refs.model.selectedItems"
47
+ v-validate:model='{required: true }'>
48
+ <v-select :value.sync="row.gasmodel" :options='row.gasbrand[0].gasmodel' placeholder='气表型号'
49
+ close-on-select
50
+ v-model='row.gasmodel' :disabled='row.gasbrand.length === 0 ' v-ref:model></v-select>
51
+ </div>
52
+ <div class="col-sm-4 form-group">
53
+ <label for="f_meter_base" class="font_normal_body">&ensp;累购气量</label>
54
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_total_gas" placeholder='累购气量'
55
+ :disabled="!jurisdiction.includes('档案信息查询修改')">
56
+ </div>
57
+
58
+ <div class="col-sm-4 form-group">
59
+ <label for="f_meter_base" class="font_normal_body">&ensp;累购金额</label>
60
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_total_fee" placeholder='累购金额'
61
+ :disabled="!jurisdiction.includes('档案信息查询修改')">
62
+ </div>
63
+ <div class="col-sm-4 form-group" v-show="row.f_meter_classify != '机表'">
64
+ <label for="f_times" class="font_normal_body">&ensp;写卡次数</label>
65
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_times" placeholder='写卡次数'
66
+ :disabled="!jurisdiction.includes('档案信息查询修改')">
67
+ </div>
68
+ <div class="col-sm-4 form-group" v-show="false">
69
+ <label for="f_remanent_gas" class="font_normal_body">剩余气量</label>
70
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_remanent_gas"
71
+ placeholder='剩余气量'
72
+ :disabled="f_userinfo_id"></input>
73
+ <!--<button type="button" name="button" class="btn btn-link" @click="modefiy('f_remanent_gas')" v-if="f_userinfo_id">修改</button>-->
74
+ </div>
75
+ <div class="col-sm-4 form-group">
76
+ <label for="f_times" class="font_normal_body">&ensp;最大量程</label>
77
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_capacity" placeholder='最大量程'>
78
+ </div>
79
+ <div class="col-sm-4 form-group" v-show="row.f_meter_classify == '物联网表'">
80
+ <label for="gasmodel" class="font_normal_body">&ensp;阀门状态</label>
81
+ <v-select :value.sync="row.f_valve_state" :options='valvestate' placeholder='阀门状态' close-on-select
82
+ v-model='row.f_valve_state'></v-select>
83
+ </div>
84
+ <div class="col-sm-4 form-group" v-show="row.gasbrand.length > 0 && row.gasbrand[0].f_meter_type == '物联网表' && row.gasbrand[0].f_hascard == '是'">
85
+ <label class="font_normal_body" title="开户方式">开户方式</label>
86
+ <v-select :value.sync="row.f_open_way" :options='openWay' value-single placeholder='开户方式' close-on-select v-if="row.f_userfiles_id"
87
+ search v-model='row.f_open_way' :disabled="true"></v-select>
88
+ <v-select :value.sync="row.f_open_way" :options='openWay' value-single placeholder='开户方式' close-on-select v-else
89
+ search v-model='row.f_open_way' :disabled="false"></v-select>
90
+ </div>
91
+ </div>
92
+ <div>
93
+ <a style="font-size: 16px;font-weight: 500;">气价信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
94
+ </div>
95
+ <div class="row">
96
+ <div class="col-sm-4 form-group" :class="[$m.name.required ? 'has-error' : '']">
97
+ <label for="pricename" class="font_normal_body">气价名称</label>
98
+ <v-select :value.sync="row.pricename" v-model="row.pricename" search
99
+ placeholder='气价名称' :options="getPricenames" @change="priceChange"
100
+ close-on-select :disabled="permissionPrice" v-ref:name></v-select>
101
+ <input type="text" v-show="false" v-model="$refs.name.selectedItems" v-validate:name='{required: true }'>
102
+ </div>
103
+ <div class="col-sm-4 form-group">
104
+ <label for="f_username" class="font_normal_body">&ensp;客户类型</label>
105
+ <v-select :value.sync="row.f_user_type"
106
+ :options='usertypes' placeholder='客户类型'
107
+ @change="userTypeChange()"
108
+ :disabled="true"
109
+ close-on-select></v-select>
110
+ </div>
111
+ <div class="col-sm-4 form-group"
112
+ :class="[$m.gas.required ? 'select-error' : '']">
113
+ <label for="f_username" class="font_normal_body">&ensp;用气性质</label>
114
+ <input type="text" v-show="false" v-model="$refs.gas.selectedItems" v-validate:gas='{required: true }'>
115
+ <v-select :value.sync="row.f_gasproperties" v-model="row.f_gasproperties"
116
+ :options='gasproperties' placeholder='用气性质'
117
+ :disabled="true"
118
+ close-on-select v-ref:gas></v-select>
119
+ </div>
120
+ <div class="col-sm-4 form-group">
121
+ <label for="f_detailprice" class="font_normal_body">&ensp;价&emsp;&emsp;格</label>
122
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_detailprice" placeholder='价格'
123
+ disabled>
124
+ </div>
125
+ <div class="col-sm-4 form-group" :class="[$m.type.required ? 'select-error' : '']">
126
+ <label for="pricetype" class="font_normal_body">&ensp;气价类型</label>
127
+ <v-select :value.sync="row.pricetype" v-model="row.pricetype"
128
+ placeholder='气价类型' :options="pricetypes"
129
+ :value-single="true"
130
+ :disabled="true"
131
+ close-on-select v-ref:type>
132
+ </v-select>
133
+ <input type="text" v-show="false" v-model="$refs.type.selectedItems" v-validate:type='{required: true }'>
134
+ </div>
135
+ <div class="col-sm-4 form-group">
136
+ <label class="font_normal_body">&ensp;气价备注</label>
137
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_price_comments" placeholder='气价备注' disabled>
138
+ </div>
139
+ </div>
140
+ <div>
141
+ <a style="font-size: 16px;font-weight: 500;">表具其他信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
142
+ </div>
143
+ <div class="row">
144
+ <div class="col-sm-4 form-group" v-show="row.f_gasproperties=='工业'||row.f_gasproperties=='工业用气'">
145
+ <label for="f_gongye_type" class="font_normal_body" title="参数:工业备注">&ensp;工业备注</label>
146
+ <v-select :value.sync="row.f_gongye_type" v-model='row.f_gongye_type'
147
+ :options='gongyetype' placeholder='工业备注'
148
+ close-on-select
149
+ v-el:cc></v-select>
150
+ </div>
151
+ <div class="col-sm-4 form-group">
152
+ <label for="gasmodel" class="font_normal_body">&ensp;表&ensp;&ensp;&ensp;&ensp;向</label>
153
+ <v-select :value.sync="row.f_aroundmeter" :options='aroundmeters' placeholder='左右表' close-on-select
154
+ v-model='row.f_aroundmeter'></v-select>
155
+ </div>
156
+ <div class="col-sm-4 form-group" >
157
+ <label for="f_bqf_type" class="font_normal_body">表前阀型号</label>
158
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_bqf_type"
159
+ placeholder='表前阀型号'>
160
+ </div>
161
+ <div class="col-sm-4 form-group">
162
+ <label class="font_normal_body">表具使用年限</label>
163
+ <input type="number" class="input_search" style="width:60%" v-model="fireinfo.f_use_limit"
164
+ placeholder='表具使用年限' >
165
+ </div>
166
+ <div class="col-sm-4 form-group">
167
+ <label for="f_gas_person" class="font_normal_body">&ensp;通&ensp;气&ensp;人</label>
168
+ <input type="text" class="input_search" style="width:60%" style="width:60%" v-model="row.f_gas_person"
169
+ placeholder='通气人'></input>
170
+ <!-- <v-select :value.sync="row.f_gas_person" v-model="row.f_gas_person"
171
+ :options='gasperson' placeholder='通气人'
172
+ close-on-select></v-select> -->
173
+ </div>
174
+ <div class="col-sm-4 form-group" :class="[$m.f_gas_date.required ? 'has-error' : '']">
175
+ <input type="text" v-model="$refs.f_gas_date.value" v-show="false" v-validate:f_gas_date='{required: true }'>
176
+ <label for="f_gas_date" class="font_normal_body">&ensp;通气日期</label>
177
+ <datepicker style="width:60%" placeholder="通气日期"
178
+ v-model="row.f_gas_date"
179
+ v-ref:f_gas_date
180
+ :value.sync="row.f_gas_date"
181
+ :format="'yyyy-MM-dd HH:mm:ss'"
182
+ ></datepicker>
183
+ </div>
184
+
185
+ <div class="col-sm-4 form-group" >
186
+ <label for="f_position" class="font_normal_body" title="参数:安装位置">&ensp;安装位置</label>
187
+ <v-select :value.sync="row.f_position" v-model="row.f_position"
188
+ :options='positions' placeholder='安装位置'
189
+ close-on-select></v-select>
190
+ </div>
191
+ <div class="col-sm-4 form-group" v-show="true">
192
+ <label for="f_install_person" class="font_normal_body">&ensp;安&ensp;装&ensp;人</label>
193
+ <v-select :value.sync="row.f_install_person" v-model="row.f_install_person"
194
+ :options='installperson' placeholder='安装人'
195
+ close-on-select></v-select>
196
+ </div>
197
+ <div class="col-sm-4 form-group">
198
+ <label for="f_subscribe_date" class="font_normal_body">&ensp;预约时间</label>
199
+ <datepicker style="width:60%" placeholder="预约通气时间"
200
+ v-model="row.f_subscribe_date"
201
+ :value.sync="row.f_subscribe_date"
202
+ :format="'yyyy-MM-dd HH:mm:ss'"
203
+ ></datepicker>
204
+ </div>
205
+ <div class="col-sm-4 form-group" v-show="opteratormetrbook" >
206
+ <label for="f_position" class="font_normal_body" >&ensp;抄&ensp;表&ensp;册</label>
207
+ <v-select :value.sync="row.f_meter_book_num" v-model="row.f_meter_book_num"
208
+ :value-single="true"
209
+ :options='meterbookoptions' placeholder='抄表册'
210
+ close-on-select></v-select>
211
+ </div>
212
+ <div class="col-sm-4 form-group" v-show="true" :class="[$m.f_install_date.required ? 'has-error' : '']">
213
+ <input type="text" v-model="$refs.f_install_date.value" v-show="false" v-validate:f_install_date='{required: true }'>
214
+ <label for="f_install_date" class="font_normal_body">&ensp;安装日期</label>
215
+ <datepicker style="width:60%" id="startDate" placeholder="安装日期" width='100%'
216
+ v-model="row.f_install_date"
217
+ :value.sync="row.f_install_date"
218
+ class="datepicker"
219
+ v-ref:f_install_date
220
+ :format="'yyyy-MM-dd HH:mm:ss'"
221
+ :show-reset-button="true">
222
+ </datepicker>
223
+ </div>
224
+ <div class="col-sm-4 form-group">
225
+ <label for="f_adjustable" class="font_normal_body">&ensp;调&ensp;压&ensp;箱</label>
226
+ <v-select :value.sync="row.f_adjustable" :options='adjustables' placeholder='调压箱' close-on-select
227
+ v-model='row.f_adjustable' :search='true'></v-select>
228
+ </div>
229
+ <div class="col-sm-4 form-group">
230
+ <label for="f_hand_date" class="font_normal_body">&ensp;上次抄表</label>
231
+ <datepicker style="width:60%" id="f_hand_date" placeholder="上次抄表日期"
232
+ v-model="row.f_hand_date"
233
+ :value.sync="row.f_hand_date"
234
+ class="datepicker"
235
+ :format="'yyyy-MM-dd HH:mm:ss'"
236
+ :show-reset-button="true">
237
+ </datepicker>
238
+ </div>
239
+ <div v-if="ratioshow" class="col-sm-4 form-group"
240
+ :class="[$m.meternumber.required ? 'has-error' : '']">
241
+ <label for="f_ratio" class="font_normal_body">比&emsp;&emsp;率</label>
242
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_price_ratio"
243
+ :value.sync="row.f_price_ratio"
244
+ v-validate:meternumber='{required: true }' placeholder='比率'>
245
+ </div>
246
+ <div class="col-sm-4 form-group" >
247
+ <label for="f_scrap_date" class="font_normal_body">&ensp;报废日期</label>
248
+ <datepicker style="width:60%" id="ScrapDate" placeholder="报废日期" width='100%'
249
+ v-model="row.f_scrap_date"
250
+ :value.sync="row.f_scrap_date"
251
+ class="datepicker"
252
+ :format="'yyyy-MM-dd'"
253
+ :show-reset-button="true">
254
+ </datepicker>
255
+ </div>
256
+ <div class="col-sm-4 form-group">
257
+ <label for="gasmodel" class="font_normal_body">&ensp;垃&ensp;圾&ensp;费</label>
258
+ <v-select :value.sync="row.f_garbage_fee" :options='garbagefee' placeholder='垃圾费' close-on-select
259
+ :value-single="true"
260
+ v-model='row.f_garbage_fee'></v-select>
261
+ </div>
262
+ <div class="col-sm-4 form-group">
263
+ <label class="font_normal_body">&ensp;抄&ensp;表&ensp;员</label>
264
+ <v-select :value.sync="row.f_inputtor" v-model='row.f_inputtor'
265
+ style="width:60%"
266
+ :options='inputtores' placeholder='抄表员'
267
+ close-on-select
268
+ condition="f_inputtor like '%{}%'" v-el:cc></v-select>
269
+ </div>
270
+ <div class="col-sm-4 form-group" >
271
+ <label for="f_usetype" class="font_normal_body" title="参数:使用类型">&ensp;使用类型</label>
272
+ <v-select :value.sync="row.f_usetype" v-model="row.f_usetype"
273
+ :options='usetype' placeholder='使用类型'
274
+ close-on-select></v-select>
275
+ </div>
276
+ <div class="col-sm-4 form-group" >
277
+ <label for="f_position" class="font_normal_body" title="参数:使用状态">&ensp;使用状态</label>
278
+ <v-select :value.sync="row.f_usestate" v-model="row.f_usestate"
279
+ :options='usestate' placeholder='使用状态'
280
+ close-on-select></v-select>
281
+ </div>
282
+ <div class="col-sm-4 form-group" >
283
+ <label for="f_limit_sms" class="font_normal_body">&ensp;短信限定</label>
284
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_limit_sms"
285
+ placeholder='短信限定'></input>
286
+ </div>
287
+ <div style="" class="col-sm-4 form-group">
288
+ <label for="f_alarm_code" class="font_normal_body ">&ensp;报警器号</label>
289
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_alarm_code" placeholder='报警器号'/>
290
+ </div>
291
+ <div style="" class="col-sm-4 form-group">
292
+ <label for="f_hand_month" class="font_normal_body ">&ensp;抄表月份</label>
293
+ <v-select :value.sync="row.f_hand_month" v-model="row.f_hand_month"
294
+ :options='handmonth' placeholder='抄表月份'
295
+ close-on-select></v-select>
296
+ </div>
297
+ <div style="" class="col-sm-4 form-group">
298
+ <label for="f_userfiles_address" class="font_normal_body ">&ensp;用气点名</label>
299
+ <input class="input_search" style="width:60%" v-model="row.f_userfiles_address"/>
300
+ </div>
301
+ <div style="" class="col-sm-4 form-group">
302
+ <label class="font_normal_body">&ensp;经&ensp;&ensp;&ensp;&ensp;度</label>
303
+ <input type="text" style="width:60%" v-model="row.f_userfiles_lng" class="input_search" placeholder="经度"/>
304
+ </div>
305
+ <div style="" class="col-sm-4 form-group">
306
+ <label class="font_normal_body">&ensp;纬&ensp;&ensp;&ensp;&ensp;度</label>
307
+ <input type="text" style="width:48%" v-model="row.f_userfiles_lat" class="input_search" placeholder="纬度"/>
308
+ &ensp;<span class="glyphicon glyphicon-map-marker" @click="openModal" ></span>
309
+ </div>
310
+ <div class="col-sm-4 form-group" v-if="config.overduesetShow">
311
+ <label class="font_normal_body">滞纳金规则</label>
312
+ <v-select :value.sync="row.f_overdue_set" v-model="row.f_overdue_set"
313
+ :options='overdueset' placeholder='滞纳金规则'
314
+ close-on-select></v-select>
315
+ </div>
316
+
317
+ <template v-if="config.stuckFlowmeterShow">
318
+ <div class="col-sm-4 form-group">
319
+ <label class="font_normal_body" title="控制器通经">控制器通经</label>
320
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_control_pass"
321
+ placeholder='控制器通经'></input>
322
+ </div>
323
+ <div class="col-sm-4 form-group">
324
+ <label class="font_normal_body" title="控制器压力等级">控制器压力等级</label>
325
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_control_mpa_level"
326
+ placeholder='控制器压力等级'></input>
327
+ </div>
328
+ <div class="col-sm-4 form-group">
329
+ <label class="font_normal_body" title="流量计表号">流量计表号</label>
330
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_number"
331
+ placeholder='流量计表号'></input>
332
+ </div>
333
+ <div class="col-sm-4 form-group">
334
+ <label class="font_normal_body" title="流量计表封号">流量计表封号</label>
335
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_metertitles"
336
+ placeholder='流量计表封号'></input>
337
+ </div>
338
+ <div class="col-sm-4 form-group">
339
+ <label class="font_normal_body" title="流量计品牌">流量计品牌</label>
340
+ <v-select :value.sync="row.f_flowmeter_brand" :options='flowmeterbrands' value-single placeholder='流量计品牌' close-on-select
341
+ search v-model='row.f_flowmeter_brand'></v-select>
342
+ </div>
343
+ <div class="col-sm-4 form-group">
344
+ <label class="font_normal_body" title="流量计型号">流量计型号</label>
345
+ <v-select :value.sync="row.f_flowmeter_model" :options='flowmetermodels(row.f_flowmeter_brand)' value-single placeholder='流量计型号' close-on-select
346
+ v-model='row.f_flowmeter_model' :disabled='row.f_flowmeter_brand.length === 0'></v-select>
347
+ </div>
348
+ <div class="col-sm-4 form-group">
349
+ <label class="font_normal_body" title="流量计通经">流量计通经</label>
350
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_pass"
351
+ placeholder='流量计通经'></input>
352
+ </div>
353
+ <div class="col-sm-4 form-group">
354
+ <label class="font_normal_body" title="流量计压力等级">流量计压力等级</label>
355
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_mpa_level"
356
+ placeholder='流量计压力等级'></input>
357
+ </div>
358
+ <div class="col-sm-4 form-group">
359
+ <label class="font_normal_body" title="流量计出厂日期">流量计出厂日期</label>
360
+ <datepicker style="width:60%" placeholder="流量计出厂日期"
361
+ v-model="row.f_flowmeter_factory_date"
362
+ :value.sync="row.f_flowmeter_factory_date"
363
+ :format="'yyyy-MM-dd HH:mm:ss'"
364
+ ></datepicker>
365
+ </div>
366
+ <div class="col-sm-4 form-group">
367
+ <label class="font_normal_body" title="流量计精准度">流量计精准度</label>
368
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_accuracy"
369
+ placeholder='流量计精准度'></input>
370
+ </div>
371
+ <div class="col-sm-4 form-group">
372
+ <label class="font_normal_body" title="流量计电仪出厂编号">流量计电仪出厂编号</label>
373
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_flowmeter_factory_num"
374
+ placeholder='流量计电仪出厂编号'></input>
375
+ </div>
376
+ <div class="col-sm-4 form-group">
377
+ <label class="font_normal_body" title="流量计电仪出厂编号">流量计类型</label>
378
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_type"
379
+ placeholder='流量计类型'></input>
380
+ </div>
381
+ <div class="col-sm-4 form-group">
382
+ <label class="font_normal_body" title="流量计安装日期">流量计安装日期</label>
383
+ <datepicker style="width:60%" placeholder="流量计安装日期"
384
+ v-model="row.f_flowmeter_install_date"
385
+ :value.sync="row.f_flowmeter_install_date"
386
+ :format="'yyyy-MM-dd HH:mm:ss'"
387
+ ></datepicker>
388
+ </div>
389
+ </template>
390
+ </div>
391
+ </form>
392
+ </validator>
393
+ <!--<idverify :show.sync="show" @change-con="changeVal"></idverify>-->
394
+ <modal v-if="showParame" :show.sync="showParame" v-ref:modal backdrop="false">
395
+ <header slot="modal-header" class="modal-header">
396
+ <button type="button" class="close" @click="cancel"><span>&times;</span></button>
397
+ <h3 class="modal-title" style="text-align: center;">添加参数</h3>
398
+ </header>
399
+ <article slot="modal-body" class="modal-body">
400
+ <add-json-parameter v-ref:addparamlist :gasmodel_id="userfileid" :gastype="gastype"
401
+ :gasid="gasid"></add-json-parameter>
402
+ </article>
403
+ <footer slot="modal-footer" class="modal-footer">
404
+ <button type="button" class="btn btn-primary" @click='confirmUserfiles()'>确认</button>
405
+ </footer>
406
+ </modal>
407
+
408
+ <modal :show.sync="mapShow" v-if="mapShow" large backdrop="false" :width="900">
409
+ <header slot="modal-header" class="modal-header">
410
+ </header>
411
+ <article slot="modal-body" class="modal-body">
412
+ <amap-location :islocationclearmark="false" dom="addboxmap" v-ref:positionInfo @getmylocation="getmylocation"></amap-location>
413
+ </article>
414
+ <footer slot="modal-footer" class="modal-footer">
415
+ <button v-show="mapShow" type="button" class="button_clear btn-gn" @click='closeModal'>取消</button>
416
+ <button v-show="mapShow" type="button" class="button_clear btn-gn" @click='confirmLocation'>确认</button>
417
+ </footer>
418
+ </modal>
419
+ </div>
420
+ </template>
421
+
422
+ <script>
423
+ import co from 'co'
424
+ import {HttpResetClass} from 'vue-client'
425
+ import Vue from 'vue'
426
+
427
+ let meterBookGen = function * (self) {
428
+ if (self.$login.r.find(value => value == '抄表册建档')) {
429
+ self.opteratormetrbook = true
430
+ }
431
+ let temp = {
432
+ tablename: 't_meter_book',
433
+ condition: `f_book_state='有效' and f_filiale_id='${self.$login.f.orgid}'`
434
+ }
435
+ let http = new HttpResetClass()
436
+ let meterbooks = yield http.load('POST', 'rs/sql/saleSingleTable', {data: temp},
437
+ {resolveMsg: null, rejectMsg: '获取抄表册信息失败!!'})
438
+ if (meterbooks.data.length > 0) {
439
+ let options = []
440
+ for (let i = 0; i < meterbooks.data.length; i++) {
441
+ let tmp = {label: meterbooks.data[i].f_book_name, value: `${meterbooks.data[i].id}`}
442
+ options.push(tmp)
443
+ }
444
+ self.meterbookoptions = options
445
+ }
446
+ try {
447
+ let result = yield http.load('GET', `rs/vue/MeterinfoTest.json`, {}, {resolveMsg: null, rejectMsg: null})
448
+ Object.assign(self.config, result.data)
449
+ if (!self.row.f_open_way) self.row.f_open_way = self.config.open_way
450
+ } catch (error) {
451
+ // 忽略704,文件找不到异常
452
+ if (error.status !== 704) {
453
+ throw error
454
+ }
455
+ }
456
+ }
457
+ let brandChangeGen = function* (self, val) {
458
+ let beforeRecord = null
459
+
460
+ if (self.meter.f_meter_classify === '机表') {
461
+ beforeRecord = yield self.$resetpost('rs/sql/saleSingleTable', {
462
+ data: {
463
+ tablename: 't_handplan',
464
+ condition: `f_user_id = '${self.row.f_user_id}' and f_meter_state in ('已抄表','未抄表')`
465
+ }
466
+ }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前机表抄表信息出错!!'})
467
+ } else {
468
+ beforeRecord = yield self.$resetpost('rs/sql/saleSingleTable', {
469
+ data: {
470
+ tablename: 't_sellinggas',
471
+ condition: `f_user_id = '${self.row.f_user_id}' and f_state = '有效'`
472
+ }
473
+ }, {resolveMsg: null, rejectMsg: '在档案中更改气表品牌时,获取之前卡表收费信息出错!!'})
474
+ }
475
+ if (beforeRecord.data.length > 0 && self.row.gasbrand[0].f_meter_brand != self.oldrow.gasbrand[0].f_meter_brand) {
476
+ self.$showAlert('该气表已投入使用,如需更改请执行换表操作', 'warning', 3000)
477
+ // self.row.gasbrand = self.meter.gasbrand
478
+ self.$dispatch('success')
479
+ /* self.row.valid = bool
480
+ self.$dispatch('self-valid') */
481
+ } else {
482
+ self.row.f_whether_hairpin = self.row.gasbrand[0].f_meter_type === '机表' ? '无卡' : '未发'
483
+ }
484
+ console.log('111', self.row)
485
+ }
486
+ export default {
487
+ title: '表具信息',
488
+ data () {
489
+ return {
490
+ config: {
491
+ // 卡控流量计相关字段显示
492
+ stuckFlowmeterShow: false,
493
+ overduesetShow: true,
494
+ open_way: '指令开户'
495
+ },
496
+ mapShow: false,
497
+ viewsee: false,
498
+ row: this.meter,
499
+ show: false,
500
+ field: '',
501
+ ratioshow: false,
502
+ userfileid: '',
503
+ gasid: '',
504
+ gastype: 'userfiles',
505
+ showParame: false,
506
+ selectUserFiles: '', // 选中的 userfiles
507
+ jurisdiction: this.$login.r,
508
+ positions: this.$appdata.getParam('安装位置'),
509
+ usetype: this.$appdata.getParam('使用类型'),
510
+ usestate: this.$appdata.getParam('使用状态'),
511
+ aroundmeters: this.$appdata.getParam('左右表'),
512
+ garbagefee: this.$appdata.getParam('垃圾费'),
513
+ valvestate: this.$appdata.getParam('阀门状态'),
514
+ usertypes: this.$appdata.getParam('用户类型'),
515
+ handmonth: [{label: '单月', value: '单月'}, {label: '双月', value: '双月'}],
516
+ gasproperties: this.meter.f_user_type.length === 1 ? this.$appdata.getParam(this.meter.f_user_type[0]) : [],
517
+ pricetypes: this.$appdata.getParam('气价类型'),
518
+ industrycomments: this.$appdata.getParam('工业备注'),
519
+ openWay: [{label: '指令开户', value: '指令开户'}, {label: '发卡开户', value: '发卡开户'}],
520
+ meterbookoptions: [], // 抄表册选项
521
+ opteratormetrbook: false, // 抄表册操作
522
+ oldrow: [],
523
+ overdueset:[],
524
+ isiot: true,
525
+ templng: '', // 临时经度
526
+ templat: '' // 临时纬度
527
+ }
528
+ },
529
+ props: ['f_filialeid', 'meter', 'isdecimal', 'valid', 'f_userinfo_id','overdueset'],
530
+ ready () {
531
+ console.log('看看meter里面的数据', this.meter, this.row)
532
+ this.row = Object.assign(this.row, this.meter, {})
533
+ this.oldrow = this.row
534
+ this.isdecimal = this.row.gasbrand.length > 0 ? this.row.gasbrand.f_isdecimal : '否'
535
+ this.row.valid = false
536
+ if (this.row.pricetype === '混合气价') {
537
+ this.ratioshow = true
538
+ }
539
+ co(meterBookGen(this))
540
+ },
541
+ methods: {
542
+ async confirmUserfiles () {
543
+ if (this.$refs.addparamlist.confirm()) {
544
+ var paramlist = this.$refs.addparamlist.addGasParameter
545
+ await this.$resetpost('rs/logic/updateGasParam', {
546
+ data: {
547
+ id: this.selectUserFiles.f_user_id,
548
+ paramlist: paramlist,
549
+ gastype: 'userfiles'
550
+ }
551
+ }, {resolveMsg: '更新成功', rejectMsg: '更新失败'})
552
+ this.showParame = false
553
+ }
554
+ },
555
+
556
+ priceChange (val) {
557
+ if (val.length > 0) {
558
+ this.row.f_user_type = [val[0].f_user_type]
559
+ this.row.f_gasproperties = [val[0].f_gasproperties]
560
+ this.row.pricetype = val[0].f_price_type
561
+ // 展示气价备注
562
+ this.$set('row.f_price_comments', val[0].f_comments ? val[0].f_comments : '无')
563
+ // 展示价格明细
564
+ if (val[0].detailprice) {
565
+ // this.row.f_detailprice = this.$CommonService.getShowPriceDetail(val[0].detailprice)
566
+ this.$set('row.f_detailprice', this.$CommonService.getShowPriceDetail(val[0].detailprice))
567
+ }
568
+ }
569
+ },
570
+ cancel () {
571
+ this.gasid = ''
572
+ this.userfileid = ''
573
+ this.showParame = false
574
+ },
575
+ tablebaseChange () {
576
+ if (this.isdecimal === '是') {
577
+ this.$set('row.f_meter_base', (this.row.f_meter_base - 0).toFixed(4))
578
+ } else {
579
+ this.$set('row.f_meter_base', (this.row.f_meter_base - 0).toFixed(0))
580
+ }
581
+ },
582
+ brandChange (val) {
583
+ this.isdecimal = val.length > 0 ? val[0].f_isdecimal : '否'
584
+ console.log('sadasfasf', val)
585
+ if (val.length > 0 && val[0].f_meter_type === '物联网表') {
586
+ this.isiot = true
587
+ } else {
588
+ this.isiot = false
589
+ }
590
+ // this.tablebaseChange()
591
+ if (this.row.f_user_id) {
592
+ co(brandChangeGen(this))
593
+ }
594
+ this.meternumberValidate()
595
+ },
596
+ userTypeChange () {
597
+ this.gasproperties = []
598
+ if (this.row.f_user_type.length === 1) {
599
+ this.gasproperties = this.$appdata.getParam(this.row.f_user_type[0])
600
+ }
601
+ },
602
+ // getPricenames(pricetype) {
603
+ // console.log('气价。,。。', pricetype, this.row.f_user_type, this.row.f_gasproperties)
604
+ // let rs = []
605
+ // if (this.row.f_user_type.length === 1 && this.row.f_gasproperties.length === 1 && pricetype.length === 1) {
606
+ // let params = {
607
+ // f_user_type: this.row.f_user_type[0],
608
+ // f_gasproperties: this.row.f_gasproperties[0],
609
+ // f_price_type: pricetype[0],
610
+ // filter: this.f_filialeid
611
+ // }
612
+ // rs = this.$GetSaleParam.getPrice(params)
613
+ // }
614
+ // if (rs.length === 0) {
615
+ // this.row.f_price_name = ''
616
+ // }
617
+ // return rs
618
+ // },
619
+ mValid (bool) {
620
+ this.row.valid = bool
621
+ this.$dispatch('self-valid')
622
+ },
623
+ // 带权限修改单值返回修改后得值和修改原因
624
+ modefiy (field) {
625
+ this.show = true
626
+ this.field = field
627
+ },
628
+ async meternumberValidate () {
629
+ let http1 = new HttpResetClass()
630
+ let res1 = await http1.load('POST', '/rs/sql/getBrandAndType', {data: {condition: ` mi.f_meternumber = '${this.row.f_meternumber}' and mi.f_filialeid= '${this.$login.f.orgid}'`}}, {resolveMsg: null, rejectMsg: '获取默认气表品牌型号失败!!'})
631
+ if (res1.data.length > 0) {
632
+ // 替换表号自带的气表品牌和型号
633
+ let meterbrands = this.meterbrands
634
+ for (let row of meterbrands) {
635
+ if (row.label == res1.data[0].f_meter_brand) {
636
+ // 已经选择了气表品牌则不再替换
637
+ if (this.row.gasbrand.length <= 0) this.row.gasbrand = [row.value]
638
+ // 替换气表型号
639
+ if (res1.data[0].f_meter_style) {
640
+ for (let model of row.value.gasmodel) {
641
+ if (model.label == res1.data[0].f_meter_style) {
642
+ // 已经选择了气表型号则不再替换
643
+ if (this.row.gasmodel.length <= 0) this.row.gasmodel = [model.value]
644
+ continue
645
+ }
646
+ }
647
+ }
648
+ continue
649
+ }
650
+ }
651
+ }
652
+ // 验证表号
653
+ if (this.row.f_meternumber && this.row.gasbrand.length > 0) {
654
+ // 表号位数验证
655
+ let meternumberLen = this.row.gasbrand[0].f_meternumber_len
656
+ if (meternumberLen) {
657
+ if (this.row.f_meternumber.length != meternumberLen) {
658
+ this.row.f_meternumber = ''
659
+ this.$showAlert(`表号位数不正确, 当前气表品牌表号位数是: ${meternumberLen}`, 'warning', 3000)
660
+ return
661
+ }
662
+ }
663
+ // 表计信息验证
664
+ if (this.row.gasbrand[0].f_meterverification == '是') {
665
+ if (res1.data.length <= 0) {
666
+ this.$showAlert(`当前表号: ${this.row.f_meternumber}在表计信息中无记录, 请核实!!!`, 'warning', 3000)
667
+ this.row.f_meternumber = ''
668
+ return
669
+ }
670
+ }
671
+ let param = {
672
+ f_meternumber: this.row.f_meternumber,
673
+ f_gasbrand_id: this.row.gasbrand[0].id
674
+ }
675
+ if (this.row.f_userfiles_id) {
676
+ param.f_userfiles_id = this.row.f_userfiles_id
677
+ }
678
+ let res = await this.$resetpost('rs/logic/meternumberValidate', param, {
679
+ resolveMsg: null,
680
+ rejectMsg: '表号验证失败!!'
681
+ })
682
+ if (this.row.gasbrand[0].f_meter_type === '物联网表') {
683
+ if (res.data) {
684
+ this.row.f_meternumber = ''
685
+ this.$showAlert('表号已存在!!', 'warning', 3000)
686
+ }
687
+ } else {
688
+ if (res.data) {
689
+ this.$showAlert('请注意,相同的表号已存在', 'warning', 3000)
690
+ }
691
+ }
692
+ }
693
+ },
694
+ openModal () {
695
+ this.mapShow = true
696
+ },
697
+ closeModal () {
698
+ this.mapShow = false;
699
+ },
700
+ getmylocation (res) {
701
+ this.templng = res.position.lng
702
+ this.templat = res.position.lat
703
+ },
704
+ confirmLocation () {
705
+ this.row.f_userfiles_lat = this.templat
706
+ this.row.f_userfiles_lng = this.templng
707
+ this.mapShow = false;
708
+ },
709
+ flowmetermodels (label) {
710
+ let gasbrand = this.$GetSaleParam.getGasbrand()
711
+ let flowmetermodels = []
712
+ for (let row of gasbrand) {
713
+ if (row.label == label) {
714
+ for (let gasmodel of row.value.gasmodel) {
715
+ flowmetermodels.push({label: gasmodel.label, value: gasmodel.label})
716
+ }
717
+ break
718
+ }
719
+ }
720
+ return flowmetermodels
721
+ }
722
+ },
723
+ watch: {
724
+ 'meter' () {
725
+ this.row = Object.assign(this.row, this.meter, {})
726
+ this.isdecimal = this.row.gasbrand.f_isdecimal
727
+ this.row.valid = false
728
+ this.showtype = this.row.gasbrand.f_meter_type
729
+ },
730
+ 'row.pricetype' (val) {
731
+ if (val == '混合气价') {
732
+ this.ratioshow = true
733
+ } else {
734
+ this.ratioshow = false
735
+ }
736
+ }
737
+
738
+ },
739
+ computed: {
740
+
741
+ // 控制用户类型修改
742
+ permissionUserType () {
743
+ let res = false
744
+ if (this.row.f_user_id) {
745
+ res = !(this.jurisdiction.includes('民用气价修改') && this.jurisdiction.includes('非民用气价修改'))
746
+ }
747
+ return res
748
+ },
749
+
750
+ // 控制用气性质,气价类型,气价名称修改
751
+ permissionPrice () {
752
+ let res = false
753
+ if (this.row.f_user_id) {
754
+ console.log('获取权限、', this.row, this.jurisdiction)
755
+ // 变更操作
756
+ if (this.row.pricename.length > 0) {
757
+ if (this.row.f_user_type[0] === '民用') {
758
+ // 判断是否有民用气价权限
759
+ res = !this.jurisdiction.includes('民用气价修改')
760
+ } else if (this.row.f_user_type[0] === '非民用') {
761
+ // 判断是否有非民用气价权限
762
+ res = !this.jurisdiction.includes('非民用气价修改')
763
+ }
764
+ }
765
+ }
766
+ console.log('有无气价权限', res)
767
+ return res
768
+ },
769
+
770
+ getPricenames () {
771
+ let f_filialeid = this.f_filialeid
772
+ let result = []
773
+ this.$GetSaleParam.prices.forEach((item) => {
774
+ if (item.f_state === '有效' && f_filialeid == item.f_filialeid) {
775
+ let value = {
776
+ label: item.f_price_name,
777
+ value: item
778
+ }
779
+ result.push(value)
780
+ }
781
+ })
782
+ return Array.from(new Set(result))
783
+ },
784
+
785
+ adjustables () {
786
+ let arr = []
787
+ let filter = this.f_filialeid
788
+ this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
789
+ let temp = {}
790
+ temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
791
+ temp.value = item.value
792
+ arr.push(temp)
793
+ })
794
+ return [{label: '全部', value: ''}, ...arr]
795
+ },
796
+ inputtores () {
797
+ // return this.$login.f.f_gasman
798
+ let rs = new Array()
799
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
800
+ let temp = {
801
+ label: this.$login.f.f_gasman[i].name,
802
+ value: this.$login.f.f_gasman[i].name
803
+ }
804
+ rs.push(temp)
805
+ }
806
+ return rs
807
+ },
808
+ installperson () {
809
+ // return this.$login.f.f_installman
810
+ let rs = new Array()
811
+ for (let i = 0; i < this.$login.f.f_installman.length; i++) {
812
+ let temp = {
813
+ label: this.$login.f.f_installman[i].name,
814
+ value: this.$login.f.f_installman[i].name
815
+ }
816
+ rs.push(temp)
817
+ }
818
+ return rs
819
+ },
820
+ meterbrands () {
821
+ return this.$GetSaleParam.getGasbrand()
822
+ },
823
+ aroundmeters () {
824
+ return this.$appdata.getParam('左右表')
825
+ },
826
+ positions () {
827
+ return this.$appdata.getParam('安装位置')
828
+ },
829
+ usetype () {
830
+ return this.$appdata.getParam('使用类型')
831
+ },
832
+ usestate () {
833
+ return this.$appdata.getParam('使用状态')
834
+ },
835
+ gongyetype () {
836
+ return this.$appdata.getParam('工业备注')
837
+ },
838
+ flowmeterbrands () {
839
+ let gasbrand = this.$GetSaleParam.getGasbrand()
840
+ let flowmeterbrands = []
841
+ for (let row of gasbrand) {
842
+ flowmeterbrands.push({label: row.label, value: row.label})
843
+ }
844
+ return flowmeterbrands
845
+ }
846
+ }
847
+ }
848
+ </script>
849
+ <style lang="less">
850
+ #meterInfoTest{
851
+ #addboxmap {
852
+ height: 300px;
853
+ }
854
+ .glyphicon-map-marker:hover {
855
+ color: red;
856
+ }
857
+ .glyphicon-map-marker {
858
+ color: blue;
859
+ cursor: pointer;
860
+ }
861
+ .col-sm-4 {
862
+ .font_normal_body {
863
+ width: 73px;
864
+ overflow: auto;
865
+ white-space: nowrap;
866
+ // 指滚动条两边的按钮
867
+ &::-webkit-scrollbar-button {
868
+ display: none;
869
+ }
870
+ // 滚动条的宽度
871
+ &::-webkit-scrollbar {
872
+ width: 5px !important;
873
+ height: 5px !important;
874
+ }
875
+ // 滚动条的设置
876
+ &::-webkit-scrollbar-thumb {
877
+ background-color: #ddd;
878
+ background-clip: padding-box;
879
+ }
880
+ &::-webkit-scrollbar-thumb:hover {
881
+ background-color: #bbb;
882
+ }
883
+ &::-webkit-scrollbar-track {
884
+ /*滚动条里面轨道*/
885
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
886
+ background: #ededed;
887
+ }
888
+ }
889
+ }
890
+ }
891
+ </style>