sale-client 3.5.52 → 3.5.54

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,164 +1,164 @@
1
- var express = require('express')
2
- var webpack = require('webpack')
3
- var config = require('./webpack.dev.conf')
4
- var proxyMiddleware = require('http-proxy-middleware')
5
- // var httpProxy = require('http-proxy')
6
-
7
- var app = express()
8
- var compiler = webpack(config)
9
- // var proxy = httpProxy.createProxyServer()
10
-
11
- // Define HTTP proxies to your custom API backend
12
- // https://github.com/chimurai/http-proxy-middleware
13
- var bendi = 'http://39.108.82.124:8400/', bendi1 = 'http://121.36.106.17:8400/'
14
- // 公司测试服务
15
- var fuwu = 'http://39.108.82.124:8400/'
16
- // var fuwu = 'http://121.36.106.17:8400/'
17
- // 铜川正式
18
- // var fuwu = 'http://61.134.55.234:9999/'
19
- // 铜川测试
20
- // var fuwu = 'http://61.134.55.234:9999/'
21
- // var fuwu = 'http://60.222.250.39:8300/'
22
- // 韶关
23
- // var fuwu = 'http://119.146.1.106:8300/'
24
- // 巩义测试服务
25
- // var fuwu = 'http://192.168.0.227:8400'
26
- // 燎原测试服务
27
- // var fuwu = 'http://121.41.19.238:8400 '
28
- // var fuwu = 'http://121.41.19.238:9001/'
29
-
30
- // var fuwu = 'http://139.214.92.34:8301/'
31
-
32
- var proxyTable = {
33
- '/rs/logic/saleExport': {
34
- target: fuwu
35
- },
36
- '/rs/logic/saleGetExportProgress': {
37
- target: fuwu
38
- },
39
- '/rs/file': {
40
- target: fuwu
41
- },
42
- '/files': {
43
- target: fuwu
44
- },
45
- // 查找资源服务数据
46
- '/rs/search': {
47
- target: fuwu
48
- },
49
- // 查找资源服务数据
50
- '/rs/logic/getLogin': {
51
- target: fuwu
52
- },
53
- // 查找资源服务数据
54
- '/rs/logic/getInitData': {
55
- target: fuwu
56
- },
57
- '/rs/logic/getSaleInitData': {
58
- target: fuwu
59
- },
60
- '/invoice': {
61
- target: fuwu
62
- },
63
- // 用户登录服务地址
64
- '/rs/user': {
65
- target: fuwu
66
- },
67
- '/rs/path/getParams': {
68
- target: fuwu
69
- },
70
- '/rs/data': {
71
- target: fuwu
72
- },
73
- '/rs/license': {
74
- target: fuwu
75
- },
76
- '/rs/db': {
77
- target: fuwu
78
- },
79
- '/excel': {
80
- target: fuwu
81
- },
82
- '/rs/config': {
83
- target: fuwu
84
- },
85
- '/rs/sql/getLicenseById': {
86
- target: fuwu
87
- },
88
- '/rs/sql/manage_getarealist': {
89
- target: fuwu
90
- },
91
- '/rs/sql/manage_getstreetlist': {
92
- target: fuwu
93
- },
94
- '/rs/report': {
95
- target: 'http://121.36.106.17:8400/'
96
- },
97
- '/rs/vue': {
98
- target: fuwu
99
- },
100
- '/webmeter': {
101
- target: fuwu
102
- },
103
- '/rs': {
104
- // target: 'http://192.168.30.63:8081/'
105
- // target: 'http://121.36.106.17:8400/'
106
- target: bendi
107
- }
108
- }
109
-
110
- var devMiddleware = require('webpack-dev-middleware')(compiler, {
111
- publicPath: config.output.publicPath,
112
- stats: {
113
- colors: true,
114
- chunks: false
115
- }
116
- })
117
-
118
- var hotMiddleware = require('webpack-hot-middleware')(compiler)
119
- // force page reload when html-webpack-plugin template changes
120
- compiler.plugin('compilation', function (compilation) {
121
- compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
122
- hotMiddleware.publish({action: 'reload'})
123
- cb()
124
- })
125
- })
126
-
127
- // proxy api requests
128
- Object.keys(proxyTable).forEach(function (context) {
129
- var options = proxyTable[context]
130
- if (typeof options === 'string') {
131
- options = {target: options}
132
- }
133
- app.use(proxyMiddleware(context, options))
134
- })
135
-
136
- // handle fallback for HTML5 history API
137
- app.use(require('connect-history-api-fallback')())
138
- // app.use(function (req, res, next) {
139
- // res.header('Access-Control-Allow-Origin', '*')
140
- // res.header('Access-Control-Allow-Headers', 'X-Requested-With')
141
- // res.header('Access-Control-Allow-Methods', 'PUT, POST, GET,DELETE, OPTIONS')
142
- // res.header('X-Powered-By', '3,2,1')
143
- // res.header('Access-Control-Allow-Credentials', 'true')
144
- // res.header('Content-Type', 'application/json;charset=utf-8')
145
- // next()
146
- // })
147
-
148
- // serve webpack bundle output
149
- app.use(devMiddleware)
150
-
151
- // enable hot-reload and state-preserving
152
- // compilation error display
153
- app.use(hotMiddleware)
154
-
155
- // serve pure static assets
156
- app.use('/static', express.static('./static'))
157
-
158
- module.exports = app.listen(8089, function (err) {
159
- if (err) {
160
- console.log(err)
161
- return
162
- }
163
- console.log('Listening at http://localhost:8089')
164
- })
1
+ var express = require('express')
2
+ var webpack = require('webpack')
3
+ var config = require('./webpack.dev.conf')
4
+ var proxyMiddleware = require('http-proxy-middleware')
5
+ // var httpProxy = require('http-proxy')
6
+
7
+ var app = express()
8
+ var compiler = webpack(config)
9
+ // var proxy = httpProxy.createProxyServer()
10
+
11
+ // Define HTTP proxies to your custom API backend
12
+ // https://github.com/chimurai/http-proxy-middleware
13
+ var bendi = 'http://121.36.106.17:8400', bendi1 = 'http://121.36.106.17:8400/'
14
+ // 公司测试服务
15
+ var fuwu = 'http://121.36.106.17:8400'
16
+ // var fuwu = 'http://121.36.106.17:8400/'
17
+ // 铜川正式
18
+ // var fuwu = 'http://61.134.55.234:9999/'
19
+ // 铜川测试
20
+ // var fuwu = 'http://61.134.55.234:9999/'
21
+ // var fuwu = 'http://60.222.250.39:8300/'
22
+ // 韶关
23
+ // var fuwu = 'http://119.146.1.106:8300/'
24
+ // 巩义测试服务
25
+ // var fuwu = 'http://192.168.0.227:8400'
26
+ // 燎原测试服务
27
+ // var fuwu = 'http://121.41.19.238:8400 '
28
+ // var fuwu = 'http://121.41.19.238:9001/'
29
+
30
+ // var fuwu = 'http://139.214.92.34:8301/'
31
+
32
+ var proxyTable = {
33
+ '/rs/logic/saleExport': {
34
+ target: fuwu
35
+ },
36
+ '/rs/logic/saleGetExportProgress': {
37
+ target: fuwu
38
+ },
39
+ '/rs/file': {
40
+ target: fuwu
41
+ },
42
+ '/files': {
43
+ target: fuwu
44
+ },
45
+ // 查找资源服务数据
46
+ '/rs/search': {
47
+ target: fuwu
48
+ },
49
+ // 查找资源服务数据
50
+ '/rs/logic/getLogin': {
51
+ target: fuwu
52
+ },
53
+ // 查找资源服务数据
54
+ '/rs/logic/getInitData': {
55
+ target: fuwu
56
+ },
57
+ '/rs/logic/getSaleInitData': {
58
+ target: fuwu
59
+ },
60
+ '/invoice': {
61
+ target: fuwu
62
+ },
63
+ // 用户登录服务地址
64
+ '/rs/user': {
65
+ target: fuwu
66
+ },
67
+ '/rs/path/getParams': {
68
+ target: fuwu
69
+ },
70
+ '/rs/data': {
71
+ target: fuwu
72
+ },
73
+ '/rs/license': {
74
+ target: fuwu
75
+ },
76
+ '/rs/db': {
77
+ target: fuwu
78
+ },
79
+ '/excel': {
80
+ target: fuwu
81
+ },
82
+ '/rs/config': {
83
+ target: fuwu
84
+ },
85
+ '/rs/sql/getLicenseById': {
86
+ target: fuwu
87
+ },
88
+ '/rs/sql/manage_getarealist': {
89
+ target: fuwu
90
+ },
91
+ '/rs/sql/manage_getstreetlist': {
92
+ target: fuwu
93
+ },
94
+ '/rs/report': {
95
+ target: 'http://121.36.106.17:8400/'
96
+ },
97
+ '/rs/vue': {
98
+ target: fuwu
99
+ },
100
+ '/webmeter': {
101
+ target: 'http://192.168.50.4:8450'
102
+ },
103
+ '/rs': {
104
+ // target: 'http://192.168.30.63:8081/'
105
+ // target: 'http://121.36.106.17:8400/'
106
+ target: bendi
107
+ }
108
+ }
109
+
110
+ var devMiddleware = require('webpack-dev-middleware')(compiler, {
111
+ publicPath: config.output.publicPath,
112
+ stats: {
113
+ colors: true,
114
+ chunks: false
115
+ }
116
+ })
117
+
118
+ var hotMiddleware = require('webpack-hot-middleware')(compiler)
119
+ // force page reload when html-webpack-plugin template changes
120
+ compiler.plugin('compilation', function (compilation) {
121
+ compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
122
+ hotMiddleware.publish({action: 'reload'})
123
+ cb()
124
+ })
125
+ })
126
+
127
+ // proxy api requests
128
+ Object.keys(proxyTable).forEach(function (context) {
129
+ var options = proxyTable[context]
130
+ if (typeof options === 'string') {
131
+ options = {target: options}
132
+ }
133
+ app.use(proxyMiddleware(context, options))
134
+ })
135
+
136
+ // handle fallback for HTML5 history API
137
+ app.use(require('connect-history-api-fallback')())
138
+ // app.use(function (req, res, next) {
139
+ // res.header('Access-Control-Allow-Origin', '*')
140
+ // res.header('Access-Control-Allow-Headers', 'X-Requested-With')
141
+ // res.header('Access-Control-Allow-Methods', 'PUT, POST, GET,DELETE, OPTIONS')
142
+ // res.header('X-Powered-By', '3,2,1')
143
+ // res.header('Access-Control-Allow-Credentials', 'true')
144
+ // res.header('Content-Type', 'application/json;charset=utf-8')
145
+ // next()
146
+ // })
147
+
148
+ // serve webpack bundle output
149
+ app.use(devMiddleware)
150
+
151
+ // enable hot-reload and state-preserving
152
+ // compilation error display
153
+ app.use(hotMiddleware)
154
+
155
+ // serve pure static assets
156
+ app.use('/static', express.static('./static'))
157
+
158
+ module.exports = app.listen(8089, function (err) {
159
+ if (err) {
160
+ console.log(err)
161
+ return
162
+ }
163
+ console.log('Listening at http://localhost:8089')
164
+ })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.52",
3
+ "version": "3.5.54",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,192 @@
1
+ <template>
2
+ <criteria-paged :model="model" v-ref:paged>
3
+ <criteria partial='criteria' v-ref:criteria @condition-changed='$parent.selfSearch'>
4
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
5
+ <div class="row">
6
+ <div class="col-sm-2 form-group">
7
+ <label class="font_normal_body">用户编号</label>
8
+ <input type="text" class="input_search"
9
+ style="width:60%"
10
+ v-model="model.f_userinfo_code"
11
+ condition="f_userinfo_code = '{}'"
12
+ placeholder="用户编号"/>
13
+ </div>
14
+ <div class="col-sm-2 form-group">
15
+ <label class="font_normal_body">用户姓名</label>
16
+ <input type="text" class="input_search"
17
+ style="width:60%"
18
+ v-model="model.f_user_name"
19
+ condition="f_user_name like '%{}%'"
20
+ placeholder="用户姓名"/>
21
+ </div>
22
+ <div class="col-sm-2 form-group">
23
+ <label class="font_normal_body">处理状态</label>
24
+ <v-select v-model="model.f_orderstate" style="width:60%"
25
+ placeholder='处理状态'
26
+ :value.sync="model.f_orderstate"
27
+ :options='$parent.$parent.getState'
28
+ :value-single="true"
29
+ close-on-select value-single>
30
+ </v-select>
31
+ </div>
32
+ <div class="span col-sm-2 form-group button-range" style="float: right">
33
+ <button class="button_search button_spacing" @click="search()" v-el:cx>查询</button>
34
+ <button class="button_clear button_spacing" @click="clear">清空</button>
35
+ <div style="float: right" class="button_spacing"
36
+ :class="{'button_shrink_top': criteriaShow,'button_shrink_bottom': !criteriaShow}"
37
+ @click="criteriaShow = !criteriaShow"></div>
38
+ </div>
39
+ <div class="row" v-show="criteriaShow">
40
+ <div class="col-sm-2 form-group">
41
+ <label class="font_normal_body">联系电话</label>
42
+ <input type="text" class="input_search"
43
+ style="width:60%"
44
+ v-model="model.f_phone"
45
+ condition="f_phone = '{}'"
46
+ placeholder="联系电话"/>
47
+ </div>
48
+ <div class="col-sm-2 form-group">
49
+ <label class="font_normal_body">起始时间</label>
50
+ <datepicker placeholder='预约时间' style="width:60%"
51
+ v-model="model.f_orderdate_start"
52
+ :value.sync="model.f_orderdate_start"
53
+ :format="'yyyy-MM-dd'"
54
+ :show-reset-button="true"
55
+ condition="f_orderdate >= '{} 00:00:00'">
56
+ </datepicker>
57
+ </div>
58
+ <div class="col-sm-2 form-group">
59
+ <label class="font_normal_body">结束时间</label>
60
+ <datepicker placeholder='结束时间' style="width:60%"
61
+ v-model="model.f_orderdate_end"
62
+ :value.sync="model.f_orderdate_end"
63
+ :format="'yyyy-MM-dd'"
64
+ :show-reset-button="true"
65
+ condition="f_orderdate <= '{} 00:00:00'">
66
+ </datepicker>
67
+ </div>
68
+ s
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </criteria>
73
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
74
+ <template partial='head'>
75
+ <tr>
76
+ <th>
77
+ <nobr>用户编号</nobr>
78
+ </th>
79
+ <th>
80
+ <nobr>用户姓名</nobr>
81
+ </th>
82
+ <th>
83
+ <nobr>联系电话</nobr>
84
+ </th>
85
+ <th>
86
+ <nobr>详细地址</nobr>
87
+ </th>
88
+ <th>
89
+ <nobr>备注信息</nobr>
90
+ </th>
91
+ <th>
92
+ <nobr>预约类型</nobr>
93
+ </th>
94
+ <th>
95
+ <nobr>预约时间</nobr>
96
+ </th>
97
+ <th>
98
+ <nobr>处理状态</nobr>
99
+ </th>
100
+ <th>
101
+ <nobr>处理时间</nobr>
102
+ </th>
103
+ <th>
104
+ <nobr>处&ensp;理&ensp;人</nobr>
105
+ </th>
106
+ </tr>
107
+ </template>
108
+ <template partial='body'>
109
+ <tr>
110
+ <td style="text-align:center">{{ row.f_userinfo_code }}</td>
111
+ <td style="text-align:center">{{ row.f_user_name }}</td>
112
+ <td style="text-align:center">{{ row.f_phone ? row.f_phone : f_user_phone }}</td>
113
+ <td style="text-align:center">{{ row.f_address }}</td>
114
+ <td style="text-align:center">{{ row.f_orderremark }}</td>
115
+ <td style="text-align:center">{{ row.f_ordertype }}</td>
116
+ <td style="text-align:center">{{ row.f_orderdate }}</td>
117
+ <td style="text-align:center">{{ row.f_orderstate ? row.f_orderstate : '待处理' }}</td>
118
+ <td style="text-align:center">{{ row.f_disposedate }}</td>
119
+ <td style="text-align:center">{{ row.f_dispose_operator }}</td>
120
+ </tr>
121
+ </template>
122
+ <template partial='foot'></template>
123
+ </data-grid>
124
+ </criteria-paged>
125
+
126
+
127
+ </template>
128
+
129
+ <script>
130
+ import {PagedList} from 'vue-client'
131
+
132
+ export default {
133
+ data () {
134
+ return {
135
+ model: new PagedList('/rs/sql/getorderRepair', 20,
136
+ {
137
+ tablename: '`t_order_transfer`',
138
+ items: '`f_userChange_name,f_userChange_idnumber,f_userChange_phone,f_imgList,f_newImgList`',
139
+ orderitem: '`f_orderdate`'
140
+ }),
141
+ criteriaShow: false
142
+ }
143
+ },
144
+ ready () {
145
+ // 默认查询待处理状态预约
146
+ this.search()
147
+ },
148
+ methods: {
149
+ getorg (val) {
150
+ this.f_orgid = this.$login.convertToIn(val)
151
+ this.f_filialeids = val[0]
152
+ this.initAreas(this.f_filialeids)
153
+ },
154
+ search () {
155
+ this.$refs.paged.$refs.criteria.search()
156
+ },
157
+ selfSearch (args) {
158
+ if (this.$refs.paged.$refs.criteria.model.f_orderstate) {
159
+ if (this.$refs.paged.$refs.criteria.model.f_orderstate === '待处理') {
160
+ args.condition += ' and f_orderstate is null '
161
+ }
162
+ if (this.$refs.paged.$refs.criteria.model.f_orderstate === '预约成功') {
163
+ args.condition += ` and f_orderstate = '预约成功' `
164
+ }
165
+ if (this.$refs.paged.$refs.criteria.model.f_orderstate === '预约失败') {
166
+ args.condition += ` and f_orderstate = '预约失败' `
167
+ }
168
+ }
169
+ args.condition = `${args.condition} and f_ordertype='预约过户' and f_orgstr in ${this.f_orgid}`
170
+ this.model.search(args.condition, args.model)
171
+ }
172
+ },
173
+ computed: {
174
+ getState () {
175
+ return [{label: '全部', value: ''}, {label: '待处理', value: '待处理'}, {
176
+ label: '预约成功',
177
+ value: '预约成功'
178
+ }, {label: '预约失败', value: '预约失败'}]
179
+ },
180
+ orderType () {
181
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('预约类型')]
182
+ }
183
+ },
184
+ watch: {
185
+ 'sliceArea' () {
186
+ this.model.model.f_slice_area = ''
187
+ }
188
+ }
189
+ }
190
+ </script>
191
+ <style lang="less">
192
+ </style>
@@ -311,6 +311,9 @@
311
311
  <th>
312
312
  <nobr>状态</nobr>
313
313
  </th>
314
+ <th>
315
+ <nobr>建档日期</nobr>
316
+ </th>
314
317
  <th>
315
318
  <nobr>地址状态</nobr>
316
319
  </th>
@@ -337,6 +340,7 @@
337
340
  <td style="text-align: center;">{{row.f_whether_hairpin}}</td>
338
341
  <td style="text-align: center;">{{row.f_gas_date}}</td>
339
342
  <td style="text-align: center;">{{row.f_user_state}}</td>
343
+ <td style="text-align: center;">{{row.f_createfile_date}}</td>
340
344
  <td style="text-align: center;">{{row.f_address_state}}</td>
341
345
  <td style="text-align: center;">
342
346
  <button type="button" name="button" class="btn btn-link" v-if="row.f_user_state === '正常' || row.f_user_state==='预备'"
@@ -9,11 +9,11 @@
9
9
  @blur="meternumberValidate()" placeholder='表号'
10
10
  v-next-el="{id: 'metertitles'}">
11
11
  </div>
12
- <div class="col-sm-4 form-group">
13
- <label for="f_metertitles" class="font_normal_body">&ensp;表&ensp;封&ensp;号</label>
14
- <input type="text" class="input_search" style="width:60%" v-model="row.f_metertitles" placeholder='表封号'
15
- v-next-el="{id: 'meterbase'}">
16
- </div>
12
+ <!-- <div class="col-sm-4 form-group">-->
13
+ <!-- <label for="f_metertitles" class="font_normal_body">&ensp;表&ensp;封&ensp;号</label>-->
14
+ <!-- <input type="text" class="input_search" style="width:60%" v-model="row.f_metertitles" placeholder='表封号'-->
15
+ <!-- v-next-el="{id: 'meterbase'}">-->
16
+ <!-- </div>-->
17
17
  <div class="col-sm-4 form-group">
