sale-client 3.5.296 → 3.5.298

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.
@@ -1,5 +1,5 @@
1
1
  var path = require('path')
2
- const [localUrl, serverRul] = ['http://121.36.60.63:8800/', 'http://121.36.60.63:8800/']
2
+ const [localUrl, serverRul] = ['http://192.168.50.4:8400/', 'http://192.168.50.4:8400/']
3
3
  var merge = require('webpack-merge')
4
4
  var baseConfig = require('./webpack.dev.conf')
5
5
  var devConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.296",
3
+ "version": "3.5.298",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -132,7 +132,7 @@
132
132
  v-el:fcollection
133
133
  @blur="config.calculatePreByCollection && calculatePreByCollection()"
134
134
  @keyup.enter="checkInvoiceMsg((!$v.valid || validateOk || !islegal || clickConfirm))"
135
- v-scale="[model.f_collection, 4]" disabled>
135
+ v-scale="[model.f_collection, 4]" :disabled="!config.calculatePreByCollection">
136
136
  </div>
137
137
  <div class="col-sm-1 form-group" v-show=" row.f_meter_type.includes('卡表')">
138
138
  <give-change :curbalance="curbalance" :collection.sync="model.f_collection" v-ref:givechange></give-change>
@@ -229,6 +229,7 @@
229
229
  f_depname: self.$login.f.deps,
230
230
  f_comments: self.model.f_comments,
231
231
  times: self.row.f_iot_times,
232
+ bothGasFee: self.config.bothGasFee,
232
233
  // 额外判断
233
234
  f_collection_type: self.row.f_collection_type,
234
235
  f_calculation: self.row.f_calculation
@@ -300,6 +301,7 @@
300
301
  notShowFormula: false, // 不显示计算公式,默认显示
301
302
  hasPrint: false, // 默认打票
302
303
  hasBillManage: false, // 默认不启用发票管理
304
+ bothGasFee: false, // 默认 false 金额表加金额 气量表加气量
303
305
  billType: '燃气费', // 票据类型(燃气费,其他费用,调用的发票代码不同)
304
306
  printType: '普通收据', // 收据/电子票/专用发票/国税发票
305
307
  payment: '现金缴费'
@@ -404,13 +406,15 @@
404
406
  this.$dispatch('refresh')
405
407
  },
406
408
  calRemanentMoney () {
409
+ console.log('======', this.row)
407
410
  // 计算 应补金额
408
411
  let getResult = this.$CommonService.calRemanentMoney(this.row)
409
412
  if (this.showGas) {
410
413
  this.model.f_pregas = this.model.f_fill_gas = getResult
411
- this.model.f_preamount = 0
414
+ this.model.f_preamount = this.config.bothGasFee ? (this.model.f_pregas * this.row.f_remanent_price).toFixed(this.row.f_isdecimal === '否' ? 0 : 4) : 0
412
415
  } else {
413
416
  this.model.f_preamount = this.model.f_fill_money = getResult
417
+ this.model.f_pregas = this.config.bothGasFee ? ((this.model.f_preamount - 0) / (this.row.f_remanent_price - 0)).toFixed(this.row.f_isdecimal === '否' ? 0 : 4) : 0
414
418
  }
415
419
  },
416
420
  openExplain () {
@@ -327,10 +327,11 @@
327
327
  'confirmaddress' (res) {
328
328
  console.log('选定地址', res)
329
329
  this.showselectaddress = false
330
- this.addressinfo.f_address = res.f_residential_area +
331
- res.f_building + res.f_building_suffix +
332
- res.f_unit + res.f_unit_suffix + res.f_floor +
333
- res.f_floor_suffix + res.f_room + res.f_room_suffix
330
+ this.addressinfo.f_address = res.f_address
331
+ // this.addressinfo.f_address = res.f_residential_area +
332
+ // res.f_building + res.f_building_suffix +
333
+ // res.f_unit + res.f_unit_suffix + res.f_floor +
334
+ // res.f_floor_suffix + res.f_room + res.f_room_suffix
334
335
  console.log('详细地址信息:' + this.addressinfo.f_address)
335
336
  this.addressinfo.id = res.id
336
337
  this.$dispatch('defaultOtheret', res)
@@ -310,10 +310,11 @@
310
310
  'confirmaddress' (res) {
311
311
  // console.log('选定地址', res)
312
312
  this.showselectaddress = false
313
- this.addressinfo.f_address = res.f_residential_area +
314
- res.f_building + res.f_building_suffix +
315
- res.f_unit + res.f_unit_suffix + res.f_floor +
316
- res.f_floor_suffix + res.f_room + res.f_room_suffix
313
+ this.addressinfo.f_address = res.f_address
314
+ // this.addressinfo.f_address = res.f_residential_area +
315
+ // res.f_building + res.f_building_suffix +
316
+ // res.f_unit + res.f_unit_suffix + res.f_floor +
317
+ // res.f_floor_suffix + res.f_room + res.f_room_suffix
317
318
  this.addressinfo.id = res.id
318
319
  if (res.f_house_type != null) {
319
320
  this.baseinfo.base.f_house_type = res.f_house_type
@@ -0,0 +1,323 @@
1
+ <template>
2
+ <div @keyup.enter="search" class="flex">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria @condition-changed='$parent.selfSearch' partial='criteria' v-ref:cri>
5
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
6
+ <div class="row">
7
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
8
+ <label class="font_normal_body">组织机构</label>
9
+ <res-select :initresid='$parent.$parent.curorgid'
10
+ @res-select="$parent.$parent.getorg"
11
+ class="select select_list"
12
+ restype='organization'
13
+ style="width: 60%">
14
+ </res-select>
15
+ </div>
16
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
17
+ <label class="font_normal_body">气价名称</label>
18
+ <input class="input_search" condition="f_price_name like '%{}%'" placeholder='气价名称' style="width:60%" type="text"
19
+ v-el:qjmc v-model="model.f_price_name" v-next-el="cx"
20
+ >
21
+ </div>
22
+ <!--<div class="col-sm-4">-->
23
+ <!--<label class="font_normal_body">生效时间大于</label>-->
24
+ <!--<datepicker :format="'yyyy-MM-dd'"-->
25
+ <!--:value.sync="model.performDate"-->
26
+ <!--placeholder="生效日期"-->
27
+ <!--condition="performDate > '{}'"-->
28
+ <!--v-model="model.performDate" style="width: 55%">-->
29
+ <!--</datepicker>-->
30
+ <!--</div>-->
31
+ <div class="form-group col-sm-6 button-range" style="margin-right: 10px" >
32
+ <button @click="$parent.$parent.batchAdjust()" class="button_new button_spacing" v-if="$parent.$parent.buttonShow">批量调价</button>
33
+ <button @click="$parent.$parent.search()" class="button_search button_spacing" v-el:cx>查询</button>
34
+ <button @click="$parent.$parent.add()" class="button_new button_spacing">新增</button>
35
+
36
+ <div :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
37
+ @click="$parent.$parent.criteriaShow=!$parent.$parent.criteriaShow"
38
+ class="button_spacing"
39
+ style="float: right"></div>
40
+ </div>
41
+ </div>
42
+ <div class="row" v-show="$parent.$parent.criteriaShow">
43
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
44
+ <label class="font_normal_body">气价编号</label>
45
+ <input type="number" class="input_search" style="width: 60%" v-model="model.f_user_name" placeholder='气价编号'
46
+ condition="f_price_id = '{}'" >
47
+ </div>
48
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
49
+ <label class="font_normal_body">气价来源</label>
50
+ <v-select :value.sync="model.f_custom" v-model="model.f_custom"
51
+ placeholder='气价来源' :options="$parent.$parent.custom"
52
+ condition="custom = '{}'"
53
+ close-on-select v-ref:type>
54
+ </v-select>
55
+ </div>
56
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
57
+ <label class="font_normal_body">客户类型</label>
58
+ <v-select :value.sync="model.f_user_type"
59
+ @change="$parent.$parent.userTypeChange()"
60
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
61
+ condition="f_user_type = '{}'"
62
+ close-on-select></v-select>
63
+ </div>
64
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
65
+ <label class="font_normal_body">用气性质</label>
66
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
67
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
68
+ condition="f_gasproperties = '{}'"
69
+ close-on-select></v-select>
70
+ </div>
71
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
72
+ <label class="font_normal_body">气价类型</label>
73
+ <v-select :value.sync="model.pricetype" v-model="model.pricetype"
74
+ placeholder='气价类型' :options="$parent.$parent.pricetypes"
75
+ condition="f_price_type = '{}'"
76
+ close-on-select v-ref:type>
77
+ </v-select>
78
+ </div>
79
+ <div :class="{'col-sm-2 form-group':!$parent.$parent.$parent.isdetail,'col-sm-3 form-group':$parent.$parent.$parent.isdetail}">
80
+ <label class="font_normal_body">气价状态</label>
81
+ <v-select :value.sync="model.f_price_state" v-model="model.f_price_state"
82
+ placeholder='气价状态' :options="$parent.$parent.price_states"
83
+ condition="f_price_state = '{}'"
84
+ close-on-select v-ref:type>
85
+ </v-select>
86
+ </div>
87
+ </div>
88
+ </div>
89
+
90
+ </criteria>
91
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
92
+ <template partial='head'>
93
+ <tr>
94
+ <th>
95
+ <nobr>序号</nobr>
96
+ </th>
97
+ <th>
98
+ <nobr>气价编号</nobr>
99
+ </th>
100
+ <th v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">
101
+ <nobr>气价名称</nobr>
102
+ </th>
103
+ <th v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">
104
+ <nobr>客户类型</nobr>
105
+ </th>
106
+ <th v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">
107
+ <nobr>用气性质</nobr>
108
+ </th>
109
+ <th v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">
110
+ <nobr>气价类型</nobr>
111
+ </th>
112
+ <th>
113
+ <nobr>最新版本</nobr>
114
+ </th>
115
+ <th>
116
+ <nobr>气价信息</nobr>
117
+ </th>
118
+ <th>
119
+ <nobr>使用分公司</nobr>
120
+ </th>
121
+ <th>
122
+ <nobr>使用户数</nobr>
123
+ </th>
124
+ <th>
125
+ <nobr>气价状态</nobr>
126
+ </th>
127
+ <th v-if="$parent.$parent.$parent.config.audit">
128
+ <nobr>操作</nobr>
129
+ </th>
130
+ <th>
131
+ <nobr>历史记录</nobr>
132
+ </th>
133
+ </tr>
134
+ </template>
135
+ <template partial='body'>
136
+ <tr>
137
+ <td style="text-align:center">{{$index + 1}}</td>
138
+ <td style="text-align:center">{{row.f_price_id}}</td>
139
+ <td style="text-align:center" v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)"><nobr>{{row.f_price_name}}</nobr></td>
140
+ <td style="text-align:center" v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">{{row.f_user_type}}</td>
141
+ <td style="text-align:center" v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">{{row.f_gasproperties}}</td>
142
+ <td style="text-align:center" v-show="!$parent.$parent.$parent.$parent.usershow && !($parent.$parent.$parent.$parent.isdetail && !$parent.$parent.$parent.$parent.usershow)">{{row.f_price_type}}</td>
143
+ <td style="text-align:center">{{row.new_version}}</td>
144
+ <td style="text-align:center"><nobr>{{row.f_value}}</nobr></td>
145
+ <td style="text-align:center"><nobr>{{row.f_filiale_name}}</nobr></td>
146
+ <td style="text-align:center"><button @click.stop="$parent.$parent.$parent.operate(row.f_price_id,row.f_price_name,row.f_filialeid)" class="btn btn-link"><b>{{row.usercount}}</b></button></td>
147
+ <td style="text-align:center">{{row.f_price_state}}</td>
148
+ <td style="text-align:center" v-if="$parent.$parent.$parent.config.audit">
149
+ <button :disabled="$login.r.includes('气价审核')" @click.stop="$parent.$parent.$parent.passPrice(row)"
150
+ class="btn btn-link" v-if="row.f_state === '待审核'">通过
151
+ </button>
152
+ </td>
153
+ <td style="text-align: center;">
154
+ <button type="button" name="button" class="button_search-2 button_spacing width-60"
155
+ @click.stop="$parent.$parent.$parent.showhistory(row)">查看</button>
156
+ </td>
157
+ </tr>
158
+ </template>
159
+ <template partial='foot'></template>
160
+ </data-grid>
161
+ </criteria-paged>
162
+ <modal :backdrop="false" :show.sync="show" v-if="show" width="1000px">
163
+ <header class="modal-header" slot="modal-header">
164
+ <button @click="show=!show" class="close" type="button"><span>&times;</span></button>
165
+ <h4 class="modal-title">历史记录</h4>
166
+ </header>
167
+ <article class="modal-body" slot="modal-body" style="height:100%;width:100%" title="历史记录">
168
+ <price-change-history :row="row" :show.sync="show" @select-changed="historySeleted" v-on:toggle="close"></price-change-history>
169
+ </article>
170
+ <footer class="modal-footer" slot="modal-footer">
171
+
172
+ </footer>
173
+ </modal>
174
+ </div>
175
+ </template>
176
+
177
+ <script>
178
+ /**
179
+ *阶梯气价查询列表
180
+ */
181
+ import {PagedList} from 'vue-client'
182
+ import Vue from 'vue'
183
+
184
+ let passGen = async function (self, row) {
185
+ let param = {
186
+ id: row.id,
187
+ userid: self.$login.f.id
188
+ }
189
+ await self.$resetpost('rs/logic/priceNextFlow', param, {
190
+ warnMsg: `确定要通过气价名称为: ${row.f_price_name}的气价吗?`,
191
+ resolveMsg: '审核通过',
192
+ rejectMsg: '流程进行出错!!!'
193
+ })
194
+ self.$dispatch('success')
195
+ }
196
+
197
+ export default {
198
+ data () {
199
+ return {
200
+ model: new PagedList('rs/sql/getGasPriceInfo', 20, {performDate: 'this.model.performDate', orderitem: `'${this.orderitem}'`}),
201
+ show: false,
202
+ criteriaShow: false,
203
+ // 公司下拉
204
+ curorgid: [this.$login.f.orgid],
205
+ row: {},
206
+ f_orgid: '',
207
+ gasproperties: [],
208
+ custom: [{label: '全部', value: ''}, {label: '正常气价', value: '正常气价'}, {label: '自定义气价', value: '自定义气价'}],
209
+ price_states: [{label: '全部', value: ''}, {label: '使用中', value: '使用中'}, {label: '删除', value: '删除'}, {label: '已作废', value: '已作废'}],
210
+ usertypes: this.$appdata.getParam('用户类型') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')] : []
211
+ }
212
+ },
213
+ props: {
214
+ orderitem: {
215
+ type: String,
216
+ default: 'f_price_id'
217
+ },
218
+ row: {},
219
+ config: {},
220
+ ispartial: false,
221
+ f_filialeid: {
222
+ type: String
223
+ },
224
+ buttonShow: false
225
+ },
226
+ ready () {
227
+ this.$refs.paged.$refs.cri.model.performDate = this.$login.toStandardDateString()
228
+ this.$refs.paged.$refs.cri.model.f_price_state = '使用中'
229
+ this.getButtonShow()
230
+ this.search()
231
+ },
232
+ methods: {
233
+ getButtonShow () {
234
+ console.log('看看用户的权限:', this.$login.r)
235
+ if (this.$login.r.find(value => value == '展示批量调价')) {
236
+ this.buttonShow = true
237
+ }
238
+ },
239
+ batchAdjust () {
240
+ this.$parent.usershow = true
241
+ this.$parent.priceid = null
242
+ this.$parent.priceorgid = null
243
+ },
244
+ showhistory (row) {
245
+ this.show = true
246
+ this.row = row
247
+ },
248
+ userTypeChange () {
249
+ this.gasproperties = []
250
+ if (this.$refs.paged.$refs.cri.model !== null) {
251
+ this.$refs.paged.$refs.cri.model.f_gasproperties = ''
252
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
253
+ } else {
254
+ this.gasproperties = [{label: '全部', value: ''}]
255
+ }
256
+ },
257
+ operate (id, pricename, orgid) {
258
+ this.$parent.usershow = true
259
+ this.$parent.priceid = id
260
+ this.$parent.pricename = pricename
261
+ this.$parent.priceorgid = orgid
262
+ },
263
+ search () {
264
+ this.$refs.paged.$refs.cri.search()
265
+ this.$dispatch('search')
266
+ },
267
+ hidden () {
268
+ this.criteriaShow = !this.criteriaShow
269
+ },
270
+ getorg (val) {
271
+ this.f_orgid = this.$login.convertToIn(val)
272
+ this.f_filialeid = val[0]
273
+ },
274
+ selfSearch (args) {
275
+ if (!this.f_orgid) {
276
+ this.getorg([this.$login.f.orgid])
277
+ }
278
+ console.log('查询。。。', this.f_orgid)
279
+ if (this.f_orgid) {
280
+ args.condition = `f_filialeid in ${this.f_orgid} and ${args.condition}`
281
+ }
282
+ this.$refs.paged.$refs.grid.$el.scrollTop = 0
283
+ this.model.search(args.condition, args.model)
284
+ },
285
+ add () {
286
+ this.$dispatch('add')
287
+ },
288
+ passPrice (row) {
289
+ console.log('气价审核通过。。。', row, this.$refs.paged.$refs.grid.selected)
290
+ let selectedRow = this.$refs.paged.$refs.grid.selected
291
+ if (selectedRow) {
292
+ if (row.id !== selectedRow.id && selectedRow.f_state === '待审核') {
293
+ this.$showAlert('您通过的气价信息不是您选中的信息', 'warning', 3000)
294
+ } else {
295
+ passGen(this, row)
296
+ }
297
+ } else {
298
+ passGen(this, row)
299
+ }
300
+ },
301
+ historySeleted () {
302
+
303
+ }
304
+
305
+ },
306
+ watch: {
307
+ 'model.rows.length' (val) {
308
+ if (val === 1) {
309
+ this.$refs.paged.$refs.grid.select(this.model.rows[0])
310
+ this.$parent.usershow = false
311
+ }
312
+ }
313
+ },
314
+ computed: {
315
+ pricetypes () {
316
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('气价类型')]
317
+ },
318
+ bookstates () {
319
+ return [ {label: '有效', value: "= '有效'"}, {label: '无效', value: "= '无效'"} ]
320
+ }
321
+ }
322
+ }
323
+ </script>
@@ -446,6 +446,7 @@ export default {
446
446
  }
447
447
  },
448
448
  setTypenumber (val,index) {
449
+ this.model.otherdetail[index].f_typenumber = ''
449
450
  this.model.otherdetail[index].typenumberList = this.$appdata.getParam(val.f_typename[0 ])
450
451
  this.model.otherdetail[index].f_unitprice = ''
451
452
  },
@@ -0,0 +1,591 @@
1
+ <template>
2
+ <div>
3
+ <div style="flex: 1.5" class="flex">
4
+ <div class="flex">
5
+ <criteria-paged :model="model" v-ref:paged>
6
+ <criteria partial='criteria' v-ref:criteria @condition-changed="$parent.selfSearch"
7
+ v-show="$parent.searchshow">
8
+ <div novalidate class="form-inline auto" partial>
9
+ <div class="row">
10
+ <div
11
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
12
+ class="form-group">
13
+ <label class="font_normal_body">组织机构</label>
14
+ <res-select :initresid='$parent.$parent.curorgid'
15
+ @res-select="$parent.$parent.getorg"
16
+ class="select select_list"
17
+ restype='organization'
18
+ style="width: 60%">
19
+ </res-select>
20
+ </div>
21
+ <div
22
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
23
+ class="form-group">
24
+ <label class="font_normal_body">用户编号</label>
25
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_userinfo_code"
26
+ condition="f_userinfo_code like '%{}%'" placeholder='用户编号'>
27
+ </div>
28
+ <div style="float:right;margin-top: 8px" class="span">
29
+ <button class="button_spacing button_search" @click="$parent.$parent.updateAll()" v-if="$parent.$parent.buttonShow">批量维护</button>
30
+ <button class="button_spacing button_search" @click="search()">查 询</button>
31
+ <export-excel v-if="$parent.$parent.excelTable"
32
+ class="auto"
33
+ :data="{condition: $parent.$parent.condition}"
34
+ :field="$parent.$parent.getfield"
35
+ sqlurl="rs/logic/saleExport" progress="saleGetExportProgress" sql-name="singlling"
36
+ template-name='缴费记录'
37
+ :choose-col="true"></export-excel>
38
+ <div
39
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
40
+ @click="$parent.$parent.hidden()"
41
+ class="button_spacing"
42
+ style="float: right"></div>
43
+ </div>
44
+ </div>
45
+ <div class="row" v-if="$parent.$parent.criteriaShow">
46
+ <div
47
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
48
+ class="form-group">
49
+ <label class="font_normal_body">收费编号</label>
50
+ <input type="text" class="input_search" style="width: 60%" v-model="model.id"
51
+ condition="id = '{}'" placeholder='用户编号'>
52
+ </div>
53
+ <div
54
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
55
+ class="form-group">
56
+ <label class="font_normal_body">用户姓名</label>
57
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_name"
58
+ condition="f_user_name like '%{}%'" placeholder='用户姓名'>
59
+ </div>
60
+ <div
61
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
62
+ class="form-group">
63
+ <label class="font_normal_body">有无附件</label>
64
+ <v-select :disabled=false
65
+ :options='$parent.$parent.pj'
66
+ :value-single="true"
67
+ :value.sync="model.is_has_file"
68
+ close-on-select
69
+ placeholder='请选择'
70
+ v-model="model.is_has_file"
71
+ condition="is_has_file = '{}'"
72
+ search=fasle
73
+ >
74
+ </v-select>
75
+ </div>
76
+ <div
77
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
78
+ class="form-group">
79
+ <label class="font_normal_body">客户类型</label>
80
+ <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
81
+ :options='$parent.$parent.usertypes' placeholder='客户类型'
82
+ style="width:60%"
83
+ close-on-select
84
+ condition="f_user_type = '{}'"></v-select>
85
+ </div>
86
+ <div
87
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
88
+ class="form-group">
89
+ <label class="font_normal_body">开始日期</label>
90
+ <datepicker placeholder="开始日期" v-model="model.startDate" :value.sync="model.startDate"
91
+ style="width:60%"
92
+ :format="'yyyy-MM-dd 00:00:00'" condition="f_operate_date >= '{}'">
93
+ </datepicker>
94
+ </div>
95
+ <div
96
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
97
+ class="form-group">
98
+ <label class="font_normal_body">结束日期</label>
99
+ <datepicker placeholder="结束日期" v-model="model.endDate" :value.sync="model.endDate"
100
+ style="width:60%"
101
+ :format="'yyyy-MM-dd 23:59:59'" condition="f_operate_date <= '{}'">
102
+ </datepicker>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </criteria>
107
+ <data-grid :model="model" v-ref:grid class="list_area table_sy" partial='list'>
108
+ <template partial='head'>
109
+ <tr>
110
+ <th>
111
+ <nobr>全选</nobr>
112
+ <input @keyup.enter="search" style="width:60%" type="checkbox" v-model='checked1'
113
+ :checked="$parent.$parent.$parent.checked1"
114
+ @click="$parent.$parent.$parent.checkedALL()"></th>
115
+ <th>
116
+ <nobr>收费编号</nobr>
117
+ </th>
118
+ <th>
119
+ <nobr>表号</nobr>
120
+ </th>
121
+ <th>
122
+ <nobr>用户编号</nobr>
123
+ </th>
124
+ <th>
125
+ <nobr>用户姓名</nobr>
126
+ </th>
127
+ <th>
128
+ <nobr>证件号码</nobr>
129
+ </th>
130
+ <th>
131
+ <nobr>收费形式</nobr>
132
+ </th>
133
+ <th>
134
+ <nobr>是否有效</nobr>
135
+ </th>
136
+ <th>
137
+ <nobr>收据类型</nobr>
138
+ </th>
139
+ <th>
140
+ <nobr>收费时间</nobr>
141
+ </th>
142
+ <th>
143
+ <nobr>财务核算时间</nobr>
144
+ </th>
145
+ <th>
146
+ <nobr>购气气量</nobr>
147
+ </th>
148
+ <th>
149
+ <nobr>地址</nobr>
150
+ </th>
151
+ <th>
152
+ <nobr>气量用途</nobr>
153
+ </th>
154
+ <th>
155
+ <nobr>用气金额</nobr>
156
+ </th>
157
+ <th>
158
+ <nobr>收费金额</nobr>
159
+ </th>
160
+ <th>
161
+ <nobr>操作员</nobr>
162
+ </th>
163
+ <th>
164
+ <nobr>所属部门</nobr>
165
+ </th>
166
+ <th>
167
+ <nobr>所属公司</nobr>
168
+ </th>
169
+ <th>
170
+ <nobr>附件</nobr>
171
+ </th>
172
+ </tr>
173
+ </template>
174
+ <template partial='body'>
175
+ <td style="text-align: center;">
176
+ <input @keyup.enter="search" style="width:60%" type="checkbox" checked="checked" name="opertioninput"
177
+ @click="$parent.$parent.$parent.checked(row)"></td>
178
+ <td style="text-align: center;">
179
+ <nobr>{{ row.id }}</nobr>
180
+ </td>
181
+ <td style="text-align: center;">
182
+ <nobr>{{ row.f_meternumber }}</nobr>
183
+ </td>
184
+ <td style="text-align: center;">
185
+ <nobr>{{ row.f_userinfo_code }}</nobr>
186
+ </td>
187
+ <td style="text-align: center;">
188
+ <nobr>{{ row.f_user_name }}</nobr>
189
+ </td>
190
+ <td style="text-align: center;">
191
+ <nobr>{{ row.idnumber }}</nobr>
192
+ </td>
193
+ <td style="text-align: center;">
194
+ <nobr>{{ row.f_payment }}</nobr>
195
+ </td>
196
+ <td style="text-align: center;">
197
+ <nobr>{{ row.f_state }}</nobr>
198
+ </td>
199
+ <td style="text-align: center;">
200
+ <nobr>{{ row.f_bill_style }}</nobr>
201
+ </td>
202
+ <td style="text-align: center;">
203
+ <nobr>{{ row.f_operate_date }}</nobr>
204
+ </td>
205
+ <td style="text-align: center;">
206
+ <nobr>{{ row.f_accounting_date }}</nobr>
207
+ </td>
208
+ <td style="text-align: center;">
209
+ <nobr>{{ row.f_pregas }}</nobr>
210
+ </td>
211
+ <td style="text-align: center;">
212
+ <nobr>{{ row.f_address }}</nobr>
213
+ </td>
214
+ <td style="text-align: center;">
215
+ <nobr>{{ row.f_user_type }}</nobr>
216
+ </td>
217
+ <td style="text-align: center;">
218
+ <nobr>{{ row.f_preamount }}</nobr>
219
+ </td>
220
+ <td style="text-align: center;">
221
+ <nobr>{{ row.f_collection }}</nobr>
222
+ </td>
223
+ <td style="text-align: center;">
224
+ <nobr>{{ row.f_operator }}</nobr>
225
+ </td>
226
+ <td style="text-align: center;">
227
+ <nobr>{{ row.f_depname }}</nobr>
228
+ </td>
229
+ <td style="text-align: center;">
230
+ <nobr>{{ row.f_orgname }}</nobr>
231
+ </td>
232
+ <td style="text-align: center;">
233
+ <nobr>
234
+ <button v-if="row.is_has_file=='是'" class="btn btn-link"
235
+ @click.stop="$parent.$parent.$parent.view(row)">查看
236
+ </button>
237
+ </nobr>
238
+ </td>
239
+ </template>
240
+ </data-grid>
241
+ </criteria-paged>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ <modal :show.sync="updateall" width="1200px" backdrop="true">
246
+ <header slot="modal-header" class="modal-header">
247
+ <h3 style="color:black" class="modal-title">批量维护</h3>
248
+ </header>
249
+ <article slot="modal-body" class="modal-body">
250
+ <validator name='v'>
251
+ <form class="form-horizontal select-overspread">
252
+ <div class="row">
253
+ <div class="col-sm-6 form-input-group">
254
+ <label class="font_normal_body col-sm-3">财务核算日期</label>
255
+ <datepicker style="width:60%" placeholder="财务核算日期"
256
+ v-model="updatemodel.f_accounting_date"
257
+ :value.sync="updatemodel.f_accounting_date"
258
+ :format="'yyyy-MM-dd HH:mm:ss'"
259
+ ></datepicker>
260
+ </div>
261
+ </div>
262
+ </form>
263
+ </validator>
264
+ </article>
265
+ <footer slot="modal-footer" class="modal-footer">
266
+ <button class="button_search btn-gn" @click="confirm">确认</button>
267
+ <button class="button_clear btn-gn" @click="cancel">取消</button>
268
+ </footer>
269
+ </modal>
270
+ </template>
271
+
272
+ <script>
273
+ import {PagedList} from 'vue-client'
274
+
275
+ const myMap = new Map()
276
+
277
+ export default {
278
+ 'title': '',
279
+ data () {
280
+ return {
281
+ usertypes: this.$appdata.getParam('客户类型') ? [{
282
+ label: '全部',
283
+ value: ''
284
+ }, ...this.$appdata.getParam('客户类型')] : [],
285
+ pj: this.$appdata.getParam('是否有附件') ? [{
286
+ label: '全部',
287
+ value: ''
288
+ }, ...this.$appdata.getParam('是否有附件')] : [],
289
+ model: new PagedList('rs/sql/singlling', 20),
290
+ // model: new PagedList('rs/sql/singleTable_OrderBy', 20, {items: '"s.*,ui.f_userinfo_code"', tablename: '"t_sellinggas s left join t_userinfo ui on s.f_userinfo_id=ui.f_userinfo_id"', orderitem: '"f_delivery_date"'}),
291
+ // 控制查询条件显示
292
+ searchshow: true,
293
+ criteriaShow: false,
294
+ // 控制样式
295
+ editList: false,
296
+ // 公司下拉
297
+ curorgid: [this.$login.f.orgid],
298
+ excelTable: true,
299
+ condition: '',
300
+ getfield: {
301
+ 'id': '收费编号',
302
+ 'f_meternumber': '表号',
303
+ 'f_userinfo_code': '用户编号',
304
+ 'f_user_name': '用户姓名',
305
+ 'idnumber': '证件号码',
306
+ 'f_payment': '收费形式',
307
+ 'f_state': '是否有效',
308
+ 'f_bill_style': '收据类型',
309
+ 'f_operate_date': '收费时间',
310
+ 'f_accounting_date': '财务核算时间',
311
+ 'f_pregas': '购气气量',
312
+ 'f_address': '地址',
313
+ 'f_user_type': '气量用途',
314
+ 'f_preamount': '用气金额',
315
+ 'f_collection': '收费金额',
316
+ 'f_operator': '操作员',
317
+ 'f_depname': '所属部门',
318
+ 'f_orgname': '所属公司'
319
+ },
320
+ f_orgid: '',
321
+ checked1: true,
322
+ map: new Map(),
323
+ updateall: false,
324
+ da: {
325
+ rows: []
326
+ },
327
+ f_meternumber: '',
328
+ updatemodel: {
329
+ f_accounting_date: this.$login.toStandardTimeString()
330
+ },
331
+ buttonShow: false
332
+ }
333
+ },
334
+ ready () {
335
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
336
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
337
+ // this.search()
338
+ // this.getwarehouse()
339
+ this.getButtonShow()
340
+ },
341
+ events: {
342
+ 'showfiles' (val) {
343
+ console.log(val)
344
+ }
345
+ },
346
+ props: ['showMessage'],
347
+ methods: {
348
+ getButtonShow () {
349
+ if (this.$login.r.find(value => value == '展示批量维护')) {
350
+ this.buttonShow = true
351
+ }
352
+ },
353
+ updateAll () {
354
+ this.updateall = true
355
+ },
356
+ cancel () {
357
+ this.updateall = false
358
+ this.updatemodel = {
359
+ f_accounting_date: this.$login.toStandardTimeString()
360
+ }
361
+ },
362
+ async confirm () {
363
+ let array = []
364
+ this.map.forEach((value, key, map) => {
365
+ array.push(map.get(key))
366
+ })
367
+ console.log('asdasd', array)
368
+ if (array.length > 0) {
369
+ let condition = `id in (''`
370
+ array.forEach((row) => {
371
+ condition = condition + `,'${row.id}'`
372
+ })
373
+ condition = condition + `)`
374
+
375
+ console.log('asdasd', condition)
376
+ await this.$resetpost('rs/logic/updatesellinggas', {updatemodel: this.updatemodel, condition: condition})
377
+ this.search()
378
+ this.cancel()
379
+ } else {
380
+ this.$showMessage('当前未勾选用户,将为所有查询出来的用户添加限购,确定要操作吗?', ['confirm', 'cancel']).then(async (res) => {
381
+ if (res === 'confirm') {
382
+ await this.$resetpost('rs/logic/updatesellinggas', {
383
+ updatemodel: this.updatemodel,
384
+ condition: this.condition
385
+ })
386
+ this.search()
387
+ this.cancel()
388
+ }
389
+ })
390
+
391
+ }
392
+ },
393
+ checkedALL () {
394
+ this.checked1 = !this.checked1
395
+ let box = document.getElementsByName('opertioninput')
396
+ for (var i = 0; i < box.length; i++) {
397
+ box[i].checked = this.checked1
398
+ }
399
+ },
400
+ checked (val) {
401
+ let id = val.id
402
+ if (this.map.has(id)) {
403
+ this.map.delete(id)
404
+ } else {
405
+ this.map.set(id, {id: id})
406
+ }
407
+ },
408
+ mapset (array) {
409
+ this.map.clear()
410
+ for (let i = 0; i < array.length; i++) {
411
+ let id = array[i].id
412
+ this.map.set(id, {id: id})
413
+ }
414
+ },
415
+ hidden () {
416
+ this.criteriaShow = !this.criteriaShow
417
+ },
418
+ getorg (val) {
419
+ this.f_orgid = this.$login.convertToIn(val)
420
+ this.f_filialeid = val[0]
421
+ },
422
+ view (row) {
423
+ this.$parent.showupload = true
424
+ this.$parent.row = row
425
+ },
426
+ init () {
427
+ this.f_meternumber = ''
428
+ this.da.rows = []
429
+ myMap.clear()
430
+ },
431
+ cancelSet () {
432
+ this.showSetModal = false
433
+ this.init()
434
+ },
435
+
436
+ jump () {
437
+ this.joinshow2 = false
438
+ this.showSetModal = true
439
+ },
440
+ async getwarehouse () {
441
+
442
+ },
443
+
444
+ join1 (row) {
445
+ this.joinrow = row
446
+ this.joinshow = true
447
+ },
448
+
449
+ joinclose () {
450
+ this.joinshow = false
451
+ },
452
+ joinclose2 () {
453
+ this.joinshow2 = false
454
+ },
455
+
456
+ search () {
457
+ this.$refs.paged.$refs.criteria.search()
458
+ },
459
+ importFile () {
460
+ this.show = true
461
+ },
462
+ selfSearch (args) {
463
+ if (!this.$refs.paged.$refs.criteria.model.startDate) {
464
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
465
+ }
466
+ if (!this.$refs.paged.$refs.criteria.model.endDate) {
467
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
468
+ }
469
+ if (!this.f_orgid) {
470
+ this.getorg([this.$login.f.orgid])
471
+ }
472
+ console.log('查询。。。', this.f_orgid)
473
+ if (this.f_orgid) {
474
+ args.condition = `${args.condition} and f_orgid in ${this.f_orgid}`
475
+ }
476
+ this.model.search(args.condition, args.model)
477
+ this.condition = args.condition
478
+ },
479
+ mergeRowData (joinrows) {
480
+
481
+ },
482
+ // 多选框初始化
483
+ selectInit () {
484
+ this.rowsdata = []
485
+ this.all = []
486
+ this.radio = []
487
+ },
488
+ select () {
489
+ let index = this.model1.pageIndex - 1
490
+ console.log('全选', this.all[index])
491
+ if (!this.radio[index]) {
492
+ this.radio.$set(index, [])
493
+ }
494
+ if (this.all[index]) {
495
+ // 数据
496
+ this.rowsdata[index] = Object.assign([], this.model1.rows)
497
+ // 勾选
498
+ for (var i = 0; i < this.model1.rows.length; i++) {
499
+ this.radio[index].$set(i, true)
500
+ }
501
+ } else {
502
+ // 数据
503
+ this.rowsdata[index] = []
504
+ // 不勾选
505
+ for (var i = 0; i < this.model1.rows.length; i++) {
506
+ this.radio[index].$set(i, false)
507
+ }
508
+ }
509
+ },
510
+ selectOne (event, row, i) {
511
+ console.log('单选', event.target.checked)
512
+ let index = this.model1.pageIndex - 1
513
+ if (!this.rowsdata[index]) {
514
+ this.rowsdata[index] = []
515
+ }
516
+ if (!this.radio[index]) {
517
+ this.radio.$set(index, [])
518
+ }
519
+ if (event.target.checked) {
520
+ // 数据
521
+ this.rowsdata[index][i] = row
522
+ // 勾选
523
+ this.radio[index].$set(i, true)
524
+ // 判断是否全部选中
525
+ var allState = true
526
+ if (this.model1.rows.length != this.radio[index].length) {
527
+ allState = false
528
+ }
529
+ for (var state of this.radio[index]) {
530
+ if (!state) {
531
+ allState = false
532
+ }
533
+ }
534
+ if (allState) {
535
+ this.all.$set(index, true)
536
+ } else {
537
+ this.all.$set(index, false)
538
+ }
539
+ } else {
540
+ // 数据
541
+ this.rowsdata[index][i] = []
542
+ // 不勾选
543
+ this.radio[index].$set(i, false)
544
+ // 任意取消一个则全选状态设为false
545
+ this.all.$set(index, false)
546
+ }
547
+ }
548
+ },
549
+ computed: {
550
+ ischecked () {
551
+ return function (index, i) {
552
+ // console.log("计算属性")
553
+ if (!this.radio[index]) {
554
+ return false
555
+ }
556
+ return this.radio[index][i]
557
+ }
558
+ },
559
+ distributionstate () {
560
+ return [{label: '全部', value: ''}, {label: '待分配', value: 'is null'}, {label: '已入库', value: 'is not null'}]
561
+ }
562
+ },
563
+ watch: {
564
+ 'model.pageIndex' () {
565
+ this.checked1 = false
566
+ this.mapset(this.model.rows)
567
+ this.checkedALL()
568
+ },
569
+ 'model.rows' () {
570
+ this.checked1 = false
571
+ this.mapset(this.model.rows)
572
+ this.checkedALL()
573
+ },
574
+ 'checked1' (val) {
575
+ if (val) {
576
+ this.mapset(this.model.rows)
577
+ } else {
578
+ this.map.clear()
579
+ }
580
+ }
581
+ }
582
+ }
583
+ </script>
584
+ <style>
585
+ .datapanel {
586
+ color: #333;
587
+ background-color: white;
588
+ padding: 10px 20px;
589
+ border-radius: 15px;
590
+ }
591
+ </style>
@@ -140,6 +140,10 @@
140
140
  <!-- :options='installtype' placeholder='安装方式' :value-single="true"-->
141
141
  <!-- close-on-select></v-select>-->
142
142
  <!-- </div>-->
143
+ <div style="" class="col-sm-6 form-group">
144
+ <label for="f_comments" class="font_normal_body ">设备位置</label>
145
+ <input class="input_search" style="width:60%" v-model="row.f_install_position"/>
146
+ </div>
143
147
  <div style="" class="col-sm-6 form-group">
144
148
  <label for="f_comments" class="font_normal_body ">&nbsp;&nbsp;&nbsp;备&nbsp;&nbsp;&nbsp;注</label>
145
149
  <input class="input_search" style="width:60%" v-model="row.f_comments"/>
@@ -244,7 +248,6 @@
244
248
  </tr>
245
249
  <tr style="text-align: center" v-for="row in devicesinfo">
246
250
  <td style="text-align: center;">{{$index + 1}}</td>
247
-
248
251
  <td style="text-align: center">{{row.f_devices_type}}</td>
249
252
  <td style="text-align:center">{{row.f_devices_no}}</td>
250
253
  <td style="text-align: center">{{row.f_brand}}</td>
@@ -257,6 +260,7 @@
257
260
  <td style="text-align:center">{{row.f_input_date}}</td>
258
261
  <td style="text-align:center">{{row.f_make_date}}</td>
259
262
  <td style="text-align:center">{{row.f_userinfodevices_state}}</td>
263
+ <td style="text-align:center">{{row.f_install_position}}</td>
260
264
  <td style="text-align:center">{{row.f_comments}}</td>
261
265
  <td style="text-align: center">
262
266
  <img :src="imgdelete" alt="图片加载失败" class="img-rounded"
@@ -415,7 +419,8 @@ export default {
415
419
  devicetypes: this.$appdata.getParam('设备类型'),
416
420
  pipetypes:[],
417
421
  pipeways: this.$appdata.getParam('连接方式'),
418
- devicebrands:[]
422
+ devicebrands:[],
423
+ f_devices_num: 1
419
424
  })
