sale-client 3.5.26 → 3.5.27

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.26",
3
+ "version": "3.5.27",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -58,8 +58,6 @@
58
58
  <button @click="$parent.$parent.importFile" class="button_export button_spacing"
59
59
  style="float: right" v-if="false">导入
60
60
  </button>
61
- <button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.downloadFiles()">模板下载
62
- </button>
63
61
  <!-- <button class="button_search" style="width: 90px" @click=" $parent.$parent.selectaddress()">选择地址</button>-->
64
62
  <button @click="$parent.$parent.xiaohu()"
65
63
  class="button_delete button_spacing"
@@ -407,9 +405,11 @@
407
405
  <footer slot="modal-footer" class="modal-footer">
408
406
  </footer>
409
407
  </modal>
410
- <modal :show.sync="batchMeterShow" width="500px" title="文件导入" v-ref:modal large backdrop="false">
408
+ <modal :show.sync="batchMeterShow" width="570px" title="文件导入" v-ref:modal large backdrop="false">
411
409
  <article slot="modal-body" class="modal-body">
412
- <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
410
+ <file-upload class="my-file-uploader col-sm-9" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
411
+ <button class="button_clear btn-gn" style="margin-top: 10px;background-color: #6aa6e2;" @click="downloadFiles()">模板下载
412
+ </button>
413
413
  </article>
414
414
  <footer slot="modal-footer" class="modal-footer">
415
415
  </footer>
@@ -185,7 +185,7 @@
185
185
  </div>
186
186
  <div class="col-sm-4 form-group">
187
187
  <label class="font_normal_body">表具使用年限</label>
188
- <input type="number" class="input_search" style="width:60%" v-model="fireinfo.f_use_limit"
188
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_use_limit"
189
189
  placeholder='表具使用年限' >
190
190
  </div>
191
191
  <div class="col-sm-4 form-group">
@@ -794,8 +794,19 @@
794
794
  } else {
795
795
  this.ratioshow = false
796
796
  }
797
+ },
798
+ 'row.f_gas_date' (val) {
799
+ if (!this.row.f_use_limit) {
800
+ this.row.f_use_limit = this.$appdata.getSingleValue('使用年限')
801
+ }
802
+ if (!this.row.f_scrap_date && this.row.f_gas_date) {
803
+ if (this.row.f_use_limit !== undefined) {
804
+ let date = new Date(this.row.f_gas_date)
805
+ let year = date.getFullYear() + (this.row.f_use_limit / 1)
806
+ this.row.f_scrap_date = year + this.row.f_gas_date.slice(4)
807
+ }
808
+ }
797
809
  }
798
-
799
810
  },
800
811
  computed: {
801
812
 
@@ -106,6 +106,13 @@
106
106
  <input type="text" v-model="baseinfo.base.f_zuhu_phone" class="input_search" style="width:60%"
107
107
  placeholder="租户电话">
108
108
  </div>
109
+ </div>
110
+ <div class="row">
111
+ <div style="" class="col-sm-8 form-group">
112
+ <label for="f_zuhu_idnumber" class="font_normal_body">租户身份证</label>
113
+ <input type="text" v-model="baseinfo.base.f_zuhu_idnumber" class="input_search" style="width:80%"
114
+ placeholder="租户身份证">
115
+ </div>
109
116
  <div style="" class="col-sm-4 form-group">
110
117
  <label for="f_is_mgq" class="font_normal_body ">&ensp;付款类型</label>
111
118
  <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_cost_type" v-model="baseinfo.base.f_cost_type"
@@ -49,7 +49,9 @@
49
49
  } else {
50
50
  self.temp = []
51
51
  for (let i = 0; i < getBtns.length; i++) {
52
- if (self.$login.r.includes(getBtns[i].name)) {
52
+ // 不需要权限的按钮
53
+ let noInclude = getBtns[i].name === '垃圾费收费'
54
+ if (noInclude || self.$login.r.includes(getBtns[i].name)) {
53
55
  // 进行权限验证
54
56
  self.temp.push(getBtns[i])
55
57
  }
@@ -116,8 +116,7 @@
116
116
  <transfermanage-detail :data="row" v-if="row.type === '过户'"></transfermanage-detail>
117
117
  <othercharge-detail :data="row" v-if="row.type === '其他收费欠费登记'||row.type === '其他收费'||row.type === '维修收费'"></othercharge-detail>
118
118
  <inputtorchange-detail :data="row" v-if="row.type === '抄表员变更'"></inputtorchange-detail>
119
- <offgasaddgas-detail :data="row"
120
- v-if=" row.type === '换表补气' ||row.type === '其他补气' || row.type === '清零补气' || row.type === '掉气补气'||row.type==='物联网补费'||row.type==='物联网扣费'||row.type==='机表补费'||row.type==='机表扣费'||row.type==='物联网补气'||row.type==='物联网扣气' " ></offgasaddgas-detail>
119
+ <offgasaddgas-detail :data="row" v-if=" row.type === '换表补气' ||row.type === '其他补气' || row.type === '清零补气' || row.type === '掉气补气'||row.type==='物联网补费'||row.type==='物联网扣费'||row.type==='机表补费'||row.type==='机表扣费'||row.type==='物联网补气'||row.type==='物联网扣气' " ></offgasaddgas-detail>
121
120
  <iotopen-detail :data="row" v-if="row.type === '开通'"></iotopen-detail>
122
121
  <iotmetercenter-detail :data="row" v-if="row.type === '物联网收费' || row.type === '物联网开户' || row.type === '调价退费' || row.type === '调价补费'||row.type === '退押金' "></iotmetercenter-detail>
123
122
  <overuserchange-detail :data="row" v-if="row.type === '超用收费'"></overuserchange-detail>
@@ -134,10 +133,8 @@
134
133
  <autoaccounts-cancel-detail :data="row" v-if="row.type === '自动下账撤销'"></autoaccounts-cancel-detail>
135
134
  <transfermanage-cancel-detail :data="row" v-if="row.type === '过户撤销'"></transfermanage-cancel-detail>
136
135
  <cardmetercenter-cancel-detail :data="row" v-if="row.type === '卡表收费撤销'"></cardmetercenter-cancel-detail>
137
- <machinemetercenter-cancel-detail :data="row"
138
- v-if="row.type === '机表收费撤销'"></machinemetercenter-cancel-detail>
139
- <machinemetercenter-cancel-detail :data="row"
140
- v-if="row.type == '预存缴费撤销'"></machinemetercenter-cancel-detail>
136
+ <machinemetercenter-cancel-detail :data="row" v-if="row.type === '机表收费撤销'"></machinemetercenter-cancel-detail>
137
+ <machinemetercenter-cancel-detail :data="row" v-if="row.type == '预存缴费撤销'"></machinemetercenter-cancel-detail>
141
138
  <othercharge-cancel-detail :data="row" v-if="row.type === '其他收费撤销'"></othercharge-cancel-detail>
142
139
  <replacecardmanage-cancel-detail :data="row" v-if="row.type === '补卡撤销'"></replacecardmanage-cancel-detail>
143
140
  <iotmetercenter-cancel-detail :data="row" v-if="row.type === '物联网收费撤销'"></iotmetercenter-cancel-detail>
@@ -148,6 +145,7 @@
148
145
  <advance-delivery-detail :data="row" v-if="row.type ==='卡表预交' "></advance-delivery-detail>
149
146
  <machinemetercenter-detail :data="row" v-if="row.type === '预存缴费'||row.type == '调价预存'"></machinemetercenter-detail>
150
147
  <gasloss-detail :data="row" v-if="row.type === '气损收费' || row.type === '气损收费撤销'"></gasloss-detail>
148
+ <garbage-detail :data="row" v-if="row.type === '垃圾费收费'"></garbage-detail>
151
149
  </div>
152
150
  <div style="margin-top: 8px;background: #FFF;" v-if="!$parent.$parent.$parent.isSelected(row)">
153
151
  <span>{{row.f_describe}}</span>
@@ -462,6 +460,8 @@
462
460
  } else {
463
461
  name = 'rs/report/iot_sell'
464
462
  }
463
+ } else if (type === '垃圾费收费') {
464
+ name = 'rs/report/garbageChargeReport'
465
465
  }
466
466
  return name
467
467
  },
@@ -0,0 +1,59 @@
1
+ <template>
2
+ <div class="auto">
3
+ <partial-view v-ref:pv>
4
+ <div class="row">
5
+ <label class = "col-sm-4">开始日期:</label>
6
+ <span class = "col-sm-8" style="text-align:left">{{model.min_hand_date}}</span>
7
+ </div>
8
+ <div class="row">
9
+ <label class = "col-sm-4">结束日期:</label>
10
+ <span class = "col-sm-8" style="text-align:left">{{model.max_hand_date}}</span>
11
+ </div>
12
+ <div class="row">
13
+ <label class = "col-sm-4">缴费月数:</label>
14
+ <span class = "col-sm-8" style="text-align:left">{{model.month}}</span>
15
+ </div>
16
+ <div class="row">
17
+ <label class = "col-sm-4">总金额:</label>
18
+ <span class = "col-sm-8" style="text-align:left">{{model.money}}</span>
19
+ </div>
20
+ <div class="row">
21
+ <label class = "col-sm-4">操作人:</label>
22
+ <span class = "col-sm-8" style="text-align:left">{{data.f_operator}}</span>
23
+ </div>
24
+ <div class="row">
25
+ <label class = "col-sm-4">操作时间:</label>
26
+ <span class = "col-sm-8" style="text-align:left">{{data.f_operate_date}}</span>
27
+ </div>
28
+ </partial-view>
29
+ </div>
30
+ </template>
31
+
32
+ <script>
33
+ export default {
34
+ title: '垃圾费收费详情',
35
+ props: ['data'],
36
+ data () {
37
+ return {
38
+ model: {}
39
+ }
40
+ },
41
+ ready () {
42
+ let sql = 'garbageDetail'
43
+ let condition = {
44
+ recordId: this.data.id
45
+ }
46
+ this.$info(`加载数据中..., sql:${sql}`)
47
+ this.$refs.pv.load('rs/logic/getOneData', {data: {sql: sql, params: condition}}).then((a) => {
48
+ this.$info(`成功获取到数据!, data:${JSON.stringify(a.data)}`)
49
+ this.model = a.data
50
+ }).catch((error) => {
51
+ if (error.status) {
52
+ this.$warn(`加载数据出错, ${JSON.stringify(error)}`)
53
+ return
54
+ }
55
+ throw error
56
+ })
57
+ }
58
+ }
59
+ </script>
@@ -0,0 +1,286 @@
1
+ <template>
2
+ <div class="basic-main" style="height: 98%">
3
+ <div class="flex">
4
+ <criteria-paged :model="model" v-ref:paged>
5
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="col-sm-2 form-group">
9
+ <label for="f_payment" class="font_normal_body">付款方式:</label>
10
+ <v-select id="f_payment"
11
+ v-model="model.f_payment"
12
+ placeholder='付款方式'
13
+ :value-single="true"
14
+ condition="f_payment='{}' "
15
+ :value.sync="model.f_payment"
16
+ :options='$parent.$parent.payment'
17
+ close-on-select ></v-select>
18
+ </div>
19
+ <div class="col-sm-2 form-group">
20
+ <label for="f_bank_name" class="font_normal_body">银行名称:</label>
21
+ <v-select id="f_bank_name"
22
+ v-model="model.f_bank_name"
23
+ placeholder='银行名称'
24
+ :value-single="true"
25
+ condition="f_bank_name= '{}' "
26
+ :value.sync="model.f_bank_name"
27
+ :options='$parent.$parent.bankname'
28
+ close-on-select ></v-select>
29
+ </div>
30
+ <div class="col-sm-2 form-group">
31
+ <label for="startDate" class="font_normal_body">开始日期:</label>
32
+ <datepicker id="startDate" placeholder="开始日期"
33
+ v-model="model.startDate" style="width: 60%"
34
+ :value.sync="model.startDate"
35
+ :disabled-days-of-Week="[]"
36
+ :format="'yyyy-MM-dd'"
37
+ :show-reset-button="reset">
38
+ </datepicker>
39
+ </div>
40
+ <div class="col-sm-2 form-group">
41
+ <label for="endDate" class="font_normal_body">结束日期:</label>
42
+ <datepicker id="endDate" placeholder="结束日期"
43
+ v-model="model.endDate" style="width: 60%"
44
+ :value.sync="model.endDate"
45
+ :disabled-days-of-Week="[]"
46
+ :format="'yyyy-MM-dd'"
47
+ :show-reset-button="reset">
48
+ </datepicker>
49
+ </div>
50
+ <div class="span" style="float:right;">
51
+ <button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
52
+ <export-excel :data="$parent.$parent.getCondition"
53
+ :field="$parent.$parent.getfield"
54
+ :footer="$parent.$parent.footer"
55
+ :header="$parent.$parent.other"
56
+ sqlurl="rs/logic/saleExport" progress="saleGetExportProgress" sql-name="bankPaymentSummary"
57
+ template-name='银行对账汇总信息' :choose-col="true"></export-excel>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </criteria>
62
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
63
+ <template partial='head'>
64
+ <tr>
65
+ <th>序号</th>
66
+ <th>付款方式</th>
67
+ <th>银行名称</th>
68
+ <th>银行总金额</th>
69
+ <th>燃气总金额</th>
70
+ <th>差额</th>
71
+ <th style="white-space: nowrap;">交易日期</th>
72
+ </tr>
73
+ </template>
74
+ <template partial='body'>
75
+ <td style="text-align: center;">
76
+ <nobr>{{$index+1}}</nobr>
77
+ </td>
78
+ <td style="text-align: center;">
79
+ <nobr>{{row.f_payment}}</nobr>
80
+ </td>
81
+ <td style="text-align: center;">
82
+ <nobr>{{row.f_bank_name}}</nobr>
83
+ </td>
84
+ <td style="text-align: center;">
85
+ <nobr>{{row.f_total_charge}}</nobr>
86
+ </td>
87
+ <td style="text-align: center;">
88
+ <nobr>{{row.f_collection}}</nobr>
89
+ </td>
90
+ <td style="text-align: center;">
91
+ <nobr>{{((row.f_total_charge-0) - (row.f_collection-0)).toFixed(2)}}</nobr>
92
+ </td>
93
+ <td style="text-align: center;">
94
+ <nobr>{{row.f_trade_date}}</nobr>
95
+ </td>
96
+ </template>
97
+ </data-grid>
98
+ </criteria-paged>
99
+ <table class="table-hover">
100
+ <tr style="position: relative" class="table-bordered">
101
+ <td
102
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
103
+ 汇总信息
104
+ </td>
105
+ <td
106
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
107
+ 银行金额汇总:&emsp;{{sumsmodel.f_total_charge}}
108
+ </td>
109
+ <td
110
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
111
+ 收费系统金额汇总:&emsp;{{sumsmodel.f_collection}}
112
+ </td>
113
+ <td
114
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
115
+ 差额汇总:&emsp;{{((sumsmodel.f_total_charge -0) - (sumsmodel.f_collection -0)).toFixed(2)}}
116
+ </td>
117
+ </tr>
118
+ </table>
119
+ </div>
120
+ </div>
121
+ </template>
122
+ <script>
123
+ import {PagedList} from 'vue-client'
124
+
125
+ let readyGen = async function (self) {
126
+ self.getfield = self.config.excelHeaders
127
+ self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()
128
+ self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()
129
+
130
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
131
+ }
132
+
133
+ export default {
134
+ title: '银行对账',
135
+ data () {
136
+ return {
137
+ model: new PagedList('rs/sql/bankPaymentSummary', 20,
138
+ {f_payment: 'this.model.f_payment', f_bank_name: 'this.model.f_bank_name', startDate: 'this.model.startDate', endDate: 'this.model.endDate'}, {f_total_charge: '', f_collection: ''}),
139
+ config: {
140
+ // 导出列要和查询列相同
141
+ excelHeaders: {
142
+ 'f_payment': '银行名称',
143
+ 'f_bank_name': '银行名称',
144
+ 'f_total_charge': '银行金额',
145
+ 'f_collection': '收费系统金额',
146
+ 'f_trade_date': '交易日期'
147
+ }
148
+ },
149
+ criteriaShow: false,
150
+ getfield: {},
151
+ condition2: '',
152
+ depresid: [],
153
+ userresid: [],
154
+ f_orgid: this.$login.f.orgid,
155
+ f_depid: this.$login.f.depids,
156
+ f_operatorid: this.$login.f.id,
157
+ operatorid: [],
158
+ depid: [],
159
+ orgname: '',
160
+ other: [],
161
+ footer: [],
162
+ // 合计数据
163
+ sumsmodel: {},
164
+ msg: [],
165
+ // 公司下拉
166
+ curorgid: [this.$login.f.orgid]
167
+ }
168
+ },
169
+ props: [],
170
+ ready () {
171
+ readyGen(this)
172
+ },
173
+ methods: {
174
+ hidden () {
175
+ this.criteriaShow = !this.criteriaShow
176
+ },
177
+ getRes (obj) {
178
+ this.orgname = obj.res[0]
179
+ this.depresid = obj.resids
180
+ this.f_orgid = obj.resids
181
+ console.log('-----------------obj', obj)
182
+ },
183
+ getdep (obj, val) {
184
+ this.depname = val[0]
185
+ this.userresid = obj
186
+ this.f_depid = obj
187
+ },
188
+ getuser (obj, val) {
189
+ this.operatorname = val[0]
190
+ this.f_operatorid = obj
191
+ },
192
+ dealmsg (val) {
193
+ val.model = this.model.model
194
+ this.$dispatch('deal-msg', val)
195
+ },
196
+ getotherfooter () {
197
+ // this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
198
+ // this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
199
+ this.other = []
200
+ this.footer = []
201
+ // let exportdata = this.getCondition;
202
+ let otherInData = []
203
+ otherInData.push(`导出时间: ${this.$login.toStandardTimeString()}`)
204
+ let footerData = [], exportfield = this.getfield
205
+ footerData.push('合计')
206
+ let self = this
207
+ for (var field in self.sumsmodel) {
208
+ footerData.push(`${exportfield[field]}合计:${self.sumsmodel[field]}`)
209
+ }
210
+ this.footer.push(footerData)
211
+ this.other.push(otherInData)
212
+ },
213
+ getorg (val) {
214
+ this.f_orgid = this.$login.convertToIn(val)
215
+ this.depresid = val
216
+ this.f_filialeid = val[0]
217
+ console.log('yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', val)
218
+ },
219
+ search () {
220
+ this.$refs.paged.$refs.cri.search()
221
+ },
222
+ selfSearch (args) {
223
+
224
+ this.model.params.startDate = this.$refs.paged.$refs.cri.model.startDate
225
+ this.model.params.endDate = this.$refs.paged.$refs.cri.model.endDate
226
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
227
+ this.model.params.f_payment = this.model.f_payment
228
+ this.model.params.f_bank_name = this.model.f_bank_name
229
+ this.condition2 = args.condition
230
+ this.model.search(args.condition, args.model)
231
+ },
232
+ modify (row) {
233
+ console.log('返回数据1', row)
234
+ this.$showMessage('确认重置支付状态么?', ['confirm', 'cancel']).then((res) => {
235
+ if (res === 'confirm') {
236
+ let data = {
237
+ f_transaction_id: row.f_transaction_id
238
+ }
239
+ this.$resetpost('rs/logic/weChatMeter', data, {resolveMsg: null, rejectMsg: '重置出错!!!'}).then((res) => {
240
+ console.log('返回数据3', res)
241
+ this.$refs.paged.$refs.cri.search()
242
+ this.$showAlert(`重置成功!`, 'success', 4000)
243
+ // this.search()
244
+ }).catch((error) => {
245
+ console.log('重置异常', res)
246
+ })
247
+ }
248
+ })
249
+ }
250
+ },
251
+ computed: {
252
+ getCondition () {
253
+ return {
254
+ f_payment: this.$refs.paged.$refs.cri.model.f_payment,
255
+ f_bank_name: this.$refs.paged.$refs.cri.model.f_bank_name,
256
+ startDate: this.$refs.paged.$refs.cri.model.startDate,
257
+ endDate: this.$refs.paged.$refs.cri.model.endDate,
258
+ condition: this.condition2
259
+ }
260
+ },
261
+ payment () {
262
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('银行付款方式')]
263
+ },
264
+ bankname () {
265
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('银行名称')]
266
+ },
267
+ chargeType () {
268
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('微信收费类型')]
269
+ },
270
+ operator () {
271
+ return this.$getParams('操作员查询用', [{label: '全部', value: ''}])
272
+ },
273
+ network () {
274
+ return this.$getParams('网点查询用', [{label: '全部', value: ''}])
275
+ }
276
+ },
277
+ watch: {
278
+ sumsmodel: {
279
+ handler: function (val) {
280
+ this.getotherfooter()
281
+ },
282
+ deep: true
283
+ }
284
+ }
285
+ }
286
+ </script>
@@ -0,0 +1,52 @@
1
+ <template>
2
+ <tab-button v-ref:list>
3
+ <tabs header="银行对账汇总">
4
+ <bank-payment-constrast @deal-msg="dealMsg"></bank-payment-constrast>
5
+ </tabs>
6
+ <tabs header="银行对账明细">
7
+ <bank-payment @deal-msg="dealMsg"></bank-payment>
8
+ </tabs>
9
+ </tab-button>
10
+ </template>
11
+ <script>
12
+ import TabButton from './../../../comprehen/common/TabButton'
13
+ import Tabs from './../../../comprehen/common/Tabs'
14
+ import BankPayment from './BankPayment'
15
+ import BankPaymentConstrast from "./BankPaymentConstrast";
16
+
17
+ export default {
18
+ title : '银行对账',
19
+ data () {
20
+ return {// 页面开关
21
+ f_start_date: '',
22
+ f_end_date: '',
23
+ listpage: true,
24
+ width: {
25
+ left: '100%',
26
+ right: '0%'
27
+ },
28
+ // searchNumber:'',
29
+ rowData: {},
30
+ show: [true]
31
+ }
32
+ },
33
+ components: {BankPaymentConstrast, Tabs, TabButton, BankPayment},
34
+ ready () {
35
+ console.log(this.$refs.list)
36
+ console.log('银行对账')
37
+ },
38
+ methods: {
39
+ cancel (obj) {
40
+ this.listpage = true
41
+ },
42
+ dealMsg (obj) {
43
+ this.rowData = obj
44
+ this.listpage = false
45
+ console.log(obj.model)
46
+ this.f_start_date = obj.model.startDate
47
+ this.f_end_date = obj.model.endDate
48
+ }
49
+ }
50
+ }
51
+
52
+ </script>
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <button class="button_search button_spacing" style="width: 90px" @click.prevent="createInfoForFile()">{{ btnName }}
3
3
  </button>
