|
@@ -1,29 +1,192 @@
|
|
|
<template>
|
|
|
<!-- 图库框架 列表页 -->
|
|
|
<div class="chart-frame-wrap">
|
|
|
- <div class="catalog-wrap">
|
|
|
-
|
|
|
+ <div class="catalog-wrap page-block-wrap">
|
|
|
+ <div class="btn-wrap">
|
|
|
+ <el-button>添加框架</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="search-wrap">
|
|
|
+ <el-input style="width: 100%;" placeholder="请输入框架名称"></el-input>
|
|
|
+ </div>
|
|
|
+ <div class="catalog-list">
|
|
|
+ <div class="public-catalog">
|
|
|
+ <p>公共框架</p>
|
|
|
+ <div class="catalog-tree">
|
|
|
+ <el-tree
|
|
|
+ ref="catalogTree"
|
|
|
+ class="catalog-tree other-tree"
|
|
|
+ empty-text="暂无分类"
|
|
|
+ :data="mockPublic"
|
|
|
+ node-key="nodeKeyId"
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ @current-change="(data,node)=>{nodeChange(data,node)}"
|
|
|
+ >
|
|
|
+ <span class="custom-tree-node" slot-scope="{ data,node }"
|
|
|
+ >
|
|
|
+ <span class="tree-label">{{ data.name }}</span>
|
|
|
+ </span>
|
|
|
+ </el-tree>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="my-list">
|
|
|
+ <p>我的框架</p>
|
|
|
+ <draggable
|
|
|
+ v-model="mockFrameList"
|
|
|
+ class="classify-ul"
|
|
|
+ animation="300"
|
|
|
+ tag="ul"
|
|
|
+ @start="menuDragStart"
|
|
|
+ @update="menuDragenter"
|
|
|
+ @end="menuDragOver"
|
|
|
+ >
|
|
|
+ <li class="classify-item" :class="{'active':currentFrame.frameId===item.frameId}"
|
|
|
+ v-for="item in mockFrameList" :key="item.frameId"
|
|
|
+ @click="chooseFrame(item)"
|
|
|
+ >
|
|
|
+ <span>
|
|
|
+ <img src="~@/assets/img/data_m/move_ico.png"
|
|
|
+ alt="" class="move"
|
|
|
+ style="width: 14px; height: 14px;"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ <span class="item-label text_oneLine">{{ item.name }}</span>
|
|
|
+ <el-dropdown style="margin-right: 10px" @command="handleCommand" trigger="click">
|
|
|
+ <span class="el-dropdown-link el-dropdown-link-img">
|
|
|
+ <img class="icon" src="~@/assets/img/chart_m/Group.png" v-if="item.IsPublic === 0">
|
|
|
+ <img class="icon" src="~@/assets/img/chart_m/User.png" v-else>
|
|
|
+ </span>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item
|
|
|
+ :command="{key:'own',IsCompanyPublic:undefined,item}"
|
|
|
+ :class="item.IsPublic === 0 ? 'el-dropdown-menu-item-chat-act' : ''"
|
|
|
+ class="el-dropdown-menu-item-chat"
|
|
|
+ >
|
|
|
+ <img v-if="item.IsPublic === 0" src="~@/assets/img/chart_m/Group_act.png">
|
|
|
+ <img v-else src="~@/assets/img/chart_m/Group.png">
|
|
|
+ 仅自己可见
|
|
|
+ </el-dropdown-item>
|
|
|
+ <el-dropdown-item
|
|
|
+ :command="{key:'public',IsCompanyPublic:undefined,item}"
|
|
|
+ :class="item.IsPublic === 1 ? 'el-dropdown-menu-item-chat-act' : ''"
|
|
|
+ class="el-dropdown-menu-item-chat"
|
|
|
+ >
|
|
|
+ <img v-if="item.IsPublic === 1" src="~@/assets/img/chart_m/User_act.png">
|
|
|
+ <img v-else src="~@/assets/img/chart_m/User.png">
|
|
|
+ 所有人可见
|
|
|
+ </el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand" trigger="click">
|
|
|
+ <span class="el-dropdown-link">
|
|
|
+ <i class="el-icon-more" style="font-size: 16px;transform: rotate(90deg);cursor: pointer"/>
|
|
|
+ </span>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item v-if="permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_rename')"
|
|
|
+ :command="{key:'edit'}">重命名</el-dropdown-item>
|
|
|
+ <el-dropdown-item v-if="permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_delete')"
|
|
|
+ :command="{key:'del'}">删除</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+
|
|
|
+ </li>
|
|
|
+ </draggable>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="detail-wrap">
|
|
|
- <div class="list"></div>
|
|
|
- <div class="detail"></div>
|
|
|
+ <div class="detail-wrap page-block-wrap">
|
|
|
+ <div class="empty" v-if="!currentFrame&&!publicCurrentFrame&¤tList.length===0">
|
|
|
+ <tableNoData text="暂无数据"/>
|
|
|
+ </div>
|
|
|
+ <template v-else>
|
|
|
+ <div class="list" v-if="model==='list'">
|
|
|
+ <div class="list-item"
|
|
|
+ v-for="item in currentList" :key="item.nodeKeyId"
|
|
|
+ @click="changeModel('frame',item)"
|
|
|
+ >
|
|
|
+ <div class="item-title text_oneLine">
|
|
|
+ <span>{{item.name}}</span>
|
|
|
+ </div>
|
|
|
+ <div style="height:1px;background:#ECECEC;margin:0 -10px;"></div>
|
|
|
+ <div class="item-image"
|
|
|
+ :style="`background-image:url(${item.CoverImg?item.CoverImg:require('@/assets/img/document_m/default-img.png')})`"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="detail" v-else>
|
|
|
+ 详情详情
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import draggable from 'vuedraggable';
|
|
|
export default {
|
|
|
+ components:{draggable},
|
|
|
data() {
|
|
|
return {
|
|
|
-
|
|
|
+ mockPublic:[
|
|
|
+ {
|
|
|
+ catalogId:1,
|
|
|
+ name:'XXX的框架',
|
|
|
+ nodeKeyId:1,
|
|
|
+ children:[{
|
|
|
+ frameId:1,
|
|
|
+ name:'黄金稳住了吗?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
|
+ nodeKeyId:'1-1'
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ currentList:[],
|
|
|
+ publicCurrentFrame:null,
|
|
|
+ mockFrameList:[
|
|
|
+ {
|
|
|
+ frameId:2,
|
|
|
+ name:'框架1',
|
|
|
+ IsPublic:0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ frameId:3,
|
|
|
+ name:'框架2',
|
|
|
+ IsPublic:1
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ currentFrame:{},
|
|
|
+
|
|
|
+ model:'frame',
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
+ nodeChange(data,node){
|
|
|
+ this.changeModel(node.level===2?'frame':'list',data)
|
|
|
+ },
|
|
|
+ changeModel(type,data){
|
|
|
+ this.model = type
|
|
|
+ if(type==='frame'){
|
|
|
+ this.currentFrame = {}
|
|
|
+ this.publicCurrentFrame = data
|
|
|
+ }else{
|
|
|
+ this.currentList = data.children||[]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ menuDragStart(){},
|
|
|
+ menuDragenter(){},
|
|
|
+ menuDragOver(){},
|
|
|
+ handleCommand(){
|
|
|
|
|
|
+ },
|
|
|
+ chooseFrame(item){
|
|
|
+ this.model = 'frame'
|
|
|
+ this.publicCurrentFrame = null
|
|
|
+ this.currentFrame = item
|
|
|
+ }
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
+<style lang="scss">
|
|
|
+@import "./css/customTree.scss";
|
|
|
+</style>
|
|
|
<style scoped lang="scss">
|
|
|
-
|
|
|
+@import "./css/basePage.scss";
|
|
|
</style>
|