sale-client 3.6.481 → 3.6.482

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.481",
3
+ "version": "3.6.482",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,106 @@
1
+ <template>
2
+ <div class="auto">
3
+ <validator name='v'>
4
+ <form class="form-horizontal">
5
+ <div class="row">
6
+ <div class="col-sm-4 form-group">
7
+ <label for="f_reason" class="font_normal_body">停用原因</label>
8
+ <v-select v-model="model.f_reason"
9
+ placeholder='停用原因'
10
+ :value.sync="model.f_reason"
11
+ :options='reason'
12
+ v-ref:reason
13
+ close-on-select ></v-select>
14
+ </div>
15
+ </div>
16
+ <div class="row" style="margin-top:1px;">
17
+ <div class="col-sm-8 form-group">
18
+ <label for="f_reason" class="font_normal_body">备&emsp;&emsp;注</label>
19
+ <input class="input_search" style="width:80%" v-model="model.f_othereason" placeholder="备注"/>
20
+ </div>
21
+ </div>
22
+ </form>
23
+ <div style="text-align:right;">
24
+ <button class="button_search button_spacing" @click="confirm()" :disabled='!$v.valid'>确认</button>
25
+ <button class="button_clear" @click="clean()" >取消</button>
26
+ </div>
27
+ </validator>
28
+ </div>
29
+ <upload :blodid="blodid" :businessid="randomBusinessId" isremark="true" :deleteimg="true" fusetype="停用"></upload>
30
+ </template>
31
+ <script>
32
+ import LogicService from './plugins/LogicService'
33
+ /**
34
+ *综合业务
35
+ 表具停用组件
36
+ */
37
+ export default {
38
+ title: '表具停用',
39
+ props: ['row'],
40
+ data () {
41
+ return {
42
+ blodid: '',
43
+ showupload: true,
44
+ model: {},
45
+ randomBusinessId: '',
46
+ reason: this.$appdata.getParam('停用原因')
47
+ }
48
+ },
49
+ ready () {
50
+ this.blodid = this.row.f_userinfo_id
51
+ this.getRandomId()
52
+ },
53
+ methods: {
54
+ getRandomId () {
55
+ this.randomBusinessId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
56
+ let res = Math.random() * 16 | 0
57
+ let v = c == 'x' ? res : (res & 0x3 | 0x8)
58
+ return v.toString(16)
59
+ })
60
+ },
61
+ async confirm () {
62
+ await LogicService.meterDisable(this.model, this.row)
63
+ let array = [{
64
+ f_user_id: this.row.f_user_id,
65
+ f_userfiles_id: this.row.f_userfiles_id,
66
+ f_alias: this.row.f_alias,
67
+ f_userinfo_id: this.row.f_userinfo_id,
68
+ f_orgname: this.$login.f.orgs,
69
+ f_orgid: this.$login.f.orgid,
70
+ f_meternumber: this.row.f_meternumber
71
+ }]
72
+ if (this.row.f_meter_type === '物联网表') {
73
+ await this.$resetpost('rs/logic/iot_instructUpdateAndDelect',
74
+ {
75
+ data: {
76
+ data1: {
77
+ f_apply_type: '阀门控制',
78
+ userid: array,
79
+ nowDate: new Date(),
80
+ f_apply_value: '关阀',
81
+ f_apply_beizhu: '表具停用自动关阀',
82
+ f_apply_operator: this.$login.f.name
83
+ },
84
+ data2: {
85
+ userid: array,
86
+ instructtype: '阀门控制',
87
+ isOpen: '关阀',
88
+ instructTitle: '手动关阀',
89
+ reasonInfo: '表具停用自动关阀',
90
+ f_instruct_state: '待发送',
91
+ inputtor: this.$login.f.name
92
+ }
93
+ }
94
+ })
95
+ }
96
+ this.$dispatch('success')
97
+ },
98
+ clean () {
99
+ this.$dispatch('refresh')
100
+ }
101
+ }
102
+ }
103
+ </script>
104
+
105
+ <style>
106
+ </style>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div class="auto">
3
+ <disable-record partial='list' :searchdata="row" @updatedata="handleChildStatusUpdate"></disable-Record>
3
4
  <validator name='v'>
4
5
  <form novalidate class="form-horizontal">
5
6
  <div class="row">
@@ -51,7 +52,8 @@
51
52
  </div>
52
53
  </form>
53
54
  <div style="text-align:right;">
54
- <button class="button_search button_spacing" @click="confirm()" :disabled='!$v.valid'>确认</button>
55
+ <button :class="['btn-green', { disabled: !authArr.includes('强制启用') }]" @click="forceConfirm()" :disabled="!authArr.includes('强制启用')">强制启用</button>
56
+ <button class="button_search button_spacing" @click="confirm()" :disabled="!isEnabled">确认</button>
55
57
  <button class="button_clear" @click="clean()" >取消</button>
56
58
  </div>
57
59
  <upload :blodid="model.f_userinfo_id" :businessid="randomBusinessId" isremark="true" :deleteimg="true" fusetype="表具启用"></upload>
@@ -103,7 +105,7 @@ let meterEnable = async function (self, model, row) {
103
105
  f_blobid: returnData.data.id
104
106
  }
