apply-clients 3.3.49 → 3.3.53

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,130 +1,130 @@
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
- var app = express()
7
- var compiler = webpack(config)
8
- // var proxy = httpProxy.createProxyServer()
9
- // var ldap = 'http://121.36.79.201:8400'
10
- // var applyinstall = 'http://121.36.79.201:8400'
11
- // var ldap = 'http://192.168.50.4:8400'
12
- var ldap = 'http://192.168.20.28:8400'
13
- // var applyinstall = 'http://192.168.20.27:8400'
14
- var applyinstall = 'http://127.0.0.1:8080'
15
-
16
- var proxyTable = {
17
- '/wx': {
18
- target: ldap
19
- },
20
- '/rs/sql/filemanage_getUserfies/n': {
21
- target: ldap
22
- },
23
- '/rs/sql/filemanage_getUserfies': {
24
- target: ldap
25
- },
26
- '/rs/logic/saveInsInfo': {
27
- target: ldap
28
- },
29
- '/rs/logic/exportfile': {
30
- target: ldap
31
- },
32
- '/rs/logic/getBatchOperaPro': {
33
- target: ldap
34
- },
35
- '/rs/logic/insuranceguanl': {
36
- target: ldap
37
- },
38
- '/rs/logic/getSaleInitData': {
39
- target: ldap
40
- },
41
- '/rs/workflow': {
42
- target: applyinstall
43
- },
44
- '/rs/vue': {
45
- target: ldap
46
- },
47
- // 查找资源服务数据
48
- '/rs/search': {
49
- target: ldap
50
- },
51
- // 用户登录服务地址
52
- '/rs/user': {
53
- target: ldap
54
- },
55
- '/rs/logic/getInitData': {
56
- target: ldap?ldap:applyinstall
57
- },
58
- '/rs/logic/getLogin': {
59
- target: ldap
60
- },
61
- '/rs/file': { // 文件上传
62
- target: applyinstall
63
- },
64
- '/project': { // 文件回显
65
- target: applyinstall
66
- },
67
- '/rs': {
68
- target: applyinstall
69
- },
70
- '/ws': {
71
- target: applyinstall,
72
- ws: true // 代理webSocket
73
- }
74
- }
75
-
76
- var devMiddleware = require('webpack-dev-middleware')(compiler, {
77
- publicPath: config.output.publicPath,
78
- stats: {
79
- colors: true,
80
- chunks: false
81
- }
82
- })
83
-
84
- var hotMiddleware = require('webpack-hot-middleware')(compiler)
85
- // force page reload when html-webpack-plugin template changes
86
- compiler.plugin('compilation', function (compilation) {
87
- compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
88
- hotMiddleware.publish({action: 'reload'})
89
- cb()
90
- })
91
- })
92
-
93
- // proxy api requests
94
- Object.keys(proxyTable).forEach(function (context) {
95
- var options = proxyTable[context]
96
- if (typeof options === 'string') {
97
- options = {target: options}
98
- }
99
- app.use(proxyMiddleware(context, options))
100
- })
101
-
102
- // handle fallback for HTML5 history API
103
- app.use(require('connect-history-api-fallback')())
104
- // app.use(function (req, res, next) {
105
- // res.header('Access-Control-Allow-Origin', '*')
106
- // res.header('Access-Control-Allow-Headers', 'X-Requested-With')
107
- // res.header('Access-Control-Allow-Methods', 'PUT, POST, GET,DELETE, OPTIONS')
108
- // res.header('X-Powered-By', '3,2,1')
109
- // res.header('Access-Control-Allow-Credentials', 'true')
110
- // res.header('Content-Type', 'application/json;charset=utf-8')
111
- // next()
112
- // })
113
-
114
- // serve webpack bundle output
115
- app.use(devMiddleware)
116
-
117
- // enable hot-reload and state-preserving
118
- // compilation error display
119
- app.use(hotMiddleware)
120
-
121
- // serve pure static assets
122
- app.use('/static', express.static('./static'))
123
-
124
- module.exports = app.listen(8300, function (err) {
125
- if (err) {
126
- console.log(err)
127
- return
128
- }
129
- console.log('Listening at http://localhost:8300')
130
- })
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
+ var app = express()
7
+ var compiler = webpack(config)
8
+ // var proxy = httpProxy.createProxyServer()
9
+ // var ldap = 'http://121.36.79.201:8400'
10
+ // var applyinstall = 'http://121.36.79.201:8400'
11
+ // var ldap = 'http://192.168.50.4:8400'
12
+ var ldap = 'http://192.168.20.28:8400'
13
+ // var applyinstall = 'http://192.168.20.27:8400'
14
+ var applyinstall = 'http://127.0.0.1:8080'
15
+
16
+ var proxyTable = {
17
+ '/wx': {
18
+ target: ldap
19
+ },
20
+ '/rs/sql/filemanage_getUserfies/n': {
21
+ target: ldap
22
+ },
23
+ '/rs/sql/filemanage_getUserfies': {
24
+ target: ldap
25
+ },
26
+ '/rs/logic/saveInsInfo': {
27
+ target: ldap
28
+ },
29
+ '/rs/logic/exportfile': {
30
+ target: ldap
31
+ },
32
+ '/rs/logic/getBatchOperaPro': {
33
+ target: ldap
34
+ },
35
+ '/rs/logic/insuranceguanl': {
36
+ target: ldap
37
+ },
38
+ '/rs/logic/getSaleInitData': {
39
+ target: ldap
40
+ },
41
+ '/rs/workflow': {
42
+ target: applyinstall
43
+ },
44
+ '/rs/vue': {
45
+ target: ldap
46
+ },
47
+ // 查找资源服务数据
48
+ '/rs/search': {
49
+ target: ldap
50
+ },
51
+ // 用户登录服务地址
52
+ '/rs/user': {
53
+ target: ldap
54
+ },
55
+ '/rs/logic/getInitData': {
56
+ target: ldap?ldap:applyinstall
57
+ },
58
+ '/rs/logic/getLogin': {
59
+ target: ldap
60
+ },
61
+ '/rs/file': { // 文件上传
62
+ target: applyinstall
63
+ },
64
+ '/project': { // 文件回显
65
+ target: applyinstall
66
+ },
67
+ '/rs': {
68
+ target: applyinstall
69
+ },
70
+ '/ws': {
71
+ target: applyinstall,
72
+ ws: true // 代理webSocket
73
+ }
74
+ }
75
+
76
+ var devMiddleware = require('webpack-dev-middleware')(compiler, {
77
+ publicPath: config.output.publicPath,
78
+ stats: {
79
+ colors: true,
80
+ chunks: false
81
+ }
82
+ })
83
+
84
+ var hotMiddleware = require('webpack-hot-middleware')(compiler)
85
+ // force page reload when html-webpack-plugin template changes
86
+ compiler.plugin('compilation', function (compilation) {
87
+ compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
88
+ hotMiddleware.publish({action: 'reload'})
89
+ cb()
90
+ })
91
+ })
92
+
93
+ // proxy api requests
94
+ Object.keys(proxyTable).forEach(function (context) {
95
+ var options = proxyTable[context]
96
+ if (typeof options === 'string') {
97
+ options = {target: options}
98
+ }
99
+ app.use(proxyMiddleware(context, options))
100
+ })
101
+
102
+ // handle fallback for HTML5 history API
103
+ app.use(require('connect-history-api-fallback')())
104
+ // app.use(function (req, res, next) {
105
+ // res.header('Access-Control-Allow-Origin', '*')
106
+ // res.header('Access-Control-Allow-Headers', 'X-Requested-With')
107
+ // res.header('Access-Control-Allow-Methods', 'PUT, POST, GET,DELETE, OPTIONS')
108
+ // res.header('X-Powered-By', '3,2,1')
109
+ // res.header('Access-Control-Allow-Credentials', 'true')
110
+ // res.header('Content-Type', 'application/json;charset=utf-8')
111
+ // next()
112
+ // })
113
+
114
+ // serve webpack bundle output
115
+ app.use(devMiddleware)
116
+
117
+ // enable hot-reload and state-preserving
118
+ // compilation error display
119
+ app.use(hotMiddleware)
120
+
121
+ // serve pure static assets
122
+ app.use('/static', express.static('./static'))
123
+
124
+ module.exports = app.listen(8300, function (err) {
125
+ if (err) {
126
+ console.log(err)
127
+ return
128
+ }
129
+ console.log('Listening at http://localhost:8300')
130
+ })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apply-clients",
3
- "version": "3.3.49",
3
+ "version": "3.3.53",
4
4
  "description": "报建前端模块",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -349,6 +349,34 @@ export default {
349
349
  }
