sale-client 4.2.111 → 4.2.113
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/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
- package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/5.2.1/gc.properties +0 -0
- package/.project +0 -6
- package/build/dev-server.js +7 -7
- package/package.json +1 -1
- package/src/filiale/xihu/UserBaseInfoNew.vue +716 -0
- package/src/filiale/xihu/sale.js +1 -0
- package/src/main.js +1 -1
|
Binary file
|
|
Binary file
|
|
File without changes
|
package/.project
CHANGED
|
@@ -5,11 +5,6 @@
|
|
|
5
5
|
<projects>
|
|
6
6
|
</projects>
|
|
7
7
|
<buildSpec>
|
|
8
|
-
<buildCommand>
|
|
9
|
-
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
-
<arguments>
|
|
11
|
-
</arguments>
|
|
12
|
-
</buildCommand>
|
|
13
8
|
<buildCommand>
|
|
14
9
|
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
10
|
<arguments>
|
|
@@ -17,7 +12,6 @@
|
|
|
17
12
|
</buildCommand>
|
|
18
13
|
</buildSpec>
|
|
19
14
|
<natures>
|
|
20
|
-
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
15
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
16
|
</natures>
|
|
23
17
|
<filteredResources>
|
package/build/dev-server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var path = require('path')
|
|
2
2
|
var checkVersion = require('./versionCheck.js')
|
|
3
3
|
checkVersion()
|
|
4
|
-
const [ serverRul, localUrl ] = ['http://
|
|
4
|
+
const [ serverRul, localUrl ] = ['http://121.36.106.17:31467/', 'http://121.36.106.17:31467/']
|
|
5
5
|
var merge = require('webpack-merge')
|
|
6
6
|
var baseConfig = require('./webpack.dev.conf')
|
|
7
7
|
var devConfig = {
|
|
@@ -50,12 +50,12 @@ var devConfig = {
|
|
|
50
50
|
'/rs/pay': {
|
|
51
51
|
target: 'http://localhost:8080'
|
|
52
52
|
},
|
|
53
|
-
'/api/af-revenue': {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
},
|
|
53
|
+
// '/api/af-revenue': {
|
|
54
|
+
// pathRewrite: {
|
|
55
|
+
// '/api/af-revenue': '/af-revenue'
|
|
56
|
+
// },
|
|
57
|
+
// target: "http://localhost:8080"
|
|
58
|
+
// },
|
|
59
59
|
'/api': {
|
|
60
60
|
target: serverRul
|
|
61
61
|
},
|
package/package.json
CHANGED
|
@@ -0,0 +1,716 @@
|
|
|
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"/> 基本信息</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">人 口 数</label>
|
|
53
|
+
<input class="input-underline" style="width:60%" :value="row.f_people_num" readonly>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
</div>
|
|
57
|
+
<div class="col-sm-6" style="height:auto;width:49%;">
|
|
58
|
+
<p style="font-weight: bold;margin: 0"><img src="../../../static/mainicon/矩形1828.png"/> 表具信息</p>
|
|
59
|
+
<div class="col-sm-4">
|
|
60
|
+
<label class="font_normal_body_new">表 号 </label>
|
|
61
|
+
<input class="input-underline" style="width:60%" :value="row.f_meternumber" readonly>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="col-sm-4">
|
|
64
|
+
<label class="font_normal_body_new">气表状态</label>
|
|
65
|
+
<input class="input-underline" style="width:60%" :value="row.f_table_state" readonly>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="col-sm-4">
|
|
68
|
+
<label class="font_normal_body_new">当前底数</label>
|
|
69
|
+
<input class="input-underline" style="width:60%" :value="row.f_meter_base" readonly>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="col-sm-4">
|
|
72
|
+
<label class="font_normal_body_new">气表品牌</label>
|
|
73
|
+
<input class="input-underline" style="width:60%" :value="row.f_meter_brand" readonly>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div class="col-sm-4">
|
|
77
|
+
<label class="font_normal_body_new">气价名称</label>
|
|
78
|
+
<input class="input-underline" style="width:60%" :value="row.f_price_name" readonly>
|
|
79
|
+
</div>
|
|
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_type" 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_detailprice" readonly>
|
|
87
|
+
</div>
|
|
88
|
+
<div v-if="row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
89
|
+
<label class="font_normal_body_new" title="结算方式">计费终端</label>
|
|
90
|
+
<input class="input-underline" style="width:60%" :value="row.f_calculation ? row.f_calculation : '获取异常'"
|
|
91
|
+
readonly>
|
|
92
|
+
</div>
|
|
93
|
+
<div v-if="row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
94
|
+
<label class="font_normal_body_new" title="结算方式">结算方式</label>
|
|
95
|
+
<input class="input-underline" style="width:60%"
|
|
96
|
+
:value="row.f_collection_type ? row.f_collection_type : '获取异常'"
|
|
97
|
+
readonly>
|
|
98
|
+
</div>
|
|
99
|
+
<div v-if="row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
100
|
+
<label class="font_normal_body_new" title="最后上报时间">上报时间</label>
|
|
101
|
+
<input class="input-underline" style="width:60%"
|
|
102
|
+
:value="row.f_meteread_date ? row.f_meteread_date : '暂未上报'"
|
|
103
|
+
readonly>
|
|
104
|
+
</div>
|
|
105
|
+
<div v-if="row.f_meter_type.includes('卡表')" class="col-sm-4">
|
|
106
|
+
<label class="font_normal_body_new">累购气量</label>
|
|
107
|
+
<input class="input-underline" style="width:60%" :value="row.f_total_gas" readonly>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="col-sm-4">
|
|
110
|
+
<label class="font_normal_body_new">累购金额</label>
|
|
111
|
+
<input class="input-underline" style="width:60%" :value="row.total_fee" readonly>
|
|
112
|
+
</div>
|
|
113
|
+
<div v-if="row.f_collection_type == '按气量' && row.f_meter_type.includes('物联网表')">
|
|
114
|
+
<div class="col-sm-4">
|
|
115
|
+
<label class="font_normal_body_new">累购气量</label>
|
|
116
|
+
<input class="input-underline" style="width:60%" :value="row.f_total_gas" readonly>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="col-sm-4">
|
|
119
|
+
<label class="font_normal_body_new">最后结算时间</label>
|
|
120
|
+
<input class="input-underline" style="width:45%" :value="row.f_hand_date ? row.f_hand_date :'暂未上报'"
|
|
121
|
+
readonly>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div v-if="row.f_meter_type.includes('物联网表')">
|
|
125
|
+
<div class="col-sm-4">
|
|
126
|
+
<label class="font_normal_body_new">指令上表次数</label>
|
|
127
|
+
<input class="input-underline" style="width:55%" :value="row.f_iot_times" readonly>
|
|
128
|
+
</div>
|
|
129
|
+
<!-- <div class="col-sm-4">-->
|
|
130
|
+
<!-- <label class="font_normal_body_new">表剩余金额</label>-->
|
|
131
|
+
<!-- <input class="input-underline" style="width:55%" :value="row.f_balance_amount" readonly>-->
|
|
132
|
+
<!-- </div>-->
|
|
133
|
+
<div class="col-sm-4">
|
|
134
|
+
<label class="font_normal_body_new">累计上报次数</label>
|
|
135
|
+
<input class="input-underline" style="width:45%" :value="row.f_meteread_number ? row.f_meteread_number : 0"
|
|
136
|
+
readonly>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
<div class="col-sm-4" v-if="row.f_calculation.includes('系统结算') && row.f_collection_type == '按气量'">
|
|
141
|
+
<label class="font_normal_body_new">系统剩余气量</label>
|
|
142
|
+
<input class="input-underline" style="width:55%" :value="row.f_balance_gas" readonly>
|
|
143
|
+
</div>
|
|
144
|
+
<div class="col-sm-4" v-if="row.f_calculation.includes('系统结算') && row.f_collection_type == '按金额'">
|
|
145
|
+
<label class="font_normal_body_new">系统剩余金额</label>
|
|
146
|
+
<input class="input-underline" style="width:55%" :value="row.f_balance_amount" readonly>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="col-sm-4" v-if="row.f_calculation.includes('表端结算')">
|
|
149
|
+
<label class="font_normal_body_new">表端上报结余</label>
|
|
150
|
+
<input class="input-underline" style="width:55%" :value="row.f_jval" readonly>
|
|
151
|
+
</div>
|
|
152
|
+
<!-- <div class="col-sm-4" v-if="row.f_calculation.includes('表端结算')">-->
|
|
153
|
+
<!-- <label class="font_normal_body_new">未上表金额</label>-->
|
|
154
|
+
<!-- <input class="input-underline" style="width:55%" :value="row.f_not_amount" readonly>-->
|
|
155
|
+
<!-- </div>-->
|
|
156
|
+
<div class="col-sm-4" v-if="!row.f_calculation.includes('表端结算')">
|
|
157
|
+
<label class="font_normal_body_new">累计用气金额</label>
|
|
158
|
+
<input class="input-underline" style="width:45%" :value="row.f_total_usegas_amount" readonly>
|
|
159
|
+
</div>
|
|
160
|
+
<div v-if="row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
161
|
+
<label class="font_normal_body_new">阀门状态</label>
|
|
162
|
+
<input class="input-underline" style="width:60%" :value="row.f_valvestate == 0 ? '已开阀' : '已关阀'"
|
|
163
|
+
readonly>
|
|
164
|
+
</div>
|
|
165
|
+
<div v-if="row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
166
|
+
<label class="font_normal_body_new">阀控状态</label>
|
|
167
|
+
<input class="input-underline" style="width:50%" :value="row.f_network_valve == '1' ? '手动' : '自动'"
|
|
168
|
+
readonly>
|
|
169
|
+
<!-- <span v-if="row.f_network_valve" @click.stop="openModal"-->
|
|
170
|
+
<!-- class=" glyphicon glyphicon-pencil clickchange" title="修改阀控状态">-->
|
|
171
|
+
<!-- </span>-->
|
|
172
|
+
</div>
|
|
173
|
+
<div v-if="!row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
174
|
+
<label class="font_normal_body_new">写卡次数</label>
|
|
175
|
+
<input class="input-underline" style="width:45%" :value="row.f_times" readonly>
|
|
176
|
+
</div>
|
|
177
|
+
<div v-if="!row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
178
|
+
<label class="font_normal_body_new">抄表册名</label>
|
|
179
|
+
<input class="input-underline" style="width:45%"
|
|
180
|
+
:value="(row.f_book_code!=null ? '['+row.f_book_code + '] ' : '') + (row.f_book_name!=null ? row.f_book_name:'')"
|
|
181
|
+
readonly>
|
|
182
|
+
</div>
|
|
183
|
+
<div v-if="!row.f_meter_type.includes('物联网表')" class="col-sm-4">
|
|
184
|
+
<label class="font_normal_body_new">抄表册册序号</label>
|
|
185
|
+
<input class="input-underline" style="width:45%" :value="row.f_meter_book_sort" readonly>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="auto" style="float: right;">
|
|
189
|
+
<button class="button_clear " @click="cancelmain()">返回</button>
|
|
190
|
+
<button class="button_search" v-show="buttonshow" type="button" @click="goChargeManage">去收费</button>
|
|
191
|
+
<button v-if="row.f_meter_brand.includes('西美')&&row.f_meter_type.includes('物联网表')"
|
|
192
|
+
class="button_search" type="button" @click="clearBarrier">清除障碍
|
|
193
|
+
</button>
|
|
194
|
+
<button v-if="row.f_meter_brand.includes('美华') && row.f_meter_type.includes('物联网表')"
|
|
195
|
+
class="button_search" type="button" @click="userFilesSync">档案同步
|
|
196
|
+
</button>
|
|
197
|
+
<button v-if="row.f_meter_type.includes('物联网表')"
|
|
198
|
+
class="button_search" type="button" @click="openUser">开户
|
|
199
|
+
</button>
|
|
200
|
+
<button
|
|
201
|
+
v-if="row.f_meter_type.includes('物联网表') && !(row.f_table_state === '停用' && row.f_network_valve === null)"
|
|
202
|
+
class="button_search" type="button" @click="valvecontrol">
|
|
203
|
+
开关阀
|
|
204
|
+
</button>
|
|
205
|
+
<button v-if="row.f_meter_type.includes('物联网表') && autoValveLimit"
|
|
206
|
+
class="button_search" type="button" @click="zdfk">开关自动阀控
|
|
207
|
+
</button>
|
|
208
|
+
<div
|
|
209
|
+
:class="{'button_shrink_top':criteriaShow,'button_shrink_bottom':!criteriaShow}"
|
|
210
|
+
@click="criteriaShow=!criteriaShow"
|
|
211
|
+
class="button_spacing"
|
|
212
|
+
style="float: right"></div>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
<div class="auto row">
|
|
217
|
+
<div class="col-sm-6" style="width:49%;"></div>
|
|
218
|
+
<div class="auto form-group-new">
|
|
219
|
+
<div class="col-sm-6" style="height:auto;width:49%;" v-show="criteriaShow">
|
|
220
|
+
<div class="col-sm-4">
|
|
221
|
+
<label class="font_normal_body_new">气表型号</label>
|
|
222
|
+
<input class="input-underline" style="width:60%" :value="row.f_meter_style" readonly>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="col-sm-4">
|
|
225
|
+
<label class="font_normal_body_new">气表类型</label>
|
|
226
|
+
<input class="input-underline" style="width:60%" :value="row.f_meter_type" readonly>
|
|
227
|
+
</div>
|
|
228
|
+
<div class="col-sm-4">
|
|
229
|
+
<label class="font_normal_body_new">初始底数</label>
|
|
230
|
+
<input class="input-underline" style="width:60%" :value="row.f_initial_base" readonly>
|
|
231
|
+
</div>
|
|
232
|
+
<div class="col-sm-4">
|
|
233
|
+
<label class="font_normal_body_new">左 右 表</label>
|
|
234
|
+
<input class="input-underline" style="width:60%" :value="row.f_aroundmeter" readonly>
|
|
235
|
+
</div>
|
|
236
|
+
<div class="col-sm-4">
|
|
237
|
+
<label class="font_normal_body_new">建表日期</label>
|
|
238
|
+
<input class="input-underline" style="width:60%" :value="row.f_input_date.substring(0,7)" readonly>
|
|
239
|
+
</div>
|
|
240
|
+
<div v-if="devices.length > 0" v-show="false" style="height: auto">
|
|
241
|
+
<p style="font-weight: bold;margin: 0">设备信息</p>
|
|
242
|
+
<div class="panel-heading" style="height: 30px">
|
|
243
|
+
<h4 style="display:inline-block;margin-top: auto">设备信息</h4>
|
|
244
|
+
</div>
|
|
245
|
+
<div v-for="device in devices">
|
|
246
|
+
|
|
247
|
+
<form class="form-horizontal">
|
|
248
|
+
<div class="col-sm-4">
|
|
249
|
+
<label class="font_normal_body_new">设备类型</label>
|
|
250
|
+
<input class="input-underline" style="width:60%" :value="device.f_devices_type" readonly>
|
|
251
|
+
</div>
|
|
252
|
+
<div class="col-sm-4">
|
|
253
|
+
<label class="font_normal_body_new">设备品牌</label>
|
|
254
|
+
<input class="input-underline" style="width:60%" :value="device.f_brand" readonly>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="col-sm-4">
|
|
257
|
+
<label class="font_normal_body_new">设备型号</label>
|
|
258
|
+
<input class="input-underline" style="width:60%" :value="device.f_devices_model" readonly>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="col-sm-4">
|
|
261
|
+
<label class="font_normal_body_new">设备数量</label>
|
|
262
|
+
<input class="input-underline" style="width:60%" :value="device.f_devices_num" readonly>
|
|
263
|
+
</div>
|
|
264
|
+
</form>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
<!--阀控管理弹框-->
|
|
271
|
+
<modal :show.sync="valve">
|
|
272
|
+
<header slot="modal-header" class="modal-header">
|
|
273
|
+
<button type="button" class="close" @click="close()"><span>×</span></button>
|
|
274
|
+
<h4 class="modal-title" align="center">阀控管理</h4>
|
|
275
|
+
</header>
|
|
276
|
+
<article slot="modal-body" class="modal-body">
|
|
277
|
+
<div class="form-group" style="padding-left: 8px">
|
|
278
|
+
<label class="font_normal_body">阀控状态</label>
|
|
279
|
+
<div class="col-sm-3">
|
|
280
|
+
<select v-model="selectedOption" class="input_search">
|
|
281
|
+
<option value="">请选择</option>
|
|
282
|
+
<option v-for="option in networkValveOptions" :value="option">
|
|
283
|
+
{{ option }}
|
|
284
|
+
</option>
|
|
285
|
+
</select>
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
|
|
289
|
+
<div class="form-group " style="padding-left: 8px">
|
|
290
|
+
<label class="font_normal_body" :class="operateReason?'':'text-danger'">操作原因</label>
|
|
291
|
+
<textarea class="form-control" style="width:80%" v-model="operateReason" rows="1"
|
|
292
|
+
placeholder="请填写操作原因"></textarea>
|
|
293
|
+
</div>
|
|
294
|
+
</article>
|
|
295
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
296
|
+
<!-- <button type="button" class="button_search btn-ln fr" :disabled="!operateReason" @click='valveoperate(true,0)' title="屏蔽特殊条件下(充值开阀等)触发的自动开阀指令">强制开阀</button>-->
|
|
297
|
+
<button type="button" class="button_search button_spacing" :disabled="!operateReason"
|
|
298
|
+
@click='valveoperate(true,1)'>
|
|
299
|
+
开阀
|
|
300
|
+
</button>
|
|
301
|
+
<!-- <button type="button" class="btn btn-info btn-ln fr" :disabled="!operateReason" @click='valveoperate(false, 0)' title="屏蔽特殊条件下(欠费关阀等)触发的自动开阀指令">强制关阀</button>-->
|
|
302
|
+
<button type="button" class="button_spacing" :class="operateReason? 'button_export' : 'button_search' "
|
|
303
|
+
:disabled="!operateReason"
|
|
304
|
+
@click='valveoperate(false, 1)'>关阀
|
|
305
|
+
</button>
|
|
306
|
+
</footer>
|
|
307
|
+
</modal>
|
|
308
|
+
|
|
309
|
+
<modal :show.sync="showModal" v-ref:modal backdrop="false">
|
|
310
|
+
<header slot="modal-header" class="modal-header">
|
|
311
|
+
<h4 class="modal-title">修改阀控状态</h4>
|
|
312
|
+
</header>
|
|
313
|
+
<article slot="modal-body" class="modal-body">
|
|
314
|
+
<validator name='v'>
|
|
315
|
+
<form class="form-horizontal select-overspread">
|
|
316
|
+
<div class="row">
|
|
317
|
+
<div class="form-group">
|
|
318
|
+
<label class=" col-sm-3 control-label">阀控状态:</label>
|
|
319
|
+
<div class="col-sm-4">
|
|
320
|
+
<v-select v-model="f_network_valve"
|
|
321
|
+
placeholder='请选择'
|
|
322
|
+
:value.sync="disableModel.f_network_valve"
|
|
323
|
+
:options='f_network_valve'
|
|
324
|
+
:value-single="true"
|
|
325
|
+
close-on-select clear-button>
|
|
326
|
+
</v-select>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
<div>
|
|
330
|
+
<label class=" col-sm-3 control-label">操作原因:</label>
|
|
331
|
+
<div class="col-sm-8">
|
|
332
|
+
<textarea class="form-control" v-model="disableModel.f_othereason" rows="3"
|
|
333
|
+
placeholder="多行输入"></textarea>
|
|
334
|
+
</div>
|
|
335
|
+
</div>
|
|
336
|
+
</div>
|
|
337
|
+
</form>
|
|
338
|
+
</validator>
|
|
339
|
+
</article>
|
|
340
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
341
|
+
<button type="button" class="button_search" @click='confirm()'>提交</button>
|
|
342
|
+
<button type="button" class="button_clear" @click='close1'>取消</button>
|
|
343
|
+
</footer>
|
|
344
|
+
</modal>
|
|
345
|
+
</div>
|
|
346
|
+
|
|
347
|
+
</template>
|
|
348
|
+
|
|
349
|
+
<script>
|
|
350
|
+
import {HttpResetClass} from 'vue-client'
|
|
351
|
+
import Vue from 'vue'
|
|
352
|
+
|
|
353
|
+
export default {
|
|
354
|
+
title: '基本信息',
|
|
355
|
+
props: {
|
|
356
|
+
row: {
|
|
357
|
+
type: Object,
|
|
358
|
+
default: undefined
|
|
359
|
+
},
|
|
360
|
+
buttonshow: {
|
|
361
|
+
type: Boolean,
|
|
362
|
+
default: true
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
data () {
|
|
366
|
+
return {
|
|
367
|
+
selectedOption: '手动',
|
|
368
|
+
delaySeconds: '',
|
|
369
|
+
networkValveOptions: [
|
|
370
|
+
'手动',
|
|
371
|
+
'自动',
|
|
372
|
+
'1小时后自动',
|
|
373
|
+
'3小时后自动',
|
|
374
|
+
'6小时后自动',
|
|
375
|
+
'12小时后自动'
|
|
376
|
+
],
|
|
377
|
+
showModal: false,
|
|
378
|
+
disableModel: {
|
|
379
|
+
f_othereason: '',
|
|
380
|
+
f_network_valve: ''
|
|
381
|
+
},
|
|
382
|
+
criteriaShow: false,
|
|
383
|
+
devices: [],
|
|
384
|
+
valveLimit: false,
|
|
385
|
+
autoValveLimit: false,
|
|
386
|
+
// 开关阀操作原因
|
|
387
|
+
operateReason: '',
|
|
388
|
+
valve: false,
|
|
389
|
+
showselectncuserinfo: false,
|
|
390
|
+
f_network_valve: this.$appdata.getParam('阀控状态') ? [{
|
|
391
|
+
// label: '全部',
|
|
392
|
+
value: ''
|
|
393
|
+
}, ...this.$appdata.getParam('阀控状态')] : []
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
ready () {
|
|
397
|
+
this.getDevice()
|
|
398
|
+
this.valveLimit = this.$login.r.includes('开关阀权限')
|
|
399
|
+
this.autoValveLimit = this.$login.r.includes('自动阀控权限')
|
|
400
|
+
},
|
|
401
|
+
methods: {
|
|
402
|
+
// 发送请求去数据
|
|
403
|
+
async getDevice () {
|
|
404
|
+
if (this.row) {
|
|
405
|
+
let http = new HttpResetClass()
|
|
406
|
+
let condition = `f_userinfo_id = '${this.row.f_userinfo_id}'`
|
|
407
|
+
let getDevices = await http.load('POST', 'api/af-revenue/sql/sale_GetDevicesInfo', {data: {condition: condition}}, {
|
|
408
|
+
rejectMsg: '获取设备信息出错!!',
|
|
409
|
+
resolveMsg: null
|
|
410
|
+
})
|
|
411
|
+
this.devices = getDevices.data
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
openModal () {
|
|
415
|
+
this.showModal = true
|
|
416
|
+
},
|
|
417
|
+
async confirm () {
|
|
418
|
+
let operInfo = {
|
|
419
|
+
f_operator: this.$login.f.name,
|
|
420
|
+
f_operatorid: this.$login.f.id,
|
|
421
|
+
f_orgid: this.$login.f.orgid,
|
|
422
|
+
f_orgname: this.$login.f.orgs,
|
|
423
|
+
f_depid: this.$login.f.depids,
|
|
424
|
+
f_depname: this.$login.f.deps,
|
|
425
|
+
f_network_valve: this.disableModel.f_network_valve,
|
|
426
|
+
f_othereason: this.disableModel.f_othereason
|
|
427
|
+
}
|
|
428
|
+
let userlist = [
|
|
429
|
+
{
|
|
430
|
+
f_userinfo_id: this.row.f_userinfo_id,
|
|
431
|
+
f_user_name: this.row.f_user_name,
|
|
432
|
+
f_userfiles_id: this.row.f_userfiles_id,
|
|
433
|
+
f_table_state: this.row.f_table_state
|
|
434
|
+
}
|
|
435
|
+
]
|
|
436
|
+
let param = {
|
|
437
|
+
userlist,
|
|
438
|
+
operInfo
|
|
439
|
+
}
|
|
440
|
+
console.log(param)
|
|
441
|
+
await this.$resetpost('api/af-revenue/logic/importNetworkValve', {data: param}, {
|
|
442
|
+
rejectMsg: '同步失败',
|
|
443
|
+
resolveMsg: '同步成功'
|
|
444
|
+
})
|
|
445
|
+
this.$emit('search-main')
|
|
446
|
+
this.showModal = false
|
|
447
|
+
},
|
|
448
|
+
|
|
449
|
+
close1 () {
|
|
450
|
+
// 关闭对话框的逻辑
|
|
451
|
+
this.showModal = false
|
|
452
|
+
},
|
|
453
|
+
// 返回
|
|
454
|
+
cancelmain () {
|
|
455
|
+
this.$emit('cancel-main')
|
|
456
|
+
},
|
|
457
|
+
clearBarrier () {
|
|
458
|
+
// 地址
|
|
459
|
+
// 127.0.0.1:8445
|
|
460
|
+
// 参数
|
|
461
|
+
let datas = {
|
|
462
|
+
moduleName: 'XiMeiSystem', // 固定值
|
|
463
|
+
content: {
|
|
464
|
+
tradeCode: '3015', // 固定值
|
|
465
|
+
appid: 'yysf', // 固定值
|
|
466
|
+
partner: 'cqsemay_bcts', // 固定值
|
|
467
|
+
version: 'v1', // 固定值
|
|
468
|
+
tasked: this.getuuid(), // 任务id
|
|
469
|
+
notifyUrl: 'http://192.168.2.10:8445/webmeter/rs/logic/XiMeiSystemCallBack', // 固定值
|
|
470
|
+
meterNo: this.row.f_meternumber, // 表号
|
|
471
|
+
signType: ' MD5' // 固定值
|
|
472
|
+
},
|
|
473
|
+
title: '清除异常', // 固定值
|
|
474
|
+
type: '清除异常', // 固定值
|
|
475
|
+
inputtor: this.row.f_operator, // 操作人
|
|
476
|
+
userId: this.row.f_userfiles_id, // 表档案ID
|
|
477
|
+
dataId: null // 操作记录ID
|
|
478
|
+
}
|
|
479
|
+
this.$resetpost('/webmeter/rs/logic/syncSaveSetParamsTemplate', {data: datas}, {
|
|
480
|
+
resolveMsg: `清理成功`,
|
|
481
|
+
rejectMsg: `清理失败`
|
|
482
|
+
}).then(res => {
|
|
483
|
+
})
|
|
484
|
+
},
|
|
485
|
+
getuuid () {
|
|
486
|
+
let uuidA = ''
|
|
487
|
+
var s = []
|
|
488
|
+
var hexDigits = '0123456789abcdef'
|
|
489
|
+
for (var i = 0; i < 36; i++) {
|
|
490
|
+
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
|
|
491
|
+
}
|
|
492
|
+
s[14] = '4'
|
|
493
|
+
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1)
|
|
494
|
+
s[8] = s[13] = s[18] = s[23] = '-'
|
|
495
|
+
uuidA = s.join('')
|
|
496
|
+
return uuidA
|
|
497
|
+
},
|
|
498
|
+
async goChargeManage () {
|
|
499
|
+
await this.$copyText(this.row.f_userinfo_code)
|
|
500
|
+
this.$showAlert(`用户编号已复制到剪切板!`, 'success', 2000)
|
|
501
|
+
if (this.row.parentname === 'charge-manage') {
|
|
502
|
+
this.$emit('cancel-re')
|
|
503
|
+
} else {
|
|
504
|
+
if (window.parent !== window) {
|
|
505
|
+
window.parent.postMessage({type: 'route', path:'/chargeMange/charge-manage'}, '*')
|
|
506
|
+
} else {
|
|
507
|
+
this.$goto('charge-manage', {f: this.$login.f}, 'main')
|
|
508
|
+
}
|
|
509
|
+
// window.parent.dispatchEvent(new CustomEvent('gotoChargeManage', {detail: 'Hello from iframe'}))
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
openUser () {
|
|
513
|
+
this.$showMessage(`是否需要给用户进行开户?`, ['confirm', 'cancel']).then(async (res) => {
|
|
514
|
+
if (res === 'confirm') {
|
|
515
|
+
let data = {
|
|
516
|
+
f_userfiles_id: this.row.f_userfiles_id
|
|
517
|
+
}
|
|
518
|
+
this.$resetpost('api/af-revenue/logic/startup', data)
|
|
519
|
+
}
|
|
520
|
+
})
|
|
521
|
+
},
|
|
522
|
+
userFilesSync () {
|
|
523
|
+
this.$showMessage(`是否需要给用户进行档案同步?`, ['confirm', 'cancel']).then(async (res) => {
|
|
524
|
+
if (res === 'confirm') {
|
|
525
|
+
let data = {
|
|
526
|
+
f_userfiles_id: this.row.f_userfiles_id
|
|
527
|
+
}
|
|
528
|
+
this.$resetpost('api/af-revenue/logic/userFilesSync', data)
|
|
529
|
+
}
|
|
530
|
+
})
|
|
531
|
+
},
|
|
532
|
+
// 阀控管理
|
|
533
|
+
zdfk () {
|
|
534
|
+
let data = {
|
|
535
|
+
inputtor: Vue.$login.f.name,
|
|
536
|
+
inputtorid: Vue.$login.f.id,
|
|
537
|
+
meterBrandName: this.row.f_alias,
|
|
538
|
+
f_userfiles_id: this.row.f_userfiles_id
|
|
539
|
+
}
|
|
540
|
+
if (this.row.f_network_valve !== '1') {
|
|
541
|
+
this.$resetpost('api/af-revenue/logic/openzdfk', data, {resolveMsg: '关闭自动阀控成功。', rejectMsg: '关闭自动阀控失败!!!'})
|
|
542
|
+
this.row.f_network_valve = '1'
|
|
543
|
+
} else {
|
|
544
|
+
this.$resetpost('api/af-revenue/logic/closezdfk', data, {resolveMsg: '开启自动阀控成功。', rejectMsg: '开启自动阀控失败!!!'})
|
|
545
|
+
this.row.f_network_valve = null
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
// 阀控管理
|
|
549
|
+
valvecontrol () {
|
|
550
|
+
if (this.$login.r.includes('开关阀权限')) {
|
|
551
|
+
this.valve = true
|
|
552
|
+
} else {
|
|
553
|
+
this.$showAlert('您没有【开关阀权限】,请联系管理员!!', 'warning', 3000)
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
close () {
|
|
557
|
+
this.valve = false
|
|
558
|
+
this.operateReason = ''
|
|
559
|
+
},
|
|
560
|
+
// 开关阀操作
|
|
561
|
+
async valveoperate (oper, value) {
|
|
562
|
+
let msg = oper ? '开阀' : '关阀'
|
|
563
|
+
let valueState = '自动'
|
|
564
|
+
if (value == 0) {
|
|
565
|
+
valueState = '自动'
|
|
566
|
+
} else {
|
|
567
|
+
valueState = '手动'
|
|
568
|
+
}
|
|
569
|
+
let delaySeconds = 0 // 初始化 delaySeconds 变量
|
|
570
|
+
let currentTime = new Date() // 获取当前时间
|
|
571
|
+
let adjustedTime = new Date(currentTime) // 创建一个新的 Date 对象用于计算延迟后的时间
|
|
572
|
+
|
|
573
|
+
let beijingTime = new Date(currentTime.getTime() + 8 * 60 * 60 * 1000)
|
|
574
|
+
let formattedBeijingTime = beijingTime.toISOString().slice(0, 19).replace('T', ' ')
|
|
575
|
+
|
|
576
|
+
let datas = {
|
|
577
|
+
instructType: '阀门控制',
|
|
578
|
+
instructTitle: `手动${msg}`,
|
|
579
|
+
condition: `t_userfiles.f_userfiles_id='${this.row.f_userfiles_id}'`,
|
|
580
|
+
meterBrandName: this.row.f_alias,
|
|
581
|
+
f_instruct_state: '待发送',
|
|
582
|
+
inputtor: Vue.$login.f.name,
|
|
583
|
+
inputtorid: Vue.$login.f.id,
|
|
584
|
+
reasonInfo: this.operateReason,
|
|
585
|
+
meternumberf: this.row.f_meternumber,
|
|
586
|
+
contentData: {isOpen: oper ? 1 : 0},
|
|
587
|
+
auto_adjust_option: this.selectedOption,
|
|
588
|
+
delaySeconds: delaySeconds,
|
|
589
|
+
executeDelayedOperation: true,
|
|
590
|
+
f_timestamp: formattedBeijingTime, // 使用北京时间
|
|
591
|
+
f_userfiles_id: this.row.f_userfiles_id,
|
|
592
|
+
f_userinfo_id: this.row.f_userinfo_id
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
let _this = this
|
|
596
|
+
|
|
597
|
+
// 计算延迟时间
|
|
598
|
+
switch (_this.selectedOption) {
|
|
599
|
+
case '1小时后自动':
|
|
600
|
+
delaySeconds = 3600 // 1小时 = 3600秒
|
|
601
|
+
break
|
|
602
|
+
case '3小时后自动':
|
|
603
|
+
delaySeconds = 10800 // 3小时 = 10800秒
|
|
604
|
+
break
|
|
605
|
+
case '6小时后自动':
|
|
606
|
+
delaySeconds = 21600 // 6小时 = 21600秒
|
|
607
|
+
break
|
|
608
|
+
case '12小时后自动':
|
|
609
|
+
delaySeconds = 43200 // 12小时 = 43200秒
|
|
610
|
+
break
|
|
611
|
+
default:
|
|
612
|
+
delaySeconds = 0
|
|
613
|
+
}
|
|
614
|
+
adjustedTime.setSeconds(adjustedTime.getSeconds() + delaySeconds)
|
|
615
|
+
let adjustedBeijingTime = new Date(adjustedTime.getTime() + 8 * 60 * 60 * 1000)
|
|
616
|
+
let formattedAdjustedBeijingTime = adjustedBeijingTime.toISOString().slice(0, 19).replace('T', ' ')
|
|
617
|
+
|
|
618
|
+
// 更新 datas 对象
|
|
619
|
+
datas.delaySeconds = delaySeconds
|
|
620
|
+
datas.f_current_timestamp = formattedAdjustedBeijingTime // 使用延迟后的北京时间
|
|
621
|
+
|
|
622
|
+
await this.$resetpost('api/af-revenue/sql/iot_searchInstruct', { data: datas }, { warnMsg: null, resolveMsg: null }).then(res => {
|
|
623
|
+
if (res.data.length === 0) {
|
|
624
|
+
_this.$resetpost('api/af-revenue/logic/iot_saveInstruct', { data: datas }, {
|
|
625
|
+
warnMsg: `确定要进行${msg}操作吗?`,
|
|
626
|
+
resolveMsg: `${msg}成功`,
|
|
627
|
+
rejectMsg: `${msg}失败`
|
|
628
|
+
}).then(res => {
|
|
629
|
+
_this.valve = false
|
|
630
|
+
_this.operateReason = ''
|
|
631
|
+
if (_this.selectedOption !== '手动') {
|
|
632
|
+
let msg = _this.selectedOption !== '自动' ? `阀控状态将在${_this.selectedOption}后自动调整为【自动】` : `阀控状态自动调整为 【自动】`
|
|
633
|
+
_this.$showAlert(msg, 'info', 3000)
|
|
634
|
+
_this.$resetpost('api/af-revenue/logic/iot_processDelayedOperations', {data: datas}, {
|
|
635
|
+
warnMsg: null,
|
|
636
|
+
resolveMsg: null
|
|
637
|
+
}).then(res => {
|
|
638
|
+
this.$emit('refresh')
|
|
639
|
+
console.log('延时操作逻辑已执行')
|
|
640
|
+
})
|
|
641
|
+
} else {
|
|
642
|
+
this.$emit('refresh')
|
|
643
|
+
}
|
|
644
|
+
})
|
|
645
|
+
} else {
|
|
646
|
+
this.$showAlert('存在开关阀待发送的指令,系统不生成同样的待发送指令', 'warning', 3000)
|
|
647
|
+
_this.valve = false
|
|
648
|
+
_this.operateReason = ''
|
|
649
|
+
}
|
|
650
|
+
})
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
},
|
|
654
|
+
watch: {
|
|
655
|
+
'row' () {
|
|
656
|
+
this.getDevice()
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
</script>
|
|
662
|
+
<style scoped lang="less">
|
|
663
|
+
.form-group-new > div {
|
|
664
|
+
height: 3% !important;
|
|
665
|
+
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.datapanel {
|
|
669
|
+
color: #333;
|
|
670
|
+
background-color: white;
|
|
671
|
+
box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
|
|
672
|
+
padding: 10px 30px 10px 30px;
|
|
673
|
+
height: auto;
|
|
674
|
+
border-radius: 15px;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
.text-info {
|
|
678
|
+
color: lightskyblue;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.text-danger {
|
|
682
|
+
color: red;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
.input-underline {
|
|
686
|
+
border-bottom: 1px solid #dbdbdb;
|
|
687
|
+
border-top: 0px;
|
|
688
|
+
border-left: 0px;
|
|
689
|
+
border-right: 0px;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.font_normal_body_new {
|
|
693
|
+
font-weight: 100;
|
|
694
|
+
float: left;
|
|
695
|
+
margin-top: 0px;
|
|
696
|
+
font-size: 1.4rem !important;
|
|
697
|
+
line-height: 30px;
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
.col-sm-4, .col-sm-8 {
|
|
701
|
+
display: flex;
|
|
702
|
+
align-items: center;
|
|
703
|
+
margin: 7px 0;
|
|
704
|
+
|
|
705
|
+
label {
|
|
706
|
+
line-height: unset;
|
|
707
|
+
margin-bottom: 0;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.clickchange:hover {
|
|
712
|
+
color: #3592ef;
|
|
713
|
+
cursor: pointer;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
</style>
|
package/src/filiale/xihu/sale.js
CHANGED
|
@@ -33,4 +33,5 @@ export default function () {
|
|
|
33
33
|
Vue.component('user-meterinfodetail', (resolve) => { require(['./meterinfodetail'], resolve) })
|
|
34
34
|
// 交费具体信息金额
|
|
35
35
|
Vue.component('meter-operate-maintain', (resolve) => { require(['./MeterOperatemain'], resolve) })
|
|
36
|
+
Vue.component('user-base-info-new', (resolve) => { require(['./UserBaseInfoNew'], resolve) })
|
|
36
37
|
}
|
package/src/main.js
CHANGED
|
@@ -2,7 +2,7 @@ import Vue from 'vue'
|
|
|
2
2
|
import all from 'vue-client/src/all'
|
|
3
3
|
import App from './App'
|
|
4
4
|
import system from 'system-clients/src/system'
|
|
5
|
-
import FilialeSale from './filiale/
|
|
5
|
+
import FilialeSale from './filiale/xihu/sale'
|
|
6
6
|
import sale from './sale'
|
|
7
7
|
import address from 'address-client/src/address'
|
|
8
8
|
import ldap from 'ldap-clients/src/ldap'
|