manage-client 4.1.116 → 4.1.118

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,145 +1,145 @@
1
- const express = require('express')
2
- const webpack = require('webpack')
3
- const config = require('./webpack.dev.conf')
4
- const proxyMiddleware = require('http-proxy-middleware')
5
-
6
- const app = express()
7
- const compiler = webpack(config)
8
-
9
- const server = 'http://192.168.50.67:31567/'
10
- const local = 'http://127.0.0.1:9026/'
11
- const proxyTable = {
12
- '/rs/logic/exportfile': {
13
- target: server
14
- },
15
- '/dataManage': {
16
- target: server
17
- },
18
- '/api/af-revenue/sql/': {
19
- pathRewrite: {
20
- '^/api/af-revenue': '/'
21
- },
22
- target: local
23
- },
24
- '/api/af-revenue/report/': {
25
- pathRewrite: {
26
- '^/api/af-revenue': '/'
27
- },
28
- target: local
29
- },
30
- '/api/af-revenue/logic': {
31
- pathRewrite: {
32
- '^/api/af-revenue': '/'
33
- },
34
- target: local
35
- },
36
- '/api': {
37
- target: server
38
- },
39
- '/rs/sql/chargeQuery_by_gasproperties': {
40
- target: server
41
- },
42
- '/rs/logic/chargeQuery_by_gasproperties_line': {
43
- target: server
44
- },
45
- '/files': {
46
- target: server
47
- },
48
- // 查找资源服务数据
49
- '/rs/search': {
50
- target: server
51
- },
52
- // 查找资源服务数据
53
- '/rs/logic/getLogin': {
54
- target: server
55
- },
56
- // 查找资源服务数据
57
- '/rs/logic/getInitData': {
58
- target: server
59
- },
60
- '/rs/logic/getSaleInitData': {
61
- target: server
62
- },
63
- // 用户登录服务地址
64
- '/rs/user': {
65
- target: server
66
- },
67
- '/rs/path/getParams': {
68
- target: server
69
- },
70
- '/rs/data': {
71
- target: server
72
- },
73
- '/rs/license': {
74
- target: server
75
- },
76
- '/rs/db': {
77
- target: server
78
- },
79
- '/excel': {
80
- target: server
81
- },
82
- '/rs/config': {
83
- target: server
84
- },
85
- '/rs/sql/getLicenseById': {
86
- target: server
87
- },
88
- '/rs/report': {
89
- target: server
90
- },
91
- '/rs/vue': {
92
- target: server
93
- },
94
- '/rs/file': {
95
- target: server
96
- },
97
- '/rs/sql/singleTable': {
98
- target: server
99
- },
100
- '/rs': {
101
- target: server
102
- }
103
- }
104
-
105
- const devMiddleware = require('webpack-dev-middleware')(compiler, {
106
- publicPath: config.output.publicPath,
107
- stats: {
108
- colors: true,
109
- chunks: false
110
- }
111
- })
112
-
113
- const hotMiddleware = require('webpack-hot-middleware')(compiler)
114
- // force page reload when html-webpack-plugin template changes
115
- compiler.plugin('compilation', function (compilation) {
116
- compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
117
- hotMiddleware.publish({action: 'reload'})
118
- cb()
119
- })
120
- })
121
-
122
- // proxy api requests
123
- Object.keys(proxyTable).forEach(function (context) {
124
- let options = proxyTable[context]
125
- if (typeof options === 'string') {
126
- options = {target: options}
127
- }
128
- app.use(proxyMiddleware(context, options))
129
- })
130
-
131
- app.use(require('connect-history-api-fallback')())
132
-
133
- app.use(devMiddleware)
134
-
135
- app.use(hotMiddleware)
136
-
137
- app.use('/static', express.static('./static'))
138
-
139
- module.exports = app.listen(8015, function (err) {
140
- if (err) {
141
- console.log(err)
142
- return
143
- }
144
- console.log('Listening at http://localhost:8015')
145
- })
1
+ const express = require('express')
2
+ const webpack = require('webpack')
3
+ const config = require('./webpack.dev.conf')
4
+ const proxyMiddleware = require('http-proxy-middleware')
5
+
6
+ const app = express()
7
+ const compiler = webpack(config)
8
+
9
+ const server = 'http://36.134.191.191:31467/'
10
+ const local = 'http://127.0.0.1:9026/'
11
+ const proxyTable = {
12
+ '/rs/logic/exportfile': {
13
+ target: server
14
+ },
15
+ '/dataManage': {
16
+ target: server
17
+ },
18
+ // '/api/af-revenue/sql/': {
19
+ // pathRewrite: {
20
+ // '^/api/af-revenue': '/'
21
+ // },
22
+ // target: local
23
+ // },
24
+ // '/api/af-revenue/report/': {
25
+ // pathRewrite: {
26
+ // '^/api/af-revenue': '/'
27
+ // },
28
+ // target: local
29
+ // },
30
+ // '/api/af-revenue/logic': {
31
+ // pathRewrite: {
32
+ // '^/api/af-revenue': '/'
33
+ // },
34
+ // target: local
35
+ // },
36
+ '/api': {
37
+ target: server
38
+ },
39
+ '/rs/sql/chargeQuery_by_gasproperties': {
40
+ target: server
41
+ },
42
+ '/rs/logic/chargeQuery_by_gasproperties_line': {
43
+ target: server
44
+ },
45
+ '/files': {
46
+ target: server
47
+ },
48
+ // 查找资源服务数据
49
+ '/rs/search': {
50
+ target: server
51
+ },
52
+ // 查找资源服务数据
53
+ '/rs/logic/getLogin': {
54
+ target: server
55
+ },
56
+ // 查找资源服务数据
57
+ '/rs/logic/getInitData': {
58
+ target: server
59
+ },
60
+ '/rs/logic/getSaleInitData': {
61
+ target: server
62
+ },
63
+ // 用户登录服务地址
64
+ '/rs/user': {
65
+ target: server
66
+ },
67
+ '/rs/path/getParams': {
68
+ target: server
69
+ },
70
+ '/rs/data': {
71
+ target: server
72
+ },
73
+ '/rs/license': {
74
+ target: server
75
+ },
76
+ '/rs/db': {
77
+ target: server
78
+ },
79
+ '/excel': {
80
+ target: server
81
+ },
82
+ '/rs/config': {
83
+ target: server
84
+ },
85
+ '/rs/sql/getLicenseById': {
86
+ target: server
87
+ },
88
+ '/rs/report': {
89
+ target: server
90
+ },
91
+ '/rs/vue': {
92
+ target: server
93
+ },
94
+ '/rs/file': {
95
+ target: server
96
+ },
97
+ '/rs/sql/singleTable': {
98
+ target: server
99
+ },
100
+ '/rs': {
101
+ target: server
102
+ }
103
+ }
104
+
105
+ const devMiddleware = require('webpack-dev-middleware')(compiler, {
106
+ publicPath: config.output.publicPath,
107
+ stats: {
108
+ colors: true,
109
+ chunks: false
110
+ }
111
+ })
112
+
113
+ const hotMiddleware = require('webpack-hot-middleware')(compiler)
114
+ // force page reload when html-webpack-plugin template changes
115
+ compiler.plugin('compilation', function (compilation) {
116
+ compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
117
+ hotMiddleware.publish({action: 'reload'})
118
+ cb()
119
+ })
120
+ })
121
+
122
+ // proxy api requests
123
+ Object.keys(proxyTable).forEach(function (context) {
124
+ let options = proxyTable[context]
125
+ if (typeof options === 'string') {
126
+ options = {target: options}
127
+ }
128
+ app.use(proxyMiddleware(context, options))
129
+ })
130
+
131
+ app.use(require('connect-history-api-fallback')())
132
+
133
+ app.use(devMiddleware)
134
+
135
+ app.use(hotMiddleware)
136
+
137
+ app.use('/static', express.static('./static'))
138
+
139
+ module.exports = app.listen(8015, function (err) {
140
+ if (err) {
141
+ console.log(err)
142
+ return
143
+ }
144
+ console.log('Listening at http://localhost:8015')
145
+ })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manage-client",
3
- "version": "4.1.116",
3
+ "version": "4.1.118",
4
4
  "description": "经营管控模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -133,6 +133,14 @@
