system-clients 3.2.5 → 3.2.6-1

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 (80) hide show
  1. package/.eslintrc.js +16 -16
  2. package/.npmignore +10 -0
  3. package/SystemClient.iml +8 -11
  4. package/build/.npmignore +1 -0
  5. package/build/webpack.base.conf.js +21 -11
  6. package/package-lock.json +23125 -0
  7. package/package.json +6 -4
  8. package/src/.npmignore +1 -0
  9. package/src/components/Main.vue +626 -476
  10. package/src/components/TabButton.vue +201 -0
  11. package/src/components/Tabs.vue +67 -0
  12. package/src/components/addressManage/AddressCascadingMenu.vue +145 -0
  13. package/src/components/equipment/EquipmentManage.vue +1 -1
  14. package/src/components/equipment/PcAdd.vue +5 -5
  15. package/src/components/equipment/PcList.vue +5 -5
  16. package/src/components/equipment/PhoneAdd.vue +26 -13
  17. package/src/components/equipment/PhoneList.vue +31 -21
  18. package/src/components/equipment/PosAdd.vue +231 -45
  19. package/src/components/equipment/PosList.vue +198 -68
  20. package/src/components/equipment/PosManage.vue +80 -9
  21. package/src/components/equipment/PosManageBoth.vue +125 -0
  22. package/src/components/equipment/PosParamAdd.vue +236 -0
  23. package/src/components/equipment/PosParamList.vue +121 -0
  24. package/src/components/equipment/PosParamManage.vue +51 -0
  25. package/src/components/parammanage/ParamManage.vue +2 -2
  26. package/src/components/parammanage/ParamPage.vue +30 -8
  27. package/src/components/parammanage/SinglePage.vue +4 -4
  28. package/src/components/server/ImageVieweTest.vue +56 -0
  29. package/src/components/server/ImageViewer.vue +350 -0
  30. package/src/components/server/LoadData.vue +21 -2
  31. package/src/components/server/Login.vue +784 -519
  32. package/src/components/server/ModifyPw.vue +12 -7
  33. package/src/components/server/PcdBuildingSelect.vue +241 -0
  34. package/src/components/server/ResSelect.vue +5 -0
  35. package/src/components/server/ResSelectGroup.vue +159 -103
  36. package/src/components/server/RightTree.vue +289 -204
  37. package/src/filiale/dongguan/Login.vue +889 -0
  38. package/src/filiale/dongguan/Main.vue +715 -0
  39. package/src/filiale/dongguan/system.js +6 -0
  40. package/src/filiale/konggang/Login.vue +840 -0
  41. package/src/filiale/konggang/system.js +7 -0
  42. package/src/filiale/qianneng/ModifyPw.vue +107 -0
  43. package/src/filiale/qianneng/system.js +7 -0
  44. package/src/filiale/rizhao/LeftTree.vue +111 -0
  45. package/src/filiale/rizhao/Login.vue +791 -0
  46. package/src/filiale/rizhao/Main.vue +606 -0
  47. package/src/filiale/rizhao/system.js +14 -0
  48. package/src/filiale/yuchuan/Login.vue +889 -0
  49. package/src/filiale/yuchuan/Main.vue +773 -0
  50. package/src/filiale/yuchuan/system.js +10 -0
  51. package/src/plugins/EncryptUtil.js +53 -0
  52. package/src/plugins/GetLoginInfoService.js +76 -70
  53. package/src/plugins/HeatGetLoginInfoService.js +491 -0
  54. package/src/plugins/validation.js +9 -1
  55. package/src/stores/HeatAppData.js +38 -0
  56. package/src/styles/less/aofeng/standard.less +446 -60
  57. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +13 -13
  58. package/src/styles/less/aofeng/themeOne/systemStyle.less +12 -12
  59. package/src/styles/less/aofeng/themeOne.less +4 -1
  60. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -0
  61. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -0
  62. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -0
  63. package/src/styles/less/tables.less +50 -0
  64. package/src/styles/less/type.less +16 -3
  65. package/src/styles/less/variables.less +6 -3
  66. package/src/system.js +34 -1
  67. package/src/util/Daiban.json +12 -0
  68. package/static/images/lefticon//345/220/210/345/220/214/347/256/241/347/220/206.png +0 -0
  69. package/static/logo.png +0 -0
  70. package/static/newStyle/about-us.png +0 -0
  71. package/static/rizhao.png +0 -0
  72. package/yarn-error.log +6896 -0
  73. package/.gradle/3.5/file-changes/last-build.bin +0 -0
  74. package/.gradle/3.5/taskHistory/taskHistory.lock +0 -0
  75. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  76. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  77. package/.gradle/5.2.1/gc.properties +0 -0
  78. package/.gradle/buildOutputCleanup/built.bin +0 -0
  79. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  80. package/.gradle/buildOutputCleanup/cache.properties.lock +0 -1
