sale-client 3.6.349 → 3.6.351

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/package.json +1 -1
  2. package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +6 -1
  3. package/src/components/common/userinfo_detail/ic_detail/UserKeyRecord.vue +152 -0
  4. package/src/components/common/userinfo_detail/ic_detail/insertKeyUser.vue +358 -0
  5. package/src/components/revenue/comprehen/SpecialUser/BlackList/BlackListRecord.vue +25 -5
  6. package/src/components/webMeter/WebMeterExceptionHandle.vue +277 -0
  7. package/src/components/webMeter/WebMeterExceptionList.vue +352 -0
  8. package/src/components/webMeter/WebMeterExceptionManage.vue +93 -0
  9. package/src/filiale/qianneng/OtherChargeNew.vue +3 -3
  10. package/src/filiale/qianneng/eticket/EticketManage.vue +60 -0
  11. package/src/filiale/qianneng/eticket/EticketOpenCard.vue +337 -0
  12. package/src/filiale/qianneng/eticket/EticketOpenJBPage.vue +331 -0
  13. package/src/filiale/qianneng/eticket/EticketOpenPage.vue +336 -0
  14. package/src/filiale/qianneng/eticket/EticketPrint.vue +2 -2
  15. package/src/filiale/qianneng/eticket/EticketRecordList.vue +1 -1
  16. package/src/filiale/qianneng/machine/CardMeterCenter.vue +980 -0
  17. package/src/filiale/qianneng/machine/IOTMeterCenter.vue +871 -0
  18. package/src/filiale/qianneng/machine/MachineMeterCenter.vue +4 -7
  19. package/src/filiale/qianneng/sale.js +12 -0
  20. package/src/filiale/rongchuang/CardMeterCenter.vue +2 -1
  21. package/src/filiale/rongchuang/EticketPrint.vue +8 -7
  22. package/src/filiale/rongchuang/IOTMeterCenter.vue +2 -1
  23. package/src/filiale/rongchuang/ShowCardSellGas.vue +2 -2
  24. package/src/filiale/rongchuang/bill/CustQueryEticket.vue +1 -1
  25. package/src/filiale/rongchuang/bill/EticketRecordList.vue +6 -2
  26. package/src/filiale/yangchun/BlackList/BlackList.vue +99 -19
  27. package/src/filiale/yangchun/BlackList/BlackRecordQuery.vue +56 -5
  28. package/src/filiale/yangchun/EticketV4/CustQueryEticket.vue +0 -3
  29. package/src/filiale/yangchun/EticketV4/EticketOpenCard.vue +0 -3
  30. package/src/filiale/yangchun/EticketV4/EticketOpenJBPage.vue +0 -3
  31. package/src/filiale/yangchun/EticketV4/EticketOpenPage.vue +0 -3
  32. package/src/filiale/yangchun/FilesManage/UserGeneralInfoTest.vue +8 -1
  33. package/src/sale.js +7 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.349",
3
+ "version": "3.6.351",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -91,6 +91,9 @@
91
91
  <saletab header="合同查看" v-if="permission('合同查看')">
92
92
  <contract-signing-list :row="row" v-if="show == '合同查看'" @deal-msg="dealMsg"></contract-signing-list>
93
93
  </saletab>
94
+ <saletab header="用户重点记录" >
95
+ <user-key-record :row="row" @deal-msg="dealMsg"></user-key-record>
96
+ </saletab>
94
97
  </saletabbut>
95
98
  </div>
96
99
  </div>
@@ -116,6 +119,7 @@
116
119
  import WebHandQueryUser from './ic_detail/WebHandQueryUser'
117
120
  import UserDeviceQuery from './ic_detail/UserDeviceQuery'
118
121
  import contractSigningList from './ic_detail/contractSigningList'
122
+ import UserKeyRecord from './ic_detail/UserKeyRecord'
119
123
 
120
124
  // 导入物联网相关查询
121
125
  import QueryInstruct from './iot_detail/QueryInstruct'
