schoolArea.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <div class="schoolArea">
  3. <!-- <div class="allView">
  4. <div class="allView_icon"></div>
  5. <div>集团特色</div>
  6. </div> -->
  7. <div v-if="fromL.admin.school">
  8. <div
  9. class="priSchBox"
  10. v-for="(i, index) in fromL.admin.school.list"
  11. :key="index + 'a'"
  12. >
  13. <div class="primarySch" @click="cutS(item.schoolid)">
  14. <img src="../assets/Slog.svg" style="margin-right: 8px" alt="" />
  15. <div>{{ i.menuName }}</div>
  16. </div>
  17. <div class="priSchArea">
  18. <div
  19. class="schArea"
  20. @click="cutS(item)"
  21. v-for="(item, index) in i.children"
  22. :key="index"
  23. :class="{ active: activeSchool == item.schoolid }"
  24. >
  25. {{ item.name }}
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. </div>
  31. </template>
  32. <script>
  33. import { mapGetters } from "vuex";
  34. export default {
  35. props: ["schId","schOrg"],
  36. data() {
  37. return {
  38. activeSchool: "",
  39. schorg:''
  40. };
  41. },
  42. computed: {
  43. ...mapGetters(["fromL",'userinfo']),
  44. },
  45. watch: {
  46. schId(newValue) {
  47. this.activeSchool = newValue;
  48. },
  49. },
  50. methods: {
  51. cutS(val) {
  52. console.log('cuts',val);
  53. if (
  54. this.userinfo.role == 1 &&
  55. this.userinfo.rrole == 1 &&
  56. this.userinfo.type == 1
  57. ) {
  58. this.activeSchool = val.schoolid;
  59. this.schorg = val.orgid
  60. this.$emit("cutSch",{ oid:val.schoolid, org :val.orgid});
  61. }
  62. },
  63. },
  64. mounted() {
  65. this.activeSchool = this.schId;
  66. this.schorg = this.schOrg;
  67. },
  68. };
  69. </script>
  70. <style scoped>
  71. .schoolArea {
  72. /* max-width: 192px;
  73. min-width: 192px; */
  74. min-height: 600px;
  75. width: 267px;
  76. min-width: 100px;
  77. display: flex;
  78. flex-direction: column;
  79. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  80. border-radius: 10px;
  81. padding: 19px 13px;
  82. box-sizing: border-box;
  83. gap: 8px;
  84. background: #fff;
  85. }
  86. .allView {
  87. display: flex;
  88. width: 230px;
  89. height: 54px;
  90. font-size: 18px;
  91. align-items: center;
  92. padding: 16px;
  93. box-sizing: border-box;
  94. }
  95. .primarySch {
  96. display: flex;
  97. padding: 16px;
  98. padding-bottom: 4px;
  99. }
  100. .priSchArea {
  101. margin: 8px 0;
  102. display: flex;
  103. flex-direction: column;
  104. gap: 8px;
  105. }
  106. .schArea {
  107. width: 100%;
  108. height: 36px;
  109. display: flex;
  110. align-items: center;
  111. border-radius: 6px;
  112. padding: 7px 16px;
  113. padding-left: 36px;
  114. box-sizing: border-box;
  115. font-size: 14px;
  116. cursor: pointer;
  117. }
  118. .allView_icon {
  119. background: url("../assets/img/zl.svg") no-repeat;
  120. width: 18px;
  121. height: 18px;
  122. display: inline-block;
  123. background-size: contain;
  124. margin-right: 8px;
  125. }
  126. .active {
  127. background: #e7e7e7;
  128. color: #453cca;
  129. }
  130. </style>