18
18
  <label for="f_llj_brand" class="font_normal_body">流量计品牌</label>
19
19
  <input type="text" class="input_search" style="width:60%" v-model="row.f_llj_brand" placeholder='流量计品牌'
@@ -238,12 +238,12 @@
238
238
  <v-select :value.sync="row.f_valve_state" :options='valvestate' placeholder='阀门状态' close-on-select
239
239
  v-model='row.f_valve_state'></v-select>
240
240
  </div>
241
- <div class="col-sm-4 form-group">
242
- <label for="gasmodel" class="font_normal_body">&ensp;垃&ensp;圾&ensp;费</label>
243
- <v-select :value.sync="row.f_garbage_fee" :options='garbagefee' placeholder='垃圾费' close-on-select
244
- :value-single="true"
245
- v-model='row.f_garbage_fee'></v-select>
246
- </div>
241
+ <!-- <div class="col-sm-4 form-group">-->
242
+ <!-- <label for="gasmodel" class="font_normal_body">&ensp;垃&ensp;圾&ensp;费</label>-->
243
+ <!-- <v-select :value.sync="row.f_garbage_fee" :options='garbagefee' placeholder='垃圾费' close-on-select-->
244
+ <!-- :value-single="true"-->
245
+ <!-- v-model='row.f_garbage_fee'></v-select>-->
246
+ <!-- </div>-->
247
247
  <div class="col-sm-4 form-group">