@@ -157,7 +161,8 @@ export default {
157
161
  DeveiceRecord,
158
162
  MachineRecordQuery,
159
163
  UserDeviceQuery,
160
- contractSigningList
164
+ contractSigningList,
165
+ UserKeyRecord
161
166
  },
162
167
  data () {
163
168
  return {
@@ -0,0 +1,152 @@
1
+ <template>
2
+ <div class="flex" style="justify-content: space-between;" v-if="!openInsertKeyUser" >
3
+ <div @keyup.enter="search">
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" width="100%">
8
+ <div class="col-sm-2 form-group">
9
+ <label class="font_normal_body">开始时间</label>
10
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
11
+ class="datepicker"
12
+ condition="f_parameter_value >= '{} 00:00:00' "
13
+ placeholder="起始时间"
14
+ style="width:60%"
15
+ v-model="model.f_start_date"
16
+ ></datepicker>
17
+ </div>
18
+ <div class="col-sm-2 form-group" >
19
+ <label class="font_normal_body" >结束时间</label>
20
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
21
+ class="datepicker"
22
+ condition="f_parameter_value <= '{} 23:59:59' "
23
+ placeholder="结束时间"
24
+ style="width:60%"
25
+ v-model="model.f_end_date"
26
+ ></datepicker>
27
+ </div>
28
+ <div style="float: right">
29
+ <button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
30
+ <button class="btn btn-success" @click="$parent.$parent.clear()" v-el:cx>清空</button>
31
+ <button @click.stop="$parent.$parent.insertKeyUser()" class="button_search" style="margin-right: 10px" v-el:cba>添加重点用户</button>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </criteria>
36
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
37
+ <template partial='head'>
38
+ <tr>
39
+ <th><nobr>序号</nobr></th>
40
+ <th><nobr>用户编号</nobr></th>
41
+ <th><nobr>用户姓名</nobr></th>
42
+ <th><nobr>用户地址</nobr></th>
43
+ <th><nobr>电话</nobr></th>
44
+ <th><nobr>表号</nobr></th>
45
+ <th><nobr>卡号</nobr></th>
46
+ <th><nobr>移入原因</nobr></th>
47
+ <th><nobr>管控级别</nobr></th>
48
+ <th><nobr>限制功能</nobr></th>
49
+ <th><nobr>备注</nobr></th>
50
+ <th><nobr>审核状态</nobr></th>
51
+ <th><nobr>操作状态</nobr></th>
52
+ <th><nobr>操作时间</nobr></th>
53
+ <th><nobr>操作人</nobr></th>
54
+ </tr>
55
+ </template>
56
+ <template partial='body' partial='list' v-ref:grid>
57
+ <tr v-for="(row, index) in model.items" :key="index">
58
+ <td style="text-align:center">{{$index+1}}</td>
59
+ <td style="text-align:center">{{row.f_userinfo_code}}</td>
60
+ <td style="text-align:center">{{row.f_user_name}}</td>
61
+ <td style="text-align:center">{{row.f_address}}</td>
62
+ <td style="text-align:center">{{row.f_user_phone}}</td>
63
+ <td style="text-align:center">{{row.f_meternumber}}</td>
64
+ <td style="text-align:center">{{row.f_card_id}}</td>
65
+ <td style="text-align:center">{{row.f_comments}}</td>
66
+ <td style="text-align:center">{{row.f_level}}</td>
67
+ <td style="text-align:center">{{$parent.$parent.$parent.formatFunction(row.f_function)}}</td>
68
+ <td style="text-align:center">{{row.f_remark}}</td>
69
+ <td style="text-align:center">{{row.f_state}}</td>
70
+ <td style="text-align:center">{{row.f_opr_state}}</td>
71
+ <td style="text-align:center">{{row.f_operate_date}}</td>
72
+ <td style="text-align:center">{{row.f_operator}}</td>
73
+ <td style="text-align:center;display:none;" >{{row.f_userinfo_id}}
74
+ </td>
75
+ </tr>
76
+ </template>
77
+ </data-grid>
78
+ </criteria-paged>
79
+ </div>
80
+ </div>
81
+ <insert-key-user v-if="openInsertKeyUser"
82
+ :f_userinfo_id="selectedUserId"
83
+ @cancel="handleCancel"
84
+ :userOperationState="userOperationState"
85
+ @updateUserOperationState="updateUserOperationState"
86
+ ></insert-key-user>
87
+
88
+ </template>
89
+ <script>
90
+ import {PagedList} from "vue-client"
91
+ import insertKeyUser from './insertKeyUser.vue'
92
+ export default {
93
+ title: '用户重点记录',
94
+ components: {
95
+ insertKeyUser
96
+ },
97
+ data () {
98
+ return {
99
+ userOperationState: '',
100
+ selectedUserId: null,
101
+ openInsertKeyUser: false,
102
+ condition: '1=1',
103
+ model: new PagedList('/rs/sql/sale_blackRecordQuery', 20),
104
+ searchValue: this.$appdata.getSingleValue('综合条件查询') ? this.$appdata.getSingleValue('综合条件查询') : 'f_userfiles_id',
105
+ }
106
+ },
107
+ props: ['row'],
108
+ methods: {
109
+ formatFunction(functionString) {
110
+ if (!functionString) return ''
111
+ try {
112
+ // 解析 JSON 字符串为数组
113
+ let functionArray = JSON.parse(functionString)
114
+ // 将数组转换为用逗号分隔的字符串
115
+ return functionArray.join(', ')
116
+ } catch (e) {
117
+ // 如果解析失败,返回原始字符串
118
+ return functionString
119
+ }
120
+ },
121
+ handleCancel() {
122
+ this.openInsertKeyUser = false
123
+ },
124
+ clear () {
125
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
126
+ this.$refs.paged.$refs.criteria.model[key] = []
127
+ })
128
+ },
129
+ async search () {
130
+ this.condition = `${this.$refs.paged.$refs.criteria.condition} and ${this.searchValue} = '${this.row[this.searchValue]}'`
131
+ this.model.search(this.condition, this.model)
132
+ },
133
+ insertKeyUser () {
134
+ this.openInsertKeyUser = true
135
+ this.selectedUserId = this.row.f_userinfo_id
136
+ console.log('看看传进来没',this.selectedUserId)
137
+ },
138
+ updateUserOperationState(state) {
139
+ this.userOperationState = state;
140
+ }
141
+ },
142
+ ready () {
143
+ this.$refs.paged.$refs.criteria.search()
144
+ },
145
+ computed: {
146
+
147
+ }
148
+
149
+ }
150
+ </script>
151
+ <style scoped>
152
+ </style>
@@ -0,0 +1,358 @@
1
+ <template>
2
+ <div class="auto">
3
+ <validator name="v">
4
+ <form class="form-horizontal" novalidate>
5
+ <div class="row" style="margin-top:15px;">
6
+ <div class="col-sm-3 form-group" :class="[$v.f_opr_state.required ? 'has-error' : '']">
7
+ <label class="font_normal_body col-sm-3">操作状态</label>
8
+ <input type="text" v-show="false" v-model="KeyModel.f_opr_state" v-validate:f_opr_state='{required: true }'>
9
+ <v-select width="60%"
10
+ v-model="KeyModel.f_opr_state"
11
+ :value.sync="KeyModel.f_opr_state"
12
+ :options="fstate"
13
+ :value-single="true"
14
+ close-on-select></v-select>
15
+ </div>
16
+ <div class="col-sm-3 form-group" v-if="KeyModel.f_opr_state == '移入'">
17
+ <label class="font_normal_body col-sm-3">移入原因</label>
18
+ <input type="text" v-model="KeyModel.f_comments" class="input_search" placeholder="请输入移入原因" >
19
+ </div>
20
+ <div class="col-sm-3 form-group" v-if="KeyModel.f_opr_state == '移出'">
21
+ <label class="font_normal_body col-sm-3">移出原因</label>
22
+ <input type="text" v-model="KeyModel.f_comments" class="input_search" placeholder="请输入移入原因" >
23
+ </div>
24
+ <div v-if="KeyModel.f_opr_state == '移入'">
25
+ <div class="col-sm-3 form-group" :class="[$v.f_level.required ? 'has-error' : '']">
26
+ <label class="font_normal_body col-sm-3">管控级别</label>
27
+ <input type="text" v-show="false" v-model="KeyModel.f_level" v-validate:f_level='{required: true }'>
28
+ <v-select width="60%"
29
+ v-model="KeyModel.f_level"
30
+ :value.sync="KeyModel.f_level"
31
+ :options="flevel"
32
+ :value-single="true"
33
+ close-on-select></v-select>
34
+ </div>
35
+ <div class="col-sm-3 form-group" :class="[$v.f_function.required ? 'has-error' : '']">
36
+ <label class="font_normal_body col-sm-3">限制功能</label>
37
+ <input type="text" v-show="false" v-model="KeyModel.f_function" v-validate:f_function='{required: true }'>
38
+ <v-select width="60%"
39
+ v-model="KeyModel.f_function"
40
+ :options="fFunction"
41
+ :multiple=true
42
+ :value.sync="KeyModel.f_function"
43
+ close-on-select></v-select>
44
+ </div>
45
+ </div>
46
+ <div v-if="KeyModel.f_opr_state === '移出'">
47
+ <div class="col-sm-3 form-group">
48
+ <label class="font_normal_body col-sm-3">取消限购</label>
49
+ <input type="text" v-show="false" v-model="KeyModel.noLimitGas" >
50
+ <v-select width="60%"
51
+ v-model="KeyModel.noLimitGas"
52
+ :options="nolimitGas"
53
+ :value-single="true"
54
+ close-on-select></v-select>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ <div class="row">
59
+ <div class="col-sm-3 form-group">
60
+ <label class="font_normal_body col-sm-3">备&emsp;&emsp;注</label>
61
+ <input type="text" class="input_search" v-model="KeyModel.f_remark" placeholder="备注" style="vertical-align:middle;width: 70%">
62
+ </div>
63
+ </div>
64
+ </form>
65
+ </validator>
66
+ </div>
67
+ <div class="auto" v-if="KeyModel.f_opr_state === '移入'">
68
+ <div style="color: #0d8ddb; font-size: 25px; margin-top: 15px; margin-bottom: 10px; margin-left: 25px">限购配置</div>
69
+ <validator name='v'>
70
+ <form novalidate class="form-horizontal">
71
+
72
+ <div class="row">
73
+ <div class="col-sm-3 form-group" :class="[$v.f_third_pay.required ? 'has-error' : '']">
74
+ <label class="font_normal_body col-sm-3" >第三方缴费</label>
75
+ <input type="text" v-show="false" v-model="$refs.f_third_pay.selectedItems"
76
+ v-validate:f_third_pay='{required: true }'>
77
+ <v-select width="60%"
78
+ :value.sync="model.f_third_pay"
79
+ v-model="model.f_third_pay"
80
+ :options='thirdPays'
81
+ :value-single="true" v-ref:f_third_pay
82
+ close-on-select></v-select>
83
+ </div>
84
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_style.required ? 'has-error' : '']">
85
+ <label class="font_normal_body col-sm-3" >限制类型</label>
86
+ <input type="text" v-show="false" v-model="$refs.f_limit_style.selectedItems"
87
+ v-validate:f_limit_style='{required: true }'>
88
+ <v-select width="60%"
89
+ :value.sync="model.f_limit_style"
90
+ v-model="model.f_limit_style"
91
+ :options='limitstyle'
92
+ :value-single="true" v-ref:f_limit_style
93
+ close-on-select></v-select>
94
+ </div>
95
+ <div class="col-sm-3 form-group" :class="[$v.f_time_type.required ? 'has-error' : '']">
96
+ <label class="font_normal_body col-sm-3" >周期类型</label>
97
+ <input type="text" v-show="false" v-model="$refs.f_time_type.selectedItems"
98
+ v-validate:f_time_type='{required: true }'>
99
+ <v-select width="60%"
100
+ :value.sync="model.f_time_type"
101
+ v-model="model.f_time_type"
102
+ :options='timeTypes'
103
+ :value-single="true" v-ref:f_time_type
104
+ close-on-select></v-select>
105
+ </div>
106
+ <div class="col-sm-3 form-group" :class="[$v.f_time_value.required ? 'has-error' : '']">
107
+ <label class="font_normal_body col-sm-3" >周期时长</label>
108
+ <input type="text" class="input_search" v-model="model.f_time_value" placeholder="周期时长" v-validate:f_time_value='{required: true }' style="vertical-align:middle;width: 60%">
109
+ </div>
110
+ </div>
111
+
112
+ <div class="row" style="margin-top:10px;">
113
+ <div class="col-sm-3 form-group" :class="[$v.f_status.required ? 'has-error' : '']">
114
+ <label class="font_normal_body col-sm-3" >生效状态</label>
115
+ <input type="text" v-show="false" v-model="$refs.f_status.selectedItems"
116
+ v-validate:f_status='{required: true }'>
117
+ <v-select width="60%"
118
+ :value.sync="model.f_status"
119
+ v-model="model.f_status"
120
+ :options='fstatus'
121
+ :value-single="true" v-ref:f_status
122
+ close-on-select></v-select>
123
+ </div>
124
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_times.required ? 'has-error' : '']" v-if="model.f_limit_style !=='按总量'">
125
+ <label class="font_normal_body col-sm-3" >限制次数</label>
126
+ <input type="text" class="input_search" v-model="model.f_limit_times" style="vertical-align:middle;width: 60%" v-validate:f_limit_times='{required: true }' placeholder="限制次数">
127
+ </div>
128
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_value.required ? 'has-error' : '']" v-if="model.f_limit_style !=='按总量' && model.f_limit_type ==='气量'">
129
+ <label class="font_normal_body col-sm-3" >单次限购</label>
130
+ <input type="text" class="input_search" v-model="model.f_limit_value" style="vertical-align:middle;width: 60%" v-validate:f_limit_value='{required: true }' placeholder="单次限购">
131
+ </div>
132
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_amount.required ? 'has-error' : '']" v-if="model.f_limit_style !=='按总量' && model.f_limit_type ==='金额'">
133
+ <label class="font_normal_body col-sm-3" >单次限购</label>
134
+ <input type="text" class="input_search" v-model="model.f_limit_amount" style="vertical-align:middle;width: 60%" v-validate:f_limit_amount='{required: true }' placeholder="单次限购">
135
+ </div>
136
+ </div>
137
+
138
+ <div class="row" style="margin-top:10px;" v-if="model.f_limit_style ==='按总量'">
139
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_value.required ? 'has-error' : '']" v-if="model.f_limit_type ==='气量'">
140
+ <label class="font_normal_body col-sm-3" >总限购量</label>
141
+ <input type="text" class="input_search" v-model="model.f_limit_value" style="vertical-align:middle;width: 60%" v-validate:f_limit_value='{required: true }' placeholder="单次限购">
142
+ </div>
143
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_amount.required ? 'has-error' : '']" v-if="model.f_limit_type ==='金额'">
144
+ <label class="font_normal_body col-sm-3" >总限购量</label>
145
+ <input type="text" class="input_search" v-model="model.f_limit_amount" style="vertical-align:middle;width: 60%" v-validate:f_limit_amount='{required: true }' placeholder="单次限购">
146
+ </div>
147
+ </div>
148
+
149
+ <div class="row" style="margin-top:10px;">
150
+ <div class="col-sm-3 form-group" :class="[$v.f_limit_type.required ? 'has-error' : '']">
151
+ <label class="font_normal_body col-sm-3" >支付限制</label>
152
+ <input type="text" v-show="false" v-model="$refs.f_limit_type.selectedItems"
153
+ v-validate:f_limit_type='{required: true }'>
154
+ <v-select width="60%"
155
+ :value.sync="model.f_limit_type"
156
+ v-model="model.f_limit_type"
157
+ :options='limitTypes'
158
+ :value-single="true" v-ref:f_limit_type
159
+ close-on-select></v-select>
160
+ </div>
161
+ <div class="col-sm-3 form-group" :class="[$v.f_parameter_value.required ? 'has-error' : '']">
162
+ <label class="font_normal_body col-sm-3" >执行时间</label>
163
+ <input type="text" v-show="false" v-model="model.f_parameter_value"
164
+ v-validate:f_parameter_value='{required: true }'>
165
+ <datepicker placeholder="执行时间" style="width:60%"
166
+ v-model="model.f_parameter_value"
167
+ :value.sync="model.f_parameter_value" v-ref:f_parameter_value
168
+ :format="'yyyy-MM-dd'">
169
+ </datepicker>
170
+ </div>
171
+ </div>
172
+
173
+ </form>
174
+ </validator>
175
+ <div style="text-align: right; height: 25%">
176
+ <button class="button_search btn-gn" :disabled="!$v.valid" @click="confirm('移入重点用户')">确认</button>
177
+ <button class="button_clear btn-gn" @click="clean()">取消</button>
178
+ </div>
179
+ </div>
180
+ <div style="text-align: right; height: 25%" v-if="KeyModel.f_opr_state === '移出'">
181
+ <button class="button_search btn-gn" :disabled="!$v.valid" @click="confirm('移出重点用户')">确认</button>
182
+ <button class="button_clear btn-gn" @click="cancels">取消</button>
183
+ </div>
184
+
185
+ </template>
186
+ <script>
187
+
188
+ import {HttpResetClass} from "vue-client";
189
+
190
+ let getLimitDataGen = async function (self) {
191
+ let param = {
192
+ tablename: 't_limit_gas'
193
+ }
194
+ if (self.f_price_id) {
195
+ param.condition = ` f_price_id = '${self.f_price_id}' and isnull(f_state,'') != '无效'`
196
+ } else if (self.f_userinfo_id) {
197
+ param.condition = ` f_userinfo_id = '${self.f_userinfo_id}' and isnull(f_state,'') != '无效'`
198
+ }
199
+ let http = new HttpResetClass()
200
+ let res = await http.load('POST', 'rs/sql/saleSingleTable', {data: param}, {resolveMsg: null, rejectMsg: '获取限购配置失败!!'})
201
+ console.log('获取的限购数据', res)
202
+ if (res.data.length > 0 ) {
203
+ self.model = Object.assign({}, self.model, res.data[0])
204
+ self.model.f_third_pay = self.model.f_third_pay + ''
205
+ self.limitshow = true
206
+ } else {
207
+ self.limitshow = false
208
+ }
209
+ initGen(self)
210
+ }
211
+
212
+ let initGen = async function (self) {
213
+ // 获取低保气价
214
+ let http = new HttpResetClass()
215
+ let res = await http.load('POST', 'rs/sql/sale_getUserAndVersion', {data: {condition: `u.f_userinfo_id='${self.f_userinfo_id}'`, f_orgid: self.$login.f.orgid}}, {
216
+ resolveMsg: null,
217
+ rejectMsg: null
218
+ })
219
+ console.log(res.data)
220
+ console.log('用户id:' + res.data[0].f_userinfo_id)
221
+ self.model.f_user_name = res.data[0].f_user_name
222
+ self.model.version = res.data[0].version
223
+ }
224
+ export default {
225
+ title: '添加重点用户',
226
+ name: 'insert-key-user',
227
+
228
+ data () {
229
+ return {
230
+ KeyModel: {
231
+ f_opr_state:'移入',
232
+ f_comments: '',
233
+ f_function: '',
234
+ f_level:'',
235
+ f_remark:''
236
+ },
237
+ model: {
238
+ version:'',
239
+ f_user_name:'',
240
+ f_third_pay: '0',
241
+ f_time_type: '按月',
242
+ f_limit_times: '',
243
+ f_time_value: '0',
244
+ f_limit_type: '气量',
245
+ f_limit_style:'',
246
+ f_limit_value: '',
247
+ f_limit_amount: '',
248
+ f_status:'',
249
+ f_parameter_value: this.$login.toStandardDateString()
250
+ },
251
+ thirdPays: [{label: '支持', value: '1'},{label: '不支持', value: '0'}],
252
+ timeTypes: [{label: '按月', value: '按月'},{label: '按日', value: '按日'}],
253
+ limitTypes: [{label: '气量', value: '气量'},{label: '金额', value: '金额'}],
254
+ limitstyle: [{label: '按次数', value: '按次数'},{label: '按总量', value: '按总量'}],
255
+ fstatus: [{label: '有效', value: '有效'},{label: '无效', value: '无效'}],
256
+ fstate: [{label: '移入', value: '移入'},{label: '移出', value: '移出'}],
257
+ flevel: [{label: '高', value: '高'},{label: '中', value: '中'},{label: '低', value: '低'}],
258
+ nolimitGas:[{label: '是', value:'0'},{label: '否', value:'1'}],
259
+ fFunction: this.$appdata.getParam('限制功能') ? [{
260
+ label: '全部',
261
+ value: ''
262
+ }, ...this.$appdata.getParam('限制功能')] : [],
263
+ }
264
+ },
265
+ props: ['show', 'f_price_id', 'f_userinfo_id','row','userOperationState'],
266
+ ready () {
267
+ this.getLimitData()
268
+ },
269
+ watch: {
270
+ 'f_price_id' () {
271
+ this.getLimitData()
272
+ },
273
+ 'f_userinfo_id' () {
274
+ this.getLimitData()
275
+ }
276
+ },
277
+ methods: {
278
+ cancels() {
279
+ this.$emit('cancel')
280
+ },
281
+ getLimitData () {
282
+ console.log('获取限购配置。。', this.f_price_id, this.f_userinfo_id)
283
+ if (this.f_price_id || this.f_userinfo_id) {
284
+ getLimitDataGen(this)
285
+ }
286
+ },
287
+ async confirm (type) {
288
+ if (this.userOperationState === '移入') {
289
+ this.$showMessage(`${type}失败, 用户已被移入重点用户, 请先移出重点用户`);
290
+ return;
291
+ }
292
+ if (type == '取消拉黑' && !this.$login.r.find(value => value == '取消拉黑')) {
293
+ this.$showMessage('你没有移出重点用户的权限,请联系管理员!')
294
+ return
295
+ }
296
+ let data = {
297
+ f_operat_type: type,
298
+ f_state: '待审核',
299
+ f_user_id: this.model.f_user_id,
300
+ f_user_name: this.model.f_user_name,
301
+ f_comments: this.KeyModel.f_comments,
302
+ f_remark: this.KeyModel.f_remark,
303
+ f_operator: this.$login.f.name,
304
+ f_operatorid: this.$login.f.id,
305
+ f_orgid: this.$login.f.orgid,
306
+ f_orgname: this.$login.f.orgs,
307
+ f_depid: this.$login.f.depids,
308
+ f_depname: this.$login.f.deps,
309
+ f_parameter_value:this.model.f_parameter_value,
310
+ f_operate_date: this.$login.toStandardTimeString(),
311
+ f_describe: `${this.$login.f.name}对客户${this.model.f_user_name}进行${type}`,
312
+ f_userinfo_id: {
313
+ f_userinfo_id: this.f_userinfo_id,
314
+ f_user_state: '正常',
315
+ version: this.model.version
316
+ },
317
+ f_limit_times: this.model.f_limit_times,
318
+ f_limit_amount: this.model.f_limit_amount,
319
+ f_limit_value: this.model.f_limit_value,
320
+ f_opr_state: this.KeyModel.f_opr_state,
321
+ f_level: this.KeyModel.f_level,
322
+ f_function:this.KeyModel.f_function
323
+ }
324
+ console.log('查看参数data', data)
325
+ let res = await this.$resetpost('rs/logic/backlistOperate', data, {resolveMsg: null, rejectMsg: null})
326
+ let operateType = type == '移入重点用户' ? '移入重点用户审核提交' : '移出重点用户审核提交'
327
+ if (res.data.code == 200) {
328
+ this.$showMessage(`${operateType}成功`)
329
+ }
330
+ if (res.data.code == 500) {
331
+ this.$showMessage(`${operateType}失败,用户已被移入重点用户,请先移出重点用户`)
332
+ return
333
+ }
334
+ if (res.data.code == 501) {
335
+ this.$showMessage(`${operateType}失败,用户不是重点用户,请先移入重点用户`)
336
+ return
337
+ }
338
+ this.initModel()
339
+ this.$dispatch('success')
340
+ this.$emit('cancel')
341
+ },
342
+ clean () {
343
+ this.$info('取消操作')
344
+ this.$dispatch('refresh', this.row)
345
+ this.$emit('cancel')
346
+ },
347
+ },
348
+ computed: {
349
+ isDisabled() {
350
+ return this.userOperationState === '移入'
351
+ }
352
+ }
353
+ }
354
+
355
+ </script>
356
+ <style>
357
+
358
+ </style>
@@ -4,19 +4,25 @@
4
4
  <template partial='head'>
