sale-client 3.5.276 → 3.5.277

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.
@@ -1,82 +1,82 @@
1
- var path = require('path')
2
- const [localUrl, serverRul] = ['http://203.57.101.233:8400/', 'http://203.57.101.233:8400/']
3
- var merge = require('webpack-merge')
4
- var baseConfig = require('./webpack.dev.conf')
5
- var devConfig = {
6
- devServer: {
7
- contentBase: path.join(__dirname, 'src'),
8
- hot: true,
9
- publicPath: baseConfig.output.publicPath,
10
- historyApiFallback: true,
11
- host: '127.0.0.1',
12
- port: 8089,
13
- open: true,
14
- stats: {
15
- colors: false, // 配置控制台输出彩色日志
16
- chunks: false, // 不输出构建 chunk 信息
17
- children: false // 不输出子模块构建信息
18
- },
19
- proxy: {
20
- '/rs/file': {
21
- target: serverRul
22
- },
23
- // 查找资源服务数据
24
- '/rs/search': {
25
- target: serverRul
26
- },
27
- // 查找资源服务数据
28
- '/rs/logic/getLogin': {
29
- target: serverRul
30
- },
31
- // 查找资源服务数据
32
- '/rs/logic/getInitData': {
33
- target: serverRul
34
- },
35
- '/rs/logic/getSaleInitData': {
36
- target: serverRul
37
- },
38
- // 用户登录服务地址
39
- '/rs/user': {
40
- target: serverRul
41
- },
42
- '/rs/path': {
43
- target: serverRul
44
- },
45
- '/rs/data': {
46
- target: serverRul
47
- },
48
- '/rs/license': {
49
- target: serverRul
50
- },
51
- '/rs/db': {
52
- target: serverRul
53
- },
54
- '/excel': {
55
- target: serverRul
56
- },
57
- '/rs/config': {
58
- target: serverRul
59
- },
60
- '/rs/report': {
61
- target: serverRul
62
- },
63
- '/rs/vue': {
64
- target: serverRul
65
- },
66
- '/rs/logic': {
67
- target: localUrl
68
- },
69
- '/rs/sql': {
70
- target: localUrl
71
- },
72
- '/webmeter': {
73
- target: serverRul
74
- },
75
- '/rs': {
76
- target: serverRul
77
- // changeOrigin: true
78
- }
79
- }
80
- }
81
- }
82
- module.exports = merge(baseConfig, devConfig)
1
+ var path = require('path')
2
+ const [localUrl, serverRul] = ['http://121.36.106.17:8400/', 'http://121.36.106.17:8400/']
3
+ var merge = require('webpack-merge')
4
+ var baseConfig = require('./webpack.dev.conf')
5
+ var devConfig = {
6
+ devServer: {
7
+ contentBase: path.join(__dirname, 'src'),
8
+ hot: true,
9
+ publicPath: baseConfig.output.publicPath,
10
+ historyApiFallback: true,
11
+ host: '127.0.0.1',
12
+ port: 8089,
13
+ open: true,
14
+ stats: {
15
+ colors: false, // 配置控制台输出彩色日志
16
+ chunks: false, // 不输出构建 chunk 信息
17
+ children: false // 不输出子模块构建信息
18
+ },
19
+ proxy: {
20
+ '/rs/file': {
21
+ target: serverRul
22
+ },
23
+ // 查找资源服务数据
24
+ '/rs/search': {
25
+ target: serverRul
26
+ },
27
+ // 查找资源服务数据
28
+ '/rs/logic/getLogin': {
29
+ target: serverRul
30
+ },
31
+ // 查找资源服务数据
32
+ '/rs/logic/getInitData': {
33
+ target: serverRul
34
+ },
35
+ '/rs/logic/getSaleInitData': {
36
+ target: serverRul
37
+ },
38
+ // 用户登录服务地址
39
+ '/rs/user': {
40
+ target: serverRul
41
+ },
42
+ '/rs/path': {
43
+ target: serverRul
44
+ },
45
+ '/rs/data': {
46
+ target: serverRul
47
+ },
48
+ '/rs/license': {
49
+ target: serverRul
50
+ },
51
+ '/rs/db': {
52
+ target: serverRul
53
+ },
54
+ '/excel': {
55
+ target: serverRul
56
+ },
57
+ '/rs/config': {
58
+ target: serverRul
59
+ },
60
+ '/rs/report': {
61
+ target: serverRul
62
+ },
63
+ '/rs/vue': {
64
+ target: serverRul
65
+ },
66
+ '/rs/logic': {
67
+ target: localUrl
68
+ },
69
+ '/rs/sql': {
70
+ target: localUrl
71
+ },
72
+ '/webmeter': {
73
+ target: serverRul
74
+ },
75
+ '/rs': {
76
+ target: serverRul
77
+ // changeOrigin: true
78
+ }
79
+ }
80
+ }
81
+ }
82
+ module.exports = merge(baseConfig, devConfig)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.276",
3
+ "version": "3.5.277",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1,13 +1,13 @@
1
1
  <template>
2
2
  <div id="unit" class="flex-row">
3
- <material-display @select-changed='selected' @modify-res="modifyRes"
3
+ <sale-material-display @select-changed='selected' @modify-res="modifyRes"
4
4
  @add-res="addRes"
