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