sale-client 3.5.200 → 3.5.202

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.
@@ -6,7 +6,7 @@ const app = express()
6
6
  const compiler = webpack(config)
7
7
 
8
8
  // 自己改了这里不要提交 来回覆盖挺麻烦的
9
- const [local, server] = ['http://127.0.0.1:8080', 'http://192.168.50.4:8400']
9
+ const [local, server] = ['http://121.36.60.63:8800/#', 'http://121.36.60.63:8800/#']
10
10
  const port = 8089
11
11
 
12
12
  const proxyTable = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.200",
3
+ "version": "3.5.202",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -72,7 +72,7 @@
72
72
  "karma-sourcemap-loader": "^0.3.7",
73
73
  "karma-spec-reporter": "0.0.31",
74
74
  "karma-webpack": "^2.0.2",
75
- "ldap-clients": "3.0.55-test-1",
75
+ "ldap-clients": "3.0.7",
76
76
  "less": "^2.7.3",
77
77
  "manage-client": "3.1.8-88",
78
78
  "mkdirp": "^0.5.1",
@@ -87,7 +87,7 @@
87
87
  "sinon-chai": "^2.8.0",
88
88
  "style": "0.0.3",
89
89
  "style-loader": "^0.20.3",
90
- "system-clients": "3.2.54-test-1",
90
+ "system-clients": "3.2.25",
91
91
  "url-loader": "^0.5.7",
92
92
  "vue-client": "1.24.76",
93
93
  "vue-clipboard2": "0.3.1",
@@ -100,12 +100,12 @@
100
100
  <label for="f_collection" class=" font_normal_body">*收&emsp;&emsp;款</label>
101
101
  <input id="f_collection" class="input_search" style="width:60%" type="number" v-model="model.f_collection"
102
102
  v-validate:f_collection='{required: true, dctest: [(model.f_totalcost - 0), ">=" ] }'
103
- v-if="config.calculatePreByCollection"
103
+ v-show="config.calculatePreByCollection"
104
104
  @blur="config.calculatePreByCollection && calculatePreByCollection()"
105
105
  v-el:fcollection @keyup.enter="checkInvoiceMsg((!$v.valid || validateOk || !islegal || clickConfirm))" v-scale="[model.f_totalcost, 4]" :disabled="$refs.givechange.promptText != ''">
106
106
  <input id="f_collection" class="input_search" style="width:60%" type="number" v-model="model.f_collection"
107
107
  v-validate:f_collection='{required: true, dctest: [(model.f_totalcost - 0), ">=" ] }'
108
- v-if="!config.calculatePreByCollection"
108
+ v-show="!config.calculatePreByCollection"
109
109
  v-el:fcollection @keyup.enter="checkInvoiceMsg((!$v.valid || validateOk || !islegal || clickConfirm))" v-scale="[model.f_totalcost, 4]" :disabled="$refs.givechange.promptText != ''">
110
110
  </div>
111
111
  <div class="col-sm-3" v-if="row.f_collection_type === '按气量' && model.f_payment=='赠气' && row.f_meter_type.includes('卡表')"
@@ -89,11 +89,11 @@
89
89
  <label for="f_collection" class=" font_normal_body">*收&emsp;&emsp;款</label>
90
90
  <input class="input_search" style="width:60%" type="number" v-model="model.f_collection"
91
91
  @blur="calculatePreByCollection()"
92
- v-if="config.calculatePreByCollection"
92
+ v-show="config.calculatePreByCollection"
93
93
  v-validate:f_collection='{required: true, dctest: [(model.f_totalcost - 0) + (openFee - 0), ">=" ] }'
94
94
  v-el:sk v-scale="[model.f_collection, 4]" :disabled="$refs.givechange.promptText != ''">
95
95
  <input class="input_search" style="width:60%" type="number" v-model="model.f_collection"
96
- v-if="!config.calculatePreByCollection"
96
+ v-show="!config.calculatePreByCollection"
97
97
  v-validate:f_collection='{required: true, dctest: [(model.f_totalcost - 0) + (openFee - 0), ">=" ] }'
98
98
  v-el:sk v-scale="[model.f_collection, 4]" :disabled="$refs.givechange.promptText != ''">
99
99
  </div>
