sale-client 3.6.112 → 3.6.114

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.112",
3
+ "version": "3.6.114",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -344,7 +344,7 @@ export default {
344
344
  condition: `1=1`,
345
345
  orderitem: 'id'
346
346
  }
347
- let res = await http.load('post', 'rs/sql/saleSingleTable', {data: data}, {resolveMsg: null, rejectMsg: '获取设备品牌失败!'})
347
+ let res = await http.load('post', 'rs/sql/saleSingleTable', {data: data}, {resolveMsg: null, rejectMsg: null})
348
348
  this.brands = []
349
349
  for (let row of res.data) {
350
350
  this.brands.push({label: row.f_brand, value: `${row.id}`})
@@ -111,6 +111,12 @@
111
111
  condition="f_parameter_value >= '{} 00:00:00'"
112
112
  ></datepicker>
113
113
  </div>
114
+ <div class="form-group" :class="{'col-sm-2':!$parent.$parent.$parent.isdetail, 'col-sm-3':$parent.$parent.$parent.isdetail}">
115
+ <label class="font_normal_body">操&nbsp;作&nbsp;人</label>
116
+ <input :size="model.f_operator ? model.f_operator.length * 2 : 4" class="input_search" condition="f_operator like '%{}%'" placeholder='操作人' style="width:60%"
117
+ type="text"
118
+ v-model="model.f_operator">
119
+ </div>
114
120
  </div>
115
121
 
116
122
  </div>
@@ -127,6 +133,7 @@
127
133
  <th style="text-align: center;">地址</th>
128
134
  <th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>安检日期</th>
129
135
  <th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>限购日期</th>
136
+ <th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>操作人</th>
130
137
  <th style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>限购原因</th>
131
138
  </tr>
132
139
  </template>
@@ -141,6 +148,7 @@
141
148
  <td style="text-align: center;">{{row.f_address}}</td>
142
149
  <td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_offsite_time}}</td>
143
150
  <td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_parameter_value}}</td>
151
+ <td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_operator}}</td>
144
152
  <td style="text-align: center;" v-show='!$parent.$parent.$parent.$parent.isdetail'>{{row.f_comments}}</td>
145
153
  </template>
