| | |
| | | </div> |
| | | <div class="left" :style="`width: ${leftOpen?'92':'0'}px;`"> |
| | | <div v-for="(a, ai) in menu" :key="ai"> |
| | | <div :class="`box ${activeBox == a.c[0].k ? 'active_box' : ''}`" @click="addTab(a.c[0], -1)" v-if="a.self"> |
| | | <div :class="`box ${activeBox == a.c[0].k ? 'active_box' : ''}`" @click="addTab(a.c[0], -1)" v-if="a.self && getPower(a.c[0].p)"> |
| | | <i :class="a.i"></i> |
| | | <div>{{a.v}}</div> |
| | | </div> |
| | | <el-popover placement="right-start" width="90" trigger="click" v-if="a.self != true"> |
| | | <el-popover placement="right-start" width="90" trigger="click" v-if="a.self != true && getPower(a.p)"> |
| | | <div :class="`box ${activeBox == a.k ? 'active_box' : ''}`" slot="reference"> |
| | | <i :class="a.i"></i> |
| | | <div>{{ a.v }}</div> |
| | | </div> |
| | | <div class="small_menu"> |
| | | <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b, a.k)"> |
| | | <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b, a.k)" v-if="getPower(b.p)"> |
| | | <i :class="b.i"></i> |
| | | <span>{{ b.v }}</span> |
| | | </p> |
| | |
| | | <i class="el-icon-delete" @click="allDel" title="删除所有标签页"></i> |
| | | </div> |
| | | <div class="component_view"> |
| | | <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="index" |
| | | <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="com.k" |
| | | v-show="com.k == tabActive" :ref="`com-${com.k}`"> |
| | | </component> |
| | | </div> |
| | |
| | | menu: [{ |
| | | k: 0, |
| | | v: "首页", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-shouyefill", |
| | | self: true, |
| | | c: [{ |
| | | k: 0, |
| | | v: "首页", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-shouyefill", |
| | | u: "index-index" |
| | | }] |
| | | }, |
| | | { |
| | | k: 2, |
| | | v: "数据上报", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-a-Group1118", |
| | | self: true, |
| | | c: [{ |
| | | k: 2, |
| | | v: "数据上报", |
| | | i: "font icon-a-Group1124", |
| | | u: "data-reporting" |
| | | i: "font icon-a-Group1118", |
| | | u: "data-reporting", |
| | | p: "selectDataReportingList" |
| | | }] |
| | | }, |
| | | { |
| | | k: 3, |
| | | v: "数据统计", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-a-Group1120", |
| | | p: "selectProductCountDtoPageList selectRegistrantCountDtoPageList", |
| | | c: [{ |
| | | k: 9, |
| | | v: "项目数据统计", |
| | | i: "font icon-a-Group1124", |
| | | u: "index-index" |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "product-count", |
| | | p: "selectProductCountDtoPageList" |
| | | },{ |
| | | k: 10, |
| | | v: "员工数据统计", |
| | | i: "font icon-a-Group1124", |
| | | u: "index-index" |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "registrant-count", |
| | | p: "selectRegistrantCountDtoPageList" |
| | | }] |
| | | }, |
| | | { |
| | | k: 5, |
| | | v: "进粉上报", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-a-Group1122", |
| | | self: true, |
| | | c: [{ |
| | | k: 5, |
| | | v: "进粉上报", |
| | | i: "font icon-a-Group1124", |
| | | u: "index-index" |
| | | i: "font icon-a-Group1122", |
| | | u: "fans-submit", |
| | | p: "selectFansSubmitList" |
| | | }] |
| | | }, |
| | | { |
| | | k: 6, |
| | | v: "财务上报", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-a-Group1236", |
| | | self: true, |
| | | c: [{ |
| | | k: 6, |
| | | v: "财务上报", |
| | | i: "font icon-a-Group1124", |
| | | u: "index-index" |
| | | i: "font icon-a-Group1236", |
| | | u: "finance-submit", |
| | | p: "selectFinanceSubmitList" |
| | | }] |
| | | }, |
| | | { |
| | | k: 7, |
| | | v: "角色管理", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-a-Group1126", |
| | | self: true, |
| | | c: [{ |
| | | k: 7, |
| | | v: "角色管理", |
| | | i: "font icon-a-Group1124", |
| | | u: "role-manage" |
| | | i: "font icon-a-Group1126", |
| | | u: "role-manage", |
| | | p: "selectRoleLists" |
| | | }] |
| | | }, |
| | | { |
| | | k: 4, |
| | | v: "数据字典", |
| | | i: "font icon-a-Group1124", |
| | | i: "font icon-odbc-full", |
| | | p: "selectCustomEnumLists selectProductEnumLists", |
| | | c: [{ |
| | | k: 4, |
| | | v: "客户管理", |
| | | i: "font icon-a-Group1124", |
| | | u: "" |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "custom-enum", |
| | | p: "selectCustomEnumLists" |
| | | }, |
| | | { |
| | | k: 5, |
| | | v: "病种管理", |
| | | i: "font icon-a-Group1124", |
| | | u: "" |
| | | k: 11, |
| | | v: "项目管理", |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "product-enum", |
| | | p: "selectProductEnumLists" |
| | | } |
| | | ] |
| | | }, |
| | |
| | | k: 8, |
| | | v: "人员管理", |
| | | i: "font icon-a-Group1124", |
| | | u: "person-manage" |
| | | u: "person-manage", |
| | | p: "selectUserList" |
| | | }] |
| | | } |
| | | ], |
| | |
| | | u: "index-index" |
| | | }], |
| | | upIndex: 0, |
| | | activeIndex: 0 |
| | | activeIndex: 0, |
| | | power: [] |
| | | }; |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | this.userName = JSON.parse(localStorage.getItem("user")).name; |
| | | this.power = JSON.parse(sessionStorage.getItem('power')) |
| | | this.getPower() |
| | | }, |
| | | methods: { |
| | | addTab(ob, self) { |
| | |
| | | setTimeout(()=>{ |
| | | this.tabs.splice(this.activeIndex, 0, thing[0]) |
| | | }, 0) |
| | | }, |
| | | // 权限分配 |
| | | getPower(p){ |
| | | if(p==undefined) return true |
| | | let str = p.split(' ') |
| | | for (var a = 0; a < str.length; a++) { |
| | | for (var i = 0; i < this.power.length; i++) { |
| | | if(this.power[i].menuMethod == str[a]) { |
| | | return true |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |