sale-client 3.6.258 → 3.6.259
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +120 -120
- package/src/components/common/userinfo_detail/UserInfoDetailManageNew.vue +8 -2
- package/src/components/common/userinfo_detail/ic_detail/contractSigningList.vue +117 -0
- package/src/components/revenue/HandManager/meterbookEntry.vue +1 -2
- package/src/filiale/haile/FilesManage/MeterinfoTest.vue +2 -2
- package/src/filiale/meihekou/MbpeopleList.vue +563 -0
- package/src/filiale/meihekou/sale.js +1 -0
- package/src/sale.js +1 -0
package/package.json
CHANGED
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "sale-client",
|
|
3
|
-
"version": "3.6.
|
|
4
|
-
"description": "收费模块前台组件",
|
|
5
|
-
"main": "src/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"example": "node build/example-server.js",
|
|
8
|
-
"dev": "webpack-dev-server --config ./build/dev-server.js",
|
|
9
|
-
"lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
|
|
10
|
-
"unit": "karma start test/unit/karma.conf.js",
|
|
11
|
-
"build": "rimraf lib && mkdirp lib && cross-env webpack --progress --hide-modules --config build/webpack.prod.conf.js",
|
|
12
|
-
"e2e": "node test/e2e/runner.js",
|
|
13
|
-
"release": "bash build/release.sh"
|
|
14
|
-
},
|
|
15
|
-
"repository": {
|
|
16
|
-
"type": "git",
|
|
17
|
-
"url": "https://gitee.com/aote/product.git"
|
|
18
|
-
},
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"crypto-js": "^4.1.1",
|
|
21
|
-
"examples": "^0.1.0",
|
|
22
|
-
"js-file-download": "0.4.12",
|
|
23
|
-
"less-loader": "^2.2.3",
|
|
24
|
-
"qrcodejs2": "0.0.2",
|
|
25
|
-
"vue": "^1.0.17",
|
|
26
|
-
"webpack-dev-server": "^2.11.5",
|
|
27
|
-
"vue-client": "1.24.137",
|
|
28
|
-
"yarn": "^1.22.10"
|
|
29
|
-
},
|
|
30
|
-
"devDependencies": {
|
|
31
|
-
"address-client": "3.2.56",
|
|
32
|
-
"axios": "0.15.3",
|
|
33
|
-
"babel-core": "^6.0.0",
|
|
34
|
-
"babel-loader": "^6.0.0",
|
|
35
|
-
"babel-plugin-transform-runtime": "^6.0.0",
|
|
36
|
-
"babel-preset-es2015": "^6.0.0",
|
|
37
|
-
"babel-preset-stage-2": "^6.0.0",
|
|
38
|
-
"chai": "^3.5.0",
|
|
39
|
-
"co": "^4.6.0",
|
|
40
|
-
"compression-webpack-plugin": "1.1.2",
|
|
41
|
-
"connect-history-api-fallback": "^1.1.0",
|
|
42
|
-
"cross-env": "^1.0.7",
|
|
43
|
-
"cross-spawn": "^2.1.5",
|
|
44
|
-
"css-loader": "^0.23.0",
|
|
45
|
-
"echarts": "^4.1.0",
|
|
46
|
-
"eslint": "^3.19.0",
|
|
47
|
-
"eslint-config-standard": "^10.2.1",
|
|
48
|
-
"eslint-friendly-formatter": "^3.0.0",
|
|
49
|
-
"eslint-loader": "^1.7.1",
|
|
50
|
-
"eslint-plugin-html": "^3.0.0",
|
|
51
|
-
"eslint-plugin-import": "^2.7.0",
|
|
52
|
-
"eslint-plugin-node": "^5.2.0",
|
|
53
|
-
"eslint-plugin-promise": "^3.4.0",
|
|
54
|
-
"eslint-plugin-standard": "^3.0.1",
|
|
55
|
-
"eventsource-polyfill": "^0.9.6",
|
|
56
|
-
"express": "^4.13.3",
|
|
57
|
-
"extract-text-webpack-plugin": "^3.0.2",
|
|
58
|
-
"terser-webpack-plugin-legacy": "^1.2.5",
|
|
59
|
-
"file-loader": "^0.8.4",
|
|
60
|
-
"filemanager-webpack-plugin": "^2.0.5",
|
|
61
|
-
"function-bind": "^1.0.2",
|
|
62
|
-
"html-webpack-plugin": "^2.8.1",
|
|
63
|
-
"http-proxy-middleware": "^0.11.0",
|
|
64
|
-
"inject-loader": "^2.0.1",
|
|
65
|
-
"isparta-loader": "^2.0.0",
|
|
66
|
-
"jasmine-core": "^2.4.1",
|
|
67
|
-
"jquery": "^3.3.1",
|
|
68
|
-
"jsencrypt": "3.0.0-rc.1",
|
|
69
|
-
"json-loader": "^0.5.4",
|
|
70
|
-
"karma": "^1.4.1",
|
|
71
|
-
"karma-chrome-launcher": "^2.2.0",
|
|
72
|
-
"karma-coverage": "^1.1.1",
|
|
73
|
-
"karma-mocha": "^1.3.0",
|
|
74
|
-
"karma-sinon-chai": "^1.3.1",
|
|
75
|
-
"karma-sourcemap-loader": "^0.3.7",
|
|
76
|
-
"karma-spec-reporter": "0.0.31",
|
|
77
|
-
"karma-webpack": "^2.0.2",
|
|
78
|
-
"ldap-clients": "3.0.62",
|
|
79
|
-
"less": "^2.7.3",
|
|
80
|
-
"manage-client": "3.1.8-88",
|
|
81
|
-
"mkdirp": "^0.5.1",
|
|
82
|
-
"mocha": "^3.2.0",
|
|
83
|
-
"moment": "2.24.0",
|
|
84
|
-
"ncp": "^2.0.0",
|
|
85
|
-
"nightwatch": "^0.8.18",
|
|
86
|
-
"qrcodejs2": "0.0.2",
|
|
87
|
-
"rimraf": "^2.5.0",
|
|
88
|
-
"selenium-server": "2.52.0",
|
|
89
|
-
"sinon": "^2.1.0",
|
|
90
|
-
"sinon-chai": "^2.8.0",
|
|
91
|
-
"style": "0.0.3",
|
|
92
|
-
"style-loader": "^0.20.3",
|
|
93
|
-
"system-clients": "3.2.61",
|
|
94
|
-
"url-loader": "^0.5.7",
|
|
95
|
-
"vue-clipboard2": "0.3.1",
|
|
96
|
-
"vue-hot-reload-api": "^1.2.0",
|
|
97
|
-
"vue-html-loader": "^1.0.0",
|
|
98
|
-
"vue-loader": "^8.2.1",
|
|
99
|
-
"vue-resource": "^1.5.0",
|
|
100
|
-
"vue-router": "^0.7.13",
|
|
101
|
-
"vue-strap": "^1.0.9",
|
|
102
|
-
"vue-style-loader": "^1.0.0",
|
|
103
|
-
"vue-validator": "2.1.7",
|
|
104
|
-
"webpack": "^3.12.0",
|
|
105
|
-
"webpack-dev-middleware": "^1.4.0",
|
|
106
|
-
"webpack-hot-middleware": "^2.6.0",
|
|
107
|
-
"webpack-merge": "^0.8.3",
|
|
108
|
-
"webpack-parallel-uglify-plugin": "^1.0.0",
|
|
109
|
-
"weixin-js-sdk": "^1.2.0"
|
|
110
|
-
},
|
|
111
|
-
"keywords": [
|
|
112
|
-
"selling-clients"
|
|
113
|
-
],
|
|
114
|
-
"author": "张桥",
|
|
115
|
-
"license": "ISC",
|
|
116
|
-
"directories": {
|
|
117
|
-
"example": "examples",
|
|
118
|
-
"test": "test"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "sale-client",
|
|
3
|
+
"version": "3.6.259",
|
|
4
|
+
"description": "收费模块前台组件",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"example": "node build/example-server.js",
|
|
8
|
+
"dev": "webpack-dev-server --config ./build/dev-server.js",
|
|
9
|
+
"lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
|
|
10
|
+
"unit": "karma start test/unit/karma.conf.js",
|
|
11
|
+
"build": "rimraf lib && mkdirp lib && cross-env webpack --progress --hide-modules --config build/webpack.prod.conf.js",
|
|
12
|
+
"e2e": "node test/e2e/runner.js",
|
|
13
|
+
"release": "bash build/release.sh"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://gitee.com/aote/product.git"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"crypto-js": "^4.1.1",
|
|
21
|
+
"examples": "^0.1.0",
|
|
22
|
+
"js-file-download": "0.4.12",
|
|
23
|
+
"less-loader": "^2.2.3",
|
|
24
|
+
"qrcodejs2": "0.0.2",
|
|
25
|
+
"vue": "^1.0.17",
|
|
26
|
+
"webpack-dev-server": "^2.11.5",
|
|
27
|
+
"vue-client": "1.24.137",
|
|
28
|
+
"yarn": "^1.22.10"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"address-client": "3.2.56",
|
|
32
|
+
"axios": "0.15.3",
|
|
33
|
+
"babel-core": "^6.0.0",
|
|
34
|
+
"babel-loader": "^6.0.0",
|
|
35
|
+
"babel-plugin-transform-runtime": "^6.0.0",
|
|
36
|
+
"babel-preset-es2015": "^6.0.0",
|
|
37
|
+
"babel-preset-stage-2": "^6.0.0",
|
|
38
|
+
"chai": "^3.5.0",
|
|
39
|
+
"co": "^4.6.0",
|
|
40
|
+
"compression-webpack-plugin": "1.1.2",
|
|
41
|
+
"connect-history-api-fallback": "^1.1.0",
|
|
42
|
+
"cross-env": "^1.0.7",
|
|
43
|
+
"cross-spawn": "^2.1.5",
|
|
44
|
+
"css-loader": "^0.23.0",
|
|
45
|
+
"echarts": "^4.1.0",
|
|
46
|
+
"eslint": "^3.19.0",
|
|
47
|
+
"eslint-config-standard": "^10.2.1",
|
|
48
|
+
"eslint-friendly-formatter": "^3.0.0",
|
|
49
|
+
"eslint-loader": "^1.7.1",
|
|
50
|
+
"eslint-plugin-html": "^3.0.0",
|
|
51
|
+
"eslint-plugin-import": "^2.7.0",
|
|
52
|
+
"eslint-plugin-node": "^5.2.0",
|
|
53
|
+
"eslint-plugin-promise": "^3.4.0",
|
|
54
|
+
"eslint-plugin-standard": "^3.0.1",
|
|
55
|
+
"eventsource-polyfill": "^0.9.6",
|
|
56
|
+
"express": "^4.13.3",
|
|
57
|
+
"extract-text-webpack-plugin": "^3.0.2",
|
|
58
|
+
"terser-webpack-plugin-legacy": "^1.2.5",
|
|
59
|
+
"file-loader": "^0.8.4",
|
|
60
|
+
"filemanager-webpack-plugin": "^2.0.5",
|
|
61
|
+
"function-bind": "^1.0.2",
|
|
62
|
+
"html-webpack-plugin": "^2.8.1",
|
|
63
|
+
"http-proxy-middleware": "^0.11.0",
|
|
64
|
+
"inject-loader": "^2.0.1",
|
|
65
|
+
"isparta-loader": "^2.0.0",
|
|
66
|
+
"jasmine-core": "^2.4.1",
|
|
67
|
+
"jquery": "^3.3.1",
|
|
68
|
+
"jsencrypt": "3.0.0-rc.1",
|
|
69
|
+
"json-loader": "^0.5.4",
|
|
70
|
+
"karma": "^1.4.1",
|
|
71
|
+
"karma-chrome-launcher": "^2.2.0",
|
|
72
|
+
"karma-coverage": "^1.1.1",
|
|
73
|
+
"karma-mocha": "^1.3.0",
|
|
74
|
+
"karma-sinon-chai": "^1.3.1",
|
|
75
|
+
"karma-sourcemap-loader": "^0.3.7",
|
|
76
|
+
"karma-spec-reporter": "0.0.31",
|
|
77
|
+
"karma-webpack": "^2.0.2",
|
|
78
|
+
"ldap-clients": "3.0.62",
|
|
79
|
+
"less": "^2.7.3",
|
|
80
|
+
"manage-client": "3.1.8-88",
|
|
81
|
+
"mkdirp": "^0.5.1",
|
|
82
|
+
"mocha": "^3.2.0",
|
|
83
|
+
"moment": "2.24.0",
|
|
84
|
+
"ncp": "^2.0.0",
|
|
85
|
+
"nightwatch": "^0.8.18",
|
|
86
|
+
"qrcodejs2": "0.0.2",
|
|
87
|
+
"rimraf": "^2.5.0",
|
|
88
|
+
"selenium-server": "2.52.0",
|
|
89
|
+
"sinon": "^2.1.0",
|
|
90
|
+
"sinon-chai": "^2.8.0",
|
|
91
|
+
"style": "0.0.3",
|
|
92
|
+
"style-loader": "^0.20.3",
|
|
93
|
+
"system-clients": "3.2.61",
|
|
94
|
+
"url-loader": "^0.5.7",
|
|
95
|
+
"vue-clipboard2": "0.3.1",
|
|
96
|
+
"vue-hot-reload-api": "^1.2.0",
|
|
97
|
+
"vue-html-loader": "^1.0.0",
|
|
98
|
+
"vue-loader": "^8.2.1",
|
|
99
|
+
"vue-resource": "^1.5.0",
|
|
100
|
+
"vue-router": "^0.7.13",
|
|
101
|
+
"vue-strap": "^1.0.9",
|
|
102
|
+
"vue-style-loader": "^1.0.0",
|
|
103
|
+
"vue-validator": "2.1.7",
|
|
104
|
+
"webpack": "^3.12.0",
|
|
105
|
+
"webpack-dev-middleware": "^1.4.0",
|
|
106
|
+
"webpack-hot-middleware": "^2.6.0",
|
|
107
|
+
"webpack-merge": "^0.8.3",
|
|
108
|
+
"webpack-parallel-uglify-plugin": "^1.0.0",
|
|
109
|
+
"weixin-js-sdk": "^1.2.0"
|
|
110
|
+
},
|
|
111
|
+
"keywords": [
|
|
112
|
+
"selling-clients"
|
|
113
|
+
],
|
|
114
|
+
"author": "张桥",
|
|
115
|
+
"license": "ISC",
|
|
116
|
+
"directories": {
|
|
117
|
+
"example": "examples",
|
|
118
|
+
"test": "test"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -84,6 +84,9 @@
|
|
|
84
84
|
<saletab header="用户设备查询" v-if="permission('用户设备查看')">
|
|
85
85
|
<user-device-query :row="row" v-if="show == '用户设备查询'" @deal-msg="dealMsg"></user-device-query>
|
|
86
86
|
</saletab>
|
|
87
|
+
<saletab header="合同查看" v-if="permission('合同查看')">
|
|
88
|
+
<contract-signing-list :row="row" v-if="show == '合同查看'" @deal-msg="dealMsg"></contract-signing-list>
|
|
89
|
+
</saletab>
|
|
87
90
|
</saletabbut>
|
|
88
91
|
</div>
|
|
89
92
|
</div>
|
|
@@ -108,6 +111,7 @@
|
|
|
108
111
|
import WebChargeQueryUser from './ic_detail/WebChargeQueryUser'
|
|
109
112
|
import WebHandQueryUser from './ic_detail/WebHandQueryUser'
|
|
110
113
|
import UserDeviceQuery from './ic_detail/UserDeviceQuery'
|
|
114
|
+
import contractSigningList from './ic_detail/contractSigningList'
|
|
111
115
|
|
|
112
116
|
// 导入物联网相关查询
|
|
113
117
|
import QueryInstruct from './iot_detail/QueryInstruct'
|
|
@@ -115,10 +119,11 @@
|
|
|
115
119
|
import WatchCollection from './iot_detail/WatchCollection'
|
|
116
120
|
import WatchWarning from './iot_detail/WatchWarning'
|
|
117
121
|
import PriceChangeQueryUser from './ic_detail/PriceChangeQueryUser'
|
|
118
|
-
import ChangeRecord from './ic_detail/ChangeRecord'
|
|
122
|
+
import ChangeRecord from './ic_detail/ChangeRecord'
|
|
119
123
|
import PriceAdjustmentQueryUser from './ic_detail/PriceAdjustmentQueryUser'
|
|
120
124
|
import MeterParam from './ic_detail/MeterParam'
|
|
121
125
|
import DeveiceRecord from './ic_detail/DeveiceRecord'
|
|
126
|
+
|
|
122
127
|
export default {
|
|
123
128
|
title: '用户详细信息',
|
|
124
129
|
props: ['f_userfiles_id', 'f_userinfo_id', 'f_userinfo_code', 'parentname', 'buttonshow'],
|
|
@@ -147,7 +152,8 @@ export default {
|
|
|
147
152
|
MeterParam,
|
|
148
153
|
DeveiceRecord,
|
|
149
154
|
MachineRecordQuery,
|
|
150
|
-
UserDeviceQuery
|
|
155
|
+
UserDeviceQuery,
|
|
156
|
+
contractSigningList
|
|
151
157
|
},
|
|
152
158
|
data () {
|
|
153
159
|
return {
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<template >
|
|
2
|
+
<div class="flex" style="justify-content: space-between;">
|
|
3
|
+
<div @keyup.enter="search" style="">
|
|
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">
|
|
8
|
+
<div class="col-sm-2 form-group">
|
|
9
|
+
<label class="font_normal_body">开始时间</label>
|
|
10
|
+
<datepicker placeholder='开始时间' style="width:60%"
|
|
11
|
+
v-model="model.startTime"
|
|
12
|
+
:value.sync="model.startTime"
|
|
13
|
+
:format="'yyyy-MM-dd'"
|
|
14
|
+
:show-reset-button="true"
|
|
15
|
+
condition="f_signature_date >= '{} 00:00:00'">
|
|
16
|
+
</datepicker>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-2 form-group" >
|
|
19
|
+
<label class="font_normal_body">结束日期</label>
|
|
20
|
+
<datepicker placeholder='结束日期' style="width:60%"
|
|
21
|
+
v-model="model.endTime"
|
|
22
|
+
:value.sync="model.endTime"
|
|
23
|
+
:format="'yyyy-MM-dd'"
|
|
24
|
+
:show-reset-button="true"
|
|
25
|
+
condition="f_signature_date <= '{} 23:59:59'">
|
|
26
|
+
</datepicker>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div style="float: right">
|
|
30
|
+
<button @click="search()" class="button_search" style="margin-right: 10px" v-el:cba>查询</button>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
</criteria>
|
|
38
|
+
<data-grid :model="model" class="list_area table_sy" class="list_area table_sy" partial='list' v-ref:grid>
|
|
39
|
+
<template partial='head'>
|
|
40
|
+
<tr>
|
|
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
|
+
</tr>
|
|
50
|
+
</template>
|
|
51
|
+
<template partial='body' partial='list' v-ref:grid>
|
|
52
|
+
<tr >
|
|
53
|
+
<td style="text-align:center">{{ row.f_userinfo_code }}</td>
|
|
54
|
+
<td style="text-align:center">{{ row.f_user_name }}</td>
|
|
55
|
+
<td style="text-align:center">{{ row.f_address }}</td>
|
|
56
|
+
<td style="text-align:center">{{ row.f_contract_name }}</td>
|
|
57
|
+
<td style="text-align:center">{{ row.f_signature_state }}</td>
|
|
58
|
+
<td style="text-align:center">{{ row.f_signature_date }}</td>
|
|
59
|
+
<td style="text-align:center">{{ row.f_user_name_not }}</td>
|
|
60
|
+
<td style="text-align:center"><button type="button" name="button" class="btn btn-link" @click="$parent.$parent.$parent.showExplain(row)">合同预览</button></td>
|
|
61
|
+
</tr>
|
|
62
|
+
</template>
|
|
63
|
+
<template partial='foot'></template>
|
|
64
|
+
</data-grid>
|
|
65
|
+
</criteria-paged>
|
|
66
|
+
</div>
|
|
67
|
+
<modal v-if="explainShow" :show.sync="explainShow" :title="titleL" style="height: 1000px" :width="1000" v-ref:model backdrop="false">
|
|
68
|
+
<article slot="modal-body" class="modal-body">
|
|
69
|
+
<iframe id="myIframe" :src="pdfPath" style="width: 100%;height: 500px"></iframe>
|
|
70
|
+
</article>
|
|
71
|
+
<div slot="modal-footer" class="modal-footer">
|
|
72
|
+
<button type="button" class="btn btn-default" @click="printPDF">打印</button>
|
|
73
|
+
<button type="button" class="btn btn-default" @click="close()">关闭</button>
|
|
74
|
+
</div>
|
|
75
|
+
</modal>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
</template>
|
|
79
|
+
|
|
80
|
+
<script>
|
|
81
|
+
import {PagedList} from 'vue-client'
|
|
82
|
+
export default {
|
|
83
|
+
title: '合同查看',
|
|
84
|
+
data () {
|
|
85
|
+
return {
|
|
86
|
+
condition: `f_userinfo_id = '${this.row.f_userinfo_id}'`,
|
|
87
|
+
model: new PagedList('rs/sql/getContractSigin', 20, {}),
|
|
88
|
+
explainShow: false,
|
|
89
|
+
pdfPath: null,
|
|
90
|
+
prPdf: null,
|
|
91
|
+
titleL: null
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
props: ['row'],
|
|
95
|
+
ready () {
|
|
96
|
+
this.$refs.paged.$refs.criteria.search()
|
|
97
|
+
},
|
|
98
|
+
methods: {
|
|
99
|
+
printPDF () {
|
|
100
|
+
window.open(this.prPdf, '_blank')
|
|
101
|
+
},
|
|
102
|
+
async search () {
|
|
103
|
+
this.condition = `f_userinfo_id = '${this.row.f_userinfo_id}'`
|
|
104
|
+
this.model.search(this.condition, this.model)
|
|
105
|
+
},
|
|
106
|
+
showExplain (row) {
|
|
107
|
+
this.pdfPath = row.f_visit_url + '#toolbar=0'
|
|
108
|
+
this.prPdf = row.f_visit_url
|
|
109
|
+
this.titleL = row.f_contract_name
|
|
110
|
+
this.explainShow = true
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
computed: {
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
</script>
|
|
117
|
+
|
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
</template>
|
|
11
11
|
|
|
12
12
|
<script>
|
|
13
|
-
import MbpeopleList from './MbpeopleList'
|
|
14
13
|
import AddTobook from './AddTobook'
|
|
15
14
|
import {HttpResetClass} from 'vue-client'
|
|
16
15
|
|
|
17
16
|
export default {
|
|
18
17
|
name: 'meterbookEntry',
|
|
19
|
-
components: {AddTobook
|
|
18
|
+
components: {AddTobook},
|
|
20
19
|
title: '添加用户到抄表册',
|
|
21
20
|
data () {
|
|
22
21
|
return {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<input type="text" class="input_search" style="width:60%" v-show="false" v-model="$refs.brand.selectedItems"
|
|
12
12
|
v-validate:brand='{required: true }'>
|
|
13
13
|
<v-select :value.sync="row.gasbrand" :options='meterbrands' placeholder='气表品牌' close-on-select
|
|
14
|
-
search @change='brandChange' v-model='row.gasbrand' :disabled="curuser.f_user_state != '预备'" v-ref:brand></v-select>
|
|
14
|
+
search @change='brandChange' v-model='row.gasbrand' :disabled="curuser.f_user_state != '预备' && row.f_meter_classify != '机表'" v-ref:brand></v-select>
|
|
15
15
|
</div>
|
|
16
16
|
<div class="col-sm-4 form-group" :class="[$m.model.required ? 'has-error' : '']">
|
|
17
17
|
<label for="gasmodel" class="font_normal_body">气表型号</label>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
v-validate:model='{required: true }'>
|
|
20
20
|
<v-select :value.sync="row.gasmodel" :options='row.gasbrand[0].gasmodel' placeholder='气表型号'
|
|
21
21
|
close-on-select
|
|
22
|
-
v-model='row.gasmodel' :disabled="row.gasbrand.length === 0 || curuser.f_user_state != '预备'" v-ref:model></v-select>
|
|
22
|
+
v-model='row.gasmodel' :disabled="(row.gasbrand.length === 0 || curuser.f_user_state != '预备') && row.f_meter_classify != '机表'" v-ref:model></v-select>
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
25
|
<div class="col-sm-4 form-group" v-if="isiot" :class="[$m.f_meternumber.required ? 'has-error' : '']">
|
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id='MbpeopleList' class="flex">
|
|
3
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
4
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
5
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="col-sm-3 form-group">
|
|
8
|
+
<label class="font_normal_body">用户编号</label>
|
|
9
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_userinfo_code"
|
|
10
|
+
condition="f_userinfo_code = '{}'" placeholder='用户编号'>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="col-sm-3 form-group">
|
|
13
|
+
<label class="font_normal_body">用户姓名</label>
|
|
14
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_user_name"
|
|
15
|
+
condition="f_user_name like '%{}%'" placeholder='用户姓名'>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<div class="form-group button-range" style="float: right">
|
|
19
|
+
<button class="button_search button_spacing" @click="$parent.$parent.search()">查询</button>
|
|
20
|
+
<button class="button_clear button_spacing" @click="clear">清空</button>
|
|
21
|
+
<!-- <button class="button_export button_spacing" @click="$parent.$parent.importFile">导入</button>-->
|
|
22
|
+
<!-- <export-excel-->
|
|
23
|
+
<!-- :data="{condition:$parent.$parent.condition}"-->
|
|
24
|
+
<!-- :field="$parent.$parent.getfield"-->
|
|
25
|
+
<!-- sqlurl="rs/logic/exportfile" sql-name="salembPeopleList" template-name='表册用户导出'-->
|
|
26
|
+
<!-- :choose-col="true"></export-excel>-->
|
|
27
|
+
<div style="float: right" class="button_spacing"
|
|
28
|
+
:class="{'button_shrink_top': $parent.$parent.criteriaShow,'button_shrink_bottom': !$parent.$parent.criteriaShow}"
|
|
29
|
+
@click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
33
|
+
<div class="col-sm-3 form-group">
|
|
34
|
+
<label class="font_normal_body"> 小 区 域</label>
|
|
35
|
+
<v-select :value.sync="model.f_small_area" v-model="model.f_small_area"
|
|
36
|
+
:options='$parent.$parent.smallareas' placeholder='小区域'
|
|
37
|
+
close-on-select :search='true'
|
|
38
|
+
condition="f_small_area = '{}'"></v-select>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="form-group col-sm-3">
|
|
41
|
+
<label class="font_normal_body">用户电话</label>
|
|
42
|
+
<input type="text" class="form-control" v-model="model.f_user_phone" placeholder='用户电话'
|
|
43
|
+
condition="f_user_phone like '%{}%'" v-next-el='yhxm' style="width: 60%"
|
|
44
|
+
>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="form-group col-sm-3">
|
|
47
|
+
<label class="font_normal_body">客户类型</label>
|
|
48
|
+
<v-select :options='$parent.$parent.user_type' :value.sync="model.f_user_type"
|
|
49
|
+
close-on-select condition="f_user_type='{}'"
|
|
50
|
+
placeholder='用户类型' v-model="model.f_user_type"></v-select>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="form-group col-sm-3">
|
|
53
|
+
<label class="font_normal_body">客户状态</label>
|
|
54
|
+
<v-select :options='$parent.$parent.user_state' :value.sync="model.f_user_state"
|
|
55
|
+
close-on-select condition="f_user_state = '{}'"
|
|
56
|
+
placeholder='客户状态' v-model="model.f_user_state"></v-select>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="col-sm-3 form-group">
|
|
59
|
+
<label class="font_normal_body">所属表册</label>
|
|
60
|
+
<v-select :value.sync="model.f_meter_book_num" v-model="model.f_meter_book_num"
|
|
61
|
+
:options='$parent.$parent.meterbooks' placeholder='抄表册'
|
|
62
|
+
:value-single="true"
|
|
63
|
+
condition="f_meter_book_num='{}'"
|
|
64
|
+
style="width:60%"
|
|
65
|
+
close-on-select></v-select>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="col-sm-3 form-group">
|
|
68
|
+
<label class="font_normal_body">抄 表 员 </label>
|
|
69
|
+
<v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
|
|
70
|
+
style="width:60%"
|
|
71
|
+
multiple="true"
|
|
72
|
+
condition="f_inputtor in {}"
|
|
73
|
+
:options='$parent.$parent.inputtores' placeholder='抄表员'
|
|
74
|
+
close-on-select
|
|
75
|
+
v-el:cc></v-select>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="col-sm-3 form-group">
|
|
78
|
+
<label class="font_normal_body">表箱号 </label>
|
|
79
|
+
<!-- <input style="width:60%" type="text" class="form-control" v-model="model.f_adjustable_id"-->
|
|
80
|
+
<!-- condition="f_adjustable_id like '%{}%'" placeholder='调压箱号'-->
|
|
81
|
+
<!-- >-->
|
|
82
|
+
<input style="width:60%" type="text" class="form-control" v-model="model.f_metertitles"
|
|
83
|
+
condition="f_metertitles like '%{}%'" placeholder='表箱号'
|
|
84
|
+
>
|
|
85
|
+
<!-- <v-select :value.sync="model.f_adjustable_id" v-model="model.f_adjustable_id"-->
|
|
86
|
+
<!-- :options='$parent.$parent.adjustables' placeholder='调压箱号'-->
|
|
87
|
+
<!-- :value-single="true"-->
|
|
88
|
+
<!-- condition="f_adjustable_id='{}'"-->
|
|
89
|
+
<!-- style="width:60%"-->
|
|
90
|
+
<!-- close-on-select></v-select>-->
|
|
91
|
+
</div>
|
|
92
|
+
<div class="form-group col-sm-3">
|
|
93
|
+
<label class="font_normal_body">用气性质</label>
|
|
94
|
+
<v-select :options='$parent.$parent.gasproperties' :value.sync="model.f_gasproperties"
|
|
95
|
+
close-on-select condition="f_gasproperties='{}'"
|
|
96
|
+
placeholder='用气性质' v-model="model.f_gasproperties"></v-select>
|
|
97
|
+
</div>
|
|
98
|
+
<div class="form-group col-sm-3">
|
|
99
|
+
<label class="font_normal_body">气表类型</label>
|
|
100
|
+
<v-select :options='$parent.$parent.meter_classify' :value.sync="model.f_meter_classify"
|
|
101
|
+
close-on-select condition="f_meter_classify='{}'"
|
|
102
|
+
placeholder='气表类型' v-model="model.f_meter_classify"></v-select>
|
|
103
|
+
</div>
|
|
104
|
+
<div class="col-sm-3 form-group">
|
|
105
|
+
<label class="font_normal_body">气表品牌</label>
|
|
106
|
+
<v-select :value.sync="model.f_meter_brand" multiple
|
|
107
|
+
v-model="model.f_meter_brand"
|
|
108
|
+
:options='$parent.$parent.meterbrands' placeholder='请选择'
|
|
109
|
+
condition="f_meter_brand in {}"
|
|
110
|
+
close-on-select></v-select>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="col-sm-3 form-group">
|
|
113
|
+
<label class="font_normal_body">小 区 </label>
|
|
114
|
+
<input type="text" class="input_search" v-model="model.f_residential_area" style="width: 60%"
|
|
115
|
+
condition=" f_residential_area like '{}%'" placeholder="输入小区">
|
|
116
|
+
</div>
|
|
117
|
+
<div class="form-group col-sm-3">
|
|
118
|
+
<label class="font_normal_body">客户地址</label>
|
|
119
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_address"
|
|
120
|
+
condition="f_address like '%{}%'" placeholder='客户地址'>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="col-sm-3 form-group">
|
|
123
|
+
<label class="font_normal_body">楼 号 </label>
|
|
124
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_building"
|
|
125
|
+
condition="f_building = '{}'" placeholder='楼号'>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="form-group col-sm-3">
|
|
128
|
+
<label class="font_normal_body">组织机构</label>
|
|
129
|
+
<res-select :initresid='$parent.$parent.curorgid'
|
|
130
|
+
@res-select="$parent.$parent.getorg"
|
|
131
|
+
class="select select_list"
|
|
132
|
+
restype='organization' :is-mul="false"
|
|
133
|
+
style="width: 60%">
|
|
134
|
+
</res-select>
|
|
135
|
+
</div>
|
|
136
|
+
<div class="form-group col-sm-3">
|
|
137
|
+
<label class="font_normal_body">是否在册</label>
|
|
138
|
+
<v-select :options='$parent.$parent.whether_list'
|
|
139
|
+
:value.sync="model.f_book_name"
|
|
140
|
+
v-model="model.f_book_name"
|
|
141
|
+
close-on-select condition="f_book_name {}"
|
|
142
|
+
placeholder='是否在册'></v-select>
|
|
143
|
+
</div>
|
|
144
|
+
<div class="col-sm-3 form-group">
|
|
145
|
+
<label class="font_normal_body">入户证号</label>
|
|
146
|
+
<input style="width:60%" type="text" class="form-control" v-model="model.f_book_no"
|
|
147
|
+
condition="f_book_no like '%{}%'" placeholder='入户证号'
|
|
148
|
+
>
|
|
149
|
+
</div>
|
|
150
|
+
<div class="col-sm-3 form-group">
|
|
151
|
+
<label class="font_normal_body">表 号 </label>
|
|
152
|
+
<input style="width:60%" type="text" class="form-control" v-model="model.f_meternumber"
|
|
153
|
+
condition="f_meternumber like '%{}%'" placeholder='表号'
|
|
154
|
+
>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
</criteria>
|
|
159
|
+
<data-grid class="list_area table_sy" :model="model" partial='list' v-ref:grid :optional="true">
|
|
160
|
+
<template partial='head'>
|
|
161
|
+
<!--<th>-->
|
|
162
|
+
<!--<input type="checkbox" id="f_operator" v-model="$parent.$parent.$parent.all[model.pageIndex-1]"-->
|
|
163
|
+
<!--@change="$parent.$parent.$parent.select()"/>-->
|
|
164
|
+
<!--</th>-->
|
|
165
|
+
<th>
|
|
166
|
+
<nobr>序号</nobr>
|
|
167
|
+
</th>
|
|
168
|
+
<th>
|
|
169
|
+
<nobr>客户编号</nobr>
|
|
170
|
+
</th>
|
|
171
|
+
<th>
|
|
172
|
+
<nobr>客户名称</nobr>
|
|
173
|
+
</th>
|
|
174
|
+
<th>
|
|
175
|
+
<nobr>客户状态</nobr>
|
|
176
|
+
</th>
|
|
177
|
+
<th>
|
|
178
|
+
<nobr>客户地址</nobr>
|
|
179
|
+
</th>
|
|
180
|
+
<th>
|
|
181
|
+
<nobr>表号</nobr>
|
|
182
|
+
</th>
|
|
183
|
+
<th>
|
|
184
|
+
<nobr>所属表册</nobr>
|
|
185
|
+
</th>
|
|
186
|
+
<th>
|
|
187
|
+
<nobr>抄表员</nobr>
|
|
188
|
+
</th>
|
|
189
|
+
<th>
|
|
190
|
+
<nobr>抄表日期</nobr>
|
|
191
|
+
</th>
|
|
192
|
+
<th>
|
|
193
|
+
<nobr>客户类型</nobr>
|
|
194
|
+
</th>
|
|
195
|
+
<th>
|
|
196
|
+
<nobr>表底数</nobr>
|
|
197
|
+
</th>
|
|
198
|
+
</template>
|
|
199
|
+
<template partial='body'>
|
|
200
|
+
<!--<td>-->
|
|
201
|
+
<!--<input :id="'body'+model.pageIndex" type='checkbox' @change="$parent.$parent.$parent.selectOne($event,row,$index)"-->
|
|
202
|
+
<!--:checked="$parent.$parent.$parent.ischecked(model.pageIndex-1,$index)"/>-->
|
|
203
|
+
<!--</td>-->
|
|
204
|
+
<td>
|
|
205
|
+
<nobr>{{ $index + 1 }}</nobr>
|
|
206
|
+
</td>
|
|
207
|
+
<td>
|
|
208
|
+
<nobr>{{ row.f_userinfo_code }}</nobr>
|
|
209
|
+
</td>
|
|
210
|
+
<td>
|
|
211
|
+
<nobr>{{ row.f_user_name }}</nobr>
|
|
212
|
+
</td>
|
|
213
|
+
<td>
|
|
214
|
+
<nobr>{{ row.f_user_state }}</nobr>
|
|
215
|
+
</td>
|
|
216
|
+
<td>
|
|
217
|
+
<nobr>{{ row.f_address }}</nobr>
|
|
218
|
+
</td>
|
|
219
|
+
<td>
|
|
220
|
+
<nobr>{{ row.f_meternumber }}</nobr>
|
|
221
|
+
</td>
|
|
222
|
+
<td>
|
|
223
|
+
<nobr>{{ row.f_book_name }}</nobr>
|
|
224
|
+
</td>
|
|
225
|
+
<td>
|
|
226
|
+
<nobr>{{ row.f_inputtor }}</nobr>
|
|
227
|
+
</td>
|
|
228
|
+
<!-- <td>-->
|
|
229
|
+
<!-- <nobr>{{ row.f_adjustable_id }}</nobr>-->
|
|
230
|
+
<!-- </td>-->
|
|
231
|
+
<td>
|
|
232
|
+
<nobr>{{ row.f_hand_date }}</nobr>
|
|
233
|
+
</td>
|
|
234
|
+
<td>
|
|
235
|
+
<nobr>{{ row.f_user_type }}</nobr>
|
|
236
|
+
</td>
|
|
237
|
+
<td>
|
|
238
|
+
<nobr>{{ row.f_meter_base }}</nobr>
|
|
239
|
+
</td>
|
|
240
|
+
</template>
|
|
241
|
+
</data-grid>
|
|
242
|
+
</criteria-paged>
|
|
243
|
+
</div>
|
|
244
|
+
<modal :show.sync="show" width="500px" title="文件导入" v-ref:modal large backdrop="false">
|
|
245
|
+
<article slot="modal-body" class="modal-body">
|
|
246
|
+
<file-upload class="my-file-uploader " name="UploadFile" style="border-radius: 2px;"
|
|
247
|
+
action="rs/file/uploadFile" tagname="导入表册用户" v-ref:file multiple></file-upload>
|
|
248
|
+
</article>
|
|
249
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
250
|
+
</footer>
|
|
251
|
+
</modal>
|
|
252
|
+
</template>
|
|
253
|
+
|
|
254
|
+
<script>
|
|
255
|
+
import {PagedList} from 'vue-client'
|
|
256
|
+
import Vue from 'vue'
|
|
257
|
+
|
|
258
|
+
let loadParamGem = async function (self) {
|
|
259
|
+
await self.$LoadParams.loadParam()
|
|
260
|
+
self.getfield = self.config.excelHeaders
|
|
261
|
+
// self.$refs.paged.$refs.cri.model.f_meter_classify = ['机表']
|
|
262
|
+
self.$refs.paged.$refs.cri.model.f_book_name = ['is null']
|
|
263
|
+
await self.initAdjustables()
|
|
264
|
+
// await self.search()
|
|
265
|
+
}
|
|
266
|
+
export default {
|
|
267
|
+
name: 'MbpeopleList',
|
|
268
|
+
data() {
|
|
269
|
+
return {
|
|
270
|
+
orgCondtionStr: '',
|
|
271
|
+
f_filialeid: this.$login.f.orgid,
|
|
272
|
+
f_orgid: '',
|
|
273
|
+
invoiceuse: [{label: '是', value: 'is not null'}, {label: '否', value: 'is null'}],
|
|
274
|
+
model: new PagedList('rs/sql/mb_peopleList', 20),
|
|
275
|
+
f_orgstr: this.$login.f.orgid,
|
|
276
|
+
// 要操作的用户
|
|
277
|
+
rowsdata: [],
|
|
278
|
+
aaa: '',
|
|
279
|
+
// 控制全选
|
|
280
|
+
all: [],
|
|
281
|
+
// 控制单选
|
|
282
|
+
radio: [],
|
|
283
|
+
show: false,
|
|
284
|
+
meterbooks: [{label: '全部', value: ''}],
|
|
285
|
+
criteriaShow: false,
|
|
286
|
+
gasproperties: this.$appdata.getParam('用气性质') ? [{
|
|
287
|
+
label: '全部',
|
|
288
|
+
value: ''
|
|
289
|
+
}, ...this.$appdata.getParam('用气性质')] : [],
|
|
290
|
+
user_type: this.$appdata.getParam('用户类型') ? [{
|
|
291
|
+
label: '全部',
|
|
292
|
+
value: ''
|
|
293
|
+
}, ...this.$appdata.getParam('用户类型')] : [],
|
|
294
|
+
meter_classify: this.$appdata.getParam('气表类型') ? [{
|
|
295
|
+
label: '全部',
|
|
296
|
+
value: ''
|
|
297
|
+
}, ...this.$appdata.getParam('气表类型')] : [],
|
|
298
|
+
f_small_areas: this.$appdata.getParam('小区域') ? [{
|
|
299
|
+
label: '全部',
|
|
300
|
+
value: ''
|
|
301
|
+
}, ...this.$appdata.getParam('小区域')] : [],
|
|
302
|
+
user_state: [{label: '正常', value: '正常'}, {label: '预备', value: '预备'}, {label: '销户', value: '销户'}],
|
|
303
|
+
whether_list: [{label: '已在册内', value: 'is not null'}, {label: '不在册内', value: 'is null'}],
|
|
304
|
+
meterbrands: [],
|
|
305
|
+
condition: '',
|
|
306
|
+
adjustables: [],
|
|
307
|
+
unnullrowdata: [],
|
|
308
|
+
getfield: {},
|
|
309
|
+
config: {
|
|
310
|
+
// 导出列要和查询列相同
|
|
311
|
+
excelHeaders: {
|
|
312
|
+
'f_userfiles_id': '系统识别号',
|
|
313
|
+
'f_userinfo_code': '用户编号',
|
|
314
|
+
'f_user_name': '用户姓名',
|
|
315
|
+
'f_address': '用户地址'
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
curorgid: [this.$login.f.orgid]
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
created() {
|
|
322
|
+
},
|
|
323
|
+
ready() {
|
|
324
|
+
loadParamGem(this)
|
|
325
|
+
},
|
|
326
|
+
methods: {
|
|
327
|
+
async meterbook() {
|
|
328
|
+
this.meterbooks = []
|
|
329
|
+
if (this.f_orgid == '') {
|
|
330
|
+
this.f_orgid = this.$login.f.orgid
|
|
331
|
+
}
|
|
332
|
+
let res = await this.$resetpost('rs/sql/saleSingleTable', {
|
|
333
|
+
data: {
|
|
334
|
+
tablename: 't_meter_book',
|
|
335
|
+
condition: ` 1=1 and f_orgid='${this.f_orgid}' and f_book_state='有效'`
|
|
336
|
+
}
|
|
337
|
+
}, {resolveMsg: null, rejectMsg: null})
|
|
338
|
+
for (let i = 0; i < res.data.length; i++) {
|
|
339
|
+
console.log('res', res.data[i])
|
|
340
|
+
let temp = []
|
|
341
|
+
temp.label = res.data[i].f_book_name
|
|
342
|
+
temp.value = res.data[i].id
|
|
343
|
+
this.meterbooks.push(temp)
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
invoiceuseChange(val) {
|
|
347
|
+
// 查询已开票记录清空选项
|
|
348
|
+
if (val == 'is not null') {
|
|
349
|
+
this.rowsdata = []
|
|
350
|
+
this.radio = []
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
|
|
354
|
+
select() {
|
|
355
|
+
let index = this.model.pageIndex - 1
|
|
356
|
+
console.log('全选', this.all[index])
|
|
357
|
+
if (!this.radio[index]) {
|
|
358
|
+
this.radio.$set(index, [])
|
|
359
|
+
}
|
|
360
|
+
if (this.all[index]) {
|
|
361
|
+
// 数据
|
|
362
|
+
this.rowsdata[index] = Object.assign([], this.model.rows)
|
|
363
|
+
// 勾选
|
|
364
|
+
for (var i = 0; i < this.model.rows.length; i++) {
|
|
365
|
+
this.radio[index].$set(i, true)
|
|
366
|
+
}
|
|
367
|
+
} else {
|
|
368
|
+
// 数据
|
|
369
|
+
this.rowsdata[index] = []
|
|
370
|
+
// 不勾选
|
|
371
|
+
for (var i = 0; i < this.model.rows.length; i++) {
|
|
372
|
+
this.radio[index].$set(i, false)
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
this.mergeRowData()
|
|
376
|
+
},
|
|
377
|
+
importFile() {
|
|
378
|
+
this.show = true
|
|
379
|
+
},
|
|
380
|
+
async initAdjustables() {
|
|
381
|
+
let arr = []
|
|
382
|
+
let filter = this.$login.f.orgid
|
|
383
|
+
this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
|
|
384
|
+
let temp = {}
|
|
385
|
+
temp.label = '[' + item.value.f_adjustable_id + ']-' + item.label
|
|
386
|
+
temp.value = item.value.id
|
|
387
|
+
arr.push(temp)
|
|
388
|
+
})
|
|
389
|
+
this.adjustables = [{label: '全部', value: ''}, ...arr]
|
|
390
|
+
// 初始化气表品牌
|
|
391
|
+
let brandArr = []
|
|
392
|
+
this.$GetSaleParam.getGasbrand().forEach((item) => {
|
|
393
|
+
let temp1 = {}
|
|
394
|
+
temp1.label = item.label
|
|
395
|
+
temp1.value = item.value.f_meter_brand
|
|
396
|
+
brandArr.push(temp1)
|
|
397
|
+
})
|
|
398
|
+
this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
|
|
399
|
+
//
|
|
400
|
+
// // 加载抄表册
|
|
401
|
+
// console.log("------------------this.$GetSaleParam.getMeterBooks()",this.$GetSaleParam.getMeterBooks())
|
|
402
|
+
// this.meterbooks = [{label: '全部', value: ''}, ...this.$GetSaleParam.getMeterBooks()]
|
|
403
|
+
},
|
|
404
|
+
search() {
|
|
405
|
+
this.$refs.paged.$refs.cri.search()
|
|
406
|
+
console.log('mbpeople this = ', this)
|
|
407
|
+
},
|
|
408
|
+
selfSearch(args) {
|
|
409
|
+
let f_orgstr = this.orgCondtionStr ? this.orgCondtionStr : "and f_orgid in ('" + this.f_orgid + "')"
|
|
410
|
+
args.condition = `${args.condition} ` + f_orgstr
|
|
411
|
+
// args.condition += ` and f_orgid = ${this.f_orgstr}`
|
|
412
|
+
this.condition = args.condition
|
|
413
|
+
this.$parent.condition = this.condition
|
|
414
|
+
this.model.search(args.condition, args.model)
|
|
415
|
+
},
|
|
416
|
+
// 合并二维数组并去空
|
|
417
|
+
mergeRowData() {
|
|
418
|
+
console.log('!!!!!!!!!!!!!数组去空', this.rowsdata)
|
|
419
|
+
let data = []
|
|
420
|
+
// 合并
|
|
421
|
+
for (let array of this.rowsdata) {
|
|
422
|
+
data.push.apply(data, array)
|
|
423
|
+
}
|
|
424
|
+
// 去空
|
|
425
|
+
// 拓展数组去空值的方法
|
|
426
|
+
Array.prototype.removeEmpty = function () {
|
|
427
|
+
for (var i = 0; i < this.length; i++) {
|
|
428
|
+
if (this[i] == '' || typeof (this[i]) == 'undefined') {
|
|
429
|
+
this.splice(i, 1)
|
|
430
|
+
i--
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
return this
|
|
434
|
+
}
|
|
435
|
+
data = data.removeEmpty()
|
|
436
|
+
this.unnullrowdata = []
|
|
437
|
+
data.forEach((row) => {
|
|
438
|
+
this.unnullrowdata.push(row.f_userfiles_id + '')
|
|
439
|
+
})
|
|
440
|
+
this.$parent.rowsdata = this.unnullrowdata
|
|
441
|
+
// this.$parent.rowsdata = this.rowsdata
|
|
442
|
+
},
|
|
443
|
+
selectOne(event, row, i) {
|
|
444
|
+
console.log('单选', event.target.checked)
|
|
445
|
+
let index = this.model.pageIndex - 1
|
|
446
|
+
if (!this.rowsdata[index]) {
|
|
447
|
+
this.rowsdata[index] = []
|
|
448
|
+
}
|
|
449
|
+
if (!this.radio[index]) {
|
|
450
|
+
this.radio.$set(index, [])
|
|
451
|
+
}
|
|
452
|
+
if (event.target.checked) {
|
|
453
|
+
// 数据
|
|
454
|
+
this.rowsdata[index][i] = row
|
|
455
|
+
// 勾选
|
|
456
|
+
this.radio[index].$set(i, true)
|
|
457
|
+
// 判断是否全部选中
|
|
458
|
+
var allState = true
|
|
459
|
+
if (this.model.rows.length != this.radio[index].length) {
|
|
460
|
+
allState = false
|
|
461
|
+
}
|
|
462
|
+
for (var state of this.radio[index]) {
|
|
463
|
+
if (!state) {
|
|
464
|
+
allState = false
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
if (allState) {
|
|
468
|
+
this.all.$set(index, true)
|
|
469
|
+
} else {
|
|
470
|
+
this.all.$set(index, false)
|
|
471
|
+
}
|
|
472
|
+
} else {
|
|
473
|
+
// 数据
|
|
474
|
+
this.rowsdata[index][i] = []
|
|
475
|
+
// 不勾选
|
|
476
|
+
this.radio[index].$set(i, false)
|
|
477
|
+
// 任意取消一个则全选状态设为false
|
|
478
|
+
this.all.$set(index, false)
|
|
479
|
+
}
|
|
480
|
+
this.mergeRowData()
|
|
481
|
+
},
|
|
482
|
+
getorg(val) {
|
|
483
|
+
console.log('getorg:val=', val)
|
|
484
|
+
console.log('getorg:this.f_orgid=', this.f_orgid)
|
|
485
|
+
this.f_orgid = val
|
|
486
|
+
this.f_filialeid = val[0]
|
|
487
|
+
},
|
|
488
|
+
async getmeterbook() {
|
|
489
|
+
await this.meterbook()
|
|
490
|
+
this.$emit('childre', this.meterbooks)
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
computed: {
|
|
494
|
+
ischecked() {
|
|
495
|
+
return function (index, i) {
|
|
496
|
+
if (!this.radio[index]) {
|
|
497
|
+
return false
|
|
498
|
+
}
|
|
499
|
+
return this.radio[index][i]
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
smallareas() {
|
|
503
|
+
return [{label: '全部', value: ''}, ...this.$appdata.getParam('小区域')]
|
|
504
|
+
},
|
|
505
|
+
inputtores() {
|
|
506
|
+
// 获取抄表员
|
|
507
|
+
console.log('获取抄表员', this.$login.f)
|
|
508
|
+
let rs = []
|
|
509
|
+
if (this.$login.f.f_gasman.length > 0) {
|
|
510
|
+
for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
|
|
511
|
+
let temp = {
|
|
512
|
+
label: this.$login.f.f_gasman[i].name,
|
|
513
|
+
value: this.$login.f.f_gasman[i].name
|
|
514
|
+
}
|
|
515
|
+
rs.push(temp)
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
this.inputtores2 = rs
|
|
519
|
+
return [...rs]
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
watch: {
|
|
523
|
+
async 'f_orgid'() {
|
|
524
|
+
this.meterbooks = []
|
|
525
|
+
await this.meterbook()
|
|
526
|
+
this.$emit('childre', this.meterbooks)
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
events: {
|
|
530
|
+
onFileUpload: function (file, res) {
|
|
531
|
+
// let URL = res.f_downloadpath.substring(res.f_downloadpath.lastIndexOf(":\\") + 2)
|
|
532
|
+
// res.f_downloadpath = "http://" + location.host + "/" + URL
|
|
533
|
+
// res.f_downloadpath.replace('\\','/')
|
|
534
|
+
this.$resetpost('rs/logic/upLoadBookFile',
|
|
535
|
+
{
|
|
536
|
+
data: {
|
|
537
|
+
condition: this.condition,
|
|
538
|
+
filepath: res.f_downloadpath
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
{resolveMsg: null, rejectMsg: '上传失败'}).then((res) => {
|
|
542
|
+
this.show = false
|
|
543
|
+
this.$showAlert(`导入成功`, 'success', 2000)
|
|
544
|
+
this.search()
|
|
545
|
+
})
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
</script>
|
|
550
|
+
|
|
551
|
+
<style lang="less">
|
|
552
|
+
#MbpeopleList {
|
|
553
|
+
tr {
|
|
554
|
+
th {
|
|
555
|
+
text-align: center;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
td {
|
|
559
|
+
text-align: center;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
</style>
|
|
@@ -43,4 +43,5 @@ export default function () {
|
|
|
43
43
|
Vue.component('batch-edit-files', (resolve) => { require(['./batch/batchEditFiles'], resolve) })
|
|
44
44
|
// 抄表审核
|
|
45
45
|
Vue.component('meter-read-audit', (resolve) => { require(['./handAudit/MeterReadAudit'], resolve) })
|
|
46
|
+
Vue.component('mbpeople-list', (resolve) => { require(['./MbpeopleList'], resolve) })
|
|
46
47
|
}
|
package/src/sale.js
CHANGED
|
@@ -381,6 +381,7 @@ export default function () {
|
|
|
381
381
|
Vue.component('meterbook-user', (resolve) => { require(['./components/revenue/HandManager/MeterBookUser'], resolve) })
|
|
382
382
|
// 抄表册新增用户管理
|
|
383
383
|
Vue.component('meterbook-entry', (resolve) => { require(['./components/revenue/HandManager/meterbookEntry'], resolve) })
|
|
384
|
+
Vue.component('mbpeople-list', (resolve) => { require(['./components/revenue/HandManager/MbpeopleList'], resolve) })
|
|
384
385
|
// 违约金生成规则(f_end_date规则)
|
|
385
386
|
Vue.component('overdue-set', (resolve) => { require(['./components/revenue/HandManager/OverdueSet'], resolve) })
|
|
386
387
|
Vue.component('overdue-set-list', (resolve) => { require(['./components/revenue/HandManager/OverdueSetList'], resolve) })
|