420
425
  },
421
426
  closeModal () {
@@ -57,5 +57,8 @@ export default function () {
57
57
  Vue.component('user-paper-info-test', (resolve) => { require(['./components/UserFiles/UserPaperInfoTest'], resolve) })
58
58
  Vue.component('new-meter-list', (resolve) => { require(['./components/webMeter/meterinfo/NewMeterList'], resolve) })
59
59
  Vue.component('sale-web-meter-batch-operation-valve', (resolve) => { require(['./components/webMeter/WebMeterBatchOperationValve'], resolve) })
60
-
60
+ // 交费记录维护列表
61
+ Vue.component('charge-list-maintain', (resolve) => { require(['./StockListmain'], resolve) })
62
+ // 所有气价信息列表
63
+ Vue.component('gas-price-list', (resolve) => { require(['./GasPriceList'], resolve) })
61
64
  }
@@ -132,7 +132,7 @@
132
132
  v-el:fcollection
133
133
  @blur="config.calculatePreByCollection && calculatePreByCollection()"
134
134
  @keyup.enter="checkInvoiceMsg((!$v.valid || validateOk || !islegal || clickConfirm))"
135
- v-scale="[model.f_collection, 4]" disabled>
135
+ v-scale="[model.f_collection, 4]" :disabled="!config.calculatePreByCollection">
136
136
  </div>
137
137
  <div class="col-sm-1 form-group" v-show=" row.f_meter_type.includes('卡表')">
138
138
  <give-change :curbalance="curbalance" :collection.sync="model.f_collection" v-ref:givechange></give-change>
package/src/main.js CHANGED
@@ -3,7 +3,7 @@ import all from 'vue-client/src/all'
3
3
  import App from './App'
4
4
  import system from 'system-clients/src/system'
5
5
  import sale from './sale'
6
- import wenxi from './filiale/xiangyun/sale'
6
+ import wenxi from './filiale/yuansheng/sale'
7
7
  // import FilialeSale from './filiale/yuansheng/sale'
8
8
  import address from 'address-client/src/address'
9
9
  import ldap from 'ldap-clients/src/ldap'
@@ -260,6 +260,7 @@ let FileManageService = {
260
260
  userfilesdevice.f_pipeexpire_date = userfilesdevice.f_pipeexpire_date ? userfilesdevice.f_pipeexpire_date : null
261
261
  userfilesdevice.f_userinfodevices_state = userfilesdevice.f_userinfodevices_state ? userfilesdevice.f_userinfodevices_state : null
262
262
  userfilesdevice.f_comments = userfilesdevice.f_comments ? userfilesdevice.f_comments : null
263
+ userfilesdevice.f_install_position = userfilesdevice.f_install_position ? userfilesdevice.f_install_position : null
263
264
  userfilesdevice.img = userfilesdevice.img ? userfilesdevice.img : {content: null, filename: null}
264
265
  userfilesdevice.img.content = userfilesdevice.img.content ? userfilesdevice.img.content : null
265
266
  userfilesdevice.img.filename = userfilesdevice.img.filename ? userfilesdevice.img.filename : null