105
107
  await self.$resetpost('rs/logic/updatefiles', param)
106
- if(self.kaifa){
108
+ if (self.kaifa) {
107
109
  let array = [{
108
110
  f_user_id: self.row.f_userfiles_id,
109
111
  f_alias: self.row.f_alias,
@@ -148,11 +150,12 @@ export default {
148
150
  f_date: '',
149
151
  f_reason: ''
150
152
  },
151
- resid:[],
152
- randomBusinessId:null,
153
+ resid: [],
154
+ isEnabled: false,
155
+ randomBusinessId: null,
153
156
  reason: this.$appdata.getParam('启用原因'),
154
157
  disable: {},
155
- kaifa:false
158
+ kaifa: false
156
159
  }
157
160
  },
158
161
  ready () {
@@ -172,6 +175,11 @@ export default {
172
175
  }
173
176
  },
174
177
  methods: {
178
+ handleChildStatusUpdate (status) {
179
+ // 根据子组件的状态更新父组件逻辑
180
+ console.log('子组件状态更新为:', status)
181
+ this.isEnabled = status
182
+ },
175
183
  getRandomId () {
176
184
  this.randomBusinessId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
177
185
  let res = Math.random() * 16 | 0
@@ -179,10 +187,10 @@ export default {
179
187
  return v.toString(16)
180
188
  })
181
189
  },
182
- changeisuse(val){
183
- if(val){
190
+ changeisuse (val) {
191
+ if (val) {
184
192
  this.kaifa = true
185
- }else{
193
+ } else {
186
194
  this.kaifa = false
187
195
  }
188
196
  },
@@ -195,27 +203,62 @@ export default {
195
203
  let res = await this.$resetpost('rs/sql/saleSingleTable', {data: data}, {resolveMsg: null, rejectMsg: '获取上次停用原因失败'})
196
204
  this.disable = res.data[0]
197
205
  },
198
- confirm () {
206
+ forceConfirm () {
199
207
  meterEnable(this, this.model, this.row)
200
- // this.$LogicService.meterEnable(this.model, this.row)
201
- // .then(
202
- // (res) => this.$dispatch('success', '表具启用', this.row, res)
203
- // ).catch(
204
- // (error) => {
205
- // if (error.state === 603) {
206
- // this.$error('重复提交')
207
- // return
208
- // }
209
- // this.$dispatch('error', '表具启用', this.row, error)
210
- // }
211
- // )
208
+ },
209
+ async confirm () {
210
+ try {
211
+ // 查询是否存在未处理的隐患
212
+ const data = {
213
+ condition: `f_userinfo_id = '${this.row.f_userinfo_id}' AND f_is_deal = '未处理'`
214
+ }
215
+
216
+ const response = await this.$resetpost(
217
+ 'rs/sql/HiddenDanger', // 假设这是查询接口
218
+ { data },
219
+ { resolveMsg: null, rejectMsg: '查询隐患失败' }
220
+ )
221
+ console.log('124565', response.data)
222
+ console.log('124565', response.data.length)
223
+ // 检查查询结果是否有未处理的隐患
224
+ if (response.data && response.data.length > 0) {
225
+ this.$showAlert('还有未处理的隐患,无法启用!', 'warning', 3000)
226
+ return
227
+ }
228
+
229
+ // 如果没有未处理的隐患,则执行启用逻辑
230
+ await meterEnable(this, this.model, this.row)
231
+ } catch (error) {
232
+ console.error('查询或启用操作失败:', error)
233
+ this.$error('操作失败,请重试!')
234
+ }
212
235
  },
213
236
  clean () {
214
237
  this.$dispatch('refresh')
215
238
  }
239
+ },
240
+ computed: {
241
+ authArr () {
242
+ return this.$login.r ? this.$login.r : []
243
+ }
216
244
  }
217
245
  }
218
246
  </script>
219
247
 
220
248
  <style>
249
+ .btn-green {
250
+ background-color: green;
251
+ color: white;
252
+ border: none;
253
+ padding: 5px 10px;
254
+ border-radius: 3px;
255
+ cursor: pointer;
256
+ }
257
+
258
+ .btn-green.disabled {
259
+ background-color: gray;
260
+ color: #ccc;
261
+ cursor: not-allowed; /* 禁止鼠标点击的样式 */
262
+ }
221
263
  </style>
264
+
@@ -0,0 +1,131 @@
1
+ <template>
2
+ <div style="height:100%">
3
+ <data-grid :model="model" class="table_sy" partial='list' v-ref:grid >
4
+ <template partial='head' >
5
+ <tr>
6
+ <th><nobr>序号</nobr></th>
7
+ <th><nobr>停用时间</nobr></th>
8
+ <th><nobr>操作人</nobr></th>
9
+ <th><nobr>停用原因</nobr></th>
10
+ <th><nobr>其他原因</nobr></th>
11
+ <th><nobr>状态</nobr></th>
12
+ <th><nobr>操作</nobr></th>
13
+ </tr>
14
+ </template>
15
+ <template partial='body' >
16
+ <tr >
17
+ <td style="text-align:center;white-space:nowrap;">{{$index+1}}</td>
18
+ <td style="text-align:center;white-space:nowrap;">{{row.f_operate_date}}</td>
19
+ <td style="text-align:center;white-space:nowrap;">{{row.f_operator}}</td>
20
+ <td style="text-align:center;white-space:nowrap;">{{row.f_comments}}</td>
21
+ <td style="text-align:center;white-space:nowrap;">{{row.f_othereason}}</td>
22
+ <td style="text-align:center;white-space:nowrap;">{{row.f_disable_state}}</td>
23
+ <td style="text-align:center;white-space:nowrap;">
24
+ <button
25
+ :class="{'btn-green': row.f_disable_state !== '启用', 'btn-gray': row.f_disable_state === '启用'}"
26
+ :disabled="row.f_disable_state === '启用'"
27
+ @click="$parent.$parent.enableDisable(row)">
28
+ {{ row.f_disable_state === '启用' ? '已启用' : '启用' }}
29
+ </button>
30
+ </td>
31
+ </tr>
32
+ </template>
33
+ </data-grid>
34
+ </div>
35
+ </template>
36
+
37
+ <script>
38
+ import {HttpResetClass} from 'vue-client'
39
+
40
+ export default {
41
+ title: '停用记录查询',
42
+ data () {
43
+ return {
44
+ model: {rows: []},
45
+ f_calculation: '',
46
+ cardCental: false,
47
+ hasCardCental: false
48
+ }
49
+ },
50
+ props: ['searchdata'],
51
+ ready () {
52
+ this.getsalerecord()
53
+ },
54
+ computed: {
55
+ areAllEnabled () {
56
+ // 检查所有行的状态是否都为 "启用"
57
+ let i = this.model.rows.every(row => row.f_disable_state === '启用')
58
+ console.log('123456', i)
59
+ return this.model.rows.every(row => row.f_disable_state === '启用')
60
+ }
61
+ },
62
+ methods: {
63
+ cancel () {
64
+ this.cardCental = false
65
+ },
66
+ async getsalerecord () {
67
+ let http = new HttpResetClass()
68
+ // this.condition = `1=1 and f_user_id = '${this.searchdata.f_user_id}'`
69
+ this.condition = `1=1 and f_userinfo_id = '${this.searchdata.f_userinfo_id}' and t.f_operate_date != (
70
+ select max(f_operate_date)
71
+ from t_disable
72
+ where f_userinfo_id = '${this.searchdata.f_userinfo_id}'
73
+ )`
74
+ let record = await http.load('POST', 'rs/sql/disableQuery', {data: {condition: this.condition, orderitem: `f_operate_date desc`}}, {
75
+ rejectMsg: '停用记录查询出错!!',
76
+ resolveMsg: null
77
+ })
78
+ this.model.rows = record.data
79
+ },
80
+ async enableDisable (row) {
81
+ // 更新表 t_disable 的 f_disable_state 字段为 '启用'
82
+ let http = new HttpResetClass()
83
+ try {
84
+ await http.load('POST', 'rs/logic/updateDisableState', {
85
+ data: {
86
+ id: row.id, // 假设 `row` 中有主键字段 `id`
87
+ f_disable_state: '启用'
88
+ }
89
+ }, {
90
+ resolveMsg: '启用成功!',
91
+ rejectMsg: '启用失败!'
92
+ })
93
+ // 更新本地数据
94
+ row.f_disable_state = '启用'
95
+ } catch (error) {
96
+ console.error('启用失败', error)
97
+ }
98
+ }
99
+ },
100
+ watch: {
101
+ 'searchdata' () {
102
+ this.getsalerecord()
103
+ },
104
+ 'model.rows': {
105
+ handler () {
106
+ const allEnabled = this.model.rows.every(row => row.f_disable_state === '启用')
107
+ this.$emit('updatedata', allEnabled)
108
+ },
109
+ deep: true
110
+ }
111
+ }
112
+ }
113
+ </script>
114
+ <style scoped>
115
+ .btn-green {
116
+ background-color: green;
117
+ color: white;
118
+ border: none;
119
+ padding: 5px 10px;
120
+ border-radius: 3px;
121
+ cursor: pointer;
122
+ }
123
+ .btn-gray {
124
+ background-color: gray;
125
+ color: white;
126
+ border: none;
127
+ padding: 5px 10px;
128
+ border-radius: 3px;
129
+ cursor: not-allowed;
130
+ }
131
+ </style>
@@ -0,0 +1,496 @@
1
+ import Vue from 'vue'
2
+ import co from 'co'
3
+
4
+ let disableGen = function * (data) {
5
+ let owe = yield Vue.resetpost('rs/sql/getOverdue', {data: {f_userfiles_id: data.f_userfile_id + ''}}, {resolveMsg: null, rejectMsg: null})
6
+ console.log('表具停用看是否有欠费', owe.data)
7
+ let hasHandplan = yield Vue.resetpost('rs/sql/saleSingleTable', {data: {tablename: 't_handplan', condition: `f_meter_state = '未抄表' and f_userfiles_id = '${data.f_userfile_id + ''}'`}}, {resolveMsg: null, rejectMsg: null})
8
+ console.log('是否有未抄表数据', hasHandplan.data)
9
+ if (owe.data.length > 0 && hasHandplan.data.length > 0) {
10
+ Vue.showAlert('该表具还有欠费或者未抄表数据,不能停用!!', 'danger', 0)
11
+ } else {
12
+ yield Vue.resetpost('rs/entity/t_disable', data, {resolveMsg: '表具停用成功', rejectMsg: '表具停用失败'})
13
+ }
14
+ }
15
+
16
+ let LogicService = {
17
+ install (Vue, options) {
18
+ // 给vue增添对话框显示方法
19
+ Vue.LogicService = Vue.prototype.$LogicService = LogicService
20
+ },
21
+
22
+ // 总分表
23
+ addSplit (total_id, split_tables) {
24
+ let data = {
25
+ total_id: total_id,
26
+ split_ids: split_tables
27
+ }
28
+ console.log('终于到总分表保存了,,,,', data)
29
+ return Vue.resetpost('rs/logic/totalsplit', {data: data}, {resolveMsg: '成功建立总分表关系', rejectMsg: '建立总分表关系出错!!!'})
30
+ },
31
+
32
+ // 表具启用
33
+ meterEnable (model, row) {
34
+ let data = {
35
+ f_userfiles_id: {
36
+ f_userfiles_id: row.f_userfiles_id,
37
+ f_table_state: '正常',
38
+ version: row.version
39
+ },
40
+ f_userfile_id: row.f_userfiles_id,
41
+ f_user_id: row.f_user_id,
42
+ record_userinfo: row.f_userinfo_id,
43
+ f_userinfo_id: row.f_userinfo_id,
44
+ f_user_name: row.f_user_name,
45
+ f_comments: model.f_reason[0],
46
+ f_othereason: model.f_othereason,
47
+ f_operat_type: '启用',
48
+ f_describe: `${Vue.$login.f.name}对客户${row.f_user_name}进行表具启用操作`,
49
+ f_state: '有效',
50
+ f_operator: Vue.$login.f.name,
51
+ f_operatorid: Vue.$login.f.id,
52
+ f_orgid: Vue.$login.f.orgid,
53
+ f_orgname: Vue.$login.f.orgs,
54
+ f_depid: Vue.$login.f.depids,
55
+ f_depname: Vue.$login.f.deps,
56
+ f_zoneid: Vue.$login.f.zoneid,
57
+ f_zones: Vue.$login.f.zones
58
+ }
59
+ return Vue.resetpost('rs/entity/t_enable', data, {resolveMsg: '表具启用成功', rejectMsg: '表具启用失败'})
60
+ },
61
+
62
+ // 表具停用
63
+ meterDisable (model, row) {
64
+ let data = {
65
+ f_userfiles_id: {
66
+ f_userfiles_id: row.f_userfiles_id,
67
+ f_table_state: '停用',
68
+ version: row.version
69
+ },
70
+ f_userfile_id: row.f_userfiles_id,
71
+ f_user_id: row.f_user_id,
72
+ f_userinfo_id: row.f_userinfo_id,
73
+ f_user_phone: row.f_user_phone,
74
+ f_user_name: row.f_user_name,
75
+ f_comments: model.f_reason[0],
76
+ f_othereason: model.f_othereason,
77
+ f_operat_type: '停用',
78
+ f_describe: `${Vue.$login.f.name}对客户${row.f_user_name}进行表具停用操作`,
79
+ f_state: '有效',
80
+ f_disable_state: '停用',
81
+ f_operator: Vue.$login.f.name,
82
+ f_operatorid: Vue.$login.f.id,
83
+ f_orgid: Vue.$login.f.orgid,
84
+ f_orgname: Vue.$login.f.orgs,
85
+ f_depid: Vue.$login.f.depids,
86
+ f_depname: Vue.$login.f.deps,
87
+ f_zoneid: Vue.$login.f.zoneid,
88
+ f_zones: Vue.$login.f.zones
89
+ }
90
+ let disable = disableGen(data)
91
+ return co(disable)
92
+ },
93
+
94
+ // 其他收费
95
+ otherCharge (model, row) {
96
+ let data = {
97
+ f_time_date: model.f_time_date,
98
+ f_serial_id: model.f_serial_id,
99
+ record_userinfo: row.f_userinfo_id,
100
+ f_serial_number: model.f_serial_number,
101
+ f_userfiles_id: row.f_userfiles_id,
102
+ f_user_id: row.f_user_id,
103
+ f_user_name:row.f_user_name,
104
+ f_address:row.f_address,
105
+ f_user_type:row.f_user_type,
106
+ f_gasproperties:row.f_gasproperties,
107
+ // f_number: model.f_number,
108
+ // f_unitprice: model.f_unitprice,
109
+ f_collection: model.f_collection,
110
+ f_comments: model.f_comments,
111
+ f_payment: model.f_payment[0],
112
+ f_voucher_number: model.f_voucher_number,
113
+ f_bill_style: model.f_print[0],
114
+ // f_brand_spec: model.f_brand_spec[0],
115
+ f_userinfo_id: row.f_userinfo_id,
116
+ f_service_person: model.f_service_person[0],
117
+ f_operat_type: '其他收费',
118
+ f_describe: `${Vue.$login.f.name}对客户${row.f_user_name}进行其他收费操作`,
119
+ f_state: '有效',
120
+ f_operator: Vue.$login.f.name,
121
+ f_operatorid: Vue.$login.f.id,
122
+ f_orgid: Vue.$login.f.orgid,
123
+ f_orgname: Vue.$login.f.orgs,
124
+ f_depid: Vue.$login.f.depids,
125
+ f_depname: Vue.$login.f.deps,
126
+ f_zoneid: Vue.$login.f.zoneid,
127
+ f_zones: Vue.$login.f.zones,
128
+ // 其他费用信息
129
+ t_userfees: model.t_userfees,
130
+ f_fee_type: model.f_fee_type[0],
131
+ f_fee_time: model.f_fee_time[0],
132
+ otherdetail: model.otherdetail
133
+ }
134
+ return Vue.resetpost('rs/logic/sale_othercharge_logic', data, {resolveMsg: '其他收费成功', rejectMsg: '其他收费失败'})
135
+ },
136
+ otherChargeByPay (model, row) {
137
+ let data = {
138
+ f_serial_id: model.f_serial_id,
139
+ nopay_id: model.nopay_id,
140
+ record_userinfo: row.f_userinfo_id,
141
+ f_userfiles_id: row.f_userfiles_id,
142
+ f_user_id: row.f_user_id,
143
+ f_user_name:row.f_user_name,
144
+ f_address:row.f_address,
145
+ f_user_type:row.f_user_type,
146
+ f_gasproperties:row.f_gasproperties,
147
+ // f_number: model.f_number,
148
+ // f_unitprice: model.f_unitprice,
149
+ f_collection: model.f_collection,
150
+ f_comments: model.f_comments,
151
+ f_payment: model.f_payment[0],
152
+ f_voucher_number: model.f_voucher_number,
153
+ f_bill_style: model.f_print[0],
154
+ // f_brand_spec: model.f_brand_spec[0],
155
+ f_userinfo_id: row.f_userinfo_id,
156
+ f_service_person: model.f_service_person[0],
157
+ f_operat_type: '其他收费',
158
+ f_describe: `${Vue.$login.f.name}对客户${row.f_user_name}进行其他收费操作`,
159
+ f_state: '有效',
160
+ f_operator: Vue.$login.f.name,
161
+ f_operatorid: Vue.$login.f.id,
162
+ f_orgid: Vue.$login.f.orgid,
163
+ f_orgname: Vue.$login.f.orgs,
164
+ f_depid: Vue.$login.f.depids,
165
+ f_depname: Vue.$login.f.deps,
166
+ f_zoneid: Vue.$login.f.zoneid,
167
+ f_zones: Vue.$login.f.zones,
168
+ // 其他费用信息
169
+ t_userfees: model.t_userfees,
170
+ otherdetail: model.otherdetail
171
+ }
172
+ return Vue.resetpost('rs/logic/sale_othercharge_bypay', data, {resolveMsg: '其他收费成功', rejectMsg: '其他收费失败'})
173
+ },
174
+ // 维修收费
175
+ repairCharge (model, row) {
176
+ let data = {
177
+ record_userinfo: row.f_userinfo_id,
178
+ f_userfiles_id: row.f_userfiles_id,
179
+ f_user_id: row.f_user_id,
180
+ // f_number: model.f_number,
181
+ // f_unitprice: model.f_unitprice,
182
+ f_collection: model.f_collection,
183
+ f_comments: model.f_comments,
184
+ f_payment: model.f_payment[0],
185
+ f_voucher_number: model.f_voucher_number,
186
+ f_bill_style: model.f_print[0],
187
+ // f_brand_spec: model.f_brand_spec[0],
188
+ f_userinfo_id: row.f_userinfo_id,
189
+ f_service_person: model.f_service_person[0],
190
+ f_operat_type: '维修收费',
191
+ f_describe: `${Vue.$login.f.name}对客户${row.f_user_name}进行维修收费操作`,
192
+ f_state: '有效',
193
+ f_operator: Vue.$login.f.name,
194
+ f_operatorid: Vue.$login.f.id,
195
+ f_orgid: Vue.$login.f.orgid,
196
+ f_orgname: Vue.$login.f.orgs,
197
+ f_depid: Vue.$login.f.depids,
198
+ f_depname: Vue.$login.f.deps,
199
+ f_zoneid: Vue.$login.f.zoneid,
200
+ f_zones: Vue.$login.f.zones,
201
+ // 其他费用信息
202
+ t_userfees: model.t_userfees,
203
+ f_fee_type: model.f_fee_type[0],
204
+ f_fee_time: model.f_fee_time[0],
205
+ otherdetail: model.otherdetail
206
+ }
207
+ return Vue.resetpost('rs/logic/repaircharge', data, {resolveMsg: '维修收费成功', rejectMsg: '维修收费失败'})
208
+ },
209
+ // 过户管理
210
+ changeAccount (model) {
211
+ // console.log('过户。,。。', model)
212
+ return Vue.resetpost('rs/logic/transferSave', {data: {model: model}}, {resolveMsg: '过户成功', rejectMsg: '过户失败'})
213
+ },
214
+
215
+ updateGasPrice (data) {
216
+ // 批量变更气价
217
+ return Vue.resetpost('rs/logic/updateBatchPrice', data, {resolveMsg: '批量修改成功', rejectMsg: '批量变更气价失败'})
218
+ },
219
+ // 增加气表品牌
220
+ addGasBrand (model, Arrlist) {
221
+ let data = {
222
+ f_meter_brand: model.f_meter_brand,
223
+ f_manufacturers: model.f_manufacturers,
224
+ f_meter_type: model.f_meter_type,
225
+ f_police_gas: model.f_police_gas ? model.f_police_gas : 0,
226
+ f_cardnumber: model.f_cardnumber,
227
+ f_card_password: model.f_card_password,
228
+ f_topup_ceil: model.f_topup_ceil ? model.f_topup_ceil : 0,
229
+ f_overdr_lines: model.f_overdr_lines ? model.f_overdr_lines : 0,
230
+ f_meter_limit: model.f_meter_limit ? model.f_meter_limit : 0,
231
+ f_checkout_limit: model.f_checkout_limit ? model.f_checkout_limit : 0,
232
+ f_is_replacement: model.f_is_replacement ? model.f_is_replacement : '',
233
+ f_alias: model.f_alias,
234
+ f_isdecimal: model.f_isdecimal,
235
+ f_collection_type: model.f_collection_type,
236
+ f_calculation: model.f_calculation,
237
+ f_system_settlement: model.f_system_settlement,
238
+ f_comments: model.f_comments,
239
+ f_is_check: model.f_is_check,
240
+ f_is_step: model.f_is_step,
241
+ f_priority: model.f_priority,
242
+ f_support_purchase: model.f_support_purchase,
243
+ f_issupport_feededuction: model.f_issupport_feededuction,
244
+ f_dynamic_expire: model.f_dynamic_expire,
245
+ f_hascard: model.f_hascard,
246
+ f_share_times: model.f_share_times,
247
+ f_share_open: model.f_share_open,
248
+ f_operatorid: Vue.$login.f.id,
249
+ f_operator: Vue.$login.f.name,
250
+ f_orgid: Vue.$login.f.orgid,
251
+ f_orgname: Vue.$login.f.orgs,
252
+ f_depid: Vue.$login.f.depids,
253
+ f_depname: Vue.$login.f.deps,
254
+
255
+ gasmodellist: Arrlist
256
+ }
257
+ return Vue.resetpost('rs/logic/addGasBrand', {data: data}, {resolveMsg: '添加气表成功', rejectMsg: '增加气表失败'})
258
+ },
259
+ // 修改气表品牌
260
+ modifyGasBrand (model, Arrlist) {
261
+ console.log('气表品牌保存,,', model)
262
+ model.f_operatorid = Vue.$login.f.id
263
+ model.f_operator = Vue.$login.f.name
264
+ model.f_orgid = Vue.$login.f.orgid
265
+ model.f_orgname = Vue.$login.f.orgs
266
+ model.f_depid = Vue.$login.f.depids
267
+ model.f_depname = Vue.$login.f.deps
268
+ return Vue.resetpost('rs/logic/updataGasBrand', {data: {data: model, gasmodellist: Arrlist}}, {resolveMsg: '修改气表品牌成功', rejectMsg: '修改气表品牌失败'})
269
+ },
270
+ // 删除气表品牌
271
+ delGasBrand (row) {
272
+ console.log(row)
273
+ return Vue.resetpost('rs/logic/delGasBrand', {data: {id: row.id, f_orgid: Vue.$login.f.orgid}})
274
+ },
275
+ deleteUsingOrg (row) {
276
+ console.log(row)
277
+ return Vue.resetpost('rs/logic/deleteUsingOrg', {data: {id: row.f_gasbrand_id, f_orgid: row.f_orgid}})
278
+ },
279
+ createMessage (data) {
280
+ return Vue.resetpost('rs/logic/messageBatchOperate', data, {resolveMsg: '生成短信成功', rejectMsg: '生成短信失败'})
281
+ },
282
+ createCustomMessage (data) {
283
+ return Vue.resetpost('rs/customMessage/send', {data: data}, {resolveMsg: null, rejectMsg: null})
284
+ },
285
+ createMessageNew (data) {
286
+ return Vue.resetpost('rs/logic/messageBatchOperateNew', data, {resolveMsg: '生成短信成功', rejectMsg: '生成短信失败'})
287
+ },
288
+ helpInfo (model) {
289
+ let data = {
290
+ id: model.id,
291
+ f_allowed_user: model.f_allowed_user,
292
+ f_allowed_company: model.f_allowed_company,
293
+ f_password: model.f_password,
294
+ f_operator: model.f_operator
295
+ }
296
+ return Vue.resetpost('rs/logic/helpInfoAdd', {data: data})
297
+ },
298
+ del (model) {
299
+ let data = {
300
+ id: model.id
301
+ }
302
+ return Vue.resetpost('rs/logic/delHelpRow', {data: data})
303
+ },
304
+
305
+ // 抄表册
306
+ gasMeterBook (model, row) {
307
+ console.log('表册信息保存,,', model)
308
+ let data = {
309
+ f_book_code: model.f_book_code,
310
+ f_book_name: model.f_book_name,
311
+ f_inputtor: model.f_inputtor,
312
+ f_period: model.f_period,
313
+ f_hand_begin_date: model.f_hand_begin_date,
314
+ f_hand_end_date: model.f_hand_end_date,
315
+ f_hand_month: model.f_hand_month ? model.f_hand_month : null,
316
+ f_book_remark: model.f_book_remark,
317
+ f_filiale_id: model.f_filiale_id,
318
+ f_filiale_name: model.f_filiale_name,
319
+ f_comments: model.f_comments,
320
+ f_state: '有效',
321
+ f_book_state: model.f_book_state,
322
+ f_meterbook_end_date:model.f_meterbook_end_date,
323
+ f_operatorid: Vue.$login.f.id,
324
+ f_operator: Vue.$login.f.name,
325
+ f_orgid: model.f_filiale_id,
326
+ f_orgname: model.f_filiale_name,
327
+ f_depid: Vue.$login.f.depids,
328
+ f_depname: Vue.$login.f.deps,
329
+ f_book_slice_area: model.f_book_slice_area,
330
+ userid: Vue.$login.f.id,
331
+ type: '添加'
332
+ }
333
+
334
+ if (row && row.id != null) {
335
+ data.id = row.id
336
+ data.version = row.version
337
+ data.type = '修改'
338
+ }
339
+ console.log('data提交之前', data)
340
+ return Vue.resetpost('rs/logic/saveMeterBook', {data: data})
341
+ },
342
+ gasPrice (model, row, blodid) {
343
+ let data = {
344
+ f_blodid: blodid,
345
+ f_price_type: model.f_price_type,
346
+ f_price_name: model.f_price_name,
347
+ f_user_type: model.f_user_type,
348
+ f_gasproperties: model.f_gasproperties,
349
+ f_perform_date: model.f_perform_date,
350
+ f_end_date: '2099-12-31 23:59:59',
351
+ f_islow_income: model.f_islow_income - 0,
352
+ f_limit_cycle: model.f_limit_cycle ? model.f_limit_cycle : 0,
353
+ f_limit_gas: model.f_limit_gas ? model.f_limit_gas : 0,
354
+
355
+ // 阶梯相关字段
356
+ f_stairmonths: null,
357
+ f_population_base: null,
358
+ f_stair_start_date: null,
359
+ f_add_price: model.f_add_price,
360
+ f_isheat: model.f_isheat - 0,
361
+ f_deduction_way: model.f_deduction_way,
362
+ // 采暖季相关字段
363
+ f_heat_start_date: model.f_heat_start_date ? model.f_heat_start_date : null,
364
+ f_heat_cycle: model.f_heat_cycle ? model.f_heat_cycle : null,
365
+
366
+ f_priority: model.f_priority,
367
+ f_comments: model.f_comments,
368
+ f_state: '有效',
369
+ f_operatorid: Vue.$login.f.id,
370
+ f_operator: Vue.$login.f.name,
371
+ f_orgid: Vue.$login.f.orgid,
372
+ f_orgname: Vue.$login.f.orgs,
373
+ f_depid: Vue.$login.f.depids,
374
+ f_depname: Vue.$login.f.deps,
375
+
376
+ // 所属分公司
377
+ f_filialeid: model.f_filialeid,
378
+ f_filialename: model.f_filialename,
379
+
380
+ detailprice: model.detailprice,
381
+ f_processid: model.f_processid,
382
+ userid: Vue.$login.f.id,
383
+ audit: model.audit,
384
+ type: '添加'
385
+ }
386
+ if(model.f_priceStates && model.f_priceStates=='否'){
387
+ data.f_end_date=null
388
+ }
389
+ if (model.toBeUsePriceId && model.toBeUsePriceVersion) {
390
+ // 待使用 气价的id
391
+ data.toBeUsePriceId = model.toBeUsePriceId
392
+ data.toBeUsePriceVersion = model.toBeUsePriceVersion
393
+ }
394
+
395
+ if (model.limit_gas) {
396
+ data.limit_gas = model.limit_gas
397
+ }
398
+
399
+ if (data.purchaselimit) {
400
+ data.purchaselimit.forEach((item, index) => {
401
+ data.purchaselimit[index].value = model.purchaselimit[index].value
402
+ })
403
+ }
404
+ if (data.f_price_type === '固定气价') {
405
+ if (data.detailprice[0].id) {
406
+ delete data.detailprice[0].id
407
+ }
408
+ data.detailprice[0].f_price_name = 1
409
+ } else if (data.f_price_type === '混合气价') {
410
+ if (delete data.detailprice[0].id) {
411
+ delete data.detailprice[0].id
412
+ }
413
+ data.detailprice[0].f_price_name = 1
414
+ data.detailprice[0].f_mixprice = model.detailprice[0].f_mixprice[0]
415
+ if (delete data.detailprice[1].id) {
416
+ delete data.detailprice[1].id
417
+ }
418
+ data.detailprice[1].f_price_name = 2
419
+ data.detailprice[1].f_mixprice = model.detailprice[1].f_mixprice[0]
420
+ } else if (data.f_price_type === '阶梯气价') {
421
+ data.f_stairmonths = model.f_stairmonths
422
+ data.f_population_base = model.f_population_base
423
+ data.f_stair_start_date = model.f_stair_start_date
424
+ data.detailprice.forEach((item, index) => {
425
+ data.detailprice[index].f_price_name = index + 1
426
+ if (index === 0){
427
+ data.detailprice[index].f_available_gas = data.detailprice[index].f_gas
428
+ } else {
429
+ data.detailprice[index].f_available_gas = data.detailprice[index].f_gas-data.detailprice[index-1].f_gas
430
+ }
431
+
432
+ if (data.detailprice[index].id) {
433
+ if (delete data.detailprice[index].id) {
434
+ delete data.detailprice[index].id
435
+ }
436
+ } else if (data.detailprice[index].f_ratio) {
437
+ data.detailprice[index].f_ratio = null
438
+ } else if (!data.detailprice[index].f_add_gas) {
439
+ data.detailprice[index].f_add_gas = 0
440
+ } else if (!data.detailprice[index].f_add_gas_heat) {
441
+ data.detailprice[index].f_add_gas_heat = 0
442
+ }
443
+ })
444
+ }
445
+ if (row && row.id != null) {
446
+ data.oldprice = {
447
+ id: row.id
448
+ }
449
+ data.type = '修改'
450
+ data.f_price_id = row.f_price_id
451
+ data.f_version = (row.f_version - 0)
452
+ }
453
+ console.log('data提交之前', data)
454
+ return Vue.resetpost('rs/logic/gasprice', {data: data})
455
+ },
456
+ basicLiving (model, row) {
457
+ console.log('看传过来的model')
458
+ console.log(model)
459
+ let data = {
460
+ f_userinfo_id: model.f_userinfo_id,
461
+ f_userfiles_id: model.f_userfiles_id,
462
+ f_start_date: model.f_start_date,
463
+ f_end_date: model.f_end_date,
464
+ // f_period: model.f_period,
465
+ f_state: '有效',
466
+ f_price_id: model.f_price_id,
467
+ f_operatorid: Vue.$login.f.id,
468
+ f_operator: Vue.$login.f.name,
469
+ f_orgid: Vue.$login.f.orgid,
470
+ f_orgname: Vue.$login.f.orgs,
471
+ f_depid: Vue.$login.f.depids,
472
+ f_depname: Vue.$login.f.deps,
473
+
474
+ type: '添加'
475
+ }
476
+ if (row && row.id != null) {
477
+ data.oldbasicliving = {
478
+ id: row.id
479
+ }
480
+ data.type = '修改'
481
+ }
482
+ console.log('data提交之前', data)
483
+ return Vue.resetpost('rs/logic/addBasicLiving', {data: data})
484
+ },
485
+ sendMessage (condition) {
486
+ return Vue.resetpost('rs/logic/sendSms', {condition: condition})
487
+ },
488
+ deletMessage (condition) {
489
+ return Vue.resetpost('rs/logic/deleteSms', {condition: condition}, {resolveMsg: '删除短信成功', rejectMsg: '删除短信失败'})
490
+ },
491
+ deletAllMessage (condition) {
492
+ return Vue.resetpost('rs/logic/deleteSms', {condition: condition, operate: 'all'}, {resolveMsg: '删除短信成功', rejectMsg: '删除短信失败'})
493
+ }
494
+ }
495
+
496
+ export default LogicService
@@ -63,4 +63,8 @@ export default function () {
63
63
  Vue.component('warehouse-add-maintain', (resolve) => { require(['./AddWarehousemain'], resolve) })
64
64
  // 新表信息
65
65
  Vue.component('meter-message', (resolve) => { require(['./MeterMessage.vue'], resolve) })
66
+ // 表具停用
67
+ Vue.component('disable-manage', (resolve) => { require(['./DisableManage'], resolve) })
68
+ // 停用记录查看
69
+ Vue.component('disable-record', (resolve) => { require(['./disableRecord'], resolve) })
66
70
  }
@@ -11,8 +11,8 @@
11
11
  <div v-show="!$parent.$parent.authArr.includes('读卡限定')">
12
12
  <div class="form-group col-sm-3">
13
13
  <label class="font_normal_body">模糊查询</label>
14
- <input type="text" class="input_search" style="width:60%" v-model="model.searchQuery" placeholder='编号 名称 地址 电话 表号'
15
- @keyup.enter="$parent.$parent.clean()" condition="(f_userinfo_code like '%{}%' OR f_user_name like '%{}%' OR f_user_phone like '%{}%' OR address.f_address like '%{}%' OR u.f_meternumber like '%{}%')">
14
+ <input type="text" class="input_search" style="width:60%" v-model="model.searchQuery" placeholder='编号 名称 地址 电话 表号 备用电话 租户电话'
15
+ @keyup.enter="$parent.$parent.clean()" condition="(f_userinfo_code like '%{}%' OR f_user_name like '%{}%' OR f_user_phone like '%{}%' OR address.f_address like '%{}%' OR u.f_meternumber like '%{}%' OR f_rent_phone like '%{}%' OR f_zuhu_phone like '%{}%')">
16
16
  </div>
17
17
  <div class="form-group col-sm-3" >
18
18
  <label class="font_normal_body">客户编号</label>