10 changed files with 598 additions and 178 deletions
@ -0,0 +1,122 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-09-08 08:39:33 |
|||
@ 备注: 画表单头部 |
|||
--> |
|||
<script lang='ts' setup> |
|||
import { computed } from 'vue' |
|||
const props = withDefaults( |
|||
defineProps<{ |
|||
showKey?: string[] // showKey,hideKey设置其中一个即可,showKey优先 |
|||
hideKey?: string[] // 设置了showKey时,hideKey无效 |
|||
}>(), |
|||
{ |
|||
showKey: () => { |
|||
return [] |
|||
}, |
|||
hideKey: () => { |
|||
return [] |
|||
} |
|||
} |
|||
); |
|||
const emits = defineEmits<{(e: 'click', value: string): void}>(); |
|||
const btnClick = (type: string) => { |
|||
emits('click', type) |
|||
} |
|||
const btnList = computed(() => { |
|||
const list = [ |
|||
{ icon: 'del', label: '清空', key: 1 }, |
|||
{ icon: 'eye', label: '预览', key: 2 }, |
|||
{ icon: 'json', label: '生成脚本预览', key: 3 }, |
|||
// { icon: 'vue', label: '导出vue文件', key: 4 }, |
|||
{ icon: 'save', label: '保存', key: 5 }, |
|||
{ icon: 'save', label: '另存为', key: 5 }, |
|||
{ icon: 'close', label: '关闭', key: 6 } |
|||
] |
|||
if (props.showKey?.length) { |
|||
// 按照指定的key显示 |
|||
return list.filter((item: any) => { |
|||
return props.showKey.includes(item.key) |
|||
}) |
|||
} else if (props.hideKey?.length) { |
|||
// 按照指定的key隐藏 |
|||
return list.filter((item: any) => { |
|||
return !props.hideKey.includes(item.key) |
|||
}) |
|||
} else { |
|||
return list // 否则显示全部 |
|||
} |
|||
}) |
|||
//当前版本 |
|||
const activeName = ref<string>("1") |
|||
//切换版本 |
|||
const handleTabsClick = () =>{ |
|||
|
|||
} |
|||
</script> |
|||
<template> |
|||
<div class="main-head-tools"> |
|||
<div class="main-head-version"> |
|||
<el-link icon="Share" :underline="false">版本</el-link> |
|||
<el-tabs |
|||
v-model="activeName" |
|||
type="card" |
|||
class="tabs_version" |
|||
@tab-click="handleTabsClick" |
|||
> |
|||
<el-tab-pane label="V1" name="1"></el-tab-pane> |
|||
<el-tab-pane label="V2" name="2"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="3"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="4"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="5"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="6"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="7"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="8"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="9"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="10"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="11"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="12"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="13"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="14"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="15"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="16"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="17"></el-tab-pane> |
|||
<el-tab-pane label="V3" name="18"></el-tab-pane> |
|||
</el-tabs> |
|||
</div> |
|||
<div> |
|||
<el-button |
|||
link |
|||
@click="btnClick(item.icon)" |
|||
v-for="item in btnList" |
|||
:key="item.icon" |
|||
:type="item.key==6?'danger':item.key==5?'success':'primary'" |
|||
> |
|||
<i :class="['icon-' + item.icon]"></i>{{ item.label }} |
|||
</el-button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<style lang='scss' scoped> |
|||
.main-head-tools{ |
|||
line-height: 26px; |
|||
border-bottom: 2px solid #e4e7ed; |
|||
margin-right: 10px; |
|||
padding: 8px 0; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content:space-between; |
|||
} |
|||
.main-head-version{ |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content:space-between; |
|||
overflow: hidden; |
|||
|
|||
} |
|||
.tabs_version{ |
|||
max-width: 340px; |
|||
margin-top: -5px; |
|||
height: 30px; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue