manage-client 3.1.39 → 3.1.43

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.
Files changed (98) hide show
  1. package/.gradle/5.2.1/executionHistory/executionHistory.bin +0 -0
  2. package/.gradle/5.2.1/executionHistory/executionHistory.lock +0 -0
  3. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  4. package/.gradle/5.2.1/fileHashes/fileHashes.bin +0 -0
  5. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  6. package/.gradle/5.2.1/gc.properties +0 -0
  7. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  8. package/build/dev-server.js +174 -181
  9. package/package.json +1 -1
  10. package/src/App.vue +28 -29
  11. package/src/components/BasisEcharts/BarChart.vue +247 -247
  12. package/src/components/BasisEcharts/RingChart.vue +196 -196
  13. package/src/components/SellReport/BusinessClassify.vue +317 -293
  14. package/src/components/SellReport/ChargePrick.vue +284 -284
  15. package/src/components/SellReport/DepartmentPrick.vue +288 -288
  16. package/src/components/SellReport/FinanceSellType.vue +254 -254
  17. package/src/components/SellReport/GasBaozhuangFee.vue +237 -237
  18. package/src/components/SellReport/GasPrice.vue +244 -244
  19. package/src/components/SellReport/ManageBusSummary.vue +242 -242
  20. package/src/components/SellReport/ManageHandInputtor.vue +281 -281
  21. package/src/components/SellReport/ManageOtherCharge.vue +250 -250
  22. package/src/components/SellReport/ManageSellType.vue +284 -284
  23. package/src/components/SellReport/ManageUserCount.vue +347 -347
  24. package/src/components/SellReport/MarketMonth.vue +297 -251
  25. package/src/components/SellReport/SaleMonthReport.vue +227 -227
  26. package/src/components/SellReport/SellingTable.vue +220 -220
  27. package/src/components/SellReport/UserClassify.vue +271 -251
  28. package/src/components/SellReport/UserSellingGas.vue +251 -251
  29. package/src/components/daping/CallCenter.vue +366 -366
  30. package/src/components/daping/DataManagement.vue +537 -537
  31. package/src/components/daping/GMap.vue +636 -636
  32. package/src/components/daping/ManageMain.vue +270 -270
  33. package/src/components/daping/NetWork.vue +238 -238
  34. package/src/components/daping/RedactDaPing.vue +468 -468
  35. package/src/components/daping/Ring.vue +212 -212
  36. package/src/components/daping/SafeCheck.vue +446 -446
  37. package/src/components/daping/SafeCheckRing.vue +166 -166
  38. package/src/components/daping/SafecheckBarChart.vue +233 -233
  39. package/src/components/daping/WuHaiMap.vue +418 -418
  40. package/src/components/qinhua/BarChart.vue +256 -256
  41. package/src/components/qinhua/Pie.vue +132 -132
  42. package/src/components/qinhua/SellEcharts.vue +115 -115
  43. package/src/components/qinhua/qinHuaMap.vue +414 -414
  44. package/src/components/sale/businessquery/CollectManage.vue +135 -135
  45. package/src/components/sale/businessquery/FMYGasQuery.vue +713 -713
  46. package/src/components/sale/businessquery/MonthGasQuery.vue +467 -467
  47. package/src/components/sale/businessquery/OtherChargeQuery.vue +619 -619
  48. package/src/components/sale/businessquery/ProceedsOper.vue +377 -377
  49. package/src/components/sale/businessquery/YingShouMingXi.vue +525 -525
  50. package/src/components/sale/filesquery/DeviceQuery.vue +45 -11
  51. package/src/components/statistical/StatisticalAnalysis.vue +247 -247
  52. package/src/components/webmeter/DrillData/LostContactAnalysisList.vue +633 -633
  53. package/src/components/webmeter/DrillData/LostContactEcharts.vue +177 -177
  54. package/src/components/webmeter/DrillData/UserGasAll.vue +597 -597
  55. package/src/components/webmeter/DrillData/UserGasEcharts.vue +210 -210
  56. package/src/components/webmeter/DrillData/UserGasEform.vue +227 -227
  57. package/src/components/webmeter/DrillData/UserLostContactAnalysis.vue +585 -585
  58. package/src/components/webmeter/newwebmeter/NewException/NewContactEcharts.vue +171 -170
  59. package/src/components/webmeter/newwebmeter/NewException/NewEchartsAll.vue +111 -111
  60. package/src/components/webmeter/newwebmeter/NewException/NewExceptionEcharsTotal.vue +275 -903
  61. package/src/components/webmeter/newwebmeter/NewException/NewGasEcharts.vue +209 -209
  62. package/src/components/webmeter/newwebmeter/NewException/NewHandplanEcharts.vue +213 -238
  63. package/src/components/webmeter/newwebmeter/NewException/NewInstructEcharts.vue +240 -266
  64. package/src/components/webmeter/newwebmeter/NewException/TotalExceptionByMeter.vue +607 -607
  65. package/src/components/webmeter/newwebmeter/UserGasEchartsList.vue +218 -218
  66. package/src/components/webmeter/newwebmeter/UserGasList.vue +438 -438
  67. package/src/components/webmeter/newwebmeter/UserInstructEchartsList.vue +2 -46
  68. package/src/components/webmeter/newwebmeter/UserInstructList.vue +332 -332
  69. package/src/components/webmeter/newwebmeter/signAnalysisEcharts.vue +266 -266
  70. package/src/components/webmeter/newwebmeter/signAnalysisEform.vue +175 -175
  71. package/src/components/webmeter/newwebmeter/signAnalysisListMain.vue +387 -387
  72. package/src/filiale/alashan/SellingTable.vue +234 -234
  73. package/src/filiale/alashan/reportManage.js +10 -10
  74. package/src/filiale/jingwei/RecordInfoQuery.vue +14 -14
  75. package/src/filiale/jingzhou/ChargeQuery.vue +1243 -1243
  76. package/src/filiale/jingzhou/config/exportConfig.js +861 -861
  77. package/src/filiale/liaoyuan/ChargeQuery.vue +6 -0
  78. package/src/filiale/liaoyuan/exportConfig.js +1 -1
  79. package/src/filiale/meihekou/UserGasEform.vue +267 -267
  80. package/src/filiale/meihekou/sale.js +26 -26
  81. package/src/filiale/rongcheng/exportConfig.js +257 -257
  82. package/src/filiale/rongchuang/SellingTable.vue +250 -250
  83. package/src/filiale/rongchuang/reportManage.js +11 -11
  84. package/src/filiale/shaoguan/config/exportConfig.js +433 -433
  85. package/src/filiale/shaoguan/sale/businessquery/oldList.vue +41 -0
  86. package/src/filiale/shaoguan/sale/businessquery/oldMeterList.vue +290 -0
  87. package/src/filiale/shaoguan/sale.js +3 -1
  88. package/src/filiale/tongchuan/ManageBusSummary.vue +302 -301
  89. package/src/filiale/tongchuan/ReportList.vue +456 -0
  90. package/src/filiale/tongchuan/ResSelectGroupNew.vue +7 -2
  91. package/src/filiale/tongchuan/reportManage.js +6 -5
  92. package/src/main.js +66 -66
  93. package/src/newmanage.js +525 -525
  94. package/src/reportManage.js +462 -462
  95. package/src/saleManage.js +2 -3
  96. package/static/wuhai.json +1610 -1610
  97. package/src/components/SellReport/SellCollect.vue +0 -183
  98. package/src/components/sale/businessquery/NewHandplanQuery.vue +0 -995