133
133
  v-model="model.f_instruct_state"
134
134
  ></v-select>
135
135
  </div>
136
+ <div class="col-sm-2 form-group">
137
+ <label class="font_normal_body">指令标题</label>
138
+ <v-select :options='$parent.$parent.instructHead' :value.sync="model.f_instruct_title" close-on-select
139
+ condition="f_instruct_title='{}'"
140
+ placeholder='指令标题'
141
+ style="width:60%"
142
+ v-model="model.f_instruct_title"></v-select>
143
+ </div>
136
144
 
137
145
  <div class="col-sm-2 form-group">
138
146
  <label class="font_normal_body">指令时间</label>
@@ -326,7 +334,7 @@
326
334
  'f_meternumber': '表号','f_meter_brand': '气表品牌','f_instruct_type': '指令类型',
327
335
  'f_instruct_state': '执行状态','f_receive_state': '执行结果','f_inputtor': '指令生成人','f_instruct_date': '指令时间',
328
336
  'note':'操作内容','f_operator':'操作人(记录)','f_operate_date':'操作时间(记录)','f_operate_type':'操作类型','f_state':'操作状态',
329
- 'f_orgname': '组织机构'
337
+ 'f_orgname': '组织机构', 'f_instruct_title': '指令标题'
330
338
  }
331
339
  },
332
340
  }
@@ -445,6 +453,9 @@
445
453
  instructstate () {
446
454
  return [{label: '全部', value: ''}, ...this.$appdata.getParam('执行状态')]
447
455
  },
456
+ instructHead () {
457
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令标题')]
458
+ },
448
459
  userType () {
449
460
  return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
450
461
  },
