system-clients 3.1.89-19 → 3.1.89-20-rongchuang-3
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/.gradle/6.8/executionHistory/executionHistory.bin +0 -0
- package/.gradle/6.8/executionHistory/executionHistory.lock +0 -0
- package/.gradle/{3.5.1/file-changes → 6.8/fileChanges}/last-build.bin +0 -0
- package/.gradle/6.8/fileHashes/fileHashes.bin +0 -0
- package/.gradle/6.8/fileHashes/fileHashes.lock +0 -0
- package/.gradle/{buildOutputCleanup/built.bin → 6.8/gc.properties} +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +2 -2
- package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/.gradle/checksums/checksums.lock +0 -0
- package/.gradle/configuration-cache/gc.properties +0 -0
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/gradlew +185 -0
- package/gradlew.bat +89 -0
- package/package-lock.json +10508 -0
- package/package.json +1 -1
- package/src/components/Main.vue +87 -0
- package/src/components/parammanage/ParamPage.vue +3 -3
- package/src/components/parammanage/SinglePage.vue +2 -2
- package/src/components/server/Login.vue +37 -9
- package/src/components/server/ResSelect.vue +5 -0
- package/src/components/server/ResSelectGroup.vue +196 -184
- package/src/components/server/RightTree.vue +5 -0
- package/src/plugins/GetLoginInfoService.js +516 -514
- package/static/newStyle/about-us.png +0 -0
- package/.gradle/3.5.1/taskHistory/taskHistory.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties.lock +0 -1
package/package.json
CHANGED
package/src/components/Main.vue
CHANGED
@@ -197,6 +197,11 @@
|
|
197
197
|
// value: 25645.26,
|
198
198
|
// AddChangeMsgShow: false,
|
199
199
|
// showsum: false
|
200
|
+
lockReconnect: false, // 避免重复连接
|
201
|
+
timeout: 10000, // 10秒发一次心跳
|
202
|
+
connectNumber: 10, // 重连次数
|
203
|
+
timeoutObj: null,
|
204
|
+
serverTimeoutObj: null
|
200
205
|
}
|
201
206
|
},
|
202
207
|
ready () {
|
@@ -244,8 +249,90 @@
|
|
244
249
|
// return false
|
245
250
|
// }
|
246
251
|
this.changeShow()
|
252
|
+
vue.prototype.$connectNumber = this.connectNumber
|
253
|
+
this.initWebSocket()
|
247
254
|
},
|
248
255
|
methods: {
|
256
|
+
// 清除
|
257
|
+
reset () {
|
258
|
+
clearTimeout(this.timeoutObj)
|
259
|
+
clearTimeout(this.serverTimeoutObj)
|
260
|
+
},
|
261
|
+
// 发送心跳
|
262
|
+
start () {
|
263
|
+
// 重置
|
264
|
+
vue.prototype.$connectNumber = this.connectNumber
|
265
|
+
this.timeoutObj = setTimeout(() => {
|
266
|
+
this.$socket.send('ping')
|
267
|
+
console.log('ping!')
|
268
|
+
this.serverTimeoutObj = setTimeout(() => {
|
269
|
+
this.$socket.close()
|
270
|
+
}, this.timeout)
|
271
|
+
}, this.timeout)
|
272
|
+
},
|
273
|
+
// 重连
|
274
|
+
reconnect () {
|
275
|
+
if (this.lockReconnect) return
|
276
|
+
// if (this.$connectNumber <= 0) {
|
277
|
+
// vue.showMessage('连接已断开,将无法接收消息,请重新登录', ['confirm']).then((res) => {
|
278
|
+
// if (res === 'confirm') {
|
279
|
+
// location.reload()
|
280
|
+
// }
|
281
|
+
// })
|
282
|
+
// return
|
283
|
+
// }
|
284
|
+
// this.$connectNumber--
|
285
|
+
setTimeout(() => {
|
286
|
+
console.log('连接异常,尝试重新连接。。。。')
|
287
|
+
this.initWebSocket()
|
288
|
+
this.lockReconnect = false
|
289
|
+
}, 1000 * 60)
|
290
|
+
},
|
291
|
+
// 初始化
|
292
|
+
initWebSocket () {
|
293
|
+
let path = `ws://${location.host}/ws?token=${this.$login.f.id}`
|
294
|
+
try {
|
295
|
+
if ('WebSocket' in window) {
|
296
|
+
// 创建对象
|
297
|
+
vue.prototype.$socket = new WebSocket(path)
|
298
|
+
} else {
|
299
|
+
this.$showMessage('您的浏览器不支持websocket的协议,建议使用新版谷歌浏览器,请勿使用IE浏览器,360浏览器请使用极速模式,不要使用兼容模式!"')
|
300
|
+
}
|
301
|
+
} catch (e) {
|
302
|
+
this.reconnect()
|
303
|
+
}
|
304
|
+
|
305
|
+
this.$socket.onopen = this.onOpen // 连接成功
|
306
|
+
this.$socket.onmessage = this.onMessage // 收到消息时回调
|
307
|
+
this.$socket.onclose = this.onClose // 连接关闭时回调
|
308
|
+
this.$socket.onerror = this.onError // 通讯异常
|
309
|
+
},
|
310
|
+
// 通讯异常
|
311
|
+
onError () {
|
312
|
+
this.reconnect()
|
313
|
+
},
|
314
|
+
// 连接成功
|
315
|
+
onOpen () {
|
316
|
+
console.log('webSocket连接成功')
|
317
|
+
this.start()
|
318
|
+
},
|
319
|
+
// 收到消息时回调函数
|
320
|
+
onMessage (event) {
|
321
|
+
if (event.data === 'pong') {
|
322
|
+
this.reset()
|
323
|
+
this.start()
|
324
|
+
return
|
325
|
+
}
|
326
|
+
let data = JSON.parse(event.data)
|
327
|
+
this.$broadcast('onMessage', data)
|
328
|
+
this.$showMessage(data.message)
|
329
|
+
},
|
330
|
+
// 关闭连接时回调函数
|
331
|
+
onClose () {
|
332
|
+
console.log('webSocket连接断开')
|
333
|
+
this.reset()
|
334
|
+
this.reconnect()
|
335
|
+
},
|
249
336
|
hindsetting(){
|
250
337
|
|
251
338
|
this.setting=!this.setting
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="flex">
|
3
3
|
<p class="bg-info text-center" style="padding: 8px;">参数管理
|
4
|
-
<
|
4
|
+
<button type="button" name="button" class="button_search button_spacing width-60" @click="add('t_parameter')" style="float:right">新增</button>
|
5
5
|
</p>
|
6
6
|
<div class="auto">
|
7
7
|
<form class="form-horizontal" style="margin-bottom: 5px;">
|
@@ -25,7 +25,7 @@
|
|
25
25
|
</form>
|
26
26
|
</div>
|
27
27
|
<div class="span">
|
28
|
-
<data-grid :model="model" v-ref:params @select-changed="selected"
|
28
|
+
<data-grid :model="model" v-ref:params @select-changed="selected">
|
29
29
|
<template partial='head'>
|
30
30
|
<tr>
|
31
31
|
<th>序号</th>
|
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
<p v-if="selectItem" class="bg-info text-center" style="padding: 8px;margin: 8px 0px;">
|
52
52
|
{{selectItem.name}}
|
53
|
-
<
|
53
|
+
<button type="button" name="button" class="button_search button_spacing width-60" @click="add('t_paramvalue')" style="float:right">新增</button>
|
54
54
|
</p>
|
55
55
|
<div v-if="selectItem" class="span">
|
56
56
|
<data-grid :model="params" v-ref:selects >
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="flex">
|
3
3
|
<p class="bg-info text-center" style="padding: 8px;">
|
4
4
|
单值管理
|
5
|
-
<
|
5
|
+
<button type="button" name="button" class="button_search button_spacing width-60 " @click="add()" style="float:right">新增</button>
|
6
6
|
</p>
|
7
7
|
<div class="auto">
|
8
8
|
<form class="form-horizontal" style="margin-bottom: 5px;">
|
@@ -27,7 +27,7 @@
|
|
27
27
|
</div>
|
28
28
|
<div class="span">
|
29
29
|
<partial-view v-ref:single-load>
|
30
|
-
<data-grid :model="model" v-ref:grid
|
30
|
+
<data-grid :model="model" v-ref:grid >
|
31
31
|
<template partial='head'>
|
32
32
|
<tr>
|
33
33
|
<th>序号</th>
|
@@ -1,17 +1,30 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="syslogin">
|
3
3
|
<div class="login-title" >
|
4
|
-
<div class="
|
5
|
-
<
|
6
|
-
<
|
7
|
-
|
8
|
-
|
4
|
+
<div class="row auto">
|
5
|
+
<marquee style="width:80%;margin-top:25px"><span style="font-size: 1.8rem;color: white;">{{notice}}</span></marquee>
|
6
|
+
<div class="login-title-chi" style="white-space: nowrap">
|
7
|
+
<img src="../../../static/newStyle/login-info.png"/>
|
8
|
+
<span @click="showus=true">关于我们</span>
|
9
|
+
<img src="../../../static/newStyle/login-con.png"/>
|
10
|
+
<span>联系我们</span>
|
11
|
+
</div>
|
9
12
|
</div>
|
10
13
|
</div>
|
14
|
+
|
15
|
+
<modal :show.sync="showus" backdrop="true" width="50%" style="width:auto;">
|
16
|
+
<article slot="modal-body" class="modal-body" >
|
17
|
+
<img style="height:100%;width:100%" src="../../../static/newStyle/about-us.png"/>
|
18
|
+
</article>
|
19
|
+
<footer slot="modal-footer" class="modal-footer">
|
20
|
+
</footer>
|
21
|
+
</modal>
|
22
|
+
|
23
|
+
|
11
24
|
<div class="logoew" v-if="logoandroid" >
|
12
25
|
<div v-if="logoandroid" class="imglogo"></div>
|
13
|
-
|
14
|
-
|
26
|
+
<p class="logocontent">燃气客服系统Android版</p>
|
27
|
+
<p class="logofooter">(仅浏览器扫描)</p>
|
15
28
|
</div>
|
16
29
|
<!--输入框-->
|
17
30
|
<div class="loginmain">
|
@@ -103,6 +116,7 @@
|
|
103
116
|
import co from 'co'
|
104
117
|
import $ from 'jquery'
|
105
118
|
import Vue from 'vue'
|
119
|
+
import {HttpResetClass} from 'vue-client'
|
106
120
|
|
107
121
|
let saveGen = function *(self) {
|
108
122
|
try {
|
@@ -190,7 +204,19 @@
|
|
190
204
|
}
|
191
205
|
export default {
|
192
206
|
title: '登录',
|
193
|
-
ready () {
|
207
|
+
async ready () {
|
208
|
+
let http = new HttpResetClass()
|
209
|
+
let res = await http.load('POST', 'rs/sql/singleTable',
|
210
|
+
{data:{
|
211
|
+
tablename: 't_changedeclare',
|
212
|
+
condition: ` f_type ='变更通知' `
|
213
|
+
}
|
214
|
+
}, {resolveMsg: null, rejectMsg: '获取通知出错!!'})
|
215
|
+
if(res.data.length>0){
|
216
|
+
console.log("---------------获取通知",res.data[0].f_change_message)
|
217
|
+
this.notice=res.data[0].f_change_message
|
218
|
+
}
|
219
|
+
|
194
220
|
if (this.$login && this.$login.getUrlCompileParames('name') && this.$login.getUrlCompileParames('password')) {
|
195
221
|
this.model.ename = this.$login.getUrlCompileParames('name')
|
196
222
|
this.model.password = this.$login.getUrlCompileParames('password')
|
@@ -228,7 +254,9 @@
|
|
228
254
|
picLyanzhengma: '',
|
229
255
|
// 修改密码弹框展示
|
230
256
|
modifyPwShow: false,
|
231
|
-
logoandroid:false
|
257
|
+
logoandroid:false,
|
258
|
+
showus:false,
|
259
|
+
notice:''
|
232
260
|
}
|
233
261
|
},
|
234
262
|
methods: {
|
@@ -3,6 +3,7 @@
|
|
3
3
|
:value.sync="selectres"
|
4
4
|
:multiple="isMul"
|
5
5
|
search="true"
|
6
|
+
:disabled="mustselect"
|
6
7
|
:close-on-select="!isMul"
|
7
8
|
@change="resChange"
|
8
9
|
>
|
@@ -33,6 +34,10 @@
|
|
33
34
|
type: Array,
|
34
35
|
default() { return [] },
|
35
36
|
},
|
37
|
+
mustselect: {
|
38
|
+
type: Boolean,
|
39
|
+
default: false
|
40
|
+
},
|
36
41
|
},
|
37
42
|
data () {
|
38
43
|
return {
|
@@ -1,184 +1,196 @@
|
|
1
|
-
<template>
|
2
|
-
<div :class="style" v-show="companyshow">
|
3
|
-
<label class="font_normal_body">公  司</label>
|
4
|
-
<right-tree @re-res="getorg"
|
5
|
-
:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<
|
10
|
-
|
11
|
-
|
12
|
-
:
|
13
|
-
:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
type:
|
54
|
-
default:
|
55
|
-
},
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
}
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
if(
|
149
|
-
condition += " and
|
150
|
-
}
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
this.
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
this.
|
170
|
-
|
171
|
-
|
172
|
-
this.
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
1
|
+
<template>
|
2
|
+
<div :class="style" v-show="companyshow">
|
3
|
+
<label class="font_normal_body">公  司</label>
|
4
|
+
<right-tree @re-res="getorg"
|
5
|
+
:mustselect="mustselect"
|
6
|
+
:initresid='initres.org'></right-tree>
|
7
|
+
</div>
|
8
|
+
<div :class="style" v-show="departmentshow">
|
9
|
+
<label class="font_normal_body">部  门</label>
|
10
|
+
<res-select restype='department' v-ref:department
|
11
|
+
@res-select="getdep"
|
12
|
+
:parentresid="depresid"
|
13
|
+
:initresid='initres.dep'
|
14
|
+
:mustselect="mustselect"
|
15
|
+
:is-mul="mul">
|
16
|
+
</res-select>
|
17
|
+
</div>
|
18
|
+
<div :class="style" v-show="operatorshow && (!cascade)">
|
19
|
+
<label class="font_normal_body">人  员</label>
|
20
|
+
<res-select restype='user'
|
21
|
+
@res-select="getuser"
|
22
|
+
:parentresid="depresid"
|
23
|
+
:initresid='initres.user'
|
24
|
+
:mustselect="mustselect"
|
25
|
+
:is-mul="mul">
|
26
|
+
</res-select>
|
27
|
+
</div>
|
28
|
+
<div :class="style" v-show="operatorshow && cascade">
|
29
|
+
<label class="font_normal_body">人  员</label>
|
30
|
+
<res-select restype='user'
|
31
|
+
@res-select="getuser"
|
32
|
+
:parentresid="userresid"
|
33
|
+
:initresid='initres.user'
|
34
|
+
:mustselect="mustselect"
|
35
|
+
:is-mul="mul">
|
36
|
+
</res-select>
|
37
|
+
</div>
|
38
|
+
<div :class="style " v-if="sliceareashow" >
|
39
|
+
<label class="font_normal_body">片  区</label>
|
40
|
+
<v-select :value.sync="slice_area" v-model="slice_area" @change='getarea'
|
41
|
+
:options='sliceArea' placeholder='片区/管理站' filer-key="name"
|
42
|
+
close-on-select v-ref:slice>
|
43
|
+
</v-select>
|
44
|
+
</div>
|
45
|
+
</template>
|
46
|
+
<script>
|
47
|
+
import plugin from '../../plugins/GetLoginInfoService'
|
48
|
+
import { HttpResetClass } from 'vue-client'
|
49
|
+
export default {
|
50
|
+
title: '资源选择测试',
|
51
|
+
props: {
|
52
|
+
style: {
|
53
|
+
type: String,
|
54
|
+
default: 'col-sm-2 form-group'
|
55
|
+
},
|
56
|
+
mul: {
|
57
|
+
type: Boolean,
|
58
|
+
default: true
|
59
|
+
},
|
60
|
+
//初始值
|
61
|
+
initres: {
|
62
|
+
type: Object,
|
63
|
+
default: null,
|
64
|
+
},
|
65
|
+
showComponent:{
|
66
|
+
default:['company','department','operator','slicearea']
|
67
|
+
},
|
68
|
+
//人员是否和部门关联
|
69
|
+
cascade: {
|
70
|
+
type: Boolean,
|
71
|
+
default: false
|
72
|
+
},
|
73
|
+
selectin: {
|
74
|
+
type: Boolean,
|
75
|
+
default: false
|
76
|
+
}
|
77
|
+
},
|
78
|
+
data () {
|
79
|
+
return {
|
80
|
+
orgresid:[this.$login.f.orgid],
|
81
|
+
depresid:[],
|
82
|
+
userresid:[],
|
83
|
+
sliceArea: [],
|
84
|
+
slice_area:[],
|
85
|
+
companyshow:false,
|
86
|
+
departmentshow:false,
|
87
|
+
operatorshow:false,
|
88
|
+
sliceareashow:false,
|
89
|
+
mustselect:false,
|
90
|
+
obj:{
|
91
|
+
orgnames:[],
|
92
|
+
depnames:[],
|
93
|
+
operatornames:[]
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
ready () {
|
98
|
+
if(this.$login.r.includes('部门默认选中')&& this.selectin){
|
99
|
+
this.initres.dep = [this.$login.f.depids]
|
100
|
+
}
|
101
|
+
if(this.$login.r.includes('人员默认选中')&& this.selectin){
|
102
|
+
this.initres.user = [this.$login.f.id]
|
103
|
+
if(this.$login.r.includes('人员强制选中')){
|
104
|
+
this.mustselect = true
|
105
|
+
}
|
106
|
+
}
|
107
|
+
this.initComponent();
|
108
|
+
this.initAreas(this.$login.f.orgid)
|
109
|
+
},
|
110
|
+
methods:{
|
111
|
+
initComponent(){
|
112
|
+
let self=this;
|
113
|
+
this.showComponent.find((item)=>{
|
114
|
+
switch(item){
|
115
|
+
case 'company': self.companyshow=true; break;
|
116
|
+
case 'department': self.departmentshow=true; break;
|
117
|
+
case 'operator': self.operatorshow=true; break;
|
118
|
+
case 'slicearea': self.sliceareashow=true; break;
|
119
|
+
}
|
120
|
+
})
|
121
|
+
},
|
122
|
+
// 初始化片区
|
123
|
+
async initAreas (val) {
|
124
|
+
if (val) {
|
125
|
+
let http = new HttpResetClass()
|
126
|
+
let getAllArea = await http.load('POST', '/rs/search', {
|
127
|
+
source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
|
128
|
+
userid: this.$login.f.id
|
129
|
+
}, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
|
130
|
+
let arr = getAllArea.data.filter((res) => {
|
131
|
+
return res.parentid == val
|
132
|
+
})
|
133
|
+
this.sliceArea = []
|
134
|
+
this.slice_area = []
|
135
|
+
arr.forEach((res) => {
|
136
|
+
this.sliceArea.push({label: res.name, value: {name: res.name, code:res.number}})
|
137
|
+
})
|
138
|
+
}
|
139
|
+
},
|
140
|
+
returnOrg(ids){
|
141
|
+
let limit = this.$login.r.includes('数据授权限定')
|
142
|
+
|
143
|
+
let condition;
|
144
|
+
if(this.depresid.length > 0)
|
145
|
+
condition = " and f_orgid in " + plugin.convertToIn(this.depresid);
|
146
|
+
else
|
147
|
+
condition = " and f_orgid = " + this.$login.f.orgid;
|
148
|
+
if(this.userresid.length > 0){
|
149
|
+
condition += " and f_depid in " + plugin.convertToIn(this.userresid);
|
150
|
+
} else {
|
151
|
+
if (limit) {
|
152
|
+
let depids = []
|
153
|
+
for (let row of this.$refs.department.resoptions) {
|
154
|
+
depids.push(row.value)
|
155
|
+
}
|
156
|
+
let depid = depids.length ? plugin.convertToIn(depids) : ('')
|
157
|
+
condition += " and f_depid in " + depid;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
if(ids && ids.length > 0){
|
161
|
+
condition += " and f_operatorid in " + plugin.convertToIn(ids);
|
162
|
+
}
|
163
|
+
if(this.slice_area.length>0){
|
164
|
+
condition += " and f_zones = '" + this.slice_area[0].name+"'"
|
165
|
+
}
|
166
|
+
this.$dispatch('re-res',condition,this.obj)
|
167
|
+
},
|
168
|
+
getorg (obj) {
|
169
|
+
this.depresid=obj.resids
|
170
|
+
this.obj.orgnames = obj.res
|
171
|
+
this.initAreas(obj.resids)
|
172
|
+
this.returnOrg();
|
173
|
+
},
|
174
|
+
getdep(obj,val) {
|
175
|
+
this.obj.depnames = val
|
176
|
+
this.userresid=obj
|
177
|
+
this.returnOrg();
|
178
|
+
},
|
179
|
+
getuser(obj) {
|
180
|
+
this.obj.operatornames = obj
|
181
|
+
this.returnOrg(obj);
|
182
|
+
},
|
183
|
+
getarea(val) {
|
184
|
+
this.slice_area=val
|
185
|
+
if(this.obj.operatornames){
|
186
|
+
this.returnOrg(this.obj.operatornames);
|
187
|
+
}else{
|
188
|
+
this.returnOrg();
|
189
|
+
}
|
190
|
+
}
|
191
|
+
},
|
192
|
+
watch: {
|
193
|
+
|
194
|
+
}
|
195
|
+
}
|
196
|
+
</script>
|
@@ -26,6 +26,7 @@
|
|
26
26
|
<v-select v-if="islist"
|
27
27
|
placeholder='请选择'
|
28
28
|
:options='childrenOptions'
|
29
|
+
:disabled="mustselect"
|
29
30
|
@change="selectclick"
|
30
31
|
:value-single="true"
|
31
32
|
close-on-select></v-select>
|
@@ -132,6 +133,10 @@ export default {
|
|
132
133
|
type: String,
|
133
134
|
default:''
|
134
135
|
},
|
136
|
+
mustselect: {
|
137
|
+
type: Boolean,
|
138
|
+
default: false
|
139
|
+
},
|
135
140
|
width:{
|
136
141
|
type:String,
|
137
142
|
default:'60%'
|