248
248
  <label class="font_normal_body">&ensp;抄&ensp;表&ensp;员</label>
249
249
  <v-select :value.sync="row.f_inputtor" v-model='row.f_inputtor'
@@ -276,11 +276,11 @@
276
276
  <label for="f_userfiles_address" class="font_normal_body ">&nbsp;用气点名</label>
277
277
  <input class="input_search" style="width:80%" v-model="row.f_userfiles_address"/>
278
278
  </div>
279
- <div class="col-sm-4 form-group" >
280
- <label for="f_limit_sms" class="font_normal_body">&ensp;短信限定</label>
281
- <input type="text" class="input_search" style="width:60%" style="width:60%" v-model="row.f_limit_sms"
282
- placeholder='短信限定'></input>
283
- </div>
279
+ <!-- <div class="col-sm-4 form-group" >-->
280
+ <!-- <label for="f_limit_sms" class="font_normal_body">&ensp;短信限定</label>-->
281
+ <!-- <input type="text" class="input_search" style="width:60%" style="width:60%" v-model="row.f_limit_sms"-->
282
+ <!-- placeholder='短信限定'></input>-->
283
+ <!-- </div>-->
284
284
  <div style="" class="col-sm-8 form-group">
285
285
  <label for="f_comments" class="font_normal_body ">&nbsp;&nbsp;&nbsp;备&nbsp;&nbsp;&nbsp;注&nbsp;</label>
