system-clients 3.2.52 → 3.2.53-furuike

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 (240) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/CHANGELOG.md +51 -51
  5. package/README.md +36 -36
  6. package/SystemClient.iml +8 -8
  7. package/build/css-loaders.js +34 -34
  8. package/build/dev-client.js +8 -8
  9. package/build/example-server.js +80 -80
  10. package/build/release.sh +28 -28
  11. package/build/utils.js +71 -71
  12. package/build/webpack.base.conf.js +85 -85
  13. package/build/webpack.dev.conf.js +31 -31
  14. package/build/webpack.example.conf.js +49 -49
  15. package/build/webpack.prod.conf.js +60 -60
  16. package/build/webpack.test.conf.js +31 -31
  17. package/build.gradle +6 -6
  18. package/config/dev.env.js +6 -6
  19. package/config/index.js +38 -38
  20. package/config/prod.env.js +3 -3
  21. package/config/test.env.js +6 -6
  22. package/doc/Login.md +7 -7
  23. package/examples/LoginPage/App.vue +21 -21
  24. package/examples/LoginPage/index.html +11 -11
  25. package/examples/LoginPage/main.js +15 -15
  26. package/examples/ReadCard/App.vue +23 -23
  27. package/examples/ReadCard/index.html +11 -11
  28. package/examples/ReadCard/main.js +12 -12
  29. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  30. package/gradle/wrapper/gradle-wrapper.properties +5 -0
  31. package/index.html +21 -21
  32. package/package.json +1 -1
  33. package/release.bat +5 -5
  34. package/src/App.vue +24 -24
  35. package/src/LodopFuncs.js +123 -123
  36. package/src/assets/binding.svg +1 -1
  37. package/src/assets/unbind.svg +1 -1
  38. package/src/assets//345/205/254/345/221/212.svg +1 -1
  39. package/src/assets//347/207/203/346/260/224/347/274/264/350/264/271.eps +116 -116
  40. package/src/assets//350/201/224/347/263/273/346/210/221/344/273/254.svg +1 -1
  41. package/src/components/List.vue +51 -51
  42. package/src/components/Main.vue +785 -785
  43. package/src/components/TabButton.vue +201 -201
  44. package/src/components/Table.js +74 -74
  45. package/src/components/Tabs.vue +67 -67
  46. package/src/components/Util.js +343 -343
  47. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  48. package/src/components/equipment/EquipmentManage.vue +65 -65
  49. package/src/components/equipment/PcAdd.vue +105 -105
  50. package/src/components/equipment/PcList.vue +119 -119
  51. package/src/components/equipment/PcManage.vue +60 -60
  52. package/src/components/equipment/PhoneAdd.vue +107 -107
  53. package/src/components/equipment/PhoneList.vue +112 -112
  54. package/src/components/equipment/PhoneManage.vue +60 -60
  55. package/src/components/equipment/PosAdd.vue +323 -323
  56. package/src/components/equipment/PosList.vue +294 -294
  57. package/src/components/equipment/PosManage.vue +138 -138
  58. package/src/components/equipment/PosManageBoth.vue +125 -125
  59. package/src/components/equipment/PosParamAdd.vue +236 -236
  60. package/src/components/equipment/PosParamList.vue +121 -121
  61. package/src/components/equipment/PosParamManage.vue +51 -51
  62. package/src/components/materialManage/materialData.vue +44 -44
  63. package/src/components/materialManage/materialList.vue +255 -255
  64. package/src/components/parammanage/ParamManage.vue +42 -42
  65. package/src/components/parammanage/ParamManages.vue +43 -43
  66. package/src/components/parammanage/ParamPage.vue +336 -336
  67. package/src/components/parammanage/ParamPages.vue +222 -222
  68. package/src/components/parammanage/SinglePage.vue +235 -235
  69. package/src/components/parammanage/SinglePages.vue +167 -167
  70. package/src/components/server/AddChangeMsg.vue +66 -66
  71. package/src/components/server/ChangeDeclare.vue +45 -45
  72. package/src/components/server/IconTree.vue +26 -26
  73. package/src/components/server/ImageVieweTest.vue +56 -56
  74. package/src/components/server/ImageViewer.vue +350 -350
  75. package/src/components/server/LeftTree.vue +111 -111
  76. package/src/components/server/LoadData.vue +55 -55
  77. package/src/components/server/Login.vue +568 -568
  78. package/src/components/server/LoginPage.vue +235 -235
  79. package/src/components/server/LoginView.vue +128 -128
  80. package/src/components/server/Menu.vue +188 -188
  81. package/src/components/server/ModifyPw.vue +111 -111
  82. package/src/components/server/PcdBuildingSelect.vue +241 -241
  83. package/src/components/server/ResSelect.vue +155 -155
  84. package/src/components/server/ResSelectGroup.vue +198 -198
  85. package/src/components/server/RightTree.vue +348 -348
  86. package/src/components/server/RoleSelector.vue +88 -88
  87. package/src/components/server/TestResSelect.vue +58 -58
  88. package/src/components/server/TestResSelectGroup.vue +388 -388
  89. package/src/components/server/TestRightTree.vue +42 -42
  90. package/src/filiale/chengtou/Login.vue +537 -537
  91. package/src/filiale/chengtou/system.js +5 -5
  92. package/src/filiale/dongguan/Login.vue +900 -900
  93. package/src/filiale/dongguan/Main.vue +715 -715
  94. package/src/filiale/dongguan/system.js +6 -6
  95. package/src/filiale/furuike/Login.vue +583 -583
  96. package/src/filiale/furuike/Main.vue +1 -13
  97. package/src/filiale/furuike/system.js +7 -7
  98. package/src/filiale/konggang/Login.vue +470 -470
  99. package/src/filiale/konggang/system.js +7 -7
  100. package/src/filiale/qianneng/Main.vue +816 -816
  101. package/src/filiale/qianneng/ModifyPw.vue +107 -107
  102. package/src/filiale/qianneng/system.js +8 -8
  103. package/src/filiale/rizhao/LeftTree.vue +111 -111
  104. package/src/filiale/rizhao/Login.vue +791 -791
  105. package/src/filiale/rizhao/Main.vue +611 -611
  106. package/src/filiale/rizhao/system.js +14 -14
  107. package/src/filiale/tongchuan/Login.vue +561 -561
  108. package/src/filiale/tongchuan/system.js +7 -7
  109. package/src/filiale/wenxi/Login.vue +535 -535
  110. package/src/filiale/wenxi/Main.vue +785 -785
  111. package/src/filiale/wenxi/system.js +10 -10
  112. package/src/filiale/yuchuan/Login.vue +889 -889
  113. package/src/filiale/yuchuan/Main.vue +773 -773
  114. package/src/filiale/yuchuan/system.js +10 -10
  115. package/src/filiale/zhoukou/Main.vue +807 -807
  116. package/src/filiale/zhoukou/system.js +6 -6
  117. package/src/index.js +7 -7
  118. package/src/plugins/EncryptUtil.js +53 -53
  119. package/src/plugins/GetLoginInfoService.js +521 -521
  120. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  121. package/src/plugins/validation.js +15 -15
  122. package/src/project/ProjectPage.vue +24 -24
  123. package/src/project/State.js +17 -17
  124. package/src/stores/AppData.js +38 -38
  125. package/src/stores/HeatAppData.js +38 -38
  126. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  127. package/src/styles/less/.csscomb.json +304 -304
  128. package/src/styles/less/.csslintrc +19 -19
  129. package/src/styles/less/alerts.less +73 -73
  130. package/src/styles/less/aofeng/animate.min.css +10 -10
  131. package/src/styles/less/aofeng/expandcss.less +569 -569
  132. package/src/styles/less/aofeng/login.less +367 -367
  133. package/src/styles/less/aofeng/standard.less +2507 -2507
  134. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +686 -686
  135. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  136. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  137. package/src/styles/less/aofeng/themeOne.less +17 -17
  138. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  139. package/src/styles/less/aofeng/themeTwo.less +3 -3
  140. package/src/styles/less/badges.less +66 -66
  141. package/src/styles/less/bootstrap.less +66 -66
  142. package/src/styles/less/breadcrumbs.less +26 -26
  143. package/src/styles/less/button-groups.less +247 -247
  144. package/src/styles/less/buttons.less +172 -172
  145. package/src/styles/less/carousel.less +269 -269
  146. package/src/styles/less/close.less +34 -34
  147. package/src/styles/less/code.less +69 -69
  148. package/src/styles/less/component-animations.less +33 -33
  149. package/src/styles/less/dropdowns.less +216 -216
  150. package/src/styles/less/fonts-list.less +25 -25
  151. package/src/styles/less/forms.less +626 -626
  152. package/src/styles/less/glyphicons.less +305 -305
  153. package/src/styles/less/grid.less +84 -84
  154. package/src/styles/less/input-groups.less +167 -167
  155. package/src/styles/less/jumbotron.less +52 -52
  156. package/src/styles/less/labels.less +64 -64
  157. package/src/styles/less/list-group.less +141 -141
  158. package/src/styles/less/manageStyle/manageChile.less +180 -180
  159. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  160. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  161. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  162. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  163. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  164. package/src/styles/less/media.less +66 -66
  165. package/src/styles/less/mixins/alerts.less +14 -14
  166. package/src/styles/less/mixins/background-variant.less +9 -9
  167. package/src/styles/less/mixins/border-radius.less +18 -18
  168. package/src/styles/less/mixins/buttons.less +69 -69
  169. package/src/styles/less/mixins/center-block.less +7 -7
  170. package/src/styles/less/mixins/clearfix.less +22 -22
  171. package/src/styles/less/mixins/forms.less +90 -90
  172. package/src/styles/less/mixins/gradients.less +59 -59
  173. package/src/styles/less/mixins/grid-framework.less +92 -92
  174. package/src/styles/less/mixins/grid.less +122 -122
  175. package/src/styles/less/mixins/hide-text.less +21 -21
  176. package/src/styles/less/mixins/image.less +33 -33
  177. package/src/styles/less/mixins/labels.less +12 -12
  178. package/src/styles/less/mixins/list-group.less +30 -30
  179. package/src/styles/less/mixins/nav-divider.less +10 -10
  180. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  181. package/src/styles/less/mixins/opacity.less +8 -8
  182. package/src/styles/less/mixins/pagination.less +24 -24
  183. package/src/styles/less/mixins/panels.less +24 -24
  184. package/src/styles/less/mixins/progress-bar.less +10 -10
  185. package/src/styles/less/mixins/reset-filter.less +8 -8
  186. package/src/styles/less/mixins/reset-text.less +18 -18
  187. package/src/styles/less/mixins/resize.less +6 -6
  188. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  189. package/src/styles/less/mixins/size.less +10 -10
  190. package/src/styles/less/mixins/tab-focus.less +9 -9
  191. package/src/styles/less/mixins/table-row.less +44 -44
  192. package/src/styles/less/mixins/text-emphasis.less +9 -9
  193. package/src/styles/less/mixins/text-overflow.less +8 -8
  194. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  195. package/src/styles/less/mixins.less +40 -40
  196. package/src/styles/less/modals.less +151 -151
  197. package/src/styles/less/navbar.less +660 -660
  198. package/src/styles/less/navs.less +285 -285
  199. package/src/styles/less/normalize.less +424 -424
  200. package/src/styles/less/pager.less +76 -76
  201. package/src/styles/less/pagination.less +89 -89
  202. package/src/styles/less/panels.less +275 -275
  203. package/src/styles/less/popovers.less +131 -131
  204. package/src/styles/less/print.less +101 -101
  205. package/src/styles/less/progress-bars.less +87 -87
  206. package/src/styles/less/responsive-embed.less +35 -35
  207. package/src/styles/less/responsive-utilities.less +194 -194
  208. package/src/styles/less/scaffolding.less +161 -161
  209. package/src/styles/less/stand.less +207 -207
  210. package/src/styles/less/tables.less +312 -312
  211. package/src/styles/less/theme.less +291 -291
  212. package/src/styles/less/thumbnails.less +36 -36
  213. package/src/styles/less/tooltip.less +102 -102
  214. package/src/styles/less/type.less +316 -316
  215. package/src/styles/less/utilities.less +55 -55
  216. package/src/styles/less/variables.less +899 -899
  217. package/src/styles/less/wells.less +29 -29
  218. package/src/system.js +113 -113
  219. package/src/systemphone.js +11 -11
  220. package/src/util/Daiban.json +12 -12
  221. package/src/util/LdapHelper.js +75 -75
  222. package/test/e2e/custom-assertions/elementCount.js +26 -26
  223. package/test/e2e/nightwatch.conf.js +40 -40
  224. package/test/e2e/runner.js +30 -30
  225. package/test/e2e/specs/test.js +14 -14
  226. package/test/unit/.eslintrc +5 -5
  227. package/test/unit/index.js +13 -13
  228. package/test/unit/init.js +10 -10
  229. package/test/unit/karma.conf.js +49 -49
  230. package/test/unit/specs/base64.spec.js +5 -5
  231. package/test/unit/specs/components/parammanage/ParamPage.spec.js +20 -20
  232. package/test/unit/specs/components/parammanage/SinglePage.spec.js +20 -20
  233. package/test/unit/specs/components/server/LeftTree/App.vue +18 -18
  234. package/test/unit/specs/components/server/LeftTree/LeftTree.spec.js +22 -22
  235. package/test/unit/specs/components/server/LoadData.spec.js +24 -24
  236. package/test/unit/specs/components/server/Login.spec.js +61 -61
  237. package/test/unit/specs/components/server/RightTree.spec.js +50 -50
  238. package/test/unit/specs/plugins/GetLoginInfoService.spec.js +55 -55
  239. package/test/unit/test.html +76 -76
  240. package/yarn-error.log +6896 -6896
@@ -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(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(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>