@@ -0,0 +1,282 @@
1
+ <template>
2
+ <div class="flex-auto" style="overflow-y: scroll;height: 55%">
3
+ <validator name='v'>
4
+ <form novalidate class="form-horizontal select-overspread ">
5
+ <ul class="nav nav-tabs">
6
+ <li class="active a-tabs"><a href="#">用户拉黑</a></li>
7
+ </ul>
8
+ <div>
9
+ <div class="row">
10
+ <div class="col-sm-4 form-group" id="f_user_id">
11
+ <label for="f_userinfo_code" class="font_normal_body">表&emsp;&emsp;号</label>
12
+ <input class="input_search" style="width:60%" type="text"
13
+ v-model="model.f_meternumber" @keyup.enter="getinfo('f_meternumber')"
14
+ :disabled='isEdit' placeholder="输入表号,回车查询">
15
+ </div>
16
+ <div class="col-sm-4 form-group" id="f_user_id">
17
+ <label for="f_userinfo_code" class="font_normal_body">卡&emsp;&emsp;号</label>
18
+ <input class="input_search" style="width:60%" type="text"
19
+ v-model="model.f_card_id" @keyup.enter="getinfo('f_card_id')"
20
+ :disabled='isEdit' placeholder="输入卡号,回车查询">
21
+ </div>
22
+ <div class="col-sm-4 form-group" id="f_user_id" :class="[$v.f_userinfo_code.required ? 'has-error' : 'has-success']">
23
+ <label for="f_userinfo_code" class="font_normal_body">用户编号</label>
24
+ <input class="input_search" style="width:60%" type="text" class="input_search" style="width:60%"
25
+ v-model="model.f_userinfo_code" @keyup.enter="getinfo('f_userinfo_code')"
26
+ v-validate:f_userinfo_code='{required: true }' :disabled='isEdit' placeholder="输入编号,回车查询">
27
+ </div>
28
+ <div class="col-sm-4 form-group" id="name" :class="[$v.f_user_name.required ? 'has-error' : 'has-success']">
29
+ <label for="f_user_name" class=" font_normal_body">用户姓名</label>
30
+ <input class="input_search" style="width:60%" type="text" class="input_search" style="width:60%" v-validate:f_user_name='{required: true }'
31
+ v-model="model.f_user_name" readonly
32
+ placeholder="用户姓名">
33
+
34
+ </div>
35
+ <div class="col-sm-4 form-group" id="phone" :class="[$v.f_user_phone.required ? 'has-error' : 'has-success']">
36
+ <label for="f_user_phone" class=" font_normal_body">联系方式</label>
37
+ <input class="input_search" style="width:60%" type="text" class="input_search" style="width:60%" v-validate:f_user_phone='{required: true }'
38
+ v-model="model.f_user_phone" readonly
39
+ placeholder="联系方式">
40
+
41
+ </div>
42
+ <div class="col-sm-4 form-group" id="f_limit_times" :class="[$v.f_limit_times.required ? 'has-error' : 'has-success']">
43
+ <!-- <label for="f_limit_times" class=" font_normal_body">限购次数</label>-->
44
+ <label class="font_normal_body">限购次数</label>
45
+ <input class="input_search" style="width:60%" type="number"
46
+ v-model="model.f_limit_times" v-validate:f_limit_times='{required: true }'
47
+ placeholder="限购次数">
48
+
49
+ </div>
50
+ <div class="col-sm-2 form-group" id="f_limit">
51
+ <!-- <label for="f_limit_times" class=" font_normal_body">限购次数</label>-->
52
+ <v-select
53
+ v-model="f_limit"
54
+ :value.sync="f_limit"
55
+ :options='limites'
56
+ width="100%"
57
+ close-on-select>
58
+ </v-select>
59
+ </div>
60
+ <div class="col-sm-3 form-group" id="f_limit_gas" style="right: 3%;">
61
+ <input class="input_search" style="width:60%" type="number" v-if="f_limit=='限购气量'"
62
+ v-model="model.f_limit_value"
63
+ v-scale="[model.f_limit_value, 2]"
64
+ @click="gg()"
65
+ placeholder="限购气量">
66
+ <input class="input_search" type="number" v-if="f_limit=='限购金额'"
67
+ v-model="model.f_limit_amount"
68
+ v-scale="[model.f_limit_amount, 2]"
69
+ @click="gg()"
70
+ placeholder="限购金额">
71
+
72
+ </div>
73
+ </div>
74
+
75
+ <div class="row">
76
+ <div class="col-sm-12 form-group" id="address">
77
+ <label for="f_address" class=" font_normal_body">地&emsp;&emsp;址</label>
78
+ <input class="input_search" type="text" class="input_search" style="width:87%" v-model="model.f_address"
79
+ readonly
80
+ placeholder="地址">
81
+ </div>
82
+ <div class="col-sm-12 form-group" id="f_comments" :class="[$v.f_comments.required ? 'has-error' : 'has-success']">
83
+ <label for="f_comments" class=" font_normal_body">原&emsp;&emsp;因</label>
84
+ <input class="input_search" type="text" class="input_search" style="width:87%" v-model="model.f_comments"
85
+ placeholder="原因" v-validate:f_comments='{required: true }' >
86
+ </div>
87
+
88
+ </div>
89
+
90
+ <div style="text-align:right;height:auto;margin-top:6px;">
91
+ <button class="button_search" type="button" style="width:80px;" @click="confirm('拉黑')" v-show="!isBlackList && model.isblacklist =='false'" :disabled='!$v.valid'>
92
+ 拉黑
93
+ </button>
94
+ <button class="button_search" type="button" style="width:80px;" @click="confirm('取消拉黑')"
95
+ v-show="isBlackList || model.isblacklist =='true'" :disabled='!$v.valid'>
96
+ 取消拉黑
97
+ </button>
98
+ <button class="button_export" type="button" style="width:80px;" @click="close()">取消</button>
99
+ </div>
100
+ </div>
101
+
102
+ </form>
103
+
104
+
105
+ </validator>
106
+
107
+ </div>
108
+ </template>
109
+ <script>
110
+ import {HttpResetClass} from 'vue-client'
111
+ import Vue from 'vue'
112
+ let initGen = async function (self, val) {
113
+ // 获取低保气价
114
+ let http = new HttpResetClass()
115
+ let res = await http.load('POST', 'rs/sql/sale_getUserAndVersion', {data: { condition: `f_userinfo_code='${self.data.f_userinfo_code}'` }}, {
116
+ resolveMsg: null,
117
+ rejectMsg: null
118
+ })
119
+ console.log(res.data)
120
+ console.log('用户id:' + res.data[0].f_userinfo_id)
121
+ self.model = Object.assign({}, self.model, val)
122
+ self.model.f_userinfo_code = res.data[0].f_userinfo_code
123
+ self.model.f_meternumber = res.data[0].f_meternumber
124
+ self.model.f_card_id = res.data[0].f_card_id
125
+ self.model.f_userinfo_id = res.data[0].f_userinfo_id
126
+ self.model.f_user_phone = res.data[0].f_user_phone
127
+ self.model.f_address = res.data[0].f_address
128
+ self.model.f_user_phone = res.data[0].f_user_phone
129
+ self.model.version = res.data[0].version
130
+ self.model.f_limit_value=res.data[0].f_limit_value
131
+ self.model.f_limit_times=res.data[0].f_limit_times
132
+ self.model.f_limit_amount=res.data[0].f_limit_amount
133
+ }
134
+
135
+ export default {
136
+ title: '黑名单',
137
+ props: {
138
+ f_islow_income: {
139
+ type: String,
140
+ default: '1'
141
+ },
142
+ data: {
143
+ type: Object
144
+ }
145
+ },
146
+ data () {
147
+ return {
148
+ pricename: [{value: '', label: ''}],
149
+ model: {
150
+ f_userinfo_code: '',
151
+ f_userinfo_id: '',
152
+ f_user_name: '',
153
+ f_address: '',
154
+ f_user_phone: '',
155
+ f_comments: '',
156
+ version: null,
157
+ // 限购次数
158
+ f_limit_times: '',
159
+ // 限购气量
160
+ f_limit_value: '',
161
+ // 限购金额
162
+ f_limit_amount: ''
163
+
164
+ },
165
+ // 编辑控制
166
+ isBlackList: false,
167
+ f_filialeid: '', // 所属公司
168
+ f_filialename: '', // 所属公司名称
169
+ f_limit: '限购气量',
170
+ limites: [{label: '限购气量', value: '限购气量'}, {label: '限购金额', value: '限购金额'}]
171
+
172
+ }
173
+ },
174
+ ready () {
175
+ if (this.data) {
176
+ this.isBlackList = true
177
+ initGen(this, this.data)
178
+ } else {
179
+ this.initModel()
180
+ }
181
+ },
182
+ watch: {
183
+ 'data' (val) {
184
+ if (val) {
185
+ this.isBlackList = true
186
+ initGen(this, val)
187
+ } else {
188
+ this.isBlackList = false
189
+ this.initModel()
190
+ }
191
+ }
192
+ },
193
+ methods: {
194
+ gg () {
195
+ if (this.f_limit[0] === '限购气量') {
196
+ this.model.f_limit_amount = ''
197
+ } else {
198
+ this.model.f_limit_value = ''
199
+ }
200
+ },
201
+ getinfo (type) {
202
+ var condition =`${type} = '${this.model[type]}'`
203
+ this.$resetpost('rs/sql/sale_getUserAndVersion', {data: {condition: condition}}, {
204
+ resolveMsg: null,
205
+ rejectMsg: null
206
+ }).then((res) => {
207
+ console.log(res.data[0])
208
+ this.model = res.data[0]
209
+ this.$parent.blodid = this.model.f_userinfo_id
210
+ })
211
+ },
212
+ async confirm (type) {
213
+ if (type == '取消拉黑' && !this.$login.r.find(value => value == '取消拉黑')) {
214
+ this.$showMessage('你没有取消拉黑的权限,请联系管理员!')
215
+ return
216
+ }
217
+ let data = {
218
+ f_operat_type: type,
219
+ f_state: '有效',
220
+ f_user_id: this.model.f_user_id,
221
+ f_user_name: this.model.f_user_name,
222
+ f_comments: this.model.f_comments,
223
+ f_operator: this.$login.f.name,
224
+ f_operatorid: this.$login.f.id,
225
+ f_orgid: this.$login.f.orgid,
226
+ f_orgname: this.$login.f.orgs,
227
+ f_depid: this.$login.f.depids,
228
+ f_depname: this.$login.f.deps,
229
+ f_operate_date: this.$login.toStandardTimeString(),
230
+ f_describe: `${this.$login.f.name}对客户${this.model.f_user_name}进行${type}`,
231
+ f_userinfo_id: {
232
+ f_userinfo_id: this.model.f_userinfo_id,
233
+ f_user_state: '正常',
234
+ version: this.model.version
235
+ },
236
+ f_limit_times: this.model.f_limit_times,
237
+ f_limit_amount: this.model.f_limit_amount,
238
+ f_limit_value: this.model.f_limit_value
239
+ }
240
+ console.log('查看参数data', data)
241
+ let res =await this.$resetpost('rs/logic/backlistOperate', data,{resolveMsg: null, rejectMsg: null})
242
+ if (res.data.code == 200) {
243
+ this.$showMessage(`${type}成功`)
244
+ }
245
+ if (res.data.code == 500) {
246
+ this.$showMessage(`${type}失败,用户已被拉黑,请先取消拉黑`)
247
+ return
248
+ }
249
+ this.initModel()
250
+ this.$dispatch('success')
251
+ },
252
+ getorg (id, name) {
253
+ this.f_filialeid = id[0]
254
+ this.f_filialename = name[0]
255
+ },
256
+ initModel () {
257
+ this.model = {
258
+ f_userinfo_code: '',
259
+ f_userinfo_id: '',
260
+ f_user_name: '',
261
+ f_address: '',
262
+ f_user_phone: '',
263
+ f_comments: '',
264
+ version: null,
265
+ isblacklist: 'false'
266
+ }
267
+ },
268
+ close () {
269
+ this.$dispatch('close')
270
+ }
271
+ }
272
+ }
273
+ </script>
274
+ <style lang="less">
275
+ #gas-price-form {
276
+ .form-group {
277
+ margin-left: 0px;
278
+ margin-right: 0px;
279
+ }
280
+ }
281
+
282
+ </style>
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <div class="flex-full" style="height: 40%">
3
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid >
4
+ <template partial='head'>
5
+ <tr>
6
+ <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>
12
+ <th style="text-align: center;">购气次数</th>
13
+ <th style="text-align: center;">付款方式</th>
14
+ <th style="text-align: center;">缴费日期</th>
15
+ </tr>
16
+ </template>
17
+ <template partial='body'>
18
+ <tr>
19
+ <td style="text-align: center;">{{$index+1}}</td>
20
+ <td style="text-align: center;">{{row.f_userinfo_code}}</td>
21
+ <td style="text-align: center;">{{row.f_user_name}}</td>
22
+ <td style="text-align: center;">{{row.f_user_phone}}</td>
23
+ <td style="text-align: center;">{{row.f_preamount}}</td>
24
+ <td style="text-align: center;">{{row.f_pregas}}</td>
25
+ <td style="text-align: center;">{{row.f_times}}</td>
26
+ <td style="text-align: center;">{{row.f_payment}}</td>
27
+ <td style="text-align: center;">{{row.f_operate_date}}</td>
28
+ </tr>
29
+
30
+ </template>
31
+ <template partial='foot'></template>
32
+ </data-grid>
33
+ </div>
34
+ </template>
35
+
36
+ <script>
37
+ import {HttpResetClass} from 'vue-client'
38
+
39
+ let initGen = async function (self, val) {
40
+ let http = new HttpResetClass()
41
+ console.log(self.$login.f, '================')
42
+ let res = await http.load('POST', 'rs/sql/sale_getUserPropertiesList', {data: {condition: `f_userinfo_id=${self.data.f_userinfo_id}` }}, {resolveMsg: null, rejectMsg: null})
43
+ self.model = Object.assign({}, self.model, val)
44
+ self.model.rows = res.data
45
+ }
46
+ export default {
47
+ props: ['data'],
48
+ data () {
49
+ return {
50
+ model: {
51
+ rows: []
52
+ }
53
+ }
54
+ },
55
+ watch: {
56
+ 'data' (val) {
57
+ if (val) {
58
+ initGen(this, val)
59
+ }
60
+ }},
61
+
62
+ ready () {
63
+ initGen(this, this.data)
64
+ }
65
+
66
+ }
67
+ </script>
68
+ <style>
69
+
70
+ </style>
71
+
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <div class="flex-full" style="height: 40%">
3
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid >
4
+ <template partial='head'>
5
+ <tr>
6
+ <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
+ </tr>
12
+ </template>
13
+ <template partial='body'>
14
+ <tr>
15
+ <td style="text-align: center;">{{$index+1}}</td>
16
+ <td style="text-align: center;">{{row.f_operat_type}}</td>
17
+ <td style="text-align: center;">{{row.f_operate_date}}</td>
18
+ <td style="text-align: center;">{{row.f_operator}}</td>
19
+ <td style="text-align: center;">{{row.f_comments}}</td>
20
+ </tr>
21
+ </template>
22
+ <template partial='foot'></template>
23
+ </data-grid>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import {HttpResetClass} from 'vue-client'
29
+
30
+ let initGen = async function (self, val) {
31
+ let http = new HttpResetClass()
32
+ 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} }` }}, {resolveMsg: null, rejectMsg: null})
34
+ self.model = Object.assign({}, self.model, val)
35
+ self.model.rows = res.data
36
+ }
37
+ export default {
38
+ props: ['data'],
39
+ data () {
40
+ return {
41
+ model: {
42
+ rows: []
43
+ }
44
+ }
45
+ },
46
+ watch: {
47
+ 'data' (val) {
48
+ if (val) {
49
+ initGen(this, val)
50
+ }
51
+ }},
52
+
53
+ ready () {
54
+ initGen(this, this.data)
55
+ }
56
+
57
+ }
58
+ </script>
59
+ <style>
60
+
61
+ </style>
62
+
@@ -36,6 +36,9 @@ let specialComp = {
36
36
  'disable-manage': (resolve) => { require(['./DisableManage'], resolve) },
37
37
  // 黑名单
38
38
  'black-list-list': (resolve) => { require(['./BlackList/BlackListList'], resolve) },
39
+ 'black-list': (resolve) => { require(['./BlackList/BlackList'], resolve) },
40
+ 'black-list-record': (resolve) => { require(['./BlackList/BlackListRecord'], resolve) },
41
+ 'black-list-detail': (resolve) => { require(['./BlackList/BlackListDetail'], resolve) },
39
42
  // 低保户
40
43
  'basic-living-list': (resolve) => { require(['./BasicLivingList'], resolve) },
41
44
  'file-user-essential-info-new': (resolve) => { require(['./filemanagenew/UserEssentialInfoTest'], resolve) },
@@ -87,7 +87,7 @@
87
87
  <input type="text" style="width:20%" v-model="model.f_unit_suffix" class="input_search"
88
88
  />
89
89
  </div>
90
- <div v-if="!usertype" class="col-sm-6 form-group " v-show="false">
90
+ <div v-if="!usertype" class="col-sm-6 form-group ">
91
91
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;层</label>
92
92
  <input type="text" style="width:40%" v-model="model.f_floor" class="input_search"
93
93
  placeholder="楼层" />