sale-client 4.0.40-preview → 4.0.41-preview

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.
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  var path = require('path')
2
2
  var checkVersion = require('./versionCheck.js')
3
3
  checkVersion()
4
- const [ serverRul, localUrl, v4Url ] = ['http://192.168.50.4:8400/', 'http://localhost:8080', 'http://localhost:9026/']
4
+ const [ serverRul, localUrl, v4Url ] = ['http://192.168.50.4:8400/', 'http://192.168.50.4:8400/', 'http://localhost:9026/']
5
5
  var merge = require('webpack-merge')
6
6
  var baseConfig = require('./webpack.dev.conf')
7
7
  var devConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "4.0.40-preview",
3
+ "version": "4.0.41-preview",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,253 @@
1
+ <template >
2
+ <div class="flex" style="justify-content: space-between;">
3
+ <div @keyup.enter="search" style="">
4
+ <criteria-paged :model="model" v-ref:paged>
5
+ <criteria @condition-changed='$parent.search' partial='criteria' v-ref:criteria>
6
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
+ <div class="row">
8
+
9
+ <div class="col-sm-2 form-group">
10
+ <label class="font_normal_body">开始时间</label>
11
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
12
+ class="datepicker"
13
+ condition="f_operate_date >= '{} 00:00:00' "
14
+ placeholder="起始时间"
15
+ style="width:60%"
16
+ v-model="model.f_start_date"
17
+ ></datepicker>
18
+ </div>
19
+ <div class="col-sm-2 form-group" >
20
+ <label class="font_normal_body" >结束时间</label>
21
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
22
+ class="datepicker"
23
+ condition="f_operate_date <= '{} 23:59:59' "
24
+ placeholder="结束时间"
25
+ style="width:60%"
26
+ v-model="model.f_end_date"
27
+ ></datepicker>
28
+ </div>
29
+ <div class="col-sm-2 form-group">
30
+ <label class="font_normal_body">是否有效</label>
31
+ <v-select :value.sync="model.f_state" v-model='model.f_state'
32
+ style="width:60%"
33
+ :options='$parent.$parent.isstates' placeholder='是否有效'
34
+ close-on-select
35
+ condition="f_state = '{}'"></v-select>
36
+ </div>
37
+
38
+ <div style="float: right">
39
+ <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
40
+ <print-data :defaultfield="$parent.$parent.defaultfield" :field="$parent.$parent.fields" :is-selected="true" :model="$parent.$parent.printModel"
41
+ @print-data="$parent.$parent.print()" print-name="其他收费流水"></print-data>
42
+ </div>
43
+ </div>
44
+
45
+ </div>
46
+ </criteria>
47
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
48
+ <template partial='head'>
49
+ <tr>
50
+
51
+ <th><nobr>收费类型</nobr></th>
52
+ <th><nobr>品名规格</nobr></th>
53
+ <th><nobr>型号</nobr></th>
54
+ <th><nobr>数量</nobr></th>
55
+ <th><nobr>单价</nobr></th>
56
+ <th><nobr>优惠金额</nobr></th>
57
+ <th><nobr>金额</nobr></th>
58
+ <th><nobr>操作员</nobr></th>
59
+ <th><nobr>操作日期</nobr></th>
60
+ <th><nobr>状态</nobr></th>
61
+ <th><nobr>备注</nobr></th>
62
+ </tr>
63
+ </template>
64
+ <template partial='body' partial='list' v-ref:grid>
65
+ <tr >
66
+ <th style="text-align:center">{{row.f_brand_spec}}</th>
67
+ <th style="text-align:center">{{row.f_typename}}</th>
68
+ <th style="text-align:center">{{row.f_typenumber}}</th>
69
+ <th style="text-align:center">{{row.f_number}}</th>
70
+ <th style="text-align:center">{{row.f_unitprice}}</th>
71
+ <th style="text-align:center">{{row.f_discount_amount}}</th>
72
+ <th style="text-align:center">{{row.f_unitprice*row.f_number-row.f_discount_amount}}</th>
73
+ <th style="text-align:center">{{row.f_operator}}</th>
74
+ <th style="text-align:center">{{row.f_operate_date}}</th>
75
+ <td style="text-align: center;">{{row.f_state}}</td>
76
+ <th style="text-align:center">{{row.f_comments}}</th>
77
+ </tr>
78
+ </template>
79
+ <template partial='foot'></template>
80
+ </data-grid>
81
+ </criteria-paged>
82
+
83
+ </div>
84
+ <table class="table-hover">
85
+ <tr class="table-bordered" style="position: relative">
86
+ <td
87
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
88
+ 汇总信息
89
+ </td>
90
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
91
+ 金额合计:&emsp;{{model.sums.f_collection}}
92
+ </td>
93
+ </tr>
94
+ </table>
95
+ </div>
96
+ <other-charge-query-user-detail v-if="showdetail" :otherchargeid="otherchargeid" :showdetail.sync="showdetail"></other-charge-query-user-detail>
97
+ </template>
98
+
99
+ <script>
100
+ import {HttpResetClass, PagedList} from 'vue-client'
101
+ import OtherChargeQueryUserDetail from './OtherChargeQueryUserDetail'
102
+
103
+ export default {
104
+ title: '其他收费查询',
105
+ components: {
106
+ OtherChargeQueryUserDetail
107
+ },
108
+ data () {
109
+ return {
110
+ condition: '1=1',
111
+ model: new PagedList('api/af-revenue/sql/sale_OtherChargeQuery', 20, {}, {
112
+ f_collection: 0
113
+ }),
114
+ isstates: this.$appdata.getParam('是否有效') ? [{
115
+ label: '全部',
116
+ value: ''
117
+ }, ...this.$appdata.getParam('是否有效')] : [],
118
+ // 控制单选
119
+ radio: [],
120
+ searchValue: this.$appdata.getSingleValue('综合条件查询') ? this.$appdata.getSingleValue('综合条件查询') : 'f_userfiles_id',
121
+ showdetail: false,
122
+ otherchargeid: '',
123
+ // 选中的页
124
+ all: [],
125
+ // row数据
126
+ rowsdata: [],
127
+ // fields:{'f_brand_spec': '品牌','f_number': '数量','f_unitprice': '单价','f_collection':'收款','f_operator':'操作员', 'f_operate_date':'操作日期'},
128
+ fields: {'f_userinfo_code': '客户编号', 'f_user_name': '客户姓名', 'f_brand_spec': '品牌', 'f_collection': '收款', 'f_operator': '操作员', 'f_operate_date': '操作日期'},
129
+ defaultfield: [
130
+ // "f_brand_spec","f_number","f_unitprice",'f_collection','f_operator',"f_operate_date"
131
+ 'f_userinfo_code', 'f_user_name', 'f_brand_spec', 'f_collection', 'f_operator', 'f_operate_date'
132
+ ],
133
+ printModel: {
134
+ rows: []
135
+ }
136
+ }
137
+ },
138
+ props: ['row'],
139
+ ready () {
140
+ this.$refs.paged.$refs.criteria.model.f_state = ['有效']
141
+ this.$refs.paged.$refs.criteria.search()
142
+ },
143
+ methods: {
144
+ async search () {
145
+ this.condition = `${this.$refs.paged.$refs.criteria.condition} and ${this.searchValue} = '${this.row[this.searchValue]}' and f_orgid = '${this.$login.f.orgid}'`
146
+ this.model.search(this.condition, this.model)
147
+ let http = new HttpResetClass()
148
+ let res = await http.load('POST', 'api/af-revenue/sql/sale_OtherChargeQuery', {
149
+ data: {
150
+ condition: this.condition
151
+ }
152
+ }, {resolveMsg: null, rejectMsg: null})
153
+ this.printModel.rows = res.data
154
+ },
155
+ // 多选框初始化
156
+ selectInit () {
157
+ this.rowsdata = []
158
+ this.all = []
159
+ this.radio = []
160
+ },
161
+ print () {
162
+ this.selectInit()
163
+ },
164
+ select () {
165
+ let index = this.model.pageIndex - 1
166
+ if (!this.radio[index]) {
167
+ this.radio.$set(index, [])
168
+ }
169
+ if (this.all[index]) {
170
+ // 数据
171
+ this.rowsdata[index] = Object.assign([], this.model.rows)
172
+ // 勾选
173
+ for (var i = 0; i < this.model.rows.length; i++) {
174
+ this.radio[index].$set(i, true)
175
+ }
176
+ } else {
177
+ // 数据
178
+ this.rowsdata[index] = []
179
+ // 不勾选
180
+ for (var i = 0; i < this.model.rows.length; i++) {
181
+ this.radio[index].$set(i, false)
182
+ }
183
+ }
184
+ let z = 0
185
+ for (let i = 0; i < this.all.length; i++) {
186
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
187
+ this.printModel.rows[z++] = this.rowsdata[i][j]
188
+ }
189
+ }
190
+ },
191
+ selectOne (event, row, i) {
192
+ let index = this.model.pageIndex - 1
193
+ if (!this.rowsdata[index]) {
194
+ this.rowsdata[index] = []
195
+ }
196
+ if (!this.radio[index]) {
197
+ this.radio.$set(index, [])
198
+ }
199
+ if (event.target.checked) {
200
+ // 数据
201
+ this.rowsdata[index][i] = row
202
+ // 勾选
203
+ this.radio[index].$set(i, true)
204
+ // 判断是否全部选中
205
+ var allState = true
206
+ if (this.model.rows.length != this.radio[index].length) {
207
+ allState = false
208
+ }
209
+ for (var state of this.radio[index]) {
210
+ if (!state) {
211
+ allState = false
212
+ }
213
+ }
214
+ if (allState) {
215
+ this.all.$set(index, true)
216
+ } else {
217
+ this.all.$set(index, false)
218
+ }
219
+ } else {
220
+ // 数据
221
+ this.rowsdata[index][i] = []
222
+ // 不勾选
223
+ this.radio[index].$set(i, false)
224
+ // 任意取消一个则全选状态设为false
225
+ this.all.$set(index, false)
226
+ }
227
+ let z = 0
228
+ this.printModel.rows = []
229
+ for (let i = 0; i < this.all.length; i++) {
230
+ for (let j = 0; this.rowsdata[i] && j < this.rowsdata[i].length; j++) {
231
+ if (this.rowsdata[i][j] && this.rowsdata[i][j].f_user_id) {
232
+ this.printModel.rows[z++] = this.rowsdata[i][j]
233
+ }
234
+ }
235
+ }
236
+ },
237
+ showchargedetail (row) {
238
+ this.showdetail = true
239
+ this.otherchargeid = row.id
240
+ }
241
+ },
242
+ computed: {
243
+ ischecked () {
244
+ return function (index, i) {
245
+ if (!this.radio[index]) {
246
+ return false
247
+ }
248
+ return this.radio[index][i]
249
+ }
250
+ }
251
+ }
252
+ }
253
+ </script>
@@ -0,0 +1,81 @@
1
+
2
+ <template >
3
+ <div class="auto">
4
+ <modal :show.sync="showdetail" title="详细记录" v-ref:modal large backdrop="false">
5
+ <article slot="modal-body" class="modal-body">
6
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
7
+ <template partial='head'>
8
+ <tr>
9
+ <th><nobr>序号</nobr></th>
10
+ <th><nobr>收费类型</nobr></th>
11
+ <th><nobr>数量</nobr></th>
12
+ <th><nobr>单价</nobr></th>
13
+ <th><nobr>价格</nobr></th>
14
+ <th><nobr>品名规格</nobr></th>
15
+ <th><nobr>型号</nobr></th>
16
+ </tr>
17
+ </template>
18
+ <template partial='body' partial='list' v-ref:grid>
19
+ <tr >
20
+ <td style="text-align:center;">{{$index+1}}</td>
21
+ <th style="text-align:center">{{row.f_brand_spec}}</th>
22
+ <th style="text-align:center">{{row.f_number}}</th>
23
+ <th style="text-align:center">{{row.f_unitprice}}</th>
24
+ <th style="text-align:center">{{(row.f_number-0)*(row.f_unitprice-0)}}</th>
25
+ <th style="text-align:center">{{row.f_typename}}</th>
26
+ <th style="text-align:center">{{row.f_typenumber}}</th>
27
+
28
+ </tr>
29
+ </template>
30
+ <template partial='foot'></template>
31
+ </data-grid>
32
+ </article>
33
+ <footer slot="modal-footer" class="modal-footer">
34
+ </footer>
35
+ </modal>
36
+ </div>
37
+ </template>
38
+
39
+ <script>
40
+ export default {
41
+ title: '抄表',
42
+ data () {
43
+ return {
44
+ model: {
45
+ rows: []
46
+ }
47
+
48
+ }
49
+ },
50
+ props: ['otherchargeid', 'showdetail'],
51
+ ready () {
52
+ this.search()
53
+ },
54
+ methods: {
55
+ async search () {
56
+ // 获取这个气价的所有记录
57
+ this.model.rows = []
58
+ let data = {
59
+ tablename: `t_othercharge_detail`,
60
+ items: '*',
61
+ condition: '1=1',
62
+ orderitem: 'id'
63
+ }
64
+ if (this.otherchargeid) {
65
+ data.condition = `f_othercharge_id = '${this.otherchargeid}'`
66
+ }
67
+
68
+ let res = await this.$resetpost('api/af-revenue/sql/singleTable_OrderBy', {data: data}, {rejectMsg: '获取气价记录出错', resolveMsg: null})
69
+ this.model.rows = res.data
70
+ }
71
+
72
+ },
73
+ watch: {
74
+ 'showdetail' (val) {
75
+ if (val) {
76
+ this.search()
77
+ }
78
+ }
79
+ }
80
+ }
81
+ </script>
@@ -0,0 +1,238 @@
1
+ <template>
2
+ <div class="binary flex" >
3
+ <div class="row binary-left flex" style="width:99%;height:98%;margin-bottom:0px">
4
+ <div class="auto">
5
+ <user-base-info-new :row="row" :buttonshow="buttonshow"
6
+ @refresh="search"
7
+ @cancel-main="cancel"
8
+ @cancel-re="cancelRe"
9
+ @search-main="search"></user-base-info-new></div>
10
+ <saletabbut v-if="row" v-ref:list style="height:72%;margin-top: 1%;overflow-y: scroll">
11
+ <saletab header="流水查询" v-if="permission('流水查询')">
12
+ <record-query-user :row="row"></record-query-user>
13
+ </saletab>
14
+ <saletab header="机表流水查询" v-if="permission('机表流水查询')&&row.f_meter_type.includes('机表')">
15
+ <machine-record-query :row="row" v-if="show == '机表流水查询'" @deal-msg="dealMsg"></machine-record-query>
16
+ </saletab>
17
+ <saletab header="收费查询" v-if="!newWebHand && permission('收费查询')">
18
+ <charge-query-user :row="row" v-if="show == '收费查询'" @deal-msg="dealMsg"></charge-query-user>
19
+ </saletab>
20
+ <saletab header="收费查询" v-if="newWebHand && permission('收费查询')">
21
+ <charge-query-user :row="row" v-if="show == '收费查询'" @deal-msg="dealMsg"></charge-query-user>
22
+ </saletab>
23
+ <saletab header="累购查询" v-if="permission('累购查询')">
24
+ <Repurchase :row="row" v-if="show == '累购查询'" @deal-msg="dealMsg"></Repurchase>
25
+ </saletab>
26
+ <saletab header="下账查询" v-if="!newWebHand && row.f_meter_type.includes('物联网表')&&permission('自动下账查询')">
27
+ <automatic-purse :row="row" @deal-msg="dealMsg"></automatic-purse>
28
+ </saletab>
29
+ <saletab header="下账查询" v-if="newWebHand && row.f_meter_type.includes('物联网表')&&permission('自动下账查询')">
30
+ <web-automatic-purse :row="row" @deal-msg="dealMsg"></web-automatic-purse>
31
+ </saletab>
32
+ <saletab header="抄表记录" v-if="row.f_meter_type.includes('卡表')&&permission('抄表记录')">
33
+ <card-hand-record :row="row" v-if="show == '抄表记录'" @deal-msg="dealMsg"></card-hand-record>
34
+ </saletab>
35
+ <saletab header="抄表记录" v-if="!newWebHand && !row.f_meter_type.includes('卡表')&&permission('抄表记录')">
36
+ <hand-query-user :row="row" v-if="show == '抄表记录'" @deal-msg="dealMsg"></hand-query-user>
37
+ </saletab>
38
+ <saletab header="抄表记录" v-if="newWebHand && !row.f_meter_type.includes('卡表')&&permission('抄表记录')">
39
+ <web-hand-query-user :row="row" v-if="show == '抄表记录'" @deal-msg="dealMsg"></web-hand-query-user>
40
+ </saletab>
41
+ <saletab header="补卡查询" v-if="row.f_meter_type.includes('卡表')&&permission('补卡查询')">
42
+ <fill-card-query-user :row="row" v-if="show == '补卡查询'" @deal-msg="dealMsg"></fill-card-query-user>
43
+ </saletab>
44
+ <saletab header="补气查询" v-if="permission('补气查询')">
45
+ <fill-gas-query-user :row="row" v-if="show == '补气查询'" @deal-msg="dealMsg"></fill-gas-query-user>
46
+ </saletab>
47
+ <saletab header="换表查询" v-if="permission('换表查询')">
48
+ <change-meter-query-user :row="row" v-if="show == '换表查询'" @deal-msg="dealMsg"></change-meter-query-user>
49
+ </saletab>
50
+ <saletab header="其他收费" v-if="permission('其他收费')">
51
+ <other-charge-query-user :row="row" v-if="show == '其他收费'" @deal-msg="dealMsg"></other-charge-query-user>
52
+ </saletab>
53
+ <saletab header="过户查询" v-if="permission('过户查询')">
54
+ <transfer-query-user :row="row" v-if="show == '过户查询'" @deal-msg="dealMsg"></transfer-query-user>
55
+ </saletab>
56
+ <saletab header="价格调整" v-if="permission('价格调整')">
57
+ <price-change-query-user :row="row" v-if="show == '价格调整'" @deal-msg="dealMsg"></price-change-query-user>
58
+ </saletab>
59
+ <saletab header="附件查看" v-if="permission('附件查看')">
60
+ <upload-file-history :row="row" v-if="show == '附件查看'" @deal-msg="dealMsg"></upload-file-history>
61
+ </saletab>
62
+ <saletab header="变更记录" v-if="permission('变更记录')">
63
+ <change-record :row="row" v-if="show == '变更记录'" @deal-msg="dealMsg"></change-record>
64
+ </saletab>
65
+ <saletab header="指令查看" v-if="row.f_meter_type.includes('物联网表')&&permission('指令查看')">
66
+ <query-instruct :row="row" v-if="show == '指令查看'" @deal-msg="dealMsg"></query-instruct>
67
+ </saletab>
68
+ <saletab header="历史指令查看" v-if="row.f_meter_type.includes('物联网表')&&permission('历史指令查看')">
69
+ <query-history-instruct :row="row" v-if="show == '历史指令查看'" @deal-msg="dealMsg"></query-history-instruct>
70
+ </saletab>
71
+ <saletab header="异常报警" v-if="row.f_meter_type.includes('物联网表')&&permission('异常报警')">
72
+ <watch-warning :row="row" v-if="show == '异常报警'" @deal-msg="dealMsg"></watch-warning>
73
+ </saletab>
74
+ <saletab header="表具采集" v-if="row.f_meter_type.includes('物联网表')&&permission('表具采集')">
75
+ <watch-collection :row="row" v-if="show == '表具采集'" @deal-msg="dealMsg"></watch-collection>
76
+ </saletab>
77
+ <saletab header="调价补差" v-if="permission('调价补差')">
78
+ <price-adjustment-query-user :row="row" v-if="show == '调价补差'" @deal-msg="dealMsg"></price-adjustment-query-user>
79
+ </saletab>
80
+ <saletab header="设备查询" v-if="permission('设备查询')">
81
+ <deveice-record :row="row" v-if="show == '设备查询'" @deal-msg="dealMsg"></deveice-record>
82
+ </saletab>
83
+ <saletab header="流量计参数查看" v-if="permission('流量计参数查看')">
84
+ <meter-param :row="row" v-if="show == '流量计参数查看'" @deal-msg="dealMsg"></meter-param>
85
+ </saletab>
86
+ <saletab header="表使用量图表" v-if="permission('流量计参数查看')">
87
+ <table-usage-chart :row="row" v-if="show == '表使用量图表'" @deal-msg="dealMsg"></table-usage-chart>
88
+ </saletab>
89
+ <saletab header="用户设备查询" v-if="permission('用户设备查看')">
90
+ <user-device-query :row="row" v-if="show == '用户设备查询'" @deal-msg="dealMsg"></user-device-query>
91
+ </saletab>
92
+ <saletab header="合同查看" v-if="permission('合同查看')">
93
+ <contract-signing-list :row="row" v-if="show == '合同查看'" @deal-msg="dealMsg"></contract-signing-list>
94
+ </saletab>
95
+ <saletab header="用户重点记录" >
96
+ <user-key-record :row="row" @deal-msg="dealMsg"></user-key-record>
97
+ </saletab>
98
+ <!-- <saletab header="报装流转记录" v-if="permission('报装流转记录查看')">-->
99
+ <!-- <supervisory-control :row="row" ></supervisory-control>-->
100
+ <!-- </saletab>-->
101
+ <!-- <saletab header="报装收费记录" v-if="permission('报装收费记录查看')">-->
102
+ <!-- <apply-charge-search :row="row" ></apply-charge-search>-->
103
+ <!-- </saletab>-->
104
+ </saletabbut>
105
+ </div>
106
+ </div>
107
+ </template>
108
+
109
+ <script>
110
+ import {HttpResetClass} from 'vue-client'
111
+ // 导入IC卡相关查询界面
112
+ import ChangeMeterQueryUser from '../../components/common/userinfo_detail/ic_detail/ChangeMeterQueryUser'
113
+ import ChargeQueryUser from '../../components/common/userinfo_detail/ic_detail/ChargeQueryUser'
114
+ import ChargeRecordQueryUser from '../../components/common/userinfo_detail/ic_detail/ChargeRecordQuery'
115
+ import FillCardQueryUser from '../../components/common/userinfo_detail/ic_detail/FillCardQueryUser'
116
+ import HandQueryUser from '../../components/common/userinfo_detail/ic_detail/HandQueryUser'
117
+ import OtherChargeQueryUser from './OtherChargeQueryUser'
118
+ import RecordQueryUser from '../../components/common/userinfo_detail/ic_detail/RecordQueryUser'
119
+ import TransferQueryUser from '../../components/common/userinfo_detail/ic_detail/TransferQueryUser'
120
+ import CardHandRecord from '../../components/common/userinfo_detail/ic_detail/CardHandRecord'
121
+ import AutomaticPurse from '../../components/common/userinfo_detail/ic_detail/AutomaticPurse'
122
+ import Repurchase from '../../components/common/userinfo_detail/ic_detail/Repurchase'
123
+ import MachineRecordQuery from '../../components/common/userinfo_detail/ic_detail/MachineRecordQuery'
124
+ import WebAutomaticPurse from '../../components/common/userinfo_detail/ic_detail/WebAutomaticPurse'
125
+ import WebChargeQueryUser from '../../components/common/userinfo_detail/ic_detail/WebChargeQueryUser'
126
+ import WebHandQueryUser from '../../components/common/userinfo_detail/ic_detail/WebHandQueryUser'
127
+ import UserDeviceQuery from '../../components/common/userinfo_detail/ic_detail/UserDeviceQuery'
128
+ import contractSigningList from '../../components/common/userinfo_detail/ic_detail/contractSigningList'
129
+
130
+ // 导入物联网相关查询
131
+ import QueryInstruct from '../../components/common/userinfo_detail/iot_detail/QueryInstruct'
132
+ import QueryHistoryInstruct from '../../components/common/userinfo_detail/iot_detail/QueryHistoryInstruct'
133
+ import WatchCollection from '../../components/common/userinfo_detail/iot_detail/WatchCollection'
134
+ import WatchWarning from '../../components/common/userinfo_detail/iot_detail/WatchWarning'
135
+ import PriceChangeQueryUser from '../../components/common/userinfo_detail/ic_detail/PriceChangeQueryUser'
136
+ import ChangeRecord from '../../components/common/userinfo_detail/ic_detail/ChangeRecord'
137
+ import PriceAdjustmentQueryUser from '../../components/common/userinfo_detail/ic_detail/PriceAdjustmentQueryUser'
138
+ import MeterParam from '../../components/common/userinfo_detail/ic_detail/MeterParam'
139
+ import DeveiceRecord from '../../components/common/userinfo_detail/ic_detail/DeveiceRecord'
140
+
141
+ export default {
142
+ title: '用户详细信息',
143
+ props: ['f_userfiles_id', 'f_userinfo_id', 'f_userinfo_code', 'parentname', 'buttonshow'],
144
+ components: {
145
+ PriceAdjustmentQueryUser,
146
+ PriceChangeQueryUser,
147
+ AutomaticPurse,
148
+ WebAutomaticPurse,
149
+ WebChargeQueryUser,
150
+ WebHandQueryUser,
151
+ Repurchase,
152
+ ChangeMeterQueryUser,
153
+ ChargeQueryUser,
154
+ ChargeRecordQueryUser,
155
+ FillCardQueryUser,
156
+ HandQueryUser,
157
+ OtherChargeQueryUser,
158
+ RecordQueryUser,
159
+ TransferQueryUser,
160
+ WatchWarning,
161
+ WatchCollection,
162
+ QueryInstruct,
163
+ QueryHistoryInstruct,
164
+ ChangeRecord,
165
+ CardHandRecord,
166
+ MeterParam,
167
+ DeveiceRecord,
168
+ MachineRecordQuery,
169
+ UserDeviceQuery,
170
+ contractSigningList,
171
+ // SupervisoryControl,
172
+ // ApplyChargeSearch
173
+ },
174
+ data () {
175
+ return {
176
+ row: null,
177
+ name: '自动下账查询',
178
+ newWebHand: this.$appdata.getSingleValue('新抄表'),
179
+ show: ''
180
+ }
181
+ },
182
+ ready () {
183
+ this.search()
184
+ console.log(this.$login)
185
+ },
186
+ methods: {
187
+ permission (name) {
188
+ if (this.$login.r.find(value => value == '收费综合查询')) {
189
+ if (!this.$login.r.find(value => value == name)) {
190
+ return false
191
+ }
192
+ }
193
+ return true
194
+ },
195
+ async search () {
196
+ let http = new HttpResetClass()
197
+ let condition = ' 1 = 1'
198
+ if (this.f_userfiles_id) {
199
+ condition = `f_userfiles_id = '${this.f_userfiles_id}'`
200
+ } else if (this.f_userinfo_id) {
201
+ condition = `f_userinfo_id = '${this.f_userinfo_id}'`
202
+ } else if (this.f_userinfo_code) {
203
+ condition = `f_userinfo_code = '${this.f_userinfo_code}'`
204
+ }else{
205
+ this.$showMessage('用户信息缺失,查询详情信息失败')
206
+ return
207
+ }
208
+
209
+ let getBaseInfo = await http.load('POST', 'api/af-revenue/sql/iot_getUserBaseData',
210
+ {data: {condition: condition}}, {resolveMsg: null, rejectMsg: '获取基本信息出错'})
211
+ this.row = getBaseInfo.data[0]
212
+ this.row.parentname = this.parentname || ''
213
+ },
214
+
215
+ cancel (val) {
216
+ // 判断当前是否在 iframe 环境中
217
+ if (window.parent !== window) {
218
+ window.parent.postMessage({type: 'goBack'}, '*')
219
+ } else {
220
+ this.$emit('cancel-main', val)
221
+ }
222
+ },
223
+
224
+ cancelRe (val) {
225
+ this.$emit('cancel-re', val)
226
+ },
227
+
228
+ butOper (val) {
229
+ this.name = val
230
+ }
231
+ },
232
+ watch: {
233
+ 'f_userinfo_id' () {
234
+ this.search()
235
+ }
236
+ }
237
+ }
238
+ </script>
@@ -62,9 +62,17 @@
62
62
  :value.sync="row.f_number"
