sale-client 3.6.23 → 3.6.25

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] = ['https://qnjtkf.cn:8400/', 'https://qnjtkf.cn:8400/']
2
+ const [localUrl, serverRul] = ['http://221.193.244.147:8400/#', 'http://221.193.244.147: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.6.23",
3
+ "version": "3.6.25",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1,333 +1,333 @@
1
- <template>
2
- <div @keyup.enter="search" class="span">
3
- <criteria-paged :model="model" class="list_area table_sy" v-ref:paged>
4
- <criteria @condition-changed='$parent.search' partial='criteria' v-ref:criteria>
5
- <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
6
- <div class="row">
7
-
8
- <div class="col-sm-2 form-group">
9
- <label class="font_normal_body">指令类型</label>
10
- <v-select :options='$parent.$parent.instructType' :value.sync="model.f_instruct_type"
11
- close-on-select
12
- condition="f_instruct_type='{}'"
13
- placeholder='指令类型'
14
- style="width: 60%"
15
- v-model="model.f_instruct_type"></v-select>
16
- </div>
17
- <div class="col-sm-2 form-group">
18
- <label class="font_normal_body">指令状态</label>
19
- <v-select :options='$parent.$parent.instructState' :value.sync="model.f_instruct_state"
20
- close-on-select
21
- condition="f_instruct_state='{}'"
22
- placeholder='指令状态'
23
- style="width: 60%"
24
- v-model="model.f_instruct_state"
25
- ></v-select>
26
- </div>
27
-
28
- <div class="col-sm-2 form-group">
29
- <label class="font_normal_body">开始时间</label>
30
- <datepicker :format="'yyyy-MM-dd HH:mm:ss'"
31
- :value.sync="model.f_start_date"
32
- class="datepicker"
33
- condition="f_instruct_date > '{}'"
34
- placeholder="起始时间"
35
- style="width: 60%"
36
- v-model="model.f_start_date"
37
- ></datepicker>
38
- </div>
39
- <div class="col-sm-2 form-group">
40
- <label class="font_normal_body">结束时间</label>
41
- <datepicker :format="'yyyy-MM-dd HH:mm:ss'"
42
- :value.sync="model.f_end_date"
43
- class="datepicker"
44
- condition="f_instruct_date < '{}'"
45
- placeholder="结束时间"
46
- style="width: 60%"
47
- v-model="model.f_end_date"
48
- ></datepicker>
49
- </div>
50
- <div style="float: right">
51
- <button @click="search()" class="button_search" v-el:cba>查询</button>
52
- </div>
53
- </div>
54
-
55
- </div>
56
- </criteria>
57
- <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
58
- <template partial='head'>
59
- <tr>
60
- <th style="text-align:center;">
61
- <nobr>指令类型</nobr>
62
- </th>
63
- <th style="text-align:center;">
64
- <nobr>指令内容</nobr>
65
- </th>
66
- <th style="text-align:center;">
67
- <nobr>指令状态</nobr>
68
- </th>
69
- <th style="text-align:center;">
70
- <nobr>指令生成时间</nobr>
71
- </th>
72
- <th style="text-align:center;">
73
- <nobr>指令发送时间</nobr>
74
- </th>
75
- <th style="text-align:center;">
76
- <nobr>指令上表时间</nobr>
77
- </th>
78
- <th style="text-align:center;">
79
- <nobr>操作人</nobr>
80
- </th>
81
- <th style="text-align:center;">
82
- <nobr>操作时间(记录)</nobr>
83
- </th>
84
- <th style="text-align:center;">
85
- <nobr>操作类型</nobr>
86
- </th>
87
- <!-- 查这里-->
88
- <th style="text-align:center;">
89
- <nobr>操作状态</nobr>
90
- </th>
91
- <th style="text-align:center;">
92
- <nobr>操作人(记录)</nobr>
93
- </th>
94
- <th style="text-align:center;">
95
- <nobr>操作内容</nobr>
96
- </th>
97
- <th style="text-align:center;">
98
- <nobr>操作/指令状态</nobr>
99
- </th>
100
- <!--<th style="text-align:center;"><nobr>发送原因</nobr></th>
101
- <th style="text-align:center;"><nobr>取消原因</nobr></th>-->
102
- <th style="text-align:center;">
103
- <nobr>备注信息</nobr>
104
- </th>
105
- <th style="text-align:center;" v-if="$parent.$parent.$parent.row.f_meter_brand === '承德NB物联网表'">
106
- <!-- <th style="text-align:center;">-->
107
- <nobr>写卡操作</nobr>
108
- </th>
109
- </tr>
110
- </template>
111
- <template partial='body'>
112
- <tr>
113
- <td style="text-align:center;">
114
- <nobr>{{row.f_instruct_type}}</nobr>
115
- </td>
116
- <td style="text-align:center;">
117
- <nobr>{{row.f_instruct_title}}</nobr>
118
- </td>
119
- <td style="text-align:center;">
120
- <nobr>{{row.f_instruct_state}}</nobr>
121
- </td>
122
- <td style="text-align:center;">
123
- <nobr>{{row.f_instruct_date}}</nobr>
124
- </td>
125
- <td style="text-align:center;">
126
- <nobr>{{row.f_send_date}}</nobr>
127
- </td>
128
- <td style="text-align:center;">
129
- <nobr>{{row.f_callback_date}}</nobr>
130
- </td>
131
- <td style="text-align:center;">
132
- <nobr>{{row.f_inputtor}}</nobr>
133
- </td>
134
- <td style="text-align:center;">
135
- <nobr>{{row.f_operate_date}}</nobr>
136
- </td>
137
- <td style="text-align:center;">
138
- <nobr>{{row.f_type}}</nobr>
139
- </td>
140
- <!-- 这里-->
141
- <td style="text-align:center;">
142
- <nobr>{{$parent.$parent.$parent.stateFlow(row)}}</nobr>
143
- <!-- <nobr>{{row.f_state}}</nobr>-->
144
- </td>
145
- <td style="text-align:center;">
146
- <nobr>{{row.f_operator}}</nobr>
147
- </td>
148
- <td style="text-align:center;">
149
- <nobr>{{row.f_operator_data}}</nobr>
150
- </td>
151
- <td style="text-align:center;" v-if="row.f_instruct_state === '待发送' && row.f_instruct_state !== '取消发送'">
152
- <nobr>
153
- {{row.f_instruct_state}}
154
- </nobr>
155
- </td>
156
- <td style="text-align:center;" v-if="row.f_instruct_state !== '待发送' && row.f_instruct_state !== '取消发送'">
157
- <nobr>
158
- {{row.f_receive_state}}
159
- </nobr>
160
- </td>
161
- <td style="text-align:center;" v-if="row.f_instruct_state === '取消发送'">
162
- <nobr>
163
- <span title="操作人:{{row.f_cancel_inputtor}},操作原因:{{row.f_comments}}">已取消</span>
164
- </nobr>
165
- </td>
166
- <!-- <td style="text-align:center;"><nobr>{{row.f_info}}</nobr></td>
167
- <td style="text-align:center;"><nobr>{{row.f_comments}}</nobr></td>-->
168
- <td style="text-align:center;">
169
- <nobr><span >{{row.f_info}}</span></nobr>
170
- </td>
171
- <th style="text-align:center;" v-if="$parent.$parent.$parent.row.f_meter_brand === '承德NB物联网表'">
172
- <!-- <th style="text-align:center;">-->
173
- <button @click.stop='$parent.$parent.$parent.instructWriteCard(row)'
174
- class="button_search" type="button"
175
- v-show="row.id == $parent.$parent.$parent.maxId && row.f_instruct_state === '执行失败'">确认</button>
176
- </th>
177
- </tr>
178
- </template>
179
- </data-grid>
180
- </criteria-paged>
181
- <modal :show.sync="handcental" backdrop="false" v-ref:modal>
182
- <header class="modal-header" slot="modal-header">
183
- <h4 class="modal-title">取消发送</h4>
184
- </header>
185
- <article class="modal-body" slot="modal-body">
186
- <div class="form-group">
187
- <label class="font_normal_body" >取消发送原因</label>
188
- <textarea class="form-control" placeholder="请填写取消发送原因" rows="3" v-model="cancelreason"></textarea>
189
- </div>
190
- </article>
191
- <footer class="modal-footer" slot="modal-footer">
192
- <button @click='close' class="btn btn-default" type="button" v-show="handcental">取消</button>
193
- <button @click='confirmcenta()' class="button_search" type="button" v-show="handcental">确认</button>
194
- </footer>
195
- </modal>
196
- </div>
197
-
198
- </template>
199
- <script>
200
- import {HttpResetClass, PagedList} from 'vue-client'
201
- import Vue from 'vue'
202
-
203
- export default {
204
- title: '指令查看',
205
- name: 'Querylnstruct',
206
- props: {
207
- row: {},
208
- tablename: {
209
- type: String,
210
- default: 't_instruct'
211
- },
212
- orderitem: {
213
- type: String,
214
- default: 'f_instruct_date desc'
215
- },
216
- items: {
217
- type: String,
218
- default: '*'
219
- }
220
- },
221
- data () {
222
- return {
223
- handcental: false,
224
- cancelreason: '',
225
- cancelid: '',
226
- f_userfiles_id: '',
227
- model: new PagedList('rs/sql/insturctDetailQuery', 30),
228
- row: null,
229
- searchshow: false,
230
- show: false,
231
- maxId: ''
232
- }
233
- },
234
-
235
- async ready () {
236
- await this.$refs.paged.$refs.criteria.search()
237
- if (this.row.f_meter_brand === '承德NB物联网表') {
238
- // if (true) {
239
- let http = new HttpResetClass()
240
- let getMax = await http.load('POST', 'rs/sql/querySingleTable', {data: {items: 'max(id) id',
241
- tablename: 't_instruct',
242
- condition: ` f_userfiles_id='${this.row.f_userfiles_id}' `
243
- }}, {resolveMsg: null, rejectMsg: null})
244
- this.maxId = getMax.data[0].id
245
- }
246
- },
247
- watch: {
248
- 'row' (val) {
249
- this.f_userfiles_id = val.f_userfiles_id
250
- if (this.row != null) {
251
- this.$refs.paged.$refs.criteria.search()
252
- }
253
- }
254
- },
255
- methods: {
256
- async instructWriteCard (row) {
257
- let res = await this.$CardService.instructWriteCard(row)
258
- if (res) {
259
- let sql = `update t_instruct set f_instruct_state = '执行成功' WHERE id = ${row.id}`
260
- await this.$resetpost('rs/logic/runSQL', {sql: sql}, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
261
- await this.$refs.paged.$refs.criteria.search()
262
- }
263
- },
264
- stateFlow: function (row) {
265
- console.log(row)
266
- let state = ''
267
- if (row.f_instruct_type.includes('阀门控制')) {
268
- let content = JSON.parse(row.f_instruct_content)
269
- if (content.isOpen !== null) {
270
- if (content.isOpen === 1) {
271
- state = '开阀'
272
- } else if (content.isOpen === 0) {
273
- state = '关阀'
274
- } else {
275
- state = row.f_state
276
- }
277
- return state
278
- }
279
- } else {
280
- return row.f_state
281
- }
282
- },
283
- clickshow () {
284
- this.searchshow = !this.searchshow
285
- },
286
- backSend (megrow) {
287
- if (megrow.f_inputtor != '系统必需') {
288
- this.handcental = true
289
- this.cancelid = megrow.id
290
- } else {
291
- this.$showAlert('该指令为系统必需状态,无法取消发送。', 'warning', 3000)
292
- }
293
- },
294
- confirmcenta () {
295
- let send = {
296
- id: this.cancelid, // 当前记录ID
297
- f_cancel_inputtor_id: this.$login.f.id, // 撤销人id
298
- f_cancel_inputtor: this.$login.f.name, // 撤销人姓名
299
- f_instruct_state: '取消发送',
300
- f_comments: this.cancelreason
301
- }
302
- let param = {
303
- tablename: 't_instruct',
304
- basedata: send
305
- }
306
- this.$resetpost('rs/logic/iot_saveTable', param).then(() => {
307
- // this.params.rows.splice(index, 1)
308
- console.log('更新成功!')
309
- })
310
- this.handcental = false
311
- this.$refs.paged.$refs.criteria.search()
312
- },
313
- search (arg) {
314
- arg.condition = `${arg.condition} and f_userfiles_id='${this.row.f_userfiles_id}'`
315
- this.model.search(arg.condition, arg.model)
316
- }
317
- },
318
- computed: {
319
- instructType () {
320
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令类型')]
321
- },
322
- instructState () {
323
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令状态')]
324
- }
325
- }
326
- }
327
- </script>
328
- <style>
329
- .form-input-group label {
330
- text-align: right;
331
- width: auto;
332
- }
333
- </style>
1
+ <template>
2
+ <div @keyup.enter="search" class="span">
3
+ <criteria-paged :model="model" class="list_area table_sy" v-ref:paged>
4
+ <criteria @condition-changed='$parent.search' partial='criteria' v-ref:criteria>
5
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
6
+ <div class="row">
7
+
8
+ <div class="col-sm-2 form-group">
9
+ <label class="font_normal_body">指令类型</label>
10
+ <v-select :options='$parent.$parent.instructType' :value.sync="model.f_instruct_type"
11
+ close-on-select
12
+ condition="f_instruct_type='{}'"
13
+ placeholder='指令类型'
14
+ style="width: 60%"
15
+ v-model="model.f_instruct_type"></v-select>
16
+ </div>
17
+ <div class="col-sm-2 form-group">
18
+ <label class="font_normal_body">指令状态</label>
19
+ <v-select :options='$parent.$parent.instructState' :value.sync="model.f_instruct_state"
20
+ close-on-select
21
+ condition="f_instruct_state='{}'"
22
+ placeholder='指令状态'
23
+ style="width: 60%"
24
+ v-model="model.f_instruct_state"
25
+ ></v-select>
26
+ </div>
27
+
28
+ <div class="col-sm-2 form-group">
29
+ <label class="font_normal_body">开始时间</label>
30
+ <datepicker :format="'yyyy-MM-dd HH:mm:ss'"
31
+ :value.sync="model.f_start_date"
32
+ class="datepicker"
33
+ condition="f_instruct_date > '{}'"
34
+ placeholder="起始时间"
35
+ style="width: 60%"
36
+ v-model="model.f_start_date"
37
+ ></datepicker>
38
+ </div>
39
+ <div class="col-sm-2 form-group">
40
+ <label class="font_normal_body">结束时间</label>
41
+ <datepicker :format="'yyyy-MM-dd HH:mm:ss'"
42
+ :value.sync="model.f_end_date"
43
+ class="datepicker"
44
+ condition="f_instruct_date < '{}'"
45
+ placeholder="结束时间"
46
+ style="width: 60%"
47
+ v-model="model.f_end_date"
48
+ ></datepicker>
49
+ </div>
50
+ <div style="float: right">
51
+ <button @click="search()" class="button_search" v-el:cba>查询</button>
52
+ </div>
53
+ </div>
54
+
55
+ </div>
56
+ </criteria>
57
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
58
+ <template partial='head'>
59
+ <tr>
60
+ <th style="text-align:center;">
61
+ <nobr>指令类型</nobr>
62
+ </th>
63
+ <th style="text-align:center;">
64
+ <nobr>指令内容</nobr>
65
+ </th>
66
+ <th style="text-align:center;">
67
+ <nobr>指令状态</nobr>
68
+ </th>
69
+ <th style="text-align:center;">
70
+ <nobr>指令生成时间</nobr>
71
+ </th>
72
+ <th style="text-align:center;">
73
+ <nobr>指令发送时间</nobr>
74
+ </th>
75
+ <th style="text-align:center;">
76
+ <nobr>指令上表时间</nobr>
77
+ </th>
78
+ <th style="text-align:center;">
79
+ <nobr>操作人</nobr>
80
+ </th>
81
+ <th style="text-align:center;">
82
+ <nobr>操作时间(记录)</nobr>
83
+ </th>
84
+ <th style="text-align:center;">
85
+ <nobr>操作类型</nobr>
86
+ </th>
87
+ <!-- 查这里-->
88
+ <th style="text-align:center;">
89
+ <nobr>操作状态</nobr>
90
+ </th>
91
+ <th style="text-align:center;">
92
+ <nobr>操作人(记录)</nobr>
93
+ </th>
94
+ <th style="text-align:center;">
95
+ <nobr>操作内容</nobr>
96
+ </th>
97
+ <th style="text-align:center;">
98
+ <nobr>操作/指令状态</nobr>
99
+ </th>
100
+ <!--<th style="text-align:center;"><nobr>发送原因</nobr></th>
101
+ <th style="text-align:center;"><nobr>取消原因</nobr></th>-->
102
+ <th style="text-align:center;">
103
+ <nobr>备注信息</nobr>
104
+ </th>
105
+ <th style="text-align:center;" v-if="['HaiLiSystem','BoGuanSystem'].includes( $parent.$parent.$parent.row.f_alias)">
106
+ <!-- <th style="text-align:center;">-->
107
+ <nobr>写卡操作</nobr>
108
+ </th>
109
+ </tr>
110
+ </template>
111
+ <template partial='body'>
112
+ <tr>
113
+ <td style="text-align:center;">
114
+ <nobr>{{row.f_instruct_type}}</nobr>
115
+ </td>
116
+ <td style="text-align:center;">
117
+ <nobr>{{row.f_instruct_title}}</nobr>
118
+ </td>
119
+ <td style="text-align:center;">
120
+ <nobr>{{row.f_instruct_state}}</nobr>
121
+ </td>
122
+ <td style="text-align:center;">
123
+ <nobr>{{row.f_instruct_date}}</nobr>
124
+ </td>
125
+ <td style="text-align:center;">
126
+ <nobr>{{row.f_send_date}}</nobr>
127
+ </td>
128
+ <td style="text-align:center;">
129
+ <nobr>{{row.f_callback_date}}</nobr>
130
+ </td>
131
+ <td style="text-align:center;">
132
+ <nobr>{{row.f_inputtor}}</nobr>
133
+ </td>
134
+ <td style="text-align:center;">
135
+ <nobr>{{row.f_operate_date}}</nobr>
136
+ </td>
137
+ <td style="text-align:center;">
138
+ <nobr>{{row.f_type}}</nobr>
139
+ </td>
140
+ <!-- 这里-->
141
+ <td style="text-align:center;">
142
+ <nobr>{{$parent.$parent.$parent.stateFlow(row)}}</nobr>
143
+ <!-- <nobr>{{row.f_state}}</nobr>-->
144
+ </td>
145
+ <td style="text-align:center;">
146
+ <nobr>{{row.f_operator}}</nobr>
147
+ </td>
148
+ <td style="text-align:center;">
149
+ <nobr>{{row.f_operator_data}}</nobr>
150
+ </td>
151
+ <td style="text-align:center;" v-if="row.f_instruct_state === '待发送' && row.f_instruct_state !== '取消发送'">
152
+ <nobr>
153
+ {{row.f_instruct_state}}
154
+ </nobr>
155
+ </td>
156
+ <td style="text-align:center;" v-if="row.f_instruct_state !== '待发送' && row.f_instruct_state !== '取消发送'">
157
+ <nobr>
158
+ {{row.f_receive_state}}
159
+ </nobr>
160
+ </td>
161
+ <td style="text-align:center;" v-if="row.f_instruct_state === '取消发送'">
162
+ <nobr>
163
+ <span title="操作人:{{row.f_cancel_inputtor}},操作原因:{{row.f_comments}}">已取消</span>
164
+ </nobr>
165
+ </td>
166
+ <!-- <td style="text-align:center;"><nobr>{{row.f_info}}</nobr></td>
167
+ <td style="text-align:center;"><nobr>{{row.f_comments}}</nobr></td>-->
168
+ <td style="text-align:center;">
169
+ <nobr><span >{{row.f_info}}</span></nobr>
170
+ </td>
171
+ <th style="text-align:center;" v-if="['HaiLiSystem','BoGuanSystem'].includes( $parent.$parent.$parent.row.f_alias)">
172
+ <!-- <th style="text-align:center;">-->
173
+ <button @click.stop='$parent.$parent.$parent.instructWriteCard(row)'
174
+ class="button_search" type="button"
175
+ v-show="row.f_instruct_type === '远程充值'">写卡</button>
176
+ </th>
177
+ </tr>
178
+ </template>
179
+ </data-grid>
180
+ </criteria-paged>
181
+ <modal :show.sync="handcental" backdrop="false" v-ref:modal>
182
+ <header class="modal-header" slot="modal-header">
183
+ <h4 class="modal-title">取消发送</h4>
184
+ </header>
185
+ <article class="modal-body" slot="modal-body">
186
+ <div class="form-group">
187
+ <label class="font_normal_body" >取消发送原因</label>
188
+ <textarea class="form-control" placeholder="请填写取消发送原因" rows="3" v-model="cancelreason"></textarea>
189
+ </div>
190
+ </article>
191
+ <footer class="modal-footer" slot="modal-footer">
192
+ <button @click='close' class="btn btn-default" type="button" v-show="handcental">取消</button>
193
+ <button @click='confirmcenta()' class="button_search" type="button" v-show="handcental">确认</button>
194
+ </footer>
195
+ </modal>
196
+ </div>
197
+
198
+ </template>
199
+ <script>
200
+ import {HttpResetClass, PagedList} from 'vue-client'
201
+ import Vue from 'vue'
202
+
203
+ export default {
204
+ title: '指令查看',
205
+ name: 'Querylnstruct',
206
+ props: {
207
+ row: {},
208
+ tablename: {
209
+ type: String,
210
+ default: 't_instruct'
211
+ },
212
+ orderitem: {
213
+ type: String,
214
+ default: 'f_instruct_date desc'
215
+ },
216
+ items: {
217
+ type: String,
218
+ default: '*'
219
+ }
220
+ },
221
+ data () {
222
+ return {
223
+ handcental: false,
224
+ cancelreason: '',
225
+ cancelid: '',
226
+ f_userfiles_id: '',
227
+ model: new PagedList('rs/sql/insturctDetailQuery', 30),
228
+ row: null,
229
+ searchshow: false,
230
+ show: false,
231
+ maxId: ''
232
+ }
233
+ },
234
+
235
+ async ready () {
236
+ await this.$refs.paged.$refs.criteria.search()
237
+ // if (this.row.f_meter_brand === '承德NB物联网表') {
238
+ // // if (true) {
239
+ // let http = new HttpResetClass()
240
+ // let getMax = await http.load('POST', 'rs/sql/querySingleTable', {data: {items: 'max(id) id',
241
+ // tablename: 't_instruct',
242
+ // condition: ` f_userfiles_id='${this.row.f_userfiles_id}' `
243
+ // }}, {resolveMsg: null, rejectMsg: null})
244
+ // this.maxId = getMax.data[0].id
245
+ // }
246
+ },
247
+ watch: {
248
+ 'row' (val) {
249
+ this.f_userfiles_id = val.f_userfiles_id
250
+ if (this.row != null) {
251
+ this.$refs.paged.$refs.criteria.search()
252
+ }
253
+ }
254
+ },
255
+ methods: {
256
+ async instructWriteCard (row) {
257
+ let res = await this.$CardService.instructWriteCard(row)
258
+ if (res) {
259
+ let sql = `update t_instruct set f_instruct_state = '执行成功' WHERE id = ${row.id}`
260
+ await this.$resetpost('rs/logic/runSQL', {sql: sql}, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
261
+ await this.$refs.paged.$refs.criteria.search()
262
+ }
263
+ },
264
+ stateFlow: function (row) {
265
+ console.log(row)
266
+ let state = ''
267
+ if (row.f_instruct_type.includes('阀门控制')) {
268
+ let content = JSON.parse(row.f_instruct_content)
269
+ if (content.isOpen !== null) {
270
+ if (content.isOpen === 1) {
271
+ state = '开阀'
272
+ } else if (content.isOpen === 0) {
273
+ state = '关阀'
274
+ } else {
275
+ state = row.f_state
276
+ }
277
+ return state
278
+ }
279
+ } else {
280
+ return row.f_state
281
+ }
282
+ },
283
+ clickshow () {
284
+ this.searchshow = !this.searchshow
285
+ },
286
+ backSend (megrow) {
287
+ if (megrow.f_inputtor != '系统必需') {
288
+ this.handcental = true
289
+ this.cancelid = megrow.id
290
+ } else {
291
+ this.$showAlert('该指令为系统必需状态,无法取消发送。', 'warning', 3000)
292
+ }
293
+ },
294
+ confirmcenta () {
295
+ let send = {
296
+ id: this.cancelid, // 当前记录ID
297
+ f_cancel_inputtor_id: this.$login.f.id, // 撤销人id
298
+ f_cancel_inputtor: this.$login.f.name, // 撤销人姓名
299
+ f_instruct_state: '取消发送',
300
+ f_comments: this.cancelreason
301
+ }
302
+ let param = {
303
+ tablename: 't_instruct',
304
+ basedata: send
305
+ }
306
+ this.$resetpost('rs/logic/iot_saveTable', param).then(() => {
307
+ // this.params.rows.splice(index, 1)
308
+ console.log('更新成功!')
309
+ })
310
+ this.handcental = false
311
+ this.$refs.paged.$refs.criteria.search()
312
+ },
313
+ search (arg) {
314
+ arg.condition = `${arg.condition} and f_userfiles_id='${this.row.f_userfiles_id}'`
315
+ this.model.search(arg.condition, arg.model)
316
+ }
317
+ },
318
+ computed: {
319
+ instructType () {
320
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令类型')]
321
+ },
322
+ instructState () {
323
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令状态')]
324
+ }
325
+ }
326
+ }
327
+ </script>
328
+ <style>
329
+ .form-input-group label {
330
+ text-align: right;
331
+ width: auto;
332
+ }
333
+ </style>
@@ -0,0 +1,102 @@
1
+ <template>
2
+ <modal :show.sync="modalShow" backdrop="false" width="50%" title="提示信息">
3
+ <article slot="modal-body">
4
+ <div style="width:98%;margin: auto" v-show="showInformation">
5
+ <p>{{warninginfo.data.msgData}}</p>
6
+ <p>用户号:{{row.f_userinfo_code}}&nbsp;&nbsp;&nbsp;用户姓名:{{row.f_user_name}}&nbsp;&nbsp;&nbsp;用户地址:{{row.f_address}}</p>
7
+ <div style="font-size: 15px;padding: 10px">
8
+ <span style="float: right">
9
+ <button class="button_search" v-show="!warninginfo.data.state.info" @click="operational('files_complete')" style="width: max-content;">完善信息</button>
10
+ <button class="button_search" v-show="warninginfo.data.state.blacklist&&!warninginfo.data.state.dibao" @click="operational('basic-living')" style="width: max-content;">低保续保</button>
11
+ <button class="button_search" v-show="warninginfo.data.state.blacklist&&!warninginfo.data.state.dibao && warninginfo.data.state.dibaoend" @click="operational('stop-basic-living')" style="width: max-content;">停止续保</button>
12
+ <button class="button_search" v-show="!(!warninginfo.data.state.dibao&&warninginfo.data.state.dibaoend) && warninginfo.data.canCharge" @click="success()">确认</button>
13
+ </span>
14
+ </div>
15
+ <p>{{authorityInformation}}</p>
16
+ </div>
17
+ <div style="width:98%;margin: auto" v-show="!showInformation" >
18
+ <route v-ref:route @close="close" @success="success" v-show="!showInformation" :data="row"></route>
19
+ </div>
20
+ </article>
21
+ <footer slot="modal-footer" class="modal-footer" style="text-align: center;border: 0">
22
+ <!--如果想忽略到期信息,modal的值设为null-->
23
+ <!-- <button class="button_clear" @click="ignore" v-if="basicLiving">忽略</button>-->
24
+ </footer>
25
+ </modal>
26
+ </template>
27
+ <script>
28
+ let initGen = async function (self) {
29
+ if(self.warninginfo){
30
+ if (!self.warninginfo.data.state.info && !self.warninginfo.data.state.blacklist && !self.warninginfo.data.state.dibao) {
31
+ self.authorityInformation = '您没有相关的业务操作权限, 请联系管理员!!'
32
+ }
33
+ }
34
+
35
+ }
36
+
37
+ export default {
38
+ title: '收费弹出框',
39
+ props: {
40
+ // 动态属性表数据
41
+ warninginfo:{
42
+ type:Object
43
+ },
44
+ // 双击用户的数据
45
+ row: {
46
+ type: Object
47
+ },
48
+ modalShow: {
49
+ type: Boolean
50
+ }
51
+ },
52
+ data () {
53
+ return {
54
+ showInformation: true,
55
+ informationtype: '',
56
+
57
+ // 终止低保户 必选低保户到期
58
+ stopBasicLiving: false,
59
+
60
+ // 低保户到期提醒时间
61
+ dibao_remind: this.$appdata.getSingleValue('低保快到期提醒') ? this.$appdata.getSingleValue('低保快到期提醒') : 0,
62
+ // 低保户权限
63
+ basicLivingAuthority: false,
64
+ // 档案完善权限
65
+ filesCompleteAuthority: true
66
+ }
67
+ },
68
+ methods: {
69
+ close () {
70
+ this.$emit('close')
71
+ },
72
+ async success (val) {
73
+
74
+ // 如果所有提示信息均处理,获取改户数据,进入收费操作
75
+ if (!this.warninginfo.data.info && !this.warninginfo.data.blacklist && !this.warninginfo.data.dibao) {
76
+ this.showInformation = false
77
+ let data = await this.$resetpost('rs/sql/sale_getUser', {data: {condition: `1=1 and f_userinfo_code = '${this.row.f_userinfo_code}' and u.f_filialeid = ${this.$login.f.orgid}`}}, {resolveMsg: '', rejectMsg: ''})
78
+ this.$emit('modalsuccess', data.data[0])
79
+ } else { // 没有处理完,显示提示信息
80
+ this.showInformation = true
81
+ }
82
+ },
83
+ operational (val) {
84
+ this.showInformation = false
85
+ this.$refs.route.init(val, {data: this.row})
86
+ }
87
+ },
88
+ ready () {
89
+ initGen(this)
90
+ }
91
+ // watch: {
92
+ // 'modalShow' (val) {
93
+ // this.modal = val
94
+ // }
95
+ // }
96
+ }
97
+ </script>
98
+ <style>
99
+ .basic-main {
100
+ width: 79%;
101
+ }
102
+ </style>
@@ -29,6 +29,9 @@ export default function () {
29
29
  // 换表补卡
30
30
  Vue.component('change_fill_sendcard', (resolve) => { require(['./ChangeSendCard'], resolve) })
31
31
  // 黑名单
32
- Vue.component('black-list', (resolve) => { require(['.//BlackList'], resolve) })
33
-
32
+ Vue.component('black-list', (resolve) => { require(['./BlackList'], resolve) })
33
+ // 售气收费 --弹出框
34
+ Vue.component('charge-modal', (resolve) => { require(['./ChargeModal'], resolve) })
35
+ // 业务操作组件
36
+ Vue.component('charge-oper', (resolve) => { require(['./ChargeOper'], resolve) })
34
37
  }
@@ -0,0 +1,155 @@
1
+ <template>
2
+ <div class="auto">
3
+ <!-- <div class="span"> -->
4
+ <div class="panel panel-info auto">
5
+ <!--<div class="panel-heading auto" style="text-align: center">-->
6
+ <!--<h4 style="display:inline-block;">表号为{{row.title}}的欠费信息</h4>-->
7
+ <!--</div>-->
8
+ <div class="panel-body">
9
+ <data-grid :model="row" partial='list' class="list_area table_sy" v-ref:grid>
10
+ <template partial='head'>
11
+ <tr>
12
+ <th>
13
+ <input type="checkbox" @click="$parent.$parent.addOrRemove($parent.$parent.selectAll)" :checked="$parent.$parent.selectAll" :disabled="$parent.$parent.charge">
14
+ </th>
15
+ <th><nobr>序号</nobr></th>
16
+ <th><nobr>上期指数</nobr></th>
17
+ <th><nobr>本期指数</nobr></th>
18
+ <th><nobr>抄表时间</nobr></th>
19
+ <th><nobr>总气量</nobr></th>
20
+ <th><nobr>用气金额</nobr></th>
21
+ <th><nobr>已交气费</nobr></th>
22
+ <!--<th><nobr>已交违约金</nobr></th>-->
23
+ <!--<th><nobr>是否缴费</nobr></th>-->
24
+ <th><nobr>违约金</nobr></th>
25
+ <th><nobr>总欠费</nobr></th>
26
+ </tr>
27
+ </template>
28
+ <template partial='body'>
29
+ <tr>
30
+ <td style="text-align:center">
31
+ <input type="checkbox" v-model="$parent.$parent.selecteds" :value="row" @click="$parent.$parent.checkbox($index, $event)" :disabled="$parent.$parent.charge">
32
+ </td>
33
+ <td>{{$index + 1}}</td>
34
+ <td>{{row.f_last_tablebase}}</td>
35
+ <td>{{row.f_tablebase}}</td>
36
+ <td><nobr>{{row.f_input_date.substring(0, 10)}}</nobr></td>
37
+ <td>{{row.f_oughtamount}}</td>
38
+ <td>{{row.f_allfee}}</td>
39
+ <td>{{row.f_debt_money}}</td>
40
+ <!--<td>{{row.f_selloverdue}}</td>-->
41
+ <!--<td>{{row.f_whether_pay}}</td>-->
42
+ <td>{{row.overdue}}</td>
43
+ <td>{{((row.f_oughtfee - 0) + (row.overdue - 0)).toFixed(2)}}</td>
44
+ <td v-if="row.splitnum > 0">
45
+ <button class="btn btn-info" @click="$parent.$parent.getSplitInfo(row)">分表详情</button>
46
+ </td>
47
+ </tr>
48
+ </template>
49
+ </data-grid>
50
+ </div>
51
+ </div>
52
+
53
+ <owe-detail-list v-if="isDetail" :show.sync="isDetail" :row="row"></owe-detail-list>
54
+ </div>
55
+ </template>
56
+ <script>
57
+ import co from 'co'
58
+ import OweDetailList from './../../components/charge/business/machine/OweDetailList'
59
+
60
+ let getSplitInfoGen = function *(self, row) {
61
+ let getSplit = yield self.$resetpost('rs/logic/splitInfo', {data: {totalInfo: row}}, {
62
+ resolveMsg: null,
63
+ rejectMsg: '获取分表抄表信息出错!!!'
64
+ })
65
+ console.log('获取分表信息。。。', getSplit)
66
+ self.handInfo = []
67
+ // 分表总用量
68
+ if (getSplit.data.length > 0) {
69
+ for (let i = 0; i < getSplit.data.length; i++) {
70
+ self.handInfo.push(getSplit.data[i])
71
+ }
72
+ }
73
+ }
74
+
75
+ export default {
76
+ props: ['row', 'floor', 'charge'],
77
+ data () {
78
+ return {
79
+ splitInfo: false,
80
+ handInfo: [],
81
+ selecteds: [],
82
+ maxIndex: -1,
83
+ pages: [],
84
+ selectAll: true,
85
+ isDetail: false,
86
+ selectedRows: 0// 初始化选中的行数
87
+ }
88
+ },
89
+ components: {
90
+ OweDetailList
91
+ },
92
+ ready () {
93
+ this.selecteds = this.row.rows
94
+ },
95
+ methods: {
96
+ getSplitInfo (row) {
97
+ console.log('获取的总表信息', row)
98
+ // 获取分表费用数据
99
+ co(getSplitInfoGen(this, row))
100
+ this.splitInfo = true
101
+ // 获取选中行数
102
+ this.selectedRows = this.selecteds.length
103
+ },
104
+ close () {
105
+ this.splitInfo = false
106
+ },
107
+ checkbox (val, event) {
108
+ this.selecteds = []
109
+ if (event.target.checked === true) {
110
+ for (let i = 0; i <= val; i++) {
111
+ this.selecteds.push(this.row.rows[i])
112
+ }
113
+ } else if (event.target.checked === false) {
114
+ for (let i = 0; i <= val - 1; i++) {
115
+ this.selecteds.push(this.row.rows[i])
116
+ }
117
+ }
118
+ this.selectAll = (this.selecteds.length === this.row.rows.length)
119
+ },
120
+ addOrRemove (is) {
121
+ this.selecteds = []
122
+ if (!is) { // 添加本页所有数据到ids中
123
+ this.row.rows.forEach((row) => {
124
+ this.selecteds.push(row)
125
+ })
126
+ this.selectAll = true
127
+ } else { // 从ids中取消所有的数据
128
+ this.row.rows.forEach((row, index) => {
129
+ if (index <= this.maxIndex) {
130
+ this.selecteds.push(row)
131
+ }
132
+ })
133
+ this.selectAll = false
134
+ }
135
+ },
136
+ showOweDetail () {
137
+ console.log('显示详情')
138
+ this.isDetail = true
139
+ }
140
+ },
141
+ watch: {
142
+ // 'row.rows' () {
143
+ // this.maxIndex = this.$parent.getMaxIndex(this.row.rows)
144
+ // this.maxIndex = this.maxIndex > 0 ? this.maxIndex : -1
145
+ // console.log('选择的欠费信息', this.maxIndex)
146
+ // this.selecteds = this.row.rows
147
+ // },
148
+ 'selecteds' () {
149
+ // 获取选中的行数
150
+ this.selectedRows = this.selecteds.length
151
+ this.$dispatch('refresh-center', this.selecteds, this.selectedRows)
152
+ }
153
+ }
154
+ }
155
+ </script>
@@ -18,4 +18,6 @@ export default function () {
18
18
  Vue.component('charge-manage', (resolve) => { require(['./charge/ChargeManage'], resolve) })
19
19
  // 线下写卡
20
20
  Vue.component('un-write-card-center', (resolve) => { require(['./charge/UnWriteCardCenter'], resolve) })
21
+ // 机表收费小组件
22
+ Vue.component('OweList', (resolve) => { require(['./OweList'], resolve) })
21
23
  }