当前位置: 首页 > news >正文

网站的登陆注册页面怎么做百度推广如何计费

网站的登陆注册页面怎么做,百度推广如何计费,桂林微信网站设计,河南seo公司效果图 鼠标悬浮有对应的文字提示&#xff0c;且图标出现背景色和颜色 实现 目前提供五个固定样式的图标及三个用户自定义的图标&#xff0c;可根据需要补充 组件代码 <script setup lang"ts"> import { onMounted, PropType, reactive, ref, watch } from v…

效果图

鼠标悬浮有对应的文字提示,且图标出现背景色和颜色

 

实现

目前提供五个固定样式的图标及三个用户自定义的图标,可根据需要补充

组件代码

<script setup lang="ts">
import { onMounted, PropType, reactive, ref, watch } from 'vue'
import Tooltip from '@/components/Tooltip/src/Tooltip.vue'
import { useI18n } from 'vue-i18n'const { t } = useI18n()enum BtnType {edit = 'edit',detail = 'detail',delete = 'delete',permission = 'permission',password = 'password',custom1 = 'custom1',custom2 = 'custom2',custom3 = 'custom3'
}interface BtnAction {type: BtnTypeicon?: string | undefinedcolor?: string | undefinedshow?: boolean | truetooltip?: string | undefineddisabled?: booleanhref?: string | undefined
}const props = defineProps({actions: {default: () => [],type: Array as PropType<BtnAction[]>}
})
const _actions = ref(props.actions)
// 监听数据变化
watch(() => props.actions,(newVal) => {_actions.value = newVal},{ deep: true, immediate: true }
)const getNormalIcon = (action: BtnAction, i: number) => {switch (action.type) {case BtnType.edit:_actions.value[i].tooltip = t('common.edit')return 'svg-icon:v2-List-write_line'case BtnType.detail:_actions.value[i].tooltip = t('queueCalls.details')return 'svg-icon:v2-List-Contact_line'case BtnType.delete:if (!_actions.value[i].tooltip) {_actions.value[i].tooltip = t('common.delete')}return 'svg-icon:v2-List-delete_line'case BtnType.permission:if (!_actions.value[i].tooltip) {_actions.value[i].tooltip = t('manage.user.viewPermissions')}return 'svg-icon:v2-List-Authority_line'case BtnType.password:if (!_actions.value[i].tooltip) {_actions.value[i].tooltip = t('login.reset.ok')}return 'svg-icon:v2-List-ResetPassword_line'default:return action.icon}
}const getActiveIcon = (action: BtnAction) => {switch (action.type) {case BtnType.edit:return 'svg-icon:v2-List-write_face'case BtnType.detail:return 'svg-icon:v2-List-Contact_face'case BtnType.delete:return 'svg-icon:v2-List-delete_face'case BtnType.permission:return 'svg-icon:v2-List-Authority_face'case BtnType.password:return 'svg-icon:v2-List-ResetPassword_face'default:return action.icon}
}// 根据类型获取点击事件
const getClick = (type: BtnType) => {switch (type) {case BtnType.edit:return 'click:edit'case BtnType.detail:return 'click:detail'case BtnType.delete:return 'click:delete'case BtnType.permission:return 'click:permission'case BtnType.password:return 'click:password'case BtnType.custom1:return 'click:custom1'case BtnType.custom2:return 'click:custom2'case BtnType.custom3:return 'click:custom3'default:return ''}
}const isCustom = (type: BtnType) => {return type.indexOf('custom') !== -1
}// const disableTooltip = (action: BtnAction) => {
//   return action.tooltip === undefined || action.tooltip === ''
// }onMounted(() => {// 如果show为false,移除该按钮// _actions.value = props.actions.filter((action) => action.show)// console.log('====================', _actions)
})const emit = defineEmits(['click:edit','click:detail','click:delete','click:permission','click:password','click:custom1','click:custom2','click:custom3'
])
</script><template><div class="actions flex items-center tooltip-append"><div v-for="(action, i) in _actions as BtnAction[]" :key="action.type"><Tooltip :title="action.tooltip" :disabled="!action.tooltip"><v-btn:disabled="action.disabled === undefined ? false : action.disabled"v-if="action.show === undefined ? true : action.show":href="action.href"target="_blank"v-bind="props"rounded="xl"class="default-btn mr-16px":class="{'delete-btn': action.type === 'delete','custom-btn': isCustom(action.type)}"@click="emit(getClick(action.type))"size="32"variant="text"color="#c6c8cd"icon><Icon size="21" class="active-icon" :icon="getActiveIcon(action)" /><Icon size="21" class="normal-icon" :icon="getNormalIcon(action, i)" /></v-btn></Tooltip></div></div>
</template><style scoped lang="scss">
.actions {.default-btn:hover {color: var(--el-color-primary) !important;cursor: pointer !important;}.delete-btn:hover {color: #db4b4b !important;}.custom-btn:hover {color: var(--el-color-primary) !important;}
}
.tooltip-append {.active-icon {display: none;}.normal-icon {display: block;}
}
.tooltip-append:hover {.active-icon {display: block;}.normal-icon {display: none;}
}
</style>

使用方法

图标数据传一个BtnAction数据格式的数组,使用默认提供的图标,只要一个type字段就可以

click事件根据对应图标类型写@click:[type]

const actions = [{ type: 'edit' },{type: 'custom1',tooltip: t('common.copy'),icon: 'ph:copy'},{type: 'custom2',tooltip: t('common.export'),icon: 'svg-icon:v2-arrow_download'},{ type: 'delete' }
] as any[]<ActionBtn:actions="actions"@click:edit="editFlowTest(row)"@click:custom1="copyFlow(row)"@click:custom2="exportFlow(row)"@click:delete="deleteFlow(row)"
/>

http://www.yayakq.cn/news/846949/

相关文章:

  • 义乌网站建设zisou8做网站一个程序员够吗
  • 悦然外贸建站手机英语网站
  • 网站建设代理移动端网站建设的好处
  • 校园网站建设费用大型行业门户网站开发建设
  • 绵阳网站建设制作自动添加内部链接的wordpress插件
  • 用什么软件可以做网站做企业专业网站一般要多少钱
  • 做软件挣钱的网站seo1短视频网页入口营销
  • 企业网站托管后果模仿淘宝网站
  • 硅云买域名做网站徐州在线制作网站
  • 社交和门户网站的区别网站建设 数据归属
  • 网站开发语言作用网站优化关键词
  • php商务网站开发棋牌游戏网站建设费用
  • 浙江制做网站的公司深圳石岩做网站的公司
  • 贵阳网站建设设计tk域名官方网站
  • 服务网站欣赏全国定制网站服务器云主机
  • 怎么选择昆明网站建设东莞化工网站建设
  • 查询网站备案密码是什么玖久建筑网
  • 长春做网站团队济宁做网站的企业
  • 个人网站设计论文下载华为官网手机商城app
  • 杜集网站建设开发一个网站的步骤流程
  • 大学生兼职网站建设策划书新媒体营销和网络营销的区别
  • 模板建站难吗seo工程师是什么职业
  • 七色板网站建设h5游戏网站建设
  • 四川禾力建设工程质量检测有限公司网站wordpress标签页
  • 佛山市网站建设企业wordpress 颜色选择器
  • 开一个网站需要什么手机免费网站
  • wordpress无法开启多站点淘宝客做网站教程
  • 上海 网站建收银系统哪个软件好
  • 域名购买哪个网站最好微信运营推广方案
  • 南京 网站建设大型网站制作哪家好