manage-client 4.0.60 → 4.0.61
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 +1 -1
- package/src/components/SellReport/PublicGasPrice2Report.vue +5 -5
- package/src/filiale/baiyin/businessquery/weChatBind.vue +358 -0
- package/src/filiale/baiyin/sale.js +9 -0
- package/src/filiale/bayan/ManageGasSaleFee.vue +178 -0
- package/src/filiale/bayan/ManageMaterialUsageDetails.vue +2 -2
- package/src/filiale/bayan/ManageOtherCharge.vue +178 -0
- package/src/filiale/bayan/reportManage.js +9 -1
- package/src/filiale/jiaxian/DayReportList.vue +8 -1
- package/src/filiale/jiaxian/config/exportConfig.js +14 -0
- package/src/filiale/qianneng/RecordInfoQuery.vue +1 -1
package/package.json
CHANGED
|
@@ -73,23 +73,23 @@
|
|
|
73
73
|
<table class='tableprint' style="margin: 0px auto" v-if="!$parent.data.f_files_path">
|
|
74
74
|
<thead>
|
|
75
75
|
<tr>
|
|
76
|
-
<th colspan='
|
|
76
|
+
<th colspan='8' style="font-weight: bold; text-align: left;">
|
|
77
77
|
<h3 style="text-align: center">气费分项统计报表</h3>
|
|
78
78
|
</th>
|
|
79
79
|
</tr>
|
|
80
80
|
<tr>
|
|
81
|
-
<th colspan='
|
|
81
|
+
<th colspan='8' style="font-weight: normal; text-align: center;">
|
|
82
82
|
开始时间:{{model.model.startDate}}
|
|
83
83
|
结束时间:{{ model.model.endDate }}
|
|
84
84
|
</th>
|
|
85
85
|
</tr>
|
|
86
86
|
<tr>
|
|
87
|
-
<th colspan='
|
|
87
|
+
<th colspan='8' style="font-weight: normal; text-align: center;">
|
|
88
88
|
打印时间:{{{$parent.printTime}}}
|
|
89
89
|
</th>
|
|
90
90
|
</tr>
|
|
91
91
|
<tr>
|
|
92
|
-
<th colspan='
|
|
92
|
+
<th colspan='8' style="font-weight: normal; text-align: center;">
|
|
93
93
|
<div>
|
|
94
94
|
<span v-show="$parent.orgname.trim()!=''">公司:{{$parent.orgname}}</span>
|
|
95
95
|
<span v-show="$parent.depname.trim()!=''"> 部门:{{$parent.depname}}</span>
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
</tr>
|
|
99
99
|
</thead>
|
|
100
100
|
<tr>
|
|
101
|
-
<td colspan='
|
|
101
|
+
<td colspan='8' style="font-weight: normal;" id="test">
|
|
102
102
|
{{{ model.data.substring(26,model.data.length-8) }}}
|
|
103
103
|
</td>
|
|
104
104
|
</tr>
|
|
@@ -0,0 +1,358 @@
|
|
|
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/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>
|
|
74
|
+
</div>
|
|
75
|
+
</criteria>
|
|
76
|
+
|
|
77
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" @dblclick="$parent.dblclick" v-ref:grid>
|
|
78
|
+
<template partial='head'>
|
|
79
|
+
<tr>
|
|
80
|
+
<th>
|
|
81
|
+
<nobr>客户编号</nobr>
|
|
82
|
+
</th>
|
|
83
|
+
<th>
|
|
84
|
+
<nobr>客户名称</nobr>
|
|
85
|
+
</th>
|
|
86
|
+
<th>
|
|
87
|
+
<nobr>气表品牌</nobr>
|
|
88
|
+
</th>
|
|
89
|
+
<th>
|
|
90
|
+
<nobr>气表类型</nobr>
|
|
91
|
+
</th>
|
|
92
|
+
<th>
|
|
93
|
+
<nobr>客户电话</nobr>
|
|
94
|
+
</th>
|
|
95
|
+
<th>
|
|
96
|
+
<nobr>微信标识</nobr>
|
|
97
|
+
</th>
|
|
98
|
+
<th>
|
|
99
|
+
<nobr>绑定状态</nobr>
|
|
100
|
+
</th>
|
|
101
|
+
<th>
|
|
102
|
+
<nobr>客户地址</nobr>
|
|
103
|
+
</th>
|
|
104
|
+
<th>
|
|
105
|
+
<nobr>操作</nobr>
|
|
106
|
+
</th>
|
|
107
|
+
</tr>
|
|
108
|
+
</template>
|
|
109
|
+
<template partial='body'>
|
|
110
|
+
<td :class="'back-blue'" style="text-align: center;" >
|
|
111
|
+
<nobr>
|
|
112
|
+
{{row.f_userinfo_code}}
|
|
113
|
+
</nobr> </td>
|
|
114
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
115
|
+
<nobr>{{row.f_user_name}}</nobr>
|
|
116
|
+
</td>
|
|
117
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
118
|
+
<nobr>{{row.f_meter_brand}}</nobr>
|
|
119
|
+
</td>
|
|
120
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
121
|
+
<nobr>{{row.f_meter_type}}</nobr>
|
|
122
|
+
</td>
|
|
123
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
124
|
+
<nobr>{{row.f_user_phone}}</nobr>
|
|
125
|
+
</td>
|
|
126
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
127
|
+
<nobr>{{row.f_open_id}}</nobr>
|
|
128
|
+
</td>
|
|
129
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
130
|
+
<nobr>{{row.f_band_state}}</nobr>
|
|
131
|
+
</td>
|
|
132
|
+
<td :class="'back-blue'" style="text-align: center;">
|
|
133
|
+
<nobr>{{row.f_address}}</nobr>
|
|
134
|
+
</td>
|
|
135
|
+
<td style="text-align: center;">
|
|
136
|
+
<button type="button" name="button" class="btn btn-link"
|
|
137
|
+
@click="$parent.$parent.$parent.wechatbing(row)">解绑
|
|
138
|
+
</button>
|
|
139
|
+
</td>
|
|
140
|
+
</template>
|
|
141
|
+
</data-grid>
|
|
142
|
+
</criteria-paged>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</template>
|
|
148
|
+
|
|
149
|
+
<script>
|
|
150
|
+
import {HttpResetClass, PagedList} from 'vue-client'
|
|
151
|
+
import defaultPrint from '../../../components/sale/config/DefaultPrint'
|
|
152
|
+
import exportConfig from "../../../components/sale/config/exportConfig"
|
|
153
|
+
|
|
154
|
+
let readySomething = async function (self) {
|
|
155
|
+
self.loadMeterBooks()
|
|
156
|
+
self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString() + ' 00:00:00'
|
|
157
|
+
self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString() + ' 23:59:59'
|
|
158
|
+
await self.$refs.paged.$refs.cri.search()
|
|
159
|
+
// self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
|
|
160
|
+
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export default {
|
|
164
|
+
title: '微信绑定查询',
|
|
165
|
+
data() {
|
|
166
|
+
return {
|
|
167
|
+
model: new PagedList('api/af-revenue/sql/wechatQuery', 20, {}),
|
|
168
|
+
criteriaShow: false,
|
|
169
|
+
orgCondtionStr: '',
|
|
170
|
+
modelval: [],
|
|
171
|
+
printshow: false,
|
|
172
|
+
all: false,
|
|
173
|
+
fields: {},
|
|
174
|
+
meterbrands:[{label: '全部',value: ''}],
|
|
175
|
+
thead: '',
|
|
176
|
+
tfoot: '',
|
|
177
|
+
area: [],
|
|
178
|
+
//合计数据
|
|
179
|
+
// sumsmodel: {},
|
|
180
|
+
initres: {
|
|
181
|
+
org:[this.$login.f.f_orgids.slice(0, -1)],
|
|
182
|
+
dep:[],
|
|
183
|
+
user:[],
|
|
184
|
+
},
|
|
185
|
+
userdetail: {
|
|
186
|
+
show: false,
|
|
187
|
+
f_userinfo_code: '',
|
|
188
|
+
f_filialeids: ''
|
|
189
|
+
},
|
|
190
|
+
show:false,
|
|
191
|
+
rowdata:{},
|
|
192
|
+
sliceArea: [],
|
|
193
|
+
f_orgstr : this.$login.f.f_orgids.slice(0, -1)
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
ready() {
|
|
197
|
+
readySomething(this).then(() => {
|
|
198
|
+
this.$emit('ready')
|
|
199
|
+
}).catch((error) => {
|
|
200
|
+
this.$emit('error', error)
|
|
201
|
+
})
|
|
202
|
+
this.initAreas(this.f_orgstr)
|
|
203
|
+
},
|
|
204
|
+
methods: {
|
|
205
|
+
loadMeterBooks(){
|
|
206
|
+
let meterbrand = this.$GetSaleParam.getGasbrand()
|
|
207
|
+
for(let row of meterbrand){
|
|
208
|
+
this.meterbrands.push({label: row.label,value: row.value.f_meter_brand})
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
//把数据库查询数据转换为下拉数据
|
|
212
|
+
calculate(rows){
|
|
213
|
+
let data = []
|
|
214
|
+
rows.forEach((row, n) => {
|
|
215
|
+
data[n] = {label: row.f_residential_area, value: row.id}
|
|
216
|
+
})
|
|
217
|
+
return data
|
|
218
|
+
},
|
|
219
|
+
search(){
|
|
220
|
+
this.$refs.paged.$refs.cri.search()
|
|
221
|
+
},
|
|
222
|
+
wechatbing(row) {
|
|
223
|
+
console.log('微信解绑用户', row)
|
|
224
|
+
let param = {
|
|
225
|
+
id: row.id
|
|
226
|
+
}
|
|
227
|
+
this.$resetpost('api/af-revenue/logic/wechatbind', {data: param}, {warnMsg: '确定对这条记录进行解绑吗?'}).then(() => {
|
|
228
|
+
this.$refs.paged.$refs.cri.search()
|
|
229
|
+
})
|
|
230
|
+
},
|
|
231
|
+
cancel(obj) {
|
|
232
|
+
this.show = false
|
|
233
|
+
},
|
|
234
|
+
async initAreas (val) {
|
|
235
|
+
|
|
236
|
+
if (val) {
|
|
237
|
+
let getAllArea = await this.$resetpost('/rs/search', {
|
|
238
|
+
source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
|
|
239
|
+
userid: this.$login.f.id
|
|
240
|
+
}, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
|
|
241
|
+
|
|
242
|
+
let arr = getAllArea.data.filter((res) => {
|
|
243
|
+
return res.parentid == val
|
|
244
|
+
})
|
|
245
|
+
console.log('过滤之后的片区', arr)
|
|
246
|
+
this.sliceArea = []
|
|
247
|
+
this.sliceArea.push({label: "全部", value: ""})
|
|
248
|
+
arr.forEach((res) => {
|
|
249
|
+
this.sliceArea.push({label: res.name, value: res.name})
|
|
250
|
+
})
|
|
251
|
+
console.log(this.sliceArea)
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
selfSearch(args) {
|
|
255
|
+
if (!this.orgCondtionStr) {
|
|
256
|
+
args.condition = `${args.condition}` + " and f_orgid = " + this.f_orgstr
|
|
257
|
+
} else {
|
|
258
|
+
args.condition = `${args.condition}` + this.orgCondtionStr
|
|
259
|
+
}
|
|
260
|
+
this.model.search(args.condition, args.model)
|
|
261
|
+
},
|
|
262
|
+
clear() {
|
|
263
|
+
Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
|
|
264
|
+
this.$refs.paged.$refs.cri.model[key] = []
|
|
265
|
+
})
|
|
266
|
+
},
|
|
267
|
+
hidden() {
|
|
268
|
+
this.criteriaShow = !this.criteriaShow
|
|
269
|
+
},
|
|
270
|
+
getRes(obj) {
|
|
271
|
+
this.orgCondtionStr = obj
|
|
272
|
+
},
|
|
273
|
+
stamp() {
|
|
274
|
+
this.all = false
|
|
275
|
+
//默认选择要打印的列
|
|
276
|
+
this.modelval = defaultPrint.config
|
|
277
|
+
this.fields = this.getfield
|
|
278
|
+
console.log('所有打印字段', this.fields)
|
|
279
|
+
this.printshow = true
|
|
280
|
+
this.put()
|
|
281
|
+
},
|
|
282
|
+
put() {
|
|
283
|
+
// 对Modelval进行排序
|
|
284
|
+
this.sortModelval()
|
|
285
|
+
this.thead = `<tr><th colspan=${this.modelval.length}>用户查询统计报表</th></tr><tr>`
|
|
286
|
+
for (let key of this.modelval) {
|
|
287
|
+
this.thead += '<th>' + this.fields[key] + '</th>'
|
|
288
|
+
}
|
|
289
|
+
this.thead += '</tr>'
|
|
290
|
+
},
|
|
291
|
+
print() {
|
|
292
|
+
this.$refs.print.PrintAsFile()
|
|
293
|
+
this.printshow = false
|
|
294
|
+
},
|
|
295
|
+
close() {
|
|
296
|
+
this.printshow = false
|
|
297
|
+
},
|
|
298
|
+
// 对选择的列进行排序
|
|
299
|
+
sortModelval() {
|
|
300
|
+
let sortModel = []
|
|
301
|
+
Object.keys(this.fields).forEach((key) => {
|
|
302
|
+
if (this.modelval.includes(key)) {
|
|
303
|
+
sortModel.push(key)
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
this.modelval = sortModel
|
|
307
|
+
console.log('选择的打印的字段', this.modelval)
|
|
308
|
+
},
|
|
309
|
+
dblclick(row, index) {
|
|
310
|
+
console.log('双击之后数据', row, index)
|
|
311
|
+
this.userdetail.show = true
|
|
312
|
+
this.userdetail.f_userinfo_code = row.f_userinfo_code
|
|
313
|
+
this.userdetail.f_filialeids = row.f_filialeids
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
watch: {
|
|
317
|
+
'all'(val) {
|
|
318
|
+
if (val) {
|
|
319
|
+
this.modelval = this.bodyData
|
|
320
|
+
} else {
|
|
321
|
+
this.modelval = defaultPrint.config
|
|
322
|
+
this.put()
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
'modelval.length'() {
|
|
326
|
+
this.put()
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
computed: {
|
|
330
|
+
authArr () {
|
|
331
|
+
return this.$login.r ? this.$login.r : []
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
getCondition() {
|
|
335
|
+
return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
|
|
336
|
+
},
|
|
337
|
+
getfield() {
|
|
338
|
+
let data = {}
|
|
339
|
+
this.bodyData.forEach((value, index) => {
|
|
340
|
+
data[this.bodyData[index]] = this.headData[index]
|
|
341
|
+
})
|
|
342
|
+
return data
|
|
343
|
+
},
|
|
344
|
+
getExportField() {
|
|
345
|
+
return exportConfig.wechatConfig
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
</script>
|
|
350
|
+
<style>
|
|
351
|
+
.back-red{ /* 红色背景 */
|
|
352
|
+
background-color: #F6C6CE;
|
|
353
|
+
}
|
|
354
|
+
.back-blue{ /* 蓝色背景 */
|
|
355
|
+
|
|
356
|
+
}
|
|
357
|
+
</style>
|
|
358
|
+
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basic-main" style="height: 98%">
|
|
3
|
+
<criteria-paged :model="model" :pager='false' v-ref:paged>
|
|
4
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
|
|
5
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial >
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="col-sm-2" >
|
|
8
|
+
<label class="font_normal_body" for="startDate">开始日期:</label>
|
|
9
|
+
<datepicker id="startDate" placeholder="开始日期" style="width: 60%"
|
|
10
|
+
v-model="model.startDate"
|
|
11
|
+
:value.sync="model.startDate"
|
|
12
|
+
:disabled-days-of-Week="[]"
|
|
13
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
14
|
+
:show-reset-button="reset">
|
|
15
|
+
</datepicker>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-sm-2" >
|
|
18
|
+
<label class="font_normal_body" for="endDate">结束日期:</label>
|
|
19
|
+
<datepicker id="endDate" placeholder="结束日期" style="width: 60%"
|
|
20
|
+
v-model="model.endDate"
|
|
21
|
+
:value.sync="model.endDate"
|
|
22
|
+
:disabled-days-of-Week="[]"
|
|
23
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
24
|
+
:show-reset-button="reset">
|
|
25
|
+
</datepicker>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="col-sm-2">
|
|
28
|
+
<label class="font_normal_body"> 公司 </label>
|
|
29
|
+
<right-tree @re-res="$parent.$parent.getRes"></right-tree>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="col-sm-2">
|
|
32
|
+
<label class="font_normal_body"> 部门 </label>
|
|
33
|
+
<res-select restype='department'
|
|
34
|
+
is-mul="false"
|
|
35
|
+
@res-select="$parent.$parent.getdep"
|
|
36
|
+
:parentresid="$parent.$parent.depresid"
|
|
37
|
+
:initresid='$parent.$parent.depid'>
|
|
38
|
+
</res-select>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
<div class="col-sm-2">
|
|
42
|
+
<label class="font_normal_body"> 人员 </label>
|
|
43
|
+
<res-select restype='user'
|
|
44
|
+
is-mul="false"
|
|
45
|
+
@res-select="$parent.$parent.getuser"
|
|
46
|
+
:parentresid="$parent.$parent.userresid"
|
|
47
|
+
:initresid='$parent.$parent.operatorid'>
|
|
48
|
+
</res-select>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="span" style = "float:right;">
|
|
52
|
+
<button class="button_search" @click="$parent.$parent.searchData()">查询</button>
|
|
53
|
+
<report-print id='gasprice' top='1cm' left='0' width='100%' height='100%' :preview="true"></report-print>
|
|
54
|
+
<report-excel id='gasprice'></report-excel>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</criteria>
|
|
58
|
+
<div partial='list' v-el:handcollect id='gasprice' style="overflow-y: scroll">
|
|
59
|
+
<table class='tableprint' style="margin: 0px auto">
|
|
60
|
+
<thead>
|
|
61
|
+
<tr>
|
|
62
|
+
<th :colspan='$parent.spans' style="font-weight: normal; text-align: left;">
|
|
63
|
+
<h3 style="text-align: center">售气收费报表</h3>
|
|
64
|
+
</th>
|
|
65
|
+
</tr>
|
|
66
|
+
<tr>
|
|
67
|
+
<th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
|
|
68
|
+
开始时间:{{model.model.startDate}}
|
|
69
|
+
结束时间:{{ model.model.endDate }}
|
|
70
|
+
打印时间:{{{$parent.printTime}}}
|
|
71
|
+
</th>
|
|
72
|
+
</tr>
|
|
73
|
+
<tr>
|
|
74
|
+
<th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
|
|
75
|
+
<div>
|
|
76
|
+
<span v-show="$parent.orgname.trim()!=''">公司:{{$parent.orgname}}</span>
|
|
77
|
+
<span v-show="$parent.depname.trim()!=''"> 部门:{{$parent.depname}}</span>
|
|
78
|
+
<span v-show="$parent.operatorname.trim()!=''">人员:{{$parent.operatorname}}</span>
|
|
79
|
+
</div>
|
|
80
|
+
</th>
|
|
81
|
+
</tr>
|
|
82
|
+
</thead>
|
|
83
|
+
<tr>
|
|
84
|
+
<td :colspan='$parent.spans' class="noborder">
|
|
85
|
+
{{{ model.data.substring(26,model.data.length-8) }}}
|
|
86
|
+
</td>
|
|
87
|
+
</tr>
|
|
88
|
+
<tfoot>
|
|
89
|
+
<tr style="text-align: left">
|
|
90
|
+
<th :colspan='Math.floor($parent.spans/3)'>财务审核:</th>
|
|
91
|
+
<th :colspan='Math.floor($parent.spans/3)'>收款审核:</th>
|
|
92
|
+
<th :colspan='Math.floor($parent.spans/3)'>收款员:</th>
|
|
93
|
+
</tr>
|
|
94
|
+
</tfoot>
|
|
95
|
+
</table>
|
|
96
|
+
</div>
|
|
97
|
+
</criteria-paged>
|
|
98
|
+
</div>
|
|
99
|
+
</template>
|
|
100
|
+
|
|
101
|
+
<script>
|
|
102
|
+
import { DataModel } from 'vue-client'
|
|
103
|
+
import co from 'co'
|
|
104
|
+
export default {
|
|
105
|
+
title: '售气收费报表',
|
|
106
|
+
props: ['data'],
|
|
107
|
+
data () {
|
|
108
|
+
return {
|
|
109
|
+
printTime: this.$login.toStandardTimeString(),
|
|
110
|
+
depresid: [],
|
|
111
|
+
userresid: [],
|
|
112
|
+
f_orgid: this.$login.f.orgid,
|
|
113
|
+
f_depid: this.$login.f.depids,
|
|
114
|
+
f_operatorid: this.$login.f.id,
|
|
115
|
+
operatorid: [],
|
|
116
|
+
depid: [],
|
|
117
|
+
orgname: '',
|
|
118
|
+
depname: '',
|
|
119
|
+
operatorname: '',
|
|
120
|
+
orgCondtionStr: '1=1',
|
|
121
|
+
model: new DataModel('api/af-revenue/report/by_bussummary', {startDate: 'this.model.startDate', endDate: 'this.model.endDate',
|
|
122
|
+
f_orgid: 'this.model.f_orgid'}),
|
|
123
|
+
reportStr: null,
|
|
124
|
+
spans: 0
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
ready () {
|
|
128
|
+
this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
|
|
129
|
+
this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
|
|
130
|
+
},
|
|
131
|
+
methods: {
|
|
132
|
+
searchData () {
|
|
133
|
+
this.$refs.paged.$refs.criteria.search()
|
|
134
|
+
},
|
|
135
|
+
selfSearch (args) {
|
|
136
|
+
this.printTime = this.$login.toStandardTimeString()
|
|
137
|
+
let orgcondition = '1=1'
|
|
138
|
+
if (this.f_orgid && this.f_orgid[0]) {
|
|
139
|
+
orgcondition += ` and f_orgid in ('${this.f_orgid}')`
|
|
140
|
+
}
|
|
141
|
+
if (this.f_depid && this.f_depid[0]) {
|
|
142
|
+
orgcondition += ` and f_depid in ('${this.f_depid}')`
|
|
143
|
+
}
|
|
144
|
+
if(this.f_operatorid && this.f_operatorid[0]) {
|
|
145
|
+
orgcondition += ` and f_operatorid in ('${this.f_operatorid}')`
|
|
146
|
+
}
|
|
147
|
+
this.$refs.paged.$refs.criteria.model.f_orgid = orgcondition
|
|
148
|
+
this.$refs.paged.search(args)
|
|
149
|
+
},
|
|
150
|
+
getRes (obj) {
|
|
151
|
+
this.orgname = obj.res[0]
|
|
152
|
+
this.depresid = obj.resids
|
|
153
|
+
this.f_orgid = obj.resids
|
|
154
|
+
},
|
|
155
|
+
getdep (obj, val) {
|
|
156
|
+
this.depname = val[0]
|
|
157
|
+
this.userresid = obj
|
|
158
|
+
this.f_depid = obj
|
|
159
|
+
},
|
|
160
|
+
getuser ( obj, val) {
|
|
161
|
+
this.operatorname = val[0]
|
|
162
|
+
this.f_operatorid = obj
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
watch: {
|
|
166
|
+
'model.data' (val) {
|
|
167
|
+
this.spans = val.split('</tr>').map(item => item.split('</td>').length-1).reduce((x, y) => x > y ? x : y)
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
computed: {
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
</script>
|
|
174
|
+
<style scoped>
|
|
175
|
+
.noborder{
|
|
176
|
+
border: none;
|
|
177
|
+
}
|
|
178
|
+
</style>
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
import { DataModel } from 'vue-client'
|
|
103
103
|
import co from 'co'
|
|
104
104
|
export default {
|
|
105
|
-
title: '
|
|
105
|
+
title: '材料使用明细报表',
|
|
106
106
|
props: ['data'],
|
|
107
107
|
data () {
|
|
108
108
|
return {
|
|
@@ -118,7 +118,7 @@ export default {
|
|
|
118
118
|
depname: '',
|
|
119
119
|
operatorname: '',
|
|
120
120
|
orgCondtionStr: '1=1',
|
|
121
|
-
model: new DataModel('api/af-revenue/report/
|
|
121
|
+
model: new DataModel('api/af-revenue/report/by_MaterialUsageDetails', {startDate: 'this.model.startDate', endDate: 'this.model.endDate',
|
|
122
122
|
f_orgid: 'this.model.f_orgid'}),
|
|
123
123
|
reportStr: null,
|
|
124
124
|
spans: 0
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basic-main" style="height: 98%">
|
|
3
|
+
<criteria-paged :model="model" :pager='false' v-ref:paged>
|
|
4
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
|
|
5
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial >
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="col-sm-2" >
|
|
8
|
+
<label class="font_normal_body" for="startDate">开始日期:</label>
|
|
9
|
+
<datepicker id="startDate" placeholder="开始日期" style="width: 60%"
|
|
10
|
+
v-model="model.startDate"
|
|
11
|
+
:value.sync="model.startDate"
|
|
12
|
+
:disabled-days-of-Week="[]"
|
|
13
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
14
|
+
:show-reset-button="reset">
|
|
15
|
+
</datepicker>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-sm-2" >
|
|
18
|
+
<label class="font_normal_body" for="endDate">结束日期:</label>
|
|
19
|
+
<datepicker id="endDate" placeholder="结束日期" style="width: 60%"
|
|
20
|
+
v-model="model.endDate"
|
|
21
|
+
:value.sync="model.endDate"
|
|
22
|
+
:disabled-days-of-Week="[]"
|
|
23
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
24
|
+
:show-reset-button="reset">
|
|
25
|
+
</datepicker>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="col-sm-2">
|
|
28
|
+
<label class="font_normal_body"> 公司 </label>
|
|
29
|
+
<right-tree @re-res="$parent.$parent.getRes"></right-tree>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="col-sm-2">
|
|
32
|
+
<label class="font_normal_body"> 部门 </label>
|
|
33
|
+
<res-select restype='department'
|
|
34
|
+
is-mul="false"
|
|
35
|
+
@res-select="$parent.$parent.getdep"
|
|
36
|
+
:parentresid="$parent.$parent.depresid"
|
|
37
|
+
:initresid='$parent.$parent.depid'>
|
|
38
|
+
</res-select>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
<div class="col-sm-2">
|
|
42
|
+
<label class="font_normal_body"> 人员 </label>
|
|
43
|
+
<res-select restype='user'
|
|
44
|
+
is-mul="false"
|
|
45
|
+
@res-select="$parent.$parent.getuser"
|
|
46
|
+
:parentresid="$parent.$parent.userresid"
|
|
47
|
+
:initresid='$parent.$parent.operatorid'>
|
|
48
|
+
</res-select>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="span" style = "float:right;">
|
|
52
|
+
<button class="button_search" @click="$parent.$parent.searchData()">查询</button>
|
|
53
|
+
<report-print id='gasprice' top='1cm' left='0' width='100%' height='100%' :preview="true"></report-print>
|
|
54
|
+
<report-excel id='gasprice'></report-excel>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</criteria>
|
|
58
|
+
<div partial='list' v-el:handcollect id='gasprice' style="overflow-y: scroll">
|
|
59
|
+
<table class='tableprint' style="margin: 0px auto">
|
|
60
|
+
<thead>
|
|
61
|
+
<tr>
|
|
62
|
+
<th :colspan='$parent.spans' style="font-weight: normal; text-align: left;">
|
|
63
|
+
<h3 style="text-align: center">其他收费报表</h3>
|
|
64
|
+
</th>
|
|
65
|
+
</tr>
|
|
66
|
+
<tr>
|
|
67
|
+
<th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
|
|
68
|
+
开始时间:{{model.model.startDate}}
|
|
69
|
+
结束时间:{{ model.model.endDate }}
|
|
70
|
+
打印时间:{{{$parent.printTime}}}
|
|
71
|
+
</th>
|
|
72
|
+
</tr>
|
|
73
|
+
<tr>
|
|
74
|
+
<th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
|
|
75
|
+
<div>
|
|
76
|
+
<span v-show="$parent.orgname.trim()!=''">公司:{{$parent.orgname}}</span>
|
|
77
|
+
<span v-show="$parent.depname.trim()!=''"> 部门:{{$parent.depname}}</span>
|
|
78
|
+
<span v-show="$parent.operatorname.trim()!=''">人员:{{$parent.operatorname}}</span>
|
|
79
|
+
</div>
|
|
80
|
+
</th>
|
|
81
|
+
</tr>
|
|
82
|
+
</thead>
|
|
83
|
+
<tr>
|
|
84
|
+
<td :colspan='$parent.spans' class="noborder">
|
|
85
|
+
{{{ model.data.substring(26,model.data.length-8) }}}
|
|
86
|
+
</td>
|
|
87
|
+
</tr>
|
|
88
|
+
<tfoot>
|
|
89
|
+
<tr style="text-align: left">
|
|
90
|
+
<th :colspan='Math.floor($parent.spans/3)'>财务审核:</th>
|
|
91
|
+
<th :colspan='Math.floor($parent.spans/3)'>收款审核:</th>
|
|
92
|
+
<th :colspan='Math.floor($parent.spans/3)'>收款员:</th>
|
|
93
|
+
</tr>
|
|
94
|
+
</tfoot>
|
|
95
|
+
</table>
|
|
96
|
+
</div>
|
|
97
|
+
</criteria-paged>
|
|
98
|
+
</div>
|
|
99
|
+
</template>
|
|
100
|
+
|
|
101
|
+
<script>
|
|
102
|
+
import { DataModel } from 'vue-client'
|
|
103
|
+
import co from 'co'
|
|
104
|
+
export default {
|
|
105
|
+
title: '其他收费报表',
|
|
106
|
+
props: ['data'],
|
|
107
|
+
data () {
|
|
108
|
+
return {
|
|
109
|
+
printTime: this.$login.toStandardTimeString(),
|
|
110
|
+
depresid: [],
|
|
111
|
+
userresid: [],
|
|
112
|
+
f_orgid: this.$login.f.orgid,
|
|
113
|
+
f_depid: this.$login.f.depids,
|
|
114
|
+
f_operatorid: this.$login.f.id,
|
|
115
|
+
operatorid: [],
|
|
116
|
+
depid: [],
|
|
117
|
+
orgname: '',
|
|
118
|
+
depname: '',
|
|
119
|
+
operatorname: '',
|
|
120
|
+
orgCondtionStr: '1=1',
|
|
121
|
+
model: new DataModel('api/af-revenue/report/by_OtherCharge', {startDate: 'this.model.startDate', endDate: 'this.model.endDate',
|
|
122
|
+
f_orgid: 'this.model.f_orgid'}),
|
|
123
|
+
reportStr: null,
|
|
124
|
+
spans: 0
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
ready () {
|
|
128
|
+
this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
|
|
129
|
+
this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
|
|
130
|
+
},
|
|
131
|
+
methods: {
|
|
132
|
+
searchData () {
|
|
133
|
+
this.$refs.paged.$refs.criteria.search()
|
|
134
|
+
},
|
|
135
|
+
selfSearch (args) {
|
|
136
|
+
this.printTime = this.$login.toStandardTimeString()
|
|
137
|
+
let orgcondition = '1=1'
|
|
138
|
+
if (this.f_orgid && this.f_orgid[0]) {
|
|
139
|
+
orgcondition += ` and f_orgid in ('${this.f_orgid}')`
|
|
140
|
+
}
|
|
141
|
+
if (this.f_depid && this.f_depid[0]) {
|
|
142
|
+
orgcondition += ` and f_depid in ('${this.f_depid}')`
|
|
143
|
+
}
|
|
144
|
+
if(this.f_operatorid && this.f_operatorid[0]) {
|
|
145
|
+
orgcondition += ` and f_operatorid in ('${this.f_operatorid}')`
|
|
146
|
+
}
|
|
147
|
+
this.$refs.paged.$refs.criteria.model.f_orgid = orgcondition
|
|
148
|
+
this.$refs.paged.search(args)
|
|
149
|
+
},
|
|
150
|
+
getRes (obj) {
|
|
151
|
+
this.orgname = obj.res[0]
|
|
152
|
+
this.depresid = obj.resids
|
|
153
|
+
this.f_orgid = obj.resids
|
|
154
|
+
},
|
|
155
|
+
getdep (obj, val) {
|
|
156
|
+
this.depname = val[0]
|
|
157
|
+
this.userresid = obj
|
|
158
|
+
this.f_depid = obj
|
|
159
|
+
},
|
|
160
|
+
getuser ( obj, val) {
|
|
161
|
+
this.operatorname = val[0]
|
|
162
|
+
this.f_operatorid = obj
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
watch: {
|
|
166
|
+
'model.data' (val) {
|
|
167
|
+
this.spans = val.split('</tr>').map(item => item.split('</td>').length-1).reduce((x, y) => x > y ? x : y)
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
computed: {
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
</script>
|
|
174
|
+
<style scoped>
|
|
175
|
+
.noborder{
|
|
176
|
+
border: none;
|
|
177
|
+
}
|
|
178
|
+
</style>
|
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
import Vue from 'vue'
|
|
3
3
|
|
|
4
4
|
export default function () {
|
|
5
|
-
//
|
|
5
|
+
// 材料使用明细报表
|
|
6
6
|
Vue.component('manage-material-usage-details', (resolve) => {
|
|
7
7
|
require(['./ManageMaterialUsageDetails'], resolve)
|
|
8
8
|
})
|
|
9
|
+
// 售气收费报表
|
|
10
|
+
Vue.component('manage-gas-sale-fee', (resolve) => {
|
|
11
|
+
require(['./ManageGasSaleFee'], resolve)
|
|
12
|
+
})
|
|
13
|
+
// 其他收费报表
|
|
14
|
+
Vue.component('manage-other-charge', (resolve) => {
|
|
15
|
+
require(['./ManageOtherCharge'], resolve)
|
|
16
|
+
})
|
|
9
17
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
5
5
|
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
6
6
|
<div class="row">
|
|
7
|
-
<res-select-group :style="$parent.$parent.style" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :mul="
|
|
7
|
+
<res-select-group :style="$parent.$parent.style" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :mul="true" :style="$parent.$parent.style" v-ref:sel></res-select-group>
|
|
8
8
|
<div :class="$parent.$parent.style" >
|
|
9
9
|
<label for="startDate" class="font_normal_body">开始日期</label>
|
|
10
10
|
<datepicker placeholder="开始日期" style="width:60%"
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
<button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
|
|
113
113
|
<export-excel :data="$parent.$parent.getCondition"
|
|
114
114
|
:field="$parent.$parent.getfield"
|
|
115
|
+
:defaultselect="$parent.$parent.defaultexport"
|
|
115
116
|
sqlurl="api/af-revenue/logic/openapi/exportfile" sql-name="aode_dayReport" template-name='日清单' :choose-col="true"
|
|
116
117
|
class="button_export button_spacing"></export-excel>
|
|
117
118
|
<day-report-list-print :countmodel="{sumsmodel:$parent.$parent.sumsmodel,model:$parent.$parent.model,orgname:$parent.$parent.orgname,depname:$parent.$parent.depname}"></day-report-list-print>
|
|
@@ -430,6 +431,9 @@ import {HttpResetClass, PagedList} from 'vue-client'
|
|
|
430
431
|
getfield() {
|
|
431
432
|
return exportConfig.dataReportConfig
|
|
432
433
|
},
|
|
434
|
+
defaultexport() {
|
|
435
|
+
return exportConfig.defaultDataReportConfig
|
|
436
|
+
},
|
|
433
437
|
show() {
|
|
434
438
|
this.criteriaShow = !this.criteriaShow
|
|
435
439
|
if (this.criteriaShow) {
|
|
@@ -560,6 +564,9 @@ import {HttpResetClass, PagedList} from 'vue-client'
|
|
|
560
564
|
getfield() {
|
|
561
565
|
return exportConfig.dataReportConfig
|
|
562
566
|
},
|
|
567
|
+
defaultexport() {
|
|
568
|
+
return exportConfig.defaultDataReportConfig
|
|
569
|
+
},
|
|
563
570
|
payments() {
|
|
564
571
|
return [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式')]
|
|
565
572
|
},
|
|
@@ -1669,6 +1669,20 @@ export default {
|
|
|
1669
1669
|
'f_user_type': '用户类型',
|
|
1670
1670
|
'f_comments': '备注'
|
|
1671
1671
|
},
|
|
1672
|
+
defaultDataReportConfig: {
|
|
1673
|
+
'f_userinfo_code': '客户编号',
|
|
1674
|
+
'f_user_name': '客户姓名',
|
|
1675
|
+
'f_address': '地址',
|
|
1676
|
+
'f_gasproperties': '用气性质',
|
|
1677
|
+
'f_operate_date': '充值时间',
|
|
1678
|
+
'f_pregas': '气量',
|
|
1679
|
+
'f_collection': '实收金额',
|
|
1680
|
+
'f_payment': '付款方式',
|
|
1681
|
+
'f_type': '收费类型',
|
|
1682
|
+
'f_state': '收费状态',
|
|
1683
|
+
'f_operator': '操作员',
|
|
1684
|
+
'f_user_type': '用户类型'
|
|
1685
|
+
},
|
|
1672
1686
|
lifeDataReportConfig: {
|
|
1673
1687
|
'f_userinfo_code': '客户编号',
|
|
1674
1688
|
'f_user_name': '客户姓名',
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<div class="col-sm-2 form-group" >
|
|
16
16
|
<label class="font_normal_body">客户名称</label>
|
|
17
17
|
<input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
|
|
18
|
-
condition="f_user_name
|
|
18
|
+
condition="f_user_name like '%{}%'" placeholder="客户名称">
|
|
19
19
|
</div>
|
|
20
20
|
<div class="col-sm-2 form-group">
|
|
21
21
|
<label class="font_normal_body">客户电话</label>
|