63
63
  placeholder="数量" v-next-el='sk' v-el:sl>
64
64
  </div>
65
+ <div class="col-sm-4" :class="{'has-success':row.f_discount_amount,'has-error':!row.f_discount_amount}">
66
+ <label style="" for="f_discount_amount" class=" font_normal_body">&nbsp;优惠金额</label>
67
+ <input class="input_search" style="width:60%" type="number" min="1" @input.prevent="getcollection()"
68
+ v-validate:f_discount_amount='{required: true, dctest: [0, ">" ] }'
69
+ v-model="row.f_discount_amount"
70
+ :value.sync="row.f_discount_amount"
71
+ :disabled="false"
72
+ placeholder="优惠金额" v-next-el='sl'>
73
+ </div>
65
74
  <div style="padding-top:10px">
66
- <button type="button" class="glyphicon glyphicon-minus btn-danger"
67
- @click.stop="delthisdetail($index)"></button>&nbsp;&nbsp;&nbsp;
75
+ <button type="button" class="glyphicon glyphicon-minus btn-danger" @click.stop="delthisdetail($index)"></button>&nbsp;&nbsp;&nbsp;
68
76
  <button type="button" class="glyphicon glyphicon-plus btn-success" @click.stop="addadetail()"></button>
69
77
  </div>