@@ -1,301 +1,302 @@
1
- <template>
2
- <div class="basic-main" style="height: 100%">
3
- <criteria-paged :model="model" :pager='false' v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
- <p class="bg-info text-center" style="padding: 8px;">收费结账报表</p>
6
- <div class="form-group" v-if="!$parent.$parent.data.f_files_path"></div>
7
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial >
8
- <div class="row">
9
- <div class="col-sm-3 form-group" >
10
- <label class="font_normal_body" for="org">公&emsp;&emsp;司:</label>
11
- <right-tree id="org" @re-res="$parent.$parent.getRes" style="width: 60%" v-ref:org></right-tree>
12
- </div>
13
- <div class="col-sm-3 form-group">
14
- <label class="font_normal_body" for="dep" >部&emsp;&emsp;门:</label>
15
- <v-select id="dep" style="width: 60%"
16
- :multiple="false"
17
- @change="$parent.$parent.getDep"
18
- :value.sync="model.f_depid"
19
- v-model="model.f_depid"
20
- :options='$parent.$parent.depresid' placeholder='请选择'
21
- condition="f_depid in {}">
22
- </v-select>
23
-
24
- </div>
25
- <div class="col-sm-3 form-group">
26
- <label class="font_normal_body" for="oper">人&emsp;&emsp;员:</label>
27
- <v-select id="oper" style="width: 60%"
28
- :multiple="false"
29
- @change="$parent.$parent.getOpe"
30
- :value.sync="model.f_operatorid"
31
- v-model="model.f_operatorid"
32
- :options='$parent.$parent.userresid' placeholder='请选择'
33
- condition="f_operatorid in {}">
34
- </v-select>
35
- </div>
36
- <div class="col-sm-2 form-group" >
37
- <label class="font_normal_body" for="startDate">开始日期:</label>
38
- <datepicker id="startDate" placeholder="开始日期" style="width: 60%"
39
- v-model="model.startDate"
40
- :value.sync="model.startDate"
41
- :disabled-days-of-Week="[]"
42
- :format="'yyyy-MM-dd HH:mm:ss'"
43
- :show-reset-button="reset">
44
- </datepicker>
45
- </div>
46
- <div class="col-sm-2 form-group" >
47
- <label class="font_normal_body" for="endDate">结束日期:</label>
48
- <datepicker id="endDate" placeholder="结束日期" style="width: 60%"
49
- v-model="model.endDate"
50
- :value.sync="model.endDate"
51
- :disabled-days-of-Week="[]"
52
- :format="'yyyy-MM-dd HH:mm:ss'"
53
- :show-reset-button="reset">
54
- </datepicker>
55
- </div>
56
- <div class="col-sm-2 form-group">
57
- <label class="font_normal_body">收费状态</label>
58
- <v-select :value.sync="$parent.$parent.f_state" multiple
59
- v-model="$parent.$parent.f_state"
60
- :options='$parent.$parent.charge_state' placeholder='请选择'
61
- condition="f_state in {}"
62
- close-on-select></v-select>
63
- </div>
64
- </div>
65
- <div class="span" style = "float:right;">
66
- <button class="button_search" @click="$parent.$parent.searchData()">查询</button>
67
- <report-print id='gasprice' top='3cm' left='0' width='100%' height='100%' :preview="true"></report-print>
68
- <report-excel id='gasprice'></report-excel>
69
- </div>
70
- </div>
71
- </criteria>
72
- <div partial='list' v-el:handcollect id='gasprice' style="overflow-y: scroll">
73
- <table class='tableprint' style="margin: 0px auto">
74
- <thead>
75
- <tr>
76
- <th :colspan='$parent.spans' style="font-weight: normal; text-align: left;">
77
- <h3 style="text-align: center">收费结账报表</h3>
78
- </th>
79
- </tr>
80
- <tr>
81
- <th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
82
- 开始时间:{{model.model.startDate}}&nbsp;&nbsp;&nbsp;
83
- 结束时间:{{ model.model.endDate }}&nbsp;&nbsp;<br/>
84
- <!--打印时间:{{{$parent.printTime}}}-->
85
- 打印时间:{{$parent.printTime}}
86
- <!--收费员:{{// $parent.operatorname}}-->
87
- </th>
88
- </tr>
89
- <tr>
90
- <th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
91
- <div>
92
- <span style="font-weight: normal;text-align: center;margin:5px 15px" v-show="$parent.orgname[0]">公司:{{$parent.orgname}}</span>
93
- <span v-show="$parent.depname[0]"> 部门:{{$parent.depname}}</span>
94
- <span style="font-weight: normal;text-align: center;margin:5px 15px" v-show="$parent.operatorname[0]">人员:{{$parent.operatorname}}</span>
95
- </div>
96
- </th>
97
- </tr>
98
- </thead>
99
- <tr>
100
- <td :colspan='$parent.spans'>
101
- {{{ model.data.substring(26,model.data.length-8) }}}
102
- </td>
103
- </tr>
104
- <tfoot>
105
- <tr style="text-align: left">
106
- <th :colspan='Math.floor($parent.spans/3)'>财务审核:</th>
107
- <th :colspan='Math.floor($parent.spans/3)'>收款审核:</th>
108
- <th :colspan='Math.floor($parent.spans/3)'>收款员:</th>
109
- </tr>
110
- </tfoot>
111
- </table>
112
- {{{ $parent.reportStr}}}
113
- </div>
114
- </criteria-paged>
115
- <modal :show.sync="show" v-ref:modal small backdrop="false">
116
- <header slot="modal-header" class="modal-header">
117
- <h4 class="modal-title">输入文件名称</h4>
118
- </header>
119
- <article slot="modal-body" class="modal-body">
120
- <div class="form-group">
121
- <input type="text" class="form-control" v-model="filename" placeholder='保存的文件名'>
122
- </div>
123
- </article>
124
- <footer slot="modal-footer" class="modal-footer">
125
- <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
126
- <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>
127
- </footer>
128
- </modal>
129
- </div>
130
- </template>
131
-
132
- <script>
133
- import {DataModel, HttpResetClass} from 'vue-client'
134
- import co from 'co'
135
- let saveFile = function * (self) {
136
- // 线验证文件是否重名
137
- let count = yield self.$resetpost('rs/sql/manageSingleTable',
138
- {data: {tablename: 't_report_record', condition: `f_files_name = '${self.filename}'`}},
139
- {resolveMsg: null, rejectMsg: null})
140
- if (count.data.length > 0) {
141
- self.$showAlert('无法保存,文件名重名', 'warning', 3000)
142
- return
143
- }
144
- let saveBack = yield self.$resetpost('rs/logic/saveReport', {f_files_content: self.$refs.paged.$els.handcollect.innerHTML,
145
- f_files_name: self.filename, f_files_type: self.data.f_report_type, f_component_name: 'manage-bus-summary',
146
- f_operator: this.$login.f.name, f_query_month: `${self.model.model.startDate}-${self.model.model.endDate}`,
147
- f_outlets: this.$login.f.depname})
148
- if (saveBack.data.status === 'succeed') {
149
- self.show = false
150
- self.filename = ''
151
- // 后台保存完成,通知刷新
152
- self.$dispatch('save-success', self.filename)
153
- }
154
- }
155
- let getorg = async function (self) {
156
- new HttpResetClass().load("POST",'rs/sql/singleTableParam',
157
- {
158
- data: {
159
- items: 'name label,id value',
160
- tablename: 't_department',
161
- condition: `1=1`
162
- }
163
- },
164
- {resolveMsg: null, rejectMsg: null})
165
- .then((res) => {
166
- self.depresid = res.data
167
- })
168
- new HttpResetClass().load("POST",'rs/sql/singleTableParam',
169
- {
170
- data: {
171
- items: 'name label,id value',
172
- tablename: 't_user',
173
- condition: `state = '在职' and f_department_name is not null`
174
- }
175
- },
176
- {resolveMsg: null, rejectMsg: null})
177
- .then((res) => {
178
- self.userresid = res.data
179
- })
180
- }
181
- export default {
182
- title: '收费结账报表',
183
- props: ['data'],
184
- data () {
185
- return {
186
- printTime: this.$login.toStandardTimeString(),
187
- depresid: [],
188
- userresid: [],
189
- f_orgid: this.$login.f.orgid,
190
- f_depid: this.$login.f.depids,
191
- f_operatorid: this.$login.f.id,
192
- operatorid: [],
193
- depid: [],
194
- orgname: '',
195
- depname: '',
196
- operatorname: '',
197
- orgCondtionStr: '1=1',
198
- f_state:['有效'],
199
- model: new DataModel('rs/report/getmoneyall', {startDate: 'this.model.startDate', endDate: 'this.model.endDate',
200
- f_orgid: 'this.model.f_orgid'}),
201
- reportStr: null,
202
- show: false,
203
- spans: 0,
204
- initres: {
205
- org: [this.$login.f.orgid],
206
- dep: [],
207
- user: []
208
- }
209
- }
210
- },
211
- ready () {
212
- getorg(this)
213
- this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
214
- this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
215
- console.log(this.$login.f)
216
- },
217
- methods: {
218
- searchData () {
219
- this.$refs.paged.$refs.criteria.search()
220
- },
221
- getDep(val){
222
- this.depname = this.depresid.filter(x => x.value ==val).map(x=>x.label).toString()
223
- console.log('dep',this.depname )
224
- },
225
- getOpe(val){
226
- this.operatorname = this.userresid.filter(x => x.value ==val).map(x=>x.label).toString()
227
- console.log('dep',this.operatorname )
228
- },
229
- selfSearch (args) {
230
- this.printTime = this.$login.toStandardTimeString()
231
- let s = '1=1'
232
- if (this.f_orgid[0]) {
233
- s += ' and f_orgid in(' + this.f_orgid +')'
234
- }
235
- if (this.f_state[0]) {
236
- s += ' and f_state in(\'' + this.f_state.toString().replace(new RegExp(',','g')) +'\')'
237
- }
238
- s += ' and ' + args.condition
239
- console.log('xxxxxxxxxxx',this.orgCondtionStr)
240
- // let orgstr = this.f_state[0] ? "f_state in('" + this.f_state.toString().replace(new RegExp(',','g'), "','") +"') "+ s: s
241
- this.$refs.paged.$refs.criteria.model.f_orgid = s
242
- this.$refs.paged.search(args)
243
- },
244
- // 根据文件路径获取储存的报表内容
245
- getFileContent (path) {
246
- this.$resetpost('rs/logic/getReportFileContent', {f_files_path: path}, {resolveMsg: null, rejectMsg: null}).then((res) => {
247
- this.reportStr = res.data.filecontent
248
- this.model.state = '正确'
249
- })
250
- },
251
- confirm () {
252
- if (!this.filename || this.filename === '') {
253
- this.$showAlert('无法保存,文件名不能为空', 'warning', 3000)
254
- }
255
- let saveGen = saveFile(this)
256
- co(saveGen)
257
- },
258
- close () {
259
- this.show = false
260
- },
261
- // 将报表保存成文件
262
- confirmReport () {
263
- this.show = true
264
- this.filename = this.data.f_report_name + this.$login.toStandardDateString()
265
- },
266
- getRes (obj) {
267
- this.orgname = obj.res
268
- this.f_orgid = obj.resids
269
- }
270
- },
271
- watch: {
272
- 'data' (val) {
273
- if (val.f_files_path) {
274
- this.getFileContent(val.f_files_path)
275
- } else {
276
- this.reportStr = null
277
- }
278
- },
279
- 'model.data' (val) {
280
- let len=0
281
- let a=val.split('</tr>')
282
- for(let i=0;i<a.length;i++){
283
- if(a[i].split('</td>').length-1>len){
284
- len=a[i].split('</td>').length-1
285
- }
286
- }
287
- this.spans = len
288
- }
289
- },
290
- computed: {
291
- charge_state() {
292
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('收费状态')]
293
- }
294
- }
295
- }
296
- </script>
297
- <style scoped>
298
- .noborder{
299
- border: none;
300
- }
301
- </style>
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
+ <p class="bg-info text-center" style="padding: 8px;">收费结账报表</p>
6
+ <div class="form-group" v-if="!$parent.$parent.data.f_files_path"></div>
7
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial >
8
+ <div class="row">
9
+ <div class="col-sm-2 form-group" >
10
+ <label class="font_normal_body" for="startDate">开始日期:</label>
11
+ <datepicker id="startDate" placeholder="开始日期" style="width: 60%"
12
+ v-model="model.startDate"
13
+ :value.sync="model.startDate"
14
+ :disabled-days-of-Week="[]"
15
+ :format="'yyyy-MM-dd HH:mm:ss'"
16
+ :show-reset-button="reset">
17
+ </datepicker>
18
+ </div>
19
+ <div class="col-sm-2 form-group" >
20
+ <label class="font_normal_body" for="endDate">结束日期:</label>
21
+ <datepicker id="endDate" placeholder="结束日期" style="width: 60%"
22
+ v-model="model.endDate"
23
+ :value.sync="model.endDate"
24
+ :disabled-days-of-Week="[]"
25
+ :format="'yyyy-MM-dd HH:mm:ss'"
26
+ :show-reset-button="reset">
27
+ </datepicker>
28
+ </div>
29
+ <div class="col-sm-2 form-group" >
30
+ <label class="font_normal_body" for="org">公&emsp;&emsp;司:</label>
31
+ <right-tree id="org" @re-res="$parent.$parent.getRes" style="width: 60%" v-ref:org></right-tree>
32
+ </div>
33
+ <div class="col-sm-2 form-group">
34
+ <label class="font_normal_body" for="dep" >部&emsp;&emsp;门:</label>
35
+ <v-select id="dep" style="width: 60%"
36
+ :multiple="false"
37
+ @change="$parent.$parent.getDep"
38
+ :value.sync="model.f_depid"
39
+ v-model="model.f_depid"
40
+ :options='$parent.$parent.depresid' placeholder='请选择'
41
+ condition="f_depid in {}">
42
+ </v-select>
43
+
44
+ </div>
45
+ <div class="col-sm-2 form-group">
46
+ <label class="font_normal_body" for="oper">人&emsp;&emsp;员:</label>
47
+ <v-select id="oper" style="width: 60%"
48
+ :multiple="false"
49
+ @change="$parent.$parent.getOpe"
50
+ :value.sync="model.f_operatorid"
51
+ v-model="model.f_operatorid"
52
+ :options='$parent.$parent.userresid' placeholder='请选择'
53
+ condition="f_operatorid in {}">
54
+ </v-select>
55
+ </div>
56
+ <div class="col-sm-2 form-group">
57
+ <label class="font_normal_body">收费状态</label>
58
+ <v-select :value.sync="$parent.$parent.f_state" multiple
59
+ v-model="$parent.$parent.f_state"
60
+ :options='$parent.$parent.charge_state' placeholder='请选择'
61
+ condition="f_state in {}"
62
+ close-on-select></v-select>
63
+ </div>
64
+ </div>
65
+ <div class="span" style = "float:right;">
66
+ <button class="button_search" @click="$parent.$parent.searchData()">查询</button>
67
+ <report-print id='gasprice' top='3cm' left='0' width='100%' height='100%' :preview="true"></report-print>
68
+ <report-excel id='gasprice'></report-excel>
69
+ </div>
70
+ </div>
71
+ </criteria>
72
+ <div partial='list' v-el:handcollect id='gasprice' style="overflow-y: scroll">
73
+ <table class='tableprint' style="margin: 0px auto">
74
+ <thead>
75
+ <tr>
76
+ <th :colspan='$parent.spans' style="font-weight: normal; text-align: left;">
77
+ <h3 style="text-align: center">收费结账报表</h3>
78
+ </th>
79
+ </tr>
80
+ <tr>
81
+ <th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
82
+ 开始时间:{{model.model.startDate}}&nbsp;&nbsp;&nbsp;
83
+ 结束时间:{{ model.model.endDate }}&nbsp;&nbsp;<br/>
84
+ <!--打印时间:{{{$parent.printTime}}}-->
85
+ 打印时间:{{$parent.printTime}}
86
+ <!--收费员:{{// $parent.operatorname}}-->
87
+ </th>
88
+ </tr>
89
+ <tr>
90
+ <th :colspan='$parent.spans' style="font-weight: normal; text-align: center;">
91
+ <div>
92
+ <span style="font-weight: normal;text-align: center;margin:5px 15px" v-show="$parent.orgname[0]">公司:{{$parent.orgname}}</span>
93
+ <span v-show="$parent.depname[0]"> 部门:{{$parent.depname}}</span>
94
+ <span style="font-weight: normal;text-align: center;margin:5px 15px" v-show="$parent.operatorname[0]">人员:{{$parent.operatorname}}</span>
95
+ </div>
96
+ </th>
97
+ </tr>
98
+ </thead>
99
+ <tr>
100
+ <td :colspan='$parent.spans'>
101
+ {{{ model.data.substring(26,model.data.length-8) }}}
102
+ </td>
103
+ </tr>
104
+ <tfoot>
105
+ <tr style="text-align: left">
106
+ <th :colspan='Math.floor($parent.spans/3)'>财务审核:</th>
107
+ <th :colspan='Math.floor($parent.spans/3)'>收款审核:</th>
108
+ <th :colspan='Math.floor($parent.spans/3)'>收款员:</th>
109
+ </tr>
110
+ </tfoot>
111
+ </table>
112
+ {{{ $parent.reportStr}}}
113
+ </div>
114
+ </criteria-paged>
115
+ <div>注:</div>
116
+ <modal :show.sync="show" v-ref:modal small backdrop="false">
117
+ <header slot="modal-header" class="modal-header">
118
+ <h4 class="modal-title">输入文件名称</h4>
119
+ </header>
120
+ <article slot="modal-body" class="modal-body">
121
+ <div class="form-group">
122
+ <input type="text" class="form-control" v-model="filename" placeholder='保存的文件名'>
123
+ </div>
124
+ </article>
125
+ <footer slot="modal-footer" class="modal-footer">
126
+ <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
127
+ <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>
128
+ </footer>
129
+ </modal>
130
+ </div>
131
+ </template>
132
+
133
+ <script>
134
+ import {DataModel, HttpResetClass} from 'vue-client'
135
+ import co from 'co'
136
+ let saveFile = function * (self) {
137
+ // 线验证文件是否重名
138
+ let count = yield self.$resetpost('rs/sql/manageSingleTable',
139
+ {data: {tablename: 't_report_record', condition: `f_files_name = '${self.filename}'`}},
140
+ {resolveMsg: null, rejectMsg: null})
141
+ if (count.data.length > 0) {
142
+ self.$showAlert('无法保存,文件名重名', 'warning', 3000)
143
+ return
144
+ }
145
+ let saveBack = yield self.$resetpost('rs/logic/saveReport', {f_files_content: self.$refs.paged.$els.handcollect.innerHTML,
146
+ f_files_name: self.filename, f_files_type: self.data.f_report_type, f_component_name: 'manage-bus-summary',
147
+ f_operator: this.$login.f.name, f_query_month: `${self.model.model.startDate}-${self.model.model.endDate}`,
148
+ f_outlets: this.$login.f.depname})
149
+ if (saveBack.data.status === 'succeed') {
150
+ self.show = false
151
+ self.filename = ''
152
+ // 后台保存完成,通知刷新
153
+ self.$dispatch('save-success', self.filename)
154
+ }
155
+ }
156
+ let getorg = async function (self) {
157
+ new HttpResetClass().load("POST",'rs/sql/singleTableParam',
158
+ {
159
+ data: {
160
+ items: 'name label,id value',
161
+ tablename: 't_department',
162
+ condition: `1=1`
163
+ }
164
+ },
165
+ {resolveMsg: null, rejectMsg: null})
166
+ .then((res) => {
167
+ self.depresid = res.data
168
+ })
169
+ new HttpResetClass().load("POST",'rs/sql/singleTableParam',
170
+ {
171
+ data: {
172
+ items: 'name label,id value',
173
+ tablename: 't_user',
174
+ condition: `state = '在职' and f_department_name is not null`
175
+ }
176
+ },
177
+ {resolveMsg: null, rejectMsg: null})
178
+ .then((res) => {
179
+ self.userresid = res.data
180
+ })
181
+ }
182
+ export default {
183
+ title: '收费结账报表',
184
+ props: ['data'],
185
+ data () {
186
+ return {
187
+ printTime: this.$login.toStandardTimeString(),
188
+ depresid: [],
189
+ userresid: [],
190
+ f_orgid: this.$login.f.orgid,
191
+ f_depid: this.$login.f.depids,
192
+ f_operatorid: this.$login.f.id,
193
+ operatorid: [],
194
+ depid: [],
195
+ orgname: '',
196
+ depname: '',
197
+ operatorname: '',
198
+ orgCondtionStr: '1=1',
199
+ // f_state:['有效'],
200
+ model: new DataModel('rs/report/getmoneyall', {startDate: 'this.model.startDate', endDate: 'this.model.endDate',
201
+ f_orgid: 'this.model.f_orgid'}),
202
+ reportStr: null,
203
+ show: false,
204
+ spans: 0,
205
+ initres: {
206
+ org: [this.$login.f.orgid],
207
+ dep: [],
208
+ user: []
209
+ }
210
+ }
211
+ },
212
+ ready () {
213
+ getorg(this)
214
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
215
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
216
+ console.log(this.$login.f)
217
+ },
218
+ methods: {
219
+ searchData () {
220
+ this.$refs.paged.$refs.criteria.search()
221
+ },
222
+ getDep(val){
223
+ this.depname = this.depresid.filter(x => x.value ==val).map(x=>x.label).toString()
224
+ console.log('dep',this.depname )
225
+ },
226
+ getOpe(val){
227
+ this.operatorname = this.userresid.filter(x => x.value ==val).map(x=>x.label).toString()
228
+ console.log('dep',this.operatorname )
229
+ },
230
+ selfSearch (args) {
231
+ this.printTime = this.$login.toStandardTimeString()
232
+ let s = '1=1'
233
+ if (this.f_orgid[0]) {
234
+ s += ' and f_orgid in(' + this.f_orgid +')'
235
+ }
236
+ if (this.f_state[0]) {
237
+ s += ' and f_state in(\'' + this.f_state.toString().replace(new RegExp(',','g')) +'\')'
238
+ }
239
+ s += ' and ' + args.condition
240
+ console.log('xxxxxxxxxxx',this.orgCondtionStr)
241
+ // let orgstr = this.f_state[0] ? "f_state in('" + this.f_state.toString().replace(new RegExp(',','g'), "','") +"') "+ s: s
242
+ this.$refs.paged.$refs.criteria.model.f_orgid = s
243
+ this.$refs.paged.search(args)
244
+ },
245
+ // 根据文件路径获取储存的报表内容
246
+ getFileContent (path) {
247
+ this.$resetpost('rs/logic/getReportFileContent', {f_files_path: path}, {resolveMsg: null, rejectMsg: null}).then((res) => {
248
+ this.reportStr = res.data.filecontent
249
+ this.model.state = '正确'
250
+ })
251
+ },
252
+ confirm () {
253
+ if (!this.filename || this.filename === '') {
254
+ this.$showAlert('无法保存,文件名不能为空', 'warning', 3000)
255
+ }
256
+ let saveGen = saveFile(this)
257
+ co(saveGen)
258
+ },
259
+ close () {
260
+ this.show = false
261
+ },
262
+ // 将报表保存成文件
263
+ confirmReport () {
264
+ this.show = true
265
+ this.filename = this.data.f_report_name + this.$login.toStandardDateString()
266
+ },
267
+ getRes (obj) {
268
+ this.orgname = obj.res[0]
269
+ this.f_orgid = obj.resids
270
+ }
271
+ },
272
+ watch: {
273
+ 'data' (val) {
274
+ if (val.f_files_path) {
275
+ this.getFileContent(val.f_files_path)
276
+ } else {
277
+ this.reportStr = null
278
+ }
279
+ },
280
+ 'model.data' (val) {
281
+ let len=0
282
+ let a=val.split('</tr>')
283
+ for(let i=0;i<a.length;i++){
284
+ if(a[i].split('</td>').length-1>len){
285
+ len=a[i].split('</td>').length-1
286
+ }
287
+ }
288
+ this.spans = len
289
+ }
290
+ },
291
+ computed: {
292
+ charge_state() {
293
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('收费状态')]
294
+ }
295
+ }
296
+ }
297
+ </script>
298
+ <style scoped>
299
+ .noborder{
300
+ border: none;
301
+ }
302
+ </style>