146
154
  <template partial='foot'></template>
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div class="auto">
3
+ <validator name='v'>
4
+ <form novalidate class="form-horizontal">
5
+ <p class="bg-info text-center" style="padding: 8px;font-size: 20px">操作记录</p>
6
+ <!-- <data-grid :model="inData" v-ref:grid partial='list'>
7
+ <template partial='head'>-->
8
+ <table class="list_area table_sy" style="width: 600px">
9
+ <tr>
10
+ <th style="text-align: center">序号</th>
11
+ <th style="text-align: center">修改内容</th>
12
+ <th style="text-align: center">变更前</th>
13
+ <th style="text-align: center">变更后</th>
14
+ <th style="text-align: center">状态</th>
15
+ <th style="text-align: center">修改时间</th>
16
+ <th style="text-align: center">操作人</th>
17
+ </tr>
18
+
19
+ <tr v-for="row in recordlist">
20
+ <td style="text-align: center;">{{$index + 1}}</td>
21
+ <td style="text-align: center;">{{row.chinesename}}</td>
22
+ <td style="text-align: center;">{{row.oldvalue}}</td>
23
+ <td style="text-align: center;">{{row.newvalue}}</td>
24
+ <td style="text-align: center;">{{row.state}}</td>
25
+ <td style="text-align: center;">{{row.modifitime}}</td>
26
+ <td style="text-align: center;">{{row.operator}}</td>
27
+ </tr>
28
+ </table>
29
+ </form>
30
+
31
+ </validator>
32
+ </div>
33
+ </template>
34
+
35
+ <script>
36
+ export default {
37
+ name: 'addwarehouse',
38
+
39
+ data () {
40
+ return {
41
+ inData: [],
42
+ obj: {},
43
+ userid: this.$login.f.id
44
+
45
+ }
46
+ },
47
+ props: {
48
+ recordlist: Array
49
+ },
50
+ created () {
51
+ },
52
+ ready () {
53
+ },
54
+ methods: {
55
+
56
+ }
57
+ }
58
+ </script>
59
+
60
+ <style lang="less">
61
+ </style>
@@ -0,0 +1,136 @@
1
+ <template>
2
+ <div id="unit" class="row" :class="{'binary':showItem}">
3
+ <div :class="{'basic-main':!showItem,'binary-left':showItem}" style="height:98%">
4
+ <garbage-list @select-changed="idsearch" :showMessage.sync="showAddMssage" v-if="stepControl"
5
+ v-ref:stocklist></garbage-list>
6
+ </div>
7
+ <div class="binary-right" v-show="showItem">
8
+ <garbage-main :recordlist="recordlist" :model="model" :oldmodel="oldmodel" v-show="showItem"
9
+ :f_distribution_state="f_distribution_state" :row="row" :rowsdata="rowsdata1"
10
+ :warehousename="warehousename"></garbage-main>
11
+ </div>
12
+ </div>
13
+
14
+ </template>
15
+
16
+ <script>
17
+ import {HttpResetClass} from 'vue-client'
18
+ export default {
19
+ title: '垃圾费费记录维护',
20
+ name: 'GarbageManage',
21
+ data () {
22
+ return {
23
+ showupload: false,
24
+ recordlist: [],
25
+ model: {},
26
+ oldmodel: {},
27
+ showAddMssage: false,
28
+ // 分配状态z
29
+ f_distribution_state: '',
30
+ // 单选数据
31
+ row: {},
32
+ // 多选数据
33
+ rowsdata: [],
34
+ rowsdata1: {},
35
+ stepControl: true,
36
+ warehousename: '',
37
+ showItem: false
38
+ }
39
+ },
40
+ created () {
41
+ },
42
+ ready () {
43
+ this.arrAddFun()
44
+ },
45
+ methods: {
46
+ arrAddFun () {
47
+ // 拓展数组去空值的方法
48
+ Array.prototype.removeEmpty = function () {
49
+ for (var i = 0; i < this.length; i++) {
50
+ if (this[i] == '' || typeof (this[i]) == 'undefined') {
51
+ this.splice(i, 1)
52
+ i--
53
+ }
54
+ }
55
+ return this
56
+ }
57
+ },
58
+ // 合并二维数组并去空
59
+ mergeRowData (rowsdata) {
60
+ let data = []
61
+ // 合并
62
+ for (let array of rowsdata) {
63
+ data.push.apply(data, array)
64
+ }
65
+ // 去空
66
+ data = data.removeEmpty()
67
+ this.rowsdata = data
68
+ },
69
+ selected (row) {
70
+ this.row = row.val
71
+ },
72
+ join (rowsdata) {
73
+ },
74
+ idsearch (row) {
75
+ this.$refs.stocklist.editList = true
76
+ this.showAddMssage = true
77
+ this.showItem = true
78
+ this.model = JSON.parse(JSON.stringify(row.val))
79
+ this.oldmodel = JSON.parse(JSON.stringify(row.val))
80
+ this.getGroupData()
81
+ },
82
+ getGroupData () {
83
+ let data = {}
84
+ let condition = ' garbage_id= ' + this.model.id
85
+ condition += " and tablename='t_flotsamprice'"
86
+ data.condition = condition
87
+ let http = new HttpResetClass()
88
+ http.load('POST', 'rs/logic/OperationRecord',
89
+ {data: data},
90
+ {resolveMsg: null, rejectMsg: null}).then((res) => {
91
+ this.recordlist = res.data
92
+ })
93
+ }
94
+ },
95
+ events: {
96
+ 'change-state' (state) {
97
+ this.f_distribution_state = state
98
+ this.rowsdata1 = {}
99
+ },
100
+ 'getwarehouse' (a) {
101
+ this.warehousename = a
102
+ },
103
+ 'change-receive' (state) {
104
+ this.f_distribution_state = state
105
+ },
106
+ 'change-state1' (state) {
107
+ console.log('选择分配状态', state)
108
+ this.rowsdata1 = {}
109
+ },
110
+ 'select' (rowsdata) {
111
+ this.mergeRowData(rowsdata)
112
+ },
113
+ 'join' (rowsdata) {
114
+ this.rowsdata1 = Object.assign({}, rowsdata)
115
+ console.log('111:', this.rowsdata1)
116
+ },
117
+ // 重新查询
118
+ 'refresh' () {
119
+ },
120
+ 'close' () {
121
+ this.$refs.stocklist.editList = false
122
+ this.showItem = false
123
+ this.$refs.stocklist.$refs.paged.$refs.criteria.search()
124
+ console.log('this.$refs', this.$refs)
125
+ console.log('showitem', this.showItem)
126
+ },
127
+ // 调拨组件选择调出仓库,根据选择仓库进行查询
128
+ 'idsearch' (f_warehouse_id) {
129
+ }
130
+ }
131
+ }
132
+ </script>
133
+
134
+ <style lang="less">
135
+
136
+ </style>
@@ -0,0 +1,466 @@
1
+ <template>
2
+ <div>
3
+ <div style="flex: 1.5" class="flex">
4
+ <div class="flex">
5
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
6
+ <criteria partial='criteria' v-ref:criteria @condition-changed="$parent.selfSearch"
7
+ v-show="$parent.searchshow">
8
+ <div novalidate class="form-inline auto" partial>
9
+ <div class="row">
10
+ <res-select-group :style="$parent.$parent.editList?'col-sm-4 form-group':'col-sm-2 form-group'" :initres="$parent.$parent.initres" :show-component="['company']" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
11
+ <div
12
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
13
+ class="form-group">
14
+ <label class="font_normal_body">用户编号</label>
15
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_userinfo_code"
16
+ condition="f_userinfo_code like '%{}%'" placeholder='用户编号'>
17
+ </div>
18
+ <div style="float:right;margin-top: 8px" class="span">
19
+ <!-- <button class="button_spacing button_search" @click="$parent.$parent.updateAll()">批量维护</button>-->
20
+ <button class="button_spacing button_search" @click="search()">查 询</button>
21
+ <export-excel v-if="$parent.$parent.excelTable"
22
+ class="auto"
23
+ :data="{condition: $parent.$parent.condition}"
24
+ :field="$parent.$parent.getfield"
25
+ sqlurl="rs/logic/saleExport" progress="saleGetExportProgress" sql-name="getGarbageRecords"
26
+ template-name='垃圾费记录'
27
+ :choose-col="true"></export-excel>
28
+ <div
29
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
30
+ @click="$parent.$parent.hidden()"
31
+ class="button_spacing"
32
+ style="float: right"></div>
33
+ </div>
34
+ </div>
35
+ <div class="row" v-if="$parent.$parent.criteriaShow">
36
+ <div
37
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
38
+ class="form-group">
39
+ <label class="font_normal_body">用户姓名</label>
40
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_name"
41
+ condition="f_user_name = '{}'" placeholder='用户姓名'>
42
+ </div>
43
+ <div
44
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
45
+ class="form-group">
46
+ <label class="font_normal_body">开始日期</label>
47
+ <datepicker placeholder="开始日期" v-model="model.startDate" :value.sync="model.startDate" style="width:60%"
48
+ :format="'yyyy-MM-dd 00:00:00'" condition="f_operate_date >= '{}'">
49
+ </datepicker>
50
+ </div>
51
+ <div
52
+ :class="{'col-sm-2':!$parent.$parent.editList,'col-sm-4':$parent.$parent.editList}"
53
+ class="form-group">
54
+ <label class="font_normal_body">结束日期</label>
55
+ <datepicker placeholder="结束日期" v-model="model.endDate" :value.sync="model.endDate" style="width:60%"
56
+ :format="'yyyy-MM-dd 23:59:59'" condition="f_operate_date <= '{}'">
57
+ </datepicker>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </criteria>
62
+ <data-grid :model="model" v-ref:grid class="list_area table_sy" partial='list'>
63
+ <template partial='head'>
64
+ <tr>
65
+ <!-- <th>-->
66
+ <!-- <nobr>全选</nobr>-->
67
+ <!-- <input @keyup.enter="search" style="width:60%" type="checkbox" v-model='checked1' :checked="$parent.$parent.$parent.checked1"-->
68
+ <!-- @click="$parent.$parent.$parent.checkedALL()"></th>-->
69
+ <th><nobr>序号</nobr></th>
70
+ <th><nobr>用户编号</nobr></th>
71
+ <th><nobr>用户姓名</nobr></th>
72
+ <th><nobr>单价</nobr></th>
73
+ <th><nobr>金额</nobr></th>
74
+ <th><nobr>付款方式</nobr></th>
75
+ <th><nobr>跨月数</nobr></th>
76
+ <th><nobr>所属日期</nobr></th>
77
+ <th><nobr>操作时间</nobr></th>
78
+ <th><nobr>操作员</nobr></th>
79
+ <th><nobr>所属部门</nobr></th>
80
+ <th><nobr>所属公司</nobr></th>
81
+
82
+ </tr>
83
+ </template>
84
+ <template partial='body'>
85
+ <!-- <td style="text-align: center;">-->
86
+ <!-- <input @keyup.enter="search" style="width:60%" type="checkbox" checked="checked" name="opertioninput"-->
87
+ <!-- @click="$parent.$parent.$parent.checked(row)"></td>-->
88
+ <td style="text-align: center;">{{ $index + 1 }}</td>
89
+ <td style="text-align: center;"><nobr>{{row.f_userinfo_code}}</nobr></td>
90
+ <td style="text-align: center;"><nobr>{{row.f_user_name}}</nobr></td>
91
+ <td style="text-align: center;"><nobr>{{row.f_price}}</nobr></td>
92
+ <td style="text-align: center;"><nobr>{{row.f_money}}</nobr></td>
93
+ <td style="text-align: center;"><nobr>{{row.f_payment}}</nobr></td>
94
+ <td style="text-align: center;"><nobr>{{row.f_month}}</nobr></td>
95
+ <td style="text-align: center;"><nobr>{{row.f_hand_date}}</nobr></td>
96
+ <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
97
+ <td style="text-align: center;"><nobr>{{row.f_operator}}</nobr></td>
98
+ <td style="text-align: center;"><nobr>{{row.f_depname}}</nobr></td>
99
+ <td style="text-align: center;"><nobr>{{row.f_orgname}}</nobr></td>
100
+ </template>
101
+ </data-grid>
102
+ </criteria-paged>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ <modal :show.sync="updateall" width="1200px" backdrop="true">
107
+ <header slot="modal-header" class="modal-header">
108
+ <h3 style="color:black" class="modal-title">批量维护</h3>
109
+ </header>
110
+ <article slot="modal-body" class="modal-body">
111
+ <validator name='v'>
112
+ <form class="form-horizontal select-overspread">
113
+ <div class="row">
114
+ <div class="col-sm-6 form-input-group">
115
+ <label class="font_normal_body col-sm-3">付款方式</label>
116
+ <v-select :disabled=false
117
+ :options='$parent.$parent.f_payment'
118
+ :value-single="true"
119
+ :value.sync="model.f_payment"
120
+ close-on-select
121
+ placeholder='请选择'
122
+ v-model="model.f_payment"
123
+ search=fasle
124
+ >
125
+ </v-select>
126
+ </div>
127
+ </div>
128
+ </form>
129
+ </validator>
130
+ </article>
131
+ <footer slot="modal-footer" class="modal-footer">
132
+ <button class="button_search btn-gn" @click="confirm">确认</button>
133
+ <button class="button_clear btn-gn" @click="cancel">取消</button>
134
+ </footer>
135
+ </modal>
136
+ </template>
137
+
138
+ <script>
139
+ import {PagedList} from 'vue-client'
140
+ const myMap = new Map()
141
+
142
+ export default {
143
+ 'title': '收费记录维护',
144
+ data () {
145
+ return {
146
+ usertypes: this.$appdata.getParam('客户类型') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('客户类型')] : [],
147
+ f_payment: this.$appdata.getParam('付款方式查询') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式查询')] : [],
148
+ model: new PagedList('rs/sql/getGarbageRecords', 20,{}),
149
+ // model: new PagedList('rs/sql/singleTable_OrderBy', 20, {items: '"s.*,ui.f_userinfo_code"', tablename: '"t_sellinggas s left join t_userinfo ui on s.f_userinfo_id=ui.f_userinfo_id"', orderitem: '"f_delivery_date"'}),
150
+ // 排序
151
+ orderitem: 'f_operate_date desc',
152
+ orderFields: {
153
+ f_operate_date: 'no'
154
+ },
155
+ // 控制查询条件显示
156
+ searchshow: true,
157
+ criteriaShow: false,
158
+ // 控制样式
159
+ editList: false,
160
+ // 公司下拉
161
+ curorgid: [this.$login.f.orgid],
162
+ excelTable: true,
163
+ condition: '',
164
+ getfield: {
165
+ 'f_userinfo_code': '用户编号',
166
+ 'f_user_name': '用户姓名',
167
+ 'f_price': '单价',
168
+ 'f_money': '金额',
169
+ 'f_payment': '收费形式',
170
+ 'f_month': '跨月数',
171
+ 'f_hand_date': '所属时间',
172
+ 'f_operate_date': '收费时间',
173
+ 'f_operator': '操作员',
174
+ 'f_depname': '所属部门',
175
+ 'f_orgname': '所属公司'
176
+ },
177
+ f_orgid: '',
178
+ checked1: true,
179
+ map: new Map(),
180
+ updateall:false,
181
+ da: {
182
+ rows: []
183
+ },
184
+ initres: {
185
+ org: [this.$login.f.orgid],
186
+ dep: [],
187
+ user: []
188
+ },
189
+ orgCondtionStr: '',
190
+ f_meternumber: '',
191
+ updatemodel:{
192
+ f_accounting_date: this.$login.toStandardTimeString()
193
+ }
194
+ }
195
+ },
196
+ ready () {
197
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
198
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
199
+ // this.search()
200
+ // this.getwarehouse()
201
+ },
202
+ events: {
203
+ 'showfiles' (val) {
204
+ console.log(val)
205
+ }
206
+ },
207
+ props: ['showMessage'],
208
+ methods: {
209
+ updateAll(){
210
+ this.updateall = true
211
+ },
212
+ cancel(){
213
+ this.updateall = false
214
+ this.updatemodel = {
215
+ f_accounting_date: this.$login.toStandardTimeString()
216
+ }
217
+ },
218
+ async getRes(condition,obj) {
219
+ this.orgCondtionStr = condition
220
+ this.orgname = obj.orgnames[0]
221
+ this.depname = obj.depnames[0]
222
+
223
+ },
224
+ // async confirm(){
225
+ // let array = []
226
+ // this.map.forEach((value, key, map) => {
227
+ // array.push(map.get(key))
228
+ // })
229
+ // console.log('asdasd',array)
230
+ // if (array.length>0){
231
+ // let condition = `id in (''`
232
+ // array.forEach((row) => {
233
+ // condition = condition+`,'${row.id}'`
234
+ // })
235
+ // condition = condition+ `)`
236
+ //
237
+ // console.log('asdasd',condition)
238
+ // await this.$resetpost('rs/logic/updatesellinggas',{updatemodel:this.updatemodel,condition:condition})
239
+ // this.search()
240
+ // this.cancel()
241
+ // } else{
242
+ // this.$showMessage('当前未勾选用户,将为所有查询出来的用户添加限购,确定要操作吗?', ['confirm', 'cancel']).then(async (res) => {
243
+ // if (res === 'confirm') {
244
+ // await this.$resetpost('rs/logic/updatesellinggas',{updatemodel:this.updatemodel,condition:this.condition})
245
+ // this.search()
246
+ // this.cancel()
247
+ // }
248
+ // })
249
+ //
250
+ // }
251
+ // },
252
+ checkedALL () {
253
+ this.checked1 = !this.checked1
254
+ let box = document.getElementsByName('opertioninput')
255
+ for (var i = 0; i < box.length; i++) {
256
+ box[i].checked = this.checked1
257
+ }
258
+ },
259
+ checked (val) {
260
+ let id = val.id
261
+ if (this.map.has(id)) {
262
+ this.map.delete(id)
263
+ } else {
264
+ this.map.set(id, {id: id})
265
+ }
266
+ },
267
+ mapset (array) {
268
+ this.map.clear()
269
+ for (let i = 0; i < array.length; i++) {
270
+ let id = array[i].id
271
+ this.map.set(id, {id: id})
272
+ }
273
+ },
274
+ hidden () {
275
+ this.criteriaShow = !this.criteriaShow
276
+ },
277
+ getorg (val) {
278
+ this.f_orgid = this.$login.convertToIn(val)
279
+ this.f_filialeid = val[0]
280
+ },
281
+ view (row) {
282
+ this.$parent.showupload = true
283
+ this.$parent.row = row
284
+ },
285
+ init () {
286
+ this.f_meternumber = ''
287
+ this.da.rows = []
288
+ myMap.clear()
289
+ },
290
+ cancelSet () {
291
+ this.showSetModal = false
292
+ this.init()
293
+ },
294
+
295
+ jump () {
296
+ this.joinshow2 = false
297
+ this.showSetModal = true
298
+ },
299
+ async getwarehouse () {
300
+
301
+ },
302
+
303
+ join1 (row) {
304
+ this.joinrow = row
305
+ this.joinshow = true
306
+ },
307
+
308
+ joinclose () {
309
+ this.joinshow = false
310
+ },
311
+ joinclose2 () {
312
+ this.joinshow2 = false
313
+ },
314
+
315
+ sort (field, rule) {
316
+ // 将所有排序方式设为不排序,实现相互排斥
317
+ for (let key in this.orderFields) {
318
+ if (key === field) {
319
+ this.orderFields[key] = rule
320
+ } else {
321
+ this.orderFields[key] = 'no'
322
+ }
323
+ }
324
+ // 如果新规则不排序,还原为默认排序
325
+ if (rule === 'no') {
326
+ this.model.paramSource.orderitem = `'${this.orderitem}'`
327
+ } else {
328
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
329
+ }
330
+
331
+ this.search()
332
+ },
333
+ search () {
334
+ this.$refs.paged.$refs.criteria.search()
335
+ },
336
+ importFile () {
337
+ this.show = true
338
+ },
339
+ selfSearch (args) {
340
+ if (!this.$refs.paged.$refs.criteria.model.startDate) {
341
+ this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
342
+ }
343
+ if (!this.$refs.paged.$refs.criteria.model.endDate) {
344
+ this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
345
+ }
346
+ if (!this.orgCondtionStr) {
347
+ args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
348
+ } else {
349
+ args.condition = `${args.condition}` + this.orgCondtionStr
350
+ }
351
+ this.model.search(args.condition, args.model)
352
+ this.condition = args.condition
353
+ },
354
+ mergeRowData (joinrows) {
355
+
356
+ },
357
+ // 多选框初始化
358
+ selectInit () {
359
+ this.rowsdata = []
360
+ this.all = []
361
+ this.radio = []
362
+ },
363
+ select () {
364
+ let index = this.model1.pageIndex - 1
365
+ console.log('全选', this.all[index])
366
+ if (!this.radio[index]) {
367
+ this.radio.$set(index, [])
368
+ }
369
+ if (this.all[index]) {
370
+ // 数据
371
+ this.rowsdata[index] = Object.assign([], this.model1.rows)
372
+ // 勾选
373
+ for (var i = 0; i < this.model1.rows.length; i++) {
374
+ this.radio[index].$set(i, true)
375
+ }
376
+ } else {
377
+ // 数据
378
+ this.rowsdata[index] = []
379
+ // 不勾选
380
+ for (var i = 0; i < this.model1.rows.length; i++) {
381
+ this.radio[index].$set(i, false)
382
+ }
383
+ }
384
+ },
385
+ selectOne (event, row, i) {
386
+ console.log('单选', event.target.checked)
387
+ let index = this.model1.pageIndex - 1
388
+ if (!this.rowsdata[index]) {
389
+ this.rowsdata[index] = []
390
+ }
391
+ if (!this.radio[index]) {
392
+ this.radio.$set(index, [])
393
+ }
394
+ if (event.target.checked) {
395
+ // 数据
396
+ this.rowsdata[index][i] = row
397
+ // 勾选
398
+ this.radio[index].$set(i, true)
399
+ // 判断是否全部选中
400
+ var allState = true
401
+ if (this.model1.rows.length != this.radio[index].length) {
402
+ allState = false
403
+ }
404
+ for (var state of this.radio[index]) {
405
+ if (!state) {
406
+ allState = false
407
+ }
408
+ }
409
+ if (allState) {
410
+ this.all.$set(index, true)
411
+ } else {
412
+ this.all.$set(index, false)
413
+ }
414
+ } else {
415
+ // 数据
416
+ this.rowsdata[index][i] = []
417
+ // 不勾选
418
+ this.radio[index].$set(i, false)
419
+ // 任意取消一个则全选状态设为false
420
+ this.all.$set(index, false)
421
+ }
422
+ }
423
+ },
424
+ computed: {
425
+ ischecked () {
426
+ return function (index, i) {
427
+ // console.log("计算属性")
428
+ if (!this.radio[index]) {
429
+ return false
430
+ }
431
+ return this.radio[index][i]
432
+ }
433
+ },
434
+ distributionstate () {
435
+ return [{label: '全部', value: ''}, {label: '待分配', value: 'is null'}, {label: '已入库', value: 'is not null'}]
436
+ }
437
+ },
438
+ watch: {
439
+ 'model.pageIndex' () {
440
+ this.checked1 = false
441
+ this.mapset(this.model.rows)
442
+ this.checkedALL()
443
+ },
444
+ 'model.rows' () {
445
+ this.checked1 = false
446
+ this.mapset(this.model.rows)
447
+ this.checkedALL()
448
+ },
449
+ 'checked1' (val) {
450
+ if (val) {
451
+ this.mapset(this.model.rows)
452
+ } else {
453
+ this.map.clear()
454
+ }
455
+ }
456
+ }
457
+ }
458
+ </script>
459
+ <style>
460
+ .datapanel {
461
+ color: #333;
462
+ background-color: white;
463
+ padding: 10px 20px;
464
+ border-radius: 15px;
465
+ }
466
+ </style>
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <div style="padding-right:25px;padding-left: 20px;">
3
+ <!--分配状态是全部-->
4
+ <tabset >
5
+ <tab header="具体信息">
6
+ <garbage-operate-main :model="model" :oldmodel="oldmodel"></garbage-operate-main>
7
+ </tab>
8
+ <tab header="操作记录">
9
+ <garbage-add :recordlist="recordlist"></garbage-add>
10
+ </tab>
11
+ </tabset>
12
+ </div>
13
+ </template>
14
+ <script>
15
+ export default {
16
+ name: 'WareHouseOperation',
17
+ data () {
18
+ return {
19
+ showupload: false
20
+ }
21
+ },
22
+ props: {
23
+ recordlist: Array,
24
+ // row: Object,
25
+ model: Object,
26
+ oldmodel: Object
27
+ },
28
+ created () {
29
+ },
30
+ ready () {
31
+
32
+ },
33
+ methods: {
34
+ },
35
+ events: {
36
+ 'showfiles' (val) {
37
+ console.log('events!!!!!!!!!!!!!', val)
38
+ }
39
+ }
40
+ }
41
+ </script>
42
+
43
+ <style lang="less">
44
+
45
+ </style>
@@ -0,0 +1,180 @@
1
+ <template>
2
+ <div class="auto">
3
+ <validator name='a' @valid="addressValid(true)" @invalid="addressValid(false)">
4
+ <form class="form-horizontal">
5
+ <div class="row">
6
+ <div class="col-sm-4 form-group">
7
+ <label class="font_normal_body">用户姓名</label>
8
+ <input type="text" v-model="model.f_user_name" disabled=disabled style="width: 60%" class="input_search">
9
+ </div>
10
+ <div class="col-sm-4 form-group">
11
+ <label class="font_normal_body" title="参数:收费状态">收费状态</label>
12
+ <input type="text" v-model="model.f_state" disabled=disabled style="width: 60%" class="input_search">
13
+ </div>
14
+ <div class="col-sm-4 form-group">
15
+ <label class="font_normal_body" title="参数:付款方式查询">付款方式</label>
16
+ <v-select :value.sync="model.f_payment" v-model="model.f_payment"
17
+ :options='payments' placeholder='付款方式'
18
+ :value-single="true"
19
+ :search="false"
20
+ close-on-select>
21
+ </v-select>
22
+ </div>
23
+ <div class="col-sm-4 form-group">
24
+ <label class="font_normal_body">购买单价</label>
25
+ <input type="text" v-model="model.f_price" disabled=disabled style="width: 60%" class="input_search">
26
+ </div>
27
+ <div class="col-sm-4 form-group">
28
+ <label class="font_normal_body">收款金额</label>
29
+ <input type="text" v-model="model.f_money" disabled=disabled style="width: 60%" class="input_search">
30
+ </div>
31
+ <div class="col-sm-4 form-group">
32
+ <label class="font_normal_body">所跨月数</label>
33
+ <input type="text" v-model="model.f_month" disabled=disabled style="width: 60%" class="input_search">
34
+ </div>
35
+ <div class="col-sm-6 form-group">
36
+ <label class="form-group">所属日期</label>
37
+ <input type="text" v-model="model.f_hand_date" disabled=disabled style="width: 60%" class="input_search">
38
+ </div>
39
+ <div class="col-sm-6 form-group">
40
+ <label class="form-group">操作日期</label>
41
+ <input type="text" v-model="model.f_operate_date" disabled=disabled style="width: 60%" class="input_search">
42
+ </div>
43
+ <!--<div class="col-sm-4 form-group">-->
44
+ <!--<label class="font_normal_body">收据类型</label>-->
45
+ <!--<input type="text" v-model="model.f_bill_style" style="width: 60%" class="input_search">-->
46
+ <!--</div>-->
47
+ </div>
48
+
49
+ <div class="row">
50
+ <div class="col-sm-4 form-group">
51
+ <label class="font_normal_body" title="参数:操作人员查询">操作人员</label>
52
+ <input type="text" v-model="model.f_operator" disabled=disabled style="width: 60%" class="input_search">
53
+
54
+ <!-- <v-select :value.sync="model.f_operator"-->
55
+ <!-- v-model="model.f_operator"-->
56
+ <!-- :value-single="true" @change="selectoperator()"-->
57
+ <!-- :options='foperator'-->
58
+ <!-- close-on-select></v-select>-->
59
+ <!-- @click="selectoperator"-->
60
+ </div>
61
+ <div class="col-sm-4 form-group">
62
+ <label class="font_normal_body">所属部门</label>
63
+ <input type="text" v-model="model.f_depname" disabled=disabled style="width: 60%" class="input_search">
64
+ </div>
65
+ <div class="col-sm-4 form-group">
66
+ <label class="font_normal_body">所属公司</label>
67
+ <input type="text" v-model="model.f_orgname" disabled=disabled style="width: 60%" class="input_search">
68
+ </div>
69
+ </div>
70
+ </form>
71
+ <div style="float: right">
72
+ <button class="button_search" @click="save">保存</button>
73
+ <button class="button_clear" @click="cancel">取消</button>
74
+ </div>
75
+ </validator>
76
+ </div>
77
+ </template>
78
+ <script>
79
+ import Vue from 'vue'
80
+ import {HttpResetClass} from 'vue-client'
81
+ import * as Util from "../../Util";
82
+ var data
83
+ export default {
84
+ title: '基本信息',
85
+
86
+ data () {
87
+ return {
88
+ equipmentType: this.$appdata.getParam('打印格式') ? [{label: '', value: ''}, ...this.$appdata.getParam('打印格式')] : [],
89
+ // 构建数组来存储对象
90
+ editbank: true,
91
+ uploadText: '收费',
92
+ showfiles: false,
93
+ recordList: [],
94
+ fileNameSet: {
95
+ 'f_payment': '收费形式',
96
+ 'f_serial_id': '流水号'
97
+ }
98
+ }
99
+ },
100
+ props: {
101
+ oldmodel: Object,
102
+ model: Object
103
+ },
104
+
105
+ ready () {
106
+ if (this.$login.r.includes('维护银行转账信息')) {
107
+ this.editbank = true
108
+ }
109
+ this.oldmodel = JSON.parse(JSON.stringify(this.model))
110
+ this.model.f_bill_state = [this.oldmodel]
111
+ console.log('看看收费id', this.oldmodel)
112
+ },
113
+ created () {
114
+ },
115
+ methods: {
116
+
117
+ cancel () {
118
+ this.$dispatch('close')
119
+ },
120
+ uploadFiles () {
121
+ this.showfiles = !this.showfiles
122
+ },
123
+ addressValid (val) {
124
+ },
125
+ save () {
126
+ this.recordList = []
127
+ for (var item in this.model) {
128
+ if (this.model.f_payment != this.oldmodel.f_payment && item==='f_payment' ) {
129
+ var car = {
130
+ chinesename: this.fileNameSet[item],
131
+ fieldname: item,
132
+ tablename: 't_flotsamprice',
133
+ oldvalue: this.oldmodel[item],
134
+ newvalue: this.model[item],
135
+ state: '有效',
136
+ modifitime: Util.toStandardTimeString(),
137
+ operator: this.$login.f.name,
138
+ garbage_id: this.model.id,
139
+ f_operator : this.$login.f.name,
140
+ f_operatorid : this.$login.f.id,
141
+ f_orgid : this.$login.f.orgid,
142
+ f_orgname : this.$login.f.orgs,
143
+ f_depid : this.$login.f.depids,
144
+ f_depname : this.$login.f.deps
145
+
146
+ }
147
+ this.recordList.push(car)
148
+ // 该方法并未对chinesename fieldname operator等进行判断赋值,此暂写为定值
149
+ console.log('看看car的值', car)
150
+ }
151
+ }
152
+
153
+ this.$resetpost('rs/logic/saveGarbage', {data: {recordlist: this.recordList, newData: this.model}}).then((res) => {
154
+ console.log('this.model', this.model)
155
+ })
156
+ this.$dispatch('close')
157
+ }
158
+ },
159
+ computed: {
160
+ foperator () {
161
+ return [...this.$appdata.getParam('操作人员')]
162
+ },
163
+ positions () {
164
+ return this.$appdata.getParam('收费状态')
165
+ },
166
+ payments () {
167
+ return this.$appdata.getParam('付款方式查询')
168
+ },
169
+ writeCards () {
170
+ return this.$appdata.getParam('写卡状态')
171
+ },
172
+ billStyles () {
173
+ return this.$appdata.getParam('收据类型')
174
+ }
175
+ },
176
+ watch: {
177
+
178
+ }
179
+ }
180
+ </script>
@@ -36,4 +36,15 @@ export default function () {
36
36
  Vue.component('charge-modal', (resolve) => { require(['./ChargeModal'], resolve) })
37
37
  // 业务操作组件
38
38
  Vue.component('charge-oper', (resolve) => { require(['./ChargeOper'], resolve) })
39
+ //垃圾费维护主页面
40
+ Vue.component('garbage-edit-manage', (resolve) => { require(['./GarbageEditManage'], resolve) })
41
+ //垃圾费查询列表
42
+ Vue.component('garbage-list', (resolve) => { require(['./GarbageList'], resolve) })
43
+ //垃圾费右侧
44
+ Vue.component('garbage-main', (resolve) => { require(['./GarbageMain'], resolve) })
45
+ //垃圾费右侧
46
+ Vue.component('garbage-operate-main', (resolve) => { require(['./GarbageOperateMain'], resolve) })
47
+ //垃圾费右侧
48
+ Vue.component('garbage-add', (resolve) => { require(['./GarbageAdd'], resolve) })
49
+
39
50
  }