5
5
  class="basic-main" style="width:auto;" v-ref:funlist>
6
- </material-display>
6
+ </sale-material-display>
7
7
  <div class="binary-right" style="width: 40%;overflow-x: hidden; overflow-y: scroll;" v-if="row">
8
- <materials-base :look='look' :data="row" :title="title"
8
+ <sale-materials-base :look='look' :data="row" :title="title"
9
9
  :parent="row.parent_name" @cancel="cancel">
10
- </materials-base>
10
+ </sale-materials-base>
11
11
  </div>
12
12
  </div>
13
13
  </template>
@@ -0,0 +1,340 @@
1
+ <template>
2
+ <div>
3
+ <validator name='v' @valid="$emit('valid')" @invalid="$emit('invalid')">
4
+ <form class="form-horizontal select-overspread ">
5
+ <div class="row">
6
+ <div class="col-sm-4 form-group " :class="[$v.f_user_name.required ? 'has-error' : '']">
7
+ <label for="f_user_name" class="font_normal_body">*客户姓名</label>
8
+ <input type="text" v-model="baseinfo.base.f_user_name" v-validate:f_user_name='{required: true }'
9
+ class="input_search" style="width:60%" placeholder="客户名称" v-next-el="phone">
10
+ </div>
11
+ <div style="" class="col-sm-4 form-group"
12
+ :class="[$v.f_user_phone.minlength || $v.f_user_phone.maxlength ? 'has-error' : '']">
13
+ <label for="f_user_phone" class="font_normal_body">*客户电话</label>
14
+ <input type="text" maxlength="11" v-model="baseinfo.base.f_user_phone"
15
+ v-validate:f_user_phone="{minlength: 11, maxlength: 11 }" class="input_search" style="width:60%"
16
+ placeholder="客户电话" v-el:phone v-next-el="area">
17
+ <button type="button" class="glyphicon glyphicon-plus" @click.stop="phoneManage()"></button>
18
+ </div>
19
+
20
+ <div style="" class="col-sm-4 form-group">
21
+ <label for="f_rent_phone" class="font_normal_body">&ensp;曾用电话</label>
22
+ <input type="text" v-model="baseinfo.base.f_rent_phone" class="input_search" style="width:60%"
23
+ placeholder="曾用电话">
24
+ </div>
25
+
26
+ <div class="col-sm-4 form-group" style="" v-if="true">
27
+ <label for="f_user_state" class="font_normal_body">&ensp;客户状态</label>
28
+ <v-select :value.sync="baseinfo.base.f_user_state"
29
+ :disabled="true"
30
+ :value-single="true"
31
+ :options='userstates' placeholder='客户状态'
32
+ close-on-select></v-select>
33
+ </div>
34
+ </div>
35
+ <div class="row">
36
+ <div style="" class="col-sm-4 form-group">
37
+ <label for="f_credentials" class="font_normal_body">&ensp;证件类型</label>
38
+ <v-select id="idCardType" :value.sync="baseinfo.base.f_credentials"
39
+ v-model="baseinfo.base.f_credentials"
40
+ :value-single="true"
41
+ :options='credentials' placeholder='证件类型'
42
+ style="width: 65%"
43
+ close-on-select></v-select>
44
+ </div>
45
+ <div style="" class="col-sm-8 form-group"
46
+ :class="[$v.f_idnumber2.identityCardValid ? 'has-error' : '']"
47
+ v-if="baseinfo.base.f_credentials === '身份证'">
48
+ <label for="f_idnumber" class="font_normal_body">*证件号码</label>
49
+ <input type="text" maxlength="18" v-model="baseinfo.base.f_idnumber"
50
+ v-validate:f_idnumber2='{identityCardValid: true}' class="input_search" style="width:80%"
51
+ placeholder="证件号码">
52
+ </div>
53
+ <div style="" class="col-sm-8 form-group" v-if="baseinfo.base.f_credentials !== '身份证'">
54
+ <label class="font_normal_body">&ensp;证件号码</label>
55
+ <input type="text" v-model="baseinfo.base.f_idnumber" class="input_search" style="width:80%"
56
+ placeholder="证件号码">
57
+ </div>
58
+ </div>
59
+ <div class="row">
60
+ <div class="col-sm-12 form-group" :class="[$v.f_address.required ? 'has-error' : '']">
61
+ <label for="f_address" class="font_normal_body">*地址信息</label>
62
+ <input type="text" v-model="addressinfo.f_address" :value.sync="addressinfo.f_address" v-validate:f_address='{required: true }'
63
+ class="input_search" disabled="disabled" style="width:75%;" placeholder="用户地址" >
64
+ <span>
65
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="!isedit" @click="selectaddress()">选择地址</button>
66
+ <!-- <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="modifyaddress()">修改地址</button>-->
67
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="selectaddress()">修改地址</button>
68
+ </span>
69
+ </div>
70
+ </div>
71
+ <div class="row">
72
+ <div style="" class="col-sm-4 form-group">
73
+ <label for="f_used_name" class="font_normal_body">&ensp;曾&ensp;用&ensp;名</label>
74
+ <input type="text" v-model="baseinfo.base.f_used_name" class="input_search" style="width:60%"
75
+ placeholder="曾用名">
76
+ </div>
77
+ <div class="col-sm-4 form-group" :class="[$v.f_people_num.dctest ? 'has-error' : '']">
78
+ <label for="f_people_num" class="font_normal_body">&ensp;人&ensp;口&ensp;数</label>
79
+ <input type="number" v-model="baseinfo.base.f_people_num" v-validate:f_people_num='{dctest: [0, ">=" ]}'
80
+ :disabled="!jurisdiction.includes('修改人口数')" class="input_search" style="width:60%"
81
+ placeholder="家庭人口数">
82
+ </div>
83
+ </div>
84
+ <div class="row">
85
+ <div style="" class="col-sm-4 form-group">
86
+ <label for="f_balance" class="font_normal_body">&ensp;用户余额</label>
87
+ <input type="text" v-model="baseinfo.base.f_balance" class="input_search" style="width:60%"
88
+ placeholder="用户余额" :disabled="!jurisdiction.includes('档案信息查询修改')">
89
+ </div>
90
+ <div style="" class="col-sm-4 form-group">
91
+ <label for="f_is_mgq" class="font_normal_body ">煤&ensp;改&ensp;气&ensp;</label>
92
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_is_mgq" v-model="baseinfo.base.f_is_mgq"
93
+ :options='mgq' placeholder='是否煤改气' style="width: 65%" close-on-select></v-select>
94
+ </div>
95
+ <div class="col-sm-4 form-group">
96
+ <label for="f_contract" class="font_normal_body">&ensp;燃气本号</label>
97
+ <input type="text" v-model="baseinfo.base.f_book_no" class="input_search" style="width:60%" placeholder="用户证号">
98
+ </div>
99
+ </div>
100
+ <div class="row">
101
+ <div style="" class="col-sm-4 form-group">
102
+ <label for="f_rent_name" class="font_normal_body">&ensp;租户姓名</label>
103
+ <input type="text" v-model="baseinfo.base.f_rent_name" class="input_search" style="width:60%"
104
+ placeholder="租户姓名">
105
+ </div>
106
+ <div style="" class="col-sm-4 form-group">
107
+ <label for="f_zuhu_phone" class="font_normal_body">&ensp;租户电话</label>
108
+ <input type="text" v-model="baseinfo.base.f_zuhu_phone" class="input_search" style="width:60%"
109
+ placeholder="租户电话">
110
+ </div>
111
+ </div>
112
+ <div class="row">
113
+ <div style="" class="col-sm-8 form-group">
114
+ <label for="f_zuhu_idnumber" class="font_normal_body">租户身份证</label>
115
+ <input type="text" v-model="baseinfo.base.f_zuhu_idnumber" class="input_search" style="width:80%"
116
+ placeholder="租户身份证">
117
+ </div>
118
+ <div style="" class="col-sm-4 form-group">
119
+ <label for="f_is_mgq" class="font_normal_body ">&ensp;付款类型</label>
120
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_cost_type" v-model="baseinfo.base.f_cost_type"
121
+ :options='costtype' placeholder='付款类型' style="width: 65%" close-on-select></v-select>
122
+ </div>
123
+ </div>
124
+ <div class="row">
125
+ <div class="col-sm-8 form-group">
126
+ <label for="f_contract" class="font_normal_body">&ensp;合同编号</label>
127
+ <input type="text" v-model="baseinfo.base.f_contract_id" class="input_search" style="width:80%"
128
+ placeholder="合同编号">
129
+ </div>
130
+ <div class="col-sm-4 form-group">
131
+ <label for="f_user_state" class="font_normal_body">&ensp;房屋类型</label>
132
+ <input type="text" v-show="false" v-model="baseinfo.base.f_house_type">
133
+ <v-select :value.sync="baseinfo.base.f_house_type" :search="false" :value-single="true"
134
+ :options='housetype' placeholder='房屋类型' close-on-select>
135
+ </v-select>
136
+ </div>
137
+ </div>
138
+ <div class="row">
139
+ <div style="" class="col-sm-4 form-group">
140
+ <label for="f_user_level" class="font_normal_body ">&ensp;用户等级</label>
141
+ <v-select :value.sync="baseinfo.base.f_user_level" :search="false" :value-single="true"
142
+ :options='userlevel' placeholder='用户等级' close-on-select>
143
+ </v-select>
144
+ </div>
145
+ <div class="col-sm-4 form-group">
146
+ <label for="f_user_nature" class="font_normal_body" title="用户性质">&ensp;用气类型</label>
147
+ <input type="text" v-show="false" v-model="baseinfo.base.f_user_nature">
148
+ <v-select :value.sync="baseinfo.base.f_user_nature" :search="false" :value-single="true"
149
+ :options='usernature' placeholder='用气类型' close-on-select>
150
+ </v-select>
151
+ </div>
152
+ <div class="col-sm-4 form-group">
153
+ <label for="f_user_nature" class="font_normal_body">&ensp;档案编号</label>
154
+ <input type="text" v-model="baseinfo.base.f_olduserinfo_code" class="input_search" style="width:60%"
155
+ placeholder="档案编号">
156
+ </div>
157
+ </div>
158
+ <div class="row">
159
+ <div style="" class="col-sm-12 form-group">
160
+ <label for="f_paper_account" class="font_normal_body ">&ensp;备&emsp;&emsp;注</label>
161
+ <input class="input_search" style="width:86.5%;height: 40px" v-model="baseinfo.base.f_comments"/>
162
+ </div>
163
+ </div>
164
+
165
+ <div class="row" style="margin-top: 2%;">
166
+ <a style="font-size: 16px;font-weight: 500;"
167
+ v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">银行信息</a>
168
+ </div>
169
+ <div v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">
170
+ <div class="row">
171
+ <div class="col-sm-4 form-group"
172
+ :class="[$v.f_bank_accopen.required ? 'has-error' : '']">
173
+ <label for="f_username" class="font_normal_body">银行户名</label>
174
+ <input type="text" v-model="baseinfo.bank.f_bank_accopen"
175
+ class="input_search" style="width:60%" id="f_username" placeholder="客户名称"
176
+ v-validate:f_bank_accopen='{required: true}'
177
+ v-next-el="bankaccount">
178
+ </div>
179
+ <div class="col-sm-4 form-group" id=userfiles-useEssInf-银行名称>
180
+ <label for="f_username" class="font_normal_body ">银行名称</label>
181
+ <v-select :value.sync="baseinfo.bank.f_bank_name"
182
+ :options='banknames' placeholder='银行名称'
183
+ close-on-select></v-select>
184
+ </div>
185
+ <div class="col-sm-4 form-group">
186
+ <label for="f_bank_idnumber" class="font_normal_body">缴费编号</label>
187
+ <input type="text" v-model="baseinfo.bank.f_bank_pay_number"
188
+ class="input_search" style="width:60%"
189
+ aria-describedby="helpBlock" placeholder="缴费编号" v-el:bankpaynumber>
190
+ </div>
191
+ <div class="col-sm-12 form-group">
192
+ <label for="f_bank_idnumber" class="font_normal_body">身份证号</label>
193
+ <input type="text" v-model="baseinfo.bank.f_bank_idnumber"
194
+ class="input_search" style="width:54%"
195
+ aria-describedby="helpBlock" placeholder="身份证号" v-el:bankidnumber>
196
+ </div>
197
+ <div class="col-sm-12 form-group"
198
+ :class="[$v.f_bank_account.required ? 'has-error' : '']">
199
+ <label for="f_userid" class="font_normal_body">银行账号</label>
200
+ <input type="text" v-model="baseinfo.bank.f_bank_account" class="input_search" style="width:54%"
201
+ v-validate:f_bank_account='{required: true}' placeholder="银行账号" v-el:bankaccount
202
+ v-next-el="bankidnumber">
203
+ </div>
204
+ </div>
205
+ </div>
206
+ </form>
207
+ </validator>
208
+ <modal v-if="showselectaddress" :show.sync="showselectaddress" width="50%" height="80%" title="地址信息" v-ref:modal large backdrop="false">
209
+ <article slot="modal-body" class="modal-body" style="height: 700px;padding: 0!important;">
210
+ <file-address-manage :is-select="isSelect" :fileinfo="addressinfo"
211
+ @address-valid="doNothing" :showselectaddress.sync="showselectaddress" v-ref:fileaddress ></file-address-manage>
212
+ </article>
213
+ <footer slot="modal-footer" class="modal-footer">
214
+ </footer>
215
+ </modal>
216
+ <file-user-phone :show.sync="showphone" :userphonelist="userphonelist" :f_userinfo_id="baseinfo.base.f_userinfo_id"></file-user-phone>
217
+ </div>
218
+ </template>
219
+
220
+ <script>
221
+ import {HttpResetClass} from 'vue-client'
222
+ // import HighMeter from '../../plugins/HighMeterPlugin'
223
+
224
+ let getEditUserState = async function (self) {
225
+ try {
226
+ let http = new HttpResetClass()
227
+ let result = await http.load('GET', `rs/vue/EditUserState.json`, {}, {resolveMsg: null, rejectMsg: null})
228
+ console.log(result.data.EditUserState)
229
+ self.edituserstate = result.data.EditUserState
230
+ } catch (e) {
231
+ console.log(e)
232
+ }
233
+ }
234
+
235
+ export default {
236
+ title: '基本信息',
237
+ props: ['baseinfo', 'addressinfo', 'isedit', 'userphonelist'],
238
+ data () {
239
+ return {
240
+ showselectaddress: false,
241
+ site: '',
242
+ showphone: false,
243
+ areas: [],
244
+ streets: [],
245
+ residentials: [],
246
+ inputtores: this.$appdata.getParam('抄表员'),
247
+ credentials: this.$appdata.getParam('证件类型'),
248
+ costtypes: this.$appdata.getParam('缴费类型'),
249
+ banknames: this.$appdata.getParam('银行名称'),
250
+ userstates: this.$appdata.getParam('用户状态'),
251
+ mgq: this.$appdata.getParam('是否煤改气'),
252
+ costtype: this.$appdata.getParam('付款类型'),
253
+ usernature: this.$appdata.getParam('用户性质'),
254
+ userlevel: this.$appdata.getParam('用户等级'),
255
+ housetype: this.$appdata.getParam('房屋类型'),
256
+ jurisdiction: this.$login.r,
257
+ edituserstate: false,
258
+ // highMeterPlugin: {},
259
+ readCardFlag: true,
260
+
261
+ isSelect: false
262
+ }
263
+ },
264
+ ready () {
265
+ getEditUserState(this)
266
+ this.$resetValidation()
267
+ // this.highMeterPlugin = new HighMeter(this,this.readIDCardCallback)
268
+ },
269
+ beforeDestroy () {
270
+ // this.highMeterPlugin.Stop()
271
+ },
272
+ methods: {
273
+ selectaddress () {
274
+ this.showselectaddress = true
275
+ this.isSelect = true
276
+ },
277
+ modifyaddress () {
278
+ this.showselectaddress = true
279
+ this.isSelect = false
280
+ },
281
+ onValid (res) {
282
+ this.$dispatch('valid')
283
+ },
284
+ onInvalid (res) {
285
+ this.$dispatch('invalid')
286
+ },
287
+ doNothing () {
288
+ },
289
+ readIDCardCallback (compoent, msg) {
290
+ console.log('进入高拍仪', msg)
291
+ if (msg.err !== 0) {
292
+ return
293
+ }
294
+ // document.getElementById("idCardType").getElementsByClassName("btn-content")[0].innerHTML="身份证"
295
+ compoent.baseinfo.base.f_idnumber = msg.strID
296
+ compoent.baseinfo.base.f_user_name = msg.strName.trim()
297
+ // compoent.baseinfo.base.f_credentials=["身份证"]
298
+ },
299
+ phoneManage () {
300
+ this.showphone = true
301
+ console.log('查看用户备用电话信息', this.userphonelist)
302
+ }
303
+ },
304
+ watch: {
305
+ // 重置验证结果,当证件类型切换时,验证结果不能立即刷新,需要重置
306
+ 'baseinfo.base.f_credentials[0]' () {
307
+ console.log('验证器重置')
308
+ this.$resetValidation()
309
+ },
310
+ 'baseinfo.base.f_cost_type[0]' () {
311
+ console.log('验证器重置')
312
+ this.$resetValidation()
313
+ }
314
+ // 当选择销户,需要给其提醒是否进行销户
315
+ // 'baseinfo.base.f_user_state'(val) {
316
+ // // if (val[0] === '销户') {
317
+ // // this.$showMessage('是否要对该客户进行销户操作?', ['confirm', 'cancel']).then((res) => {
318
+ // // if (res !== 'confirm') {
319
+ // // this.baseinfo.base.f_user_state = ['正常']
320
+ // // }
321
+ // // })
322
+ // // }
323
+ // }
324
+ },
325
+ computed: {},
326
+ events: {
327
+ 'confirmaddress' (res) {
328
+ console.log('选定地址', res)
329
+ this.showselectaddress = false
330
+ this.addressinfo.f_address = res.f_residential_area +
331
+ res.f_building + res.f_building_suffix +
332
+ res.f_unit + res.f_unit_suffix + res.f_floor +
333
+ res.f_floor_suffix + res.f_room + res.f_room_suffix
334
+ console.log('详细地址信息:' + this.addressinfo.f_address)
335
+ this.addressinfo.id = res.id
336
+ this.$dispatch('defaultOtheret', res)
337
+ }
338
+ }
339
+ }
340
+ </script>
@@ -310,7 +310,10 @@
310
310
  'confirmaddress' (res) {
311
311
  // console.log('选定地址', res)
312
312
  this.showselectaddress = false
313
- this.addressinfo.f_address = res.f_address
313
+ this.addressinfo.f_address = res.f_residential_area +
314
+ res.f_building + res.f_building_suffix +
315
+ res.f_unit + res.f_unit_suffix + res.f_floor +
316
+ res.f_floor_suffix + res.f_room + res.f_room_suffix
314
317
  this.addressinfo.id = res.id
315
318
  if (res.f_house_type != null) {
316
319
  this.baseinfo.base.f_house_type = res.f_house_type
@@ -38,5 +38,6 @@ export default function () {
38
38
  Vue.component('replace-mentlist', (resolve) => { require(['./replaceMentList'], resolve) })
39
39
  // 单条记录维护界面
40
40
  Vue.component('replacement-single-info-operation', (resolve) => { require(['./replacementSingleInfoOperation'], resolve) })
41
-
41
+ // 用户基本信息test
42
+ Vue.component('file-user-essential-info', (resolve) => { require(['./FilesManage/UserEssentialInfoTest'], resolve) })
42
43
  }
@@ -0,0 +1,233 @@
1
+ <template>
2
+ <div class="auto">
3
+ <modal :show.sync="show" v-ref:modal large backdrop="false">
4
+ <header slot="modal-header" class="modal-header">
5
+ <h3 style="color:black" class="modal-title">限购配置</h3>
6
+ </header>
7
+ <article slot="modal-body" class="modal-body">
8
+ <validator name='v' @valid="valid()" @invalid="invalid()">
9
+ <form class="form-horizontal select-overspread">
10
+ <div class="row">
11
+ <div class="col-sm-6 form-input-group" :class="[$v.f_third_pay.required ? 'has-error' : '']">
12
+ <label class="font_normal_body col-sm-3">第三方缴费</label>
13
+ <v-select
14
+ :value.sync="model.f_third_pay"
15
+ v-model="model.f_third_pay"
16
+ :options='thirdPays'
17
+ :value-single="true"
18
+ v-validate:f_third_pay='{required: true }'
19
+ close-on-select></v-select>
20
+ </div>
21
+ <div class="col-sm-6 form-input-group" :class="[$v.f_limit_style.required ? 'select-error' : '']">
22
+ <label class="font_normal_body col-sm-3">限制类型</label>
23
+ <v-select
24
+ :value.sync="model.f_limit_style"
25
+ v-model="model.f_limit_style"
26
+ :options='limitstyle'
27
+ :value-single="true"
28
+ close-on-select></v-select>
29
+ </div>
30
+ </div>
31
+ <div class="row" style="margin-top:10px;">
32
+ <div class="col-sm-6 form-input-group" :class="[$v.f_time_type.required ? 'has-error' : '']">
33
+ <label class="font_normal_body col-sm-3">周期类型</label>
34
+ <v-select
35
+ :value.sync="model.f_time_type"
36
+ v-model="model.f_time_type"
37
+ :options='timeTypes'
38
+ v-validate:f_time_type='{required: true }'
39
+ :value-single="true"
40
+ close-on-select></v-select>
41
+ </div>
42
+ <div class="col-sm-6 form-input-group" :class="[$v.f_time_value.dctest ? 'has-error' : '']">
43
+ <label class="font_normal_body col-sm-3">周期时长</label>
44
+ <input type="text" v-model="model.f_time_value" placeholder="周期时长"
45
+ v-validate:f_time_value='{dctest: [0, ">" ]}' style="vertical-align:middle">
46
+ </div>
47
+ </div>
48
+
49
+ <div class="row" style="margin-top:10px;" v-if="model.f_limit_style !=='按总量'">
50
+ <div class="col-sm-6 form-input-group" :class="[$v.f_limit_times.required ? 'has-error' : '']">
51
+ <label class="font_normal_body col-sm-3">限制次数</label>
52
+ <input type="text" v-model="model.f_limit_times" placeholder="限制次数"
53
+ v-validate:f_limit_times='{required: true }'>
54
+ </div>
55
+ <div class="col-sm-6 form-input-group" v-if="model.f_limit_type ==='气量'"
56
+ :class="[$v.f_limit_value.required ? 'has-error' : '']">
57
+ <label class="font_normal_body col-sm-3">单次限购</label>
58
+ <input type="text" v-model="model.f_limit_value" placeholder="单次限购"
59
+ v-validate:f_limit_value='{required: true }'>
60
+ </div>
61
+ <div class="col-sm-6 form-input-group" v-if="model.f_limit_type ==='金额'"
62
+ :class="[$v.f_limit_amount.required ? 'has-error' : '']">
63
+ <label class="font_normal_body col-sm-3">单次限购</label>
64
+ <input type="text" v-model="model.f_limit_amount" placeholder="单次限购"
65
+ v-validate:f_limit_amount='{required: true }'>
66
+ </div>
67
+ </div>
68
+ <div class="row" style="margin-top:10px;" v-if="model.f_limit_style ==='按总量'"
69
+ :class="[$v.f_limit_value.required ? 'has-error' : '']">
70
+ <div class="col-sm-6 form-input-group" v-if="model.f_limit_type ==='气量'"
71
+ v-validate:f_limit_value='{required: true }'>
72
+ <label class="font_normal_body col-sm-3">总限购量</label>
73
+ <input type="text" v-model="model.f_limit_value" placeholder="单次限购">
74
+ </div>
75
+ <div class="col-sm-6 form-input-group" v-if="model.f_limit_type ==='金额'"
76
+ :class="[$v.f_limit_amount.required ? 'has-error' : '']">
77
+ <label class="font_normal_body col-sm-3">总限购量</label>
78
+ <input type="text" v-model="model.f_limit_amount" placeholder="单次限购"
79
+ v-validate:f_limit_amount='{required: true }'>
80
+ </div>
81
+ </div>
82
+ <div class="row" style="margin-top:10px;" :class="[$v.f_limit_type.required ? 'has-error' : '']">
83
+ <div class="col-sm-6 form-input-group">
84
+ <label class="font_normal_body col-sm-3">支付限制</label>
85
+ <v-select
86
+ :value.sync="model.f_limit_type"
87
+ v-model="model.f_limit_type"
88
+ :options='limitTypes'
89
+ :value-single="true"
90
+ v-validate:f_limit_type='{required: true }'
91
+ close-on-select></v-select>
92
+ </div>
93
+ <div class="col-sm-6 form-input-group" :class="[$v.f_start_date.required ? 'has-error' : '']">
94
+ <label class="font_normal_body col-sm-3">执行时间</label>
95
+ <datepicker placeholder="执行时间"
96
+ v-model="model.f_start_date"
97
+ :value.sync="model.f_start_date"
98
+ v-validate:f_start_date='{required: true }'
99
+ :format="'yyyy-MM-dd'">
100
+ </datepicker>
101
+ </div>
102
+ </div>
103
+ </form>
104
+ </validator>
105
+ </article>
106
+ <footer slot="modal-footer" class="modal-footer">
107
+ <button class="btn btn-success" v-if="limitshow" @click="cancellimit">取消限购</button>
108
+ <button class="button_search btn-gn" @click="confirm" :disabled="disabled">确认</button>
109
+ <button class="button_clear btn-gn" @click="cancel">取消</button>
110
+ </footer>
111
+ </modal>
112
+ </div>
113
+ </template>
114
+ <script>
115
+
116
+ import {HttpResetClass} from 'vue-client'
117
+
118
+ let getLimitDataGen = async function (self) {
119
+ let param = {
120
+ tablename: 't_limit_gas'
121
+ }
122
+ if (self.f_price_id) {
123
+ param.condition = ` f_price_id = '${self.f_price_id}' and isnull(f_state,'') != '无效'`
124
+ } else if (self.f_userinfo_id) {
125
+ param.condition = ` f_userinfo_id = '${self.f_userinfo_id}' and isnull(f_state,'') != '无效'`
126
+ }
127
+ let http = new HttpResetClass()
128
+ let res = await http.load('POST', 'rs/sql/saleSingleTable', {data: param}, {
129
+ resolveMsg: null,
130
+ rejectMsg: '获取限购配置失败!!'
131
+ })
132
+ console.log('获取的限购数据', res)
133
+ if (res.data.length > 0) {
134
+ self.model = Object.assign({}, self.model, res.data[0])
135
+ self.model.f_third_pay = self.model.f_third_pay + ''
136
+ self.limitshow = true
137
+ } else {
138
+ self.limitshow = false
139
+ }
140
+
141
+ }
142
+
143
+
144
+ export default {
145
+ title: '限购配置',
146
+ data () {
147
+ return {
148
+ disabled: true,
149
+ model: {
150
+ f_third_pay: '0',
151
+ f_time_type: '按月',
152
+ f_limit_times: '',
153
+ f_time_value: '',
154
+ f_limit_type: '气量',
155
+ f_limit_style: '',
156
+ f_limit_value: 0,
157
+ f_limit_amount: 0,
158
+ f_start_date: this.$login.toStandardDateString()
159
+ },
160
+ limitshow: false,
161
+ thirdPays: [{label: '支持', value: '1'}, {label: '不支持', value: '0'}],
162
+ timeTypes: [{label: '按月', value: '按月'}, {label: '按日', value: '按日'}],
163
+ limitTypes: [{label: '气量', value: '气量'}, {label: '金额', value: '金额'}],
164
+ limitstyle: [{label: '按次数', value: '按次数'}, {label: '按总量', value: '按总量'}]
165
+ }
166
+ },
167
+ props: ['show', 'f_price_id', 'f_userinfo_id'],
168
+ ready () {
169
+ this.getLimitData()
170
+ },
171
+ watch: {
172
+ 'f_price_id' () {
173
+ this.getLimitData()
174
+ },
175
+ 'f_userinfo_id' () {
176
+ this.getLimitData()
177
+ }
178
+ },
179
+ methods: {
180
+ getLimitData () {
181
+ console.log('获取限购配置。。', this.f_price_id, this.f_userinfo_id)
182
+ if (this.f_price_id || this.f_userinfo_id) {
183
+ getLimitDataGen(this)
184
+ }
185
+ },
186
+ valid () {
187
+ this.disabled = false
188
+ },
189
+ invalid () {
190
+ this.disabled = true
191
+ },
192
+ confirm () {
193
+ this.$dispatch('limit', this.model)
194
+ this.model = {
195
+ f_third_pay: '0',
196
+ f_time_type: '按月',
197
+ f_limit_times: '',
198
+ f_time_value: '',
199
+ f_limit_type: '气量',
200
+ f_limit_style: '',
201
+ f_limit_value: 0,
202
+ f_limit_amount: 0,
203
+ f_start_date: this.$login.toStandardDateString()
204
+ }
205
+ this.show = false
206
+ },
207
+ async cancellimit () {
208
+ let sql = `update t_limit_gas set f_state = '无效' where id = '${this.model.id}'`
209
+ let data = {
210
+ sql: sql
211
+ }
212
+ await this.$resetpost('rs/logic/runSQL', data)
213
+ this.model = {
214
+ f_third_pay: '0',
215
+ f_time_type: '按月',
216
+ f_limit_times: '',
217
+ f_time_value: '',
218
+ f_limit_type: '气量',
219
+ f_limit_style: '',
220
+ f_limit_value: 0,
221
+ f_limit_amount: 0,
222
+ f_start_date: this.$login.toStandardDateString()
223
+ }
224
+ getLimitDataGen(this)
225
+ },
226
+ cancel () {
227
+ this.show = false
228
+ }
229
+ }
230
+
231
+ }
232
+
233
+ </script>
@@ -44,4 +44,6 @@ export default function () {
44
44
  Vue.component('hand-operate', (resolve) => { require(['./handOperate'], resolve) })
45
45
  // 所有气价信息列表
46
46
  Vue.component('gas-price-list', (resolve) => { require(['./GasPriceList'], resolve) })
47
+ // 限购配置
48
+ Vue.component('limit-gas', (resolve) => { require(['./LimitGas'], resolve) })
47
49
  }
@@ -0,0 +1,78 @@
1
+ <template>
2
+ <tab-button v-ref:list>
3
+ <tabs header="计划下发" v-if="permission('计划下发')">
4
+ <machine-down ></machine-down>
5
+ </tabs>
6
+ <tabs header="机表抄表" v-if="permission('机表抄表')">
7
+ <machine-hand></machine-hand>
8
+ </tabs>
9
+ <!-- <tabs header="抄表审核" v-if="permission('抄表审核')">-->
10
+ <!-- <machine-hand-audit></machine-hand-audit>-->
11
+ <!-- </tabs>-->
12
+ <!-- <tabs header="抄表查询" v-if="permission('抄表查询')">-->
13
+ <!-- <sale-handplan-query></sale-handplan-query>-->
14
+ <!-- </tabs>-->
15
+ <!-- <tabs header="欠费查询" v-if="permission('欠费查询')">-->
16
+ <!-- <sale-arrears-query></sale-arrears-query>-->
17
+ <!-- </tabs>-->
18
+ <!--<tabs header="帮助" title="核心配置项:机表抄表管理,包含页面配置项:计划下发、机表抄表、抄表审核、抄表查询、欠费查询">-->
19
+ <!--<div style="align-content: center">-->
20
+ <!--<span><h3>核心配置项:机表抄表管理</h3></span>-->
21
+ <!--<br/>-->
22
+ <!--<span><h4>包含页面配置项:计划下发、机表抄表、抄表审核、抄表查询、欠费查询</h4></span>-->
23
+ <!--</div>-->
24
+
25
+ <!--</tabs>-->
26
+ </tab-button>
27
+ </template>
28
+ <script>
29
+ import TabButton from './../../../../src/components/revenue/comprehen/common/TabButton'
30
+ import Tabs from './../../../../src/components/revenue/comprehen/common/Tabs'
31
+ export default {
32
+ name: 'machineHandManager',
33
+ title: '机表抄表管理',
34
+ data () {
35
+ return {// 页面开关
36
+ f_start_date: '',
37
+ f_end_date: '',
38
+ listpage: true,
39
+ width: {
40
+ left: '100%',
41
+ right: '0%'
42
+ },
43
+ showupload: false,
44
+ // searchNumber:'',
45
+ rowData: {},
46
+ show: []
47
+ }
48
+ },
49
+ components: {Tabs, TabButton},
50
+ ready () {
51
+ console.log(this.$refs.list)
52
+ },
53
+ methods: {
54
+ permission (name) {
55
+ if (this.$login.r.find(value => value == '机表抄表管理')) {
56
+ if (!this.$login.r.find(value => value == name)) {
57
+ return false
58
+ }
59
+ }
60
+ return true
61
+ },
62
+ cancel (obj) {
63
+ this.listpage = true
64
+ },
65
+ dealMsg (obj) {
66
+ this.rowData = obj
67
+ this.listpage = false
68
+ console.log(obj.model)
69
+ this.f_start_date = obj.model.startDate
70
+ this.f_end_date = obj.model.endDate
71
+ }
72
+ }
73
+ }
74
+ </script>
75
+
76
+ <style scoped>
77
+
78
+ </style>
@@ -13,4 +13,7 @@ export default function () {
13
13
  Vue.component('iot-change-fill', (resolve) => { require(['./IOT/IotChangeFill'], resolve) })
14
14
  Vue.component('card-change-fill', (resolve) => { require(['./CardChangeFill'], resolve) })
15
15
  Vue.component('change-meter', (resolve) => { require(['./ChangeMeter'], resolve) })
16
+ // 机表抄表管理
17
+ Vue.component('machine-hand-manager', (resolve) => { require(['./machine/machineHandManager'], resolve) })
18
+
16
19
  }
package/src/sale.js CHANGED
@@ -276,9 +276,9 @@ export default function () {
276
276
  // 其他收费欠费收缴
277
277
  Vue.component('other-charge-bypay', (resolve) => { require(['./components/charge/business/OtherChargeByPay'], resolve) })
278
278
  // 材料管理周口用
279
- // Vue.component('material-display', (resolve) => { require(['./components/MaterialsManage/MaterialsList'], resolve) })
280
- // Vue.component('material-manage', (resolve) => { require(['./components/MaterialsManage/MaterialsManage'], resolve) })
281
- // Vue.component('materials-base', (resolve) => { require(['./components/MaterialsManage/MaterialsBase'], resolve) })
279
+ Vue.component('sale-material-display', (resolve) => { require(['./components/MaterialsManage/MaterialsList'], resolve) })
280
+ Vue.component('sale-material-manage', (resolve) => { require(['./components/MaterialsManage/MaterialsManage'], resolve) })
281
+ Vue.component('sale-materials-base', (resolve) => { require(['./components/MaterialsManage/MaterialsBase'], resolve) })
282
282
 
283
283
  // 机表收费引导
284
284
  Vue.component('machine-charge', (resolve) => { require(['./components/charge/business/machine/MachineCharge'], resolve) })