sale-client 3.6.381 → 3.6.382

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,7 +1,7 @@
1
1
  var path = require('path')
2
2
  var checkVersion = require('./versionCheck.js')
3
3
  checkVersion()
4
- const [ serverRul, localUrl, v4Url ] = ['http://192.168.50.67:30785/', 'http://192.168.50.67:30785/', 'http://192.168.50.67:30785']
4
+ const [ serverRul, localUrl, v4Url ] = ['http://192.168.50.67:30785/', 'http://localhost:8080/', 'http://192.168.50.67:30785']
5
5
  var merge = require('webpack-merge')
6
6
  var baseConfig = require('./webpack.dev.conf')
7
7
  var devConfig = {
@@ -42,7 +42,7 @@ var devConfig = {
42
42
  target: serverRul
43
43
  },
44
44
  '/rs/sql/singleTable': {
45
- target: serverRul
45
+ target: localUrl
46
46
  },
47
47
  '/invoice': {
48
48
  target: serverRul
@@ -96,6 +96,9 @@ var devConfig = {
96
96
  '/rs/logic': {
97
97
  target: localUrl
98
98
  },
99
+ '/rs/entity': {
100
+ target: localUrl
101
+ },
99
102
  '/rs/sql': {
100
103
  target: localUrl
101
104
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.381",
3
+ "version": "3.6.382",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -63,6 +63,7 @@
63
63
  <!-- <input type="text" class="input_search" style="width:60%" v-model="row.f_input_person"-->
64
64
  <!-- placeholder='安装人'>-->
65
65
  <v-select :value.sync="row.f_input_person" v-model="row.f_input_person"
66
+ :value-single="true"
66
67
  :options='installperson' placeholder='安装人'
67
68
  close-on-select></v-select>
68
69
  </div>
@@ -35,7 +35,7 @@ export default {
35
35
  devicesinfo: [],
36
36
  show_devices: false,
37
37
  fireinfo: {},
38
- f_input_person: [],
38
+ f_input_person: '',
39
39
  show_fire: false,
40
40
  imgdelete: '/images/mainicon/deletedevice.png',
41
41
  imgsrc: '/images/mainicon/biaopan.png',
@@ -111,7 +111,7 @@ export default {
111
111
  this.devicesinfo = []
112
112
  this.devicesinfo = row.devicesinfo
113
113
  if (row.f_install_person && row.f_install_person[0]) {
114
- this.f_input_person = row.f_install_person[0]
114
+ this.f_input_person = row.f_install_person
115
115
  }
116
116
  this.devicesinfo.forEach((row) => {
117
117
  row.devicetypes = this.$appdata.getParam('设备类型')
@@ -27,6 +27,15 @@
27
27
  close-on-select clear-button>
28
28
  </v-select>
29
29
  </div>
30
+ <div class="col-sm-4 form-group">
31
+ <label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
32
+ <input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
33
+ <v-select :value.sync="model.f_add_gas" value-single
34
+ :options='addGas' placeholder='请选择'
35
+ selected="是否计入累购"
36
+ style="width:60%"
37
+ close-on-select></v-select>
38
+ </div>
30
39
  <div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
31
40
  <label class="font_normal_body">剩余气量</label>
32
41
  <input class="input_search" style="width:60%" type="number" v-model="data.f_balance_gas" readonly>
@@ -120,6 +129,7 @@
120
129
  },
121
130
  model: {
122
131
  f_refund_fee: '',
132
+ f_add_gas: '计入',
123
133
  f_refund_gas: '',
124
134
  f_comments: '',
125
135
  f_payment: '',
@@ -132,7 +142,7 @@
132
142
  randomBusinessId: '',
133
143
  resid: [], // 存放新增的f_files表中id
134
144
  validateOk: false,
135
-
145
+ addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
136
146
  printModel: {},
137
147
  print: false,
138
148
  billUrl: '',
@@ -185,6 +195,7 @@
185
195
  f_userfiles_id: this.data.f_userfiles_id,
186
196
  version: this.data.version,
187
197
  f_price: this.model.f_price,
198
+ f_add_gas: this.model.f_add_gas,
188
199
  f_refund_gas: this.model.f_refund_gas,
189
200
  f_refund_fee: this.model.f_refund_fee,
190
201
  f_comments: this.model.f_comments,
@@ -204,6 +215,10 @@
204
215
  f_depname: this.$login.f.deps
205
216
  }
206
217
  }
218
+ if (this.model.f_add_gas !== '计入') {
219
+ param.f_total_fee = this.data.f_total_fee
220
+ param.f_total_gas = this.data.f_total_gas
221
+ }
207
222
  console.log('退费传参', param)
208
223
  let res = await this.$resetpost('rs/logic/iotRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
209
224
  console.log('退费', res)
@@ -26,7 +26,15 @@
26
26
  close-on-select clear-button>
27
27
  </v-select>
28
28
  </div>
29
-
29
+ <div class="col-sm-4 form-group">
30
+ <label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
31
+ <input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
32
+ <v-select :value.sync="model.f_add_gas" value-single
33
+ :options='addGas' placeholder='请选择'
34
+ selected="是否计入累购"
35
+ style="width:60%"
36
+ close-on-select></v-select>
37
+ </div>
30
38
  <div class="col-sm-4 form-group">
31
39
  <label class="font_normal_body">剩余金额</label>
32
40
  <input class="input_search" style="width:60%" type="number" v-model="data.f_balance" readonly>
@@ -90,18 +98,19 @@
90
98
  showupload: false, // 默认不上传附件
91
99
  hasPrint: false, // 默认打票
92
100
  hasBillManage: false, // 默认不启用发票管理
93
- overBalance: false, //为true时退费金额可以大于余额
101
+ overBalance: false, // 为true时退费金额可以大于余额
94
102
  printType: '普通收据', // 收据/电子票/专用发票/国税发票
95
103
  payment: '现金缴费',
96
104
  billType: '燃气费'
97
105
  },
98
106
  model: {
99
107
  f_refund_fee: '',
108
+ f_add_gas: '计入',
100
109
  f_comments: '',
101
110
  f_payment: '',
102
111
  f_print: ''
103
112
  },
104
-
113
+ addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
105
114
  blodid: '',
106
115
  hasValidateBill: false,
107
116
  randomBusinessId: '',
@@ -155,13 +164,13 @@
155
164
  f_user_id: this.data.f_user_id,
156
165
  f_userfiles_id: this.data.f_userfiles_id,
157
166
  version: this.data.version,
158
- f_refund_fee: this.model.f_refund_fee,
167
+ f_refund_fee: (this.model.f_refund_fee - 0),
159
168
  f_comments: this.model.f_comments,
160
169
  f_payment: this.model.f_payment[0],
161
170
  f_print: this.model.f_print[0],
162
171
  f_price_id: this.data.f_price_id,
163
-
164
- f_total_fee: this.data.f_total_fee,
172
+ f_add_gas: this.model.f_add_gas,
173
+ f_total_fee: parseFloat(this.data.f_total_fee) - parseFloat(this.model.f_refund_fee),
165
174
  f_stairprice_id: this.data.f_stairprice_id,
166
175
  operInfo: {
167
176
  f_operator: this.$login.f.name,
@@ -172,7 +181,9 @@
172
181
  f_depname: this.$login.f.deps
173
182
  }
174
183
  }
175
-
184
+ if (this.model.f_add_gas !== '计入') {
185
+ param.f_total_fee = this.data.f_total_fee
186
+ }
176
187
  let res = await this.$resetpost('rs/logic/machineRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
177
188
  console.log('机表退费返回的数据==========>', res)
178
189
  let param1 = []
@@ -20,6 +20,16 @@
20
20
  <!-- </v-select>-->
21
21
  <!-- </div>-->
22
22
  </div>
23
+ <div class="col-sm-4 form-group">
24
+ <label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
25
+ <input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
26
+ <v-select :value.sync="model.f_add_gas" value-single
27
+ :options='addGas' placeholder='请选择'
28
+
29
+ selected="是否计入累购"
30
+ style="width:60%"
31
+ close-on-select></v-select>
32
+ </div>
23
33
  <div class="row" v-if="!isGas">
24
34
  <div class="col-sm-4">
25
35
  <label for="f_preamount" class=" font_normal_body">金额:</label>
@@ -131,8 +141,8 @@
131
141
  model: {
132
142
  f_pregas: 0,
133
143
  f_preamount: 0,
134
- f_reason: ''
135
- // f_add_gas: '不计入'
144
+ f_reason: '',
145
+ f_add_gas: '不计入'
136
146
  },
137
147
  print: false
138
148
  }
@@ -191,10 +201,10 @@
191
201
  f_curbalance: this.row.f_balance,
192
202
  f_card_id: this.row.f_card_id,
193
203
  f_comments: this.model.f_reason,
194
- f_add_gas: '计入',
195
204
  f_type: this.model.f_pregas != 0 ? '卡表赠气' : '卡表赠费',
196
205
  f_user_id: this.row.f_user_id,
197
206
  f_userfiles_id: this.row.f_userfiles_id,
207
+ f_add_gas: this.model.f_add_gas,
198
208
  f_userinfo_id: this.row.f_userinfo_id,
199
209
  f_user_name: this.row.f_user_name,
200
210
  f_user_type: this.row.f_user_type,
@@ -18,6 +18,16 @@
18
18
  style="width:60%"
19
19
  close-on-select></v-select>
20
20
  </div>
21
+ <div class="col-sm-4 form-group">
22
+ <label class="font_normal_body" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
23
+ <input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
24
+ <v-select :value.sync="model.f_add_gas" value-single
25
+ :options='addGas' placeholder='请选择'
26
+
27
+ selected="是否计入累购"
28
+ style="width:60%"
29
+ close-on-select></v-select>
30
+ </div>
21
31
  <div class="col-sm-4 form-group"></div>
22
32
 
23
33
  <div v-if="this.row.f_collection_type==='按金额'" class="col-sm-4 form-group"
@@ -52,13 +62,17 @@
52
62
  <!--<print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok" :data='printModel' v-ref:printbill></print-bill>-->
53
63
  </div>
54
64
  <upload :blodid="row.f_userinfo_id" v-ref:upload :businessid="randomBusinessId" :isremark="true" fusetype="赠气"></upload>
55
-
56
65
  </template>
57
-
58
-
59
66
  <script>
60
67
  import Vue from 'vue'
61
-
68
+ let readyGen = async function (self) {
69
+ await self.$getConfig(self, 'iotTable')
70
+ if (self.config.addgas) {
71
+ self.model.f_add_gas = '计入'
72
+ } else {
73
+ self.model.f_add_gas = '计入'
74
+ }
75
+ }
62
76
  export default {
63
77
  title: '赠气赠费',
64
78
  data () {
@@ -66,6 +80,7 @@ export default {
66
80
  blodid: '',
67
81
  showupload: false,
68
82
  randomBusinessId: '',
83
+ addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
69
84
  resid: [], // 存放新增的f_files表中id
70
85
  operator_type: [{label: '赠费', value: '物联网赠费'}],
71
86
  operator_type2: [{label: '赠气', value: '物联网赠气'}],
@@ -73,7 +88,7 @@ export default {
73
88
  f_operat_type: '',
74
89
  f_pregas: 0,
75
90
  f_preamount: 0,
76
-
91
+ f_add_gas: '计入',
77
92
  f_comments: ''
78
93
  }
79
94
 
@@ -81,6 +96,7 @@ export default {
81
96
  },
82
97
  props: ['row'],
83
98
  ready () {
99
+ readyGen(this)
84
100
  // this.blodid = this.row.f_userinfo_id
85
101
  this.getRandomId()
86
102
  if (this.row.f_collection_type === '按气量') {
@@ -116,6 +132,7 @@ export default {
116
132
  f_user_id: this.row.f_user_id,
117
133
  f_user_name: this.row.f_user_name,
118
134
  f_user_type: this.row.f_user_type,
135
+ f_add_gas: this.model.f_add_gas,
119
136
  f_gasproperties: this.row.f_gasproperties,
120
137
  f_meter_type: this.row.f_meter_type,
121
138
  f_pregas: this.model.f_pregas,
@@ -211,6 +211,7 @@ export default {
211
211
  f_userinfo_id: this.row.f_userinfo_id,
212
212
  f_user_name: this.row.f_user_name,
213
213
  f_operat_type: '拆表',
214
+ f_operate_type: '拆表',
214
215
  f_describe: `${this.$login.f.name}对客户${this.row.f_user_name}进行拆表操作`,
215
216
  f_state: '有效',
216
217
  f_comments: this.model.f_reason,
@@ -111,8 +111,8 @@ export default {
111
111
  f_user_id: this.row.f_user_id,
112
112
  f_userinfo_id: this.row.f_userinfo_id,
113
113
  f_user_name: this.row.f_user_name,
114
- f_operat_type: '复拆表',
115
- f_describe: `${this.$login.f.name}对客户${this.row.f_user_name}进行复拆表操作`,
114
+ f_operat_type: '表具复位',
115
+ f_describe: `${this.$login.f.name}对客户${this.row.f_user_name}进行表具复位操作`,
116
116
  f_state: '有效',
117
117
  f_operator: this.$login.f.name,
118
118
  f_operatorid: this.$login.f.id,
@@ -0,0 +1,424 @@
1
+ <template>
2
+ <div class="auto">
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" v-validate:payment='{required: true }'>
9
+ <v-select v-model="f_payment"
10
+ placeholder='请选择'
11
+ style="width:60%"
12
+ :value.sync="model.f_payment"
13
+ :options='paytype'
14
+ v-ref:payment
15
+ close-on-select clear-button></v-select>
16
+
17
+ </div>
18
+ <div class="col-sm-4 form-group">
19
+ <label for="f_print" class="font_normal_body">打印格式</label>
20
+
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" title="参数值:计入/不计入,计入:更新档案结余及累购,不计入:只保存记录不对档案进行操作">计入累购</label>
32
+ <input v-show="false" v-model="model.f_add_gas" v-validate:f_operat_type='{required: true}'>
33
+ <v-select :value.sync="model.f_add_gas" value-single
34
+ :options='addGas' placeholder='请选择'
35
+ selected="是否计入累购"
36
+ style="width:60%"
37
+ close-on-select></v-select>
38
+ </div>
39
+ <div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
40
+ <label class="font_normal_body">剩余气量</label>
41
+ <input class="input_search" style="width:60%" type="number" v-model="data.f_balance_gas" readonly>
42
+ </div>
43
+ <div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
44
+ <label class="font_normal_body">核算单价</label>
45
+ <input class="input_search" style="width:60%" type="number" v-model="model.f_price" >
46
+ </div>
47
+ <div class="col-sm-4 form-group" v-if="data.f_collection_type === '按金额'">
48
+ <label class="font_normal_body">剩余金额</label>
49
+ <input class="input_search" style="width:60%" type="number" v-model="data.f_balance_amount" readonly>
50
+ </div>
51
+ <div class="col-sm-4 form-group" v-if="config.overBalance && data.f_collection_type === '按气量'"
52
+ :class="[$v.f_refund_gas.required || $v.f_refund_gas.dctest ? 'has-error' : 'has-success']">
53
+ <label class="font_normal_body">冲减气量</label>
54
+ <input class="input_search" style="width:60%" type="number" v-model="model.f_refund_gas"
55
+ v-validate:f_refund_gas='{required: true, dctest: [0, ">=" ]}' placeholder="冲减气量" >
56
+ </div>
57
+ <div class="col-sm-4 form-group" v-if="!config.overBalance && data.f_collection_type === '按气量'"
58
+ :class="[$v.f_refund_gas.required || $v.f_refund_gas.dctest ? 'has-error' : 'has-success']">
59
+ <label class="font_normal_body">冲减气量</label>
60
+ <input class="input_search" style="width:60%" type="number" v-model="model.f_refund_gas"
61
+ v-validate:f_refund_gas='{required: true, dctest: [data.f_balance_gas, "<=" ]}' placeholder="冲减气量" >
62
+ </div>
63
+ </div>
64
+
65
+ <div class="row">
66
+
67
+ <div class="col-sm-8">
68
+ <label for="f_paper_account" class="font_normal_body ">&nbsp;&nbsp;&nbsp;备注&nbsp;&nbsp;&nbsp;</label>
69
+ <input class="input_search" style="width:80%" v-model="model.f_comments">
70
+ </div>
71
+ <div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
72
+ <label class="font_normal_body">退费金额</label>
73
+ <input class="input_search" style="width:60%"
74
+ type="number" v-model="model.f_refund_fee"
75
+ placeholder="退费金额">
76
+ </div>
77
+ <div class="col-sm-4 form-group" v-if="!config.overBalance && data.f_collection_type === '按金额'"
78
+ :class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
79
+ <label class="font_normal_body">退费金额</label>
80
+ <input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
81
+ v-validate:f_refund_fee='{required: true, dctest: [data.f_balance_amount, "<=" ]}' placeholder="退费金额">
82
+ </div>
83
+ <div class="col-sm-4 form-group" v-if="config.overBalance && data.f_collection_type === '按金额'"
84
+ :class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
85
+ <label class="font_normal_body">退费金额</label>
86
+ <input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
87
+ v-validate:f_refund_fee='{required: true, dctest: [0, ">=" ]}' placeholder="退费金额">
88
+ </div>
89
+ </div>
90
+ </form>
91
+ <div style="text-align:right;">
92
+ <button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid'>确认</button>
93
+ <button class="button_clear btn-gn" @click="clean()">取消</button>
94
+ </div>
95
+ </validator>
96
+ <validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
97
+ <!--<print-bill :show="print" :bill-manager='config.hasBillManage' v-ref:printbill :bill-url='billUrl' v-on:toggle="clean" @printok="printok" :data='printModel'></print-bill>-->
98
+ <print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok" :data='printModel' v-ref:printbill></print-bill>
99
+
100
+ <!-- 弹窗结构 -->
101
+ <div v-if="showModal" class="modal-overlay" @click="handleClose">
102
+ <div class="modal-content" @click.stop>
103
+ <button class="close-btn1" @click="handleClose">
104
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#858282" >
105
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
106
+ </svg>
107
+ </button>
108
+ <h3>提示</h3>
109
+ <p class="modal-message"><span class="exclamation-icon">!</span>{{ modalMessage }}</p>
110
+ <button class="confirm-btn" @click="handleConfirm">是</button>
111
+ <button class="cancel-btn" @click="handleClose">否</button>
112
+ </div>
113
+ </div>
114
+ </div>
115
+
116
+ <upload :blodid="data.f_userinfo_id" :businessid="randomBusinessId" isremark="true" fusetype="退费管理"></upload>
117
+ </template>
118
+
119
+
120
+ <script>
121
+ let readyGen = async function (self) {
122
+ await self.$getConfig(self, 'IOTRefund')
123
+ // 默认打印格式
124
+ self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
125
+ self.model.f_payment = [self.config.payment]
126
+
127
+ self.model.f_use_type = self.config.billType
128
+ self.model.f_bill_type = self.model.f_print
129
+ self.hasValidateBill = self.config.hasBillManage
130
+ }
131
+
132
+ export default {
133
+ title: '物联网表退费',
134
+ data () {
135
+ return {
136
+ config: {
137
+ showupload: false, // 默认不上传附件
138
+ hasPrint: false, // 默认打票
139
+ hasBillManage: false, // 默认不启用发票管理
140
+ overBalance: false, // 为true时退费金额可以大于余额
141
+ printType: '普通收据', // 收据/电子票/专用发票/国税发票
142
+ payment: '现金缴费',
143
+ billType: '燃气费'
144
+ },
145
+ model: {
146
+ f_refund_fee: '',
147
+ f_add_gas: '计入',
148
+ f_refund_gas: '',
149
+ f_comments: '',
150
+ f_payment: '',
151
+ f_print: '',
152
+ f_price: 0
153
+ },
154
+ showModal: false,
155
+ modalMessage: '',
156
+ blodid: '',
157
+ hasValidateBill: false,
158
+ randomBusinessId: '',
159
+ resid: [], // 存放新增的f_files表中id
160
+ validateOk: false,
161
+ addGas: [{label: '计入', value: '计入'}, {label: '不计入', value: '不计入'}],
162
+ printModel: {},
163
+ print: false,
164
+ billUrl: '',
165
+ billData: {
166
+ url: 'rs/report/refund_sell',
167
+ bill: ''
168
+ },
169
+
170
+ // 下拉框值
171
+ paytype: this.$appdata.getParam('付款方式'),
172
+ printstyle: this.$appdata.getParam('打印格式')
173
+ }
174
+ },
175
+ props: ['data'],
176
+ ready () {
177
+ readyGen(this)
178
+ this.getRandomId()
179
+ if (this.data.f_collection_type === '按气量') {
180
+ // this.$showAlert('按气量缴费的物联网表退费功能尚未开放!!', 'warning', 3000)
181
+ this.model.f_price = this.data.f_price
182
+
183
+ // this.$dispatch('refresh')
184
+ }
185
+ },
186
+ events: {
187
+ // 删除Resid数组元素
188
+ 'delResid' (val) {
189
+ this.resid.$remove({id: val, f_biobid: ''})
190
+ // this.resid.splice(this.resid.indexOf({id:val,f_biobid:''}),1);
191
+ },
192
+ // 增加Resid数组元素
193
+ 'resid' (val) {
194
+ this.resid.push({id: val, f_biobid: ''})
195
+ }
196
+ },
197
+ methods: {
198
+ showModalWithMessage(message) {
199
+ this.modalMessage = message;
200
+ this.showModal = true;
201
+ },
202
+ handleClose() {
203
+ this.showModal = false;
204
+ this.model.f_refund_fee = ''; // 重置表单数据
205
+ },
206
+ close() {
207
+ this.showModal = false;
208
+ },
209
+ handleConfirm() {
210
+ // 处理确认逻辑
211
+ console.log('确认按钮被点击');
212
+ this.model.f_refund_fee = '';
213
+ this.close();
214
+ },
215
+ getRandomId () {
216
+ this.randomBusinessId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
217
+ let res = Math.random() * 16 | 0
218
+ let v = c == 'x' ? res : (res & 0x3 | 0x8)
219
+ return v.toString(16)
220
+ })
221
+ },
222
+ async confirm () {
223
+ if (this.data.f_meter_brand === '前锋NB物联网表') {
224
+ this.showModalWithMessage('此表不支持扣费,是否进行清表操作!');
225
+ return;
226
+ }
227
+ if (this.data.f_collection_type === '按金额' && this.model.f_price) {
228
+ this.model.f_refund_gas = (this.model.f_refund_fee - 0) / (this.model.f_price - 0)
229
+ }
230
+ let param = {
231
+ f_user_id: this.data.f_user_id,
232
+ f_userfiles_id: this.data.f_userfiles_id,
233
+ version: this.data.version,
234
+ f_price: this.model.f_price,
235
+ f_add_gas: this.model.f_add_gas,
236
+ f_refund_gas: this.model.f_refund_gas,
237
+ f_refund_fee: this.model.f_refund_fee,
238
+ f_comments: this.model.f_comments,
239
+ f_collection_type: this.data.f_collection_type,
240
+ f_payment: this.model.f_payment[0],
241
+ f_print: this.model.f_print[0],
242
+ f_price_id: this.data.f_price_id,
243
+ f_total_gas: parseFloat(this.data.f_total_gas) - parseFloat(this.model.f_refund_gas),
244
+ f_total_fee: parseFloat(this.data.f_total_fee) - parseFloat(this.model.f_refund_fee),
245
+ f_stairprice_id: this.data.f_stairprice_id,
246
+ operInfo: {
247
+ f_operator: this.$login.f.name,
248
+ f_operatorid: this.$login.f.id,
249
+ f_orgid: this.$login.f.orgid,
250
+ f_orgname: this.$login.f.orgs,
251
+ f_depid: this.$login.f.depids,
252
+ f_depname: this.$login.f.deps
253
+ }
254
+ }
255
+ if (this.model.f_add_gas !== '计入') {
256
+ param.f_total_fee = this.data.f_total_fee
257
+ param.f_total_gas = this.data.f_total_gas
258
+ }
259
+ console.log('退费传参', param)
260
+ let res = await this.$resetpost('rs/logic/iotRefund', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
261
+ console.log('退费', res)
262
+ let param1 = []
263
+ for (let row of this.resid) {
264
+ param1.push({id: row.id})
265
+ }
266
+ let data = {
267
+ param: param1,
268
+ f_blobid: res.data.id
269
+ }
270
+ await this.$resetpost('rs/logic/updatefiles', data)
271
+ console.log('退费this.config', this.config)
272
+ console.log('退费this.model', this.model)
273
+ if (this.config.hasPrint) {
274
+ if (this.model.f_print.indexOf('电子发票') == -1) {
275
+ console.log('this.config.hasBillManage', this.config.hasBillManage)
276
+ if (this.config.hasBillManage) {
277
+ // 启用发票管理,获取票据管理中的票号并存储记录
278
+ this.printModel.id = res.data.id
279
+ this.printModel.f_bill_type = '退费'
280
+ this.printModel.f_bill_style = this.model.f_print[0]
281
+ // this.billUrl = 'rs/report/refund_sell'
282
+ this.print = true
283
+ } else {
284
+ this.printModel.id = res.data.id
285
+ // this.billUrl = 'rs/report/refund_sell'
286
+ this.print = true
287
+ }
288
+ } else if (this.config.printType === '国税发票') {
289
+ // TODO
290
+ this.$dispatch('success')
291
+ } else if (this.config.printType === '电子发票') {
292
+ // TODO
293
+ this.$dispatch('success')
294
+ }
295
+ } else {
296
+ this.$dispatch('success')
297
+ }
298
+ },
299
+ refundChange () {
300
+ this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
301
+ },
302
+ clean () {
303
+ this.$dispatch('refresh')
304
+ },
305
+ printok () {
306
+ this.$dispatch('success')
307
+ },
308
+ validateBill (val) {
309
+ this.validateOk = !val.isOk
310
+ this.billData.bill = val.bill
311
+ }
312
+ },
313
+ watch: {
314
+ 'model.f_price' () {
315
+ if (this.data.f_collection_type === '按气量') {
316
+ this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
317
+ }
318
+ },
319
+ 'model.f_refund_gas' () {
320
+ if (this.data.f_collection_type === '按气量') {
321
+ this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
322
+ }
323
+ }
324
+ }
325
+ }
326
+ </script>
327
+ <style scoped>
328
+ .modal-overlay {
329
+ position: fixed;
330
+ top: 0;
331
+ left: 0;
332
+ width: 100%;
333
+ height: 100%;
334
+ background: rgba(0, 0, 0, 0.5);
335
+ display: flex;
336
+ align-items: center;
337
+ justify-content: center;
338
+ z-index: 1000; /* 确保弹窗在所有内容上面 */
339
+ }
340
+ .modal-content {
341
+ background: #fff;
342
+ padding: 20px;
343
+ border-radius: 8px; /* 增加圆角 */
344
+ height: 200px;
345
+ width: 390px;
346
+ text-align: center;
347
+ }
348
+ .close-btn1 {
349
+ position: absolute;
350
+ top: -9px;
351
+ right: -8px;
352
+ background: transparent;
353
+ border: none;
354
+ color: #aaa; /* 默认颜色 */
355
+ font-size: 24px;
356
+ cursor: pointer;
357
+ transition: color 0.3s ease;
358
+ padding: 0; /* 移除内边距,确保图标对齐 */
359
+ }
360
+ .close-btn1 svg {
361
+ stroke: #858585; /* 使用按钮的颜色 */
362
+ width: 24px;
363
+ height: 24px;
364
+ }
365
+ .close-btn1:hover {
366
+ color: #333; /* 悬停时颜色 */
367
+ }
368
+ .modal-content button {
369
+ margin: 5px;
370
+ margin-top: 20px;
371
+ padding: 4px 17px;
372
+ border: none;
373
+ border-radius: 10px; /* 圆角按钮 */
374
+ color: #fff;
375
+ cursor: pointer;
376
+ font-size: 16px;
377
+ font-weight: bold;
378
+ transition: background-color 0.3s ease, transform 0.2s ease;
379
+ }
380
+ .modal-message {
381
+ font-size: 16px; /* 设置p标签的字体大小 */
382
+ }
383
+ .confirm-btn {
384
+ background-color: #3592EFFF; /* 蓝色背景 */
385
+ }
386
+ .confirm-btn:hover {
387
+ background-color: #1565C0;
388
+ transform: scale(1.05); /* 按钮放大效果 */
389
+ }
390
+ .cancel-btn {
391
+ background-color: #5AC0D9FF; /* 绿色背景 */
392
+ }
393
+ .cancel-btn:hover {
394
+ background-color: #15b3da;
395
+ transform: scale(1.05); /* 按钮放大效果 */
396
+ }
397
+ h3 {
398
+ display: block;
399
+ font-size: 1.4em;
400
+ margin-block-start: 0em;
401
+ margin-block-end: 1em;
402
+ margin-inline-start: 0px;
403
+ margin-inline-end: 0px;
404
+ font-weight: bold;
405
+ unicode-bidi: isolate;
406
+ padding-bottom: 5px; /* 底部内边距 */
407
+ }
408
+
409
+ .exclamation-icon {
410
+ display: inline-flex;
411
+ align-items: center;
412
+ justify-content: center;
413
+ width: 24px;
414
+ height: 24px;
415
+ background-color: red; /* 红底 */
416
+ color: white; /* 白色文字 */
417
+ border-radius: 50%; /* 圆形 */
418
+ font-size: 16px;
419
+ font-weight: bold;
420
+ margin-right: 8px; /* 图标和文字之间的间距 */
421
+ text-align: center;
422
+ }
423
+
424
+ </style>
@@ -13,4 +13,6 @@ export default function () {
13
13
  // 单个表具信息
14
14
  Vue.component('file-meter-info', (resolve) => { require(['./MeterinfoTest'], resolve) })
15
15
  Vue.component('user-info-detail-manage-new', (resolve) => { require(['./UserInfoDetailManageNew'], resolve) })
16
+ // 物联网退费管理
17
+ Vue.component('iot-refund', (resolve) => { require(['./IOTRefund'], resolve) })
16
18
  }
@@ -248,6 +248,12 @@
248
248
  :options='usestate' placeholder='使用状态'
249
249
  close-on-select></v-select>
250
250
  </div>
251
+ <div class="col-sm-4 form-group" >
252
+ <label class="font_normal_body">表具使用年限</label>
253
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_use_limit"
254
+ :value.sync="row.f_use_limit"
255
+ placeholder='表具使用年限' >
256
+ </div>
251
257
  <div style="" class="col-sm-6 form-group">
252
258
  <label for="f_userfiles_address" class="font_normal_body ">安装地址&nbsp;</label>
253
259
  <input class="input_search" style="width:80%" v-model="row.f_userfiles_address"/>
@@ -288,6 +288,12 @@
288
288
  :options='usestate' placeholder='使用状态'
289
289
  close-on-select></v-select>
290
290
  </div>
291
+ <div class="col-sm-4 form-group" >
292
+ <label class="font_normal_body">表具使用年限</label>
293
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_use_limit"
294
+ :value.sync="row.f_use_limit"
295
+ placeholder='表具使用年限' >
296
+ </div>
291
297
  <div style="" class="col-sm-8 form-group">
292
298
  <label for="f_userfiles_address" class="font_normal_body ">&nbsp;用气点名</label>
293
299
  <input class="input_search" style="width:80%" v-model="row.f_userfiles_address"/>