system-clients 3.3.6 → 4.0.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 (224) hide show
  1. package/.eslintrc.js +16 -16
  2. package/SystemClient.iml +8 -8
  3. package/build/webpack.base.conf.js +85 -85
  4. package/build.gradle +6 -6
  5. package/examples/LoginPage/App.vue +21 -21
  6. package/examples/LoginPage/index.html +11 -11
  7. package/examples/LoginPage/main.js +15 -15
  8. package/index.html +21 -21
  9. package/package.json +105 -105
  10. package/src/App.vue +24 -24
  11. package/src/LodopFuncs.js +155 -155
  12. package/src/components/Main.vue +935 -935
  13. package/src/components/TabButton.vue +201 -201
  14. package/src/components/Tabs.vue +67 -67
  15. package/src/components/Util.js +343 -343
  16. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  17. package/src/components/common/ProgressBase.vue +83 -83
  18. package/src/components/equipment/EquipmentManage.vue +83 -83
  19. package/src/components/equipment/PcAdd.vue +115 -115
  20. package/src/components/equipment/PcList.vue +119 -119
  21. package/src/components/equipment/PcManage.vue +61 -61
  22. package/src/components/equipment/PhoneAdd.vue +118 -118
  23. package/src/components/equipment/PhoneList.vue +113 -113
  24. package/src/components/equipment/PhoneManage.vue +61 -61
  25. package/src/components/equipment/PosAdd.vue +319 -319
  26. package/src/components/equipment/PosList.vue +292 -292
  27. package/src/components/equipment/PosManage.vue +138 -138
  28. package/src/components/equipment/PosManageBoth.vue +125 -125
  29. package/src/components/equipment/PosParamAdd.vue +236 -236
  30. package/src/components/equipment/PosParamList.vue +121 -121
  31. package/src/components/equipment/PosParamManage.vue +51 -51
  32. package/src/components/materialManage/materialData.vue +44 -44
  33. package/src/components/materialManage/materialList.vue +255 -255
  34. package/src/components/parammanage/ParamManage.vue +42 -42
  35. package/src/components/parammanage/ParamPage.vue +337 -337
  36. package/src/components/parammanage/ParamPages.vue +222 -222
  37. package/src/components/parammanage/SinglePage.vue +235 -235
  38. package/src/components/parammanage/SinglePages.vue +167 -167
  39. package/src/components/server/AddChangeMsg.vue +66 -66
  40. package/src/components/server/ChangeDeclare.vue +45 -45
  41. package/src/components/server/ImageVieweTest.vue +56 -56
  42. package/src/components/server/ImageViewer.vue +350 -350
  43. package/src/components/server/LeftTree.vue +111 -111
  44. package/src/components/server/LoadData.vue +55 -55
  45. package/src/components/server/Login.vue +615 -615
  46. package/src/components/server/LoginPage.vue +235 -235
  47. package/src/components/server/LoginView.vue +128 -128
  48. package/src/components/server/Menu.vue +188 -188
  49. package/src/components/server/ModifyPw.vue +126 -126
  50. package/src/components/server/PcdBuildingSelect.vue +243 -243
  51. package/src/components/server/ResSelect.vue +172 -172
  52. package/src/components/server/ResSelectGroup.vue +211 -211
  53. package/src/components/server/RightTree.vue +348 -348
  54. package/src/components/server/RoleSelector.vue +90 -90
  55. package/src/components/server/TestResSelect.vue +58 -58
  56. package/src/components/server/TestResSelectGroup.vue +388 -388
  57. package/src/filiale/baole/Login.vue +570 -570
  58. package/src/filiale/baole/system.js +5 -5
  59. package/src/filiale/bayan/PosAdd.vue +368 -368
  60. package/src/filiale/bayan/PosList.vue +341 -341
  61. package/src/filiale/bayan/PosManage.vue +138 -138
  62. package/src/filiale/bayan/system.js +6 -6
  63. package/src/filiale/chengtou/Login.vue +539 -539
  64. package/src/filiale/chengtou/system.js +5 -5
  65. package/src/filiale/dongguan/Login.vue +902 -902
  66. package/src/filiale/dongguan/Main.vue +717 -717
  67. package/src/filiale/dongguan/system.js +6 -6
  68. package/src/filiale/furuike/Login.vue +587 -587
  69. package/src/filiale/furuike/Main.vue +840 -840
  70. package/src/filiale/furuike/system.js +7 -7
  71. package/src/filiale/gehua/Main.vue +809 -809
  72. package/src/filiale/gehua/system.js +6 -6
  73. package/src/filiale/konggang/Login.vue +472 -472
  74. package/src/filiale/konggang/system.js +7 -7
  75. package/src/filiale/qianneng/Login.vue +584 -584
  76. package/src/filiale/qianneng/Main.vue +818 -818
  77. package/src/filiale/qianneng/ModifyPw.vue +108 -108
  78. package/src/filiale/qianneng/system.js +11 -11
  79. package/src/filiale/rizhao/LeftTree.vue +111 -111
  80. package/src/filiale/rizhao/Login.vue +793 -793
  81. package/src/filiale/rizhao/Main.vue +611 -611
  82. package/src/filiale/rizhao/system.js +14 -14
  83. package/src/filiale/ruihua/Login.vue +576 -576
  84. package/src/filiale/ruihua/system.js +5 -5
  85. package/src/filiale/shiquan/Login.vue +566 -566
  86. package/src/filiale/shiquan/system.js +8 -8
  87. package/src/filiale/tianyi/Login.vue +573 -573
  88. package/src/filiale/tianyi/system.js +5 -5
  89. package/src/filiale/tongchuan/Login.vue +563 -563
  90. package/src/filiale/tongchuan/Main.vue +1021 -1021
  91. package/src/filiale/tongchuan/system.js +7 -7
  92. package/src/filiale/weinan/Main.vue +924 -924
  93. package/src/filiale/weinan/system.js +7 -7
  94. package/src/filiale/wenxi/Login.vue +537 -537
  95. package/src/filiale/wenxi/Main.vue +787 -787
  96. package/src/filiale/wenxi/system.js +10 -10
  97. package/src/filiale/wuhai/LeftTree.vue +141 -141
  98. package/src/filiale/wuhai/Main.vue +810 -810
  99. package/src/filiale/wuhai/system.js +10 -10
  100. package/src/filiale/yuchuan/Login.vue +891 -891
  101. package/src/filiale/yuchuan/Main.vue +866 -866
  102. package/src/filiale/yuchuan/system.js +10 -10
  103. package/src/filiale/zhoukou/Main.vue +809 -809
  104. package/src/filiale/zhoukou/system.js +6 -6
  105. package/src/plugins/EncryptUtil.js +53 -53
  106. package/src/plugins/GetLoginInfoService.js +480 -480
  107. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  108. package/src/plugins/validation.js +15 -15
  109. package/src/project/State.js +17 -17
  110. package/src/stores/AppData.js +38 -38
  111. package/src/stores/HeatAppData.js +38 -38
  112. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  113. package/src/styles/less/.csscomb.json +304 -304
  114. package/src/styles/less/.csslintrc +19 -19
  115. package/src/styles/less/alerts.less +73 -73
  116. package/src/styles/less/aofeng/animate.min.css +10 -10
  117. package/src/styles/less/aofeng/expandcss.less +569 -569
  118. package/src/styles/less/aofeng/login.less +367 -367
  119. package/src/styles/less/aofeng/standard.less +2507 -2507
  120. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +690 -690
  121. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  122. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  123. package/src/styles/less/aofeng/themeOne.less +17 -17
  124. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  125. package/src/styles/less/aofeng/themeTwo.less +3 -3
  126. package/src/styles/less/badges.less +66 -66
  127. package/src/styles/less/bootstrap.less +66 -66
  128. package/src/styles/less/breadcrumbs.less +26 -26
  129. package/src/styles/less/button-groups.less +247 -247
  130. package/src/styles/less/buttons.less +172 -172
  131. package/src/styles/less/carousel.less +269 -269
  132. package/src/styles/less/close.less +34 -34
  133. package/src/styles/less/code.less +69 -69
  134. package/src/styles/less/component-animations.less +33 -33
  135. package/src/styles/less/dropdowns.less +216 -216
  136. package/src/styles/less/fonts-list.less +25 -25
  137. package/src/styles/less/forms.less +626 -626
  138. package/src/styles/less/glyphicons.less +305 -305
  139. package/src/styles/less/grid.less +84 -84
  140. package/src/styles/less/input-groups.less +167 -167
  141. package/src/styles/less/jumbotron.less +52 -52
  142. package/src/styles/less/labels.less +64 -64
  143. package/src/styles/less/list-group.less +141 -141
  144. package/src/styles/less/manageStyle/manageChile.less +180 -180
  145. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  146. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  147. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  148. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  149. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  150. package/src/styles/less/media.less +66 -66
  151. package/src/styles/less/mixins/alerts.less +14 -14
  152. package/src/styles/less/mixins/background-variant.less +9 -9
  153. package/src/styles/less/mixins/border-radius.less +18 -18
  154. package/src/styles/less/mixins/buttons.less +69 -69
  155. package/src/styles/less/mixins/center-block.less +7 -7
  156. package/src/styles/less/mixins/clearfix.less +22 -22
  157. package/src/styles/less/mixins/forms.less +90 -90
  158. package/src/styles/less/mixins/gradients.less +59 -59
  159. package/src/styles/less/mixins/grid-framework.less +92 -92
  160. package/src/styles/less/mixins/grid.less +122 -122
  161. package/src/styles/less/mixins/hide-text.less +21 -21
  162. package/src/styles/less/mixins/image.less +33 -33
  163. package/src/styles/less/mixins/labels.less +12 -12
  164. package/src/styles/less/mixins/list-group.less +30 -30
  165. package/src/styles/less/mixins/nav-divider.less +10 -10
  166. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  167. package/src/styles/less/mixins/opacity.less +8 -8
  168. package/src/styles/less/mixins/pagination.less +24 -24
  169. package/src/styles/less/mixins/panels.less +24 -24
  170. package/src/styles/less/mixins/progress-bar.less +10 -10
  171. package/src/styles/less/mixins/reset-filter.less +8 -8
  172. package/src/styles/less/mixins/reset-text.less +18 -18
  173. package/src/styles/less/mixins/resize.less +6 -6
  174. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  175. package/src/styles/less/mixins/size.less +10 -10
  176. package/src/styles/less/mixins/tab-focus.less +9 -9
  177. package/src/styles/less/mixins/table-row.less +44 -44
  178. package/src/styles/less/mixins/text-emphasis.less +9 -9
  179. package/src/styles/less/mixins/text-overflow.less +8 -8
  180. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  181. package/src/styles/less/mixins.less +40 -40
  182. package/src/styles/less/modals.less +151 -151
  183. package/src/styles/less/navbar.less +660 -660
  184. package/src/styles/less/navs.less +285 -285
  185. package/src/styles/less/normalize.less +424 -424
  186. package/src/styles/less/pager.less +76 -76
  187. package/src/styles/less/pagination.less +89 -89
  188. package/src/styles/less/panels.less +275 -275
  189. package/src/styles/less/popovers.less +131 -131
  190. package/src/styles/less/print.less +101 -101
  191. package/src/styles/less/progress-bars.less +87 -87
  192. package/src/styles/less/responsive-embed.less +35 -35
  193. package/src/styles/less/responsive-utilities.less +194 -194
  194. package/src/styles/less/scaffolding.less +161 -161
  195. package/src/styles/less/stand.less +207 -207
  196. package/src/styles/less/tables.less +312 -312
  197. package/src/styles/less/theme.less +291 -291
  198. package/src/styles/less/thumbnails.less +36 -36
  199. package/src/styles/less/tooltip.less +102 -102
  200. package/src/styles/less/type.less +316 -316
  201. package/src/styles/less/utilities.less +55 -55
  202. package/src/styles/less/variables.less +899 -899
  203. package/src/styles/less/wells.less +29 -29
  204. package/src/system.js +122 -122
  205. package/src/util/Daiban.json +12 -12
  206. package/yarn-error.log +6896 -6896
  207. package/.gradle/8.5/checksums/checksums.lock +0 -0
  208. package/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
  209. package/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
  210. package/.gradle/8.5/executionHistory/executionHistory.bin +0 -0
  211. package/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
  212. package/.gradle/8.5/fileChanges/last-build.bin +0 -0
  213. package/.gradle/8.5/fileHashes/fileHashes.bin +0 -0
  214. package/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
  215. package/.gradle/8.5/gc.properties +0 -0
  216. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  217. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  218. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  219. package/.gradle/file-system.probe +0 -0
  220. package/.gradle/vcs-1/gc.properties +0 -0
  221. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  222. package/gradle/wrapper/gradle-wrapper.properties +0 -7
  223. package/gradlew +0 -249
  224. package/gradlew.bat +0 -92