350
350
  }
351
351
  },
352
+ disabledButtons(...buttons) {
353
+ for (const item of this.show_data.buttons) {
354
+ if (buttons.includes(item.button_name)) {
355
+ item.disabled = true
356
+ }
357
+ }
358
+ },
359
+ enableButtons(...buttons) {
360
+ for (const item of this.show_data.buttons) {
361
+ if (buttons.includes(item.button_name)) {
362
+ item.disabled = false
363
+ }
364
+ }
365
+ },
366
+ showButtons(...buttons) {
367
+ for (const item of this.show_data.buttons) {
368
+ if (buttons.includes(item.button_name)) {
369
+ item.hidden = false
370
+ }
371
+ }
372
+ },
373
+ hideButtons(...buttons) {
374
+ for (const item of this.show_data.buttons) {
375
+ if (buttons.includes(item.button_name)) {
376
+ item.hidden = true
377
+ }
378
+ }
379
+ },
352
380
  async checkDuplicate(index) {
353
381
  let http = new HttpResetClass()
354
382
  let data = {
@@ -429,7 +457,7 @@ export default {
429
457
  console.log(f_price_id)
430
458
 
431
459
  let data = {
432
- condition: `sp.f_orgid = '${Vue.user.orgid}'`
460
+ condition: `sp.f_filialeid = '${Vue.user.orgid}'`
433
461
  }
434
462
 
435
463
  if (!isEmpty(f_price_id)) {
@@ -452,6 +480,24 @@ export default {
452
480
  }
453
481
  },
454
482
  events: {
483
+ async 'igniteDispatchReadyEvent' () {
484
+ let data = {
485
+ tablename: 'activityins',
486
+ condition: `processid = '${this.show_data.f_process_id}' and defname = '工程施工' and state = '结束'`
487
+ }
488
+ let http = new HttpResetClass()
489
+ let res = await http.load(
490
+ 'POST',
491
+ `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`,
492
+ {data: data},
493
+ {resolveMsg: null, rejectMsg: '查询失败!!!'}
494
+ )
495
+ if (res.data.length <= 0) {
496
+ console.log('+++++++++++++++++++++++++++++')
497
+ console.log('没有施工,不能退回')
498
+ this.hideButtons('退回')
499
+ }
500
+ },
455
501
  'breakControl' () {
456
502
  this.breakControl()
457
503
  },
@@ -106,7 +106,12 @@
106
106
  v-on:keyup.enter="$parent.$parent.search()"
107
107
  condition="a.f_address like '%{}%'">
108
108
  </div>
109
-
109
+ <div class="form-group col-sm-3">
110
+ <label class="font_normal_body">身份证号:</label>
111
+ <input type="text" style="width:60%" class="input_search" placeholder='身份证号' v-model="model.f_idnumber"
112
+ v-on:keyup.enter="$parent.$parent.search()"
113
+ condition="a.f_idnumber like '%{}%'">
114
+ </div>
110
115
  <div class="form-group col-sm-3">
111
116
  <label class="font_normal_body">缴费编码:</label>
112
117
  <input type="text" class="input_search" style="width: 60%" placeholder='缴费编码' v-model="model.f_charge_number"
@@ -176,6 +181,7 @@
176
181
  <th style="white-space: nowrap;">用户名称</th>
177
182
  <th style="white-space: nowrap;">用户电话</th>
178
183
  <th style="white-space: nowrap;">用户地址</th>
184
+ <th style="white-space: nowrap;">身份证号</th>
179
185
  <th style="white-space: nowrap;">缴费编码</th>
180
186
  <th style="white-space: nowrap;">收费金额(退款金额)</th>
181
187
  <th style="white-space: nowrap;">付款方式</th>
@@ -212,6 +218,9 @@
212
218
  <td style="text-align: center;">
213
219
  <nobr><font>{{row.f_address}}</font></nobr>
214
220
  </td>
221
+ <td style="text-align: center;">
222
+ <nobr><font>{{row.f_idnumber}}</font></nobr>
223
+ </td>
215
224
  <td style="text-align: center;">
216
225
  <nobr><font>{{row.f_charge_number}}</font></nobr>
217
226
  </td>
@@ -278,6 +287,7 @@ export default {
278
287
  'f_user_name': '用户名称',
279
288
  'f_phone': '用户电话',
280
289
  'f_address': '用户地址',
290
+ 'f_idnumber': '身份证号',
281
291
  'f_charge_number': '缴费编码',
282
292
  'f_charge_money': '收费金额',
283
293
  'f_payment_method': '付款方式',
@@ -1,310 +1,320 @@
1
- <template>
2
- <div>
3
- <criteria-paged :model="model" v-ref:cp>
4
- <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row">
7
- <div class="form-group col-sm-3">
8
- <label class="font_normal_body">组织机构:</label>
9
- <res-select
10
- restype='organization'
11
- :initresid='$parent.$parent.curorgid'
12
- @res-select="$parent.$parent.getorg"
13
- is-mul="false"
14
- ></res-select>
15
- </div>
16
- <div class="form-group col-sm-3">
17
- <label class="font_normal_body">工程编号:</label>
18
- <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
19
- v-on:keyup.enter="$parent.$parent.search()"
20
- condition="f_apply_num = '{}'">
21
- </div>
22
- <div class="form-group col-sm-3">
23
- <label class="font_normal_body">客户名称:</label>
24
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
25
- v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
26
- </div>
27
- <div class="form-group col-sm-3 button-range">
28
- <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
29
- <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
30
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
31
- <div
32
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
33
- @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
34
- class="button_spacing"
35
- style="float: right">
36
- </div>
37
- </div>
38
- </div>
39
- <div class="row" v-show="$parent.$parent.criteriaShow">
40
- <div class="form-group col-sm-3">
41
- <label class="font_normal_body">联系电话:</label>
42
- <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
43
- v-on:keyup.enter="$parent.$parent.search()"
44
- condition="f_phone like '%{}%'">
45
- </div>
46
- <div class="form-group col-sm-3">
47
- <label class="font_normal_body">合同编号:</label>
48
- <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
49
- v-on:keyup.enter="$parent.$parent.search()"
50
- condition="f_contract_number = '{}'">
51
- </div>
52
- <div class="form-group col-sm-3">
53
- <label class="font_normal_body">报建类型:</label>
54
- <v-select
55
- v-model="model.f_apply_type"
56
- placeholder='报建类型'
57
- condition="f_apply_type = '{}'"
58
- :value.sync="model.f_apply_type"
59
- :options='$parent.$parent.applytype'
60
- class="select select_list"
61
- :value-single="true"
62
- @change="$parent.$parent.applyTypeChange()"
63
- close-on-select ></v-select>
64
- </div>
65
- <div class="form-group col-sm-3">
66
- <label class="font_normal_body">办理环节:</label>
67
- <v-select
68
- v-model="model.defname"
69
- placeholder='办理环节'
70
- condition="defname = '{}'"
71
- :value.sync="model.defname"
72
- :options='$parent.$parent.defnames'
73
- class="select select_list"
74
- :value-single="true"
75
- close-on-select ></v-select>
76
- </div>
77
- <div class="form-group col-sm-3">
78
- <label class="font_normal_body">报建性质:</label>
79
- <v-select
80
- v-model="model.f_apply_nature"
81
- placeholder='报建性质'
82
- condition="f_apply_nature = '{}'"
83
- :value.sync="model.f_apply_nature"
84
- :options='$parent.$parent.applyNatures'
85
- class="select select_list"
86
- :value-single="true"
87
- close-on-select ></v-select>
88
- </div>
89
- <div class="form-group col-sm-3">
90
- <label class="font_normal_body">用户地址:</label>
91
- <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
92
- v-on:keyup.enter="$parent.$parent.search()"
93
- condition="f_address like '%{}%'">
94
- </div>
95
- <div class="form-group col-sm-3">
96
- <label for="startDate" class="font_normal_body">开始时间:</label>
97
- <datepicker id="startDate" placeholder="开始日期"
98
- style="width: 60%!important;"
99
- v-model="model.startDate"
100
- :value.sync="model.startDate"
101
- :format="'yyyy-MM-dd 00:00:00'"
102
- :show-reset-button="true"
103
- condition="f_apply_date >= '{}'">
104
- </datepicker>
105
- </div>
106
- <div class="form-group col-sm-3">
107
- <label for="endDate" class="font_normal_body">结束时间:</label>
108
- <datepicker id="endDate" placeholder="结束日期"
109
- style="width: 60%!important;"
110
- v-model="model.endDate"
111
- :value.sync="model.endDate"
112
- :format="'yyyy-MM-dd 23:59:59'"
113
- :show-reset-button="true"
114
- condition="f_apply_date <= '{}'">
115
- </datepicker>
116
- </div>
117
- </div>
118
- </div>
119
- </criteria>
120
- <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy">
121
- <template partial='head'>
122
- <tr class="title">
123
- <th style="white-space: nowrap;">序号</th>
124
- <th style="white-space: nowrap;">工程编号</th>
125
- <th style="white-space: nowrap;">客户名称</th>
126
- <th style="white-space: nowrap;">合同编号</th>
127
- <th style="white-space: nowrap;">电话</th>
128
- <th style="white-space: nowrap;">地址</th>
129
- <th style="white-space: nowrap;">报建类型</th>
130
- <th style="white-space: nowrap;">办理环节</th>
131
- <th style="white-space: nowrap;">流程状态</th>
132
- <th style="white-space: nowrap;">报建日期</th>
133
- <th style="white-space: nowrap;">操作</th>
134
- </tr>
135
- </template>
136
- <template partial='body'>
137
- <tr>
138
- <td style="text-align: center;">
139
- <nobr>{{$index+1}}</nobr>
140
- </td>
141
- <td style="text-align: center;">
142
- <nobr>{{row.f_apply_num}}</nobr>
143
- </td>
144
- <td style="text-align: center;">
145
- <nobr>{{row.f_user_name}}</nobr>
146
- </td>
147
- <td style="text-align: center;">
148
- <nobr>{{row.f_contract_number}}</nobr>
149
- </td>
150
- <td style="text-align: center;">
151
- <nobr>{{row.f_phone}}</nobr>
152
- </td>
153
- <td style="text-align: center;">
154
- <nobr>{{row.f_address}}</nobr>
155
- </td>
156
- <td style="text-align: center;">
157
- <nobr>{{row.f_apply_type}}</nobr>
158
- </td>
159
- <td style="text-align: center;">
160
- <nobr>{{row.defname}}</nobr>
161
- </td>
162
- <td style="text-align: center;">
163
- <nobr>{{row.f_sub_state}}</nobr>
164
- </td>
165
- <td style="text-align: center;">
166
- <nobr>{{row.f_apply_date}}</nobr>
167
- </td>
168
- <td style="text-align: center;">
169
- <dropdown>
170
- <button @click="$parent.$parent.$parent.checkfuncs(row)" type="button" data-toggle="dropdown" style="border: 0px;background: none;">
171
- <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
172
- </button>
173
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
174
- <li v-for="(index,func) in $parent.$parent.$parent.funcs" v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)">
175
- <a href="#" @click="$parent.$parent.$parent.$parent.func(func,row)">{{func.title}}</a>
176
- </li>
177
- </ul>
178
- </dropdown>
179
- </td>
180
- </tr>
181
- </template>
182
- </data-grid>
183
- </criteria-paged>
184
- </div>
185
- </template>
186
- <script>
187
- import {PagedList} from 'vue-client'
188
- import {isEmpty} from '../../Util'
189
- export default {
190
- title: '报建业务信息',
191
- props: ['showData'],
192
- data () {
193
- return {
194
- model: new PagedList('rs/sql/checkuserfunction', 20, {
195
- data: {
196
- orgid: this.$login.f.orgid
197
- }
198
- }),
199
- funcs: [], // 功能列表
200
- curorgid: [this.$login.f.orgid],
201
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
202
- defnames: [{label: '全部', value: ''}], // 流程节点
203
- applyNatures: [{label: '全部', value: ''}], // 报建性质
204
- criteriaShow: false
205
- }
206
- },
207
- ready () {
208
- // 调用查询
209
- this.search()
210
- },
211
- methods: {
212
- // 查询
213
- search () {
214
- this.$dispatch('search')
215
- },
216
- loadPage () {
217
- this.$dispatch('loadPage')
218
- },
219
- // 获取配置
220
- async checkfuncs (row) {
221
-
222
- this.funcs = []
223
- let functions = JSON.parse(JSON.stringify(this.$function_vue.functions))
224
-
225
- for (const item of functions) {
226
- // 显示类型
227
- if (item.showApplyTypes) {
228
- if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
229
- continue
230
- }
231
- }
232
- // 显示节点
233
- if (item.showDefnames) {
234
- if (item.showDefnames.indexOf(row.defname) === -1) {
235
- continue
236
- }
237
- }
238
- // 显示设备
239
- if (item.device && item.device !== 'pc') {
240
- continue
241
- }
242
- // if (item.device || item.device !== 'pc') {
243
- // continue
244
- // }
245
- this.funcs.push(item)
246
- }
247
- },
248
- // 点击功能操作
249
- func (func, row) {
250
- this.$dispatch('func', func, row)
251
- },
252
- // 权限控制
253
- showFunc (personexpression) {
254
-
255
- if (isEmpty(personexpression)) {
256
- return true
257
- }
258
-
259
- let mark = personexpression.charAt(0)
260
-
261
- let str = personexpression.substring(2, personexpression.length-1)
262
-
263
- if (mark === 'D' && this.$login.f.f_department_name.includes(str)) {
264
- return true
265
- }
266
- if (mark === 'R' && this.$login.f.f_role_name.includes(str)) {
267
- return true
268
- }
269
- if (mark === 'P' && this.$login.f.id.includes(str)) {
270
- return true
271
- }
272
-
273
- return false
274
- },
275
- async applyTypeChange () {
276
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
277
- let res = await this.$resetpost('rs/logic/getDefnameByType',
278
- { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
279
- {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
280
- )
281
-
282
- this.defnames = [{label: '全部', value: ''}, ...res.data]
283
-
284
- this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
285
- } else {
286
- this.defnames = [{label: '全部', value: ''}]
287
-
288
- this.applyNatures = [{label: '全部', value: ''}]
289
- }
290
- },
291
- clear () {
292
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
293
- this.$refs.cp.$refs.cri.model[key] = null
294
- })
295
- },
296
- getorg (val) {
297
- if (val.length <= 0) {
298
- return
299
- }
300
- this.model.params.data.orgid = val[0]
301
- }
302
- },
303
- computed: {
304
- },
305
- events: {
306
- }
307
- }
308
- </script>
309
- <style scoped>
310
- </style>
1
+ <template>
2
+ <div>
3
+ <criteria-paged :model="model" v-ref:cp>
4
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="form-group col-sm-3">
8
+ <label class="font_normal_body">组织机构:</label>
9
+ <res-select
10
+ restype='organization'
11
+ :initresid='$parent.$parent.curorgid'
12
+ @res-select="$parent.$parent.getorg"
13
+ is-mul="false"
14
+ ></res-select>
15
+ </div>
16
+ <div class="form-group col-sm-3">
17
+ <label class="font_normal_body">工程编号:</label>
18
+ <input type="text" style="width:60%" class="input_search" placeholder='工程编号' v-model="model.f_apply_num"
19
+ v-on:keyup.enter="$parent.$parent.search()"
20
+ condition="f_apply_num = '{}'">
21
+ </div>
22
+ <div class="form-group col-sm-3">
23
+ <label class="font_normal_body">客户名称:</label>
24
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
25
+ v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='客户名称'>
26
+ </div>
27
+ <div class="form-group col-sm-3 button-range">
28
+ <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
29
+ <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
30
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
31
+ <div
32
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
33
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
34
+ class="button_spacing"
35
+ style="float: right">
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <div class="row" v-show="$parent.$parent.criteriaShow">
40
+ <div class="form-group col-sm-3">
41
+ <label class="font_normal_body">联系电话:</label>
42
+ <input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
43
+ v-on:keyup.enter="$parent.$parent.search()"
44
+ condition="f_phone like '%{}%'">
45
+ </div>
46
+ <div class="form-group col-sm-3">
47
+ <label class="font_normal_body">身份证号:</label>
48
+ <input type="text" style="width:60%" class="input_search" placeholder='身份证号' v-model="model.f_idnumber"
49
+ v-on:keyup.enter="$parent.$parent.search()"
50
+ condition="f_idnumber like '%{}%'">
51
+ </div>
52
+ <div class="form-group col-sm-3">
53
+ <label class="font_normal_body">合同编号:</label>
54
+ <input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_number"
55
+ v-on:keyup.enter="$parent.$parent.search()"
56
+ condition="f_contract_number = '{}'">
57
+ </div>
58
+ <div class="form-group col-sm-3">
59
+ <label class="font_normal_body">报建类型:</label>
60
+ <v-select
61
+ v-model="model.f_apply_type"
62
+ placeholder='报建类型'
63
+ condition="f_apply_type = '{}'"
64
+ :value.sync="model.f_apply_type"
65
+ :options='$parent.$parent.applytype'
66
+ class="select select_list"
67
+ :value-single="true"
68
+ @change="$parent.$parent.applyTypeChange()"
69
+ close-on-select ></v-select>
70
+ </div>
71
+ <div class="form-group col-sm-3">
72
+ <label class="font_normal_body">办理环节:</label>
73
+ <v-select
74
+ v-model="model.defname"
75
+ placeholder='办理环节'
76
+ condition="defname = '{}'"
77
+ :value.sync="model.defname"
78
+ :options='$parent.$parent.defnames'
79
+ class="select select_list"
80
+ :value-single="true"
81
+ close-on-select ></v-select>
82
+ </div>
83
+ <div class="form-group col-sm-3">
84
+ <label class="font_normal_body">报建性质:</label>
85
+ <v-select
86
+ v-model="model.f_apply_nature"
87
+ placeholder='报建性质'
88
+ condition="f_apply_nature = '{}'"
89
+ :value.sync="model.f_apply_nature"
90
+ :options='$parent.$parent.applyNatures'
91
+ class="select select_list"
92
+ :value-single="true"
93
+ close-on-select ></v-select>
94
+ </div>
95
+ <div class="form-group col-sm-3">
96
+ <label class="font_normal_body">用户地址:</label>
97
+ <input type="text" style="width:60%" class="input_search" placeholder='用户地址' v-model="model.f_address"
98
+ v-on:keyup.enter="$parent.$parent.search()"
99
+ condition="f_address like '%{}%'">
100
+ </div>
101
+ <div class="form-group col-sm-3">
102
+ <label for="startDate" class="font_normal_body">开始时间:</label>
103
+ <datepicker id="startDate" placeholder="开始日期"
104
+ style="width: 60%!important;"
105
+ v-model="model.startDate"
106
+ :value.sync="model.startDate"
107
+ :format="'yyyy-MM-dd 00:00:00'"
108
+ :show-reset-button="true"
109
+ condition="f_apply_date >= '{}'">
110
+ </datepicker>
111
+ </div>
112
+ <div class="form-group col-sm-3">
113
+ <label for="endDate" class="font_normal_body">结束时间:</label>
114
+ <datepicker id="endDate" placeholder="结束日期"
115
+ style="width: 60%!important;"
116
+ v-model="model.endDate"
117
+ :value.sync="model.endDate"
118
+ :format="'yyyy-MM-dd 23:59:59'"
119
+ :show-reset-button="true"
120
+ condition="f_apply_date <= '{}'">
121
+ </datepicker>
122
+ </div>
123
+ </div>
124
+ </div>
125
+ </criteria>
126
+ <data-grid v-if="$parent.showData" :model="model" partial='list' v-ref:grid class="list_area table_sy">
127
+ <template partial='head'>
128
+ <tr class="title">
129
+ <th style="white-space: nowrap;">序号</th>
130
+ <th style="white-space: nowrap;">工程编号</th>
131
+ <th style="white-space: nowrap;">客户名称</th>
132
+ <th style="white-space: nowrap;">合同编号</th>
133
+ <th style="white-space: nowrap;">电话</th>
134
+ <th style="white-space: nowrap;">地址</th>
135
+ <th style="white-space: nowrap;">身份证号</th>
136
+ <th style="white-space: nowrap;">报建类型</th>
137
+ <th style="white-space: nowrap;">办理环节</th>
138
+ <th style="white-space: nowrap;">流程状态</th>
139
+ <th style="white-space: nowrap;">报建日期</th>
140
+ <th style="white-space: nowrap;">操作</th>
141
+ </tr>
142
+ </template>
143
+ <template partial='body'>
144
+ <tr>
145
+ <td style="text-align: center;">
146
+ <nobr>{{$index+1}}</nobr>
147
+ </td>
148
+ <td style="text-align: center;">
149
+ <nobr>{{row.f_apply_num}}</nobr>
150
+ </td>
151
+ <td style="text-align: center;">
152
+ <nobr>{{row.f_user_name}}</nobr>
153
+ </td>
154
+ <td style="text-align: center;">
155
+ <nobr>{{row.f_contract_number}}</nobr>
156
+ </td>
157
+ <td style="text-align: center;">
158
+ <nobr>{{row.f_phone}}</nobr>
159
+ </td>
160
+ <td style="text-align: center;">
161
+ <nobr>{{row.f_address}}</nobr>
162
+ </td>
163
+ <td style="text-align: center;">
164
+ <nobr>{{row.f_idnumber}}</nobr>
165
+ </td>
166
+ <td style="text-align: center;">
167
+ <nobr>{{row.f_apply_type}}</nobr>
168
+ </td>
169
+ <td style="text-align: center;">
170
+ <nobr>{{row.defname}}</nobr>
171
+ </td>
172
+ <td style="text-align: center;">
173
+ <nobr>{{row.f_sub_state}}</nobr>
174
+ </td>
175
+ <td style="text-align: center;">
176
+ <nobr>{{row.f_apply_date}}</nobr>
177
+ </td>
178
+ <td style="text-align: center;">
179
+ <dropdown>
180
+ <button @click="$parent.$parent.$parent.checkfuncs(row)" type="button" data-toggle="dropdown" style="border: 0px;background: none;">
181
+ <span class="glyphicon glyphicon-th-list" style="position: inherit;"></span>
182
+ </button>
183
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
184
+ <li v-for="(index,func) in $parent.$parent.$parent.funcs" v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)">
185
+ <a href="#" @click="$parent.$parent.$parent.$parent.func(func,row)">{{func.title}}</a>
186
+ </li>
187
+ </ul>
188
+ </dropdown>
189
+ </td>
190
+ </tr>
191
+ </template>
192
+ </data-grid>
193
+ </criteria-paged>
194
+ </div>
195
+ </template>
196
+ <script>
197
+ import {PagedList} from 'vue-client'
198
+ import {isEmpty} from '../../Util'
199
+ export default {
200
+ title: '报建业务信息',
201
+ props: ['showData'],
202
+ data () {
203
+ return {
204
+ model: new PagedList('rs/sql/checkuserfunction', 20, {
205
+ data: {
206
+ orgid: this.$login.f.orgid
207
+ }
208
+ }),
209
+ funcs: [], // 功能列表
210
+ curorgid: [this.$login.f.orgid],
211
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
212
+ defnames: [{label: '全部', value: ''}], // 流程节点
213
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
214
+ criteriaShow: false
215
+ }
216
+ },
217
+ ready () {
218
+ // 调用查询
219
+ this.search()
220
+ },
221
+ methods: {
222
+ // 查询
223
+ search () {
224
+ this.$dispatch('search')
225
+ },
226
+ loadPage () {
227
+ this.$dispatch('loadPage')
228
+ },
229
+ // 获取配置
230
+ async checkfuncs (row) {
231
+
232
+ this.funcs = []
233
+ let functions = JSON.parse(JSON.stringify(this.$function_vue.functions))
234
+
235
+ for (const item of functions) {
236
+ // 显示类型
237
+ if (item.showApplyTypes) {
238
+ if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
239
+ continue
240
+ }
241
+ }
242
+ // 显示节点
243
+ if (item.showDefnames) {
244
+ if (item.showDefnames.indexOf(row.defname) === -1) {
245
+ continue
246
+ }
247
+ }
248
+ // 显示设备
249
+ if (item.device && item.device !== 'pc') {
250
+ continue
251
+ }
252
+ // if (item.device || item.device !== 'pc') {
253
+ // continue
254
+ // }
255
+ this.funcs.push(item)
256
+ }
257
+ },
258
+ // 点击功能操作
259
+ func (func, row) {
260
+ this.$dispatch('func', func, row)
261
+ },
262
+ // 权限控制
263
+ showFunc (personexpression) {
264
+
265
+ if (isEmpty(personexpression)) {
266
+ return true
267
+ }
268
+
269
+ let mark = personexpression.charAt(0)
270
+
271
+ let str = personexpression.substring(2, personexpression.length-1)
272
+
273
+ if (mark === 'D' && this.$login.f.f_department_name.includes(str)) {
274
+ return true
275
+ }
276
+ if (mark === 'R' && this.$login.f.f_role_name.includes(str)) {
277
+ return true
278
+ }
279
+ if (mark === 'P' && this.$login.f.id.includes(str)) {
280
+ return true
281
+ }
282
+
283
+ return false
284
+ },
285
+ async applyTypeChange () {
286
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
287
+ let res = await this.$resetpost('rs/logic/getDefnameByType',
288
+ { f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type },
289
+ {resolveMsg: null, rejectMsg: '节点信息获取失败!!!'}
290
+ )
291
+
292
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
293
+
294
+ this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
295
+ } else {
296
+ this.defnames = [{label: '全部', value: ''}]
297
+
298
+ this.applyNatures = [{label: '全部', value: ''}]
299
+ }
300
+ },
301
+ clear () {
302
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
303
+ this.$refs.cp.$refs.cri.model[key] = null
304
+ })
305
+ },
306
+ getorg (val) {
307
+ if (val.length <= 0) {
308
+ return
309
+ }
310
+ this.model.params.data.orgid = val[0]
311
+ }
312
+ },
313
+ computed: {
314
+ },
315
+ events: {
316
+ }
317
+ }
318
+ </script>
319
+ <style scoped>
320
+ </style>
@@ -371,6 +371,34 @@ export default {
371
371
  }