286
286
  <input class="input_search" style="width:80%" v-model="row.f_comments"/>
@@ -0,0 +1,332 @@
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
+ <div class="col-sm-4 form-group" style="" v-if="true">
20
+ <label for="f_user_state" class="font_normal_body">&ensp;客户状态</label>
21
+ <v-select :value.sync="baseinfo.base.f_user_state"
22
+ :disabled="true"
23
+ :value-single="true"
24
+ :options='userstates' placeholder='客户状态'
25
+ close-on-select></v-select>
26
+ </div>
27
+ </div>
28
+ <div class="row">
29
+ <div style="" class="col-sm-4 form-group">
30
+ <label for="f_credentials" class="font_normal_body">&ensp;证件类型</label>
31
+ <v-select id="idCardType" :value.sync="baseinfo.base.f_credentials"
32
+ v-model="baseinfo.base.f_credentials"
33
+ :value-single="true"
34
+ :options='credentials' placeholder='证件类型'
35
+ style="width: 65%"
36
+ close-on-select></v-select>
37
+ </div>
38
+ <div style="" class="col-sm-8 form-group"
39
+ :class="[$v.f_idnumber2.identityCardValid ? 'has-error' : '']"
40
+ v-if="baseinfo.base.f_credentials === '身份证'">
41
+ <label for="f_idnumber" class="font_normal_body">*证件号码</label>
42
+ <input type="text" maxlength="18" v-model="baseinfo.base.f_idnumber"
43
+ v-validate:f_idnumber2='{identityCardValid: true}' class="input_search" style="width:80%"
44
+ placeholder="证件号码">
45
+ </div>
46
+ <div style="" class="col-sm-8 form-group" v-if="baseinfo.base.f_credentials !== '身份证'">
47
+ <label class="font_normal_body">&ensp;证件号码</label>
48
+ <input type="text" v-model="baseinfo.base.f_idnumber" class="input_search" style="width:80%"
49
+ placeholder="证件号码">
50
+ </div>
51
+ </div>
52
+ <div class="row">
53
+ <div class="col-sm-12 form-group" :class="[$v.f_address.required ? 'has-error' : '']">
54
+ <label for="f_address" class="font_normal_body">*地址信息</label>
55
+ <input type="text" v-model="addressinfo.f_address" :value.sync="addressinfo.f_address" v-validate:f_address='{required: true }'
56
+ class="input_search" disabled="disabled" style="width:75%;" placeholder="用户地址" >
57
+ <span>
58
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="!isedit" @click="selectaddress()">选择地址</button>
59
+ <!-- <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="modifyaddress()">修改地址</button>-->
60
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="selectaddress()">修改地址</button>
61
+ </span>
62
+ </div>
63
+ </div>
64
+ <div class="row">
65
+ <div style="" class="col-sm-4 form-group">
66
+ <label for="f_used_name" class="font_normal_body">&ensp;曾&ensp;用&ensp;名</label>
67
+ <input type="text" v-model="baseinfo.base.f_used_name" class="input_search" style="width:60%"
68
+ placeholder="曾用名">
69
+ </div>
70
+ <div style="" class="col-sm-4 form-group">
71
+ <label for="f_rent_phone" class="font_normal_body">&ensp;备用电话</label>
72
+ <input type="text" v-model="baseinfo.base.f_rent_phone" class="input_search" style="width:60%"
73
+ placeholder="备用电话">
74
+ </div>
75
+ <div class="col-sm-4 form-group" :class="[$v.f_people_num.dctest ? 'has-error' : '']">
76
+ <label for="f_people_num" class="font_normal_body">&ensp;人&ensp;口&ensp;数</label>
77
+ <input type="number" v-model="baseinfo.base.f_people_num" v-validate:f_people_num='{dctest: [0, ">=" ]}'
78
+ :disabled="!jurisdiction.includes('修改人口数')" class="input_search" style="width:60%"
79
+ placeholder="家庭人口数">
80
+ </div>
81
+ </div>
82
+ <div class="row">
83
+ <div style="" class="col-sm-4 form-group">
84
+ <label for="f_balance" class="font_normal_body">&ensp;用户余额</label>
85
+ <input type="text" v-model="baseinfo.base.f_balance" class="input_search" style="width:60%"
86
+ placeholder="用户余额" :disabled="!jurisdiction.includes('档案信息查询修改')">
87
+ </div>
88
+ <!-- <div style="" class="col-sm-4 form-group">-->
89
+ <!-- <label for="f_is_mgq" class="font_normal_body ">煤&ensp;改&ensp;气&ensp;</label>-->
90
+ <!-- <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_is_mgq" v-model="baseinfo.base.f_is_mgq"-->
91
+ <!-- :options='mgq' placeholder='是否煤改气' style="width: 65%" close-on-select></v-select>-->
92
+ <!-- </div>-->
93
+ <!-- <div class="col-sm-4 form-group">-->
94
+ <!-- <label for="f_contract" class="font_normal_body">&ensp;燃气本号</label>-->
95
+ <!-- <input type="text" v-model="baseinfo.base.f_book_no" class="input_search" style="width:60%" placeholder="用户证号">-->
96
+ <!-- </div>-->
97
+ <div style="" class="col-sm-4 form-group">
98
+ <label for="f_rent_name" class="font_normal_body">&ensp;租户姓名</label>
99
+ <input type="text" v-model="baseinfo.base.f_rent_name" class="input_search" style="width:60%"
100
+ placeholder="租户姓名">
101
+ </div>
102
+ <div style="" class="col-sm-4 form-group">
103
+ <label for="f_zuhu_phone" class="font_normal_body">&ensp;租户电话</label>
104
+ <input type="text" v-model="baseinfo.base.f_zuhu_phone" class="input_search" style="width:60%"
105
+ placeholder="租户电话">
106
+ </div>
107
+ </div>
108
+ <div class="row">
109
+ <div style="" class="col-sm-8 form-group">
110
+ <label for="f_zuhu_idnumber" class="font_normal_body">租户身份证</label>
111
+ <input type="text" v-model="baseinfo.base.f_zuhu_idnumber" class="input_search" style="width:80%"
112
+ placeholder="租户身份证">
113
+ </div>
114
+ <div style="" class="col-sm-4 form-group">
115
+ <label for="f_is_mgq" class="font_normal_body ">&ensp;付款类型</label>
116
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_cost_type" v-model="baseinfo.base.f_cost_type"
117
+ :options='costtype' placeholder='付款类型' style="width: 65%" close-on-select></v-select>
118
+ </div>
119
+ </div>
120
+ <div class="row">
121
+ <!-- <div class="col-sm-8 form-group">-->
122
+ <!-- <label for="f_contract" class="font_normal_body">&ensp;合同编号</label>-->
123
+ <!-- <input type="text" v-model="baseinfo.base.f_contract_id" class="input_search" style="width:80%"-->
124
+ <!-- placeholder="合同编号">-->
125
+ <!-- </div>-->
126
+ <div class="col-sm-4 form-group">
127
+ <label for="f_user_state" class="font_normal_body">&ensp;房屋类型</label>
128
+ <input type="text" v-show="false" v-model="baseinfo.base.f_house_type">
129
+ <v-select :value.sync="baseinfo.base.f_house_type" :search="false" :value-single="true"
130
+ :options='housetype' placeholder='房屋类型' close-on-select>
131
+ </v-select>
132
+ </div>
133
+ <div style="" class="col-sm-4 form-group">
134
+ <label for="f_user_level" class="font_normal_body ">&ensp;用户等级</label>
135
+ <v-select :value.sync="baseinfo.base.f_user_level" :search="false" :value-single="true"
136
+ :options='userlevel' placeholder='用户等级' close-on-select>
137
+ </v-select>
138
+ </div>
139
+ <div class="col-sm-4 form-group">
140
+ <label for="f_user_nature" class="font_normal_body" title="用户性质">&ensp;用气类型</label>
141
+ <input type="text" v-show="false" v-model="baseinfo.base.f_user_nature">
142
+ <v-select :value.sync="baseinfo.base.f_user_nature" :search="false" :value-single="true"
143
+ :options='usernature' placeholder='用气类型' close-on-select>
144
+ </v-select>
145
+ </div>
146
+ </div>
147
+ <div class="row">
148
+ <div class="col-sm-4 form-group">
149
+ <label for="f_user_nature" class="font_normal_body">&ensp;档案编号</label>
150
+ <input type="text" v-model="baseinfo.base.f_olduserinfo_code" class="input_search" style="width:60%"
151
+ placeholder="档案编号">
152
+ </div>
153
+ </div>
154
+ <div class="row">
155
+ <div style="" class="col-sm-12 form-group">
156
+ <label for="f_paper_account" class="font_normal_body ">&ensp;备&emsp;&emsp;注</label>
157
+ <input class="input_search" style="width:86.5%;height: 40px" v-model="baseinfo.base.f_comments"/>
158
+ </div>
159
+ </div>
160
+
161
+ <div class="row" style="margin-top: 2%;">
162
+ <a style="font-size: 16px;font-weight: 500;"
163
+ v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">银行信息</a>
164
+ </div>
165
+ <div v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">
166
+ <div class="row">
167
+ <div class="col-sm-4 form-group"
168
+ :class="[$v.f_bank_accopen.required ? 'has-error' : '']">
169
+ <label for="f_username" class="font_normal_body">银行户名</label>
170
+ <input type="text" v-model="baseinfo.bank.f_bank_accopen"
171
+ class="input_search" style="width:60%" id="f_username" placeholder="客户名称"
172
+ v-validate:f_bank_accopen='{required: true}'
173
+ v-next-el="bankaccount">
174
+ </div>
175
+ <div class="col-sm-4 form-group" id=userfiles-useEssInf-银行名称>
176
+ <label for="f_username" class="font_normal_body ">银行名称</label>
177
+ <v-select :value.sync="baseinfo.bank.f_bank_name"
178
+ :options='banknames' placeholder='银行名称'
179
+ close-on-select></v-select>
180
+ </div>
181
+ <div class="col-sm-4 form-group">
182
+ <label for="f_bank_idnumber" class="font_normal_body">缴费编号</label>
183
+ <input type="text" v-model="baseinfo.bank.f_bank_pay_number"
184
+ class="input_search" style="width:60%"
185
+ aria-describedby="helpBlock" placeholder="缴费编号" v-el:bankpaynumber>
186
+ </div>
187
+ <div class="col-sm-12 form-group">
188
+ <label for="f_bank_idnumber" class="font_normal_body">身份证号</label>
189
+ <input type="text" v-model="baseinfo.bank.f_bank_idnumber"
190
+ class="input_search" style="width:54%"
191
+ aria-describedby="helpBlock" placeholder="身份证号" v-el:bankidnumber>
192
+ </div>
193
+ <div class="col-sm-12 form-group"
194
+ :class="[$v.f_bank_account.required ? 'has-error' : '']">
195
+ <label for="f_userid" class="font_normal_body">银行账号</label>
196
+ <input type="text" v-model="baseinfo.bank.f_bank_account" class="input_search" style="width:54%"
197
+ v-validate:f_bank_account='{required: true}' placeholder="银行账号" v-el:bankaccount
198
+ v-next-el="bankidnumber">
199
+ </div>
200
+ </div>
201
+ </div>
202
+ </form>
203
+ </validator>
204
+ <modal v-if="showselectaddress" :show.sync="showselectaddress" width="80%" title="地址信息" v-ref:modal large backdrop="false">
205
+ <article slot="modal-body" class="modal-body" style="height: 700px;padding: 0!important;">
206
+ <file-address-manage :is-select="isSelect" :fileinfo="addressinfo"
207
+ @address-valid="doNothing" :showselectaddress.sync="showselectaddress" v-ref:fileaddress ></file-address-manage>
208
+ </article>
209
+ <footer slot="modal-footer" class="modal-footer">
210
+ </footer>
211
+ </modal>
212
+ <file-user-phone :show.sync="showphone" :userphonelist="userphonelist" :f_userinfo_id="baseinfo.base.f_userinfo_id"></file-user-phone>
213
+ </div>
214
+ </template>
215
+
216
+ <script>
217
+ import {HttpResetClass} from 'vue-client'
218
+ // import HighMeter from '../../plugins/HighMeterPlugin'
219
+
220
+ let getEditUserState = async function (self) {
221
+ try {
222
+ let http = new HttpResetClass()
223
+ let result = await http.load('GET', `rs/vue/EditUserState.json`, {}, {resolveMsg: null, rejectMsg: null})
224
+ console.log(result.data.EditUserState)
225
+ self.edituserstate = result.data.EditUserState
226
+ } catch (e) {
227
+ console.log(e)
228
+ }
229
+ }
230
+
231
+ export default {
232
+ title: '基本信息',
233
+ props: ['baseinfo', 'addressinfo', 'isedit', 'userphonelist'],
234
+ data () {
235
+ return {
236
+ showselectaddress: false,
237
+ site: '',
238
+ showphone: false,
239
+ areas: [],
240
+ streets: [],
241
+ residentials: [],
242
+ inputtores: this.$appdata.getParam('抄表员'),
243
+ credentials: this.$appdata.getParam('证件类型'),
244
+ costtypes: this.$appdata.getParam('缴费类型'),
245
+ banknames: this.$appdata.getParam('银行名称'),
246
+ userstates: this.$appdata.getParam('用户状态'),
247
+ mgq: this.$appdata.getParam('是否煤改气'),
248
+ costtype: this.$appdata.getParam('付款类型'),
249
+ usernature: this.$appdata.getParam('用户性质'),
250
+ userlevel: this.$appdata.getParam('用户等级'),
251
+ housetype: [{label: '楼房', value: '楼房'}, {label: '自建房', value: '自建房'}],
252
+ jurisdiction: this.$login.r,
253
+ edituserstate: false,
254
+ // highMeterPlugin: {},
255
+ readCardFlag: true,
256
+
257
+ isSelect: false
258
+ }
259
+ },
260
+ ready () {
261
+ getEditUserState(this)
262
+ this.$resetValidation()
263
+ // this.highMeterPlugin = new HighMeter(this,this.readIDCardCallback)
264
+ },
265
+ beforeDestroy () {
266
+ // this.highMeterPlugin.Stop()
267
+ },
268
+ methods: {
269
+ selectaddress () {
270
+ this.showselectaddress = true
271
+ this.isSelect = true
272
+ },
273
+ modifyaddress () {
274
+ this.showselectaddress = true
275
+ this.isSelect = false
276
+ },
277
+ onValid (res) {
278
+ this.$dispatch('valid')
279
+ },
280
+ onInvalid (res) {
281
+ this.$dispatch('invalid')
282
+ },
283
+ doNothing () {
284
+ },
285
+ readIDCardCallback (compoent, msg) {
286
+ console.log('进入高拍仪', msg)
287
+ if (msg.err !== 0) {
288
+ return
289
+ }
290
+ // document.getElementById("idCardType").getElementsByClassName("btn-content")[0].innerHTML="身份证"
291
+ compoent.baseinfo.base.f_idnumber = msg.strID
292
+ compoent.baseinfo.base.f_user_name = msg.strName.trim()
293
+ // compoent.baseinfo.base.f_credentials=["身份证"]
294
+ },
295
+ phoneManage () {
296
+ this.showphone = true
297
+ console.log('查看用户备用电话信息', this.userphonelist)
298
+ }
299
+ },
300
+ watch: {
301
+ // 重置验证结果,当证件类型切换时,验证结果不能立即刷新,需要重置
302
+ 'baseinfo.base.f_credentials[0]' () {
303
+ console.log('验证器重置')
304
+ this.$resetValidation()
305
+ },
306
+ 'baseinfo.base.f_cost_type[0]' () {
307
+ console.log('验证器重置')
308
+ this.$resetValidation()
309
+ }
310
+ // 当选择销户,需要给其提醒是否进行销户
311
+ // 'baseinfo.base.f_user_state'(val) {
312
+ // // if (val[0] === '销户') {
313
+ // // this.$showMessage('是否要对该客户进行销户操作?', ['confirm', 'cancel']).then((res) => {
314
+ // // if (res !== 'confirm') {
315
+ // // this.baseinfo.base.f_user_state = ['正常']
316
+ // // }
317
+ // // })
318
+ // // }
319
+ // }
320
+ },
321
+ computed: {},
322
+ events: {
323
+ 'confirmaddress' (res) {
324
+ console.log('选定地址', res)
325
+ this.showselectaddress = false
326
+ this.addressinfo.f_address = res.f_address
327
+ this.addressinfo.id = res.id
328
+ this.$dispatch('defaultOtheret', res)
329
+ }
330
+ }
331
+ }
332
+ </script>
@@ -33,6 +33,8 @@ let specialComp = {
33
33
  'file-user-device-info-new': (resolve) => { require(['./FilesManageNew/UserDeviceInfoTest'], resolve) },
34
34
  // 用户基本信息test
35
35
  'file-user-essential-info-new': (resolve) => { require(['./FilesManageNew/UserEssentialInfoTest'], resolve) },
36
+ // 用户基本信息test
37
+ 'file-user-essential-info': (resolve) => { require(['./UserEssentialInfoTest'], resolve) },
36
38
  // 用户表具信息test
37
39
  'file-user-meter-info-new': (resolve) => { require(['./FilesManageNew/UserMeterInfoTest'], resolve) },
38
40
 
@@ -184,13 +184,11 @@
184
184
  close-on-select></v-select>
185
185
  </div>
186
186
  <div class="col-sm-4 form-group" v-show="true">
187
- <input type="text" v-model="$refs.f_install_date.value" v-show="false">
188
187
  <label for="f_install_date" class="font_normal_body">&ensp;安装日期</label>
189
188
  <datepicker style="width:60%" id="startDate" placeholder="安装日期" width='100%'
190
- v-model="f_install_date"
191
- :value.sync="f_install_date"
189
+ v-model="row.f_install_date"
190
+ :value.sync="row.f_install_date"
192
191
  class="datepicker"
193
- v-ref:f_install_date
194
192
  :format="'yyyy-MM-dd HH:mm:ss'"
195
193
  :show-reset-button="true">
196
194
  </datepicker>
@@ -390,7 +388,6 @@ export default {
390
388
  ratioshow: false,
391
389
  userfileid: '',
392
390
  gasid: '',
393
- f_install_date: '',
394
391
  f_scrap_date: '',
395
392
  gastype: 'userfiles',
396
393
  showParame: false,
@@ -432,9 +429,6 @@ export default {
432
429
  }
433
430
  if (this.row.f_install_date == null || this.row.f_install_date == '') {
434
431
  this.row.f_install_date = Util.toStandardTimeString()
435
- this.f_install_date = Util.toStandardTimeString()
436
- } else {
437
- this.f_install_date = this.row.f_install_date
438
432
  }
439
433
  this.getbfrq()
440
434
  // this.updatayear(this.f_install_date)
@@ -108,7 +108,7 @@
108
108
  self.closeTimer()
109
109
  return
110
110
  }
111
- if (times > 12) {
111
+ if (times > 48) {
112
112
  self.$showAlert(`多次查询未成功,请重新扫描用户付款码`, 'danger')
113
113
  self.closeTimer()
114
114
  }
@@ -111,7 +111,8 @@ let FileManageService = {
111
111
  meter.f_position = meter.f_position.length > 0 ? meter.f_position[0] : null
112
112
  meter.f_usetype = meter.f_usetype.length > 0 ? meter.f_usetype[0] : null
113
113
  meter.f_usestate = meter.f_usestate.length > 0 ? meter.f_usestate[0] : null
114
-
114
+ meter.f_gas_date = meter.f_gas_date && meter.f_gas_date.trim() != '' ? meter.f_gas_date : null
115
+ meter.f_install_date = meter.f_install_date && meter.f_install_date.trim() != '' ? meter.f_install_date : null
115
116
  meter.f_show_way = meter.f_show_way ? meter.f_show_way[0] : null
116
117
  meter.f_inputtor = meter.f_inputtor.length > 0 ? meter.f_inputtor[0] : null
117
118
  meter.f_gongye_type = meter.f_gongye_type ? meter.f_gongye_type[0] : null
package/src/sale.js CHANGED
@@ -1117,9 +1117,11 @@ export default function (filiale) {
1117
1117
  // excel导入模板
1118
1118
  Vue.component('import-excel', (resolve) => { require(['./components/revenue/comprehen/common/ImportExcel'], resolve) })
1119
1119
  // 气量核对
1120
- Vue.component('check-gas', (resolve) => { require(['./components/revenue/base/leftview//CheckGas'], resolve) })
1120
+ Vue.component('check-gas', (resolve) => { require(['./components/revenue/base/leftview/CheckGas'], resolve) })
1121
1121
  // json模板
1122
1122
  Vue.component('json-parse', (resolve) => { require(['./components/revenue/comprehen/common/JSONParse'], resolve) })
1123
+ // 六安第三方过户预约审核页面
1124
+ // Vue.component('transfer-audit', (resolve) => { require(['./components/revenue/third/transferAudit'], resolve) })
1123
1125
 
1124
1126
  // 分公司特殊页面注册替换
1125
1127
  if (filiale) {