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