372
372
  }
373
373
  },
374
+ disabledButtons(...buttons) {
375
+ for (const item of this.show_data.buttons) {
376
+ if (buttons.includes(item.button_name)) {
377
+ item.disabled = true
378
+ }
379
+ }
380
+ },
381
+ enableButtons(...buttons) {
382
+ for (const item of this.show_data.buttons) {
383
+ if (buttons.includes(item.button_name)) {
384
+ item.disabled = false
385
+ }
386
+ }
387
+ },
388
+ showButtons(...buttons) {
389
+ for (const item of this.show_data.buttons) {
390
+ if (buttons.includes(item.button_name)) {
391
+ item.hidden = false
392
+ }
393
+ }
394
+ },
395
+ hideButtons(...buttons) {
396
+ for (const item of this.show_data.buttons) {
397
+ if (buttons.includes(item.button_name)) {
398
+ item.hidden = true
399
+ }
400
+ }
401
+ },
374
402
  async checkDuplicate(index) {
375
403
  let http = new HttpResetClass()
376
404
  let data = {
@@ -489,7 +517,7 @@ export default {
489
517
  console.log(f_price_id)
490
518
 
491
519
  let data = {
492
- condition: `sp.f_orgid = '${this.$login.f.orgid}'`
520
+ condition: `sp.f_filialeid = '${this.$login.f.orgid}'`
493
521
  }
494
522
 
495
523
  if (!isEmpty(f_price_id)) {
@@ -635,6 +663,24 @@ export default {
635
663
  }
636
664
  },
637
665
  events: {
666
+ async 'igniteDispatchReadyEvent' () {
667
+ let data = {
668
+ tablename: 'activityins',
669
+ condition: `processid = '${this.show_data.f_process_id}' and defname = '工程施工' and state = '结束'`
670
+ }
671
+ let http = new HttpResetClass()
672
+ let res = await http.load(
673
+ 'POST',
674
+ `rs/sql/singleTable`,
675
+ {data: data},
676
+ {resolveMsg: null, rejectMsg: '查询失败!!!'}
677
+ )
678
+ if (res.data.length <= 0) {
679
+ console.log('+++++++++++++++++++++++++++++')
680
+ console.log('没有施工,不能退回')
681
+ this.hideButtons('退回')
682
+ }
683
+ },
638
684
  'buildReadyEvent' () {
639
685
  this.setLabelValue('施工单位', this.$login.f.name)
640
686
  this.setLabelValue('施工安装时间', new Date().Format('yyyy-MM-dd HH:mm:ss'))