sale-client 3.6.263 → 3.6.264

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 CHANGED
@@ -1,120 +1,120 @@
1
- {
2
- "name": "sale-client",
3
- "version": "3.6.263",
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.264",
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
+ }
@@ -556,11 +556,12 @@ const myMap = new Map()
556
556
  this.show = true
557
557
  },
558
558
  selfSearch (args) {
559
+ console.log('>>> args = ', args)
559
560
  if (!this.f_orgid) {
560
561
  this.f_orgid = this.$login.f.orgid
561
562
  }
562
563
  let f_orgstr = this.orgCondtionStr ? this.orgCondtionStr : "and h.f_orgid in ('" + this.f_orgid + "')"
563
- args.condValueStr = `${args.condValueStr} ` + f_orgstr
564
+ args.condValueStr = `${args.condValueStr === undefined ? '1=1' : args.condValueStr} ` + f_orgstr
564
565
  this.model.search(args.condition, args.model, args.condValueStr)
565
566
  this.condition = args.condition
566
567
  this.condValueStr = args.condValueStr
@@ -1,329 +1,329 @@
1
- <template>
2
-
3
- <criteria-paged :model="model" v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
5
- <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
6
- <div class="row">
7
- <div class="form-group col-sm-3">
8
- <label class="font_normal_body">用户状态</label>
9
- <v-select id=""
10
- v-model="$parent.$parent.f_whether"
11
- placeholder='用户状态'
12
- :value.sync="$parent.$parent.f_whether"
13
- :options='$parent.$parent.whether'
14
- style="width: 60%"
15
- close-on-select >
16
- </v-select>
17
- </div>
18
- <div class="form-group col-sm-3">
19
- <label class="font_normal_body">气表类型</label>
20
- <v-select :value.sync="model.f_meter_classify" v-model="model.f_meter_classify"
21
- :options='$parent.$parent.meters' placeholder='气表类型'
22
- close-on-select
23
- condition="f_meter_classify = '{}'"
24
- style="width: 60%"
25
- default-value="'机表'">
26
-
27
- </v-select>
28
- </div>
29
- <div class="form-group col-sm-3">
30
- <label class="font_normal_body">用户类型</label>
31
- <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
32
- :options='$parent.$parent.getusertype' placeholder='用户类型'
33
- close-on-select
34
- condition="f_user_type = '{}'"
35
- style="width: 60%">
36
-
37
- </v-select>
38
- </div>
39
-
40
- <div class="span" style="float:right;">
41
- <button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
42
- <button class="button_clear button_spacing width-60" @click="$parent.$parent.arrcreate()">附件上传</button>
43
- <button v-show="$parent.$parent.rollback" class="button_clear button_spacing width-60" @click="$parent.$parent.retrun()" v-el:cba>返回</button>
44
-
45
- <div
46
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
47
- @click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
48
- </div>
49
- </div>
50
- </div>
51
- <div class="row" v-show="$parent.$parent.criteriaShow">
52
-
53
- <div class="col-sm-3 form-group">
54
- <label class="font_normal_body">开始日期</label>
55
- <datepicker placeholder="开始日期"
56
- style="width:60%"
57
- class="datepicker"
58
- v-model="model.startDate"
59
- :value.sync="model.startDate"
60
- :format="'yyyy-MM-dd HH:mm:ss'"
61
- ></datepicker>
62
- </div>
63
- <div class="col-sm-3 form-group">
64
- <label class="font_normal_body">结束日期</label>
65
- <datepicker placeholder="结束日期"
66
- style="width:60%"
67
- v-model="model.endDate"
68
- :value.sync="model.endDate"
69
- :format="'yyyy-MM-dd HH:mm:ss'"
70
- ></datepicker>
71
- </div>
72
- <div class="form-group col-sm-3">
73
- <label class="font_normal_body">用户编号</label>
74
- <input type="text" class="form-control" v-model="model.f_userinfo_code" placeholder='用户编号' v-filter v-figure_filter
75
- condition="f_userinfo_code = '{}'" v-next-el='username' style="width: 60%"
76
- :size="model.f_userinfo_code ? model.f_userinfo_id.length : 4">
77
- </div>
78
- <div class="form-group col-sm-3">
79
- <label class="font_normal_body">用户姓名</label>
80
- <input type="text" class="form-control" v-model="model.f_user_name" placeholder='用户姓名'
81
- condition="f_user_name like '{}'" v-next-el='area' style="width: 60%"
82
- :size="model.f_user_name ? model.f_user_name.length * 2 : 4">
83
- </div>
84
- <div class="form-group col-sm-3">
85
- <label class="font_normal_body">选择小区</label>
86
- <v-select :value.sync="model.f_residential_area" :value-single="true"
87
- class="select_list select"
88
- style="width: 60%"
89
- condition="f_residential_area like '%{}%'"
90
- :options='$parent.$parent.residentialArea' placeholder='选择小区'
91
- close-on-select search="true">
92
- </v-select>
93
- </div>
94
- <div class="form-group col-sm-3">
95
- <label class="font_normal_body">付款类型</label>
96
- <v-select :value.sync="model.f_payment" :value-single="true"
97
- class="select_list select"
98
- v-model="model.f_payment"
99
- style="width: 60%"
100
- :options='$parent.$parent.chonetype' placeholder='付款类型'
101
- condition="f_cost_type like '{}'"
102
- close-on-select search="true">
103
- </v-select>
104
- </div>
105
- <div class="form-group col-sm-3">
106
- <label class="font_normal_body">应交金额</label>
107
- <v-input :value.sync="$parent.f_oughtfee" :expression.sync = 'model.f_oughtfee'
108
- condition="f_oughtfee {}" v-model="model.f_oughtfee" style="width: 60%"
109
- placeholder="应交金额" v-next-el="cx" ></v-input>
110
- </div>
111
- </div>
112
-
113
-
114
-
115
- </div>
116
- </criteria>
117
- <data-grid :model="model" partial='list' class="table_sy" v-ref:grid>
118
- <template partial='head'>
119
- <tr>
120
- <th>
121
- <input type="checkbox" @click="$parent.$parent.$parent.isAll(model.pageIndex)">
122
- </th>
123
- <th>序号</th>
124
- <th>用户编号</th>
125
- <th>用户姓名</th>
126
- <th>身份证号</th>
127
- <th>表号</th>
128
- <th>补贴气量</th>
129
- <th>补贴气量</th>
130
- <th>补贴金额</th>
131
- <th>备注</th>
132
- <th>表具类型</th>
133
- <th>导入时间</th>
134
- <th>充值时间</th>
135
- <th>充值编号</th>
136
- </tr>
137
- </template>
138
- <template partial='body'>
139
- <td style="text-align:center">
140
- <input type="checkbox" v-model="$parent.$parent.$parent.ids"
141
- :value="row.f_userinfo_id">
142
- </td>
143
- <td>{{$index+1}}</td>
144
- <td style="text-align:center">{{row.f_userinfo_id}}&nbsp;&nbsp;{{row.f_user_name}}&nbsp;&nbsp;{{row.f_user_phone}}</td>
145
- <td style="text-align:center">{{row.f_userinfo_code}}</td>
146
- <td style="text-align:center">{{row.f_user_type}}</td>
147
- <td style="text-align:center">{{row.f_residential_area}}</td>
148
- <td style="text-align:center">{{row.f_input_date}}</td>
149
- <td style="text-align:center">{{row.f_last_tablebase.toFixed(2)}}</td>
150
- <td style="text-align:center">{{row.f_tablebase.toFixed(2)}}</td>
151
- <td style="text-align:center">{{row.f_oughtamount.toFixed(2)}}</td>
152
- <td style="text-align:center">{{row.f_oughtfee.toFixed(2)}}</td>
153
- <td style="text-align:center">{{row.f_balance.toFixed(2)}}</td>
154
- <td style="text-align:center">{{row.f_oughtfee_all.toFixed(2)}}</td>
155
- </template>
156
- </data-grid>
157
- </criteria-paged>
158
- <modal :show.sync="batchMeterShow" width="570px" title="文件导入" v-ref:modal large backdrop="false">
159
- <article slot="modal-body" class="modal-body">
160
- <file-upload class="my-file-uploader col-sm-9" name="useraddressUploadFile" action="rs/file/uploadFile"
161
- tagname="确定" multiple v-ref:file></file-upload>
162
- <button class="button_clear btn-gn" style="margin-top: 10px;background-color: #6aa6e2;"
163
- @click="downloadFiles()">模板下载
164
- </button>
165
- </article>
166
- <footer slot="modal-footer" class="modal-footer">
167
- </footer>
168
- </modal>
169
- </template>
170
-
171
- <script>
172
- /**
173
- *阶梯水价查询列表
174
- */
175
- import { PagedList, HttpResetClass } from 'vue-client'
176
- import Vue from 'vue'
177
- import axios from 'axios'
178
- export default {
179
- data () {
180
- return {
181
- model: new PagedList('rs/sql/arrearsQuery', 50, {startDate: 'this.model.startDate', endDate: 'this.model.endDate',condValue:'` 1=1 `',orderitem: '"' + this.orderitem + '"'}),
182
- batchMeterShow: false
183
- }
184
- },
185
- props: {
186
- orderitem: {
187
- type: String,
188
- default: 'p.f_userinfo_id'
189
- },
190
- rollback: false
191
- },
192
- ready () {
193
- this.getaddress()
194
- this.$refs.paged.$refs.cri.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
195
- this.$refs.paged.$refs.cri.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
196
- this.search({condition: `1=1 `, model: this.$refs.paged.$refs.cri.model})
197
- },
198
- watch: {
199
- 'f_whether' (val) {
200
- if (val[0] === '全部') {
201
- this.f_whether = '欠费'
202
- this.$dispatch('all', '全部')
203
- }
204
- }
205
- },
206
- methods: {
207
- downloadFiles() {
208
- let downurl = 'rs/downloadfile/file?filename=政府补贴导入Excel模板'
209
- this.$downFile(downurl, '政府补贴导入Excel模板.xlsx')
210
- },
211
-
212
- search (args) {
213
- args.condition = `${args.condition} and f_orgid = ` + `'${Vue.$login.f.orgid}'`
214
- console.log('查看条件', args.condition)
215
- this.model.search(args.condition, args.model)
216
- },
217
-
218
- arrcreate () {
219
- this.arrshow = true
220
- },
221
- isAll (page) {
222
- if (this.pages.includes(page)) { // 已添加,取消动作
223
- // 从ids中删除本页所有数据的ids
224
- this.addOrRemove(false)
225
- this.pages = this.pages.filter((item) => {
226
- return item !== page
227
- })
228
- } else { // 未添加
229
- this.pages.push(page) // 添加id,添加动作
230
- this.addOrRemove(true)
231
- }
232
- },
233
- addOrRemove (is) {
234
- let that = this
235
- if (is) { // 添加本页所有数据到ids中
236
- this.model.rows.forEach((row) => {
237
- if (!that.ids.includes(row.f_userinfo_id)) {
238
- that.ids.push(row.f_userinfo_id)
239
- }
240
- })
241
- } else { // 从ids中取消所有的数据
242
- this.model.rows.forEach((row) => {
243
- that.ids = that.ids.filter((item) => {
244
- return item !== row.f_userinfo_id
245
- })
246
- })
247
- }
248
- }
249
- },
250
- computed: {
251
-
252
- },
253
- events:{
254
- 'onFileUpload': async function (file, res) {
255
- if (this.batchMeterShow) {
256
- this.iswork = true
257
- // 当前上传的是批量导入的档案
258
- let param = {
259
- filepath: res.f_downloadpath,
260
- f_operator: this.$login.f.name,
261
- f_operatorid: this.$login.f.id,
262
- f_orgid: this.$login.f.orgid,
263
- f_orgname: this.$login.f.orgs,
264
- f_depid: this.$login.f.depids,
265
- f_depname: this.$login.f.deps
266
- }
267
- let self = this
268
- try {
269
- await axios.post('rs/logic/newSettleFileImport',
270
- {data: param}, {timeout: 10 * 60 * 1000}).then((res) => {
271
- if (res.data) {
272
- self.$showMessage(`本次上传共上传${res.data.totalsum}条数据, 成功${res.data.successnum}条,失败${res.data.errorsum}条,具体失败数据请在稽查查询错误查询中查看!!`)
273
- self.iswork = false
274
- // this.$showAlert('导入成功','success',2000)
275
- }
276
- })
277
- } catch (error) {
278
- if (error.response) {
279
- if (error.response.status == 500) {
280
- this.$showAlert('服务繁忙,请重试!!!', 'danger', 3000)
281
- } else if (error.response.status == 404) {
282
- this.$showAlert('服务运行中,请耐心等待后进行重试!!', 'danger', 3000)
283
- } else {
284
- this.$showAlert(error.response.data, 'danger', 2000)
285
- }
286
- console.log(error.response.data)
287
- console.log(error.response.status)
288
- console.log(error.response.headers)
289
- } else if (error.request) {
290
- console.log(error.request)
291
- this.$showAlert(error.request, 'danger', 2000)
292
- } else {
293
- console.log('Error', error.message)
294
- this.$showAlert(error.message, 'danger', 2000)
295
- }
296
- this.iswork = false
297
- }
298
- this.batchMeterShow = false
299
- // this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
300
- this.search()
301
- } else {
302
- let data = {
303
- tablename: 't_userinfo',
304
- filepath: res.f_downloadpath,
305
- f_operator: this.$login.f.name,
306
- f_operatorid: this.$login.f.id,
307
- f_orgid: this.$login.f.orgid,
308
- f_orgname: this.$login.f.orgs,
309
- f_depid: this.$login.f.depids,
310
- f_depname: this.$login.f.deps
311
- }
312
- this.$resetpost('rs/logic/sale_userfilesImp', {data: data}, {
313
- resolveMsg: null,
314
- rejectMsg: '上传失败'
315
- }).then((res) => {
316
- this.show = false
317
- this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
318
- this.search()
319
- })
320
- }
321
- },
322
- }
323
- }
324
- </script>
325
- <style>
326
- .form-group{
327
- height: 30px;
328
- }
329
- </style>
1
+ <template>
2
+
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
5
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
6
+ <div class="row">
7
+ <div class="form-group col-sm-3">
8
+ <label class="font_normal_body">用户状态</label>
9
+ <v-select id=""
10
+ v-model="$parent.$parent.f_whether"
11
+ placeholder='用户状态'
12
+ :value.sync="$parent.$parent.f_whether"
13
+ :options='$parent.$parent.whether'
14
+ style="width: 60%"
15
+ close-on-select >
16
+ </v-select>
17
+ </div>
18
+ <div class="form-group col-sm-3">
19
+ <label class="font_normal_body">气表类型</label>
20
+ <v-select :value.sync="model.f_meter_classify" v-model="model.f_meter_classify"
21
+ :options='$parent.$parent.meters' placeholder='气表类型'
22
+ close-on-select
23
+ condition="f_meter_classify = '{}'"
24
+ style="width: 60%"
25
+ default-value="'机表'">
26
+
27
+ </v-select>
28
+ </div>
29
+ <div class="form-group col-sm-3">
30
+ <label class="font_normal_body">用户类型</label>
31
+ <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
32
+ :options='$parent.$parent.getusertype' placeholder='用户类型'
33
+ close-on-select
34
+ condition="f_user_type = '{}'"
35
+ style="width: 60%">
36
+
37
+ </v-select>
38
+ </div>
39
+
40
+ <div class="span" style="float:right;">
41
+ <button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
42
+ <button class="button_clear button_spacing width-60" @click="$parent.$parent.arrcreate()">附件上传</button>
43
+ <button v-show="$parent.$parent.rollback" class="button_clear button_spacing width-60" @click="$parent.$parent.retrun()" v-el:cba>返回</button>
44
+
45
+ <div
46
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
47
+ @click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <div class="row" v-show="$parent.$parent.criteriaShow">
52
+
53
+ <div class="col-sm-3 form-group">
54
+ <label class="font_normal_body">开始日期</label>
55
+ <datepicker placeholder="开始日期"
56
+ style="width:60%"
57
+ class="datepicker"
58
+ v-model="model.startDate"
59
+ :value.sync="model.startDate"
60
+ :format="'yyyy-MM-dd HH:mm:ss'"
61
+ ></datepicker>
62
+ </div>
63
+ <div class="col-sm-3 form-group">
64
+ <label class="font_normal_body">结束日期</label>
65
+ <datepicker placeholder="结束日期"
66
+ style="width:60%"
67
+ v-model="model.endDate"
68
+ :value.sync="model.endDate"
69
+ :format="'yyyy-MM-dd HH:mm:ss'"
70
+ ></datepicker>
71
+ </div>
72
+ <div class="form-group col-sm-3">
73
+ <label class="font_normal_body">用户编号</label>
74
+ <input type="text" class="form-control" v-model="model.f_userinfo_code" placeholder='用户编号' v-filter v-figure_filter
75
+ condition="f_userinfo_code = '{}'" v-next-el='username' style="width: 60%"
76
+ :size="model.f_userinfo_code ? model.f_userinfo_id.length : 4">
77
+ </div>
78
+ <div class="form-group col-sm-3">
79
+ <label class="font_normal_body">用户姓名</label>
80
+ <input type="text" class="form-control" v-model="model.f_user_name" placeholder='用户姓名'
81
+ condition="f_user_name like '{}'" v-next-el='area' style="width: 60%"
82
+ :size="model.f_user_name ? model.f_user_name.length * 2 : 4">
83
+ </div>
84
+ <div class="form-group col-sm-3">
85
+ <label class="font_normal_body">选择小区</label>
86
+ <v-select :value.sync="model.f_residential_area" :value-single="true"
87
+ class="select_list select"
88
+ style="width: 60%"
89
+ condition="f_residential_area like '%{}%'"
90
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
91
+ close-on-select search="true">
92
+ </v-select>
93
+ </div>
94
+ <div class="form-group col-sm-3">
95
+ <label class="font_normal_body">付款类型</label>
96
+ <v-select :value.sync="model.f_payment" :value-single="true"
97
+ class="select_list select"
98
+ v-model="model.f_payment"
99
+ style="width: 60%"
100
+ :options='$parent.$parent.chonetype' placeholder='付款类型'
101
+ condition="f_cost_type like '{}'"
102
+ close-on-select search="true">
103
+ </v-select>
104
+ </div>
105
+ <div class="form-group col-sm-3">
106
+ <label class="font_normal_body">应交金额</label>
107
+ <v-input :value.sync="$parent.f_oughtfee" :expression.sync = 'model.f_oughtfee'
108
+ condition="f_oughtfee {}" v-model="model.f_oughtfee" style="width: 60%"
109
+ placeholder="应交金额" v-next-el="cx" ></v-input>
110
+ </div>
111
+ </div>
112
+
113
+
114
+
115
+ </div>
116
+ </criteria>
117
+ <data-grid :model="model" partial='list' class="table_sy" v-ref:grid>
118
+ <template partial='head'>
119
+ <tr>
120
+ <th>
121
+ <input type="checkbox" @click="$parent.$parent.$parent.isAll(model.pageIndex)">
122
+ </th>
123
+ <th>序号</th>
124
+ <th>用户编号</th>
125
+ <th>用户姓名</th>
126
+ <th>身份证号</th>
127
+ <th>表号</th>
128
+ <th>补贴气量</th>
129
+ <th>补贴气量</th>
130
+ <th>补贴金额</th>
131
+ <th>备注</th>
132
+ <th>表具类型</th>
133
+ <th>导入时间</th>
134
+ <th>充值时间</th>
135
+ <th>充值编号</th>
136
+ </tr>
137
+ </template>
138
+ <template partial='body'>
139
+ <td style="text-align:center">
140
+ <input type="checkbox" v-model="$parent.$parent.$parent.ids"
141
+ :value="row.f_userinfo_id">
142
+ </td>
143
+ <td>{{$index+1}}</td>
144
+ <td style="text-align:center">{{row.f_userinfo_id}}&nbsp;&nbsp;{{row.f_user_name}}&nbsp;&nbsp;{{row.f_user_phone}}</td>
145
+ <td style="text-align:center">{{row.f_userinfo_code}}</td>
146
+ <td style="text-align:center">{{row.f_user_type}}</td>
147
+ <td style="text-align:center">{{row.f_residential_area}}</td>
148
+ <td style="text-align:center">{{row.f_input_date}}</td>
149
+ <td style="text-align:center">{{row.f_last_tablebase.toFixed(2)}}</td>
150
+ <td style="text-align:center">{{row.f_tablebase.toFixed(2)}}</td>
151
+ <td style="text-align:center">{{row.f_oughtamount.toFixed(2)}}</td>
152
+ <td style="text-align:center">{{row.f_oughtfee.toFixed(2)}}</td>
153
+ <td style="text-align:center">{{row.f_balance.toFixed(2)}}</td>
154
+ <td style="text-align:center">{{row.f_oughtfee_all.toFixed(2)}}</td>
155
+ </template>
156
+ </data-grid>
157
+ </criteria-paged>
158
+ <modal :show.sync="batchMeterShow" width="570px" title="文件导入" v-ref:modal large backdrop="false">
159
+ <article slot="modal-body" class="modal-body">
160
+ <file-upload class="my-file-uploader col-sm-9" name="useraddressUploadFile" action="rs/file/uploadFile"
161
+ tagname="确定" multiple v-ref:file></file-upload>
162
+ <button class="button_clear btn-gn" style="margin-top: 10px;background-color: #6aa6e2;"
163
+ @click="downloadFiles()">模板下载
164
+ </button>
165
+ </article>
166
+ <footer slot="modal-footer" class="modal-footer">
167
+ </footer>
168
+ </modal>
169
+ </template>
170
+
171
+ <script>
172
+ /**
173
+ *阶梯水价查询列表
174
+ */
175
+ import { PagedList, HttpResetClass } from 'vue-client'
176
+ import Vue from 'vue'
177
+ import axios from 'axios'
178
+ export default {
179
+ data () {
180
+ return {
181
+ model: new PagedList('rs/sql/arrearsQuery', 50, {startDate: 'this.model.startDate', endDate: 'this.model.endDate',condValue:'` 1=1 `',orderitem: '"' + this.orderitem + '"'}),
182
+ batchMeterShow: false
183
+ }
184
+ },
185
+ props: {
186
+ orderitem: {
187
+ type: String,
188
+ default: 'p.f_userinfo_id'
189
+ },
190
+ rollback: false
191
+ },
192
+ ready () {
193
+ this.getaddress()
194
+ this.$refs.paged.$refs.cri.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
195
+ this.$refs.paged.$refs.cri.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
196
+ this.search({condition: `1=1 `, model: this.$refs.paged.$refs.cri.model})
197
+ },
198
+ watch: {
199
+ 'f_whether' (val) {
200
+ if (val[0] === '全部') {
201
+ this.f_whether = '欠费'
202
+ this.$dispatch('all', '全部')
203
+ }
204
+ }
205
+ },
206
+ methods: {
207
+ downloadFiles() {
208
+ let downurl = 'rs/downloadfile/file?filename=政府补贴导入Excel模板'
209
+ this.$downFile(downurl, '政府补贴导入Excel模板.xlsx')
210
+ },
211
+
212
+ search (args) {
213
+ args.condition = `${args.condition} and f_orgid = ` + `'${Vue.$login.f.orgid}'`
214
+ console.log('查看条件', args.condition)
215
+ this.model.search(args.condition, args.model)
216
+ },
217
+
218
+ arrcreate () {
219
+ this.arrshow = true
220
+ },
221
+ isAll (page) {
222
+ if (this.pages.includes(page)) { // 已添加,取消动作
223
+ // 从ids中删除本页所有数据的ids
224
+ this.addOrRemove(false)
225
+ this.pages = this.pages.filter((item) => {
226
+ return item !== page
227
+ })
228
+ } else { // 未添加
229
+ this.pages.push(page) // 添加id,添加动作
230
+ this.addOrRemove(true)
231
+ }
232
+ },
233
+ addOrRemove (is) {
234
+ let that = this
235
+ if (is) { // 添加本页所有数据到ids中
236
+ this.model.rows.forEach((row) => {
237
+ if (!that.ids.includes(row.f_userinfo_id)) {
238
+ that.ids.push(row.f_userinfo_id)
239
+ }
240
+ })
241
+ } else { // 从ids中取消所有的数据
242
+ this.model.rows.forEach((row) => {
243
+ that.ids = that.ids.filter((item) => {
244
+ return item !== row.f_userinfo_id
245
+ })
246
+ })
247
+ }
248
+ }
249
+ },
250
+ computed: {
251
+
252
+ },
253
+ events:{
254
+ 'onFileUpload': async function (file, res) {
255
+ if (this.batchMeterShow) {
256
+ this.iswork = true
257
+ // 当前上传的是批量导入的档案
258
+ let param = {
259
+ filepath: res.f_downloadpath,
260
+ f_operator: this.$login.f.name,
261
+ f_operatorid: this.$login.f.id,
262
+ f_orgid: this.$login.f.orgid,
263
+ f_orgname: this.$login.f.orgs,
264
+ f_depid: this.$login.f.depids,
265
+ f_depname: this.$login.f.deps
266
+ }
267
+ let self = this
268
+ try {
269
+ await axios.post('rs/logic/newSettleFileImport',
270
+ {data: param}, {timeout: 10 * 60 * 1000}).then((res) => {
271
+ if (res.data) {
272
+ self.$showMessage(`本次上传共上传${res.data.totalsum}条数据, 成功${res.data.successnum}条,失败${res.data.errorsum}条,具体失败数据请在稽查查询错误查询中查看!!`)
273
+ self.iswork = false
274
+ // this.$showAlert('导入成功','success',2000)
275
+ }
276
+ })
277
+ } catch (error) {
278
+ if (error.response) {
279
+ if (error.response.status == 500) {
280
+ this.$showAlert('服务繁忙,请重试!!!', 'danger', 3000)
281
+ } else if (error.response.status == 404) {
282
+ this.$showAlert('服务运行中,请耐心等待后进行重试!!', 'danger', 3000)
283
+ } else {
284
+ this.$showAlert(error.response.data, 'danger', 2000)
285
+ }
286
+ console.log(error.response.data)
287
+ console.log(error.response.status)
288
+ console.log(error.response.headers)
289
+ } else if (error.request) {
290
+ console.log(error.request)
291
+ this.$showAlert(error.request, 'danger', 2000)
292
+ } else {
293
+ console.log('Error', error.message)
294
+ this.$showAlert(error.message, 'danger', 2000)
295
+ }
296
+ this.iswork = false
297
+ }
298
+ this.batchMeterShow = false
299
+ // this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
300
+ this.search()
301
+ } else {
302
+ let data = {
303
+ tablename: 't_userinfo',
304
+ filepath: res.f_downloadpath,
305
+ f_operator: this.$login.f.name,
306
+ f_operatorid: this.$login.f.id,
307
+ f_orgid: this.$login.f.orgid,
308
+ f_orgname: this.$login.f.orgs,
309
+ f_depid: this.$login.f.depids,
310
+ f_depname: this.$login.f.deps
311
+ }
312
+ this.$resetpost('rs/logic/sale_userfilesImp', {data: data}, {
313
+ resolveMsg: null,
314
+ rejectMsg: '上传失败'
315
+ }).then((res) => {
316
+ this.show = false
317
+ this.$showAlert(`一共上传${res.data.total}条数据, 成功${res.data.successnum}条`, 'success', 2000)
318
+ this.search()
319
+ })
320
+ }
321
+ },
322
+ }
323
+ }
324
+ </script>
325
+ <style>
326
+ .form-group{
327
+ height: 30px;
328
+ }
329
+ </style>
package/src/main.js CHANGED
@@ -3,7 +3,7 @@ import all from 'vue-client/src/all'
3
3
  import App from './App'
4
4
  import system from 'system-clients/src/system'
5
5
  import sale from './sale'
6
- // import FilialeSale from './filiale/wuhai/sale'
6
+ import FilialeSale from './filiale/wuan/sale'
7
7
  import address from 'address-client/src/address'
8
8
  import ldap from 'ldap-clients/src/ldap'
9
9
  import VueClipboard from 'vue-clipboard2'
@@ -22,7 +22,7 @@ Vue.config.silent = true
22
22
  all()
23
23
  system(false)
24
24
  sale()
25
- // FilialeSale()
25
+ FilialeSale()
26
26
  address()
27
27
  ldap()
28
28
  require('system-clients/src/styles/less/bootstrap.less')
File without changes
File without changes
@@ -1,2 +0,0 @@
1
- #Fri Mar 22 15:51:22 CST 2024
2
- gradle.version=7.4
Binary file
File without changes