4
- <button class="button_search button_spacing right" style="width: 80px" @click.prevent="downloadFiles()">{{templateBtnName}}
5
- </button>
6
- <modal :show.sync="batchShow" width="500px" title="文件导入" v-ref:modal backdrop="false">
4
+ <modal :show.sync="batchShow" width="570px" title="文件导入" v-ref:modal backdrop="false">
7
5
  <article slot="modal-body" class="modal-body">
8
- <file-upload class="my-file-uploader" name="chargePriceUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
6
+ <file-upload class="my-file-uploader col-sm-9" name="chargePriceUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
7
+ <button class="button_clear btn-gn" style="margin-top: 10px;background-color: #6aa6e2;" @click.prevent="downloadFiles()">{{templateBtnName}}
8
+ </button>
9
9
  </article>
10
10
  <footer slot="modal-footer" class="modal-footer">
11
11
  </footer>
@@ -53,7 +53,6 @@ export default {
53
53
  methods: {
54
54
  downloadFiles () {
55
55
  let downurl = 'rs/downloadfile/file?filename=' + this.templateName
56
- debugger
57
56
  this.$resetget(downurl, {}).then(res => {
58
57
  var link = document.createElement('a')
59
58
  link.target = '_blank'
@@ -105,7 +104,11 @@ export default {
105
104
  {data: param}, {timeout: 10 * 60 * 1000}).then((res) => {
106
105
  if (res.data) {
107
106
  console.log(res.data.totalsum)
108
- self.$showMessage(`本次上传共上传${res.data.totalsum}条数据, 成功${res.data.successnum}条,失败${res.data.errorsum}条,` + this.alertMessage)
107
+ if (res.data.errorMsg) {
108
+ self.$showMessage(`${res.data.errorMsg}` + this.alertMessage)
109
+ } else {
110
+ self.$showMessage(`本次上传共上传${res.data.totalsum}条数据, 成功${res.data.successnum}条,失败${res.data.errorsum}条` + this.alertMessage)
111
+ }
109
112
  self.iswork = false
110
113
  }
111
114
  })
@@ -8,6 +8,7 @@
8
8
  <div class="row">
9
9
  <res-select-group :initres="$parent.$parent.initres" :show-component="['company','department','operator','slicearea']" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
10
10
  <div class="span" style="float:right">
11
+ <import-excel v-if="$parent.$parent.batchImport === '批量开关阀导入'" template-name="批量开关阀导入Excel模板" logic-name="importBatchValue" import-json="importBatchValue.json"></import-excel>
11
12
  <button class="button_search button_spacing" @click="search()" v-el:cba>查询</button>
12
13
  <button class="button_clear button_spacing" @click="$parent.$parent.clearmsg">清空</button>
13
14
  <label class="font_normal_body" v-if="!$parent.$parent.excelTable">超过十万条限制导出</label>
@@ -350,6 +351,7 @@ import {HttpResetClass} from 'vue-client'
350
351
  isShowUserException: false,
351
352
  val1: '',
352
353
  f_beizhu: '',
354
+ batchImport: '',
353
355
  Gasusertype: [],
354
356
  Gasproperties: [],
355
357
  metermodel: [],
@@ -405,6 +407,7 @@ import {HttpResetClass} from 'vue-client'
405
407
  this.$refs.paged.$refs.criteria.search()
406
408
  // 初始化气表品牌下拉框
407
409
  readyGen(this)
410
+ this.getAuthority()
408
411
  },
409
412
  events: {
410
413
  'dblclick' (row) {
@@ -413,6 +416,11 @@ import {HttpResetClass} from 'vue-client'
413
416
  }
414
417
  },
415
418
  methods: {
419
+ getAuthority () {
420
+ if (this.$login.r.find(value => value == '批量开关阀导入')) {
421
+ this.batchImport = '批量开关阀导入'
422
+ }
423
+ },
416
424
  research () {
417
425
  this.selectRow = null
418
426
  this.$refs.paged.$refs.criteria.search()
@@ -58,8 +58,6 @@
58
58
  <button @click="$parent.$parent.importFile" class="button_export button_spacing"
59
59
  style="float: right" v-if="false">导入
60
60
  </button>
61
- <button class="button_search button_spacing" style="width: 90px" @click="$parent.$parent.downloadFiles()">模板下载
62
- </button>
63
61
  <!-- <button class="button_search" style="width: 90px" @click=" $parent.$parent.selectaddress()">选择地址</button>-->
64
62
  <button @click="$parent.$parent.xiaohu()"
65
63
  class="button_delete button_spacing"
@@ -410,9 +408,11 @@
410
408
  <footer slot="modal-footer" class="modal-footer">
411
409
  </footer>
412
410
  </modal>
413
- <modal :show.sync="batchMeterShow" width="500px" title="文件导入" v-ref:modal large backdrop="false">
411
+ <modal :show.sync="batchMeterShow" width="570px" title="文件导入" v-ref:modal large backdrop="false">
414
412
  <article slot="modal-body" class="modal-body">
415
- <file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
413
+ <file-upload class="my-file-uploader col-sm-9" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
414
+ <button class="button_clear btn-gn" style="margin-top: 10px;background-color: #6aa6e2;" @click="downloadFiles()">模板下载
415
+ </button>
416
416
  </article>
417
417
  <footer slot="modal-footer" class="modal-footer">
418
418
  </footer>
@@ -154,8 +154,10 @@
154
154
  <button class="button_search" type="button" @click="goChargeManage">去收费</button>
155
155
  <button v-if="row.f_meter_brand.includes('西美')&&row.f_meter_type.includes('物联网表')"
156
156
  class="button_search" type="button" @click="clearBarrier">清除障碍</button>
157
- <button v-if="row.f_meter_type.includes('物联网表')"
157
+ <button v-if="row.f_meter_type.includes('物联网表') && row.f_user_state !== '正常'"
158
158
  class="button_search" type="button" @click="openUser">开户</button>
159
+ <button v-if="row.f_meter_type.includes('物联网表') && row.f_user_state == '正常'"
160
+ class="button_search" type="button" @click="cancelUserTitle">销户</button>
159
161
  <button v-if="row.f_meter_type.includes('物联网表')"
160
162
  class="button_search" type="button" @click="valvecontrol">开关阀</button>
161
163
  <button v-if="row.f_meter_type.includes('物联网表')"
@@ -240,12 +242,29 @@
240
242
  <button type="button" class="btn btn-info btn-ln fr" @click='valveoperate(false)'>关阀</button>
241
243
  </footer>
242
244
  </modal>
245
+ <!-- 销户-->
246
+ <modal :show.sync="cancelUserShow">
247
+ <header slot="modal-header" class="modal-header">
248
+ <button type="button" class="close" @click="close()"><span>&times;</span></button>
249
+ <h4 class="modal-title" align="center">销户管理</h4>
250
+ </header>
251
+ <article slot="modal-body" class="modal-body">
252
+ <div class="form-group " style="padding-left: 8px">
253
+ <label class=" font_normal_body">销户原因</label>
254
+ <input class="input_search" style="width:80%" v-model="f_reason" rows="3" placeholder="请填写原因">
255
+ </div>
256
+ </article>
257
+ <footer slot="modal-footer" class="modal-footer">
258
+ <button type="button" class="button_search btn-ln fr" @click='cancelUser()'>销户</button>
259
+ </footer>
260
+ </modal>
243
261
  </div>
244
262
  </template>
245
263
 
246
264
  <script>
247
265
  import {HttpResetClass} from 'vue-client'
248
266
  import Vue from 'vue'
267
+ import {CancelToken as res} from "axios";
249
268
  export default {
250
269
  title: '基本信息',
251
270
  props: ['row'],
@@ -256,6 +275,8 @@
256
275
  valveLimit: false,
257
276
  // 开关阀操作原因
258
277
  operateReason: '',
278
+ cancelUserShow: false,
279
+ f_reason: '',
259
280
  valve: false
260
281
  }
261
282
  },
@@ -265,6 +286,34 @@
265
286
  this.valveLimit = this.$login.r.includes('开关阀权限')
266
287
  },
267
288
  methods: {
289
+ // 销户弹窗显示
290
+ cancelUserTitle () {
291
+ this.cancelUserShow = true
292
+ },
293
+ // 销户
294
+ async cancelUser () {
295
+ let http = new HttpResetClass()
296
+ let res = await http.load('POST', 'rs/logic/cancelUser', {
297
+ data: {
298
+ f_userfiles_id: this.row.f_userfiles_id,
299
+ f_operator: this.$login.f.name,
300
+ f_reason: this.f_reason,
301
+ f_operatorid: this.$login.f.id,
302
+ f_orgid: this.$login.f.orgid,
303
+ f_orgname: this.$login.f.orgs,
304
+ f_depid: this.$login.f.depids,
305
+ f_depname: this.$login.f.deps
306
+ }
307
+ }, {resolveMsg: null, rejectMsg: null}
308
+ )
309
+ if (res.data.reason.includes('操作成功')) {
310
+ this.$showAlert(`${res.data.reason}`, 'success', 2000)
311
+ } else {
312
+ this.$showAlert(`${res.data.reason}`, 'warning', 2000)
313
+ }
314
+ this.close()
315
+ },
316
+
268
317
  // 发送请求去数据
269
318
  async getDevice () {
270
319
  if (this.row) {
@@ -355,7 +404,9 @@
355
404
  },
356
405
  close () {
357
406
  this.valve = false
407
+ this.cancelUserShow = false
358
408
  this.operateReason = ''
409
+ this.f_reason = ''
359
410
  },
360
411
  // 开关阀操作
361
412
  async valveoperate (oper) {
@@ -0,0 +1,205 @@
1
+ <template>
2
+ <div class="auto" id="GarbageCharge">
3
+ <validator name='v'>
4
+ <form novalidate class="form-horizontal">
5
+ <div class="row">
6
+ <div class="col-sm-4 form-group" :class="[$v.payment.required ? 'select-error' : '']">
7
+ <label class="font_normal_body" title="参数名称:付款方式">收款方式</label>
8
+ <input type="text" v-show="false" v-model="$refs.payment.selectedItems"
9
+ v-validate:payment='{required: true }'>
10
+ <v-select v-model="f_payment"
11
+ placeholder='请选择'
12
+ style="width:60%"
13
+ :value.sync="model.f_payment"
14
+ :options='paytype'
15
+ v-ref:payment
16
+ close-on-select clear-button>
17
+ </v-select>
18
+ </div>
19
+ <div class="col-sm-4 form-group">
20
+ <label for="f_print" class="font_normal_body">打印格式</label>
21
+ <v-select id="print"
22
+ v-model="f_print"
23
+ style="width:60%"
24
+ placeholder='请选择'
25
+ :value.sync="model.f_print"
26
+ :options='printstyle'
27
+ close-on-select clear-button>
28
+ </v-select>
29
+ </div>
30
+ <div class="col-sm-4 form-group">
31
+ <label class="font_normal_body">总&ensp;欠&ensp;费</label>
32
+ <input class="input_search" style="width:60%" type="number" v-model="money" placeholder="总欠费" disabled>
33
+ </div>
34
+ </div>
35
+ <div class="row">
36
+ <div class="panel panel-info auto">
37
+ <div class="panel-body">
38
+ <data-grid :model="list" partial='list' class="list_area table_sy" v-ref:grid>
39
+ <template partial='head'>
40
+ <tr>
41
+ <th><nobr>序号</nobr></th>
42
+ <th><nobr>欠费月份</nobr></th>
43
+ <th><nobr>金额</nobr></th>
44
+ </tr>
45
+ </template>
46
+ <template partial='body'>
47
+ <tr>
48
+ <td>{{$index + 1}}</td>
49
+ <td>{{row.f_hand_date}}</td>
50
+ <td>{{row.f_money}}</td>
51
+ </tr>
52
+ </template>
53
+ </data-grid>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </form>
58
+ <div style="text-align:right;">
59
+ <button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid'>确认</button>
60
+ <button class="button_clear btn-gn" @click="clean()">取消</button>
61
+ </div>
62
+ </validator>
63
+ <validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
64
+ <print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok"
65
+ :data='printModel' v-ref:printbill></print-bill>
66
+ </div>
67
+ <!-- <upload :blodid="data.f_userinfo_id" isremark="true" fusetype="退费管理"></upload>-->
68
+ </template>
69
+
70
+
71
+ <script>
72
+ let readyGen = async function (self) {
73
+ await self.$getConfig(self, 'GarbageCharge')
74
+ // 默认打印格式
75
+ self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
76
+ self.model.f_payment = [self.config.payment]
77
+
78
+ self.model.f_use_type = self.config.billType
79
+ self.model.f_bill_type = self.model.f_print
80
+ self.hasValidateBill = self.config.hasBillManage
81
+ }
82
+
83
+ export default {
84
+ title: '垃圾费收费',
85
+ data () {
86
+ return {
87
+ config: {
88
+ showupload: false, // 默认不上传附件
89
+ hasPrint: false, // 默认打票
90
+ hasBillManage: false, // 默认不启用发票管理
91
+ overBalance: false, // 为true时退费金额可以大于余额
92
+ printType: '普通收据', // 收据/电子票/专用发票/国税发票
93
+ payment: '现金缴费',
94
+ billType: '燃气费'
95
+ },
96
+ model: {
97
+ f_refund_fee: '',
98
+ f_refund_gas: '',
99
+ f_comments: '',
100
+ f_payment: '',
101
+ f_print: '',
102
+ f_price: 0
103
+ },
104
+ blodid: '',
105
+ hasValidateBill: false,
106
+ validateOk: false,
107
+
108
+ printModel: {},
109
+ print: false,
110
+ billUrl: '',
111
+ billData: {
112
+ url: 'rs/report/refund_sell',
113
+ bill: ''
114
+ },
115
+ // 下拉框值
116
+ paytype: this.$appdata.getParam('付款方式'),
117
+ printstyle: this.$appdata.getParam('打印格式'),
118
+ list: {data: []},
119
+ money: 0
120
+ }
121
+ },
122
+ props: ['row'],
123
+ ready () {
124
+ readyGen(this)
125
+ this.getList()
126
+ },
127
+ methods: {
128
+ async getList () {
129
+ let res = await this.$resetpost('rs/logic/queryGarbageCharges', {f_userfiles_id: this.row.f_userfiles_id}, {resolveMsg: null,rejectMsg: '查询垃圾费异常'})
130
+ this.list.data = res.data.list
131
+ this.money = res.data.money
132
+ },
133
+ async confirm () {
134
+ if (this.money <= 0) {
135
+ this.$showMessage('收费金额不能小于等于0')
136
+ return
137
+ }
138
+ let param = {
139
+ f_userfiles_id: this.row.f_userfiles_id,
140
+ money: this.money,
141
+ number: this.list.data.length,
142
+ f_operator: this.$login.f.name,
143
+ f_operatorid: this.$login.f.id,
144
+ f_orgid: this.$login.f.orgid,
145
+ f_orgname: this.$login.f.orgs,
146
+ f_depid: this.$login.f.depids,
147
+ f_depname: this.$login.f.deps
148
+ }
149
+ console.log('垃圾费收费', param)
150
+ let res = await this.$resetpost('rs/logic/garbageCharges', {data: param}, {warnMsg: `确定要对用户${this.row.f_user_name}进行垃圾费收费吗?`, resolveMsg: '收费成功!!', rejectMsg: '收费失败!!请重试!!'})
151
+ console.log('垃圾费收费', res)
152
+ if (this.config.hasPrint) {
153
+ if (this.model.f_print.indexOf('电子发票') == -1) {
154
+ console.log('this.config.hasBillManage', this.config.hasBillManage)
155
+ if (this.config.hasBillManage) {
156
+ // 启用发票管理,获取票据管理中的票号并存储记录
157
+ this.printModel.id = res.data.id
158
+ this.printModel.f_bill_type = '退费'
159
+ this.printModel.f_bill_style = this.model.f_print[0]
160
+ // this.billUrl = 'rs/report/refund_sell'
161
+ this.print = true
162
+ } else {
163
+ this.printModel.id = res.data.id
164
+ // this.billUrl = 'rs/report/refund_sell'
165
+ this.print = true
166
+ }
167
+ } else if (this.config.printType === '国税发票') {
168
+ // TODO
169
+ this.$dispatch('success')
170
+ } else if (this.config.printType === '电子发票') {
171
+ // TODO
172
+ this.$dispatch('success')
173
+ }
174
+ } else {
175
+ this.$dispatch('success')
176
+ }
177
+ },
178
+ clean () {
179
+ this.$dispatch('refresh')
180
+ },
181
+ printok () {
182
+ this.$dispatch('success')
183
+ },
184
+ validateBill (val) {
185
+ this.validateOk = !val.isOk
186
+ this.billData.bill = val.bill
187
+ }
188
+ },
189
+ watch: {
190
+ }
191
+ }
192
+ </script>
193
+ <style lang="less">
194
+ #GarbageCharge {
195
+ tr {
196
+ th {
197
+ text-align: center;
198
+ }
199
+
200
+ td {
201
+ text-align: center;
202
+ }
203
+ }
204
+ }
205
+ </style>
@@ -0,0 +1,293 @@
1
+ <template>
2
+ <div id='UserfilesList' class="flex">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="col-sm-3 form-group">
8
+ <label class="font_normal_body">用户编号</label>
9
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_userinfo_code"
10
+ condition="f_userinfo_code = '{}'" placeholder='用户编号'>
11
+ </div>
12
+ <div class="col-sm-3 form-group">
13
+ <label class="font_normal_body">用户姓名</label>
14
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_user_name"
15
+ condition="f_user_name like '%{}%'" placeholder='用户姓名'>
16
+ </div>
17
+
18
+ <div class="form-group button-range" style="float: right">
19
+ <button class="button_search button_spacing" @click="$parent.$parent.addUser(true)" v-if="$parent.$parent.f_civill_id">添加用户</button>
20
+ <button class="button_search button_spacing" @click="$parent.$parent.removeUser(true)" v-if="$parent.$parent.f_civill_id">解除关系</button>
21
+ <button class="button_search button_spacing" @click="search()">查询</button>
22
+ <button class="button_clear button_spacing" @click="clear">清空</button>
23
+ <div style="float: right" class="button_spacing"
24
+ :class="{'button_shrink_top': criteriaShow,'button_shrink_bottom': !criteriaShow}"
25
+ @click="criteriaShow = !criteriaShow"></div>
26
+ </div>
27
+ </div>
28
+ <div class="row" v-show="criteriaShow">
29
+ <div class="form-group col-sm-3">
30
+ <label class="font_normal_body">用户电话</label>
31
+ <input type="text" class="form-control" v-model="model.f_user_phone" placeholder='用户电话'
32
+ condition="f_user_phone like '%{}%'" v-next-el='yhxm' style="width: 60%"
33
+ >
34
+ </div>
35
+ <div class="form-group col-sm-3">
36
+ <label class="font_normal_body">客户类型</label>
37
+ <v-select :options='$parent.$parent.user_type' :value.sync="model.f_user_type"
38
+ close-on-select condition="f_user_type='{}'"
39
+ placeholder='用户类型' v-model="model.f_user_type"></v-select>
40
+ </div>
41
+ <div class="form-group col-sm-3">
42
+ <label class="font_normal_body">客户状态</label>
43
+ <v-select :options='$parent.$parent.user_state' :value.sync="model.f_user_state"
44
+ close-on-select condition="f_user_state = '{}'"
45
+ placeholder='客户状态' v-model="model.f_user_state"></v-select>
46
+ </div>
47
+ <div class="col-sm-3 form-group">
48
+ <label class="font_normal_body">抄&nbsp;表&nbsp;员&nbsp;</label>
49
+ <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
50
+ style="width:60%"
51
+ :multiple="true"
52
+ condition="f_inputtor in {}"
53
+ :options='$parent.$parent.inputtores' placeholder='抄表员'
54
+ close-on-select
55
+ v-el:cc></v-select>
56
+ </div>
57
+ <div class="form-group col-sm-3">
58
+ <label class="font_normal_body">用气性质</label>
59
+ <v-select :options='$parent.$parent.gasproperties' :value.sync="model.f_gasproperties"
60
+ close-on-select condition="f_gasproperties='{}'"
61
+ placeholder='用气性质' v-model="model.f_gasproperties"></v-select>
62
+ </div>
63
+ <div class="form-group col-sm-3">
64
+ <label class="font_normal_body">气表类型</label>
65
+ <v-select :options='$parent.$parent.meter_classify' :value.sync="model.f_meter_classify"
66
+ close-on-select condition="f_meter_classify='{}'" value-single
67
+ placeholder='气表类型' v-model="model.f_meter_classify"></v-select>
68
+ </div>
69
+ <div class="col-sm-3 form-group">
70
+ <label class="font_normal_body">气表品牌</label>
71
+ <v-select :value.sync="model.f_meter_brand" multiple
72
+ v-model="model.f_meter_brand"
73
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
74
+ condition="f_meter_brand in {}"
75
+ close-on-select></v-select>
76
+ </div>
77
+ <div class="col-sm-3 form-group">
78
+ <label class="font_normal_body">小&emsp;区&emsp;</label>
79
+ <input type="text" class="input_search" v-model="model.f_residential_area" style="width: 60%"
80
+ condition=" f_residential_area like '{}%'" placeholder="输入小区">
81
+ </div>
82
+ <div class="form-group col-sm-3">
83
+ <label class="font_normal_body">客户地址</label>
84
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_address"
85
+ condition="f_address like '%{}%'" placeholder='客户地址'>
86
+ </div>
87
+ <div class="col-sm-3 form-group">
88
+ <label class="font_normal_body">楼&emsp;号&emsp;</label>
89
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_building"
90
+ condition="f_building = '{}'" placeholder='楼号'>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </criteria>
95
+ <data-grid :optional="true" class="list_area table_sy" :model="model" partial='list' v-ref:grid>
96
+ <template partial='head'>
97
+ <th>
98
+ <nobr>序号</nobr>
99
+ </th>
100
+ <th>
101
+ <nobr>客户编号</nobr>
102
+ </th>
103
+ <th>
104
+ <nobr>客户名称</nobr>
105
+ </th>
106
+ <th>
107
+ <nobr>客户状态</nobr>
108
+ </th>
109
+ <th>
110
+ <nobr>客户地址</nobr>
111
+ </th>
112
+ <th>
113
+ <nobr>表号</nobr>
114
+ </th>
115
+ <th>
116
+ <nobr>表底数</nobr>
117
+ </th>
118
+ </template>
119
+ <template partial='body'>
120
+ <td>{{ $index + 1 }}</td>
121
+ <td>{{ row.f_userinfo_code }}</td>
122
+ <td>{{ row.f_user_name }}</td>
123
+ <td>{{ row.f_user_state }}</td>
124
+ <td>{{ row.f_address }}</td>
125
+ <td>{{ row.f_meternumber }}</td>
126
+ <td>{{ row.f_meter_base }}</td>
127
+ </template>
128
+ </data-grid>
129
+ </criteria-paged>
130
+ <modal v-if="addmeterinfoshow" :show="addmeterinfoshow" width="80%" v-ref:modal :backdrop="false">
131
+ <header slot="modal-header" class="modal-header">
132
+ <span class="glyphicon glyphicon-remove closebtn" @click="addUser(false)"></span>
133
+ </header>
134
+ <article slot="modal-body" class="modal-body" style="height: 700px">
135
+ <userfiles-list :f_filialeids.sync="f_filialeids" v-ref:userlist></userfiles-list>
136
+ </article>
137
+ <footer slot="modal-footer" class="modal-footer">
138
+ <button type="button" class="btn btn-default" @click='addUser(false)'>取消</button>
139
+ <button type="button" class="btn btn-primary" @click='confirmAddUser()'>确认</button>
140
+ </footer>
141
+ </modal>
142
+ </div>
143
+ </template>
144
+
145
+ <script>
146
+ import {PagedList} from 'vue-client'
147
+
148
+ export default {
149
+ name: 'UserfilesList',
150
+ data () {
151
+ return {
152
+ model: new PagedList('rs/sql/ncmeterQuery', 20),
153
+ f_orgid: '',
154
+ gasproperties: this.$appdata.getParam('用气性质') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')] : [],
155
+ user_type: this.$appdata.getParam('用户类型') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')] : [],
156
+ meter_classify: [{label: '机表', value: '机表'}],
157
+ user_state: [{label: '正常', value: '正常'}],
158
+ meterbrands: [],
159
+ addmeterinfoshow: false
160
+ }
161
+ },
162
+ props: {
163
+ f_filialeids: {
164
+ type: String
165
+ },
166
+ // 团缴主键
167
+ f_civill_id: {
168
+ type: Number
169
+ }
170
+ },
171
+ ready () {
172
+ // this.$refs.paged.$refs.cri.model.f_meter_classify = '机表'
173
+ this.$refs.paged.$refs.cri.model.f_user_state = '正常'
174
+ this.loadParamGem()
175
+ },
176
+ methods: {
177
+ async loadParamGem () {
178
+ await this.$LoadParams.loadParam()
179
+ await this.initAdjustables()
180
+ await this.$refs.paged.$refs.cri.search()
181
+ },
182
+ async initAdjustables () {
183
+ // 初始化气表品牌
184
+ let brandArr = []
185
+ this.$GetSaleParam.getGasbrand().forEach((item) => {
186
+ let temp1 = {}
187
+ temp1.label = item.label
188
+ temp1.value = item.value.f_meter_brand
189
+ brandArr.push(temp1)
190
+ })
191
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
192
+ },
193
+ selfSearch (args) {
194
+ if (!this.f_orgid) {
195
+ this.getorg([this.f_filialeids])
196
+ }
197
+ if (this.f_civill_id) {
198
+ args.condition = `${args.condition} and f_civill_id = ${this.f_civill_id}`
199
+ } else {
200
+ args.condition = `${args.condition} and (f_civill_id is null or f_civill_id = '')`
201
+ }
202
+ args.condition = `${args.condition} and f_orgid in ${this.f_orgid}`
203
+ this.model.search(args.condition, args.model)
204
+ this.$refs.paged.$refs.grid.selectInit()
205
+ },
206
+ getorg (val) {
207
+ this.f_orgid = this.$login.convertToIn(val)
208
+ },
209
+ addUser (flag) {
210
+ this.addmeterinfoshow = flag
211
+ },
212
+ async confirmAddUser () {
213
+ let dataArr = this.$refs.userlist.$refs.paged.$refs.grid.getRowData()
214
+ if (dataArr.length == 0) {
215
+ this.$showMessage(`当前未选中任何用户, 请核实!!!`)
216
+ return
217
+ }
218
+ let res = await this.$showMessage(`当前选中${dataArr.length}条用户, 确认建立团缴关系吗?`, ['confirm', 'cancel'])
219
+ if (res == 'confirm') {
220
+ let ids = []
221
+ for (let row of dataArr) {
222
+ ids.push(row.f_userfiles_id)
223
+ }
224
+ ids = this.$login.convertToIn(ids)
225
+ let param = {
226
+ ids: ids,
227
+ f_civill_id: this.f_civill_id
228
+ }
229
+ await this.$resetpost('rs/logic/updateCivill', param, {resolveMsg: '建立团缴关系成功', rejectMsg: '建立团缴关系失败!!!'})
230
+ this.addUser(false)
231
+ this.$refs.paged.$refs.cri.search()
232
+ }
233
+ },
234
+ async removeUser () {
235
+ let dataArr = this.$refs.paged.$refs.grid.getRowData()
236
+ if (dataArr.length == 0) {
237
+ this.$showMessage(`当前未选中任何用户, 请核实!!!`)
238
+ return
239
+ }
240
+ let res = await this.$showMessage(`当前选中${dataArr.length}条用户, 确认解除团缴关系吗?`, ['confirm', 'cancel'])
241
+ if (res == 'confirm') {
242
+ let ids = []
243
+ for (let row of dataArr) {
244
+ ids.push(row.f_userfiles_id)
245
+ }
246
+ ids = this.$login.convertToIn(ids)
247
+ let param = {
248
+ ids: ids
249
+ }
250
+ await this.$resetpost('rs/logic/updateCivill', param, {resolveMsg: '解除团缴关系成功', rejectMsg: '解除团缴关系失败!!!'})
251
+ this.$refs.paged.$refs.cri.search()
252
+ }
253
+ }
254
+ },
255
+ computed: {
256
+ inputtores () {
257
+ // 获取抄表员
258
+ console.log('获取抄表员', this.$login.f)
259
+ let rs = []
260
+ if (this.$login.f.f_gasman.length > 0) {
261
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
262
+ let temp = {
263
+ label: this.$login.f.f_gasman[i].name,
264
+ value: this.$login.f.f_gasman[i].name
265
+ }
266
+ rs.push(temp)
267
+ }
268
+ }
269
+ this.inputtores2 = rs
270
+ return [...rs]
271
+ }
272
+ },
273
+ watch: {
274
+ 'f_civill_id' () {
275
+ this.$refs.paged.$refs.cri.search()
276
+ }
277
+ }
278
+ }
279
+ </script>
280
+
281
+ <style lang="less">
282
+ #UserfilesList {
283
+ tr {
284
+ th {
285
+ text-align: center;
286
+ }
287
+
288
+ td {
289
+ text-align: center;
290
+ }
291
+ }
292
+ }
293
+ </style>
@@ -1,6 +1,9 @@
1
1
  // 分公司特殊组件页面注册
2
-
3
2
  let specialComp = {
4
- 'file-meter-info': (resolve) => { require(['./MeterinfoTest'], resolve) }
3
+ 'file-meter-info': (resolve) => { require(['./MeterinfoTest'], resolve) },
4
+ // 团缴管理添加用的列表弹窗
5
+ 'userfiles-list': (resolve) => { require(['./UserfilesList'], resolve) },
6
+ // 垃圾收费
7
+ 'garbage-charge': (resolve) => { require(['./GarbageCharge'], resolve) }
5
8
  }
6
9
  exports.specialComp = specialComp
package/src/main.js CHANGED
@@ -11,7 +11,7 @@ Vue.config.silent = true
11
11
 
12
12
  all()
13
13
  system(false)
14
- sale('dongguan')
14
+ sale('kelai')
15
15
  address()
16
16
  ldap()
17
17
  require('system-clients/src/styles/less/bootstrap.less')
package/src/sale.js CHANGED
@@ -61,7 +61,9 @@ export default function (filiale) {
61
61
  // 综合业务 --综合操作
62
62
  // Vue.component('comprehen-search', (resolve) => { require(['./components/revenue/comprehen/ComprehenOperation/ComprehenSearch'], resolve) })
63
63
  // 综合业务 --银行对账
64
+ Vue.component('bank-payment-new', (resolve) => { require(['./components/revenue/comprehen/ComprehenOperation/BankPayment/BankPaymentnew'], resolve) })
64
65
  Vue.component('bank-payment', (resolve) => { require(['./components/revenue/comprehen/ComprehenOperation/BankPayment/BankPayment'], resolve) })
66
+ Vue.component('bank-payment-constrast', (resolve) => { require(['./components/revenue/comprehen/ComprehenOperation/BankPayment/BankPaymentConstrast'], resolve) })
65
67
  // 综合业务 --订单明细
66
68
  Vue.component('order-detail', (resolve) => { require(['./components/revenue/comprehen/ComprehenOperation/OrderDetails/OrderDetails'], resolve) })
67
69
  // 综合业务 --T+财务软件
@@ -471,6 +473,8 @@ export default function (filiale) {
471
473
  Vue.component('return-money-detail', (resolve) => { require(['./components/revenue/base/rightview/carddetail/ReturnMoney'], resolve) })
472
474
  // 气损收费详情小组件
473
475
  Vue.component('gasloss-detail', (resolve) => { require(['./components/revenue/base/rightview/carddetail/GasLossDetail'], resolve) })
476
+ // 垃圾费收费详情小组件
477
+ Vue.component('garbage-detail', (resolve) => { require(['./components/revenue/base/rightview/carddetail/GarbageDetail'], resolve) })
474
478
 
475
479
  /** **************************换表相关组件***************************/
476
480
  // 换新表