7ebf2524 by yangwei

代码合并

1 parent b4f32752
1 <template> 1 <template>
2 <div class="lpbContent-wrap" ref="lpbContentWrap"> 2 <div class="lpbContent-wrap" ref="lpbContentWrap">
3 <div class="lpbContent" ref="lpbContent" :style="{ 'height': 'calc(100% - '+ lpbContentHeight +'px)'}"> 3 <div
4 class="lpbContent"
5 ref="lpbContent"
6 :style="{ height: 'calc(100% - ' + lpbContentHeight + 'px)' }"
7 >
4 <!-- 纵向倒序排列 逻辑幢位于独立幢单元和独立层户的上方 --> 8 <!-- 纵向倒序排列 逻辑幢位于独立幢单元和独立层户的上方 -->
5 <div class="ch-zdy-wrap"> 9 <div class="ch-zdy-wrap">
6 <!-- 幢单元 --> 10 <!-- 幢单元 -->
7 <zdy-cpn v-if="lpbData.zdys.length" :zdys="lpbData.zdys" :onlyShow="onlyShow" /> 11 <zdy-cpn
12 v-if="lpbData.zdys.length"
13 :zdys="lpbData.zdys"
14 :onlyShow="onlyShow"
15 />
8 <!-- 独立层户 --> 16 <!-- 独立层户 -->
9 <ch-cpn v-if="lpbData.cs.length" :ch="lpbData.cs" :onlyShow="onlyShow" /> 17 <ch-cpn
18 v-if="lpbData.cs.length"
19 :ch="lpbData.cs"
20 :onlyShow="onlyShow"
21 />
10 </div> 22 </div>
11 <!-- 逻辑幢 --> 23 <!-- 逻辑幢 -->
12 <ljzs-cpn v-if="lpbData.ljzs.length" :ljzs="lpbData.ljzs" :onlyShow="onlyShow" /> 24 <ljzs-cpn
25 v-if="lpbData.ljzs.length"
26 :ljzs="lpbData.ljzs"
27 :onlyShow="onlyShow"
28 />
13 </div> 29 </div>
14 <!-- 自然幢名称 --> 30 <!-- 自然幢名称 -->
15 <p class="lpb-xmmc" v-if="onlyShow" style="border-bottom: 1px solid #e6e6e6">{{ lpbData.xmmc }}</p> 31 <p
16 <p class="lpb-xmmc" v-else :style="{ 'border-bottom':'1px solid #e6e6e6'}"> 32 class="lpb-xmmc"
33 v-if="onlyShow"
34 style="border-bottom: 1px solid #e6e6e6"
35 >
36 {{ lpbData.xmmc }}
37 </p>
38 <p
39 class="lpb-xmmc"
40 v-else
41 :style="{ 'border-bottom': '1px solid #e6e6e6' }"
42 >
17 <el-checkbox @change="zdySelectAll($event)">{{ 43 <el-checkbox @change="zdySelectAll($event)">{{
18 lpbData.xmmc 44 lpbData.xmmc
19 }}</el-checkbox> 45 }}</el-checkbox>
20 </p> 46 </p>
21 <el-button type="primary" class="save-btn" v-if="!onlyShow && showSave" @click="saveLpb">选择确认</el-button> 47 <el-button
22 <el-button type="primary" class="save-btn" v-if="!onlyShow && !showSave" @click="submitForm" :loading="loading">发起申请</el-button> 48 type="primary"
49 class="save-btn"
50 v-if="!onlyShow && showSave"
51 @click="saveLpb"
52 >选择确认</el-button
53 >
54 <el-button
55 type="primary"
56 class="save-btn"
57 v-if="!onlyShow && !showSave"
58 @click="submitForm"
59 :loading="loading"
60 >发起申请</el-button
61 >
23 <!-- 右键菜单 --> 62 <!-- 右键菜单 -->
24 <ul 63 <ul
25 v-show="lpbChVisible" 64 v-show="lpbChVisible"
26 :style="{ left: lpbChLeft + 'px', top: lpbChTop + 'px' }" 65 :style="{ left: lpbChLeft + 'px', top: lpbChTop + 'px' }"
27 class="contextmenu"> 66 class="contextmenu"
67 >
28 <li @click="menuClick">菜单一</li> 68 <li @click="menuClick">菜单一</li>
29 <li @click="menuClick">菜单二</li> 69 <li @click="menuClick">菜单二</li>
30 </ul> 70 </ul>
31 </div> 71 </div>
32 </template> 72 </template>
33 <script> 73 <script>
34 import { getLpb } from "@/api/lpcx.js"; 74 import { getLpb } from "@/api/lpcx.js";
35 import chCpn from "./ch.vue"; 75 import chCpn from "./ch.vue";
36 import zdyCpn from "./zdys.vue"; 76 import zdyCpn from "./zdys.vue";
37 import ljzsCpn from "./ljzs.vue"; 77 import ljzsCpn from "./ljzs.vue";
38 import { startBusinessFlow, choiceBdcdy, againAddSldy } from "@/api/workFlow.js"; 78 import {
39 import jump from "../../ywbl/ywsq/components/mixin/jump"; 79 startBusinessFlow,
40 import store from '@/store/index.js' 80 choiceBdcdy,
41 import { ywPopupCacel } from "@/utils/popup.js"; 81 againAddSldy,
42 export default { 82 } from "@/api/workFlow.js";
43 mixins: [jump], 83 import jump from "../../ywbl/ywsq/components/mixin/jump";
44 provide () { 84 import store from "@/store/index.js";
45 return { 85 import { ywPopupCacel } from "@/utils/popup.js";
46 openMenu: this.openMenu, 86 export default {
47 selectAll: this.selectAllObj, 87 mixins: [jump],
48 changeChoosedObj: this.changeChoosedObj, 88 provide() {
49 clearChangeChoosedObj: this.clearChangeChoosedObj, 89 return {
50 getBsmList: this.getBsmList 90 openMenu: this.openMenu,
51 }; 91 selectAll: this.selectAllObj,
92 changeChoosedObj: this.changeChoosedObj,
93 clearChangeChoosedObj: this.clearChangeChoosedObj,
94 getBsmList: this.getBsmList,
95 };
96 },
97 name: "",
98 components: { chCpn, zdyCpn, ljzsCpn },
99 props: {
100 zrzbsm: {
101 type: String,
102 default: "",
52 }, 103 },
53 name: "", 104 lpbParent: {
54 components: { chCpn, zdyCpn, ljzsCpn }, 105 type: String,
55 props: { 106 default: "isLpb",
56 zrzbsm: { 107 },
57 type: String, 108 isHb: {
58 default: "", 109 type: Boolean,
59 }, 110 default: true,
60 lpbParent: { 111 },
61 type: String, 112 onlyShow: {
62 default: "isLpb", 113 type: Boolean,
63 }, 114 default: true,
64 isHb: { 115 },
65 type: Boolean, 116 showSave: {
66 default: true, 117 type: Boolean,
67 }, 118 default: false,
68 onlyShow: { 119 },
69 type: Boolean, 120 scyclx: {
70 default: true, 121 type: Number,
71 }, 122 default: 0,
72 showSave: { 123 },
73 type: Boolean, 124 sqywInfo: {
74 default: false, 125 type: Object,
75 }, 126 default: () => {},
76 scyclx: { 127 },
77 type: Number, 128 },
78 default: 0, 129 data() {
79 }, 130 return {
80 sqywInfo: { 131 lpbData: {
81 type: Object, 132 ljzs: [],
82 default: () => { } 133 cs: [],
83 }, 134 zdys: [],
84 name: "",
85 components: { chCpn, zdyCpn, ljzsCpn },
86 props: {
87 zrzbsm: {
88 type: String,
89 default: "",
90 },
91 lpbParent: {
92 type: String,
93 default: "isLpb",
94 },
95 isHb: {
96 type: Boolean,
97 default: true,
98 },
99 onlyShow: {
100 type: Boolean,
101 default: true,
102 },
103 showSave: {
104 type: Boolean,
105 default: false,
106 },
107 scyclx: {
108 type: Number,
109 default: 0,
110 },
111 sqywInfo: {
112 type: Object,
113 default: () => { }
114 },
115 isJump: { type: Boolean, default: false },
116 }, 135 },
117 data () { 136 //户全选标识 由于依赖注入的绑定并不是可响应的,所以传入可监听的对象以获取其属性的响应
118 return { 137 selectAllObj: {
119 lpbData: { 138 selectAll: false,
120 ljzs: [],
121 cs: [],
122 zdys: [],
123 },
124 //户全选标识 由于依赖注入的绑定并不是可响应的,所以传入可监听的对象以获取其属性的响应
125 selectAllObj: {
126 selectAll: false,
127 },
128 //层户右键菜单显隐
129 lpbChVisible: false,
130 //右键菜单定位位置
131 lpbChLeft: 100,
132 lpbChTop: 100,
133 // 改变户选中状态
134 changeChoosedObj: {
135 bsms: [],
136 color: ''
137 },
138 // 选中户bsm合集
139 bsmList: [],
140 loading: false,
141 };
142 }, 139 },
143 mounted () { 140 //层户右键菜单显隐
144 this.scyclx ? this.getLpb(this.zrzbsm, this.scyclx) : this.getLpb(this.zrzbsm); 141 lpbChVisible: false,
145 window.lpbContent = this; 142 //右键菜单定位位置
143 lpbChLeft: 100,
144 lpbChTop: 100,
145 // 改变户选中状态
146 changeChoosedObj: {
147 bsms: [],
148 color: "",
146 }, 149 },
147 /** 150 // 选中户bsm合集
148 * @description: 保存当前楼盘表 151 bsmList: [],
149 * @author: renchao 152 loading: false,
150 */ 153 };
151 saveLpb () { 154 },
152 if (this.bsmList.length == 0) { 155 mounted() {
153 this.$message.error("请至少选择一条数据"); 156 this.scyclx
154 return; 157 ? this.getLpb(this.zrzbsm, this.scyclx)
155 } 158 : this.getLpb(this.zrzbsm);
156 this.loading = true; 159 window.lpbContent = this;
157 againAddSldy({ 160 },
158 bsmSqyw: this.sqywInfo.bsmSqyw, 161 methods: {
159 bsmSlsq: this.sqywInfo.bsmSlsq, 162 /**
160 bdcdysz: this.bsmList, 163 * @description: 获取当前楼盘表选中户信息
161 sjlx: "houses" 164 * @param {Array} bsmList
162 }).then((res) => { 165 * @author: renchao
163 this.loading = false 166 */
167 getBsmList(bsmList, compFlag) {
168 // 根据本次传入的组件标识删除之前对应组件标识存入hbsmList的数据
169 this.bsmList = this.bsmList.filter((i) => i.flag != compFlag);
170 // 合并本次数据
171 this.bsmList = this.bsmList.concat([
172 ...new Map(bsmList.map((item) => [item.bdcdyh, item])).values(),
173 ]);
174 // })
175 },
176 /**
177 * @description: 保存当前楼盘表
178 * @author: renchao
179 */
180 saveLpb() {
181 if (this.bsmList.length == 0) {
182 this.$message.error("请至少选择一条数据");
183 return;
184 }
185 this.loading = true;
186 store.dispatch("user/reMenuRefresh", false);
187 againAddSldy({
188 bsmSqyw: this.sqywInfo.bsmSqyw,
189 bsmSlsq: this.sqywInfo.bsmSlsq,
190 bdcdysz: this.bsmList,
191 sjlx: "houses",
192 })
193 .then((res) => {
194 this.loading = false;
164 if (res.code == 200) { 195 if (res.code == 200) {
165 this.$message({ 196 this.$message({
166 showClose: true, 197 showClose: true,
167 message: '添加成功', 198 message: "添加成功",
168 type: 'success' 199 type: "success",
169 }) 200 });
170 if (!this.isJump) { 201 if (!this.isJump) {
171 this.jump(res.result, this.sqywInfo.djywbm) 202 this.jump(res.result, this.sqywInfo.djywbm);
172 } else {
173 store.dispatch('user/refreshPage', true);
174 } 203 }
204 store.dispatch("user/refreshPage", true);
175 //this.close(); 205 //this.close();
176 this.$popupCacel(); 206 this.$popupCacel();
177 } else { 207 } else {
178 if (res.result && res.result.length > 0) { 208 if (res.result && res.result.length > 0) {
179 this.$popup("申请错误明细", "components/ywdialog", { width: '36%', formData: { result: res.result } }) 209 this.$popup("申请错误明细", "components/ywdialog", {
210 width: "36%",
211 formData: { result: res.result },
212 });
180 } else { 213 } else {
181 if (res.result && res.result.length > 0) { 214 if (res.result && res.result.length > 0) {
182 this.$popup("申请错误明细", "components/ywdialog", { width: '36%', formData: { result: res.result } }) 215 this.$popup("申请错误明细", "components/ywdialog", {
216 width: "36%",
217 formData: { result: res.result },
218 });
183 } else { 219 } else {
184 this.$popup("申请错误明细", "components/ywdialog", { width: '36%', formData: { message: res.message } }) 220 this.$popup("申请错误明细", "components/ywdialog", {
221 width: "36%",
222 formData: { message: res.message },
223 });
185 } 224 }
186 } 225 }
187 } 226 }
188 }).catch(() => {
189 this.loading = false
190 }) 227 })
191 // todo 调用保存接口 传入参数待定 228 .catch(() => {
192 //console.log(this.bsmList,'this.bsmList'); 229 this.loading = false;
193 // 保存成功后关闭弹框 230 });
194 //this.$popupCacel() 231 // todo 调用保存接口 传入参数待定
195 }, 232 //console.log(this.bsmList,'this.bsmList');
196 // 改变户选中状态 233 // 保存成功后关闭弹框
197 /** 234 //this.$popupCacel()
198 * @description: 改变户选中状态 235 },
199 * @param {*} bsms 236 // 改变户选中状态
200 * @param {*} color 237 /**
201 * @author: renchao 238 * @description: 改变户选中状态
202 */ 239 * @param {*} bsms
203 changeChoosed (bsms, color) { 240 * @param {*} color
204 this.changeChoosedObj.bsms = bsms; 241 * @author: renchao
205 this.changeChoosedObj.color = color; 242 */
206 }, 243 changeChoosed(bsms, color) {
207 /** 244 this.changeChoosedObj.bsms = bsms;
208 * @description: clearChangeChoosedObj 245 this.changeChoosedObj.color = color;
209 * @author: renchao 246 },
210 */ 247 /**
211 clearChangeChoosedObj () { 248 * @description: clearChangeChoosedObj
212 this.changeChoosedObj.bsms = []; 249 * @author: renchao
213 }, 250 */
214 //全选户 251 clearChangeChoosedObj() {
215 /** 252 this.changeChoosedObj.bsms = [];
216 * @description: 全选户 253 },
217 * @param {*} val 254 //全选户
218 * @author: renchao 255 /**
219 */ 256 * @description: 全选户
220 zdySelectAll (val) { 257 * @param {*} val
221 this.selectAllObj.selectAll = val; 258 * @author: renchao
222 }, 259 */
223 //获取楼盘表数据 260 zdySelectAll(val) {
224 /** 261 this.selectAllObj.selectAll = val;
225 * @description: 获取楼盘表数据 262 },
226 * @param {*} zrzbsm 263 //获取楼盘表数据
227 * @param {*} scyclx 264 /**
228 * @param {*} actual 265 * @description: 获取楼盘表数据
229 * @author: renchao 266 * @param {*} zrzbsm
230 */ 267 * @param {*} scyclx
231 getLpb (zrzbsm, scyclx, actual) { 268 * @param {*} actual
232 if (!zrzbsm) { 269 * @author: renchao
233 this.$message({ 270 */
234 message: "暂无楼盘表", 271 getLpb(zrzbsm, scyclx, actual) {
235 type: "warning", 272 if (!zrzbsm) {
236 }); 273 this.$message({
237 } else { 274 message: "暂无楼盘表",
238 getLpb(zrzbsm, scyclx).then((res) => { 275 type: "warning",
239 if (res.code == 200) { 276 });
240 if (scyclx) { 277 } else {
241 if (res.result.syclx == "1") { 278 getLpb(zrzbsm, scyclx).then((res) => {
242 res.result.lpb.ljzs = res.result.lpb.ljzs.sort(this.compare("place")); 279 if (res.code == 200) {
243 this.lpbData = res.result.lpb == null ? this.lpbData : res.result.lpb; 280 if (scyclx) {
244 } 281 if (res.result.syclx == "1") {
245 } else { 282 res.result.lpb.ljzs = res.result.lpb.ljzs.sort(
246 this.$message({ 283 this.compare("place")
247 message: res.message, 284 );
248 type: "warning", 285 this.lpbData =
249 }); 286 res.result.lpb == null ? this.lpbData : res.result.lpb;
250 } 287 }
251 } else { 288 } else {
252 this.$message({ 289 this.$message({
...@@ -254,188 +291,201 @@ ...@@ -254,188 +291,201 @@
254 type: "warning", 291 type: "warning",
255 }); 292 });
256 } 293 }
257 }); 294 } else {
258 } 295 this.$message({
259 296 message: res.message,
260 }, 297 type: "warning",
261 //户右键点击事件 298 });
262 /** 299 }
263 * @description: 户右键点击事件 300 });
264 * @param {*} e 301 }
265 * @param {*} item 302 },
266 * @param {*} type 303 //户右键点击事件
267 * @author: renchao 304 /**
268 */ 305 * @description: 户右键点击事件
269 openMenu (e, item, type) { 306 * @param {*} e
270 this.lpbChLeft = e.pageX - 96; 307 * @param {*} item
271 this.lpbChTop = e.pageY - 23; 308 * @param {*} type
272 // this.lpbChVisible = true; 309 * @author: renchao
273 }, 310 */
274 //关闭户右键菜单 311 openMenu(e, item, type) {
275 /** 312 this.lpbChLeft = e.pageX - 96;
276 * @description: 关闭户右键菜单 313 this.lpbChTop = e.pageY - 23;
277 * @author: renchao 314 // this.lpbChVisible = true;
278 */ 315 },
279 closeMenu () { 316 //关闭户右键菜单
280 this.lpbChVisible = false; 317 /**
281 }, 318 * @description: 关闭户右键菜单
282 //右键菜单点击 319 * @author: renchao
283 /** 320 */
284 * @description: 右键菜单点击 321 closeMenu() {
285 * @author: renchao 322 this.lpbChVisible = false;
286 */ 323 },
287 menuClick () { 324 //右键菜单点击
288 this.closeMenu(); 325 /**
289 }, 326 * @description: 右键菜单点击
290 /** 327 * @author: renchao
291 * @description: compare 328 */
292 * @param {*} property 329 menuClick() {
293 * @author: renchao 330 this.closeMenu();
294 */ 331 },
295 compare (property) { 332 /**
296 return function (a, b) { 333 * @description: compare
297 var value1 = a[property]; 334 * @param {*} property
298 var value2 = b[property]; 335 * @author: renchao
299 return value1 - value2; 336 */
300 }; 337 compare(property) {
301 }, 338 return function (a, b) {
302 /** 339 var value1 = a[property];
303 * @description: submitForm 340 var value2 = b[property];
304 * @author: renchao 341 return value1 - value2;
305 */ 342 };
306 submitForm () { 343 },
307 if (this.bsmList.length == 0) { 344 /**
308 this.$message.error("请至少选择一条数据"); 345 * @description: submitForm
309 return; 346 * @author: renchao
310 } 347 */
311 this.loading = true; 348 submitForm() {
312 startBusinessFlow({ 349 if (this.bsmList.length == 0) {
313 bsmSqyw: this.sqywInfo.bsmSqyw, 350 this.$message.error("请至少选择一条数据");
314 bdcdysz: this.bsmList, 351 return;
315 }).then((res) => { 352 }
316 this.loading = false 353 this.loading = true;
354 startBusinessFlow({
355 bsmSqyw: this.sqywInfo.bsmSqyw,
356 bdcdysz: this.bsmList,
357 })
358 .then((res) => {
359 this.loading = false;
317 if (res.code == 200) { 360 if (res.code == 200) {
318 this.$message({ 361 this.$message({
319 showClose: true, 362 showClose: true,
320 message: '发起申请成功', 363 message: "发起申请成功",
321 type: 'success' 364 type: "success",
322 }) 365 });
323 if (!this.isJump) { 366 if (!this.isJump) {
324 this.jump(res.result, this.sqywInfo.djywbm) 367 this.jump(res.result, this.sqywInfo.djywbm);
325 } else { 368 } else {
326 store.dispatch('user/refreshPage', true); 369 store.dispatch("user/refreshPage", true);
327 } 370 }
328 this.close() 371 this.close();
329 } else { 372 } else {
330 if (res.result && res.result.length > 0) { 373 if (res.result && res.result.length > 0) {
331 this.$popup("申请错误明细", "components/ywdialog", { width: '36%', formData: { result: res.result } }) 374 this.$popup("申请错误明细", "components/ywdialog", {
375 width: "36%",
376 formData: { result: res.result },
377 });
332 } else { 378 } else {
333 this.$popup("申请错误明细", "components/ywdialog", { width: '36%', formData: { message: res.message } }) 379 this.$popup("申请错误明细", "components/ywdialog", {
380 width: "36%",
381 formData: { message: res.message },
382 });
334 } 383 }
335 } 384 }
336 }).catch(() => {
337 this.loading = false
338 }) 385 })
339 }, 386 .catch(() => {
340 /** 387 this.loading = false;
341 * @description: close 388 });
342 * @param {*} val
343 * @author: renchao
344 */
345 close () {
346 ywPopupCacel()
347 },
348 }, 389 },
349 computed: { 390 /**
350 lpbContentHeight () { 391 * @description: close
351 return this.onlyShow ? 32 : 76 392 * @param {*} val
352 // return 76 393 * @author: renchao
353 } 394 */
395 close() {
396 ywPopupCacel();
354 }, 397 },
355 watch: { 398 },
356 //户右键菜单显示时,监听到鼠标点击时关闭户右键菜单 399 computed: {
357 lpbChVisible (value) { 400 lpbContentHeight() {
358 if (value) { 401 return this.onlyShow ? 32 : 76;
359 document.body.addEventListener("click", this.closeMenu); 402 // return 76
360 } else { 403 },
361 document.body.removeEventListener("click", this.closeMenu); 404 },
362 } 405 watch: {
406 //户右键菜单显示时,监听到鼠标点击时关闭户右键菜单
407 lpbChVisible(value) {
408 if (value) {
409 document.body.addEventListener("click", this.closeMenu);
410 } else {
411 document.body.removeEventListener("click", this.closeMenu);
363 } 412 }
364 }, 413 },
365 }; 414 },
415 };
366 </script> 416 </script>
367 <style scoped lang="scss"> 417 <style scoped lang="scss">
368 .lpbContent-wrap { 418 .lpbContent-wrap {
419 width: 100%;
420 height: 100%;
421 overflow: hidden;
422 .lpbContent {
369 width: 100%; 423 width: 100%;
370 height: 100%; 424 position: relative;
371 overflow: hidden; 425 overflow: scroll;
372 .lpbContent { 426 -webkit-user-select: none;
373 width: 100%; 427 -moz-user-select: none;
374 position: relative; 428 -ms-user-select: none;
375 overflow: scroll; 429 user-select: none;
376 -webkit-user-select: none; 430 display: flex;
377 -moz-user-select: none; 431 flex-direction: column-reverse;
378 -ms-user-select: none; 432 box-sizing: border-box;
379 user-select: none; 433 padding-top: 20px;
434 .ch-zdy-wrap {
380 display: flex; 435 display: flex;
381 flex-direction: column-reverse; 436 flex-direction: row;
382 box-sizing: border-box;
383 padding-top: 20px;
384 .ch-zdy-wrap {
385 display: flex;
386 flex-direction: row;
387 }
388 } 437 }
389 .lpb-xmmc { 438 }
390 border: 0; 439 .lpb-xmmc {
391 border-top: 1px solid #e6e6e6; 440 border: 0;
392 } 441 border-top: 1px solid #e6e6e6;
393 .save-btn { 442 }
394 display: block; 443 .save-btn {
395 margin: 5px auto; 444 display: block;
396 } 445 margin: 5px auto;
397 // 自定义右键菜单样式 446 }
398 .contextmenu { 447 // 自定义右键菜单样式
448 .contextmenu {
449 margin: 0;
450 background: #fff;
451 width: 92px;
452 z-index: 3000;
453 position: fixed;
454 list-style-type: none;
455 padding: 5px 0;
456 border-radius: 4px;
457 font-size: 12px;
458 font-weight: 400;
459 color: #333;
460 box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
461 li {
399 margin: 0; 462 margin: 0;
400 background: #fff; 463 padding: 7px 16px;
401 width: 92px; 464 cursor: pointer;
402 z-index: 3000; 465 position: relative;
403 position: fixed; 466 .childUl {
404 list-style-type: none; 467 display: none;
405 padding: 5px 0; 468 position: absolute;
406 border-radius: 4px; 469 left: 92px !important;
407 font-size: 12px; 470 top: 0 !important;
408 font-weight: 400; 471 li {
409 color: #333; 472 width: 76px;
410 box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
411 li {
412 margin: 0;
413 padding: 7px 16px;
414 cursor: pointer;
415 position: relative;
416 .childUl {
417 display: none;
418 position: absolute;
419 left: 92px !important;
420 top: 0 !important;
421 li {
422 width: 76px;
423 }
424 }
425 }
426 li:hover {
427 background: #eee;
428 > .childUl {
429 display: block;
430 } 473 }
431 } 474 }
432 .noEdit { 475 }
433 color: #e6e6e6; 476 li:hover {
434 cursor: not-allowed; 477 background: #eee;
435 } 478 > .childUl {
436 .noEdit:hover { 479 display: block;
437 background: #ffffff;
438 } 480 }
439 } 481 }
482 .noEdit {
483 color: #e6e6e6;
484 cursor: not-allowed;
485 }
486 .noEdit:hover {
487 background: #ffffff;
488 }
440 } 489 }
490 }
441 </style> 491 </style>
......