@@ -0,0 +1,773 @@
1
+ <template>
2
+ <div @click="hindsetting1()" :class="{'with-watermark':showwatermakeflag}">
3
+ <span class="newTip" transition="newTip" @click="tipClick" v-if="newTipShow">
4
+ <span>您有一条新提醒</span>
5
+ </span>
6
+ <!-- <div class="system-main" id="box" v-el:box v-if="!isManger">-->
7
+ <!-- <div class="system-logo" style="height: auto">-->
8
+ <!-- <img :src="imgs.logoimg" alt=""/>-->
9
+ <!-- <label>{{systemname}}</label>-->
10
+ <!-- <div class="system-logo-chi" >-->
11
+ <!-- <div v-if="userpane" class="auto system-logo-prompt" style="float: right">-->
12
+ <!-- <span>{{orgpathnames}}</span>-->
13
+ <!-- </div>-->
14
+ <!-- &lt;!&ndash;<div class="system-logo-chi-img1" style="float: right" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()"></div>&ndash;&gt;-->
15
+ <!-- <span style="float: right; padding-top: 2px" @mouseenter="mouseenteruser()" @mouseleave="mouseleaveuser()" class="system-logo-chi-span-1">{{$login.f.name}}</span>-->
16
+ <!-- <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>-->
17
+ <!-- <a href="index.html" onclick="return confirm('您确定要退出系统吗?');" style="float: right;padding-top: 2px">-->
18
+ <!-- <img src="../../static/newStyle/system-off.png" alt="" >-->
19
+ <!-- <span class="system-logo-chi-span-1">退出系统</span>-->
20
+ <!-- </a>-->
21
+ <!-- <div style="float: right" :class="{'dropstyle':setting,'dropstyle-1':!setting}">-->
22
+ <!-- <dropdown class="auto" >-->
23
+ <!-- <span data-toggle="dropdown" @click="hindsetting()" >-->
24
+ <!-- <img :src="srcsetting" alt=""><span>系统设置</span>-->
25
+ <!-- </span>-->
26
+ <!-- <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up dropstyle-chi" >-->
27
+ <!-- &lt;!&ndash; <li>系统信息及设置</li>&ndash;&gt;-->
28
+ <!-- <li style="color: #ffffff;white-space: nowrap" @click="show=true">修改密码</li>-->
29
+ <!-- <li style="color: #ffffff;white-space: nowrap" @click="AddChangeMsgShow=true">系统版本</li>-->
30
+ <!-- </ul>-->
31
+ <!-- </dropdown>-->
32
+ <!-- </div>-->
33
+
34
+ <!-- </div>-->
35
+ <!-- </div>-->
36
+ <!-- <div class="system-left tree-flex" :class="{'system-left-1': !treeOrIcon}" id="top" v-el:top >-->
37
+ <!-- <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}" >-->
38
+ <!-- <div class="span system-left-tree" >-->
39
+ <!-- <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" :treeOrIcon="treeOrIcon" :tabs="tabs" v-ref:tree></left-tree>-->
40
+ <!-- &lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
41
+ <!-- </div>-->
42
+ <!-- </div>-->
43
+ <!-- <div class="system-foot-stretch" >-->
44
+ <!-- <a @click="changeShow()"><img src="../../static/images/lefticon/菜单伸缩.png" alt=""></a>-->
45
+ <!-- </div>-->
46
+ <!-- </div>-->
47
+
48
+
49
+ <!-- <div class="system-right" :class="{'system-right-1': !treeOrIcon}" id="bottom" v-el:bottom>-->
50
+ <!-- <div class="span">-->
51
+ <!-- <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>-->
52
+ <!-- <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>-->
53
+ <!-- </div>-->
54
+ <!-- </div>-->
55
+ <!-- <div class="system-foot" v-el:bottom>-->
56
+
57
+ <!-- <div class="system-foot-box">-->
58
+
59
+ <!-- </div>-->
60
+ <!-- </div>-->
61
+ <!-- </div>-->
62
+ <div class='flex-row system-main' id="box" v-el:box v-if="!isManger">
63
+ <div class="auto login-operator1" v-if="$refs.mic.tabs.length === 0">
64
+ <span>
65
+ <img
66
+ src="../../assets/people.png" height="15" width="15">
67
+ 登录人:</span>
68
+ <label>{{ orgpathnames }}</label>
69
+ </div>
70
+ <div class="system-left tree-flex" :class="{'tree-flex-icon': !treeOrIcon}" id="top" v-el:top>
71
+ <div class="system-left-chi" :class="{'system-left-icon': !treeOrIcon}">
72
+ <div class="span system-left-tree " style="height:85%">
73
+ <h3>{{ systemname }}</h3>
74
+ <!-- <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;">-->
75
+ <left-tree :functions='functions.functions' :userid='userid' @isnodo="isnodo" v-show="treeOrIcon"
76
+ :tabs="tabs" v-ref:tree></left-tree>
77
+ <!--&lt;!&ndash; <icon-tree :functions='functions.functions' :userid='userid' v-show="!treeOrIcon"></icon-tree>&ndash;&gt;-->
78
+ </div>
79
+
80
+ <div class="tree-flex-footer">
81
+ <!-- <a @click="changeShow()"><img :src="imgs.open" alt=""><span v-if="treeOrIcon">菜单伸缩</span></a>-->
82
+ <!-- <a><img src="../../../static/treeset.png" alt="">系统设置</a> -->
83
+ <dropdown class="auto">
84
+ <button type="button" data-toggle="dropdown">
85
+ <img :src="imgs.set" alt=""><span v-if="treeOrIcon">系统设置</span>
86
+ </button>
87
+ <ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-up">
88
+ <li>系统信息及设置</li>
89
+ <!-- <li>{{name}}</li> -->
90
+ <li>{{ date }}</li>
91
+ <li @click="openUrl()">售后服务</li>
92
+ <li @click="show=true">修改密码</li>
93
+ <li @click="AddChangeMsgShow=true">系统版本:V3.0</li>
94
+ </ul>
95
+
96
+ </dropdown>
97
+ <dropdown class="auto">
98
+ <a href="index.html" @click.prevent="logOut">
99
+ <img :src="imgs.out" alt=""><span v-if="treeOrIcon">退出系统</span>
100
+ </a>
101
+ </dropdown>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ <!-- <div class="line" id="line" v-show="treeOrIcon" v-el:line></div> -->
106
+
107
+ <div class="flex right-bg system-right" id="bottom" v-el:bottom>
108
+ <!-- <operator-badge></operator-badge> -->
109
+ <div class="span">
110
+ <echarts-box v-if="$refs.mic.tabs.length === 0"></echarts-box>
111
+ <dynamic :comps='[]' name='main' :selecttab.sync="selecttab" :orgpathnames="orgpathnames"
112
+ @tab-changed="tabChange" @tabscg="tabcg" v-ref:mic v-show="!($refs.mic.tabs.length === 0)"></dynamic>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ <div v-show="isManger">
117
+ <route v-ref:route></route>
118
+ </div>
119
+ <modal v-if="newTipContextShow" :show.sync="newTipContextShow" :backdrop="false">
120
+ <header slot="modal-header" style="display:none"> </header>
121
+ <article slot="modal-body" class="modal-body">
122
+ <form class="form-horizontal">
123
+ <div class="row">
124
+ <div class="col-sm-12 " v-if="AppDaiBan !==''">
125
+ <label class="col-sm-2">报装待办:</label>
126
+ <span style="font-weight:normal">{{AppDaiBan}}</span>
127
+ </div>
128
+ <div class="col-sm-12 " v-if="OrderDaiBan !==''">
129
+ <label class="col-sm-2">预约待办:</label>
130
+ <span style="font-weight:normal">{{OrderDaiBan}}</span>
131
+ </div>
132
+ </div>
133
+ </form>
134
+ </article>
135
+ <footer slot="modal-footer" style="height: 8vh" class="modal-footer">
136
+ <button class="button_search" @click="newTipContextShow = false">确认</button>
137
+ </footer>
138
+ </modal>
139
+
140
+ <!-- 变更录入 模态框 -->
141
+ <add-changemsg :show="AddChangeMsgShow" v-on:toggle="AddChangeMsgShow = false"></add-changemsg>
142
+ <!-- 修改密码组件 -->
143
+ <modify-pw :show.sync="show" v-if="show"></modify-pw>
144
+ <!-- 修改密码模态框 -->
145
+ </div>
146
+ </template>
147
+
148
+ <script>
149
+ import vue from 'vue'
150
+ import co from 'co'
151
+ import {HttpResetClass} from "vue-client";
152
+
153
+ let getwartermakr = async function (self) {
154
+ let param = {
155
+ tablename: 't_singlevalue',
156
+ condition: " 1=1 and name=\'水印内容\'"
157
+ };
158
+ let result = await self.$resetpost('rs/sql/saleSingleTable', {data: param}, {resolveMsg: null, rejectMsg: null});
159
+ if (result && result.data.length > 0) {
160
+ self.showwatermakeflag = true;
161
+ createWaterMark(result.data[0].value);
162
+ } else {
163
+ self.showwatermakeflag = false;
164
+ }
165
+ }
166
+
167
+ let createWaterMark = function (userName) {
168
+ let style;
169
+ if (style) style.remove();
170
+ let width = window.parseInt(document.body.clientWidth);
171
+ let canvasWidth = width / window.parseInt(width / 320);
172
+ let fontFamily = window.getComputedStyle(document.body)["font-family"];
173
+ let canvas = document.createElement("canvas");
174
+ canvas.width = canvasWidth;
175
+ canvas.height = 200;
176
+ let ctx = canvas.getContext("2d");
177
+ ctx.rotate((-20 * Math.PI) / 180);
178
+ ctx.font = `20px ${fontFamily}`;
179
+ ctx.fillStyle = "rgba(8,8,8,.1)";
180
+ ctx.fillText(userName, 50, 200);
181
+ let imgSrc = canvas.toDataURL("image/png");
182
+ style = document.createElement("style");
183
+ style.innerHTML = `.with-watermark:before{
184
+ content: "";
185
+ width: 100%;
186
+ height: 100%;
187
+ display: block;
188
+ position: absolute;
189
+ background-image: url("${imgSrc}");
190
+ }`;
191
+ (document.head.append || document.head.appendChild).apply(document.head, [style]);
192
+ }
193
+
194
+ window.onunload = () => {
195
+ vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
196
+ }
197
+ window.onbeforeunload = () => {
198
+ vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
199
+ }
200
+ export default {
201
+ title: '主界面',
202
+ props: ['functions', 'userid', 'config'],
203
+ data() {
204
+ return {
205
+ // 页面提示信息定时器
206
+ interval: null,
207
+ newTipShow: false,
208
+ newTipContextShow: false,
209
+ AppDaiBan: '',
210
+ OrderDaiBan: '',
211
+ // 左侧树下部三个小图标
212
+ imgs: {
213
+ open: '/images/lefticon/菜单伸缩.png',
214
+ set: '/images/lefticon/系统设置.png',
215
+ out: '/images/lefticon/退出系统.png',
216
+ img1: '/images/newStyle/login-user.png',
217
+ logoimg: '/static/newStyle/fife.png'
218
+ // img2: '/images/lefticon/退出系统.png',
219
+ },
220
+ treeOrIcon: false,
221
+ isManger: false,
222
+ show: false,
223
+ orgpathnames: `${this.$login.f.f_fengongsi}-${this.$login.f.f_parentname}-${this.$login.f.name}`,
224
+ systemname: '客服系统',
225
+ date: this.$login.toStandardDateString(),
226
+ tabs: [], //已初始化页签数组
227
+ selecttab: '',
228
+ setting: true,
229
+ srcsetting: '../../static/newStyle/setting.png',
230
+ showwatermakeflag: false,
231
+ // headerHint: true, // 右侧顶部提示信息
232
+ // value: 25645.26,
233
+ // AddChangeMsgShow: false,
234
+ // showsum: false
235
+ }
236
+ },
237
+ ready() {
238
+ getwartermakr(this);
239
+ let component = this.$login.getUrlCompileParames('component')
240
+ if (component) {
241
+ this.isManger = true
242
+ this.$refs.route.init(component, {data: this.functions.functions})
243
+ }
244
+ if (this.$login.f.password == '1') {
245
+ this.$showMessage('本地登录系统为此账户的初始密码,请确认修改密码!!!', ['confirm', 'cancel']).then((res) => {
246
+ if (res == 'confirm')
247
+ this.show = true
248
+ })
249
+ }
250
+ console.log("系统名称", this.$appdata.getSingleValue("系统名称"))
251
+ this.systemname = this.$appdata.getSingleValue("系统名称") ? this.$appdata.getSingleValue("系统名称") : '客服系统'
252
+ // let oBox = this.getElement("box")
253
+ // let oTop = this.getElement("top")
254
+ // let oBottom = this.getElement("bottom")
255
+ // let oLine = this.getElement("line")
256
+ // let that = this
257
+ // oLine.onmousedown = function(e) {
258
+ // let disX = (e || event).clientX
259
+ // oLine.left = oLine.offsetLeft
260
+ // document.onmousemove = function(e) {
261
+ // let iT = oLine.left + ((e || event).clientX - disX)
262
+ // var e = e || window.event
263
+ // let tarnameb = e.target || e.srcElement
264
+ // let maxT = oBox.clientWight - oLine.offsetWidth
265
+ // oLine.style.margin = 0
266
+ // iT < 0 && (iT = 0)
267
+ // iT > maxT && (iT = maxT)
268
+ // oLine.style.left = oTop.style.width = iT + "px"
269
+ // oBottom.style.width = oBox.clientWidth - iT + "px"
270
+ // that.$set('treeWidth', iT)
271
+ // return false
272
+ // }
273
+ // document.onmouseup = function() {
274
+ // document.onmousemove = null
275
+ // document.onmouseup = null
276
+ // oLine.releaseCapture && oLine.releaseCapture()
277
+ // }
278
+ // oLine.setCapture && oLine.setCapture()
279
+ // return false
280
+ // }
281
+ this.changeShow()
282
+ this.gotoWorkOrderSite()
283
+ // 获取预约列表
284
+ this.functions.f_role_name && this.functions.f_role_name.includes(this.config.msgRole) && this.config.isTip && this.getOrderList()
285
+ },
286
+ methods: {
287
+ getOrderList(){
288
+ let times = this.config.times * 60 * 1000
289
+ console.log("=定时提示间隔=", times)
290
+ try {
291
+ this.interval = setInterval(() => {
292
+ this.getDaiBan()
293
+ }, times)
294
+ } catch (error) {
295
+ console.log('捕获到异常', error)
296
+ }
297
+ },
298
+ async getDaiBan(){
299
+ this.OrderDaiBan = ''
300
+ this.AppDaiBan = ''
301
+ let http = new HttpResetClass()
302
+ await http.load('POST', '/rs/sql/singleTable', {data: {
303
+ tablename:'t_order_center',
304
+ condition:` (f_orderstate != '预约成功' and f_orgstr ='${this.$login.f.orgid}' and f_orderstate != '预约失败' ) or f_orderstate is null`
305
+ }}, {
306
+ resolveMsg: null,
307
+ rejectMsg: null
308
+ }).then((res) => {
309
+ let OrderDaiBan = {}
310
+ res.data.forEach(item=>{
311
+ OrderDaiBan[item.f_ordertype] = OrderDaiBan[item.f_ordertype] || []
312
+ OrderDaiBan[item.f_ordertype].push(item)
313
+ })
314
+ if (res.data.length> 0){
315
+ this.OrderDaiBan = `您有${res.data.length}条需要处理的微信预约业务!`
316
+ this.OrderDaiBan += `其中 ${Object.keys(OrderDaiBan).map(key=>`${key}:${OrderDaiBan[key].length}条`).join(', ')}`
317
+ }
318
+ })
319
+ let data = {
320
+ condition: '1 = 1',
321
+ data: {
322
+ orgid: this.$login.f.orgid,
323
+ id: this.$login.f.id
324
+ }
325
+ }
326
+ await http.load('POST', '/rs/sql/checkuser', {data: data}, {
327
+ resolveMsg: null,
328
+ rejectMsg: null
329
+ }).then((res) => {
330
+ let AppDaiBan = {}
331
+ res.data.forEach(item=>{
332
+ AppDaiBan[item.defname] = AppDaiBan[item.defname] || []
333
+ AppDaiBan[item.defname].push(item)
334
+ })
335
+ if (res.data.length> 0){
336
+ this.AppDaiBan = `您有${res.data.length}条需要处理的报建待办业务!`
337
+ this.AppDaiBan += `其中 ${Object.keys(AppDaiBan).map(key=>`${key}:${AppDaiBan[key].length}条`).join(', ')}`
338
+ }
339
+ }).catch((e)=>{
340
+ console.error(e)
341
+ })
342
+ if(this.AppDaiBan || this.OrderDaiBan){
343
+ this.newTipShow = true
344
+ }
345
+ },
346
+ // 提醒框被点击
347
+ tipClick(){
348
+ this.newTipShow = false
349
+ this.newTipContextShow = true
350
+ },
351
+ gotoWorkOrderSite(){
352
+ const isRemind =this.$appdata.getSingleValue("站点工单提醒")
353
+ console.log('站点工单是否提醒',isRemind)
354
+ if(isRemind && isRemind !== '是'){
355
+ return
356
+ }
357
+ if(this.functions && this.functions.f_role_name && this.functions.f_role_name.indexOf('派单员') !== -1){
358
+ const data = {
359
+ "condition":
360
+ {
361
+ "condition":" 1=1 ",
362
+ "sign":"1=1"
363
+ },
364
+ "userid":this.functions.name
365
+ }
366
+ new HttpResetClass().load('POST','rs/path/operatorService/n', {data}, {resolveMsg: null, rejectMsg: null}).then(res=>{
367
+ if(res.data && res.data.n !== 0){
368
+ this.$showMessage('你有'+res.data.n+'个工单待处理,请尽快前往站点工单页面进行处理')
369
+ }
370
+ })
371
+ }
372
+ },
373
+ openUrl() {
374
+ var url = `http://123.60.214.109:8406/submitTicket?personName=${this.$login.f.name}&orgName=${this.$login.f.orgs}`
375
+ window.open(url, '_blank')
376
+ },
377
+ hindsetting() {
378
+ this.setting = !this.setting
379
+ if (this.setting) {
380
+ this.srcsetting = '../../static/newStyle/setting.png'
381
+ } else {
382
+ this.srcsetting = '../../static/newStyle/setting1.png'
383
+ }
384
+
385
+ },
386
+ hindsetting1() {
387
+
388
+ if (!this.setting) {
389
+ this.srcsetting = '../../static/newStyle/setting.png'
390
+ this.setting = true
391
+ }
392
+
393
+ },
394
+ isnodo(val) {
395
+ console.log(val, 'ss')
396
+ this.selecttab = val
397
+ },
398
+ unfurl() {
399
+ if (this.showsum) {
400
+ this.showsum = false
401
+ } else {
402
+ this.showsum = true
403
+ }
404
+ },
405
+ // getElement(id) {
406
+ // return document.getElementById(id)
407
+ // },
408
+ changeShow() {
409
+ // this.treeOrIcon = !this.treeOrIcon
410
+ // let oBox = this.getElement("box")
411
+ // let oTop = this.getElement("top")
412
+ // let oBottom = this.getElement("bottom")
413
+ // let oLine = this.getElement("line")
414
+ // if (this.treeOrIcon) {
415
+ // // oLine.style.left = oTop.style.width = 300 + "px"
416
+ // oTop.style.width = 150 + "px"
417
+ // oBottom.style.width = oBox.clientWidth - 150 + "px"
418
+ // }else {
419
+ // oLine.style.left = oTop.style.width = 50 + "px"
420
+ // oBottom.style.width = oBox.clientWidth - 50 + "px"
421
+ // }
422
+ // }
423
+ this.treeOrIcon = !this.treeOrIcon
424
+ // if (this.treeOrIcon) {
425
+ // this.$els.top.style.width = 14 + "%"
426
+ // this.$els.bottom.style.width = this.$els.box.clientWidth - 14 + "%"
427
+ // }else {
428
+ // this.$els.top.style.width = 8 + "%"
429
+ // this.$els.bottom.style.width = this.$els.box.clientWidth - 8 + "%"
430
+ // }
431
+ },
432
+ changeMain(userid) {
433
+ this.$goto('res-main', {userid: this.userid}, 'self')
434
+ },
435
+ tabChange(name) {
436
+ console.log(name, 'tabchanage')
437
+ this.selecttab = name
438
+ this.$refs.tree.changeSelect(name)
439
+ },
440
+ tabcg(val) {
441
+ console.log(val)
442
+ this.tabs = val
443
+ },
444
+ logOut() {
445
+ console.log(this.$login.f)
446
+ this.$showMessage('您确定要退出系统吗?', ['confirm', 'cancel']).then(async (res) => {
447
+ if (res == 'confirm') {
448
+ let data = {
449
+ userid: this.$login.f.id,
450
+ username: this.$login.f.name,
451
+ usertelephone: this.$login.f.f_user_telephone
452
+ }
453
+ await this.$resetpost('rs/logic/logOut', data, {resolveMsg: '退出成功', rejectMsg: null})
454
+ window.location.reload()
455
+ }
456
+ })
457
+ }
458
+ },
459
+ computed: {
460
+ nowDate() {
461
+ return this.$login.getNowDate()
462
+ }
463
+ }
464
+ }
465
+ </script>
466
+ <style lang="less">
467
+ .newTip-transition {
468
+ transition: all .4s ease;
469
+ }
470
+ .newTip-enter, .newTip-leave {
471
+ height: 0;
472
+ padding: 0 10px;
473
+ opacity: 0;
474
+ }
475
+ .newTip a {
476
+ color: #333;
477
+ }
478
+ .newTip {
479
+ cursor: pointer;
480
+ text-align: center;
481
+ position: absolute;
482
+ top: 3em;
483
+ margin: 0 auto;
484
+ width: 200px;
485
+ left: 48%;
486
+ line-height: 2;
487
+ z-index: 10010;
488
+ box-shadow: 0 4px 12px rgba(0,0,0,0.38);
489
+ pointer-events: all;
490
+ border-radius: 4px;
491
+ background-color: whitesmoke;
492
+ }
493
+ /* 组件内通用样式 */
494
+ .select-error {
495
+ button {
496
+ border-bottom: 1px solid #a94442 !important;
497
+ }
498
+ }
499
+
500
+ // input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{
501
+ // -webkit-appearance:textfield;
502
+ // }
503
+ /* 表单输入框组 */
504
+ .form-input-group {
505
+ display: flex;
506
+
507
+ label {
508
+ width: 100px;
509
+ text-align: right;
510
+
511
+ + * {
512
+ flex: 1;
513
+ }
514
+ }
515
+ }
516
+
517
+ // 日期组件在表单中沾满
518
+ .form-horizontal .datepicker {
519
+ width: 100%;
520
+ }
521
+
522
+ // 下拉选择框占据剩余全部空间
523
+ .select-overspread {
524
+ .form-group {
525
+ // margin: 0px 5px 10px 0px;
526
+ .form-control {
527
+ margin-right: 0px;
528
+ }
529
+ }
530
+
531
+ .btn-group, .btn-group-vertical {
532
+ width: 100%;
533
+ // padding-right: 5px;
534
+ button {
535
+ width: 100%;
536
+ display: flex;
537
+ justify-content: space-between;
538
+ align-items: center;
539
+ }
540
+ }
541
+
542
+ .dropdown-menu {
543
+ width: 100%
544
+ }
545
+ }
546
+
547
+ // 需要特定宽度的的样式
548
+ .width-60 {
549
+ width: 60px;
550
+ }
551
+
552
+ .userpanel {
553
+ font-weight: 300;
554
+ color: #333;
555
+ position: fixed;
556
+ right: 30px;
557
+ top: 45px;
558
+ background-color: white;
559
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
560
+ padding: 4px 10px 4px 10px;
561
+ border-radius: 2px;
562
+ }
563
+
564
+ .width-80 {
565
+ width: 80px;
566
+ }
567
+
568
+ .width-100 {
569
+ width: 100px;
570
+ }
571
+
572
+
573
+ /*右侧区域的背景*/
574
+ .right-bg {
575
+ width: 100%;
576
+ flex: 1;
577
+ color: #304A66;
578
+ }
579
+
580
+ .tree-flex {
581
+ height: 100%;
582
+ // width: 150px;
583
+ /*width: 60px;*/
584
+ background: #4a7cae;
585
+ color: #fff;
586
+
587
+ }
588
+
589
+ .tree-flex-icon {
590
+ width: 50px;
591
+ /*transition: 0.5s;*/
592
+
593
+ > .span {
594
+ overflow-x: visible;
595
+ }
596
+ }
597
+
598
+ .tree-flex h3 {
599
+ text-align: center;
600
+ margin: 1em 0;
601
+ }
602
+
603
+ .tree-flex-footer {
604
+ height: 50px;
605
+ display: flex;
606
+ flex-direction: column;
607
+ color: #fff;
608
+ }
609
+
610
+ .tree-flex-footer a, .tree-flex-footer button {
611
+ flex: 1;
612
+ padding: 8px 5px;
613
+ font-size: 1.2em;
614
+ // border-top: 1px solid #697D93;
615
+ border-top: 1px solid #4a7cae;
616
+ text-decoration: none;
617
+ color: #fff;
618
+ cursor: pointer;
619
+ }
620
+
621
+ .tree-flex-footer button {
622
+ height: auto;
623
+ width: 100%;
624
+ border-radius: 0px;
625
+ background-color: rgba(255, 255, 255, 0);
626
+ border: none;
627
+ border-top: 1px solid #4a7cae;
628
+ // border-top: 1px solid #697D93;
629
+ text-align: left;
630
+ }
631
+
632
+ .tree-flex-footer button:hover {
633
+ outline: none;
634
+ background-color: rgba(255, 255, 255, 0.2);
635
+ }
636
+
637
+ .tree-flex-footer button:focus {
638
+ outline: none;
639
+ background-color: rgba(255, 255, 255, 0.5);
640
+ }
641
+
642
+ .tree-flex-footer a:hover {
643
+ color: #FFF;
644
+ background-color: rgba(255, 255, 255, 0.2);
645
+ }
646
+
647
+ .tree-flex .btn-group {
648
+ height: 50px !important;
649
+ }
650
+
651
+ .tree-flex .dropdown-menu {
652
+ /* 控制显示列表的样式 */
653
+ background: #4a7cae;
654
+ border-radius: 0px;
655
+ color: #fff;
656
+ width: auto;
657
+ margin: 0px;
658
+ padding: 0px;
659
+ }
660
+
661
+ .tree-flex .dropdown-menu-up {
662
+ /* bottom,top控制上下,left和right控制左右*/
663
+ left: 100% !important;
664
+ top: auto !important;
665
+ bottom: 0;
666
+ }
667
+
668
+ .tree-flex .dropdown-menu-down {
669
+ /* bottom,top控制上下,left和right控制左右*/
670
+ left: 100% !important;
671
+ top: 0 !important;
672
+ }
673
+
674
+ .tree-flex .dropdown-menu li {
675
+ text-align: center;
676
+ line-height: 50px;
677
+ border-bottom: 1px solid #697D93;
678
+ font-size: 1.2em;
679
+ width: auto;
680
+ white-space: nowrap;
681
+ cursor: default;
682
+
683
+ }
684
+
685
+ .tree-flex .dropdown-menu li + li {
686
+ text-align: left;
687
+ border: 0;
688
+ line-height: 40px;
689
+ padding-left: 15px;
690
+ padding-right: 15px;
691
+ font-size: 1em;
692
+ cursor: pointer;
693
+ }
694
+
695
+ .tree-flex .dropdown-menu li + li:hover {
696
+ background-color: rgba(255, 255, 255, 0.2);
697
+ }
698
+
699
+ .tree-flex .dropdown-menu li a {
700
+ border: none;
701
+ color: #fff;
702
+ height: 40px;
703
+ line-height: 40px;
704
+ font-size: 1em;
705
+ padding: 0px;
706
+ }
707
+
708
+ .tree-flex .dropdown-menu li a:hover {
709
+ color: #fff;
710
+ background-color: rgba(255, 255, 255, 0);
711
+ }
712
+
713
+ .tree-flex img {
714
+ height: 1.2em;
715
+ width: 1.2em;
716
+ margin-right: 15px;
717
+ margin-left: 5px;
718
+ }
719
+
720
+ .line {
721
+ height: 100%;
722
+ width: 5px;
723
+ background: #4C637B;
724
+ cursor: e-resize;
725
+ }
726
+
727
+ /*为树(tree)组件写的样式*/
728
+ .tree-img {
729
+ font-size: 1.2em;
730
+ }
731
+
732
+ /*将较长信息截断显示,鼠标悬停显示全部信息*/
733
+ .cutout50 {
734
+ max-width: 50px;
735
+ overflow: hidden;
736
+ text-overflow: ellipsis;
737
+ white-space: nowrap;
738
+ }
739
+
740
+ /* 滚动条样式 */
741
+ /*---滚动条默认显示样式--*/
742
+ ::-webkit-scrollbar-thumb {
743
+ // display: none;
744
+ background-color: rgba(0, 0, 0, 0.4);
745
+ /*background-color:red;*/
746
+ height: 50px;
747
+ outline-offset: -2px;
748
+ /*outline:2px solid #fff;*/
749
+ -webkit-border-radius: 4px;
750
+ /*border: 2px solid #fff;*/
751
+ }
752
+
753
+ /*---鼠标点击滚动条显示样式--*/
754
+ ::-webkit-scrollbar-thumb:hover {
755
+ // display: inherit;
756
+ background-color: rgba(0, 0, 0, 0.4);
757
+ height: 50px;
758
+ -webkit-border-radius: 4px;
759
+ }
760
+
761
+ /*---滚动条大小--*/
762
+ ::-webkit-scrollbar {
763
+ width: 8px;
764
+ height: 8px;
765
+ }
766
+
767
+ /*---滚动框背景样式--*/
768
+ ::-webkit-scrollbar-track-piece {
769
+ /* 全透明,不显示 */
770
+ background-color: rgba(255, 255, 255, 0);
771
+ -webkit-border-radius: 0;
772
+ }
773
+ </style>