5
5
  <tr>
6
6
  <th style="text-align: center;">序号</th>
7
- <th style="text-align: center;">操作类型</th>
7
+ <th style="text-align: center;">移入(移出)原因</th>
8
+ <th style="text-align: center;">管控级别</th>
9
+ <th style="text-align: center;">限制功能</th>
10
+ <th style="text-align: center;">备注</th>
11
+ <th style="text-align: center;">操作状态</th>
8
12
  <th style="text-align: center;">操作时间</th>
9
13
  <th style="text-align: center;">操作人</th>
10
- <th style="text-align: center;">原因</th>
11
14
  </tr>
12
15
  </template>
13
16
  <template partial='body'>
14
17
  <tr>
15
18
  <td style="text-align: center;">{{$index+1}}</td>
16
- <td style="text-align: center;">{{row.f_operat_type}}</td>
19
+ <td style="text-align: center;">{{row.f_comments}}</td>
20
+ <td style="text-align: center;">{{row.f_level}}</td>
21
+ <td style="text-align: center;">{{$parent.$parent.formatFunction(row.f_function)}}</td>
22
+ <td style="text-align: center;">{{row.f_remark}}</td>
23
+ <td style="text-align: center;">{{row.f_opr_state}}</td>
17
24
  <td style="text-align: center;">{{row.f_operate_date}}</td>
