manage-client 4.0.73 → 4.0.74

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.
@@ -0,0 +1,423 @@
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main" @keyup.enter="search">
4
+ <div class="flex">
5
+ <div style="flex:1;" class="flex" v-if="!show">
6
+ <criteria-paged :model="model" v-ref:paged>
7
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
8
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
9
+ <div class="row">
10
+ <div class="col-sm-2 form-group">
11
+ <label for="startDate" class="font_normal_body">开始日期</label>
12
+ <datepicker id="startDate" placeholder="开始日期" style="width:60%"
13
+ v-model="model.startDate"
14
+ :value.sync="model.startDate"
15
+ :format="'yyyy-MM-dd'"
16
+ :show-reset-button="true"
17
+ condition="f_band_time >= '{}'">
18
+ </datepicker>
19
+ </div>
20
+ <div class="col-sm-2 form-group">
21
+ <label for="endDate" class="font_normal_body">结束日期</label>
22
+ <datepicker id="endDate" placeholder="结束日期" style="width:60%"
23
+ v-model="model.endDate"
24
+ :value.sync="model.endDate"
25
+ :format="'yyyy-MM-dd'"
26
+ :show-reset-button="true"
27
+ condition="f_band_time <= '{}'">
28
+ </datepicker>
29
+ </div>
30
+ <div class="col-sm-2 form-group">
31
+ <label class="font_normal_body">客户编号</label>
32
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
33
+ condition="f_userinfo_code = '{}' " placeholder="客户编号">
34
+ </div>
35
+ <div class="col-sm-2 form-group">
36
+ <label class="font_normal_body">客户名称</label>
37
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
38
+ condition="f_user_name like '%{}%'" placeholder="客户名称">
39
+ </div>
40
+ <div class="span" style="float:right;">
41
+ <button class="button_search button_spacing" @click="search()">查询</button>
42
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
43
+ <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
44
+
45
+ <export-excel :data="$parent.$parent.getCondition"
46
+ :field="$parent.$parent.getExportField"
47
+ sqlurl="api/af-revenue/logic/openapi/exportfile" sql-name="wechatQuery" template-name='微信查询导出'
48
+ :choose-col="true"></export-excel>
49
+
50
+ <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>
51
+ </div>
52
+ </div>
53
+ <div class="row" v-show="$parent.$parent.criteriaShow">
54
+ <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"></res-select-group>
55
+ <div class="col-sm-2 form-group">
56
+ <label class="font_normal_body">客户电话</label>
57
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_phone"
58
+ condition="f_user_phone like '%{}%'" placeholder="客户电话">
59
+ </div>
60
+ <div class="col-sm-2 form-group">
61
+ <label class="font_normal_body">客户地址</label>
62
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
63
+ condition="f_address like '%{}%'" placeholder='客户地址'>
64
+ </div>
65
+ <div class="col-sm-2 form-group" >
66
+ <label class="font_normal_body">气表品牌</label>
67
+ <v-select :value.sync="model.gasbrand" v-model="model.gasbrand"
68
+ :options='$parent.$parent.meterbrands' placeholder='气表品牌' close-on-select
69
+ v-model='$parent.$parent.gasbrand'
70
+ condition="f_meter_brand = '{}'"
71
+ ></v-select>
72
+ </div>
73
+ <div class="col-sm-2 form-group">
74
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
75
+ <v-select :value.sync="model.f_residential_area"
76
+ class="select_list select"
77
+ v-model="model.f_residential_area"
78
+ style="width: 60%"
79
+ multiple
80
+ condition="f_residential_area in {}"
81
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
82
+ close-on-select>
83
+
84
+ </v-select>
85
+ </div>
86
+ <div class="col-sm-2 form-group">
87
+ <label class="font_normal_body">区期</label>
88
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_area_period"
89
+ condition="f_area_period = '{}'" placeholder='区期'>
90
+ </div>
91
+ <div class="col-sm-2 form-group">
92
+ <label class="font_normal_body">楼号</label>
93
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_building"
94
+ condition="f_building = '{}'" placeholder='楼号'>
95
+ </div>
96
+ <div class="col-sm-2 form-group">
97
+ <label class="font_normal_body">单元</label>
98
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_unit"
99
+ condition="f_unit = '{}'" placeholder='单元'>
100
+ </div>
101
+ <div class="col-sm-2 form-group">
102
+ <label class="font_normal_body">楼层</label>
103
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_floor"
104
+ condition="f_floor = '{}'" placeholder='楼层'>
105
+ </div>
106
+ <div class="col-sm-2 form-group">
107
+ <label class="font_normal_body">房间号</label>
108
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_room"
109
+ condition="f_room = '{}'" placeholder='房间号'>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </criteria>
114
+
115
+ <data-grid :model="model" partial='list' class="list_area table_sy" @dblclick="$parent.dblclick" v-ref:grid>
116
+ <template partial='head'>
117
+ <tr>
118
+ <th>
119
+ <nobr>客户编号</nobr>
120
+ </th>
121
+ <th>
122
+ <nobr>客户名称</nobr>
123
+ </th>
124
+ <th>
125
+ <nobr>气表品牌</nobr>
126
+ </th>
127
+ <th>
128
+ <nobr>气表类型</nobr>
129
+ </th>
130
+ <th>
131
+ <nobr>客户电话</nobr>
132
+ </th>
133
+ <th>
134
+ <nobr>微信标识</nobr>
135
+ </th>
136
+ <th>
137
+ <nobr>绑定状态</nobr>
138
+ </th>
139
+ <th>
140
+ <nobr>小区</nobr>
141
+ </th>
142
+ <th>
143
+ <nobr>客户地址</nobr>
144
+ </th>
145
+ <th>
146
+ <nobr>操作</nobr>
147
+ </th>
148
+ </tr>
149
+ </template>
150
+ <template partial='body'>
151
+ <td :class="'back-blue'" style="text-align: center;" >
152
+ <nobr>
153
+ {{row.f_userinfo_code}}
154
+ </nobr> </td>
155
+ <td :class="'back-blue'" style="text-align: center;">
156
+ <nobr>{{row.f_user_name}}</nobr>
157
+ </td>
158
+ <td :class="'back-blue'" style="text-align: center;">
159
+ <nobr>{{row.f_meter_brand}}</nobr>
160
+ </td>
161
+ <td :class="'back-blue'" style="text-align: center;">
162
+ <nobr>{{row.f_meter_type}}</nobr>
163
+ </td>
164
+ <td :class="'back-blue'" style="text-align: center;">
165
+ <nobr>{{row.f_user_phone}}</nobr>
166
+ </td>
167
+ <td :class="'back-blue'" style="text-align: center;">
168
+ <nobr>{{row.f_open_id}}</nobr>
169
+ </td>
170
+ <td :class="'back-blue'" style="text-align: center;">
171
+ <nobr>{{row.f_band_state}}</nobr>
172
+ </td>
173
+ <td :class="'back-blue'" style="text-align: center;">
174
+ <nobr>{{row.f_residential_area}}</nobr>
175
+ </td>
176
+ <td :class="'back-blue'" style="text-align: center;">
177
+ <nobr>{{row.f_address}}</nobr>
178
+ </td>
179
+ <td style="text-align: center;">
180
+ <button type="button" name="button" class="btn btn-link"
181
+ @click="$parent.$parent.$parent.wechatbing(row)">解绑
182
+ </button>
183
+ </td>
184
+ </template>
185
+ </data-grid>
186
+ </criteria-paged>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ </template>
192
+
193
+ <script>
194
+ import {HttpResetClass, PagedList} from 'vue-client'
195
+ import defaultPrint from '../config/DefaultPrint'
196
+ import exportConfig from '../config/exportConfig'
197
+
198
+ let readySomething = async function (self) {
199
+
200
+
201
+ await self.$MagLoadParams.loadParam()
202
+ await self.$LoadParams.loadParam(self.f_filialeid)
203
+ self.loadMeterBooks()
204
+ self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString() + ' 00:00:00'
205
+ self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString() + ' 23:59:59'
206
+ await self.$refs.paged.$refs.cri.search()
207
+ // self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
208
+
209
+ }
210
+
211
+ export default {
212
+ title: '微信绑定查询',
213
+ data() {
214
+ return {
215
+ model: new PagedList('api/af-revenue/sql/wechatQuery', 20, {}),
216
+ criteriaShow: false,
217
+ orgCondtionStr: '',
218
+ modelval: [],
219
+ residentialArea: [],
220
+ printshow: false,
221
+ all: false,
222
+ fields: {},
223
+ meterbrands:[{label: '全部',value: ''}],
224
+ thead: '',
225
+ tfoot: '',
226
+ area: [],
227
+ //合计数据
228
+ // sumsmodel: {},
229
+ initres: {
230
+ org:[this.$login.f.orgid],
231
+ dep:[],
232
+ user:[],
233
+ },
234
+ userdetail: {
235
+ show: false,
236
+ f_userinfo_code: '',
237
+ f_filialeids: ''
238
+ },
239
+ show:false,
240
+ rowdata:{},
241
+ sliceArea: []
242
+ }
243
+ },
244
+ ready() {
245
+ this.getaddress()
246
+ readySomething(this).then(() => {
247
+ this.$emit('ready')
248
+ }).catch((error) => {
249
+ this.$emit('error', error)
250
+ })
251
+ this.initAreas(this.$login.f.orgid)
252
+ },
253
+ methods: {
254
+ loadMeterBooks(){
255
+ let meterbrand = this.$GetSaleParam.getGasbrand()
256
+ for(let row of meterbrand){
257
+ this.meterbrands.push({label: row.label,value: row.value.f_meter_brand})
258
+ }
259
+ },
260
+ async getaddress(){
261
+ console.log('开始获取小区')
262
+ let HttpReset = new HttpResetClass()
263
+ var data = await HttpReset.load('POST', 'api/af-revenue/sql/manage_getarealist', {
264
+ data: {
265
+ condition: `1=1 and s.f_filialeid = '${this.$login.f.orgid}'`
266
+ }
267
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
268
+ console.log('小区',data)
269
+ let house = []
270
+ for (let row of data.data){
271
+ console.log('开始保存小区')
272
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
273
+ }
274
+ this.residentialArea = house
275
+ },
276
+ //把数据库查询数据转换为下拉数据
277
+ calculate(rows){
278
+ let data = []
279
+ rows.forEach((row, n) => {
280
+ data[n] = {label: row.f_residential_area, value: row.id}
281
+ })
282
+ return data
283
+ },
284
+ search(){
285
+ this.$refs.paged.$refs.cri.search()
286
+ },
287
+ wechatbing(row) {
288
+ console.log('微信解绑用户', row)
289
+ let param = {
290
+ id: row.id
291
+ }
292
+ this.$resetpost('api/af-revenue/logic/wechatbind', {data: param}, {warnMsg: '确定对这条记录进行解绑吗?'}).then(() => {
293
+ this.$refs.paged.$refs.cri.search()
294
+ })
295
+ },
296
+ cancel(obj) {
297
+ this.show = false
298
+ },
299
+ async initAreas (val) {
300
+
301
+ if (val) {
302
+ let getAllArea = await this.$resetpost('/rs/search', {
303
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
304
+ userid: this.$login.f.id
305
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
306
+
307
+ let arr = getAllArea.data.filter((res) => {
308
+ return res.parentid == val
309
+ })
310
+ console.log('过滤之后的片区', arr)
311
+ this.sliceArea = []
312
+ this.sliceArea.push({label: "全部", value: ""})
313
+ arr.forEach((res) => {
314
+ this.sliceArea.push({label: res.name, value: res.name})
315
+ })
316
+ console.log(this.sliceArea)
317
+ }
318
+ },
319
+ selfSearch(args) {
320
+ if (!this.orgCondtionStr) {
321
+ args.condition = `${args.condition}` + " and f_orgid = " + this.$login.f.orgid
322
+ } else {
323
+ args.condition = `${args.condition}` + this.orgCondtionStr
324
+ }
325
+ this.model.search(args.condition, args.model)
326
+ },
327
+ clear() {
328
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
329
+ this.$refs.paged.$refs.cri.model[key] = []
330
+ })
331
+ },
332
+ hidden() {
333
+ this.criteriaShow = !this.criteriaShow
334
+ },
335
+ getRes(obj) {
336
+ this.orgCondtionStr = obj
337
+ },
338
+ stamp() {
339
+ this.all = false
340
+ //默认选择要打印的列
341
+ this.modelval = defaultPrint.config
342
+ this.fields = this.getfield
343
+ console.log('所有打印字段', this.fields)
344
+ this.printshow = true
345
+ this.put()
346
+ },
347
+ put() {
348
+ // 对Modelval进行排序
349
+ this.sortModelval()
350
+ this.thead = `<tr><th colspan=${this.modelval.length}>用户查询统计报表</th></tr><tr>`
351
+ for (let key of this.modelval) {
352
+ this.thead += '<th>' + this.fields[key] + '</th>'
353
+ }
354
+ this.thead += '</tr>'
355
+ },
356
+ print() {
357
+ this.$refs.print.PrintAsFile()
358
+ this.printshow = false
359
+ },
360
+ close() {
361
+ this.printshow = false
362
+ },
363
+ // 对选择的列进行排序
364
+ sortModelval() {
365
+ let sortModel = []
366
+ Object.keys(this.fields).forEach((key) => {
367
+ if (this.modelval.includes(key)) {
368
+ sortModel.push(key)
369
+ }
370
+ })
371
+ this.modelval = sortModel
372
+ console.log('选择的打印的字段', this.modelval)
373
+ },
374
+ dblclick(row, index) {
375
+ console.log('双击之后数据', row, index)
376
+ this.userdetail.show = true
377
+ this.userdetail.f_userinfo_code = row.f_userinfo_code
378
+ this.userdetail.f_filialeids = row.f_filialeids
379
+ }
380
+ },
381
+ watch: {
382
+ 'all'(val) {
383
+ if (val) {
384
+ this.modelval = this.bodyData
385
+ } else {
386
+ this.modelval = defaultPrint.config
387
+ this.put()
388
+ }
389
+ },
390
+ 'modelval.length'() {
391
+ this.put()
392
+ },
393
+ },
394
+ computed: {
395
+ authArr () {
396
+ return this.$login.r ? this.$login.r : []
397
+ },
398
+
399
+ getCondition() {
400
+ return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
401
+ },
402
+ getfield() {
403
+ let data = {}
404
+ this.bodyData.forEach((value, index) => {
405
+ data[this.bodyData[index]] = this.headData[index]
406
+ })
407
+ return data
408
+ },
409
+ getExportField() {
410
+ return exportConfig.wechatConfig
411
+ }
412
+ }
413
+ }
414
+ </script>
415
+ <style>
416
+ .back-red{ /* 红色背景 */
417
+ background-color: #F6C6CE;
418
+ }
419
+ .back-blue{ /* 蓝色背景 */
420
+
421
+ }
422
+ </style>
423
+
@@ -1,16 +1,19 @@
1
- // 分公司特殊组件页面注册
2
- import Vue from 'vue'
3
-
4
- export default function () {
5
- Vue.component('charge-query', (resolve) => { require(['./ChargeQuery'], resolve) })
6
- // 打印
7
- Vue.component('print-table', (resolve) => { require(['./PrintTableManage'], resolve) })
8
- // 其他收费查询
9
- Vue.component('other-charge-query', (resolve) => {
10
- require(['./OtherChargeQuery'], resolve)
11
- })
12
- // 综合档案信息查询
13
- Vue.component('record-info-query', (resolve) => {
14
- require(['./RecordInfoQuery'], resolve)
15
- })
16
- }
1
+ // 分公司特殊组件页面注册
2
+ import Vue from 'vue'
3
+
4
+ export default function () {
5
+ Vue.component('charge-query', (resolve) => { require(['./ChargeQuery'], resolve) })
6
+ // 打印
7
+ Vue.component('print-table', (resolve) => { require(['./PrintTableManage'], resolve) })
8
+ // 其他收费查询
9
+ Vue.component('other-charge-query', (resolve) => {
10
+ require(['./OtherChargeQuery'], resolve)
11
+ })
12
+ // 综合档案信息查询
13
+ Vue.component('record-info-query', (resolve) => {
14
+ require(['./RecordInfoQuery'], resolve)
15
+ })
16
+ Vue.component('wechat-bind', (resolve) => {
17
+ require(['./businessquery/weChatBind'], resolve)
18
+ })
19
+ }
package/src/main.js CHANGED
@@ -1,70 +1,70 @@
1
- import Vue from 'vue'
2
- import App from './App'
3
- import { all } from 'vue-client'
4
-
5
- // import { sale } from 'sale-client'
6
- import { system } from 'system-clients'
7
- import { ldap } from 'ldap-clients'
8
- import saleManage from './saleManage'
9
- import ShanXianSaleManage from './filiale/yangchun/sale'
10
- import ShanXianwebSaleManage from './filiale/yangchun/webmeterManage'
11
- import webmeterManage from './webmeterManage'
12
- import reportManage from './reportManage'
13
- import newmanage from './newmanage'
14
- import ManageHome from './ManageHome'
15
- import echarts from 'echarts'
16
- import AMap from 'vue-amap'
17
-
18
- Vue.config.silent = true
19
- // Vue.mmType = 'AES'
20
-
21
- Vue.use(AMap)
22
-
23
- // 初始化vue-amap
24
- AMap.initAMapApiLoader({
25
- // 高德key
26
- key: '3cec9ae8e2349207f7ac29279e3f4abe',
27
- // 插件集合 (插件按需引入)
28
- plugin: [
29
- 'AMap.Autocomplete', // 输入提示插件
30
- 'AMap.PlaceSearch', // POI搜索插件
31
- 'AMap.Scale', // 右下角缩略图插件 比例尺
32
- 'AMap.OverView', // 地图鹰眼插件
33
- 'AMap.ToolBar', // 地图工具条0
34
- 'AMap.MapType', // 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
35
- 'AMap.PolyEditor', // 编辑 折线多,边形
36
- 'AMap.CircleEditor', // 圆形编辑器插件
37
- 'AMap.Geolocation' // 定位控件,用来获取和展示用户主机所在的经纬度位置
38
- ],
39
- uiVersion: '1.0'
40
- })
41
- /** **************************通用组件******************************/
42
-
43
- Vue.prototype.$echarts = echarts
44
- all()
45
- // sale()
46
- ldap()
47
- system(false)
48
-
49
- saleManage()
50
- webmeterManage()
51
- ManageHome()
52
- newmanage()
53
- ShanXianwebSaleManage()
54
- reportManage()
55
- ShanXianSaleManage()
56
- require('system-clients/src/styles/less/bootstrap.less')
57
- require('./components/qinhua/Style/qinhuaStyle.less')
58
- // require('./bootstrap/less/manageStyle/manageChile.less')
59
- // require('./bootstrap/less/manageStyle/safeStyle.less')
60
-
61
- // 大屏展示要放开的样式
62
- // require('system-clients/src/styles/less/manageStyle/manageChile.less')
63
- // require('system-clients/src/styles/less/manageStyle/safeStyle.less')
64
- // require('system-clients/src/styles/less/manageStyle/manageStyle.less')
65
-
66
- new Vue({
67
- el: 'body',
68
- components: { App }
69
- })
70
-
1
+ import Vue from 'vue'
2
+ import App from './App'
3
+ import { all } from 'vue-client'
4
+
5
+ // import { sale } from 'sale-client'
6
+ import { system } from 'system-clients'
7
+ import { ldap } from 'ldap-clients'
8
+ import saleManage from './saleManage'
9
+ import ShanXianSaleManage from './filiale/bayan/sale'
10
+ import ShanXianwebSaleManage from './filiale/yangchun/webmeterManage'
11
+ import webmeterManage from './webmeterManage'
12
+ import reportManage from './reportManage'
13
+ import newmanage from './newmanage'
14
+ import ManageHome from './ManageHome'
15
+ import echarts from 'echarts'
16
+ import AMap from 'vue-amap'
17
+
18
+ Vue.config.silent = true
19
+ // Vue.mmType = 'AES'
20
+
21
+ Vue.use(AMap)
22
+
23
+ // 初始化vue-amap
24
+ AMap.initAMapApiLoader({
25
+ // 高德key
26
+ key: '3cec9ae8e2349207f7ac29279e3f4abe',
27
+ // 插件集合 (插件按需引入)
28
+ plugin: [
29
+ 'AMap.Autocomplete', // 输入提示插件
30
+ 'AMap.PlaceSearch', // POI搜索插件
31
+ 'AMap.Scale', // 右下角缩略图插件 比例尺
32
+ 'AMap.OverView', // 地图鹰眼插件
33
+ 'AMap.ToolBar', // 地图工具条0
34
+ 'AMap.MapType', // 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
35
+ 'AMap.PolyEditor', // 编辑 折线多,边形
36
+ 'AMap.CircleEditor', // 圆形编辑器插件
37
+ 'AMap.Geolocation' // 定位控件,用来获取和展示用户主机所在的经纬度位置
38
+ ],
39
+ uiVersion: '1.0'
40
+ })
41
+ /** **************************通用组件******************************/
42
+
43
+ Vue.prototype.$echarts = echarts
44
+ all()
45
+ // sale()
46
+ ldap()
47
+ system(false)
48
+
49
+ saleManage()
50
+ webmeterManage()
51
+ ManageHome()
52
+ newmanage()
53
+ ShanXianwebSaleManage()
54
+ reportManage()
55
+ ShanXianSaleManage()
56
+ require('system-clients/src/styles/less/bootstrap.less')
57
+ require('./components/qinhua/Style/qinhuaStyle.less')
58
+ // require('./bootstrap/less/manageStyle/manageChile.less')
59
+ // require('./bootstrap/less/manageStyle/safeStyle.less')
60
+
61
+ // 大屏展示要放开的样式
62
+ // require('system-clients/src/styles/less/manageStyle/manageChile.less')
63
+ // require('system-clients/src/styles/less/manageStyle/safeStyle.less')
64
+ // require('system-clients/src/styles/less/manageStyle/manageStyle.less')
65
+
66
+ new Vue({
67
+ el: 'body',
68
+ components: { App }
69
+ })
70
+
File without changes
File without changes