system-clients 3.0.46 → 3.0.47-fanxian

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.
Files changed (100) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  5. package/README.md +36 -36
  6. package/SystemClient.iml +11 -11
  7. package/build/css-loaders.js +34 -34
  8. package/build/dev-client.js +8 -8
  9. package/build/example-server.js +80 -80
  10. package/build/release.sh +28 -28
  11. package/build/utils.js +71 -71
  12. package/build/webpack.base.conf.js +75 -75
  13. package/build/webpack.dev.conf.js +31 -31
  14. package/build/webpack.example.conf.js +49 -49
  15. package/build/webpack.prod.conf.js +60 -60
  16. package/build/webpack.test.conf.js +31 -31
  17. package/build.gradle +6 -6
  18. package/config/dev.env.js +6 -6
  19. package/config/index.js +38 -38
  20. package/config/prod.env.js +3 -3
  21. package/config/test.env.js +6 -6
  22. package/doc/Login.md +7 -7
  23. package/examples/ReadCard/App.vue +23 -23
  24. package/examples/ReadCard/index.html +11 -11
  25. package/examples/ReadCard/main.js +12 -12
  26. package/index.html +21 -21
  27. package/package.json +1 -1
  28. package/release.bat +5 -5
  29. package/src/App.vue +24 -24
  30. package/src/LodopFuncs.js +123 -123
  31. package/src/assets/binding.svg +1 -1
  32. package/src/assets/unbind.svg +1 -1
  33. package/src/assets//345/205/254/345/221/212.svg +1 -1
  34. package/src/assets//347/207/203/346/260/224/347/274/264/350/264/271.eps +116 -116
  35. package/src/assets//350/201/224/347/263/273/346/210/221/344/273/254.svg +1 -1
  36. package/src/components/List.vue +51 -51
  37. package/src/components/Main.vue +632 -533
  38. package/src/components/Table.js +74 -74
  39. package/src/components/Util.js +343 -343
  40. package/src/components/equipment/EquipmentManage.vue +65 -65
  41. package/src/components/equipment/PcAdd.vue +105 -105
  42. package/src/components/equipment/PcList.vue +119 -119
  43. package/src/components/equipment/PcManage.vue +60 -60
  44. package/src/components/equipment/PhoneAdd.vue +94 -94
  45. package/src/components/equipment/PhoneList.vue +102 -102
  46. package/src/components/equipment/PhoneManage.vue +60 -60
  47. package/src/components/equipment/PosAdd.vue +137 -137
  48. package/src/components/equipment/PosList.vue +156 -156
  49. package/src/components/equipment/PosManage.vue +67 -67
  50. package/src/components/materialManage/materialData.vue +44 -44
  51. package/src/components/materialManage/materialList.vue +255 -255
  52. package/src/components/parammanage/AlarmInformation.vue +122 -0
  53. package/src/components/parammanage/ParamManage.vue +42 -42
  54. package/src/components/parammanage/ParamManages.vue +43 -43
  55. package/src/components/parammanage/ParamPage.vue +314 -314
  56. package/src/components/parammanage/ParamPages.vue +214 -222
  57. package/src/components/parammanage/SinglePage.vue +237 -235
  58. package/src/components/parammanage/SinglePages.vue +161 -167
  59. package/src/components/server/AddChangeMsg.vue +66 -66
  60. package/src/components/server/ChangeDeclare.vue +45 -45
  61. package/src/components/server/IconTree.vue +26 -26
  62. package/src/components/server/LeftTree.vue +111 -111
  63. package/src/components/server/LoadData.vue +36 -36
  64. package/src/components/server/Login.vue +625 -624
  65. package/src/components/server/Menu.vue +188 -188
  66. package/src/components/server/ModifyPw.vue +125 -106
  67. package/src/components/server/ResSelect.vue +150 -150
  68. package/src/components/server/ResSelectGroup.vue +140 -140
  69. package/src/components/server/RightTree.vue +263 -263
  70. package/src/components/server/RoleSelector.vue +88 -88
  71. package/src/components/server/TestResSelect.vue +1 -1
  72. package/src/components/server/TestResSelectGroup.vue +388 -388
  73. package/src/components/server/TestRightTree.vue +42 -42
  74. package/src/index.js +7 -7
  75. package/src/plugins/GetLoginInfoService.js +509 -513
  76. package/src/plugins/validation.js +7 -7
  77. package/src/project/ProjectPage.vue +24 -24
  78. package/src/project/State.js +17 -17
  79. package/src/stores/AppData.js +38 -38
  80. package/src/system.js +78 -76
  81. package/src/systemphone.js +11 -11
  82. package/src/util/LdapHelper.js +75 -75
  83. package/static/newStyle/alarm.mp3 +0 -0
  84. package/test/e2e/custom-assertions/elementCount.js +26 -26
  85. package/test/e2e/nightwatch.conf.js +40 -40
  86. package/test/e2e/runner.js +30 -30
  87. package/test/e2e/specs/test.js +14 -14
  88. package/test/unit/.eslintrc +5 -5
  89. package/test/unit/index.js +13 -13
  90. package/test/unit/init.js +10 -10
  91. package/test/unit/specs/base64.spec.js +5 -5
  92. package/test/unit/specs/components/parammanage/SinglePage.spec.js +20 -20
  93. package/test/unit/specs/components/server/LeftTree/App.vue +18 -18
  94. package/test/unit/specs/components/server/LoadData.spec.js +24 -24
  95. package/test/unit/specs/components/server/Login.spec.js +61 -61
  96. package/test/unit/specs/components/server/RightTree.spec.js +50 -50
  97. package/test/unit/specs/plugins/GetLoginInfoService.spec.js +55 -55
  98. package/test/unit/test.html +76 -76
  99. package/.gradle/3.5.1/file-changes/last-build.bin +0 -0
  100. package/.gradle/3.5.1/taskHistory/taskHistory.lock +0 -0