@@ -1,348 +1,348 @@
1
- <template>
2
- <dropdown :model='model' class="auto" id="res-tree" v-if="!islist" v-el:dropdown :style="{width:width}">
3
- <button type="button" class="btn btn-default dropdown-toggle select-style" data-toggle="dropdown" :disabled="mustselect">
4
- <span class='btn-content' :style="{textOverflow:'ellipsis',overflow: 'hidden'}">{{ orgnames }}</span>
5
- <span class="caret"></span>
6
- </button>
7
- <div class="dropdown-menu auto" style="width:auto;max-height: 500px;overflow: auto" >
8
- <input type="text" placeholder="Search"
9
- placeholder='请输入'
10
- slot="dropdown-menu"
11
- v-model="searchText"
12
- class="form-control" autocomplete="off"
13
- @keydown.enter="buluer(searchText)">
14
- <tree :filter="strsign" :model='model' v-ref:tree :is-click="false" role="menu">
15
- <span partial>
16
- <span class="glyphicon glyphicon-chevron-down" v-show="row.open&&row.data.children.length>0" style="color:balck;"></span>
17
- <span class="glyphicon glyphicon-chevron-right" v-show="!row.open&&row.data.children.length>0" style="color:balck;"></span>
18
- <span class="RightTreeCanSelect" v-if="row.data.hasright" @click.stop="$parent.$parent.$parent.selectclick(row.data)">{{row.data.name}}</span>
19
- <span class="RightTreeCanNotSelect" v-else>{{row.data.name}}</span>
20
- <span class="glyphicon glyphicon-ok " v-if="$parent.$parent.$parent.isSelect(row.data.id)" style="color:balck;"></span>
21
- </span>
22
- </tree>
23
- </div>
24
-
25
- </dropdown>
26
- <v-select v-if="islist"
27
- placeholder='请选择'
28
- :options='childrenOptions'
29
- :disabled="mustselect"
30
- @change="selectclick"
31
- :value-single="true"
32
- close-on-select></v-select>
33
- </template>
34
- <script>
35
- import Vue from 'vue';
36
- import co from 'co'
37
- import { PagedList, HttpResetClass } from 'vue-client'
38
- import * as ldapHelper from '../../util/LdapHelper'
39
- let saveGen = function * (self) {
40
- //获取分公司树
41
- let data = {
42
- source: self.source,
43
- userid: self.userid
44
- }
45
- // if(self.$treeorg==null || (self.$treeorg!=null&&self.$treeorg.length==0)){
46
- let http = new HttpResetClass()
47
- let ret = yield http.load('POST', `${self.Url}/rs/search`, data, {resolveMsg: null, rejectMsg: null})
48
- // 去掉前面的两层节点
49
- ret.data[0].children[0].children.forEach((item) => {
50
- self.model.push(item)
51
- })
52
- Vue.$treeorg = Vue.prototype.$treeorg = self.model;
53
- // }
54
- //if(self.$treeorg!=null){
55
- // self.model = self.$treeorg;
56
- //}
57
- // 给资源添加父关系
58
- ldapHelper.procParent(self.model)
59
- // 树转列
60
- // if (self.islist) {
61
- // self.treetoList(self.model)
62
- // }
63
- if(self.initresid.length>0){
64
- if(self.initresid[0] == ''){
65
- self.initresid[0] = self.$login.f.orgid;
66
- }
67
- }else{
68
- self.initresid = [];
69
- self.initresid[0] = self.$login.f.orgid;
70
- }
71
- if(self.initresid&&self.initresid.length>0){
72
- self.isselect = false;
73
- self.initTreetoList(self.model)
74
- self.initregion(self.childrenOptions)
75
- self.childrenOptions.forEach((item) => {
76
- if(item.id == null && item.value !=null ){
77
- item = item.value
78
- }
79
- if(item.id==self.initresid[0]){
80
- //默认加载如果已选中的和传入参数相等会取消选择,这种操作不应该被允许
81
- if(self.orgids==item.id){
82
- self.initdataone(item);
83
- return;
84
- }
85
- self.selectclick(item);
86
- self.isselect = true;
87
- return;
88
- }
89
- })
90
- //如果没有找到公司,说明是选择的是大区
91
- if(!self.isselect){
92
- self.childrenregionOption.forEach((item) => {
93
- if(item.id == null && item.value !=null ){
94
- item = item.value;
95
- }
96
- if(item.id==self.initresid[0]){
97
- //默认加载如果已选中的和传入参数相等会取消选择,这种操作不应该被允许
98
- if(self.orgids==item.id){
99
- self.initdataone(item);
100
- return;
101
- }
102
- self.selectclick(item);
103
- return;
104
- }
105
- })
106
- }
107
- }
108
- //self.selectRes()
109
- }
110
- export default {
111
- title: '资源树',
112
- props: {
113
- searchText:'',
114
- strsign:'',
115
- source: {
116
- type: String,
117
- require: true,
118
- default:`tool.getFullTree(this.getRights().where(row.getType() == $organization$))`
119
- },
120
- //资源初始化数据
121
- initresid: {
122
- type: Array,
123
- default() { return [] },
124
- },
125
- resid: {
126
- },
127
- islist: {
128
- type: Boolean,
129
- default: false
130
- },
131
- //是否有查看上级的权限
132
- Url:{
133
- type: String,
134
- default:''
135
- },
136
- mustselect: {
137
- type: Boolean,
138
- default: false
139
- },
140
- width:{
141
- type:String,
142
- default:'60%'
143
- }
144
- },
145
- data () {
146
- return {
147
- resobj:{res:this.$login.f.orgs, resids:this.$login.f.orgid},
148
- userid: this.$login.f.id,
149
- resname:[this.$login.f.orgs],
150
- orgnames : "请选择",
151
- //单选点击 返回所有子
152
- orgids : null,
153
- orgobj:null,
154
- model: [
155
-
156
- ],
157
- childrenOptions: [],
158
- childrenregionOption:[],
159
- isselect: false
160
- }
161
- },
162
- methods: {
163
- selectRes () {
164
- let newobj={
165
- "res": [this.resname],
166
- "resids": [this.orgids],
167
- }
168
- this.$emit('re-res', newobj)
169
- },
170
- //树形结构变成list
171
- initTreetoList(val) {
172
- for (let value of val) {
173
- this.initErgodicList(value)
174
- }
175
- },
176
- //找到跟节点
177
- initErgodicList (val) {
178
- if(val.children.length > 0){
179
- this.childrenOptions.push(val)
180
- this.treetoList(val.children)
181
- }else{
182
- this.childrenOptions.push(val)
183
- }
184
- },
185
- initregion(val){
186
- if(val ==null ) return;
187
- val.forEach((item)=>{
188
- if(item.name != null){
189
- if(item.name.includes("公司")){
190
- return;
191
- }else{
192
- this.initregion(item.children)
193
- this.childrenregionOption.push({label:"",value:item})
194
- //return item;
195
- }
196
- }else{
197
- return;
198
- }
199
- })
200
-
201
- },
202
- async buluer (val) {
203
- this.strsign=val
204
- await new Promise(resolve => {
205
- this.$nextTick(() => {
206
- resolve()
207
- })
208
- })
209
- },
210
- //点击资源的方法
211
- selectclick (row) {
212
- if(row == undefined || this.orgids==row.id){
213
- //取消点击
214
- this.orgnames="请选择"
215
- this.orgids=null
216
- this.orgobj=null
217
- let newobj={
218
- "res": [],
219
- "resids": [],
220
- "orgobj": [],
221
- }
222
- this.$emit('re-res', newobj)
223
- }else{
224
- //点中点击
225
- this.orgnames=row.name
226
- this.orgids=row.id
227
- this.orgobj=row
228
- let objs=[]
229
- let objids=[]
230
- let objnames=[]
231
- this.addResChild(row,objs)
232
- objs.forEach((item) => {
233
- objids.push(item.id)
234
- objnames.push(item.name)
235
- })
236
- let newobj={
237
- "res": objnames,
238
- "resids": objids,
239
- "orgobj": objs,
240
- }
241
- this.$emit('re-res', newobj)
242
- }
243
- },
244
- initdataone(row){
245
- //点中点击
246
- this.orgnames=row.name
247
- this.orgids=row.id
248
- this.orgobj=row
249
- let objs=[]
250
- let objids=[]
251
- let objnames=[]
252
- this.addResChild(row,objs)
253
- objs.forEach((item) => {
254
- objids.push(item.id)
255
- objnames.push(item.name)
256
- })
257
- let newobj={
258
- "res": objnames,
259
- "resids": objids,
260
- "orgobj": objs,
261
- }
262
- this.$emit('re-res', newobj)
263
- },
264
- addResChild(val,objs){
265
- objs.push(val)
266
- if(val.children && val.children.length>0){
267
- Object.keys(val.children).forEach((key) => {
268
- this.addResChild(val.children[key],objs)
269
- })
270
- }
271
- return objs
272
- },
273
- //检查是否显示对勾
274
- isSelect(val) {
275
- if(this.orgids==val){
276
- return true
277
- }else{
278
- return false
279
- }
280
- },
281
- //树形结构变成list
282
- treetoList(val) {
283
- for (let value of val) {
284
- this.ergodicList(value)
285
- }
286
- },
287
- //找到跟节点
288
- ergodicList (val) {
289
- val.children.length > 0 ? this.treetoList(val.children) : this.childrenOptions.push({label: val.name, value: val})
290
- },
291
- //处理显示默认值
292
- dealResObj (val) {
293
- try{
294
- var arr=val.res.split(".")
295
- //截取最后一个分公司名字
296
- this.resname=arr[arr.length-1].toString()
297
- this.orgnames=arr[arr.length-1].toString()
298
- this.resid = val.resids
299
- this.orgids = val.resids
300
- }catch (e){
301
- this.resname='请选择组织'
302
- }
303
- },
304
- judgBoundary(){
305
- //判断是否超出边界,超出移动
306
- if(document.documentElement.offsetWidth< this.$els.dropdown.getBoundingClientRect().right){
307
- this.left = document.documentElement.offsetWidth - this.$els.dropdown.getBoundingClientRect().right - 25
308
- }
309
- }
310
- },
311
- events: {
312
-
313
- },
314
- ready () {
315
- this.dealResObj (this.resobj)
316
- let gen = saveGen(this)
317
- return co(gen)
318
- },
319
- watch: {
320
- }
321
- }
322
- </script>
323
- <style lang="less">
324
- #res-tree {
325
- .list-group-item {
326
- background-color: #FFF;
327
- color: #000;
328
- padding: 5px 10px;
329
- border:0px;
330
- white-space: nowrap;
331
- }
332
- }
333
- #res-tree .list-group {
334
- width: auto;
335
- min-width: 100%;
336
- }
337
- .hide-text-overflow{
338
- overflow: hidden;
339
- text-overflow: ellipsis
340
- }
341
- .select-style {
342
- border: 0px;
343
- /*border-bottom: 2px solid #C9CCCF;*/
344
- border: 1px solid #93B2D3;
345
- border-radius: 0px;
346
- color: #555;
347
- }
348
- </style>
1
+ <template>
2
+ <dropdown :model='model' class="auto" id="res-tree" v-if="!islist" v-el:dropdown :style="{width:width}">
3
+ <button type="button" class="btn btn-default dropdown-toggle select-style" data-toggle="dropdown" :disabled="mustselect">
4
+ <span class='btn-content' :style="{textOverflow:'ellipsis',overflow: 'hidden'}">{{ orgnames }}</span>
5
+ <span class="caret"></span>
6
+ </button>
7
+ <div class="dropdown-menu auto" style="width:auto;max-height: 500px;overflow: auto" >
8
+ <input type="text" placeholder="Search"
9
+ placeholder='请输入'
10
+ slot="dropdown-menu"
11
+ v-model="searchText"
12
+ class="form-control" autocomplete="off"
13
+ @keydown.enter="buluer(searchText)">
14
+ <tree :filter="strsign" :model='model' v-ref:tree :is-click="false" role="menu">
15
+ <span partial>
16
+ <span class="glyphicon glyphicon-chevron-down" v-show="row.open&&row.data.children.length>0" style="color:balck;"></span>
17
+ <span class="glyphicon glyphicon-chevron-right" v-show="!row.open&&row.data.children.length>0" style="color:balck;"></span>
18
+ <span class="RightTreeCanSelect" v-if="row.data.hasright" @click.stop="$parent.$parent.$parent.selectclick(row.data)">{{row.data.name}}</span>
19
+ <span class="RightTreeCanNotSelect" v-else>{{row.data.name}}</span>
20
+ <span class="glyphicon glyphicon-ok " v-if="$parent.$parent.$parent.isSelect(row.data.id)" style="color:balck;"></span>
21
+ </span>
22
+ </tree>
23
+ </div>
24
+
25
+ </dropdown>
26
+ <v-select v-if="islist"
27
+ placeholder='请选择'
28
+ :options='childrenOptions'
29
+ :disabled="mustselect"
30
+ @change="selectclick"
31
+ :value-single="true"
32
+ close-on-select></v-select>
33
+ </template>
34
+ <script>
35
+ import Vue from 'vue';
36
+ import co from 'co'
37
+ import { PagedList, HttpResetClass } from 'vue-client'
38
+ import * as ldapHelper from '../../util/LdapHelper'
39
+ let saveGen = function * (self) {
40
+ //获取分公司树
41
+ let data = {
42
+ source: self.source,
43
+ userid: self.userid
44
+ }
45
+ // if(self.$treeorg==null || (self.$treeorg!=null&&self.$treeorg.length==0)){
46
+ let http = new HttpResetClass()
47
+ let ret = yield http.load('POST', `${self.Url}/rs/search`, data, {resolveMsg: null, rejectMsg: null})
48
+ // 去掉前面的两层节点
49
+ ret.data[0].children[0].children.forEach((item) => {
50
+ self.model.push(item)
51
+ })
52
+ Vue.$treeorg = Vue.prototype.$treeorg = self.model;
53
+ // }
54
+ //if(self.$treeorg!=null){
55
+ // self.model = self.$treeorg;
56
+ //}
57
+ // 给资源添加父关系
58
+ ldapHelper.procParent(self.model)
59
+ // 树转列
60
+ // if (self.islist) {
61
+ // self.treetoList(self.model)
62
+ // }
63
+ if(self.initresid.length>0){
64
+ if(self.initresid[0] == ''){
65
+ self.initresid[0] = self.$login.f.orgid;
66
+ }
67
+ }else{
68
+ self.initresid = [];
69
+ self.initresid[0] = self.$login.f.orgid;
70
+ }
71
+ if(self.initresid&&self.initresid.length>0){
72
+ self.isselect = false;
73
+ self.initTreetoList(self.model)
74
+ self.initregion(self.childrenOptions)
75
+ self.childrenOptions.forEach((item) => {
76
+ if(item.id == null && item.value !=null ){
77
+ item = item.value
78
+ }
79
+ if(item.id==self.initresid[0]){
80
+ //默认加载如果已选中的和传入参数相等会取消选择,这种操作不应该被允许
81
+ if(self.orgids==item.id){
82
+ self.initdataone(item);
83
+ return;
84
+ }
85
+ self.selectclick(item);
86
+ self.isselect = true;
87
+ return;
88
+ }
89
+ })
90
+ //如果没有找到公司,说明是选择的是大区
91
+ if(!self.isselect){
92
+ self.childrenregionOption.forEach((item) => {
93
+ if(item.id == null && item.value !=null ){
94
+ item = item.value;
95
+ }
96
+ if(item.id==self.initresid[0]){
97
+ //默认加载如果已选中的和传入参数相等会取消选择,这种操作不应该被允许
98
+ if(self.orgids==item.id){
99
+ self.initdataone(item);
100
+ return;
101
+ }
102
+ self.selectclick(item);
103
+ return;
104
+ }
105
+ })
106
+ }
107
+ }
108
+ //self.selectRes()
109
+ }
110
+ export default {
111
+ title: '资源树',
112
+ props: {
113
+ searchText:'',
114
+ strsign:'',
115
+ source: {
116
+ type: String,
117
+ require: true,
118
+ default:`tool.getFullTree(this.getRights().where(row.getType() == $organization$))`
119
+ },
120
+ //资源初始化数据
121
+ initresid: {
122
+ type: Array,
123
+ default() { return [] },
124
+ },
125
+ resid: {
126
+ },
127
+ islist: {
128
+ type: Boolean,
129
+ default: false
130
+ },
131
+ //是否有查看上级的权限
132
+ Url:{
133
+ type: String,
134
+ default:''
135
+ },
136
+ mustselect: {
137
+ type: Boolean,
138
+ default: false
139
+ },
140
+ width:{
141
+ type:String,
142
+ default:'60%'
143
+ }
144
+ },
145
+ data () {
146
+ return {
147
+ resobj:{res:this.$login.f.orgs, resids:this.$login.f.orgid},
148
+ userid: this.$login.f.id,
149
+ resname:[this.$login.f.orgs],
150
+ orgnames : "请选择",
151
+ //单选点击 返回所有子
152
+ orgids : null,
153
+ orgobj:null,
154
+ model: [
155
+
156
+ ],
157
+ childrenOptions: [],
158
+ childrenregionOption:[],
159
+ isselect: false
160
+ }
161
+ },
162
+ methods: {
163
+ selectRes () {
164
+ let newobj={
165
+ "res": [this.resname],
166
+ "resids": [this.orgids],
167
+ }
168
+ this.$emit('re-res', newobj)
169
+ },
170
+ //树形结构变成list
171
+ initTreetoList(val) {
172
+ for (let value of val) {
173
+ this.initErgodicList(value)
174
+ }
175
+ },
176
+ //找到跟节点
177
+ initErgodicList (val) {
178
+ if(val.children.length > 0){
179
+ this.childrenOptions.push(val)
180
+ this.treetoList(val.children)
181
+ }else{
182
+ this.childrenOptions.push(val)
183
+ }
184
+ },
185
+ initregion(val){
186
+ if(val ==null ) return;
187
+ val.forEach((item)=>{
188
+ if(item.name != null){
189
+ if(item.name.includes("公司")){
190
+ return;
191
+ }else{
192
+ this.initregion(item.children)
193
+ this.childrenregionOption.push({label:"",value:item})
194
+ //return item;
195
+ }
196
+ }else{
197
+ return;
198
+ }
199
+ })
200
+
201
+ },
202
+ async buluer (val) {
203
+ this.strsign=val
204
+ await new Promise(resolve => {
205
+ this.$nextTick(() => {
206
+ resolve()
207
+ })
208
+ })
209
+ },
210
+ //点击资源的方法
211
+ selectclick (row) {
212
+ if(row == undefined || this.orgids==row.id){
213
+ //取消点击
214
+ this.orgnames="请选择"
215
+ this.orgids=null
216
+ this.orgobj=null
217
+ let newobj={
218
+ "res": [],
219
+ "resids": [],
220
+ "orgobj": [],
221
+ }
222
+ this.$emit('re-res', newobj)
223
+ }else{
224
+ //点中点击
225
+ this.orgnames=row.name
226
+ this.orgids=row.id
227
+ this.orgobj=row
228
+ let objs=[]
229
+ let objids=[]
230
+ let objnames=[]
231
+ this.addResChild(row,objs)
232
+ objs.forEach((item) => {
233
+ objids.push(item.id)
234
+ objnames.push(item.name)
235
+ })
236
+ let newobj={
237
+ "res": objnames,
238
+ "resids": objids,
239
+ "orgobj": objs,
240
+ }
241
+ this.$emit('re-res', newobj)
242
+ }
243
+ },
244
+ initdataone(row){
245
+ //点中点击
246
+ this.orgnames=row.name
247
+ this.orgids=row.id
248
+ this.orgobj=row
249
+ let objs=[]
250
+ let objids=[]
251
+ let objnames=[]
252
+ this.addResChild(row,objs)
253
+ objs.forEach((item) => {
254
+ objids.push(item.id)
255
+ objnames.push(item.name)
256
+ })
257
+ let newobj={
258
+ "res": objnames,
259
+ "resids": objids,
260
+ "orgobj": objs,
261
+ }
262
+ this.$emit('re-res', newobj)
263
+ },
264
+ addResChild(val,objs){
265
+ objs.push(val)
266
+ if(val.children && val.children.length>0){
267
+ Object.keys(val.children).forEach((key) => {
268
+ this.addResChild(val.children[key],objs)
269
+ })
270
+ }
271
+ return objs
272
+ },
273
+ //检查是否显示对勾
274
+ isSelect(val) {
275
+ if(this.orgids==val){
276
+ return true
277
+ }else{
278
+ return false
279
+ }
280
+ },
281
+ //树形结构变成list
282
+ treetoList(val) {
283
+ for (let value of val) {
284
+ this.ergodicList(value)
285
+ }
286
+ },
287
+ //找到跟节点
288
+ ergodicList (val) {
289
+ val.children.length > 0 ? this.treetoList(val.children) : this.childrenOptions.push({label: val.name, value: val})
290
+ },
291
+ //处理显示默认值
292
+ dealResObj (val) {
293
+ try{
294
+ var arr=val.res.split(".")
295
+ //截取最后一个分公司名字
296
+ this.resname=arr[arr.length-1].toString()
297
+ this.orgnames=arr[arr.length-1].toString()
298
+ this.resid = val.resids
299
+ this.orgids = val.resids
300
+ }catch (e){
301
+ this.resname='请选择组织'
302
+ }
303
+ },
304
+ judgBoundary(){
305
+ //判断是否超出边界,超出移动
306
+ if(document.documentElement.offsetWidth< this.$els.dropdown.getBoundingClientRect().right){
307
+ this.left = document.documentElement.offsetWidth - this.$els.dropdown.getBoundingClientRect().right - 25
308
+ }
309
+ }
310
+ },
311
+ events: {
312
+
313
+ },
314
+ ready () {
315
+ this.dealResObj (this.resobj)
316
+ let gen = saveGen(this)
317
+ return co(gen)
318
+ },
319
+ watch: {
320
+ }
321
+ }
322
+ </script>
323
+ <style lang="less">
324
+ #res-tree {
325
+ .list-group-item {
326
+ background-color: #FFF;
327
+ color: #000;
328
+ padding: 5px 10px;
329
+ border:0px;
330
+ white-space: nowrap;
331
+ }
332
+ }
333
+ #res-tree .list-group {
334
+ width: auto;
335
+ min-width: 100%;
336
+ }
337
+ .hide-text-overflow{
338
+ overflow: hidden;
339
+ text-overflow: ellipsis
340
+ }
341
+ .select-style {
342
+ border: 0px;
343
+ /*border-bottom: 2px solid #C9CCCF;*/
344
+ border: 1px solid #93B2D3;
345
+ border-radius: 0px;
346
+ color: #555;
347
+ }
348
+ </style>