mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-07 08:57:19 +08:00
feat: 菜单图标 icon
支持使用在线图标
This commit is contained in:
parent
b2081b3481
commit
d11398274a
@ -3,7 +3,7 @@ import iconifyIconOnline from "./src/iconifyIconOnline";
|
|||||||
import iconSelect from "./src/Select.vue";
|
import iconSelect from "./src/Select.vue";
|
||||||
import fontIcon from "./src/iconfont";
|
import fontIcon from "./src/iconfont";
|
||||||
|
|
||||||
/** 离线图标组件 */
|
/** 本地图标组件 */
|
||||||
const IconifyIconOffline = iconifyIconOffline;
|
const IconifyIconOffline = iconifyIconOffline;
|
||||||
/** 在线图标组件 */
|
/** 在线图标组件 */
|
||||||
const IconifyIconOnline = iconifyIconOnline;
|
const IconifyIconOnline = iconifyIconOnline;
|
||||||
|
@ -3,7 +3,8 @@ import { h, defineComponent, Component } from "vue";
|
|||||||
import { IconifyIconOnline, IconifyIconOffline, FontIcon } from "../index";
|
import { IconifyIconOnline, IconifyIconOffline, FontIcon } from "../index";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持fontawesome4、5+、iconfont、remixicon、element-plus的icons、自定义svg
|
* 支持 `iconfont`、自定义 `svg` 以及 `iconify` 中所有的图标
|
||||||
|
* @see 点击查看文档图标篇 {@link https://yiming_chang.gitee.io/pure-admin-doc/pages/icon/}
|
||||||
* @param icon 必传 图标
|
* @param icon 必传 图标
|
||||||
* @param attrs 可选 iconType 属性
|
* @param attrs 可选 iconType 属性
|
||||||
* @returns Component
|
* @returns Component
|
||||||
@ -34,11 +35,12 @@ export function useRenderIcon(icon: any, attrs?: iconType): Component {
|
|||||||
// svg
|
// svg
|
||||||
return icon;
|
return icon;
|
||||||
} else {
|
} else {
|
||||||
|
// 通过是否存在 : 符号来判断是在线还是本地图标,存在即是在线图标,反之
|
||||||
return defineComponent({
|
return defineComponent({
|
||||||
name: "Icon",
|
name: "Icon",
|
||||||
render() {
|
render() {
|
||||||
const IconifyIcon =
|
const IconifyIcon =
|
||||||
attrs && attrs["online"] ? IconifyIconOnline : IconifyIconOffline;
|
icon && icon.includes(":") ? IconifyIconOnline : IconifyIconOffline;
|
||||||
return h(IconifyIcon, {
|
return h(IconifyIcon, {
|
||||||
icon: icon,
|
icon: icon,
|
||||||
...attrs
|
...attrs
|
||||||
|
@ -161,7 +161,7 @@ addIcon("unExpand", UnExpand);
|
|||||||
import LocationCompany from "@iconify-icons/carbon/location-company";
|
import LocationCompany from "@iconify-icons/carbon/location-company";
|
||||||
addIcon("location-company", LocationCompany);
|
addIcon("location-company", LocationCompany);
|
||||||
|
|
||||||
// Iconify Icon在Vue里离线使用(用于内网环境)https://docs.iconify.design/icon-components/vue/offline.html
|
// Iconify Icon在Vue里本地使用(用于内网环境)https://docs.iconify.design/icon-components/vue/offline.html
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "IconifyIconOffline",
|
name: "IconifyIconOffline",
|
||||||
components: { IconifyIcon },
|
components: { IconifyIcon },
|
||||||
|
@ -11,7 +11,6 @@ export interface iconType {
|
|||||||
horizontalAlign?: boolean;
|
horizontalAlign?: boolean;
|
||||||
verticalAlign?: boolean;
|
verticalAlign?: boolean;
|
||||||
align?: string;
|
align?: string;
|
||||||
online?: boolean;
|
|
||||||
onLoad?: Function;
|
onLoad?: Function;
|
||||||
includes?: Function;
|
includes?: Function;
|
||||||
|
|
||||||
|
@ -62,9 +62,7 @@ function onBack() {
|
|||||||
clearable
|
clearable
|
||||||
v-model="ruleForm.verifyCode"
|
v-model="ruleForm.verifyCode"
|
||||||
:placeholder="t('login.smsVerifyCode')"
|
:placeholder="t('login.smsVerifyCode')"
|
||||||
:prefix-icon="
|
:prefix-icon="useRenderIcon('ri:shield-keyhole-line')"
|
||||||
useRenderIcon('ri:shield-keyhole-line', { online: true })
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
:disabled="isDisabled"
|
:disabled="isDisabled"
|
||||||
|
@ -110,9 +110,7 @@ function onBack() {
|
|||||||
clearable
|
clearable
|
||||||
v-model="ruleForm.verifyCode"
|
v-model="ruleForm.verifyCode"
|
||||||
:placeholder="t('login.smsVerifyCode')"
|
:placeholder="t('login.smsVerifyCode')"
|
||||||
:prefix-icon="
|
:prefix-icon="useRenderIcon('ri:shield-keyhole-line')"
|
||||||
useRenderIcon('ri:shield-keyhole-line', { online: true })
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
:disabled="isDisabled"
|
:disabled="isDisabled"
|
||||||
|
@ -83,9 +83,7 @@ function onBack() {
|
|||||||
clearable
|
clearable
|
||||||
v-model="ruleForm.verifyCode"
|
v-model="ruleForm.verifyCode"
|
||||||
:placeholder="t('login.smsVerifyCode')"
|
:placeholder="t('login.smsVerifyCode')"
|
||||||
:prefix-icon="
|
:prefix-icon="useRenderIcon('ri:shield-keyhole-line')"
|
||||||
useRenderIcon('ri:shield-keyhole-line', { online: true })
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
:disabled="isDisabled"
|
:disabled="isDisabled"
|
||||||
|
@ -207,9 +207,7 @@ watch(imgCode, value => {
|
|||||||
clearable
|
clearable
|
||||||
v-model="ruleForm.verifyCode"
|
v-model="ruleForm.verifyCode"
|
||||||
:placeholder="t('login.verifyCode')"
|
:placeholder="t('login.verifyCode')"
|
||||||
:prefix-icon="
|
:prefix-icon="useRenderIcon('ri:shield-keyhole-line')"
|
||||||
useRenderIcon('ri:shield-keyhole-line', { online: true })
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<ReImageVerify v-model:code="imgCode" />
|
<ReImageVerify v-model:code="imgCode" />
|
||||||
|
@ -240,21 +240,21 @@ function onHide() {
|
|||||||
<el-button-group>
|
<el-button-group>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
:icon="useRenderIcon('fa:plus-square-o', { online: true })"
|
:icon="useRenderIcon('fa:plus-square-o')"
|
||||||
@click="onAdd"
|
@click="onAdd"
|
||||||
>
|
>
|
||||||
{{ t("buttons.hsadd") }}
|
{{ t("buttons.hsadd") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
:icon="useRenderIcon('fa:folder-open-o', { online: true })"
|
:icon="useRenderIcon('fa:folder-open-o')"
|
||||||
@click="onExpand"
|
@click="onExpand"
|
||||||
>
|
>
|
||||||
{{ t("buttons.hsexpendAll") }}
|
{{ t("buttons.hsexpendAll") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
:icon="useRenderIcon('fa:folder-o', { online: true })"
|
:icon="useRenderIcon('fa:folder-o')"
|
||||||
@click="onUnExpand"
|
@click="onUnExpand"
|
||||||
>
|
>
|
||||||
{{ t("buttons.hscollapseAll") }}
|
{{ t("buttons.hscollapseAll") }}
|
||||||
@ -301,7 +301,7 @@ function onHide() {
|
|||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
:icon="useRenderIcon('fa:plus-square-o', { online: true })"
|
:icon="useRenderIcon('fa:plus-square-o')"
|
||||||
@click="onAddChild(row)"
|
@click="onAddChild(row)"
|
||||||
>
|
>
|
||||||
新增子类型
|
新增子类型
|
||||||
@ -310,7 +310,7 @@ function onHide() {
|
|||||||
v-show="row.model"
|
v-show="row.model"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
:icon="useRenderIcon('fa:cog', { online: true })"
|
:icon="useRenderIcon('fa:cog')"
|
||||||
@click="onDeploy(row)"
|
@click="onDeploy(row)"
|
||||||
>
|
>
|
||||||
字典配置
|
字典配置
|
||||||
|
Loading…
x
Reference in New Issue
Block a user