sale-client 3.6.80 → 3.6.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.80",
3
+ "version": "3.6.81",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,452 @@
1
+ <template >
2
+ <div class="auto">
3
+ <div class="auto form-group-new row">
4
+ <div class="col-sm-6" style="height:auto;width:49%;">
5
+ <p style="font-weight: bold;margin: 0"><img src="../../../../static/mainicon/矩形1828.png"/>&nbsp;&nbsp;基本信息</p>
6
+ <!-- 第一行数据-->
7
+ <div class="col-sm-4">
8
+ <label class="font_normal_body_new">客户编号</label>
9
+ <input class="input-underline" style="width:60%" :value="row.f_userinfo_code" readonly>
10
+ </div>
11
+ <div class="col-sm-4">
12
+ <label class="font_normal_body_new">客户姓名</label>
13
+ <input class="input-underline" style="width:60%" :value="row.f_user_name" readonly>
14
+ </div>
15
+ <div class="col-sm-4">
16
+ <label class="font_normal_body_new">用户状态</label>
17
+ <input class="input-underline" style="width:60%" :value="row.f_user_state" readonly>
18
+ </div>
19
+ <div class="col-sm-8">
20
+ <label class="font_normal_body_new">客户地址</label>
21
+ <input class="input-underline" style="width:80%" :value="row.f_address" readonly>
22
+ </div>
23
+ <div class="col-sm-4">
24
+ <label class="font_normal_body_new">客户电话</label>
25
+ <input class="input-underline" style="width:60%" :value="row.f_user_phone" readonly>
26
+ </div>
27
+ <div class="col-sm-4">
28
+ <label class="font_normal_body_new">客户类型</label>
29
+ <input class="input-underline" style="width:60%" :value="row.f_user_type" readonly>
30
+ </div>
31
+ <div class="col-sm-4">
32
+ <label class="font_normal_body_new">用气性质</label>
33
+ <input class="input-underline" style="width:60%" :value="row.f_gasproperties" readonly>
34
+ </div>
35
+ <div class="col-sm-4">
36
+ <label class="font_normal_body_new">证件类型</label>
37
+ <input class="input-underline" style="width:60%" :value="row.f_credentials" readonly>
38
+ </div>
39
+ <div class="col-sm-8">
40
+ <label class="font_normal_body_new">证件号码</label>
41
+ <input class="input-underline" style="width:80%" :value="row.f_idnumber" readonly>
42
+ </div>
43
+ <div class="col-sm-4">
44
+ <label class="font_normal_body_new">用户状态</label>
45
+ <input class="input-underline" style="width:60%" :value="row.f_user_state" readonly>
46
+ </div>
47
+ <div class="col-sm-4">
48
+ <label class="font_normal_body_new">账户余额</label>
49
+ <input class="input-underline" style="width:60%" :value="row.f_balance" readonly>
50
+ </div>
51
+ <div class="col-sm-4">
52
+ <label class="font_normal_body_new">人&ensp;口&ensp;数</label>
53
+ <input class="input-underline" style="width:60%" :value="row.f_people_num" readonly>
54
+ </div>
55
+ <div class="col-sm-4" v-if="row.f_meter_type.includes('机表')">
56
+ <label class="font_normal_body_new">阀控状态</label>
57
+ <input class="input-underline" style="width:55%" :value="row.f_bqf_state" readonly>
58
+ </div>
59
+ </div>
60
+ <div class="col-sm-6" style="height:auto;width:49%;">
61
+ <p style="font-weight: bold;margin: 0"><img src="../../../../static/mainicon/矩形1828.png"/>&nbsp;&nbsp;表具信息</p>
62
+ <div class="col-sm-4">
63
+ <label class="font_normal_body_new">表&emsp;号&emsp;</label>
64
+ <input class="input-underline" style="width:60%" :value="row.f_meternumber" readonly>
65
+ </div>
66
+ <div class="col-sm-4">
67
+ <label class="font_normal_body_new">气表状态</label>
68
+ <input class="input-underline" style="width:60%" :value="row.f_table_state" readonly>
69
+ </div>
70
+ <div class="col-sm-4">
71
+ <label class="font_normal_body_new">当前底数</label>
72
+ <input class="input-underline" style="width:60%" :value="row.f_meter_base" readonly>
73
+ </div>
74
+
75
+ <div class="col-sm-4">
76
+ <label class="font_normal_body_new">气表品牌</label>
77
+ <input class="input-underline" style="width:60%" :value="row.f_meter_brand" readonly>
78
+ </div>
79
+
80
+ <div class="col-sm-4">
81
+ <label class="font_normal_body_new">气价名称</label>
82
+ <input class="input-underline" style="width:60%" :value="row.f_price_name" readonly>
83
+ </div>
84
+ <div class="col-sm-4">
85
+ <label class="font_normal_body_new">气价类型</label>
86
+ <input class="input-underline" style="width:60%" :value="row.f_price_type" readonly>
87
+ </div>
88
+ <div class="col-sm-4">
89
+ <label class="font_normal_body_new">价格详情</label>
90
+ <input class="input-underline" style="width:60%" :value="row.f_detailprice" readonly>
91
+ </div>
92
+ <div class="col-sm-4">
93
+ <label class="font_normal_body_new" title="最后上报时间">上报时间</label>
94
+ <input class="input-underline" style="width:60%" :value="row.f_meteread_date ? row.f_meteread_date : '暂无'" readonly>
95
+ </div>
96
+ <div v-if="row.f_collection_type == '按金额'" class="col-sm-4">
97
+ <label class="font_normal_body_new">累购金额</label>
98
+ <input class="input-underline" style="width:60%" :value="row.total_fee" readonly>
99
+ </div>
100
+ <div v-if="row.f_collection_type == '按气量'">
101
+ <div class="col-sm-4">
102
+ <label class="font_normal_body_new">累购气量</label>
103
+ <input class="input-underline" style="width:60%" :value="row.f_total_gas" readonly>
104
+ </div>
105
+ <div class="col-sm-4">
106
+ <label class="font_normal_body_new">最后结算时间</label>
107
+ <input class="input-underline" style="width:45%" :value="row.f_hand_date ? row.f_hand_date :'暂无'" readonly>
108
+ </div>
109
+ </div>
110
+ <div v-if="row.f_meter_type.includes('物联网表')" >
111
+ <div class="col-sm-4">
112
+ <label class="font_normal_body_new">物联网次数</label>
113
+ <input class="input-underline" style="width:55%" :value="row.f_iot_times" readonly>
114
+ </div>
115
+ <div class="col-sm-4">
116
+ <label class="font_normal_body_new">表剩余金额</label>
117
+ <input class="input-underline" style="width:55%" :value="row.f_balance_amount" readonly>
118
+ </div>
119
+ <div class="col-sm-4">
120
+ <label class="font_normal_body_new">阀门状态</label>
121
+ <input class="input-underline" style="width:60%" :value="row.f_valvestate == 0 ? '已开阀' : '已关阀'" readonly>
122
+ </div>
123
+ <div class="col-sm-4">
124
+ <label class="font_normal_body_new">累计上报次数</label>
125
+ <input class="input-underline" style="width:45%" :value="row.f_meteread_number ? row.f_meteread_number : 0" readonly>
126
+ </div>
127
+ <div class="col-sm-4">
128
+ <label class="font_normal_body_new">是否自动阀控</label>
129
+ <input class="input-underline" style="width:45%" :value="row.f_network_valve == '1' ? '否' : '是'" readonly>
130
+ </div>
131
+ </div>
132
+ <div v-if="row.f_collection_type == '按气量'" >
133
+ <div class="col-sm-4" v-if="!row.f_calculation.includes('表端结算')">
134
+ <label class="font_normal_body_new">表剩余气量</label>
135
+ <input class="input-underline" style="width:55%" :value="row.f_balance_gas" readonly>
136
+ </div>
137
+ <div class="col-sm-4" v-if="row.f_meter_type.includes('表端结算')">
138
+ <label class="font_normal_body_new">表剩余气量</label>
139
+ <input class="input-underline" style="width:55%" :value="row.f_jval" readonly>
140
+ </div>
141
+ <div class="col-sm-4">
142
+ <label class="font_normal_body_new">累计用气金额</label>
143
+ <input class="input-underline" style="width:45%" :value="row.f_total_usegas_amount" readonly>
144
+ </div>
145
+ </div>
146
+ <div class="col-sm-4">
147
+ <label class="font_normal_body_new">写卡次数</label>
148
+ <input class="input-underline" style="width:45%" :value="row.f_times" readonly>
149
+ </div>
150
+ <div class="col-sm-4">
151
+ <label class="font_normal_body_new">抄表册名</label>
152
+ <input class="input-underline" style="width:45%" :value="(row.f_book_code!=null ? '['+row.f_book_code + '] ' : '') + (row.f_book_name!=null ? row.f_book_name:'')" readonly>
153
+ </div>
154
+ <div class="col-sm-4">
155
+ <label class="font_normal_body_new">抄表册册序号</label>
156
+ <input class="input-underline" style="width:45%" :value="row.f_meter_book_sort" readonly>
157
+ </div>
158
+ </div>
159
+ <div class="auto" style="float: right;">
160
+ <button class="button_clear " @click="cancelmain()" >返回</button>
161
+ <button class="button_search" v-show="buttonshow" type="button" @click="goChargeManage">去收费</button>
162
+ <button v-if="row.f_meter_brand.includes('西美')&&row.f_meter_type.includes('物联网表')"
163
+ class="button_search" type="button" @click="clearBarrier">清除障碍</button>
164
+ <button v-if="row.f_meter_type.includes('物联网表')"
165
+ class="button_search" type="button" @click="openUser">开户</button>
166
+ <button v-if="row.f_meter_type.includes('物联网表')"
167
+ class="button_search" type="button" @click="valvecontrol">开关阀</button>
168
+ <button v-if="row.f_meter_type.includes('物联网表')"
169
+ class="button_search" type="button" @click="zdfk">开关自动阀控</button>
170
+ <div
171
+ :class="{'button_shrink_top':criteriaShow,'button_shrink_bottom':!criteriaShow}"
172
+ @click="criteriaShow=!criteriaShow"
173
+ class="button_spacing"
174
+ style="float: right"></div>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="auto row">
179
+ <div class="col-sm-6" style="width:49%;"></div>
180
+ <div class="auto form-group-new">
181
+ <div class="col-sm-6" style="height:auto;width:49%;" v-show="criteriaShow">
182
+ <div class="col-sm-4">
183
+ <label class="font_normal_body_new">气表型号</label>
184
+ <input class="input-underline" style="width:60%" :value="row.f_meter_style" readonly>
185
+ </div>
186
+ <div class="col-sm-4">
187
+ <label class="font_normal_body_new">气表类型</label>
188
+ <input class="input-underline" style="width:60%" :value="row.f_meter_type" readonly>
189
+ </div>
190
+ <div class="col-sm-4">
191
+ <label class="font_normal_body_new">初始底数</label>
192
+ <input class="input-underline" style="width:60%" :value="row.f_initial_base" readonly>
193
+ </div>
194
+ <div class="col-sm-4">
195
+ <label class="font_normal_body_new">左&ensp;右&ensp;表</label>
196
+ <input class="input-underline" style="width:60%" :value="row.f_aroundmeter" readonly>
197
+ </div>
198
+ <div class="col-sm-4">
199
+ <label class="font_normal_body_new">建表日期</label>
200
+ <input class="input-underline" style="width:60%" :value="row.f_input_date.substring(0,7)" readonly>
201
+ </div>
202
+ <div v-if="devices.length > 0" v-show="false" style="height: auto" >
203
+ <p style="font-weight: bold;margin: 0">设备信息</p>
204
+ <div class="panel-heading" style="height: 30px">
205
+ <h4 style="display:inline-block;margin-top: auto">设备信息</h4>
206
+ </div>
207
+ <div v-for="device in devices">
208
+
209
+ <form class="form-horizontal">
210
+ <div class="col-sm-4">
211
+ <label class="font_normal_body_new">设备类型</label>
212
+ <input class="input-underline" style="width:60%" :value="device.f_devices_type" readonly>
213
+ </div>
214
+ <div class="col-sm-4">
215
+ <label class="font_normal_body_new">设备品牌</label>
216
+ <input class="input-underline" style="width:60%" :value="device.f_brand" readonly>
217
+ </div>
218
+ <div class="col-sm-4">
219
+ <label class="font_normal_body_new">设备型号</label>
220
+ <input class="input-underline" style="width:60%" :value="device.f_devices_model" readonly>
221
+ </div>
222
+ <div class="col-sm-4">
223
+ <label class="font_normal_body_new">设备数量</label>
224
+ <input class="input-underline" style="width:60%" :value="device.f_devices_num" readonly>
225
+ </div>
226
+ </form>
227
+ </div>
228
+ </div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ <!--阀控管理弹框-->
233
+ <modal :show.sync="valve">
234
+ <header slot="modal-header" class="modal-header">
235
+ <button type="button" class="close" @click="close()"><span>&times;</span></button>
236
+ <h4 class="modal-title" align="center">阀控管理</h4>
237
+ </header>
238
+ <article slot="modal-body" class="modal-body">
239
+ <div class="form-group " style="padding-left: 8px">
240
+ <label class="font_normal_body" :class="operateReason?'text-info':'text-danger'">操作原因</label>
241
+ <textarea class="form-control" style="width:80%" v-model="operateReason" rows="3" placeholder="请填写操作原因"></textarea>
242
+ </div>
243
+ </article>
244
+ <footer slot="modal-footer" class="modal-footer">
245
+ <button type="button" class="button_search btn-ln fr" :disabled="!operateReason" @click='valveoperate(true)'>开阀</button>
246
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
247
+ <button type="button" class="btn btn-info btn-ln fr" :disabled="!operateReason" @click='valveoperate(false)'>关阀</button>
248
+ </footer>
249
+ </modal>
250
+ </div>
251
+ </template>
252
+
253
+ <script>
254
+ import {HttpResetClass} from 'vue-client'
255
+ import Vue from 'vue'
256
+ export default {
257
+ title: '基本信息',
258
+ props: {
259
+ row: {
260
+ type: Object,
261
+ default: undefined
262
+ },
263
+ buttonshow: {
264
+ type: Boolean,
265
+ default: true
266
+ }
267
+ },
268
+ data () {
269
+ return {
270
+ criteriaShow: false,
271
+ devices: [],
272
+ valveLimit: false,
273
+ // 开关阀操作原因
274
+ operateReason: '',
275
+ valve: false
276
+ }
277
+ },
278
+
279
+ ready () {
280
+ this.getDevice()
281
+ this.valveLimit = this.$login.r.includes('开关阀权限')
282
+ },
283
+ methods: {
284
+ // 发送请求去数据
285
+ async getDevice () {
286
+ if (this.row) {
287
+ let http = new HttpResetClass()
288
+ let condition = `f_userinfo_id = '${this.row.f_userinfo_id}'`
289
+ let getDevices = await http.load('POST', 'rs/sql/sale_GetDevicesInfo', {data: {condition: condition}}, {rejectMsg: '获取设备信息出错!!', resolveMsg: null})
290
+ this.devices = getDevices.data
291
+ }
292
+ },
293
+
294
+ // 返回
295
+ cancelmain () {
296
+ this.$emit('cancel-main')
297
+ },
298
+ clearBarrier () {
299
+ // 地址
300
+ // 127.0.0.1:8445
301
+ // 参数
302
+ let datas = {
303
+ moduleName: 'XiMeiSystem', // 固定值
304
+ content: {
305
+ tradeCode: '3015', // 固定值
306
+ appid: 'yysf', // 固定值
307
+ partner: 'cqsemay_bcts', // 固定值
308
+ version: 'v1', // 固定值
309
+ tasked: this.getuuid(), // 任务id
310
+ notifyUrl: 'http://192.168.2.10:8445/webmeter/rs/logic/XiMeiSystemCallBack', // 固定值
311
+ meterNo: this.row.f_meternumber, // 表号
312
+ signType: ' MD5' // 固定值
313
+ },
314
+ title: '清除异常', // 固定值
315
+ type: '清除异常', // 固定值
316
+ inputtor: this.row.f_operator, // 操作人
317
+ userId: this.row.f_userfiles_id, // 表档案ID
318
+ dataId: null // 操作记录ID
319
+ }
320
+ this.$resetpost('/webmeter/rs/logic/syncSaveSetParamsTemplate', {data: datas}, {resolveMsg: `清理成功`, rejectMsg: `清理失败`}).then(res => {
321
+ })
322
+ },
323
+ getuuid () {
324
+ let uuidA = ''
325
+ var s = []
326
+ var hexDigits = '0123456789abcdef'
327
+ for (var i = 0; i < 36; i++) {
328
+ s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
329
+ }
330
+ s[14] = '4'
331
+ s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1)
332
+ s[8] = s[13] = s[18] = s[23] = '-'
333
+ uuidA = s.join('')
334
+ return uuidA
335
+ },
336
+ async goChargeManage () {
337
+ await this.$copyText(this.row.f_userinfo_code)
338
+ this.$showAlert(`用户编号已复制到剪切板!`, 'success', 2000)
339
+ if (this.row.parentname === 'charge-manage') {
340
+ this.$emit('cancel-re')
341
+ } else {
342
+ this.$goto('charge-manage', {f: this.$login.f}, 'main')
343
+ }
344
+ },
345
+ openUser () {
346
+ this.$showMessage(`是否需要给用户进行开户?`, ['confirm', 'cancel']).then(async (res) => {
347
+ if (res === 'confirm') {
348
+ let data = {
349
+ f_userfiles_id: this.row.f_userfiles_id
350
+ }
351
+ this.$resetpost('rs/logic/startup', data)
352
+ }
353
+ })
354
+ },
355
+ // 阀控管理
356
+ zdfk () {
357
+ let data = {
358
+ f_userfiles_id: this.row.f_userfiles_id
359
+ }
360
+ if (this.row.f_network_valve !== '1') {
361
+ this.$resetpost('rs/logic/openzdfk', data, {resolveMsg: '关闭自动阀控成功。', rejectMsg: '关闭自动阀控失败!!!'})
362
+ this.row.f_network_valve = '1'
363
+ } else {
364
+ this.$resetpost('rs/logic/closezdfk', data, {resolveMsg: '开启自动阀控成功。', rejectMsg: '开启自动阀控失败!!!'})
365
+ this.row.f_network_valve = null
366
+ }
367
+ },
368
+ // 阀控管理
369
+ valvecontrol () {
370
+ if (this.$login.r.includes('开关阀')) {
371
+ this.valve = true
372
+ } else {
373
+ this.$showAlert('您没有开关阀权限,请联系管理员!!', 'warning', 3000)
374
+ }
375
+ },
376
+ close () {
377
+ this.valve = false
378
+ this.operateReason = ''
379
+ },
380
+ // 开关阀操作
381
+ async valveoperate (oper) {
382
+ let msg = oper ? '开阀' : '关阀'
383
+ let datas = {
384
+ instructType: '阀门控制',
385
+ instructTitle: `手动${msg}`,
386
+ condition: `t_userfiles.f_userfiles_id='${this.row.f_userfiles_id}'`,
387
+ meterBrandName: this.row.f_alias,
388
+ f_instruct_state: '待发送',
389
+ inputtor: Vue.$login.f.name,
390
+ reasonInfo: this.operateReason,
391
+ meternumberf: this.row.f_meternumber,
392
+ contentData: {isOpen: oper ? 1 : 0}
393
+ }
394
+ await this.$resetpost('rs/logic/iot_saveInstruct', {data: datas},
395
+ {warnMsg: `确定要进行${msg}操作吗?`, resolveMsg: `${msg}成功`, rejectMsg: `${msg}失败`}).then(res => {
396
+ this.valve = false
397
+ this.operateReason = ''
398
+ })
399
+ }
400
+ },
401
+ watch: {
402
+ 'row' () {
403
+ this.getDevice()
404
+ }
405
+ }
406
+ }
407
+ </script>
408
+ <style scoped lang="less">
409
+ .form-group-new > div {
410
+ height: 3% !important;
411
+
412
+ }
413
+
414
+ .datapanel {
415
+ color: #333;
416
+ background-color: white;
417
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px ;
418
+ padding: 10px 30px 10px 30px;
419
+ height: auto;
420
+ border-radius:15px;
421
+ }
422
+ .text-info {
423
+ color: lightskyblue;
424
+ }
425
+ .text-danger {
426
+ color: red;
427
+ }
428
+ .input-underline {
429
+ border-bottom: 1px solid #dbdbdb;
430
+ border-top: 0px;
431
+ border-left: 0px;
432
+ border-right: 0px;
433
+ }
434
+ .font_normal_body_new {
435
+ font-weight: 100;
436
+ float: left;
437
+ margin-top: 0px;
438
+ font-size: 1.4rem !important;
439
+ line-height: 30px;
440
+ }
441
+
442
+ .col-sm-4,.col-sm-8{
443
+ display: flex;
444
+ align-items: center;
445
+ margin: 7px 0;
446
+
447
+ label{
448
+ line-height: unset;
449
+ margin-bottom: 0;
450
+ }
451
+ }
452
+ </style>
@@ -19,4 +19,5 @@ export default function () {
19
19
  Vue.component('file-user-files', (resolve) => { require(['./FilesManage/FileUserFiles'], resolve) })
20
20
  // 当前选择用户的用户基本信息
21
21
  Vue.component('sale-userinfo', (resolve) => { require(['./leftview/Userinfo'], resolve) })
22
+ Vue.component('user-base-info-new', (resolve) => { require(['./UserBaseInfoNew'], resolve) })
22
23
  }