sale-client 3.6.88 → 3.6.91
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/charge/business/machine/MachineCharge.vue +8 -4
- package/src/components/charge/business/machine/WorkBusySmall.vue +127 -0
- package/src/components/revenue/comprehen/Bill/EticketV4/EticketRecordList.vue +8 -6
- package/src/components/revenue/comprehen/ComprehenOperation/ChangeMeter/MachineMeter.vue +1 -1
- package/src/filiale/huayin/base/SafeCheck.vue +23 -4
- package/src/filiale/liaoyuan/ChargeList.vue +1 -1
- package/src/filiale/qianneng/eticket/EticketRecordList.vue +3 -3
- package/src/filiale/rongcheng/PriceAdjustmentCard.vue +404 -0
- package/src/filiale/rongcheng/sale.js +2 -0
- package/src/filiale/tongchuan/DisableManage.vue +2 -1
- package/src/filiale/wenxi/IOTRefund.vue +5 -4
- package/src/main.js +2 -1
package/package.json
CHANGED
|
@@ -9,17 +9,21 @@
|
|
|
9
9
|
<p v-if="row.f_totalsplit_type === '总表'"><strong>分表承担总量 (单位: 方): {{splitAllgas}}</strong></p>
|
|
10
10
|
<machine-meter-center :data='model' :owelist="list[0].rows" :charge="config.charge" :row='row' :floor="config.floor" :ceil="config.ceil" v-ref:mainche></machine-meter-center>
|
|
11
11
|
</div>
|
|
12
|
+
<div class="span" v-if="!chargeView">
|
|
13
|
+
<work-busy-small :is-busy="!chargeView"></work-busy-small>
|
|
14
|
+
</div>
|
|
12
15
|
</div>
|
|
13
16
|
<upload :blodid="blodid" v-if="config.showupload" isremark="true" fusetype="机表收费"></upload>
|
|
14
17
|
</template>
|
|
15
18
|
<script>
|
|
16
19
|
import OweList from './OweList'
|
|
20
|
+
import WorkBusySmall from './WorkBusySmall'
|
|
17
21
|
import {HttpResetClass} from 'vue-client'
|
|
18
22
|
|
|
19
23
|
let loadGen = async function (self) {
|
|
20
24
|
await self.$getConfig(self, 'MachineCharge')
|
|
21
25
|
let http = new HttpResetClass()
|
|
22
|
-
let res = await http.load('POST', 'rs/logic/sale_getOwe', {data: {f_userinfo_id: self.row.f_userinfo_id}}, {resolveMsg: null, rejectMsg: '获取欠费出错!!'})
|
|
26
|
+
let res = await http.load('POST', 'rs/logic/sale_getOwe', {data: {f_userinfo_id: self.row.f_userinfo_id}}, {resolveMsg: null, rejectMsg: '获取欠费出错!!', newly: true})
|
|
23
27
|
self.list = res.data
|
|
24
28
|
|
|
25
29
|
let owes = []
|
|
@@ -55,7 +59,7 @@
|
|
|
55
59
|
*/
|
|
56
60
|
export default {
|
|
57
61
|
title: '收费',
|
|
58
|
-
components: {OweList},
|
|
62
|
+
components: {OweList,WorkBusySmall},
|
|
59
63
|
data () {
|
|
60
64
|
return {
|
|
61
65
|
config: {
|
|
@@ -106,14 +110,14 @@
|
|
|
106
110
|
this.model = Object.assign({}, this.model, temp)
|
|
107
111
|
},
|
|
108
112
|
getRows (val) {
|
|
109
|
-
this.model.selectedids = []
|
|
113
|
+
this.model.selectedids = []
|
|
110
114
|
for (let i = 0; i < val.length; i++) {
|
|
111
115
|
if (val[i]) {
|
|
112
116
|
this.model.f_pregas = this.model.f_pregas + val[i].f_oughtamount
|
|
113
117
|
this.model.f_preamount = this.model.f_preamount + val[i].f_oughtfee
|
|
114
118
|
this.model.f_overdue = this.model.f_overdue + val[i].overdue
|
|
115
119
|
this.model.f_garbage_fee = this.model.f_garbage_fee + val[i].f_garbage_fee
|
|
116
|
-
this.model.selectedids.push({id:val[i].handplan_id})
|
|
120
|
+
this.model.selectedids.push({id: val[i].handplan_id})
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
123
|
if (val.length == 0) {
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id="loadering_small" class="" v-if="isBusy">
|
|
3
|
+
<div class="content">
|
|
4
|
+
<div id="loader">
|
|
5
|
+
<div id="dot1" class="dot"></div>
|
|
6
|
+
<div id="dot2" class="dot"></div>
|
|
7
|
+
<div id="dot3" class="dot"></div>
|
|
8
|
+
<div id="dot4" class="dot"></div>
|
|
9
|
+
</div>
|
|
10
|
+
<h4 class="loadmessage">正在工作,请等待!</h4>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script>
|
|
16
|
+
export default {
|
|
17
|
+
title: 'busy',
|
|
18
|
+
props: ['isBusy'],
|
|
19
|
+
data() {
|
|
20
|
+
return {
|
|
21
|
+
isBusy: false
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<style>
|
|
28
|
+
#loadering_small {
|
|
29
|
+
bottom: 0;
|
|
30
|
+
right: 0;
|
|
31
|
+
left: 0;
|
|
32
|
+
z-index: 9999;
|
|
33
|
+
display: flex;
|
|
34
|
+
text-align: center;
|
|
35
|
+
margin: 15% auto;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
position: relative;
|
|
38
|
+
align-items: center;
|
|
39
|
+
background: rgba(255, 255, 255, 0.8);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#loader {
|
|
43
|
+
display: flex;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
align-items: center;
|
|
46
|
+
background: rgba(255, 255, 255, 0.8);
|
|
47
|
+
height: auto;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.dot {
|
|
51
|
+
height: 20px;
|
|
52
|
+
width: 20px;
|
|
53
|
+
border-radius: 10px;
|
|
54
|
+
display: inline-block;
|
|
55
|
+
position: relative;
|
|
56
|
+
margin-left: 2em;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.bg-white {
|
|
60
|
+
height: 100%;
|
|
61
|
+
width: 100%;
|
|
62
|
+
background-color: rgba(255, 255, 255, 0.8);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#dot1 {
|
|
66
|
+
background: #ea4335;
|
|
67
|
+
animation-name: dotloader;
|
|
68
|
+
animation-duration: 1s;
|
|
69
|
+
animation-delay: 0.1s;
|
|
70
|
+
animation-iteration-count: infinite;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#dot2 {
|
|
74
|
+
background: #34a853;
|
|
75
|
+
animation-name: dotloader;
|
|
76
|
+
animation-duration: 1s;
|
|
77
|
+
animation-delay: 0.2s;
|
|
78
|
+
animation-iteration-count: infinite;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.content {
|
|
82
|
+
top: 50%;
|
|
83
|
+
position: relative;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#dot3 {
|
|
87
|
+
background: #4285f4;
|
|
88
|
+
animation-name: dotloader;
|
|
89
|
+
animation-duration: 1s;
|
|
90
|
+
animation-delay: 0.3s;
|
|
91
|
+
animation-iteration-count: infinite;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
#dot4 {
|
|
95
|
+
background: #fbbc05;
|
|
96
|
+
animation-name: dotloader;
|
|
97
|
+
animation-duration: 1s;
|
|
98
|
+
animation-delay: 0.4s;
|
|
99
|
+
animation-iteration-count: infinite;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#loader h4 {
|
|
103
|
+
width: 100%;
|
|
104
|
+
text-align: center;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.loadmessage {
|
|
108
|
+
text-align: center;
|
|
109
|
+
margin-left: 2em;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@keyframes dotloader {
|
|
113
|
+
0% {
|
|
114
|
+
top: 0px;
|
|
115
|
+
}
|
|
116
|
+
15% {
|
|
117
|
+
top: 10px;
|
|
118
|
+
}
|
|
119
|
+
30% {
|
|
120
|
+
top: 0px;
|
|
121
|
+
}
|
|
122
|
+
100% {
|
|
123
|
+
top: 0px;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
}
|
|
127
|
+
</style>
|
|
@@ -52,16 +52,13 @@
|
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
54
54
|
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
55
|
-
<!-- <res-select-group style="col-sm-2 form-group" :initres="$parent.$parent.initres"-->
|
|
56
|
-
<!-- :show-component="['company','department','operator']" @re-res="$parent.$parent.getRes"-->
|
|
57
|
-
<!-- v-ref:sel></res-select-group>-->
|
|
58
55
|
<div class="form-group col-sm-2">
|
|
59
|
-
<label class="font_normal_body"
|
|
56
|
+
<label class="font_normal_body">开票日期</label>
|
|
60
57
|
<datepicker id="f_operate_datestarthate" placeholder="开始日期"
|
|
61
58
|
v-model="model.f_operate_datestarthate"
|
|
62
59
|
:value.sync="model.f_operate_datestarthate"
|
|
63
60
|
format="yyyy-MM-dd"
|
|
64
|
-
condition="f_operate_date >= '{}'"
|
|
61
|
+
condition="f_operate_date >= '{} 00:00:00'"
|
|
65
62
|
style="width:60%">
|
|
66
63
|
</datepicker>
|
|
67
64
|
</div>
|
|
@@ -71,7 +68,7 @@
|
|
|
71
68
|
v-model="model.f_operate_dateendDate"
|
|
72
69
|
:value.sync="model.f_operate_dateendDate"
|
|
73
70
|
format="yyyy-MM-dd"
|
|
74
|
-
condition=" f_operate_date <= '{}'"
|
|
71
|
+
condition=" f_operate_date <= '{} 23:59:59'"
|
|
75
72
|
style="width:60%">
|
|
76
73
|
</datepicker>
|
|
77
74
|
</div>
|
|
@@ -141,6 +138,9 @@
|
|
|
141
138
|
<th>
|
|
142
139
|
<nobr>发票类型</nobr>
|
|
143
140
|
</th>
|
|
141
|
+
<th>
|
|
142
|
+
<nobr>收费时间</nobr>
|
|
143
|
+
</th>
|
|
144
144
|
<th>
|
|
145
145
|
<nobr>开票时间</nobr>
|
|
146
146
|
</th>
|
|
@@ -172,6 +172,7 @@
|
|
|
172
172
|
<th style="text-align:center">{{ row.f_bill_number }}</th>
|
|
173
173
|
<th style="text-align:center">{{ row.f_bill_state }}</th>
|
|
174
174
|
<th style="text-align:center">{{ row.f_charge_type }}</th>
|
|
175
|
+
<th style="text-align:center">{{ row.sell_operate_date }}</th>
|
|
175
176
|
<th style="text-align:center">{{ row.f_operate_date }}</th>
|
|
176
177
|
<th style="text-align:center">{{ row.f_operator }}</th>
|
|
177
178
|
<th style="text-align:center">{{ row.sell_operator }}</th>
|
|
@@ -270,6 +271,7 @@ export default {
|
|
|
270
271
|
'f_bill_number': '发票号码',
|
|
271
272
|
'f_bill_state': '发票状态',
|
|
272
273
|
'f_charge_type': '发票类型',
|
|
274
|
+
'sell_operate_date': '收费时间',
|
|
273
275
|
'f_operate_date': '开票时间',
|
|
274
276
|
'f_operator': '开票人',
|
|
275
277
|
'sell_operator': '收款人'
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import Vue from 'vue'
|
|
26
26
|
|
|
27
27
|
let validatorGen = async function (self) {
|
|
28
|
-
let hasHand = await Vue.resetpost('rs/sql/saleSingleTable', {data: {tablename: 't_handplan', condition: `f_meter_state = '未抄表' and f_user_id = '${self.model.f_user_id}'`}}, {resolveMsg: null, rejectMsg: null})
|
|
28
|
+
let hasHand = await Vue.resetpost('rs/sql/saleSingleTable', {data: {tablename: 't_handplan', condition: `f_meter_state = '未抄表' and f_user_id = '${self.model.f_user_id}'`}}, {resolveMsg: null, rejectMsg: null, newly: true})
|
|
29
29
|
// 如果是总表判断分表是否已抄
|
|
30
30
|
console.log('换标,看有没有总分表', self.row.f_totalsplit_type)
|
|
31
31
|
let getSplitHand = false
|
|
@@ -127,19 +127,38 @@
|
|
|
127
127
|
</tr>
|
|
128
128
|
</tbody>
|
|
129
129
|
</table>
|
|
130
|
-
<table class="table table-striped table-bordered" v-if="model.safecheckitem.length>0 && model.datasource =='newos'">
|
|
130
|
+
<table class="table table-striped table-bordered" v-if="model.safecheckitem.length>0 && model.datasource =='newos'" v-for="checkitem in model.safecheckitem">
|
|
131
131
|
<thead>
|
|
132
132
|
<tr> <th colspan="4" style="text-align: center;background-color: #8cbce2;">隐患详情</th></tr>
|
|
133
133
|
</thead>
|
|
134
|
-
<tr
|
|
134
|
+
<tr>
|
|
135
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">隐患名称:</td>
|
|
135
136
|
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ checkitem.f_item_name }}</td>
|
|
136
|
-
<td style="text-align: center;border: #E9E9E9 solid 1px;width:
|
|
137
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">隐患照片:</td>
|
|
138
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%" v-if="checkitem.f_path">
|
|
137
139
|
<img-self :src="'rs/image/file/'+checkitem.f_path" style="float: left" width="100" height="150"></img-self>
|
|
138
140
|
</td>
|
|
139
|
-
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%" v-if="checkitem.f_path
|
|
141
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%" v-if="!checkitem.f_path">
|
|
140
142
|
暂无图片
|
|
141
143
|
</td>
|
|
142
144
|
</tr>
|
|
145
|
+
<tr>
|
|
146
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">隐患处理状态:</td>
|
|
147
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ checkitem.f_is_repaired }}</td>
|
|
148
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">隐患处理照片:</td>
|
|
149
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%" v-if="checkitem.f_repair_path">
|
|
150
|
+
<img-self :src="'rs/image/file/'+checkitem.f_repair_path" style="float: left" width="100" height="150"></img-self>
|
|
151
|
+
</td>
|
|
152
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%" v-if="!checkitem.f_repair_path">
|
|
153
|
+
暂无图片
|
|
154
|
+
</td>
|
|
155
|
+
</tr>
|
|
156
|
+
<tr v-if="checkitem.f_is_repaired != '隐患未处理'">
|
|
157
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">隐患处理人:</td>
|
|
158
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ checkitem.f_repairman }}</td>
|
|
159
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">隐患处理时间:</td>
|
|
160
|
+
<td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ checkitem.f_repair_date }}</td>
|
|
161
|
+
</tr>
|
|
143
162
|
</table>
|
|
144
163
|
|
|
145
164
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<div class="form-group col-sm-4" v-if="$parent.$parent.clientWidth<1600">
|
|
31
31
|
<label class="font_normal_body">客户名称</label>
|
|
32
32
|
<input type="text" class="input_search" style="width:60%" v-model="model.f_user_name" placeholder='客户名称'
|
|
33
|
-
@keyup.enter="search(), $parent.$parent.clean()" condition="f_user_name
|
|
33
|
+
@keyup.enter="search(), $parent.$parent.clean()" condition="f_user_name like '%{}%'">
|
|
34
34
|
</div>
|
|
35
35
|
<div class="form-group col-sm-4">
|
|
36
36
|
<label class="font_normal_body">旧客户号</label>
|
|
@@ -53,12 +53,12 @@
|
|
|
53
53
|
<!-- :show-component="['company','department','operator']" @re-res="$parent.$parent.getRes"-->
|
|
54
54
|
<!-- v-ref:sel></res-select-group>-->
|
|
55
55
|
<div class="form-group col-sm-2">
|
|
56
|
-
<label class="font_normal_body"
|
|
56
|
+
<label class="font_normal_body">开票日期</label>
|
|
57
57
|
<datepicker id="f_operate_datestarthate" placeholder="开始日期"
|
|
58
58
|
v-model="model.f_operate_datestarthate"
|
|
59
59
|
:value.sync="model.f_operate_datestarthate"
|
|
60
60
|
format="yyyy-MM-dd"
|
|
61
|
-
condition="f_operate_date >= '{}'"
|
|
61
|
+
condition="f_operate_date >= '{} 00:00:00'"
|
|
62
62
|
style="width:60%">
|
|
63
63
|
</datepicker>
|
|
64
64
|
</div>
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
v-model="model.f_operate_dateendDate"
|
|
69
69
|
:value.sync="model.f_operate_dateendDate"
|
|
70
70
|
format="yyyy-MM-dd"
|
|
71
|
-
condition=" f_operate_date <= '{}'"
|
|
71
|
+
condition=" f_operate_date <= '{} 23:59:59'"
|
|
72
72
|
style="width:60%">
|
|
73
73
|
</datepicker>
|
|
74
74
|
</div>
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id="unit" class="flex-row">
|
|
3
|
+
<div class="basic-main">
|
|
4
|
+
<div class="flex">
|
|
5
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
6
|
+
<criteria partial='criteria' v-ref:criteria @condition-changed="$parent.selfSearch">
|
|
7
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
8
|
+
<div class="row">
|
|
9
|
+
<div class="form-group col-sm-2" >
|
|
10
|
+
<label class="font_normal_body">客户编号</label>
|
|
11
|
+
<input type="text" class="input_search" style="width:60%"
|
|
12
|
+
v-model="model.f_userinfo_code" placeholder='客户编号'
|
|
13
|
+
condition="f_userinfo_code = '{}'" >
|
|
14
|
+
</div>
|
|
15
|
+
<div class="form-group col-sm-2">
|
|
16
|
+
<label class="font_normal_body">客户名称</label>
|
|
17
|
+
<input type="text" class="input_search" style="width:60%"
|
|
18
|
+
v-model="model.f_user_name" placeholder='客户名称'
|
|
19
|
+
condition="f_user_name = '{}'">
|
|
20
|
+
</div>
|
|
21
|
+
<div class="form-group col-sm-2" >
|
|
22
|
+
<label class="font_normal_body">开始日期</label>
|
|
23
|
+
<datepicker placeholder="开始日期"
|
|
24
|
+
style="width:60%"
|
|
25
|
+
v-model="model.startDate"
|
|
26
|
+
:value.sync="model.startDate"
|
|
27
|
+
:format="'yyyy-MM-dd'"
|
|
28
|
+
></datepicker>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="form-group col-sm-2" >
|
|
31
|
+
<label class="font_normal_body">结束日期</label>
|
|
32
|
+
<datepicker placeholder="结束日期"
|
|
33
|
+
style="width:60%"
|
|
34
|
+
v-model="model.endDate"
|
|
35
|
+
:value.sync="model.endDate"
|
|
36
|
+
:format="'yyyy-MM-dd'"
|
|
37
|
+
></datepicker>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="span" style="float:right;">
|
|
40
|
+
<!-- <button class="button_new" style="width: max-content" v-show="$parent.$parent.pricechange" @click="$parent.$parent.priceshow()">批量调价</button> -->
|
|
41
|
+
<button class="button_search" @click="search()" v-el:cx>查询</button>
|
|
42
|
+
<button class="button_clear" @click="$parent.$parent.clear()">清空</button>
|
|
43
|
+
<div style="float: right" class="button_spacing"
|
|
44
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
45
|
+
@click="$parent.$parent.hidden()"></div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
49
|
+
<div class="form-group col-sm-2">
|
|
50
|
+
<label class="font_normal_body">客户地址</label>
|
|
51
|
+
<input type="text" class="input_search" style="width:60%" style="width:60%" v-model="model.f_address" placeholder='客户地址'
|
|
52
|
+
condition="u3.f_address like '%{}%'">
|
|
53
|
+
</div>
|
|
54
|
+
<div class="form-group col-sm-2">
|
|
55
|
+
<label class="font_normal_body">电  话</label>
|
|
56
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_user_phone" placeholder='电话'
|
|
57
|
+
condition="f_user_phone like '%{}%'">
|
|
58
|
+
</div>
|
|
59
|
+
<div class="form-group col-sm-2">
|
|
60
|
+
<label class="font_normal_body">表  号</label>
|
|
61
|
+
<input type="text" class="input_search" style="width:60%" style="width:60%" v-model="model.f_meternumber" placeholder='表号'
|
|
62
|
+
condition="f_meternumber like '%{}%'">
|
|
63
|
+
</div>
|
|
64
|
+
<div class="form-group col-sm-2">
|
|
65
|
+
<label class="font_normal_body">状  态</label>
|
|
66
|
+
<v-select id="price_states"
|
|
67
|
+
v-model="model.price_states"
|
|
68
|
+
placeholder='调价状态'
|
|
69
|
+
style="width: 60%"
|
|
70
|
+
:value.sync="model.price_states"
|
|
71
|
+
:options='$parent.$parent.price_states'
|
|
72
|
+
condition="s.f_change_price {}"
|
|
73
|
+
close-on-select></v-select>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="form-group col-sm-2">
|
|
76
|
+
<label class="font_normal_body">用户类型</label>
|
|
77
|
+
<v-select id="f_user_tye"
|
|
78
|
+
v-model="model.f_user_type"
|
|
79
|
+
placeholder='用户类型'
|
|
80
|
+
style="width: 60%"
|
|
81
|
+
@change="$parent.$parent.userTypeChange"
|
|
82
|
+
:value.sync="model.f_user_type"
|
|
83
|
+
:options='$parent.$parent.userTypes'
|
|
84
|
+
condition="u2.f_user_type = '{}'"
|
|
85
|
+
close-on-select></v-select>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="form-group col-sm-2">
|
|
88
|
+
<label class="font_normal_body">气  价</label>
|
|
89
|
+
<v-select id="f_price_name"
|
|
90
|
+
v-model="model.price_name"
|
|
91
|
+
placeholder='气价名称'
|
|
92
|
+
style="width: 60%"
|
|
93
|
+
:value.sync="model.price_name"
|
|
94
|
+
:options='$parent.$parent.price_name'
|
|
95
|
+
condition="sp.id = '{}'"
|
|
96
|
+
close-on-select></v-select>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</criteria>
|
|
101
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid >
|
|
102
|
+
<template partial='head'>
|
|
103
|
+
<tr>
|
|
104
|
+
<th><nobr>序号</nobr></th>
|
|
105
|
+
<th><nobr>客户编号</nobr></th>
|
|
106
|
+
<th><nobr>表号</nobr></th>
|
|
107
|
+
<th><nobr>姓名</nobr></th>
|
|
108
|
+
<th><nobr>客户类型</nobr></th>
|
|
109
|
+
<th><nobr>气表类型</nobr></th>
|
|
110
|
+
<th><nobr>表端余量</nobr></th>
|
|
111
|
+
<th><nobr>调价后购买量</nobr></th>
|
|
112
|
+
<th><nobr>补差单价</nobr></th>
|
|
113
|
+
<th><nobr>上期底数</nobr></th>
|
|
114
|
+
<th><nobr>本期底数</nobr></th>
|
|
115
|
+
<th><nobr>补差气量</nobr></th>
|
|
116
|
+
<th><nobr>补差金额</nobr></th>
|
|
117
|
+
<th><nobr>差价来源</nobr></th>
|
|
118
|
+
<th><nobr>抄表日期</nobr></th>
|
|
119
|
+
<th><nobr>操作</nobr></th>
|
|
120
|
+
</tr>
|
|
121
|
+
</template>
|
|
122
|
+
<template partial='body'>
|
|
123
|
+
<td style="text-align: center;">{{$index+1}}</td>
|
|
124
|
+
<th style="text-align: center;">{{row.f_userinfo_code}}</th>
|
|
125
|
+
<th style="text-align: center;">{{row.f_meternumber}}</th>
|
|
126
|
+
<th style="text-align: center;">{{row.f_user_name}}</th>
|
|
127
|
+
<th style="text-align: center;">{{row.f_user_type}}</th>
|
|
128
|
+
<th style="text-align: center;">{{row.f_meter_type}}</th>
|
|
129
|
+
<th style="text-align: center;">
|
|
130
|
+
<div class="form-group" style="margin-bottom:0px;"
|
|
131
|
+
v-if="row.f_surplus_fee===null">
|
|
132
|
+
<input type="text" class="form-control" v-model="row.f_shengyu_gas " @blur="$parent.$parent.$parent.getGas(row)"
|
|
133
|
+
v-next-el="{id: $index+1}" :id="$index" style="width: 100px;padding: 6px;" :disabled="row.state === '开始'">
|
|
134
|
+
</div>
|
|
135
|
+
<div v-else>{{row.f_shengyu_gas}}</div>
|
|
136
|
+
</th>
|
|
137
|
+
<th style="text-align: center;">
|
|
138
|
+
<div class="form-group" style="margin-bottom:0px;"
|
|
139
|
+
v-if="row.f_surplus_fee===null">
|
|
140
|
+
<input type="text" class="form-control" v-model="row.f_buy_gas" @blur="$parent.$parent.$parent.getGas(row)"
|
|
141
|
+
v-next-el="{id: $index+1}" :id="$index" style="width: 100px;padding: 6px;" :disabled="row.state === '开始'">
|
|
142
|
+
</div>
|
|
143
|
+
<div v-else>{{row.f_buy_gas}}</div>
|
|
144
|
+
</th>
|
|
145
|
+
<th style="text-align: center;">
|
|
146
|
+
<div class="form-group" style="margin-bottom:0px;"
|
|
147
|
+
v-if="row.f_surplus_fee===null">
|
|
148
|
+
<input type="text" class="form-control" v-model="row.f_change_price" @blur="$parent.$parent.$parent.enter(row)"
|
|
149
|
+
v-next-el="{id: $index+1}" :id="$index" style="width: 100px;padding: 6px;" >
|
|
150
|
+
</div>
|
|
151
|
+
<div v-else>{{row.f_change_price}}</div>
|
|
152
|
+
</th>
|
|
153
|
+
<th style="text-align: center;">{{row.f_last_tablebase}}</th>
|
|
154
|
+
<th style="text-align: center;">{{row.f_tablebase}}</th>
|
|
155
|
+
<th style="text-align: center;">
|
|
156
|
+
<div >{{row.f_real_amount}}</div>
|
|
157
|
+
|
|
158
|
+
</th>
|
|
159
|
+
<th style="text-align: center;">{{row.f_surplus_fee}}</th>
|
|
160
|
+
<th style="text-align: center;">{{row.f_source}}</th>
|
|
161
|
+
<th style="text-align: center;">{{row.f_input_date}}</th>
|
|
162
|
+
<th style="text-align: center;">
|
|
163
|
+
<button type="button" name="button" class="btn btn-link" v-if="row.f_change_price"
|
|
164
|
+
@click.stop="$parent.$parent.$parent.delectHand(row) && row.states === 1">冲正
|
|
165
|
+
</button>
|
|
166
|
+
</th>
|
|
167
|
+
</template>
|
|
168
|
+
</data-grid>
|
|
169
|
+
</criteria-paged>
|
|
170
|
+
<modal :show.sync="show" >
|
|
171
|
+
<header slot="modal-header" class="modal-header">
|
|
172
|
+
<h4 class="modal-title">调 价 补 差</h4>
|
|
173
|
+
</header>
|
|
174
|
+
<article slot="modal-body" class="modal-body">
|
|
175
|
+
<div class="form-group">
|
|
176
|
+
<p>价格:</p>
|
|
177
|
+
<input type="text" class="form-control" v-model="f_new_price" >
|
|
178
|
+
</div>
|
|
179
|
+
</article>
|
|
180
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
181
|
+
<button class="button_search" @click="priceadjustment">生成调价补差表</button>
|
|
182
|
+
<button type="button" class="btn btn-default" @click='close'>取消</button>
|
|
183
|
+
</footer>
|
|
184
|
+
</modal>
|
|
185
|
+
<work-busy :is-busy="locking" v-show="locking"></work-busy>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</template>
|
|
190
|
+
|
|
191
|
+
<script>
|
|
192
|
+
import { HttpResetClass } from 'vue-client'
|
|
193
|
+
import { PagedList } from 'vue-client'
|
|
194
|
+
import Vue from 'vue'
|
|
195
|
+
let readySomething = async function (self) {
|
|
196
|
+
self.$refs.paged.$refs.criteria.model.startDate = self.$login.toStandardDateString()
|
|
197
|
+
self.$refs.paged.$refs.criteria.model.endDate = self.$login.toStandardDateString()
|
|
198
|
+
self.$resetpost('rs/sql/getpriceid', {data: {f_filialeids: self.$login.f.orgid}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
199
|
+
console.log(res.data)
|
|
200
|
+
let rs = []
|
|
201
|
+
for (let i = 0; i < res.data.length; i++) {
|
|
202
|
+
if (res.data[i].f_price_type === '固定气价') {
|
|
203
|
+
let temp = {
|
|
204
|
+
label: res.data[i].f_price_name,
|
|
205
|
+
flage: res.data[i].f_user_type,
|
|
206
|
+
value: res.data[i].id
|
|
207
|
+
}
|
|
208
|
+
rs.push(temp)
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
console.log(rs)
|
|
212
|
+
self.pricers = [{label: '全部', value: '', flage: ''}, ...rs]
|
|
213
|
+
self.$refs.paged.$refs.criteria.search()
|
|
214
|
+
})
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export default {
|
|
218
|
+
title: '调价补差',
|
|
219
|
+
data () {
|
|
220
|
+
return {
|
|
221
|
+
pricechange: true,
|
|
222
|
+
criteriaShow: false,
|
|
223
|
+
pricers: [{label: '全部', value: '', flage: ''}],
|
|
224
|
+
price_name: [{label: '全部', value: ''}],
|
|
225
|
+
price_states: [{label: '全部', value: ''}, {label: '已调价', value: 'is not null'}, {label: '未调价', value: ' is null'}],
|
|
226
|
+
// source: [{label: '卡表抄表', value: '卡表抄表'}, {label: '机表抄表', value: '机表抄表'}],
|
|
227
|
+
userTypes: this.$appdata.getParam('用户类型') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')] : [],
|
|
228
|
+
condition: '',
|
|
229
|
+
locking: false,
|
|
230
|
+
model: new PagedList('rs/sql/get_UserChargeCard', 20, {startDate: 'this.model.startDate', endDate: 'this.model.endDate', price_states: 'this.model.price_states[0]', addSelectParam: 'this.model.addSelectParam'}),
|
|
231
|
+
f_new_price: 0.0,
|
|
232
|
+
f_new_pregas:'',
|
|
233
|
+
show: false,
|
|
234
|
+
addSelectParam: ''
|
|
235
|
+
// joinTable:'',
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
ready () {
|
|
239
|
+
readySomething(this).then(() => {
|
|
240
|
+
this.$emit('ready')
|
|
241
|
+
}).catch((error) => {
|
|
242
|
+
this.$emit('error', error)
|
|
243
|
+
})
|
|
244
|
+
},
|
|
245
|
+
methods: {
|
|
246
|
+
hidden () {
|
|
247
|
+
this.criteriaShow = !this.criteriaShow
|
|
248
|
+
},
|
|
249
|
+
// 用户类型发生改变
|
|
250
|
+
userTypeChange () {
|
|
251
|
+
this.price_name = []
|
|
252
|
+
if (this.$refs.paged.$refs.criteria.model.f_user_type) {
|
|
253
|
+
if (this.$refs.paged.$refs.criteria.model.f_user_type[0]) {
|
|
254
|
+
for (let i = 0; i < this.pricers.length; i++) {
|
|
255
|
+
if (this.pricers[i].flage === this.$refs.paged.$refs.criteria.model.f_user_type[0]) {
|
|
256
|
+
let rs = {
|
|
257
|
+
label: this.pricers[i].label,
|
|
258
|
+
value: this.pricers[i].value
|
|
259
|
+
}
|
|
260
|
+
this.price_name.push(rs)
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// 选择全部时就放进去所有的气价
|
|
266
|
+
if (this.price_name.length === 0) {
|
|
267
|
+
for (let i = 0; i < this.pricers.length; i++) {
|
|
268
|
+
let rs = {
|
|
269
|
+
label: this.pricers[i].label,
|
|
270
|
+
value: this.pricers[i].value
|
|
271
|
+
}
|
|
272
|
+
this.price_name.push(rs)
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
getGas(row){
|
|
277
|
+
console.log(row)
|
|
278
|
+
if(row.f_shengyu_gas&&row.f_buy_gas){
|
|
279
|
+
row.f_real_amount = (row.f_shengyu_gas-0) + (row.f_buy_gas-0)
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
// 冲正
|
|
283
|
+
delectHand (row) {
|
|
284
|
+
this.$showMessage('冲正后不可恢复,确定冲正吗?', ['confirm', 'cancel']).then((res) => {
|
|
285
|
+
if (res === 'confirm') {
|
|
286
|
+
row.f_operator = this.$login.f.name
|
|
287
|
+
row.f_operatorid = this.$login.f.id
|
|
288
|
+
row.f_orgid = this.$login.f.orgid
|
|
289
|
+
row.f_orgname = this.$login.f.orgs
|
|
290
|
+
row.f_depid = this.$login.f.depids
|
|
291
|
+
row.f_depname = this.$login.f.deps
|
|
292
|
+
this.$resetpost('rs/logic/newpriceAdjustmentOffset', {data: row}).then(() => {
|
|
293
|
+
// this.$dispatch('refresh', '正在处理', row)
|
|
294
|
+
this.selfSearch(this.model)
|
|
295
|
+
})
|
|
296
|
+
}
|
|
297
|
+
})
|
|
298
|
+
},
|
|
299
|
+
priceshow () {
|
|
300
|
+
this.show = true
|
|
301
|
+
},
|
|
302
|
+
close () {
|
|
303
|
+
this.show = false
|
|
304
|
+
this.f_new_price = 0.0
|
|
305
|
+
},
|
|
306
|
+
async priceadjustment () {
|
|
307
|
+
this.$showMessage('确认生成补差记录吗?', ['cancel', 'confirm']).then(
|
|
308
|
+
(response) => {
|
|
309
|
+
if (response === 'confirm') {
|
|
310
|
+
this.show = false
|
|
311
|
+
this.locking = true
|
|
312
|
+
this.getAdjustData()
|
|
313
|
+
}
|
|
314
|
+
})
|
|
315
|
+
},
|
|
316
|
+
enter (row) {
|
|
317
|
+
let money = (row.f_real_amount-0)*(row.f_change_price-0)
|
|
318
|
+
let message =`是否确认对用户${row.f_userinfo_code}进行调价补差,补差气量为${row.f_real_amount},补差金额为${money}`
|
|
319
|
+
this.$showMessage(message, ['confirm', 'cancel']).then((res) => {
|
|
320
|
+
if (res === 'confirm') {
|
|
321
|
+
|
|
322
|
+
let param = {
|
|
323
|
+
f_state: '有效',
|
|
324
|
+
f_operator: this.$login.f.name,
|
|
325
|
+
f_operatorid: this.$login.f.id,
|
|
326
|
+
f_orgid: this.$login.f.orgid,
|
|
327
|
+
f_orgname: this.$login.f.orgs,
|
|
328
|
+
f_depid: this.$login.f.depids,
|
|
329
|
+
f_depname: this.$login.f.deps,
|
|
330
|
+
f_start_date: this.model.model.startDate + ' 00:00:00',
|
|
331
|
+
f_end_date: this.model.model.endDate + ' 23:59:59',
|
|
332
|
+
row: row
|
|
333
|
+
}
|
|
334
|
+
this.$resetpost( 'rs/logic/newpriceAdjustment', {data: param}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
|
|
335
|
+
this.selfSearch(this.model)
|
|
336
|
+
})
|
|
337
|
+
|
|
338
|
+
}
|
|
339
|
+
} )
|
|
340
|
+
},
|
|
341
|
+
async getAdjustData () {
|
|
342
|
+
try {
|
|
343
|
+
let http = new HttpResetClass()
|
|
344
|
+
let detail = await http.load('POST', 'rs/sql/get_UserChargeCard',
|
|
345
|
+
{data: {condition: this.condition, startDate: this.model.model.startDate, endDate: this.model.model.endDate, addSelectParam: '', price_states: 'not'}}, {resolveMsg: null, rejectMsg: null})
|
|
346
|
+
console.log(detail.data)
|
|
347
|
+
let param = {
|
|
348
|
+
f_state: '有效',
|
|
349
|
+
f_new_price: parseFloat(this.f_new_price),
|
|
350
|
+
f_operator: this.$login.f.name,
|
|
351
|
+
f_operatorid: this.$login.f.id,
|
|
352
|
+
f_orgid: this.$login.f.orgid,
|
|
353
|
+
f_orgname: this.$login.f.orgs,
|
|
354
|
+
f_depid: this.$login.f.depids,
|
|
355
|
+
f_depname: this.$login.f.deps,
|
|
356
|
+
f_start_date: this.model.model.startDate + ' 00:00:00',
|
|
357
|
+
f_end_date: this.model.model.endDate + ' 23:59:59',
|
|
358
|
+
condition: this.condition
|
|
359
|
+
}
|
|
360
|
+
let http2 = new HttpResetClass()
|
|
361
|
+
for (var i = 0; i < detail.data.length; i++) {
|
|
362
|
+
param.row = detail.data[i]
|
|
363
|
+
await http2.load('POST', 'rs/logic/newpriceAdjustment', {data: param}, {resolveMsg: null, rejectMsg: null})
|
|
364
|
+
}
|
|
365
|
+
this.close()
|
|
366
|
+
this.$showMessage('已生成了' + detail.data.length + '条调价补差记录', ['confirm'])
|
|
367
|
+
this.$refs.paged.$refs.criteria.search()
|
|
368
|
+
this.locking = false
|
|
369
|
+
} catch (error) {
|
|
370
|
+
this.$showAlert('生成调价补差表失败!!!', 'error', 3)
|
|
371
|
+
this.locking = false
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
search () {
|
|
375
|
+
this.selfSearch()
|
|
376
|
+
},
|
|
377
|
+
selfSearch (args) {
|
|
378
|
+
args.model.addSelectParam = ''
|
|
379
|
+
// args.model.joinTable =''
|
|
380
|
+
if (args.model.price_states.toString() === '') {
|
|
381
|
+
this.pricechange = false
|
|
382
|
+
// args.model.addSelectParam = 'u5.f_surplus_fee,u5.id,u5.f_state,u5.f_new_price,u5.f_old_price,u5.f_change_price,u5.f_whether_pay,u5.f_sell_id,'
|
|
383
|
+
// args.model.joinTable = 'left join t_surplus_detail u5 on u5.f_handplan_id = u1.f_handplan_id'
|
|
384
|
+
} else {
|
|
385
|
+
this.pricechange = true
|
|
386
|
+
}
|
|
387
|
+
this.condition = `${args.condition} and u2.f_orgid = '${this.$login.f.orgid}'`
|
|
388
|
+
this.model.search(this.condition, args.model)
|
|
389
|
+
},
|
|
390
|
+
clear () {
|
|
391
|
+
Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
|
|
392
|
+
this.$refs.paged.$refs.criteria.model[key] = ''
|
|
393
|
+
})
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
computed: {
|
|
397
|
+
},
|
|
398
|
+
watch: {
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
</script>
|
|
402
|
+
|
|
403
|
+
<style >
|
|
404
|
+
</style>
|
|
@@ -77,6 +77,8 @@ export default function () {
|
|
|
77
77
|
Vue.component('compensation-manage', (resolve) => { require(['./business/PriceChangeCompensation/CompensationManage'], resolve) })
|
|
78
78
|
// 生成调价补差
|
|
79
79
|
Vue.component('price-adjustment', (resolve) => { require(['./PriceAdjustment'], resolve) })
|
|
80
|
+
// 生成调价补差
|
|
81
|
+
Vue.component('price-adjustment-card', (resolve) => { require(['./PriceAdjustmentCard'], resolve) })
|
|
80
82
|
// 生成余量补差
|
|
81
83
|
Vue.component('remain-adjustment', (resolve) => { require(['./RemainAdjustment'], resolve) })
|
|
82
84
|
// 机表发卡
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
<validator name='v'>
|
|
4
4
|
<form class="form-horizontal">
|
|
5
5
|
<div class="row">
|
|
6
|
-
<div class="col-sm-4 form-group">
|
|
6
|
+
<div class="col-sm-4 form-group" :class="[$v.reason.required ? 'has-error' : '']">
|
|
7
7
|
<label for="f_reason" class="font_normal_body">停用原因</label>
|
|
8
|
+
<input type="text" v-show="false" v-model="$refs.reason.selectedItems" v-validate:reason='{required: true }'>
|
|
8
9
|
<v-select v-model="model.f_reason"
|
|
9
10
|
placeholder='停用原因'
|
|
10
11
|
:value.sync="model.f_reason"
|
|
@@ -151,10 +151,11 @@
|
|
|
151
151
|
// this.$showAlert('按气量缴费的物联网表退费功能尚未开放!!', 'warning', 3000)
|
|
152
152
|
this.model.f_price = this.data.f_price
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
console.log(123)
|
|
155
|
+
if (this.data.f_calculation !== '系统结算' && this.data.f_issupport_feededuction === '否') {
|
|
156
|
+
this.check = false
|
|
157
|
+
this.$showAlert('该表型不支持扣费!!', 'warning', 3000)
|
|
158
|
+
}
|
|
158
159
|
}
|
|
159
160
|
},
|
|
160
161
|
methods: {
|
package/src/main.js
CHANGED
|
@@ -3,7 +3,7 @@ import all from 'vue-client/src/all'
|
|
|
3
3
|
import App from './App'
|
|
4
4
|
import system from 'system-clients/src/system'
|
|
5
5
|
import sale from './sale'
|
|
6
|
-
import wenxi from './filiale/
|
|
6
|
+
import wenxi from './filiale/rizhao/sale'
|
|
7
7
|
// import FilialeSale from './filiale/yuansheng/sale'
|
|
8
8
|
import address from 'address-client/src/address'
|
|
9
9
|
import ldap from 'ldap-clients/src/ldap'
|
|
@@ -11,6 +11,7 @@ import VueClipboard from 'vue-clipboard2'
|
|
|
11
11
|
|
|
12
12
|
Vue.use(VueClipboard)
|
|
13
13
|
Vue.config.silent = true
|
|
14
|
+
|
|
14
15
|
all()
|
|
15
16
|
system(false)
|
|
16
17
|
sale()
|