@@ -0,0 +1,756 @@
1
+ <template>
2
+ <div class="flex-row" v-show="!showdetail">
3
+ <div id='app1' class="basic-main" v-show="(!echarts)&&(!isActiveTotalForm)">
4
+ <criteria-paged :model="model" :pager='true' v-ref:paged>
5
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
+ <div class="row">
8
+ <!--<div class="form-group">-->
9
+ <!--<input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.f_username" placeholder='客户名称'-->
10
+ <!--condition="f_user_name = '{}'" v-next-el='userid' v-el:username-->
11
+ <!--:size="model.f_user_name ? model.f_user_name.length * 2 : 8">-->
12
+ <!--</div>-->
13
+
14
+ <div class="col-sm-2 form-group">
15
+ <label class="font_normal_body">客户编号</label>
16
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
17
+ v-model="model.f_userinfo_code" placeholder='客户编号'
18
+ condition="f_userinfo_code like '%{}%'" v-el:xq v-next-el='userinfocode' v-el:username
19
+ >
20
+ </div>
21
+ <div class="col-sm-2 form-group">
22
+ <label class="font_normal_body">客户名称</label>
23
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
24
+ v-model="model.f_user_name" placeholder='客户名称'
25
+ condition="f_user_name like '%{}%'" v-el:xq v-next-el='username' v-el:username
26
+ >
27
+ </div>
28
+ <div class="col-sm-2 form-group">
29
+ <label class="font_normal_body">客户地址</label>
30
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.f_area"
31
+ placeholder='地址'
32
+ condition="f_address like '%{}%'" v-el:xq v-next-el='address' v-el:area
33
+ >
34
+ </div>
35
+ <div class="col-sm-2 form-group">
36
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;表号&nbsp;&nbsp;&nbsp;</label>
37
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
38
+ v-model="model.f_meternumber" placeholder='表号'
39
+ condition="f_meternumber like '%{}%'" v-next-el='meternumber' v-el:meternumber
40
+ >
41
+ </div>
42
+ <div style="float:right">
43
+ <button class="button_search button_spacing" @click="search()">查询</button>
44
+ <button class="button_clear button_spacing" @click="clear">清空</button>
45
+ <export-excel :data="$parent.$parent.getCondition" class="button_export button_spacing"
46
+ :field="$parent.$parent.getfield" :sumname="$parent.$parent.sumName"
47
+ :header="$parent.$parent.other"
48
+ sqlurl="api/af-revenue/logic/openapi/exportfile" sql-name="webmeter_getAllLoseQuery" template-name='失联分析'
49
+ :choose-col="true"></export-excel>
50
+ <!-- <button class="button_export button_spacing" @click="$parent.$parent.SaveAsFile('lostuserlist')">导出</button>-->
51
+ <!-- <button class="button_export button_spacing" style="width: max-content" @click="$parent.$parent.showTotalForm()">显示汇总</button>-->
52
+ <button class="button_search button_spacing" @click="$parent.$parent.showEcharts()">显示图表</button>
53
+ <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
54
+ </div>
55
+ </div>
56
+ <div class="row" v-show="$parent.$parent.criteriaShow">
57
+ <div class="col-sm-2 form-group">
58
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;公司&nbsp;&nbsp;&nbsp;</label>
59
+ <right-tree @re-res="$parent.$parent.getorg" width="60%"
60
+ :initresid='$parent.$parent.org'></right-tree>
61
+ </div>
62
+ <div class="col-sm-2 form-group">
63
+ <label class="font_normal_body" for="dep" >部&emsp;&emsp;门</label>
64
+ <res-select id="dep" restype='department' style="width: 60%"
65
+ is-mul="false"
66
+ @res-select="$parent.$parent.getdep"
67
+ :parentresid="$parent.$parent.depresid"
68
+ :initresid='$parent.$parent.depid' >
69
+ </res-select>
70
+
71
+ </div>
72
+ <div class="col-sm-2 form-group">
73
+ <label class="font_normal_body">客户类型</label>
74
+ <v-select style="width:60%" id="f_user_type"
75
+ v-model="model.f_user_type"
76
+ placeholder='客户类型'
77
+ :value.sync="model.f_user_type"
78
+ @change="$parent.$parent.userTypeChange()"
79
+ :options='$parent.$parent.usertypes'
80
+ condition="f_user_type = '{}'"
81
+ close-on-select>
82
+ </v-select>
83
+ </div>
84
+ <div class="col-sm-2 form-group">
85
+ <label class="font_normal_body">用气性质</label>
86
+ <v-select style="width:60%" id="f_gasproperties"
87
+ v-model="model.f_gasproperties"
88
+ placeholder='用气性质'
89
+ :value.sync="model.f_gasproperties"
90
+ :options='$parent.$parent.gasproperties'
91
+ condition="f_gasproperties = '{}'"
92
+ close-on-select>
93
+ </v-select>
94
+ </div>
95
+ <div class="col-sm-2 form-group">
96
+ <label class="font_normal_body">气表品牌</label>
97
+ <v-select
98
+ placeholder='气表品牌'
99
+ :value.sync="model.f_meter_brand"
100
+ v-model="model.f_meter_brand"
101
+ :options='$parent.$parent.WarningType'
102
+ @change="$parent.$parent.getMeterType"
103
+ close-on-select
104
+ condition="f_meter_brand='{}'">
105
+ </v-select>
106
+ </div>
107
+ <div class="col-sm-2 form-group" >
108
+ <label class="font_normal_body">气表型号</label>
109
+ <v-select v-if="$parent.$parent.styles"
110
+ placeholder='气表型号'
111
+ :value.sync="model.f_meter_style"
112
+ v-model="model.f_meter_style"
113
+ :options='$parent.$parent.Warningstyle'
114
+ close-on-select
115
+ condition="f_meter_style='{}'">
116
+ </v-select>
117
+ <v-select v-if="!$parent.$parent.styles"
118
+ placeholder='气表型号'
119
+ :value.sync="model.f_meter_style"
120
+ v-model="model.f_meter_style"
121
+ :options='$parent.$parent.Warningstyles'
122
+ close-on-select
123
+ condition="f_meter_style='{}'">
124
+ </v-select>
125
+ </div>
126
+ <div class="col-sm-2 form-group">
127
+ <label class="font_normal_body">用户状态</label>
128
+ <v-select
129
+ placeholder='用户状态'
130
+ value-single
131
+ style="width:60%"
132
+ :value.sync="model.f_user_state"
133
+ v-model="model.f_user_state"
134
+ :options='$parent.$parent.userstate'
135
+ close-on-select condition="f_user_state ='{}'">
136
+ </v-select>
137
+ </div>
138
+ <!--<div class="col-sm-2 form-group">-->
139
+ <!--<label class="font_normal_body">最新状态</label>-->
140
+ <!-- <v-select style="width:60%" id="f_state"-->
141
+ <!--v-model="model.f_state"-->
142
+ <!--placeholder='最新状态'-->
143
+ <!--:value.sync="model.f_state"-->
144
+ <!--:options='$parent.$parent.getstate'-->
145
+ <!--condition="f_state = '{}'"-->
146
+ <!--close-on-select>-->
147
+ <!--</v-select>-->
148
+ <!--</div>-->
149
+ <div class="col-sm-2 form-group">
150
+ <label class="font_normal_body">开始时间</label>
151
+ <datepicker style="width:60%" id="startdate" placeholder="开始时间"
152
+ v-model="model.startDate"
153
+ :value.sync="model.startDate"
154
+ :disabled-days-of-Week="[]"
155
+ :format="'yyyy-MM-dd HH:mm:ss'"
156
+
157
+ :show-reset-button="reset">
158
+ </datepicker>
159
+ </div>
160
+ <div class="col-sm-2 form-group">
161
+ <label class="font_normal_body">结束时间</label>
162
+ <datepicker style="width:60%" id="enddate" placeholder="结束日期"
163
+ v-model="model.endDate"
164
+ :value.sync="model.endDate"
165
+ :disabled-days-of-Week="[]"
166
+ :format="'yyyy-MM-dd HH:mm:ss'"
167
+
168
+ :show-reset-button="reset">
169
+ </datepicker>
170
+ </div>
171
+
172
+
173
+ <div class="col-sm-2 form-group flex-row" style="white-space: nowrap">
174
+ <label class="font_normal_body">最长失联</label>
175
+ <div class="row">
176
+ <input type="text" style="width:27%" class="input_search" v-model="model.max_interval_day1"
177
+ condition="max_interval_day >= {} " placeholder="">
178
+ <label class="font_normal_body"> &nbsp;≤ x ≤ </label>
179
+ <input type="text" style="width:27%" class="input_search" v-model="model.max_interval_day2"
180
+ condition="max_interval_day <= {} " placeholder="">
181
+ </div>
182
+ </div>
183
+
184
+
185
+ <div class="col-sm-2 form-group flex-row" style="white-space: nowrap">
186
+ <label class="font_normal_body">合计失联</label>
187
+ <div class="row">
188
+ <input type="text" style="width:27%" class="input_search" v-model="model.SLdays1"
189
+ condition="SLdays >= {} " placeholder="">
190
+ <label class="font_normal_body">&nbsp; ≤ x ≤ </label>
191
+ <input type="text" style="width:27%" class="input_search" v-model="model.SLdays2"
192
+ condition="SLdays <= {} " placeholder="">
193
+ </div>
194
+ </div>
195
+ <div class="col-sm-2 form-group flex-row" style="white-space: nowrap">
196
+ <label class="font_normal_body">最新失联</label>
197
+ <div class="row">
198
+ <input type="text" style="width:27%" class="input_search" v-model="model.new_days1"
199
+ condition="new_days >= {} " placeholder="">
200
+ <label class="font_normal_body">&nbsp; ≤ x ≤ </label>
201
+ <input type="text" style="width:27%" class="input_search" v-model="model.new_days2"
202
+ condition="new_days <= {} " placeholder="">
203
+ </div>
204
+ </div>
205
+ <div class="col-sm-2 form-group">
206
+ <label class="font_normal_body">是否通气</label>
207
+ <v-select
208
+ placeholder='是否通气'
209
+ style="width:60%"
210
+ :value.sync="model.f_address_state"
211
+ v-model="model.f_address_state"
212
+ :options='$parent.$parent.addressState'
213
+ close-on-select condition="f_address_state = '{}'">
214
+ </v-select>
215
+ </div>
216
+
217
+ <!--<div class="col-sm-2 form-group">-->
218
+ <!--<label class="font_normal_body">最新失联</label>-->
219
+ <!--<input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.new_days1" placeholder='天数大于等于'-->
220
+ <!--condition="new_days >= {}" v-next-el='new_days' v-el:new_days-->
221
+ <!--&gt;-->
222
+ <!--</div>-->
223
+ <!--<div class="col-sm-2 form-group">-->
224
+ <!--<label class="font_normal_body" style="word-break:keep-all;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至&nbsp;&nbsp;&nbsp;</label>-->
225
+ <!--<input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.new_days2" placeholder='天数小于等于'-->
226
+ <!--condition="new_days <= {}" v-next-el='new_days' v-el:new_days-->
227
+ <!--&gt;-->
228
+ <!--</div>-->
229
+ </div>
230
+
231
+
232
+
233
+ <!--:top='40' :left='60' :right='40' :bottom='60'-->
234
+ <!--:thead='"<th>序号</th>\n"+-->
235
+ <!--"<th>档案编号</th>" +-->
236
+ <!--" <th>档案标识</th>"+-->
237
+ <!--"<th>客户名称</th>"+-->
238
+ <!--"<th>表号</th"+-->
239
+ <!--"<th>表具类型</th>"+-->
240
+ <!--"<th>客户类型</th>"+-->
241
+ <!--"<th>区域</th>"+-->
242
+ <!--"<th>小区</th>"+-->
243
+ <!--"<th>地址</th>"+-->
244
+ <!--"<th>用气气量</th>"+-->
245
+ <!--"<th>用气金额</th>"-->
246
+ <!--+"<th>用气价格</th>"-->
247
+ <!--+"<th>时间</th>"-->
248
+ <!--+"<th>所属机构</th>"'-->
249
+ <!--:fields='["$index+1","f_username","f_meternumber","f_usertype","f_save_money","f_operate_status","f_close_reason","f_area","f_districtname","f_address","id","yytdepa"]'>-->
250
+ <!--</print-table>-->
251
+ <!--<export-excel :data="{orderitem: 'lastinputdate desc', condition: '1=1'}"-->
252
+ <!--:field="{f_username: '客户名称', f_meternumber: '表号',f_usertype:'客户类型',f_save_money:'剩余金额',-->
253
+ <!--f_operate_status:'状态',f_close_reason:'关阀原因',f_area:'区域',f_districtname:'小区', f_address: '地址',id:'档案编号',yytdepa:'所属机构'}"-->
254
+ <!--sqlurl="api/af-revenue/sql/getUserGas"></export-excel>-->
255
+ </div>
256
+ </criteria>
257
+ <data-grid id="lostuserlist" :model="model" partial='list' v-ref:grid class="list_area table_sy">
258
+ <template partial='head'>
259
+ <tr>
260
+ <th style="text-align:center">
261
+ <nobr>序号</nobr>
262
+ </th>
263
+ <th style="text-align:center">
264
+ <nobr>客户编号</nobr>
265
+ </th>
266
+ <th style="text-align:center">
267
+ <nobr>客户名称</nobr>
268
+ </th>
269
+ <th style="text-align:center">
270
+ <nobr>客户地址</nobr>
271
+ </th>
272
+ <th style="text-align:center">
273
+ <nobr>客户类型</nobr>
274
+ </th>
275
+ <th style="text-align:center">
276
+ <nobr>用气性质</nobr>
277
+ </th>
278
+ <th style="text-align:center">
279
+ <nobr>表号</nobr>
280
+ </th>
281
+ <th style="text-align:center">
282
+ <nobr>启用日期</nobr>
283
+ </th>
284
+ <th style="text-align:center">
285
+ <nobr>最后通讯时间</nobr>
286
+ </th>
287
+ <th style="text-align:center">
288
+ <nobr>应报天数</nobr>
289
+ </th>
290
+ <th style="text-align:center">
291
+ <nobr>实报天数</nobr>
292
+ </th>
293
+ <th style="text-align:center">
294
+ <nobr>最长失联天数</nobr>
295
+ </th>
296
+ <th style="text-align:center">
297
+ <nobr>累计失联天数</nobr>
298
+ </th>
299
+ <th style="text-align:center">
300
+ <nobr>最新失联天数</nobr>
301
+ </th>
302
+ <th style="text-align:center">
303
+ <nobr>气表厂家</nobr>
304
+ </th>
305
+ <th style="text-align:center" >
306
+ <nobr>气表型号</nobr>
307
+ </th>
308
+ <th style="text-align:center" >
309
+ <nobr>用户状态</nobr>
310
+ </th>
311
+ <th style="text-align:center" >
312
+ <nobr>最后安检时间</nobr>
313
+ </th>
314
+ <th style="text-align:center" >
315
+ <nobr>最后安检结果</nobr>
316
+ </th>
317
+ <th style="text-align:center" >
318
+ <nobr>组织机构</nobr>
319
+ </th>
320
+ <th style="text-align:center" >
321
+ <nobr>部门</nobr>
322
+ </th>
323
+
324
+ </tr>
325
+
326
+ </template>
327
+ <template partial='body'>
328
+ <td style="text-align:center">{{$index+1}}</td>
329
+ <!--<td style="text-align:center">{{row.f_userfiles_id}}</td>-->
330
+ <td style="text-align: center;"><nobr>
331
+ <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
332
+ </nobr> </td>
333
+ <td style="text-align:center"><nobr>{{row.f_user_name}}</nobr></td>
334
+ <td><nobr>{{row.f_address}}</nobr></td>
335
+ <td style="text-align:center">{{row.f_user_type}}</td>
336
+ <td style="text-align:center">{{row.f_gasproperties}}</td>
337
+ <td style="text-align:center"><nobr>{{row.f_meternumber}}</nobr></td>
338
+ <td style="text-align:center"><nobr>{{row.f_startuse_date}}</nobr></td>
339
+
340
+ <td style="text-align:center"><nobr>{{row.f_meteread_date}}</nobr></td>
341
+ <td style="text-align:center">{{row.ybdays}}</td>
342
+ <td style="text-align:center">{{row.sbdays}}</td>
343
+ <td style="text-align:center">
344
+ <nobr>{{row.max_interval_day}}</nobr>
345
+ </td>
346
+ <td style="text-align:center">
347
+ <nobr>{{row.sldays}}</nobr>
348
+ </td>
349
+ <td style="text-align:center">
350
+ <nobr>{{row.new_days}}</nobr>
351
+ </td>
352
+ <td style="text-align:center">
353
+ <nobr>{{row.f_meter_brand}}</nobr>
354
+ </td>
355
+ <td style="text-align:center">
356
+ <nobr>{{row.f_meter_style}}</nobr>
357
+ </td>
358
+ <td style="text-align:center">
359
+ <nobr>{{row.f_user_state}}</nobr>
360
+ </td>
361
+ <td style="text-align:center">
362
+ <nobr>{{row.f_last_check_date}}</nobr>
363
+ </td>
364
+ <td style="text-align:center">
365
+ <nobr>{{row.f_last_check_result}}</nobr>
366
+ </td>
367
+ <td style="text-align:center">
368
+ <nobr>{{row.f_orgname}}</nobr>
369
+ </td>
370
+ <td style="text-align:center">
371
+ <nobr>{{row.f_depname}}</nobr>
372
+ </td>
373
+
374
+ </template>
375
+ </data-grid>
376
+ </criteria-paged>
377
+ </div>
378
+ <div class="flex-row" v-show="echarts" style="width: 100%;height: 90%;">
379
+ <lost-contact-echarts :groupname="groupname[0]" :condition = "condition" :startdate="startDate"
380
+ :enddate="endDate" :echarts="echarts"></lost-contact-echarts>
381
+ </div>
382
+ <div class="span" v-show="isActiveTotalForm" style="width: 100%;height: 90%;">
383
+ <lost-contact-eform :condition="condition"
384
+ ></lost-contact-eform>
385
+ </div>
386
+ </div>
387
+
388
+ <!-- <div v-show="isActiveTotalForm" style="height: 40px;width: 100%;">-->
389
+ <!-- <button class="button_search button_spacing" @click="notShowTotalForm()">隐藏汇总</button>-->
390
+ <!-- </div>-->
391
+ <!-- <div class="flex-row" v-show="isActiveTotalForm" style="width: 100%;height: 90%;">-->
392
+ <!-- <lost-contact-eform :condition="model.condition" :startdate="startDate"-->
393
+ <!-- :enddate="endDate"></lost-contact-eform>-->
394
+ <!-- </div>-->
395
+ <div class="flex-row" style="width:99%;height:98%;margin-bottom:0px" v-if="showdetail">
396
+ <user-info-detail-manage-new :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
397
+ </div>
398
+ </template>
399
+
400
+ <script>
401
+ import {PagedList} from 'vue-client'
402
+ import UserGasEcharts from '../../components/webmeter/DrillData/UserGasEcharts'
403
+ import * as Util from '../../Util'
404
+ import plugin from 'system-clients/src/plugins/GetLoginInfoService'
405
+ import {HttpResetClass} from 'vue-client'
406
+
407
+ let readySomething = async function (self) {
408
+
409
+ await self.$MagLoadParams.loadParam()
410
+ self.initParams()
411
+ let year = new Date().getFullYear()
412
+ self.$refs.paged.$refs.cri.model.startDate = year+'-01-01 00:00:00'
413
+ // self.$refs.paged.$refs.cri.model.startDate = Util.toStandardDateString() + ' 00:00:00'
414
+ self.$refs.paged.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
415
+ self.$refs.paged.$refs.cri.model.f_user_state='正常'
416
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums;
417
+ }
418
+ export default {
419
+ title: '失联分析',
420
+ props: ['data'],
421
+ components: {UserGasEcharts},
422
+ data() {
423
+ return {
424
+ model: new PagedList('api/af-revenue/sql/webmeter_getAllLoseQuery', 20, {
425
+ startDate: 'this.model.startDate',
426
+ endDate: 'this.model.endDate'
427
+ }),
428
+ getfield:{
429
+ "f_userinfo_code":"客户编号",
430
+ "f_user_name":"客户名称",
431
+ "f_residential_area":"小区",
432
+ "f_address":"客户地址",
433
+ "f_user_type":"客户类型",
434
+ "f_gasproperties":"用气性质",
435
+ "f_meternumber":"表号",
436
+ "f_startuse_date":"启用日期",
437
+ "f_meteread_date": "最后通讯时间",
438
+ "ybdays":"应报天数",
439
+ "sbdays":"实报天数",
440
+ "max_interval_day":"最长失联天数",
441
+ "sldays":"累计失联天数",
442
+ "new_days":"最新失联天数",
443
+ "f_meter_brand":"气表厂家",
444
+ "f_orgname":"组织机构",
445
+ "f_depname":"部门"},
446
+ reportStr: null,
447
+ show: false,
448
+ showdetail:false,
449
+ rowdata:{},
450
+ other: [],
451
+ sumsmodel: {},
452
+ startDate: '',
453
+ endDate: '',
454
+ criteriaShow:false,
455
+ outlets: [],
456
+ depresid: [],
457
+ queryData: {
458
+ f_orgid: [],
459
+ f_depid: [],
460
+ f_operatorid: [],
461
+ f_payment: []
462
+ },
463
+ gasproperties:[{label: '全部', value: ''}],
464
+ operator: [],
465
+ WarningType: [
466
+ {label: '全部', value: ''}
467
+ ],
468
+ Warningstyles: [
469
+ {label: '全部', value: ''}
470
+ ],
471
+ styles:false,
472
+ filename: '',
473
+ orgCondtionStr: ` and f_orgid = '${this.$login.f.orgid}'`,
474
+ echarts: false,
475
+ orgid:[this.$login.f.orgid],
476
+ searchshow: false,
477
+ isActiveTotalForm: false,
478
+ condition: '1=1',
479
+ groupname: ['max_days_type'],
480
+ getgroupname: [
481
+ {label: '客户类型', value: 'f_user_type'},
482
+ {label: '用气性质', value: 'f_gasproperties'},
483
+ {label: '分公司', value: 'f_orgname'},
484
+ {label: '最长失联天数', value: 'max_days_type'},
485
+ {label: '合计失联天数', value: 'all_days_type'}
486
+ ],
487
+ org:[this.$login.f.orgid]
488
+
489
+ }
490
+ },
491
+ ready() {
492
+ readySomething(this)
493
+ this.getMeterTypeAndBrand('f_meter_brand', '1=1')
494
+ },
495
+ methods: {
496
+ getotherfooter() {
497
+ this.other = [];
498
+
499
+ let firstLine = [`导出时间: ${this.$login.toStandardTimeString()}`];
500
+
501
+
502
+ let secondLine = [
503
+ `开始时间: ${this.$refs.paged.$refs.cri.model.startDate}`,
504
+ `结束时间: ${this.$refs.paged.$refs.cri.model.endDate}`
505
+ ];
506
+
507
+ this.other.push(firstLine);
508
+ this.other.push(secondLine);
509
+
510
+ console.log('Header Data:', this.other);
511
+ },
512
+ getMeterType() {
513
+ this.Warningstyle = [{label: '全部', value: ''}]
514
+ this.styles = false
515
+ let f_meter_brand = this.$refs.paged.$refs.cri.model.f_meter_brand
516
+ this.getMeterTypeAndBrand('f_meter_style', `f_meter_brand='${f_meter_brand}'`)
517
+ },
518
+ getMeterTypeAndBrand(groupname, condition) {
519
+ condition = `${condition} and ui.f_orgid like '${this.$login.f.orgid}%'`
520
+ let self = this
521
+ let load = new HttpResetClass()
522
+ load.load('POST', 'api/af-revenue/sql/getMeterStyleAndBrand1', {
523
+ data: {
524
+ condition: condition,
525
+ groupname: groupname
526
+ }
527
+ }, {warnMsg: null, resolveMsg: null}).then((res) => {
528
+ for (let i = 0; i < res.data.length; i++) {
529
+ if (groupname == 'f_meter_brand') {
530
+ let dr = {}
531
+ dr.label = res.data[i].f_meter_brand
532
+ dr.value = res.data[i].f_meter_brand
533
+ //气表品牌
534
+ // self.WarningType.push(dr)
535
+ } else if (groupname == 'f_meter_style') {
536
+ self.Warningstyle= [
537
+ {label: '全部', value: ''}
538
+ ],
539
+ self.$refs.paged.$refs.cri.model.f_meter_style=''
540
+ let dr = {}
541
+ dr.label = res.data[i].f_meter_style
542
+ dr.value = res.data[i].f_meter_style
543
+ //气表类型
544
+ self.Warningstyle.push(dr)
545
+ }
546
+ }
547
+ if (self.Warningstyle.length > 1) {
548
+ self.showMeterStyle()
549
+ }
550
+ })
551
+
552
+ },
553
+ showMeterStyle() {
554
+ this.styles = true
555
+ },
556
+ userTypeChange () {
557
+ this.gasproperties=[{label: '全部', value: ''}]
558
+ if(this.$refs.paged.$refs.cri.model && this.$refs.paged.$refs.cri.model.f_user_type) {
559
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
560
+
561
+ console.log(this.$refs.paged.$refs.cri.model.f_user_type[0])
562
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
563
+ // this.gasproperties.push({label: '全部', value: ''})
564
+ }
565
+ else{
566
+ this.gasproperties =[{label: '全部', value: ''}]
567
+ }
568
+ },
569
+ hidden(){
570
+ this.criteriaShow = !this.criteriaShow
571
+ },
572
+ clickshow() {
573
+ this.searchshow = !this.searchshow
574
+ },
575
+ showmsg(obj){
576
+ this.rowdata=obj
577
+ this.showdetail = true
578
+ },
579
+ cancel() {
580
+ this.showdetail = false
581
+ },
582
+ initParams () {
583
+ let arr = []
584
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
585
+ let temp = {}
586
+ if(item.value.f_meter_type==='物联网表'){
587
+ temp.label = item.label
588
+ temp.value = item.value.f_meter_brand
589
+ arr.push(temp )
590
+ }
591
+
592
+ })
593
+ this.WarningType = [{label: '全部', value: ''}, ...arr]
594
+
595
+ },
596
+ search(args) {
597
+ this.startDate = this.$refs.paged.$refs.cri.model.startDate
598
+ this.endDate = this.$refs.paged.$refs.cri.model.endDate
599
+ if (this.endDate == '' || this.startDate == '') {
600
+ return this.$showMessage("时间区间的开始和结束时间不能为空!")
601
+ }
602
+ this.condition = args.condition = this.$refs.paged.$refs.cri.condition + `${this.orgCondtionStr}`
603
+ console.log( args.model);
604
+ this.model.search(args.condition, args.model)
605
+ },
606
+ getorg(obj) {
607
+ if (obj.resids.length>0) {
608
+ this.depresid = obj.resids
609
+ this.orgCondtionStr = " and f_orgid in " + plugin.convertToIn(obj.resids)
610
+ }else
611
+ {
612
+ this.depresid = obj.resids
613
+ this.orgCondtionStr = " and f_orgid = " + this.$login.f.orgid
614
+ }
615
+ },
616
+ getdep(obj, val) {
617
+ this.orgCondtionStr = ""
618
+
619
+ this.depname = val[0]
620
+ this.userresid = obj
621
+ this.queryData.f_depid = obj
622
+ console.log(this.queryData.f_depid)
623
+ if (obj.length > 0) {
624
+ this.orgCondtionStr += " and f_depid in " + plugin.convertToIn(obj)
625
+ }
626
+ if (this.depresid && this.depresid.length > 0) {
627
+ this.orgCondtionStr = " and f_orgid in " + plugin.convertToIn(this.depresid) + this.orgCondtionStr
628
+ } else {
629
+ this.orgCondtionStr = " and f_orgid = " + this.$login.f.orgid + this.orgCondtionStr
630
+ }
631
+
632
+ console.log(this.orgCondtionStr);
633
+ },
634
+ // SaveAsFile(str) {
635
+ // this.$showMessage('您是否需要导出本页数据?', ['confirm', 'cancel']).then((res) => {
636
+ // if (res === 'confirm') {
637
+ // let style = '<style>' +
638
+ // 'td {border-width: 1px;padding: 2px;border-style: solid; border-color:black; border-collapse:collapse;} .tdright{text-align: right;} .tdcenter{text-align: center;}</style>';
639
+ // let strHtml = style + document.getElementById(str).innerHTML;
640
+ // console.log(strHtml);
641
+ // let LODOP = getLodop();
642
+ // LODOP.PRINT_INIT('');
643
+ // LODOP.ADD_PRINT_TABLE(5, 5, '99%', '100%', strHtml);
644
+ // LODOP.SAVE_TO_FILE('失联分析.xls')
645
+ // }
646
+ // })
647
+ // },
648
+ clearmsg() {
649
+ this.$refs.paged.$refs.cri.model = {}
650
+ },
651
+
652
+
653
+ close() {
654
+ this.show = false
655
+ },
656
+ // 显示柱状图
657
+ showEcharts() {
658
+ this.echarts = true
659
+ this.isActiveTotalForm = false
660
+ },
661
+ notShowTotalForm() {
662
+ this.echarts = false
663
+ this.isActiveTotalForm = false
664
+ },
665
+ // 不显示柱状图
666
+ notShowEcharts() {
667
+ this.echarts = false
668
+ this.isActiveTotalForm = false
669
+ },
670
+ // 显示汇总数据表格
671
+ showTotalForm() {
672
+ this.echarts = false
673
+ this.isActiveTotalForm = true
674
+ }
675
+ },
676
+ watch: {
677
+ 'data'(val) {
678
+ if (val.f_files_path) {
679
+ this.getFileContent(val.f_files_path)
680
+ } else {
681
+ this.reportStr = null
682
+ }
683
+ },
684
+ sumsmodel:{
685
+ handler: function(val) {
686
+ this.getotherfooter();
687
+ },
688
+ deep: true
689
+ },
690
+ },
691
+ computed: {
692
+ // usertypes () {
693
+ // return this.$appdate.getParams("客户类型")
694
+ // },
695
+ getCondition() {
696
+ let condition=this.$refs.paged.$refs.cri.condition + this.orgCondtionStr
697
+ return {
698
+ condition: condition ,
699
+ startDate:`${this.$refs.paged.$refs.cri.model.startDate}`,
700
+ endDate:`${this.$refs.paged.$refs.cri.model.endDate}`
701
+ }
702
+
703
+ },
704
+ usertypes() {
705
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
706
+ },
707
+ f_outlets() {
708
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('网点查询用')]
709
+ },
710
+ valveStatus() {
711
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]
712
+ },
713
+ getstate() {
714
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('最新状态')]
715
+ },
716
+ userstate() {
717
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
718
+ },
719
+ addressState() {
720
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('是否通气')]
721
+ }
722
+ }
723
+ }
724
+ </script>
725
+ <style>
726
+ .form-input-group label {
727
+ text-align: right;
728
+ width: auto;
729
+ }
730
+
731
+ .mystyle {
732
+ float: right;
733
+ padding-right: 10%;
734
+ }
735
+
736
+ .mystyle1 {
737
+ padding-top: 10px;
738
+
739
+ }
740
+
741
+ .mystyle2 {
742
+ width: 100%;
743
+ height: 35px;
744
+ /*background: #00A3F0;*/
745
+ padding-left: 15px;
746
+ float: left;
747
+ }
748
+
749
+ .datapanel {
750
+ color: #333;
751
+ background-color: white;
752
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
753
+ padding: 10px 30px 10px 30px;
754
+ border-radius: 15px;
755
+ }
756
+ </style>
@@ -6,4 +6,6 @@ export default function () {
6
6
  Vue.component('gas-price-group', (resolve) => {
7
7
  require(['./GasPriceGroup'], resolve)
8
8
  })
9
+ // 失联查询
10
+ Vue.component('lost-contact-analysis-list', (resolve) => { require(['./LostContactAnalysisList'], resolve) })
9
11
  }