@@ -1,533 +1,632 @@
1
- <template>
2
- <div @click="hindsetting1()">
3
- <!-- <div class="system-main" id="box" v-el:box v-if="!isManger">-->
4
- <!-- <div class="system-logo" style="height: auto">-->
5
- <!-- <img :src="imgs.logoimg" alt=""/>-->
6
- <!-- <label>{{systemname}}</label>-->
7
- <!-- <div class="system-logo-chi" >-->
8
- <!-- <div v-if="userpane" class="auto system-logo-prompt" style="float: right">-->
9
- <!-- <span>{{orgpathnames}}</span>-->
10
- <!-- </div>-->
11
- <!-- &lt;!&ndash;<div class="system-logo-chi-img1" style="float: right" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()"></div>&ndash;&gt;-->
12
- <!-- <span style="float: right; padding-top: 2px" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()" class="system-logo-chi-span-1">{{$login.f.name}}</span>-->
13
- <!-- <span style="border-left: 1px solid;float: right;padding-top: 2px" class="system-logo-chi-span-1"> <img src="../../static/newStyle/login-f.png" height="20" width="20"> </span>-->
14
- <!-- <a href="index.html" onclick="return confirm('您确定要退出系统吗?');" style="float: right;padding-top: 2px">-->
15
- <!-- <img src="../../static/newStyle/system-off.png" alt="" >-->
16
- <!-- <span class="system-logo-chi-span-1">退出系统</span>-->
17
- <!-- </a>-->
18
- <!-- <div style="float: right" :class="{'dropstyle':setting,'dropstyle-1':!setting}">-->
19
- <!-- <dropdown class="auto" >-->
20
- <!-- <span data-toggle="dropdown" @click="hindsetting()" >-->
21
- <!-- <img :src="srcsetting" alt=""><span>系统设置</span>-->
22
- <!-- </span>-->
23
- <!-- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up dropstyle-chi" >-->
24
- <!-- &lt;!&ndash; <li>系统信息及设置</li>&ndash;&gt;-->
25
- <!-- <li style="color: #ffffff;white-space: nowrap" @click="show=true">修改密码</li>-->
26
- <!-- <li style="color: #ffffff;white-space: nowrap" @click="AddChangeMsgShow=true">系统版本</li>-->
27
- <!-- </ul>-->
28
- <!-- </dropdown>-->
29
- <!-- </div>-->
30
-
31
- <!-- </div>-->
32
- <!-- </div>-->
33
- <!-- <div class="system-left tree-flex" :class="{'system-left-1': !treeOrIcon}" id="top" v-el:top >-->
34
- <!-- <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >-->
35
- <!-- <div class="span system-left-tree" >-->
36
- <!-- <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" :treeOrIcon="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>-->
37
- <!-- &lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
38
- <!-- </div>-->
39
- <!-- </div>-->
40
- <!-- <div class="system-foot-stretch" >-->
41
- <!-- <a @click="changeShow()"><img src="../../static/images/lefticon/菜单伸缩.png" alt=""></a>-->
42
- <!-- </div>-->
43
- <!-- </div>-->
44
-
45
-
46
- <!-- <div class="system-right" :class="{'system-right-1': !treeOrIcon}" id="bottom" v-el:bottom>-->
47
- <!-- <div class="span">-->
48
- <!-- <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>-->
49
- <!-- <dynamic :comps='[]' :showup="true" :showhide="false" name='main' :selecttab.sync="selecttab" @tab-changed="tabChange" @tabscg="tabcg" v-ref:mic v-show="!($refs.mic.tabs.length === 0)"></dynamic>-->
50
- <!-- </div>-->
51
- <!-- </div>-->
52
- <!-- <div class="system-foot" v-el:bottom>-->
53
-
54
- <!-- <div class="system-foot-box">-->
55
-
56
- <!-- </div>-->
57
- <!-- </div>-->
58
- <!-- </div>-->
59
- <div class='flex-row system-main' id="box" v-el:box v-if="!isManger">
60
- <div class="auto " :class="{'login-operator1':$refs.mic.tabs.length === 0,'login-operator':$refs.mic.tabs.length != 0}">
61
- <span>
62
- <img
63
- src="../assets/people.png" height="15" width="15">
64
- 登录人:</span>
65
- <label>{{orgpathnames}}</label>
66
- </div>
67
- <div class="system-left tree-flex" :class="{'tree-flex-icon': !treeOrIcon}" id="top" v-el:top >
68
- <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >
69
- <div class="span system-left-tree " style="height:85%">
70
- <h3>{{systemname}}</h3>
71
- <!-- <div class="span" style="margin-bottom:10px;padding-bottom:5px;padding-top:5px;flex: 1;border-top: 1px solid #e5e5e5;border-bottom: 1px solid #e5e5e5;">-->
72
- <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" v-show="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>
73
- <!--&lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
74
- </div>
75
-
76
- <div class="tree-flex-footer">
77
- <!-- <a @click="changeShow()"><img :src="imgs.open" alt=""><span v-if="treeOrIcon">菜单伸缩</span></a>-->
78
- <!-- <a><img src="../../../static/treeset.png" alt="">系统设置</a> -->
79
- <dropdown class="auto">
80
- <button type="button" data-toggle="dropdown">
81
- <img :src="imgs.set" alt=""><span v-if="treeOrIcon">系统设置</span>
82
- </button>
83
- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up">
84
- <li>系统信息及设置</li>
85
- <!-- <li>{{name}}</li> -->
86
- <li>{{date}}</li>
87
- <li @click="show=true">修改密码</li>
88
- <li @click="AddChangeMsgShow=true">系统版本:1.0.0</li>
89
- </ul>
90
-
91
- </dropdown>
92
- <a href="index.html" onclick="return confirm('您确定要退出系统吗?');">
93
- <img :src="imgs.out" alt="" ><span v-if="treeOrIcon">退出系统</span>
94
- </a>
95
- </div>
96
- </div>
97
- </div>
98
- <!-- <div class="line" id="line" v-show="treeOrIcon" v-el:line></div> -->
99
-
100
- <div class="flex right-bg system-right" id="bottom" v-el:bottom>
101
- <!-- <operator-badge></operator-badge> -->
102
- <div class="span">
103
- <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>
104
- <dynamic :comps='[]' name='main' :selecttab.sync="selecttab" @tab-changed="tabChange" @tabscg="tabcg" v-ref:mic v-show="!($refs.mic.tabs.length === 0)"></dynamic>
105
- </div>
106
- </div>
107
- </div>
108
- <div v-show="isManger">
109
- <route v-ref:route></route>
110
- </div>
111
-
112
- <!-- 变更录入 模态框 -->
113
- <add-changemsg :show="AddChangeMsgShow" v-on:toggle = "AddChangeMsgShow = false"></add-changemsg>
114
- <!-- 修改密码组件 -->
115
- <modify-pw :show.sync="show" v-if="show"></modify-pw>
116
- <!-- 修改密码模态框 -->
117
- </div>
118
- </template>
119
-
120
- <script>
121
- import vue from 'vue'
122
- import co from 'co'
123
-
124
- window.onunload = () => {
125
- vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
126
- }
127
- window.onbeforeunload = () => {
128
- vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
129
- }
130
- export default {
131
- title: '主界面',
132
- props: ['functions', 'userid'],
133
- data () {
134
- return {
135
- // 左侧树下部三个小图标
136
- imgs: {
137
- open: '/images/lefticon/菜单伸缩.png',
138
- set: '/images/lefticon/系统设置.png',
139
- out: '/images/lefticon/退出系统.png',
140
- img1: '/images/newStyle/login-user.png',
141
- logoimg: '/static/newStyle/fife.png'
142
- // img2: '/images/lefticon/退出系统.png',
143
- },
144
- treeOrIcon: false,
145
- isManger: false,
146
- show: false,
147
- orgpathnames: `${this.$login.f.orgs}-${this.$login.f.deps}-${this.$login.f.name}`,
148
- systemname: '客服系统',
149
- date: this.$login.toStandardDateString(),
150
- tabs:[], //已初始化页签数组
151
- selecttab:'',
152
- setting:true,
153
- srcsetting:'../../static/newStyle/setting.png'
154
-
155
- // headerHint: true, // 右侧顶部提示信息
156
- // value: 25645.26,
157
- // AddChangeMsgShow: false,
158
- // showsum: false
159
- }
160
- },
161
- ready () {
162
- let component = this.$login.getUrlCompileParames('component')
163
- if (component) {
164
- this.isManger = true
165
- this.$refs.route.init(component, {data: this.functions.functions})
166
- }
167
- if(this.$login.f.password == '1'){
168
- this.$showMessage('本地登录系统为此账户的初始密码,请确认修改密码!!!', ['confirm', 'cancel']).then((res) => {
169
- if(res == 'confirm')
170
- this.show = true
171
- })
172
- }
173
- console.log("系统名称",this.$appdata.getSingleValue("系统名称"))
174
- this.systemname = this.$appdata.getSingleValue("系统名称")? this.$appdata.getSingleValue("系统名称"):'客服系统'
175
- // let oBox = this.getElement("box")
176
- // let oTop = this.getElement("top")
177
- // let oBottom = this.getElement("bottom")
178
- // let oLine = this.getElement("line")
179
- // let that = this
180
- // oLine.onmousedown = function(e) {
181
- // let disX = (e || event).clientX
182
- // oLine.left = oLine.offsetLeft
183
- // document.onmousemove = function(e) {
184
- // let iT = oLine.left + ((e || event).clientX - disX)
185
- // var e = e || window.event
186
- // let tarnameb = e.target || e.srcElement
187
- // let maxT = oBox.clientWight - oLine.offsetWidth
188
- // oLine.style.margin = 0
189
- // iT < 0 && (iT = 0)
190
- // iT > maxT && (iT = maxT)
191
- // oLine.style.left = oTop.style.width = iT + "px"
192
- // oBottom.style.width = oBox.clientWidth - iT + "px"
193
- // that.$set('treeWidth', iT)
194
- // return false
195
- // }
196
- // document.onmouseup = function() {
197
- // document.onmousemove = null
198
- // document.onmouseup = null
199
- // oLine.releaseCapture && oLine.releaseCapture()
200
- // }
201
- // oLine.setCapture && oLine.setCapture()
202
- // return false
203
- // }
204
- this.changeShow()
205
- },
206
- methods: {
207
- hindsetting(){
208
-
209
- this.setting=!this.setting
210
- if(this.setting){
211
- this.srcsetting='../../static/newStyle/setting.png'
212
- }else {
213
- this.srcsetting='../../static/newStyle/setting1.png'
214
- }
215
-
216
- },
217
- hindsetting1(){
218
-
219
- if(!this.setting){
220
- this.srcsetting='../../static/newStyle/setting.png'
221
- this.setting=true
222
- }
223
-
224
- },
225
- isnodo(val){
226
- console.log(val,'ss')
227
- this.selecttab = val
228
- },
229
- unfurl () {
230
- if(this.showsum){
231
- this.showsum = false
232
- } else {
233
- this.showsum = true
234
- }
235
- },
236
- // getElement(id) {
237
- // return document.getElementById(id)
238
- // },
239
- changeShow () {
240
- // this.treeOrIcon = !this.treeOrIcon
241
- // let oBox = this.getElement("box")
242
- // let oTop = this.getElement("top")
243
- // let oBottom = this.getElement("bottom")
244
- // let oLine = this.getElement("line")
245
- // if (this.treeOrIcon) {
246
- // // oLine.style.left = oTop.style.width = 300 + "px"
247
- // oTop.style.width = 150 + "px"
248
- // oBottom.style.width = oBox.clientWidth - 150 + "px"
249
- // }else {
250
- // oLine.style.left = oTop.style.width = 50 + "px"
251
- // oBottom.style.width = oBox.clientWidth - 50 + "px"
252
- // }
253
- // }
254
- this.treeOrIcon = !this.treeOrIcon
255
- // if (this.treeOrIcon) {
256
- // this.$els.top.style.width = 14 + "%"
257
- // this.$els.bottom.style.width = this.$els.box.clientWidth - 14 + "%"
258
- // }else {
259
- // this.$els.top.style.width = 8 + "%"
260
- // this.$els.bottom.style.width = this.$els.box.clientWidth - 8 + "%"
261
- // }
262
- },
263
- changeMain(userid) {
264
- this.$goto('res-main', {userid: this.userid}, 'self')
265
- },
266
- tabChange (name) {
267
- console.log(name,'tabchanage')
268
- this.selecttab = name
269
- this.$refs.tree.changeSelect(name)
270
- },
271
- tabcg(val){
272
- console.log(val)
273
- this.tabs = val
274
- }
275
- },
276
- computed: {
277
- nowDate () {
278
- return this.$login.getNowDate()
279
- }
280
- }
281
- }
282
- </script>
283
- <style lang="less">
284
- /* 组件内通用样式 */
285
- .select-error {
286
- button {
287
- border-bottom: 1px solid #a94442!important;
288
- }
289
- }
290
- // input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{
291
- // -webkit-appearance:textfield;
292
- // }
293
- /* 表单输入框组 */
294
- .form-input-group {
295
- display: flex;
296
-
297
- label {
298
- width: 100px;
299
- text-align: right;
300
- + * {
301
- flex: 1;
302
- }
303
- }
304
- }
305
- // 日期组件在表单中沾满
306
- .form-horizontal .datepicker {
307
- width: 100%;
308
- }
309
- // 下拉选择框占据剩余全部空间
310
- .select-overspread {
311
- .form-group {
312
- // margin: 0px 5px 10px 0px;
313
- .form-control {
314
- margin-right: 0px;
315
- }
316
- }
317
- .btn-group, .btn-group-vertical {
318
- width: 100%;
319
- // padding-right: 5px;
320
- button {
321
- width: 100%;
322
- display: flex;
323
- justify-content: space-between;
324
- align-items: center;
325
- }
326
- }
327
- .dropdown-menu {
328
- width: 100%
329
- }
330
- }
331
- // 需要特定宽度的的样式
332
- .width-60 {
333
- width: 60px;
334
- }
335
- .userpanel {
336
- font-weight: 300;
337
- color: #333;
338
- position: fixed;
339
- right: 30px;
340
- top: 45px;
341
- background-color: white;
342
- box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px ;
343
- padding: 4px 10px 4px 10px;
344
- border-radius:2px;
345
- }
346
- .width-80 {
347
- width: 80px;
348
- }
349
- .width-100 {
350
- width: 100px;
351
- }
352
-
353
-
354
-
355
- /*右侧区域的背景*/
356
- .right-bg {
357
- width: 100%;
358
- flex: 1;
359
- color: #304A66;
360
- }
361
- .tree-flex {
362
- height: 100%;
363
- // width: 150px;
364
- /*width: 60px;*/
365
- background: #4a7cae;
366
- color: #fff;
367
-
368
- }
369
- .tree-flex-icon {
370
- width: 50px;
371
- /*transition: 0.5s;*/
372
- > .span {
373
- overflow-x: visible;
374
- }
375
- }
376
- .tree-flex h3 {
377
- text-align: center;
378
- margin: 1em 0;
379
- }
380
-
381
- .tree-flex-footer {
382
- height: 50px;
383
- display: flex;
384
- flex-direction:column;
385
- color: #fff;
386
- }
387
- .tree-flex-footer a,.tree-flex-footer button{
388
- flex: 1;
389
- padding: 8px 5px;
390
- font-size: 1.2em;
391
- // border-top: 1px solid #697D93;
392
- border-top: 1px solid #4a7cae;
393
- text-decoration: none;
394
- color: #fff;
395
- cursor: pointer;
396
- }
397
- .tree-flex-footer button {
398
- height: auto;
399
- width: 100%;
400
- border-radius: 0px;
401
- background-color: rgba(255,255,255,0);
402
- border: none;
403
- border-top: 1px solid #4a7cae;
404
- // border-top: 1px solid #697D93;
405
- text-align: left;
406
- }
407
- .tree-flex-footer button:hover{
408
- outline: none;
409
- background-color: rgba(255,255,255,0.2);
410
- }
411
- .tree-flex-footer button:focus {
412
- outline: none;
413
- background-color: rgba(255,255,255,0.5);
414
- }
415
- .tree-flex-footer a:hover {
416
- color: #FFF;
417
- background-color: rgba(255,255,255,0.2);
418
- }
419
- .tree-flex .btn-group {
420
- height: 50px!important;
421
- }
422
-
423
- .tree-flex .dropdown-menu {
424
- /* 控制显示列表的样式 */
425
- background: #4a7cae;
426
- border-radius: 0px;
427
- color: #fff;
428
- width: auto;
429
- margin: 0px;
430
- padding: 0px;
431
- }
432
- .tree-flex .dropdown-menu-up {
433
- /* bottom,top控制上下,left和right控制左右*/
434
- left: 100%!important;
435
- top: auto!important;
436
- bottom: 0;
437
- }
438
- .tree-flex .dropdown-menu-down {
439
- /* bottom,top控制上下,left和right控制左右*/
440
- left: 100%!important;
441
- top: 0!important;
442
- }
443
- .tree-flex .dropdown-menu li{
444
- text-align: center;
445
- line-height: 50px;
446
- border-bottom: 1px solid #697D93;
447
- font-size: 1.2em;
448
- width: auto;
449
- white-space: nowrap;
450
- cursor: default;
451
-
452
- }
453
- .tree-flex .dropdown-menu li + li {
454
- text-align: left;
455
- border: 0;
456
- line-height: 40px;
457
- padding-left: 15px;
458
- padding-right: 15px;
459
- font-size: 1em;
460
- cursor: pointer;
461
- }
462
- .tree-flex .dropdown-menu li + li:hover {
463
- background-color: rgba(255,255,255,0.2);
464
- }
465
- .tree-flex .dropdown-menu li a {
466
- border: none;
467
- color: #fff;
468
- height: 40px;
469
- line-height: 40px;
470
- font-size: 1em;
471
- padding: 0px;
472
- }
473
- .tree-flex .dropdown-menu li a:hover {
474
- color: #fff;
475
- background-color: rgba(255,255,255,0);
476
- }
477
- .tree-flex img{
478
- height: 1.2em;
479
- width: 1.2em;
480
- margin-right: 15px;
481
- margin-left: 5px;
482
- }
483
- .line {
484
- height: 100%;
485
- width: 5px;
486
- background: #4C637B;
487
- cursor: e-resize;
488
- }
489
- /*为树(tree)组件写的样式*/
490
- .tree-img {
491
- font-size: 1.2em;
492
- }
493
-
494
- /*将较长信息截断显示,鼠标悬停显示全部信息*/
495
- .cutout50 {
496
- max-width: 50px;
497
- overflow:hidden;
498
- text-overflow: ellipsis;
499
- white-space: nowrap;
500
- }
501
-
502
- /* 滚动条样式 */
503
- /*---滚动条默认显示样式--*/
504
- ::-webkit-scrollbar-thumb{
505
- // display: none;
506
- background-color:rgba(0,0,0,0.4);
507
- /*background-color:red;*/
508
- height:50px;
509
- outline-offset:-2px;
510
- /*outline:2px solid #fff;*/
511
- -webkit-border-radius:4px;
512
- /*border: 2px solid #fff;*/
513
- }
514
-
515
- /*---鼠标点击滚动条显示样式--*/
516
- ::-webkit-scrollbar-thumb:hover{
517
- // display: inherit;
518
- background-color:rgba(0,0,0,0.4);
519
- height:50px;
520
- -webkit-border-radius:4px;
521
- }
522
- /*---滚动条大小--*/
523
- ::-webkit-scrollbar{
524
- width:8px;
525
- height:8px;
526
- }
527
- /*---滚动框背景样式--*/
528
- ::-webkit-scrollbar-track-piece{
529
- /* 全透明,不显示 */
530
- background-color:rgba(255,255,255,0);
531
- -webkit-border-radius:0;
532
- }
533
- </style>
1
+ <template>
2
+ <div @click="hindsetting1()">
3
+ <!-- <div class="system-main" id="box" v-el:box v-if="!isManger">-->
4
+ <!-- <div class="system-logo" style="height: auto">-->
5
+ <!-- <img :src="imgs.logoimg" alt=""/>-->
6
+ <!-- <label>{{systemname}}</label>-->
7
+ <!-- <div class="system-logo-chi" >-->
8
+ <!-- <div v-if="userpane" class="auto system-logo-prompt" style="float: right">-->
9
+ <!-- <span>{{orgpathnames}}</span>-->
10
+ <!-- </div>-->
11
+ <!-- &lt;!&ndash;<div class="system-logo-chi-img1" style="float: right" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()"></div>&ndash;&gt;-->
12
+ <!-- <span style="float: right; padding-top: 2px" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()" class="system-logo-chi-span-1">{{$login.f.name}}</span>-->
13
+ <!-- <span style="border-left: 1px solid;float: right;padding-top: 2px" class="system-logo-chi-span-1"> <img src="../../static/newStyle/login-f.png" height="20" width="20"> </span>-->
14
+ <!-- <a href="index.html" onclick="return confirm('您确定要退出系统吗?');" style="float: right;padding-top: 2px">-->
15
+ <!-- <img src="../../static/newStyle/system-off.png" alt="" >-->
16
+ <!-- <span class="system-logo-chi-span-1">退出系统</span>-->
17
+ <!-- </a>-->
18
+ <!-- <div style="float: right" :class="{'dropstyle':setting,'dropstyle-1':!setting}">-->
19
+ <!-- <dropdown class="auto" >-->
20
+ <!-- <span data-toggle="dropdown" @click="hindsetting()" >-->
21
+ <!-- <img :src="srcsetting" alt=""><span>系统设置</span>-->
22
+ <!-- </span>-->
23
+ <!-- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up dropstyle-chi" >-->
24
+ <!-- &lt;!&ndash; <li>系统信息及设置</li>&ndash;&gt;-->
25
+ <!-- <li style="color: #ffffff;white-space: nowrap" @click="show=true">修改密码</li>-->
26
+ <!-- <li style="color: #ffffff;white-space: nowrap" @click="AddChangeMsgShow=true">系统版本</li>-->
27
+ <!-- </ul>-->
28
+ <!-- </dropdown>-->
29
+ <!-- </div>-->
30
+
31
+ <!-- </div>-->
32
+ <!-- </div>-->
33
+ <!-- <div class="system-left tree-flex" :class="{'system-left-1': !treeOrIcon}" id="top" v-el:top >-->
34
+ <!-- <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >-->
35
+ <!-- <div class="span system-left-tree" >-->
36
+ <!-- <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" :treeOrIcon="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>-->
37
+ <!-- &lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
38
+ <!-- </div>-->
39
+ <!-- </div>-->
40
+ <!-- <div class="system-foot-stretch" >-->
41
+ <!-- <a @click="changeShow()"><img src="../../static/images/lefticon/菜单伸缩.png" alt=""></a>-->
42
+ <!-- </div>-->
43
+ <!-- </div>-->
44
+
45
+
46
+ <!-- <div class="system-right" :class="{'system-right-1': !treeOrIcon}" id="bottom" v-el:bottom>-->
47
+ <!-- <div class="span">-->
48
+ <!-- <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>-->
49
+ <!-- <dynamic :comps='[]' :showup="true" :showhide="false" name='main' :selecttab.sync="selecttab" @tab-changed="tabChange" @tabscg="tabcg" v-ref:mic v-show="!($refs.mic.tabs.length === 0)"></dynamic>-->
50
+ <!-- </div>-->
51
+ <!-- </div>-->
52
+ <!-- <div class="system-foot" v-el:bottom>-->
53
+
54
+ <!-- <div class="system-foot-box">-->
55
+
56
+ <!-- </div>-->
57
+ <!-- </div>-->
58
+ <!-- </div>-->
59
+
60
+ <div class='flex-row aaa system-main' id="box" v-el:box v-if="!isManger">
61
+ <div class="auto" style="position: fixed;right: 370px;top: 15px;color: #333">
62
+ <button class="btn" @click="showAbnormity = true" style="background: none;">
63
+ <img
64
+ src="../assets/shezhi-hover.png" height="15" width="15">
65
+ 异常警报<label style="display: inline-block;width: 8px;height: 8px;border-radius: 50%;background-color: red;text-align: center;line-height: 30px;" v-show="showaData"></label>
66
+ </button>
67
+ <button class="btn" @click="stopSound" style="background: none;">
68
+ 关闭警报
69
+ </button>
70
+ </div>
71
+ <div class="auto" style="position: fixed;right: 30px;top: 20px;color: #333">
72
+ <span>
73
+ <img
74
+ src="../assets/people.png" height="15" width="15">
75
+ 登录人:</span>
76
+ <label>{{orgpathnames}}</label>
77
+ </div>
78
+ <div class="system-left tree-flex" :class="{'tree-flex-icon': !treeOrIcon}" id="top" v-el:top >
79
+ <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >
80
+ <div class="span system-left-tree " style="height:85%">
81
+ <h3>{{systemname}}</h3>
82
+ <!-- <div class="span" style="margin-bottom:10px;padding-bottom:5px;padding-top:5px;flex: 1;border-top: 1px solid #e5e5e5;border-bottom: 1px solid #e5e5e5;">-->
83
+ <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" v-show="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>
84
+ <!--&lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
85
+ </div>
86
+
87
+ <div class="tree-flex-footer">
88
+ <!-- <a @click="changeShow()"><img :src="imgs.open" alt=""><span v-if="treeOrIcon">菜单伸缩</span></a>-->
89
+ <!-- <a><img src="../../../static/treeset.png" alt="">系统设置</a> -->
90
+ <dropdown class="auto">
91
+ <button type="button" data-toggle="dropdown">
92
+ <img :src="imgs.set" alt=""><span v-if="treeOrIcon">系统设置</span>
93
+ </button>
94
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up">
95
+ <li>系统信息及设置</li>
96
+ <!-- <li>{{name}}</li> -->
97
+ <li>{{date}}</li>
98
+ <li @click="show=true">修改密码</li>
99
+ <li @click="AddChangeMsgShow=true">系统版本:1.0.0</li>
100
+ </ul>
101
+
102
+ </dropdown>
103
+ <a href="index.html" onclick="return confirm('您确定要退出系统吗?');">
104
+ <img :src="imgs.out" alt="" ><span v-if="treeOrIcon">退出系统</span>
105
+ </a>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ <!-- <div class="line" id="line" v-show="treeOrIcon" v-el:line></div> -->
110
+
111
+ <div class="flex right-bg system-right" id="bottom" v-el:bottom>
112
+ <!-- <operator-badge></operator-badge> -->
113
+ <div class="span">
114
+ <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>
115
+ <dynamic :comps='[]' name='main' :selecttab.sync="selecttab" @tab-changed="tabChange" @tabscg="tabcg" v-ref:mic v-show="!($refs.mic.tabs.length === 0)"></dynamic>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ <div v-show="isManger">
120
+ <route v-ref:route></route>
121
+ </div>
122
+
123
+ <!-- 变更录入 模态框 -->
124
+ <add-changemsg :show="AddChangeMsgShow" v-on:toggle = "AddChangeMsgShow = false"></add-changemsg>
125
+ <!-- 修改密码组件 -->
126
+ <modify-pw :show.sync="show" v-if="show"></modify-pw>
127
+ <!-- 修改密码模态框 -->
128
+ <!-- 异常查看 -->
129
+ <modal v-if="showAbnormity" :show.sync="showAbnormity" :width="1000" v-ref:modal backdrop="false">
130
+ <header slot="modal-header" class="modal-header">
131
+ <button type="button" class="close" @click="stopSoundNew"><span>&times;</span></button>
132
+ <h4 class="modal-title">异常报警</h4>
133
+ </header>
134
+ <article slot="modal-body" class="modal-body modifystyle auto form-horizontal">
135
+ <alarm-information :mergeinfo=abnormityWarningData></alarm-information>
136
+ </article>
137
+ <footer slot="modal-footer" class="modal-footer">
138
+ <button type="button" class="btn btn-success" @click='stopSoundNew'>确认</button>
139
+ </footer>
140
+ </modal>
141
+ </div>
142
+ </template>
143
+
144
+ <script>
145
+ import vue from 'vue'
146
+ import co from 'co'
147
+ import source from '../../static/newStyle/alarm.mp3'
148
+
149
+ window.onunload = () => {
150
+ vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
151
+ }
152
+ window.onbeforeunload = () => {
153
+ vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
154
+ }
155
+ export default {
156
+ title: '主界面',
157
+ props: ['functions', 'userid'],
158
+ data () {
159
+ return {
160
+ // 左侧树下部三个小图标
161
+ imgs: {
162
+ open: '/images/lefticon/菜单伸缩.png',
163
+ set: '/images/lefticon/系统设置.png',
164
+ out: '/images/lefticon/退出系统.png',
165
+ img1: '/images/newStyle/login-user.png',
166
+ logoimg: '/static/newStyle/fife.png'
167
+ // img2: '/images/lefticon/退出系统.png',
168
+ },
169
+ treeOrIcon: false,
170
+ isManger: false,
171
+ show: false,
172
+ orgpathnames: `${this.$login.f.orgs}-${this.$login.f.deps}-${this.$login.f.name}`,
173
+ systemname: '客服系统',
174
+ date: this.$login.toStandardDateString(),
175
+ tabs:[], //已初始化页签数组
176
+ selecttab:'',
177
+ setting:true,
178
+ srcsetting:'../../static/newStyle/setting.png',
179
+ abnormityWarningData: {
180
+ data: []
181
+ },
182
+ showAbnormity: false,
183
+ showaData: false,
184
+ audio: null,
185
+ isTimeAb: parseInt(this.$appdata.getSingleValue('异常报警查询时间')),
186
+ isBell: this.$appdata.getSingleValue('是否响铃')
187
+
188
+
189
+ // headerHint: true, // 右侧顶部提示信息
190
+ // value: 25645.26,
191
+ // AddChangeMsgShow: false,
192
+ // showsum: false
193
+ }
194
+ },
195
+ ready () {
196
+ let component = this.$login.getUrlCompileParames('component')
197
+ if (component) {
198
+ this.isManger = true
199
+ this.$refs.route.init(component, {data: this.functions.functions})
200
+ }
201
+ if(this.$login.f.password == '1'){
202
+ this.$showMessage('本地登录系统为此账户的初始密码,请确认修改密码!!!', ['confirm', 'cancel']).then((res) => {
203
+ if(res == 'confirm')
204
+ this.show = true
205
+ })
206
+ }
207
+ console.log("系统名称",this.$appdata.getSingleValue("系统名称"))
208
+ this.systemname = this.$appdata.getSingleValue("系统名称")? this.$appdata.getSingleValue("系统名称"):'客服系统'
209
+ // let oBox = this.getElement("box")
210
+ // let oTop = this.getElement("top")
211
+ // let oBottom = this.getElement("bottom")
212
+ // let oLine = this.getElement("line")
213
+ // let that = this
214
+ // oLine.onmousedown = function(e) {
215
+ // let disX = (e || event).clientX
216
+ // oLine.left = oLine.offsetLeft
217
+ // document.onmousemove = function(e) {
218
+ // let iT = oLine.left + ((e || event).clientX - disX)
219
+ // var e = e || window.event
220
+ // let tarnameb = e.target || e.srcElement
221
+ // let maxT = oBox.clientWight - oLine.offsetWidth
222
+ // oLine.style.margin = 0
223
+ // iT < 0 && (iT = 0)
224
+ // iT > maxT && (iT = maxT)
225
+ // oLine.style.left = oTop.style.width = iT + "px"
226
+ // oBottom.style.width = oBox.clientWidth - iT + "px"
227
+ // that.$set('treeWidth', iT)
228
+ // return false
229
+ // }
230
+ // document.onmouseup = function() {
231
+ // document.onmousemove = null
232
+ // document.onmouseup = null
233
+ // oLine.releaseCapture && oLine.releaseCapture()
234
+ // }
235
+ // oLine.setCapture && oLine.setCapture()
236
+ // return false
237
+ // }
238
+ this.changeShow()
239
+ // 在组件挂载后立即开始定时任务
240
+ this.abnormityWarning()
241
+ this.abnormityWarData()
242
+ },
243
+ methods: {
244
+ handleMouseMoveOnce () {
245
+ const handleMouseMove = (event) => {
246
+ this.playSound()
247
+ // 移除事件监听器
248
+ document.removeEventListener('mousemove', handleMouseMove)
249
+ }
250
+ // 添加事件监听器
251
+ document.addEventListener('mousemove', handleMouseMove)
252
+ },
253
+ abnormityWarning () {
254
+ setInterval(() => {
255
+ this.abnormityWarningData = []
256
+ this.$resetpost('rs/sql/getAbnormityWarning', {data: {}}, {resolveMsg: '', rejectMsg: ''}).then(item => {
257
+ this.abnormityWarningData = item
258
+ if (this.isBell === '是') {
259
+ if (this.abnormityWarningData.data.length > 0) {
260
+ this.playSound()
261
+ this.showaData = true
262
+ this.showAbnormity = true
263
+ } else {
264
+ this.showaData = false
265
+ }
266
+ }
267
+ })
268
+ }, this.isTimeAb)
269
+ },
270
+ abnormityWarData () {
271
+ this.$resetpost('rs/sql/getAbnormityWarning', {data: {}}, {resolveMsg: '', rejectMsg: ''}).then(item => {
272
+ this.abnormityWarningData = item
273
+ if (this.isBell === '是') {
274
+ if (this.abnormityWarningData.data.length > 0) {
275
+ // this.handleMouseMoveOnce()
276
+ this.playSound()
277
+ this.showaData = true
278
+ this.showAbnormity = true
279
+ } else {
280
+ this.showaData = false
281
+ }
282
+ }
283
+ })
284
+ },
285
+ hindsetting(){
286
+
287
+ this.setting=!this.setting
288
+ if(this.setting){
289
+ this.srcsetting='../../static/newStyle/setting.png'
290
+ }else {
291
+ this.srcsetting='../../static/newStyle/setting1.png'
292
+ }
293
+
294
+ },
295
+ hindsetting1(){
296
+
297
+ if(!this.setting){
298
+ this.srcsetting='../../static/newStyle/setting.png'
299
+ this.setting=true
300
+ }
301
+
302
+ },
303
+ isnodo(val){
304
+ console.log(val,'ss')
305
+ this.selecttab = val
306
+ },
307
+ unfurl () {
308
+ if(this.showsum){
309
+ this.showsum = false
310
+ } else {
311
+ this.showsum = true
312
+ }
313
+ },
314
+ // getElement(id) {
315
+ // return document.getElementById(id)
316
+ // },
317
+ changeShow () {
318
+ // this.treeOrIcon = !this.treeOrIcon
319
+ // let oBox = this.getElement("box")
320
+ // let oTop = this.getElement("top")
321
+ // let oBottom = this.getElement("bottom")
322
+ // let oLine = this.getElement("line")
323
+ // if (this.treeOrIcon) {
324
+ // // oLine.style.left = oTop.style.width = 300 + "px"
325
+ // oTop.style.width = 150 + "px"
326
+ // oBottom.style.width = oBox.clientWidth - 150 + "px"
327
+ // }else {
328
+ // oLine.style.left = oTop.style.width = 50 + "px"
329
+ // oBottom.style.width = oBox.clientWidth - 50 + "px"
330
+ // }
331
+ // }
332
+ this.treeOrIcon = !this.treeOrIcon
333
+ // if (this.treeOrIcon) {
334
+ // this.$els.top.style.width = 14 + "%"
335
+ // this.$els.bottom.style.width = this.$els.box.clientWidth - 14 + "%"
336
+ // }else {
337
+ // this.$els.top.style.width = 8 + "%"
338
+ // this.$els.bottom.style.width = this.$els.box.clientWidth - 8 + "%"
339
+ // }
340
+ },
341
+ changeMain(userid) {
342
+ this.$goto('res-main', {userid: this.userid}, 'self')
343
+ },
344
+ tabChange (name) {
345
+ console.log(name,'tabchanage')
346
+ this.selecttab = name
347
+ this.$refs.tree.changeSelect(name)
348
+ },
349
+ tabcg(val){
350
+ console.log(val)
351
+ this.tabs = val
352
+ },
353
+ playSound () {
354
+ if (this.audio) {
355
+ this.audio.pause()
356
+ this.audio = null
357
+ }
358
+ this.audio = new Audio(source)
359
+ // this.audio.src = 'static/newStyle/alarm.mp3' // 替换为实际的音频文件路径
360
+ this.audio.loop = true // 设置循环播放
361
+ this.audio.autoplay = true
362
+ this.audio.play()
363
+ },
364
+ stopSound () {
365
+ if (this.audio) {
366
+ this.audio.pause()
367
+ this.audio = null
368
+ }
369
+ },
370
+ stopSoundNew () {
371
+ this.showAbnormity = false
372
+ this.stopSound()
373
+ }
374
+ },
375
+ computed: {
376
+ nowDate () {
377
+ return this.$login.getNowDate()
378
+ }
379
+ }
380
+ }
381
+ </script>
382
+ <style lang="less">
383
+ /* 组件内通用样式 */
384
+ .select-error {
385
+ button {
386
+ border-bottom: 1px solid #a94442!important;
387
+ }
388
+ }
389
+ // input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{
390
+ // -webkit-appearance:textfield;
391
+ // }
392
+ /* 表单输入框组 */
393
+ .form-input-group {
394
+ display: flex;
395
+
396
+ label {
397
+ width: 100px;
398
+ text-align: right;
399
+ + * {
400
+ flex: 1;
401
+ }
402
+ }
403
+ }
404
+ // 日期组件在表单中沾满
405
+ .form-horizontal .datepicker {
406
+ width: 100%;
407
+ }
408
+ // 下拉选择框占据剩余全部空间
409
+ .select-overspread {
410
+ .form-group {
411
+ // margin: 0px 5px 10px 0px;
412
+ .form-control {
413
+ margin-right: 0px;
414
+ }
415
+ }
416
+ .btn-group, .btn-group-vertical {
417
+ width: 100%;
418
+ // padding-right: 5px;
419
+ button {
420
+ width: 100%;
421
+ display: flex;
422
+ justify-content: space-between;
423
+ align-items: center;
424
+ }
425
+ }
426
+ .dropdown-menu {
427
+ width: 100%
428
+ }
429
+ }
430
+ // 需要特定宽度的的样式
431
+ .width-60 {
432
+ width: 60px;
433
+ }
434
+ .userpanel {
435
+ font-weight: 300;
436
+ color: #333;
437
+ position: fixed;
438
+ right: 30px;
439
+ top: 45px;
440
+ background-color: white;
441
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px ;
442
+ padding: 4px 10px 4px 10px;
443
+ border-radius:2px;
444
+ }
445
+ .width-80 {
446
+ width: 80px;
447
+ }
448
+ .width-100 {
449
+ width: 100px;
450
+ }
451
+
452
+
453
+
454
+ /*右侧区域的背景*/
455
+ .right-bg {
456
+ width: 100%;
457
+ flex: 1;
458
+ color: #304A66;
459
+ }
460
+ .tree-flex {
461
+ height: 100%;
462
+ // width: 150px;
463
+ /*width: 60px;*/
464
+ background: #4a7cae;
465
+ color: #fff;
466
+
467
+ }
468
+ .tree-flex-icon {
469
+ width: 50px;
470
+ /*transition: 0.5s;*/
471
+ > .span {
472
+ overflow-x: visible;
473
+ }
474
+ }
475
+ .tree-flex h3 {
476
+ text-align: center;
477
+ margin: 1em 0;
478
+ }
479
+
480
+ .tree-flex-footer {
481
+ height: 50px;
482
+ display: flex;
483
+ flex-direction:column;
484
+ color: #fff;
485
+ }
486
+ .tree-flex-footer a,.tree-flex-footer button{
487
+ flex: 1;
488
+ padding: 8px 5px;
489
+ font-size: 1.2em;
490
+ // border-top: 1px solid #697D93;
491
+ border-top: 1px solid #4a7cae;
492
+ text-decoration: none;
493
+ color: #fff;
494
+ cursor: pointer;
495
+ }
496
+ .tree-flex-footer button {
497
+ height: auto;
498
+ width: 100%;
499
+ border-radius: 0px;
500
+ background-color: rgba(255,255,255,0);
501
+ border: none;
502
+ border-top: 1px solid #4a7cae;
503
+ // border-top: 1px solid #697D93;
504
+ text-align: left;
505
+ }
506
+ .tree-flex-footer button:hover{
507
+ outline: none;
508
+ background-color: rgba(255,255,255,0.2);
509
+ }
510
+ .tree-flex-footer button:focus {
511
+ outline: none;
512
+ background-color: rgba(255,255,255,0.5);
513
+ }
514
+ .tree-flex-footer a:hover {
515
+ color: #FFF;
516
+ background-color: rgba(255,255,255,0.2);
517
+ }
518
+ .tree-flex .btn-group {
519
+ height: 50px!important;
520
+ }
521
+
522
+ .tree-flex .dropdown-menu {
523
+ /* 控制显示列表的样式 */
524
+ background: #4a7cae;
525
+ border-radius: 0px;
526
+ color: #fff;
527
+ width: auto;
528
+ margin: 0px;
529
+ padding: 0px;
530
+ }
531
+ .tree-flex .dropdown-menu-up {
532
+ /* bottom,top控制上下,left和right控制左右*/
533
+ left: 100%!important;
534
+ top: auto!important;
535
+ bottom: 0;
536
+ }
537
+ .tree-flex .dropdown-menu-down {
538
+ /* bottom,top控制上下,left和right控制左右*/
539
+ left: 100%!important;
540
+ top: 0!important;
541
+ }
542
+ .tree-flex .dropdown-menu li{
543
+ text-align: center;
544
+ line-height: 50px;
545
+ border-bottom: 1px solid #697D93;
546
+ font-size: 1.2em;
547
+ width: auto;
548
+ white-space: nowrap;
549
+ cursor: default;
550
+
551
+ }
552
+ .tree-flex .dropdown-menu li + li {
553
+ text-align: left;
554
+ border: 0;
555
+ line-height: 40px;
556
+ padding-left: 15px;
557
+ padding-right: 15px;
558
+ font-size: 1em;
559
+ cursor: pointer;
560
+ }
561
+ .tree-flex .dropdown-menu li + li:hover {
562
+ background-color: rgba(255,255,255,0.2);
563
+ }
564
+ .tree-flex .dropdown-menu li a {
565
+ border: none;
566
+ color: #fff;
567
+ height: 40px;
568
+ line-height: 40px;
569
+ font-size: 1em;
570
+ padding: 0px;
571
+ }
572
+ .tree-flex .dropdown-menu li a:hover {
573
+ color: #fff;
574
+ background-color: rgba(255,255,255,0);
575
+ }
576
+ .tree-flex img{
577
+ height: 1.2em;
578
+ width: 1.2em;
579
+ margin-right: 15px;
580
+ margin-left: 5px;
581
+ }
582
+ .line {
583
+ height: 100%;
584
+ width: 5px;
585
+ background: #4C637B;
586
+ cursor: e-resize;
587
+ }
588
+ /*为树(tree)组件写的样式*/
589
+ .tree-img {
590
+ font-size: 1.2em;
591
+ }
592
+
593
+ /*将较长信息截断显示,鼠标悬停显示全部信息*/
594
+ .cutout50 {
595
+ max-width: 50px;
596
+ overflow:hidden;
597
+ text-overflow: ellipsis;
598
+ white-space: nowrap;
599
+ }
600
+
601
+ /* 滚动条样式 */
602
+ /*---滚动条默认显示样式--*/
603
+ ::-webkit-scrollbar-thumb{
604
+ // display: none;
605
+ background-color:rgba(0,0,0,0.4);
606
+ /*background-color:red;*/
607
+ height:50px;
608
+ outline-offset:-2px;
609
+ /*outline:2px solid #fff;*/
610
+ -webkit-border-radius:4px;
611
+ /*border: 2px solid #fff;*/
612
+ }
613
+
614
+ /*---鼠标点击滚动条显示样式--*/
615
+ ::-webkit-scrollbar-thumb:hover{
616
+ // display: inherit;
617
+ background-color:rgba(0,0,0,0.4);
618
+ height:50px;
619
+ -webkit-border-radius:4px;
620
+ }
621
+ /*---滚动条大小--*/
622
+ ::-webkit-scrollbar{
623
+ width:8px;
624
+ height:8px;
625
+ }
626
+ /*---滚动框背景样式--*/
627
+ ::-webkit-scrollbar-track-piece{
628
+ /* 全透明,不显示 */
629
+ background-color:rgba(255,255,255,0);
630
+ -webkit-border-radius:0;
631
+ }
632
+ </style>