70
78
  </div>
@@ -300,6 +308,7 @@ export default {
300
308
  f_number: 0,
301
309
  f_unitprice: 0,
302
310
  f_collection: 0,
311
+ f_discount_amount: 0,
303
312
  f_comments: '',
304
313
  f_voucher_number: '',
305
314
  f_service_person: '',
@@ -307,7 +316,7 @@ export default {
307
316
  t_userfees: '',
308
317
  f_fee_type: ['其他费用'],
309
318
  f_fee_time: ['12'],
310
- otherdetail: [{f_brand_spec: [''], typeNameList: [], f_typenumber: '', typenumberList: [], f_unitprice: '', f_number: ''}]
319
+ otherdetail: [{f_brand_spec: [''], typeNameList: [], f_typenumber: '', typenumberList: [], f_unitprice: '', f_number: '', f_discount_amount:''}]
311
320
  },
312
321
  eticket_msg: false,
313
322
  mjshow: false,
@@ -533,7 +542,9 @@ export default {
533
542
  if (!item.f_number || item.f_number == '0') flag = false
534
543
  if (!item.f_unitprice || item.f_unitprice == '0') flag = false
535
544
  if (item.f_unitprice && item.f_number) {
536
- money += ((item.f_unitprice - 0) * (item.f_number - 0)) - 0
545
+ // 新增优惠金额
546
+ const discount = item.f_discount_amount ? parseFloat(item.f_discount_amount) : 0
547
+ money += ((item.f_unitprice - 0) * (item.f_number - 0)) - discount
537
548
  } else {
538
549
  flag = false
539
550
  this.model.f_collection = 0
@@ -545,7 +556,7 @@ export default {
545
556
  if (!flag) this.model.f_collection = ''
546
557
  },
547
558
  addadetail () {
548
- this.$set(`model.otherdetail[${this.model.otherdetail.length}]`, {f_brand_spec: [''], f_typenumber: '', typeNameList: [], typenumberList: [], f_unitprice: '', f_number: ''})
559
+ this.$set(`model.otherdetail[${this.model.otherdetail.length}]`, {f_brand_spec: [''], f_typenumber: '', typeNameList: [], typenumberList: [], f_unitprice: '', f_number: '',f_discount_amount:''})
549
560
  console.log(JSON.stringify(this.model.otherdetail))
550
561
  },
551
562
  delthisdetail (index) {
@@ -88,4 +88,7 @@ export default function () {
88
88
  Vue.component('file-meter-info', (resolve) => { require(['./MeterinfoTest'], resolve) })
89
89
  // 获取气表信息
90
90
  Vue.component('meter-message', (resolve) => { require(['./components/revenue/Common/MeterMessage'], resolve) })
91
+ // 单用户查询界面
92
+ Vue.component('user-info-detail-manage-new', (resolve) => { require(['./UserInfoDetailManageNew'], resolve) })
93
+
91
94
  }
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 FilialeSale from './filiale/beifangshiye/sale'
6
+ import FilialeSale from './filiale/fugou/sale'
7
7
  import address from 'address-client/src/address'
8
8
  import ldap from 'ldap-clients/src/ldap'
9
9
  import VueClipboard from 'vue-clipboard2'