18
25
  <td style="text-align: center;">{{row.f_operator}}</td>
19
- <td style="text-align: center;">{{row.f_comments}}</td>
20
26
  </tr>
21
27
  </template>
22
28
  <template partial='foot'></template>
@@ -30,7 +36,7 @@
30
36
  let initGen = async function (self, val) {
31
37
  let http = new HttpResetClass()
32
38
  console.log(self.$login.f, '================')
33
- let res = await http.load('POST', 'rs/sql/sale_getBlackListRecord', {data: {condition: `f_userinfo_id=${self.data.f_userinfo_id} and f_orgid = ${self.$login.f.orgid}` }}, {resolveMsg: null, rejectMsg: null})
39
+ let res = await http.load('POST', 'rs/sql/sale_getBlackListRecord', {data: {condition: `t.f_userinfo_id=${self.data.f_userinfo_id} and f_orgid = ${self.$login.f.orgid}` }}, {resolveMsg: null, rejectMsg: null})
34
40
  self.model = Object.assign({}, self.model, val)
35
41
  self.model.rows = res.data
36
42
  }
@@ -52,6 +58,20 @@
52
58
 
53
59
  ready () {
54
60
  initGen(this, this.data)
61
+ },
62
+ methods: {
63
+ formatFunction (functionString) {
64
+ if (!functionString) return ''
65
+ try {
66
+ // 解析 JSON 字符串为数组
67
+ let functionArray = JSON.parse(functionString)
68
+ // 将数组转换为用逗号分隔的字符串
69
+ return functionArray.join(', ')
70
+ } catch (e) {
71
+ // 如果解析失败,返回原始字符串
72
+ return functionString
73
+ }
74
+ }
55
75
  }
56
76
 
57
77
  }