@@ -388,7 +388,7 @@
388
388
  let rs = []
389
389
  for (let i = 0; i < res.data.length; i++) {
390
390
  let temp = {
391
- label: res.data[i].f_price_name,
391
+ label: res.data[i].f_price_name+`(${res.data[i].id})`,
392
392
  type:res.data[i].f_price_type,
393
393
  flage: res.data[i].f_user_type,
394
394
  value: res.data[i].id
@@ -318,7 +318,7 @@
318
318
  let rs = []
319
319
  for (let i = 0; i < res.data.length; i++) {
320
320
  let temp = {
321
- label: res.data[i].f_price_name,
321
+ label: res.data[i].f_price_name+`(${res.data[i].id})`,
322
322
  type:res.data[i].f_price_type,
323
323
  flage: res.data[i].f_user_type,
324
324
  value: res.data[i].id
@@ -565,11 +565,16 @@
565
565
  privilegeList: [{label: '无优惠', value: '0'}],
566
566
  BankTransfer: false,
567
567
  // 小数是否支持,导致划价产生的多余气量,金额
568
- dymoney: 0
568
+ dymoney: 0,
569
+ timeDate: this.$appdata.getSingleValue('卡表缴费间隔'),
570
+ timeShijian: 0
569
571
  }
570
572
  },
571
573
  props: ['row', 'cardData'],
572
574
  async ready () {
575
+ if (this.timeDate) {
576
+ this.lastPayFee(this.row)
577
+ }
573
578
  if (this.authArr.includes('余额写卡限定')) {
574
579
  this.paytype = [{label: '余额写卡', value: '余额写卡'}]
575
580
  } else {
@@ -650,6 +655,40 @@
650
655
  }
651
656
  },
652
657
  methods: {
658
+ // 最后一次缴费时间
659
+ async lastPayFee (da) {
660
+ let condition = `1=1 and f_state = '有效' and f_userinfo_id = '${da.f_userinfo_id}'`
661
+ let data = {
662
+ items: 'f_operate_date,f_state',
663
+ tablename: 't_sellinggas',
664
+ condition: condition,
665
+ orderitem: 'f_operate_date desc'
666
+ }
667
+ let res = await this.$resetpost('rs/sql/singleTable_OrderBy', {data: data}, {rejectMsg: '缴费记录查询出错', resolveMsg: null})
668
+ if (this.isDate(res.data[0].f_operate_date)) {
669
+ // this.$dispatch('refresh', this.row)
670
+ this.$showAlert('距离上次缴费时间过短,请在' + this.timeShijian + '分钟之后再进行缴费!', 'danger', 0)
671
+ this.$dispatch('cancelclean', this.row)
672
+ }
673
+ },
674
+ isDate (dated) {
675
+ let currentDate = new Date()
676
+ let inputDate = new Date(dated)
677
+ if (inputDate.getFullYear() === currentDate.getFullYear() &&
678
+ inputDate.getMonth() === currentDate.getMonth() &&
679
+ inputDate.getDate() === currentDate.getDate()) {
680
+ let timeDiff = Math.abs(currentDate.getTime() - inputDate.getTime())
681
+ let minutesDiff = Math.floor(timeDiff / (1000 * 60))
682
+ if (minutesDiff < this.timeDate) {
683
+ this.timeShijian = Math.abs(this.timeDate - minutesDiff)
684
+ return true
685
+ } else {
686
+ return false
687
+ }
688
+ } else {
689
+ return false
690
+ }
691
+ },
653
692
  // 根据收款金额计算划价信息
654
693
  // 需要配置 calculatePreByCollection = true
655
694
  async calculatePreByCollection() {
@@ -12,35 +12,34 @@
12
12
  <!--单个录入-->
13
13
  <div v-if="onedata=='one'" class="row">
14
14
  <div class="col-sm-6 form-group "
15
- :class="[$v.f_pcd_id.required ? 'has-error' : 'has-success']">
15
+ :class="[$v.pcd.required ? 'has-error' : 'has-success']">
16
16
  <label class="font_normal_body">省&ensp;市&ensp;区</label>
17
- <input type="text" style="width:41%" v-show="false" v-model="model.f_pcd_id"
18
- >
17
+ <input type="text" style="width:41%" v-show="false" v-model="$refs.pcd.selectedItems" v-validate:pcd='{required: true }'>
19
18
  <v-select :value.sync="model.f_pcd_id" :value-single="true"
20
19
  :options='pcdslist' placeholder='请选择'
21
- close-on-select search="true" @change="pcdChange" :disabled="!usertype">
20
+ close-on-select search="true" @change="pcdChange" :disabled="!usertype" v-ref:pcd>
22
21
  </v-select>
23
22
  </div>
24
23
 
25
24
  <div class="col-sm-6 form-group " v-if="!usertype"
26
- :class="[$v.f_street_id.required ? 'has-error' : 'has-success']">
25
+ :class="[$v.street1.required ? 'has-error' : 'has-success']">
27
26
  <label class="font_normal_body">街道名称</label>
28
- <input type="text" style="width:41%" v-show="false" v-model="model.f_street_id"
27
+ <input type="text" style="width:41%" v-show="false" v-model="$refs.street1.selectedItems" v-validate:street1='{required: true }'
29
28
  >
30
29
  <v-select :value.sync="model.f_street_id" :value-single="true"
31
30
  :options='streetslist' placeholder='请选择'
32
- close-on-select search="true" :disabled="!usertype">
31
+ close-on-select search="true" :disabled="!usertype" v-ref:street1>
33
32
  </v-select>
34
33
  </div>
35
34
  <div class="col-sm-6 form-group " v-if="usertype"
36
- :class="[$v.f_street_id.required ? 'has-error' : 'has-success']">
35
+ :class="[$v.street2.required ? 'has-error' : 'has-success']">
37
36
  <label class="font_normal_body">街道名称</label>
38
- <input type="text" style="width:41%" v-show="false" v-model="model.f_street_id"
37
+ <input type="text" style="width:41%" v-show="false" v-model="$refs.street2.selectedItems" v-validate:street2='{required: true }'
39
38
  >
40
39
  <v-select :value.sync="model.f_street_id" :value-single="true"
41
40
  :options='streetslist' placeholder='请选择'
42
41
  @change="streetChange"
43
- close-on-select search="true" :disabled="!usertype">
42
+ close-on-select search="true" :disabled="!usertype" v-ref:street2>
44
43
  </v-select>
45
44
  </div>
46
45
  <div class="col-sm-6 form-group " v-if="!usertype"