同步升级至 vue-element-plus-admin 2.3.0 版本
This commit is contained in:
parent
61e9a336d3
commit
54f8671899
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vue-element-plus-admin",
|
||||
"version": "2.2.0",
|
||||
"version": "2.3.0",
|
||||
"description": "一套基于vue3、element-plus、typesScript、vite4的后台集成方案。",
|
||||
"author": "Archer <502431556@qq.com>",
|
||||
"private": false,
|
||||
@ -18,7 +18,8 @@
|
||||
"lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src",
|
||||
"lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,vue,html,md}\"",
|
||||
"lint:style": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
|
||||
"p": "plop"
|
||||
"p": "plop",
|
||||
"icon": "esno ./scripts/icon.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@amap/amap-jsapi-loader": "^1.0.1",
|
||||
@ -43,7 +44,6 @@
|
||||
"pinia-plugin-persist": "^1.0.0",
|
||||
"qrcode": "^1.5.3",
|
||||
"qs": "^6.11.2",
|
||||
"sortablejs": "^1.15.0",
|
||||
"url": "^0.11.1",
|
||||
"vue": "3.3.4",
|
||||
"vue-i18n": "9.2.2",
|
||||
@ -56,6 +56,8 @@
|
||||
"@intlify/unplugin-vue-i18n": "^0.12.2",
|
||||
"@kjgl77/datav-vue3": "^1.6.1",
|
||||
"@purge-icons/generated": "^0.9.0",
|
||||
"@types/fs-extra": "^11.0.2",
|
||||
"@types/inquirer": "^9.0.3",
|
||||
"@types/lodash-es": "^4.17.8",
|
||||
"@types/node": "^20.4.10",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
@ -69,6 +71,7 @@
|
||||
"@vitejs/plugin-vue": "^4.2.3",
|
||||
"@vitejs/plugin-vue-jsx": "^3.0.1",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"chalk": "^5.3.0",
|
||||
"consola": "^3.2.3",
|
||||
"cron-validate": "^1.4.5",
|
||||
"eslint": "^8.47.0",
|
||||
@ -76,7 +79,10 @@
|
||||
"eslint-define-config": "^1.23.0",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"esno": "^0.17.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"intro.js": "^7.2.0",
|
||||
"inquirer": "^9.2.11",
|
||||
"less": "^4.2.0",
|
||||
"lint-staged": "^13.2.3",
|
||||
"lodash": "^4.17.21",
|
||||
|
71
kinit-admin/scripts/icon.ts
Normal file
71
kinit-admin/scripts/icon.ts
Normal file
@ -0,0 +1,71 @@
|
||||
import path from 'path'
|
||||
import fs from 'fs-extra'
|
||||
import inquirer from 'inquirer'
|
||||
import chalk from 'chalk'
|
||||
import pkg from '../package.json'
|
||||
|
||||
interface Icon {
|
||||
name: string
|
||||
prefix: string
|
||||
icons: string[]
|
||||
}
|
||||
|
||||
async function generateIcon() {
|
||||
const dir = path.resolve(process.cwd(), 'node_modules/@iconify/json')
|
||||
|
||||
const raw = await fs.readJSON(path.join(dir, 'collections.json'))
|
||||
|
||||
const collections = Object.entries(raw).map(([id, v]) => ({
|
||||
...(v as any),
|
||||
id
|
||||
}))
|
||||
|
||||
const choices = collections.map((item) => ({ key: item.id, value: item.id, name: item.name }))
|
||||
|
||||
inquirer
|
||||
.prompt([
|
||||
// {
|
||||
// type: 'list',
|
||||
// name: 'useType',
|
||||
// choices: [
|
||||
// { key: 'local', value: 'local', name: 'Local' },
|
||||
// { key: 'onLine', value: 'onLine', name: 'OnLine' }
|
||||
// ],
|
||||
// message: 'How to use icons?'
|
||||
// },
|
||||
{
|
||||
type: 'list',
|
||||
name: 'iconSet',
|
||||
choices: choices,
|
||||
message: 'Select the icon set that needs to be generated?'
|
||||
}
|
||||
])
|
||||
// ↓命令行问答的答案
|
||||
.then(async (answers) => {
|
||||
const { iconSet } = answers
|
||||
// const isOnLine = useType === 'onLine'
|
||||
const outputDir = path.resolve(process.cwd(), 'src/components/IconPicker/src/data')
|
||||
fs.ensureDir(outputDir)
|
||||
const genCollections = collections.filter((item) => [iconSet].includes(item.id))
|
||||
const prefixSet: string[] = []
|
||||
for (const info of genCollections) {
|
||||
const data = await fs.readJSON(path.join(dir, 'json', `${info.id}.json`))
|
||||
if (data) {
|
||||
const { prefix } = data
|
||||
const icons = Object.keys(data.icons).map((item) => `${prefix}:${item}`)
|
||||
|
||||
await fs.writeFileSync(
|
||||
path.join('src/components/IconPicker/src/data', `icons.${prefix}.ts`),
|
||||
`export default ${JSON.stringify({ name: info.name, prefix, icons })}`
|
||||
)
|
||||
// ↓分类处理完成,push类型名称
|
||||
prefixSet.push(prefix)
|
||||
}
|
||||
}
|
||||
console.log(
|
||||
`✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - Icon generated successfully:' + `[${prefixSet}]`
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
generateIcon()
|
3
kinit-admin/src/components/IconPicker/index.ts
Normal file
3
kinit-admin/src/components/IconPicker/index.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import IconPicker from './src/IconPicker.vue'
|
||||
|
||||
export { IconPicker }
|
193
kinit-admin/src/components/IconPicker/src/IconPicker.vue
Normal file
193
kinit-admin/src/components/IconPicker/src/IconPicker.vue
Normal file
@ -0,0 +1,193 @@
|
||||
<script setup lang="ts">
|
||||
import epIcons from './data/icons.ep'
|
||||
import antIcons from './data/icons.ant-design'
|
||||
import tIcons from './data/icons.tdesign'
|
||||
import { useDesign } from '@/hooks/web/useDesign'
|
||||
import { ElInput, ElPopover, ElScrollbar, ElTabs, ElTabPane, ElPagination } from 'element-plus'
|
||||
import { useAppStore } from '@/store/modules/app'
|
||||
import { computed, CSSProperties, ref, unref, watch } from 'vue'
|
||||
import { nextTick } from 'vue'
|
||||
import { propTypes } from '@/utils/propTypes'
|
||||
|
||||
defineProps({
|
||||
// 是否显示密码强度
|
||||
inputDisabled: propTypes.bool.def(false)
|
||||
})
|
||||
|
||||
const init = async (icon?: string) => {
|
||||
if (!icon) return
|
||||
const iconInfo = icon.split(':')
|
||||
iconName.value = iconInfo[0]
|
||||
const wrapIndex = icons.findIndex((item) => item.prefix === iconInfo[0])
|
||||
// 查询当前icon的索引
|
||||
const index = filterItemIcons(icons[wrapIndex].icons).findIndex((item) => item === icon)
|
||||
// 计算当前icon的页码
|
||||
await nextTick()
|
||||
currentPage.value = Math.ceil((index + 1) / unref(pageSize))
|
||||
}
|
||||
|
||||
const modelValue = defineModel<string>()
|
||||
|
||||
const appStore = useAppStore()
|
||||
|
||||
const size = computed(() => appStore.getCurrentSize)
|
||||
|
||||
const iconSize = computed(() => {
|
||||
return unref(size) === 'small'
|
||||
? 'var(--el-component-size-small)'
|
||||
: unref(size) === 'large'
|
||||
? 'var(--el-component-size-large)'
|
||||
: 'var(--el-component-size)'
|
||||
})
|
||||
|
||||
const iconWrapStyle = computed((): CSSProperties => {
|
||||
return {
|
||||
width: unref(iconSize),
|
||||
height: unref(iconSize),
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
boxShadow: '0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset',
|
||||
position: 'relative',
|
||||
left: '-1px',
|
||||
cursor: 'pointer'
|
||||
}
|
||||
})
|
||||
|
||||
const { getPrefixCls } = useDesign()
|
||||
|
||||
const prefixCls = getPrefixCls('icon-picker')
|
||||
|
||||
const icons = [epIcons, antIcons, tIcons]
|
||||
|
||||
const iconName = ref(icons[0].prefix)
|
||||
|
||||
const currentIconNameIndex = computed(() => {
|
||||
return icons.findIndex((item) => item.prefix === unref(iconName))
|
||||
})
|
||||
|
||||
const tabChange = () => {
|
||||
currentPage.value = 1
|
||||
}
|
||||
|
||||
const pageSize = ref(49)
|
||||
|
||||
const currentPage = ref(1)
|
||||
|
||||
const filterIcons = (icons: string[]) => {
|
||||
const start = (unref(currentPage) - 1) * unref(pageSize)
|
||||
const end = unref(currentPage) * unref(pageSize)
|
||||
return icons.slice(start, end)
|
||||
}
|
||||
|
||||
watch(
|
||||
() => modelValue.value,
|
||||
async (val) => {
|
||||
await nextTick()
|
||||
val && init(val)
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
)
|
||||
|
||||
const popoverShow = () => {
|
||||
init(unref(modelValue))
|
||||
}
|
||||
|
||||
const iconSelect = (icon: string) => {
|
||||
modelValue.value = icon
|
||||
}
|
||||
|
||||
const search = ref('')
|
||||
|
||||
const filterItemIcons = (icons: string[]) => {
|
||||
return icons.filter((item) => item.includes(unref(search)))
|
||||
}
|
||||
|
||||
const inputClear = () => {
|
||||
init(unref(modelValue))
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div :class="prefixCls" class="flex justify-center items-center box">
|
||||
<ElInput :disabled="inputDisabled" v-model="modelValue" />
|
||||
<ElPopover
|
||||
placement="bottom"
|
||||
trigger="click"
|
||||
:width="450"
|
||||
popper-style="box-shadow: rgb(14 18 22 / 35%) 0px 10px 38px -10px, rgb(14 18 22 / 20%) 0px 10px 20px -15px; height: 380px;"
|
||||
@show="popoverShow"
|
||||
>
|
||||
<template #reference>
|
||||
<div :style="iconWrapStyle">
|
||||
<Icon v-if="modelValue" :icon="modelValue" />
|
||||
<Icon v-else icon="ep:setting" />
|
||||
</div>
|
||||
</template>
|
||||
<ElScrollbar class="h-[calc(100%-50px)]!">
|
||||
<ElInput
|
||||
v-model="search"
|
||||
class="mb-20px"
|
||||
clearable
|
||||
placeholder="搜索图标"
|
||||
@clear="inputClear"
|
||||
/>
|
||||
<ElTabs tab-position="left" v-model="iconName" @tab-change="tabChange">
|
||||
<ElTabPane v-for="item in icons" :key="item.name" :label="item.name" :name="item.prefix">
|
||||
<div class="flex flex-wrap box-border">
|
||||
<div
|
||||
v-for="icon in filterIcons(filterItemIcons(item.icons))"
|
||||
:key="icon"
|
||||
:style="{
|
||||
width: iconSize,
|
||||
height: iconSize,
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
cursor: 'pointer',
|
||||
border: `1px solid ${
|
||||
icon === modelValue ? 'var(--el-color-primary)' : 'var(--el-border-color)'
|
||||
}`,
|
||||
boxSizing: 'border-box',
|
||||
margin: '2px'
|
||||
}"
|
||||
@click="iconSelect(icon)"
|
||||
>
|
||||
<Icon
|
||||
:icon="icon"
|
||||
:color="icon === modelValue ? 'var(--el-color-primary)' : 'inherit'"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</ElTabPane>
|
||||
</ElTabs>
|
||||
</ElScrollbar>
|
||||
<div
|
||||
class="h-50px absolute bottom-0 left-0 flex items-center pl-[var(--el-popover-padding)] pr-[var(--el-popover-padding)]"
|
||||
>
|
||||
<ElPagination
|
||||
v-model:current-page="currentPage"
|
||||
v-model:page-size="pageSize"
|
||||
:pager-count="5"
|
||||
small
|
||||
:page-sizes="[100, 200, 300, 400]"
|
||||
layout="total, prev, pager, next, jumper"
|
||||
:total="filterItemIcons(icons[currentIconNameIndex].icons).length"
|
||||
/>
|
||||
</div>
|
||||
</ElPopover>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@prefix-cls: ~'@{namespace}-icon-picker';
|
||||
|
||||
.@{prefix-cls} {
|
||||
:deep(.@{elNamespace}-input__wrapper) {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,795 @@
|
||||
export default {
|
||||
name: 'Ant Design Icons',
|
||||
prefix: 'ant-design',
|
||||
icons: [
|
||||
'ant-design:account-book-filled',
|
||||
'ant-design:account-book-outlined',
|
||||
'ant-design:account-book-twotone',
|
||||
'ant-design:aim-outlined',
|
||||
'ant-design:alert-filled',
|
||||
'ant-design:alert-outlined',
|
||||
'ant-design:alert-twotone',
|
||||
'ant-design:alibaba-outlined',
|
||||
'ant-design:align-center-outlined',
|
||||
'ant-design:align-left-outlined',
|
||||
'ant-design:align-right-outlined',
|
||||
'ant-design:alipay-circle-filled',
|
||||
'ant-design:alipay-circle-outlined',
|
||||
'ant-design:alipay-outlined',
|
||||
'ant-design:alipay-square-filled',
|
||||
'ant-design:aliwangwang-filled',
|
||||
'ant-design:aliwangwang-outlined',
|
||||
'ant-design:aliyun-outlined',
|
||||
'ant-design:amazon-circle-filled',
|
||||
'ant-design:amazon-outlined',
|
||||
'ant-design:amazon-square-filled',
|
||||
'ant-design:android-filled',
|
||||
'ant-design:android-outlined',
|
||||
'ant-design:ant-cloud-outlined',
|
||||
'ant-design:ant-design-outlined',
|
||||
'ant-design:apartment-outlined',
|
||||
'ant-design:api-filled',
|
||||
'ant-design:api-outlined',
|
||||
'ant-design:api-twotone',
|
||||
'ant-design:apple-filled',
|
||||
'ant-design:apple-outlined',
|
||||
'ant-design:appstore-add-outlined',
|
||||
'ant-design:appstore-filled',
|
||||
'ant-design:appstore-outlined',
|
||||
'ant-design:appstore-twotone',
|
||||
'ant-design:area-chart-outlined',
|
||||
'ant-design:arrow-down-outlined',
|
||||
'ant-design:arrow-left-outlined',
|
||||
'ant-design:arrow-right-outlined',
|
||||
'ant-design:arrow-up-outlined',
|
||||
'ant-design:arrows-alt-outlined',
|
||||
'ant-design:audio-filled',
|
||||
'ant-design:audio-muted-outlined',
|
||||
'ant-design:audio-outlined',
|
||||
'ant-design:audio-twotone',
|
||||
'ant-design:audit-outlined',
|
||||
'ant-design:backward-filled',
|
||||
'ant-design:backward-outlined',
|
||||
'ant-design:bank-filled',
|
||||
'ant-design:bank-outlined',
|
||||
'ant-design:bank-twotone',
|
||||
'ant-design:bar-chart-outlined',
|
||||
'ant-design:barcode-outlined',
|
||||
'ant-design:bars-outlined',
|
||||
'ant-design:behance-circle-filled',
|
||||
'ant-design:behance-outlined',
|
||||
'ant-design:behance-square-filled',
|
||||
'ant-design:behance-square-outlined',
|
||||
'ant-design:bell-filled',
|
||||
'ant-design:bell-outlined',
|
||||
'ant-design:bell-twotone',
|
||||
'ant-design:bg-colors-outlined',
|
||||
'ant-design:block-outlined',
|
||||
'ant-design:bold-outlined',
|
||||
'ant-design:book-filled',
|
||||
'ant-design:book-outlined',
|
||||
'ant-design:book-twotone',
|
||||
'ant-design:border-bottom-outlined',
|
||||
'ant-design:border-horizontal-outlined',
|
||||
'ant-design:border-inner-outlined',
|
||||
'ant-design:border-left-outlined',
|
||||
'ant-design:border-outer-outlined',
|
||||
'ant-design:border-outlined',
|
||||
'ant-design:border-right-outlined',
|
||||
'ant-design:border-top-outlined',
|
||||
'ant-design:border-verticle-outlined',
|
||||
'ant-design:borderless-table-outlined',
|
||||
'ant-design:box-plot-filled',
|
||||
'ant-design:box-plot-outlined',
|
||||
'ant-design:box-plot-twotone',
|
||||
'ant-design:branches-outlined',
|
||||
'ant-design:bug-filled',
|
||||
'ant-design:bug-outlined',
|
||||
'ant-design:bug-twotone',
|
||||
'ant-design:build-filled',
|
||||
'ant-design:build-outlined',
|
||||
'ant-design:build-twotone',
|
||||
'ant-design:bulb-filled',
|
||||
'ant-design:bulb-outlined',
|
||||
'ant-design:bulb-twotone',
|
||||
'ant-design:calculator-filled',
|
||||
'ant-design:calculator-outlined',
|
||||
'ant-design:calculator-twotone',
|
||||
'ant-design:calendar-filled',
|
||||
'ant-design:calendar-outlined',
|
||||
'ant-design:calendar-twotone',
|
||||
'ant-design:camera-filled',
|
||||
'ant-design:camera-outlined',
|
||||
'ant-design:camera-twotone',
|
||||
'ant-design:car-filled',
|
||||
'ant-design:car-outlined',
|
||||
'ant-design:car-twotone',
|
||||
'ant-design:caret-down-filled',
|
||||
'ant-design:caret-down-outlined',
|
||||
'ant-design:caret-left-filled',
|
||||
'ant-design:caret-left-outlined',
|
||||
'ant-design:caret-right-filled',
|
||||
'ant-design:caret-right-outlined',
|
||||
'ant-design:caret-up-filled',
|
||||
'ant-design:caret-up-outlined',
|
||||
'ant-design:carry-out-filled',
|
||||
'ant-design:carry-out-outlined',
|
||||
'ant-design:carry-out-twotone',
|
||||
'ant-design:check-circle-filled',
|
||||
'ant-design:check-circle-outlined',
|
||||
'ant-design:check-circle-twotone',
|
||||
'ant-design:check-outlined',
|
||||
'ant-design:check-square-filled',
|
||||
'ant-design:check-square-outlined',
|
||||
'ant-design:check-square-twotone',
|
||||
'ant-design:chrome-filled',
|
||||
'ant-design:chrome-outlined',
|
||||
'ant-design:ci-circle-filled',
|
||||
'ant-design:ci-circle-outlined',
|
||||
'ant-design:ci-circle-twotone',
|
||||
'ant-design:ci-outlined',
|
||||
'ant-design:ci-twotone',
|
||||
'ant-design:clear-outlined',
|
||||
'ant-design:clock-circle-filled',
|
||||
'ant-design:clock-circle-outlined',
|
||||
'ant-design:clock-circle-twotone',
|
||||
'ant-design:close-circle-filled',
|
||||
'ant-design:close-circle-outlined',
|
||||
'ant-design:close-circle-twotone',
|
||||
'ant-design:close-outlined',
|
||||
'ant-design:close-square-filled',
|
||||
'ant-design:close-square-outlined',
|
||||
'ant-design:close-square-twotone',
|
||||
'ant-design:cloud-download-outlined',
|
||||
'ant-design:cloud-filled',
|
||||
'ant-design:cloud-outlined',
|
||||
'ant-design:cloud-server-outlined',
|
||||
'ant-design:cloud-sync-outlined',
|
||||
'ant-design:cloud-twotone',
|
||||
'ant-design:cloud-upload-outlined',
|
||||
'ant-design:cluster-outlined',
|
||||
'ant-design:code-filled',
|
||||
'ant-design:code-outlined',
|
||||
'ant-design:code-sandbox-circle-filled',
|
||||
'ant-design:code-sandbox-outlined',
|
||||
'ant-design:code-sandbox-square-filled',
|
||||
'ant-design:code-twotone',
|
||||
'ant-design:codepen-circle-filled',
|
||||
'ant-design:codepen-circle-outlined',
|
||||
'ant-design:codepen-outlined',
|
||||
'ant-design:codepen-square-filled',
|
||||
'ant-design:coffee-outlined',
|
||||
'ant-design:column-height-outlined',
|
||||
'ant-design:column-width-outlined',
|
||||
'ant-design:comment-outlined',
|
||||
'ant-design:compass-filled',
|
||||
'ant-design:compass-outlined',
|
||||
'ant-design:compass-twotone',
|
||||
'ant-design:compress-outlined',
|
||||
'ant-design:console-sql-outlined',
|
||||
'ant-design:contacts-filled',
|
||||
'ant-design:contacts-outlined',
|
||||
'ant-design:contacts-twotone',
|
||||
'ant-design:container-filled',
|
||||
'ant-design:container-outlined',
|
||||
'ant-design:container-twotone',
|
||||
'ant-design:control-filled',
|
||||
'ant-design:control-outlined',
|
||||
'ant-design:control-twotone',
|
||||
'ant-design:copy-filled',
|
||||
'ant-design:copy-outlined',
|
||||
'ant-design:copy-twotone',
|
||||
'ant-design:copyright-circle-filled',
|
||||
'ant-design:copyright-circle-outlined',
|
||||
'ant-design:copyright-circle-twotone',
|
||||
'ant-design:copyright-outlined',
|
||||
'ant-design:copyright-twotone',
|
||||
'ant-design:credit-card-filled',
|
||||
'ant-design:credit-card-outlined',
|
||||
'ant-design:credit-card-twotone',
|
||||
'ant-design:crown-filled',
|
||||
'ant-design:crown-outlined',
|
||||
'ant-design:crown-twotone',
|
||||
'ant-design:customer-service-filled',
|
||||
'ant-design:customer-service-outlined',
|
||||
'ant-design:customer-service-twotone',
|
||||
'ant-design:dash-outlined',
|
||||
'ant-design:dashboard-filled',
|
||||
'ant-design:dashboard-outlined',
|
||||
'ant-design:dashboard-twotone',
|
||||
'ant-design:database-filled',
|
||||
'ant-design:database-outlined',
|
||||
'ant-design:database-twotone',
|
||||
'ant-design:delete-column-outlined',
|
||||
'ant-design:delete-filled',
|
||||
'ant-design:delete-outlined',
|
||||
'ant-design:delete-row-outlined',
|
||||
'ant-design:delete-twotone',
|
||||
'ant-design:delivered-procedure-outlined',
|
||||
'ant-design:deployment-unit-outlined',
|
||||
'ant-design:desktop-outlined',
|
||||
'ant-design:diff-filled',
|
||||
'ant-design:diff-outlined',
|
||||
'ant-design:diff-twotone',
|
||||
'ant-design:dingding-outlined',
|
||||
'ant-design:dingtalk-circle-filled',
|
||||
'ant-design:dingtalk-outlined',
|
||||
'ant-design:dingtalk-square-filled',
|
||||
'ant-design:disconnect-outlined',
|
||||
'ant-design:dislike-filled',
|
||||
'ant-design:dislike-outlined',
|
||||
'ant-design:dislike-twotone',
|
||||
'ant-design:dollar-circle-filled',
|
||||
'ant-design:dollar-circle-outlined',
|
||||
'ant-design:dollar-circle-twotone',
|
||||
'ant-design:dollar-outlined',
|
||||
'ant-design:dollar-twotone',
|
||||
'ant-design:dot-chart-outlined',
|
||||
'ant-design:double-left-outlined',
|
||||
'ant-design:double-right-outlined',
|
||||
'ant-design:down-circle-filled',
|
||||
'ant-design:down-circle-outlined',
|
||||
'ant-design:down-circle-twotone',
|
||||
'ant-design:down-outlined',
|
||||
'ant-design:down-square-filled',
|
||||
'ant-design:down-square-outlined',
|
||||
'ant-design:down-square-twotone',
|
||||
'ant-design:download-outlined',
|
||||
'ant-design:drag-outlined',
|
||||
'ant-design:dribbble-circle-filled',
|
||||
'ant-design:dribbble-outlined',
|
||||
'ant-design:dribbble-square-filled',
|
||||
'ant-design:dribbble-square-outlined',
|
||||
'ant-design:dropbox-circle-filled',
|
||||
'ant-design:dropbox-outlined',
|
||||
'ant-design:dropbox-square-filled',
|
||||
'ant-design:edit-filled',
|
||||
'ant-design:edit-outlined',
|
||||
'ant-design:edit-twotone',
|
||||
'ant-design:ellipsis-outlined',
|
||||
'ant-design:enter-outlined',
|
||||
'ant-design:environment-filled',
|
||||
'ant-design:environment-outlined',
|
||||
'ant-design:environment-twotone',
|
||||
'ant-design:euro-circle-filled',
|
||||
'ant-design:euro-circle-outlined',
|
||||
'ant-design:euro-circle-twotone',
|
||||
'ant-design:euro-outlined',
|
||||
'ant-design:euro-twotone',
|
||||
'ant-design:exception-outlined',
|
||||
'ant-design:exclamation-circle-filled',
|
||||
'ant-design:exclamation-circle-outlined',
|
||||
'ant-design:exclamation-circle-twotone',
|
||||
'ant-design:exclamation-outlined',
|
||||
'ant-design:expand-alt-outlined',
|
||||
'ant-design:expand-outlined',
|
||||
'ant-design:experiment-filled',
|
||||
'ant-design:experiment-outlined',
|
||||
'ant-design:experiment-twotone',
|
||||
'ant-design:export-outlined',
|
||||
'ant-design:eye-filled',
|
||||
'ant-design:eye-invisible-filled',
|
||||
'ant-design:eye-invisible-outlined',
|
||||
'ant-design:eye-invisible-twotone',
|
||||
'ant-design:eye-outlined',
|
||||
'ant-design:eye-twotone',
|
||||
'ant-design:facebook-filled',
|
||||
'ant-design:facebook-outlined',
|
||||
'ant-design:fall-outlined',
|
||||
'ant-design:fast-backward-filled',
|
||||
'ant-design:fast-backward-outlined',
|
||||
'ant-design:fast-forward-filled',
|
||||
'ant-design:fast-forward-outlined',
|
||||
'ant-design:field-binary-outlined',
|
||||
'ant-design:field-number-outlined',
|
||||
'ant-design:field-string-outlined',
|
||||
'ant-design:field-time-outlined',
|
||||
'ant-design:file-add-filled',
|
||||
'ant-design:file-add-outlined',
|
||||
'ant-design:file-add-twotone',
|
||||
'ant-design:file-done-outlined',
|
||||
'ant-design:file-excel-filled',
|
||||
'ant-design:file-excel-outlined',
|
||||
'ant-design:file-excel-twotone',
|
||||
'ant-design:file-exclamation-filled',
|
||||
'ant-design:file-exclamation-outlined',
|
||||
'ant-design:file-exclamation-twotone',
|
||||
'ant-design:file-filled',
|
||||
'ant-design:file-gif-outlined',
|
||||
'ant-design:file-image-filled',
|
||||
'ant-design:file-image-outlined',
|
||||
'ant-design:file-image-twotone',
|
||||
'ant-design:file-jpg-outlined',
|
||||
'ant-design:file-markdown-filled',
|
||||
'ant-design:file-markdown-outlined',
|
||||
'ant-design:file-markdown-twotone',
|
||||
'ant-design:file-outlined',
|
||||
'ant-design:file-pdf-filled',
|
||||
'ant-design:file-pdf-outlined',
|
||||
'ant-design:file-pdf-twotone',
|
||||
'ant-design:file-ppt-filled',
|
||||
'ant-design:file-ppt-outlined',
|
||||
'ant-design:file-ppt-twotone',
|
||||
'ant-design:file-protect-outlined',
|
||||
'ant-design:file-search-outlined',
|
||||
'ant-design:file-sync-outlined',
|
||||
'ant-design:file-text-filled',
|
||||
'ant-design:file-text-outlined',
|
||||
'ant-design:file-text-twotone',
|
||||
'ant-design:file-twotone',
|
||||
'ant-design:file-unknown-filled',
|
||||
'ant-design:file-unknown-outlined',
|
||||
'ant-design:file-unknown-twotone',
|
||||
'ant-design:file-word-filled',
|
||||
'ant-design:file-word-outlined',
|
||||
'ant-design:file-word-twotone',
|
||||
'ant-design:file-zip-filled',
|
||||
'ant-design:file-zip-outlined',
|
||||
'ant-design:file-zip-twotone',
|
||||
'ant-design:filter-filled',
|
||||
'ant-design:filter-outlined',
|
||||
'ant-design:filter-twotone',
|
||||
'ant-design:fire-filled',
|
||||
'ant-design:fire-outlined',
|
||||
'ant-design:fire-twotone',
|
||||
'ant-design:flag-filled',
|
||||
'ant-design:flag-outlined',
|
||||
'ant-design:flag-twotone',
|
||||
'ant-design:folder-add-filled',
|
||||
'ant-design:folder-add-outlined',
|
||||
'ant-design:folder-add-twotone',
|
||||
'ant-design:folder-filled',
|
||||
'ant-design:folder-open-filled',
|
||||
'ant-design:folder-open-outlined',
|
||||
'ant-design:folder-open-twotone',
|
||||
'ant-design:folder-outlined',
|
||||
'ant-design:folder-twotone',
|
||||
'ant-design:folder-view-outlined',
|
||||
'ant-design:font-colors-outlined',
|
||||
'ant-design:font-size-outlined',
|
||||
'ant-design:fork-outlined',
|
||||
'ant-design:form-outlined',
|
||||
'ant-design:format-painter-filled',
|
||||
'ant-design:format-painter-outlined',
|
||||
'ant-design:forward-filled',
|
||||
'ant-design:forward-outlined',
|
||||
'ant-design:frown-filled',
|
||||
'ant-design:frown-outlined',
|
||||
'ant-design:frown-twotone',
|
||||
'ant-design:fullscreen-exit-outlined',
|
||||
'ant-design:fullscreen-outlined',
|
||||
'ant-design:function-outlined',
|
||||
'ant-design:fund-filled',
|
||||
'ant-design:fund-outlined',
|
||||
'ant-design:fund-projection-screen-outlined',
|
||||
'ant-design:fund-twotone',
|
||||
'ant-design:fund-view-outlined',
|
||||
'ant-design:funnel-plot-filled',
|
||||
'ant-design:funnel-plot-outlined',
|
||||
'ant-design:funnel-plot-twotone',
|
||||
'ant-design:gateway-outlined',
|
||||
'ant-design:gif-outlined',
|
||||
'ant-design:gift-filled',
|
||||
'ant-design:gift-outlined',
|
||||
'ant-design:gift-twotone',
|
||||
'ant-design:github-filled',
|
||||
'ant-design:github-outlined',
|
||||
'ant-design:gitlab-filled',
|
||||
'ant-design:gitlab-outlined',
|
||||
'ant-design:global-outlined',
|
||||
'ant-design:gold-filled',
|
||||
'ant-design:gold-outlined',
|
||||
'ant-design:gold-twotone',
|
||||
'ant-design:golden-filled',
|
||||
'ant-design:google-circle-filled',
|
||||
'ant-design:google-outlined',
|
||||
'ant-design:google-plus-circle-filled',
|
||||
'ant-design:google-plus-outlined',
|
||||
'ant-design:google-plus-square-filled',
|
||||
'ant-design:google-square-filled',
|
||||
'ant-design:group-outlined',
|
||||
'ant-design:hdd-filled',
|
||||
'ant-design:hdd-outlined',
|
||||
'ant-design:hdd-twotone',
|
||||
'ant-design:heart-filled',
|
||||
'ant-design:heart-outlined',
|
||||
'ant-design:heart-twotone',
|
||||
'ant-design:heat-map-outlined',
|
||||
'ant-design:highlight-filled',
|
||||
'ant-design:highlight-outlined',
|
||||
'ant-design:highlight-twotone',
|
||||
'ant-design:history-outlined',
|
||||
'ant-design:holder-outlined',
|
||||
'ant-design:home-filled',
|
||||
'ant-design:home-outlined',
|
||||
'ant-design:home-twotone',
|
||||
'ant-design:hourglass-filled',
|
||||
'ant-design:hourglass-outlined',
|
||||
'ant-design:hourglass-twotone',
|
||||
'ant-design:html5-filled',
|
||||
'ant-design:html5-outlined',
|
||||
'ant-design:html5-twotone',
|
||||
'ant-design:idcard-filled',
|
||||
'ant-design:idcard-outlined',
|
||||
'ant-design:idcard-twotone',
|
||||
'ant-design:ie-circle-filled',
|
||||
'ant-design:ie-outlined',
|
||||
'ant-design:ie-square-filled',
|
||||
'ant-design:import-outlined',
|
||||
'ant-design:inbox-outlined',
|
||||
'ant-design:info-circle-filled',
|
||||
'ant-design:info-circle-outlined',
|
||||
'ant-design:info-circle-twotone',
|
||||
'ant-design:info-outlined',
|
||||
'ant-design:insert-row-above-outlined',
|
||||
'ant-design:insert-row-below-outlined',
|
||||
'ant-design:insert-row-left-outlined',
|
||||
'ant-design:insert-row-right-outlined',
|
||||
'ant-design:instagram-filled',
|
||||
'ant-design:instagram-outlined',
|
||||
'ant-design:insurance-filled',
|
||||
'ant-design:insurance-outlined',
|
||||
'ant-design:insurance-twotone',
|
||||
'ant-design:interaction-filled',
|
||||
'ant-design:interaction-outlined',
|
||||
'ant-design:interaction-twotone',
|
||||
'ant-design:issues-close-outlined',
|
||||
'ant-design:italic-outlined',
|
||||
'ant-design:key-outlined',
|
||||
'ant-design:laptop-outlined',
|
||||
'ant-design:layout-filled',
|
||||
'ant-design:layout-outlined',
|
||||
'ant-design:layout-twotone',
|
||||
'ant-design:left-circle-filled',
|
||||
'ant-design:left-circle-outlined',
|
||||
'ant-design:left-circle-twotone',
|
||||
'ant-design:left-outlined',
|
||||
'ant-design:left-square-filled',
|
||||
'ant-design:left-square-outlined',
|
||||
'ant-design:left-square-twotone',
|
||||
'ant-design:like-filled',
|
||||
'ant-design:like-outlined',
|
||||
'ant-design:like-twotone',
|
||||
'ant-design:line-chart-outlined',
|
||||
'ant-design:line-height-outlined',
|
||||
'ant-design:line-outlined',
|
||||
'ant-design:link-outlined',
|
||||
'ant-design:linkedin-filled',
|
||||
'ant-design:linkedin-outlined',
|
||||
'ant-design:loading-3-quarters-outlined',
|
||||
'ant-design:loading-outlined',
|
||||
'ant-design:lock-filled',
|
||||
'ant-design:lock-outlined',
|
||||
'ant-design:lock-twotone',
|
||||
'ant-design:login-outlined',
|
||||
'ant-design:logout-outlined',
|
||||
'ant-design:mac-command-filled',
|
||||
'ant-design:mac-command-outlined',
|
||||
'ant-design:mail-filled',
|
||||
'ant-design:mail-outlined',
|
||||
'ant-design:mail-twotone',
|
||||
'ant-design:man-outlined',
|
||||
'ant-design:medicine-box-filled',
|
||||
'ant-design:medicine-box-outlined',
|
||||
'ant-design:medicine-box-twotone',
|
||||
'ant-design:medium-circle-filled',
|
||||
'ant-design:medium-outlined',
|
||||
'ant-design:medium-square-filled',
|
||||
'ant-design:medium-workmark-outlined',
|
||||
'ant-design:meh-filled',
|
||||
'ant-design:meh-outlined',
|
||||
'ant-design:meh-twotone',
|
||||
'ant-design:menu-fold-outlined',
|
||||
'ant-design:menu-outlined',
|
||||
'ant-design:menu-unfold-outlined',
|
||||
'ant-design:merge-cells-outlined',
|
||||
'ant-design:message-filled',
|
||||
'ant-design:message-outlined',
|
||||
'ant-design:message-twotone',
|
||||
'ant-design:minus-circle-filled',
|
||||
'ant-design:minus-circle-outlined',
|
||||
'ant-design:minus-circle-twotone',
|
||||
'ant-design:minus-outlined',
|
||||
'ant-design:minus-square-filled',
|
||||
'ant-design:minus-square-outlined',
|
||||
'ant-design:minus-square-twotone',
|
||||
'ant-design:mobile-filled',
|
||||
'ant-design:mobile-outlined',
|
||||
'ant-design:mobile-twotone',
|
||||
'ant-design:money-collect-filled',
|
||||
'ant-design:money-collect-outlined',
|
||||
'ant-design:money-collect-twotone',
|
||||
'ant-design:monitor-outlined',
|
||||
'ant-design:more-outlined',
|
||||
'ant-design:node-collapse-outlined',
|
||||
'ant-design:node-expand-outlined',
|
||||
'ant-design:node-index-outlined',
|
||||
'ant-design:notification-filled',
|
||||
'ant-design:notification-outlined',
|
||||
'ant-design:notification-twotone',
|
||||
'ant-design:number-outlined',
|
||||
'ant-design:one-to-one-outlined',
|
||||
'ant-design:ordered-list-outlined',
|
||||
'ant-design:paper-clip-outlined',
|
||||
'ant-design:partition-outlined',
|
||||
'ant-design:pause-circle-filled',
|
||||
'ant-design:pause-circle-outlined',
|
||||
'ant-design:pause-circle-twotone',
|
||||
'ant-design:pause-outlined',
|
||||
'ant-design:pay-circle-filled',
|
||||
'ant-design:pay-circle-outlined',
|
||||
'ant-design:percentage-outlined',
|
||||
'ant-design:phone-filled',
|
||||
'ant-design:phone-outlined',
|
||||
'ant-design:phone-twotone',
|
||||
'ant-design:pic-center-outlined',
|
||||
'ant-design:pic-left-outlined',
|
||||
'ant-design:pic-right-outlined',
|
||||
'ant-design:picture-filled',
|
||||
'ant-design:picture-outlined',
|
||||
'ant-design:picture-twotone',
|
||||
'ant-design:pie-chart-filled',
|
||||
'ant-design:pie-chart-outlined',
|
||||
'ant-design:pie-chart-twotone',
|
||||
'ant-design:play-circle-filled',
|
||||
'ant-design:play-circle-outlined',
|
||||
'ant-design:play-circle-twotone',
|
||||
'ant-design:play-square-filled',
|
||||
'ant-design:play-square-outlined',
|
||||
'ant-design:play-square-twotone',
|
||||
'ant-design:plus-circle-filled',
|
||||
'ant-design:plus-circle-outlined',
|
||||
'ant-design:plus-circle-twotone',
|
||||
'ant-design:plus-outlined',
|
||||
'ant-design:plus-square-filled',
|
||||
'ant-design:plus-square-outlined',
|
||||
'ant-design:plus-square-twotone',
|
||||
'ant-design:pound-circle-filled',
|
||||
'ant-design:pound-circle-outlined',
|
||||
'ant-design:pound-circle-twotone',
|
||||
'ant-design:pound-outlined',
|
||||
'ant-design:poweroff-outlined',
|
||||
'ant-design:printer-filled',
|
||||
'ant-design:printer-outlined',
|
||||
'ant-design:printer-twotone',
|
||||
'ant-design:profile-filled',
|
||||
'ant-design:profile-outlined',
|
||||
'ant-design:profile-twotone',
|
||||
'ant-design:project-filled',
|
||||
'ant-design:project-outlined',
|
||||
'ant-design:project-twotone',
|
||||
'ant-design:property-safety-filled',
|
||||
'ant-design:property-safety-outlined',
|
||||
'ant-design:property-safety-twotone',
|
||||
'ant-design:pull-request-outlined',
|
||||
'ant-design:pushpin-filled',
|
||||
'ant-design:pushpin-outlined',
|
||||
'ant-design:pushpin-twotone',
|
||||
'ant-design:qq-circle-filled',
|
||||
'ant-design:qq-outlined',
|
||||
'ant-design:qq-square-filled',
|
||||
'ant-design:qrcode-outlined',
|
||||
'ant-design:question-circle-filled',
|
||||
'ant-design:question-circle-outlined',
|
||||
'ant-design:question-circle-twotone',
|
||||
'ant-design:question-outlined',
|
||||
'ant-design:radar-chart-outlined',
|
||||
'ant-design:radius-bottomleft-outlined',
|
||||
'ant-design:radius-bottomright-outlined',
|
||||
'ant-design:radius-setting-outlined',
|
||||
'ant-design:radius-upleft-outlined',
|
||||
'ant-design:radius-upright-outlined',
|
||||
'ant-design:read-filled',
|
||||
'ant-design:read-outlined',
|
||||
'ant-design:reconciliation-filled',
|
||||
'ant-design:reconciliation-outlined',
|
||||
'ant-design:reconciliation-twotone',
|
||||
'ant-design:red-envelope-filled',
|
||||
'ant-design:red-envelope-outlined',
|
||||
'ant-design:red-envelope-twotone',
|
||||
'ant-design:reddit-circle-filled',
|
||||
'ant-design:reddit-outlined',
|
||||
'ant-design:reddit-square-filled',
|
||||
'ant-design:redo-outlined',
|
||||
'ant-design:reload-outlined',
|
||||
'ant-design:rest-filled',
|
||||
'ant-design:rest-outlined',
|
||||
'ant-design:rest-twotone',
|
||||
'ant-design:retweet-outlined',
|
||||
'ant-design:right-circle-filled',
|
||||
'ant-design:right-circle-outlined',
|
||||
'ant-design:right-circle-twotone',
|
||||
'ant-design:right-outlined',
|
||||
'ant-design:right-square-filled',
|
||||
'ant-design:right-square-outlined',
|
||||
'ant-design:right-square-twotone',
|
||||
'ant-design:rise-outlined',
|
||||
'ant-design:robot-filled',
|
||||
'ant-design:robot-outlined',
|
||||
'ant-design:rocket-filled',
|
||||
'ant-design:rocket-outlined',
|
||||
'ant-design:rocket-twotone',
|
||||
'ant-design:rollback-outlined',
|
||||
'ant-design:rotate-left-outlined',
|
||||
'ant-design:rotate-right-outlined',
|
||||
'ant-design:safety-certificate-filled',
|
||||
'ant-design:safety-certificate-outlined',
|
||||
'ant-design:safety-certificate-twotone',
|
||||
'ant-design:safety-outlined',
|
||||
'ant-design:save-filled',
|
||||
'ant-design:save-outlined',
|
||||
'ant-design:save-twotone',
|
||||
'ant-design:scan-outlined',
|
||||
'ant-design:schedule-filled',
|
||||
'ant-design:schedule-outlined',
|
||||
'ant-design:schedule-twotone',
|
||||
'ant-design:scissor-outlined',
|
||||
'ant-design:search-outlined',
|
||||
'ant-design:security-scan-filled',
|
||||
'ant-design:security-scan-outlined',
|
||||
'ant-design:security-scan-twotone',
|
||||
'ant-design:select-outlined',
|
||||
'ant-design:send-outlined',
|
||||
'ant-design:setting-filled',
|
||||
'ant-design:setting-outlined',
|
||||
'ant-design:setting-twotone',
|
||||
'ant-design:shake-outlined',
|
||||
'ant-design:share-alt-outlined',
|
||||
'ant-design:shop-filled',
|
||||
'ant-design:shop-outlined',
|
||||
'ant-design:shop-twotone',
|
||||
'ant-design:shopping-cart-outlined',
|
||||
'ant-design:shopping-filled',
|
||||
'ant-design:shopping-outlined',
|
||||
'ant-design:shopping-twotone',
|
||||
'ant-design:shrink-outlined',
|
||||
'ant-design:signal-filled',
|
||||
'ant-design:sisternode-outlined',
|
||||
'ant-design:sketch-circle-filled',
|
||||
'ant-design:sketch-outlined',
|
||||
'ant-design:sketch-square-filled',
|
||||
'ant-design:skin-filled',
|
||||
'ant-design:skin-outlined',
|
||||
'ant-design:skin-twotone',
|
||||
'ant-design:skype-filled',
|
||||
'ant-design:skype-outlined',
|
||||
'ant-design:slack-circle-filled',
|
||||
'ant-design:slack-outlined',
|
||||
'ant-design:slack-square-filled',
|
||||
'ant-design:slack-square-outlined',
|
||||
'ant-design:sliders-filled',
|
||||
'ant-design:sliders-outlined',
|
||||
'ant-design:sliders-twotone',
|
||||
'ant-design:small-dash-outlined',
|
||||
'ant-design:smile-filled',
|
||||
'ant-design:smile-outlined',
|
||||
'ant-design:smile-twotone',
|
||||
'ant-design:snippets-filled',
|
||||
'ant-design:snippets-outlined',
|
||||
'ant-design:snippets-twotone',
|
||||
'ant-design:solution-outlined',
|
||||
'ant-design:sort-ascending-outlined',
|
||||
'ant-design:sort-descending-outlined',
|
||||
'ant-design:sound-filled',
|
||||
'ant-design:sound-outlined',
|
||||
'ant-design:sound-twotone',
|
||||
'ant-design:split-cells-outlined',
|
||||
'ant-design:star-filled',
|
||||
'ant-design:star-outlined',
|
||||
'ant-design:star-twotone',
|
||||
'ant-design:step-backward-filled',
|
||||
'ant-design:step-backward-outlined',
|
||||
'ant-design:step-forward-filled',
|
||||
'ant-design:step-forward-outlined',
|
||||
'ant-design:stock-outlined',
|
||||
'ant-design:stop-filled',
|
||||
'ant-design:stop-outlined',
|
||||
'ant-design:stop-twotone',
|
||||
'ant-design:strikethrough-outlined',
|
||||
'ant-design:subnode-outlined',
|
||||
'ant-design:swap-left-outlined',
|
||||
'ant-design:swap-outlined',
|
||||
'ant-design:swap-right-outlined',
|
||||
'ant-design:switcher-filled',
|
||||
'ant-design:switcher-outlined',
|
||||
'ant-design:switcher-twotone',
|
||||
'ant-design:sync-outlined',
|
||||
'ant-design:table-outlined',
|
||||
'ant-design:tablet-filled',
|
||||
'ant-design:tablet-outlined',
|
||||
'ant-design:tablet-twotone',
|
||||
'ant-design:tag-filled',
|
||||
'ant-design:tag-outlined',
|
||||
'ant-design:tag-twotone',
|
||||
'ant-design:tags-filled',
|
||||
'ant-design:tags-outlined',
|
||||
'ant-design:tags-twotone',
|
||||
'ant-design:taobao-circle-filled',
|
||||
'ant-design:taobao-circle-outlined',
|
||||
'ant-design:taobao-outlined',
|
||||
'ant-design:taobao-square-filled',
|
||||
'ant-design:team-outlined',
|
||||
'ant-design:thunderbolt-filled',
|
||||
'ant-design:thunderbolt-outlined',
|
||||
'ant-design:thunderbolt-twotone',
|
||||
'ant-design:to-top-outlined',
|
||||
'ant-design:tool-filled',
|
||||
'ant-design:tool-outlined',
|
||||
'ant-design:tool-twotone',
|
||||
'ant-design:trademark-circle-filled',
|
||||
'ant-design:trademark-circle-outlined',
|
||||
'ant-design:trademark-circle-twotone',
|
||||
'ant-design:trademark-outlined',
|
||||
'ant-design:transaction-outlined',
|
||||
'ant-design:translation-outlined',
|
||||
'ant-design:trophy-filled',
|
||||
'ant-design:trophy-outlined',
|
||||
'ant-design:trophy-twotone',
|
||||
'ant-design:twitter-circle-filled',
|
||||
'ant-design:twitter-outlined',
|
||||
'ant-design:twitter-square-filled',
|
||||
'ant-design:underline-outlined',
|
||||
'ant-design:undo-outlined',
|
||||
'ant-design:ungroup-outlined',
|
||||
'ant-design:unlock-filled',
|
||||
'ant-design:unlock-outlined',
|
||||
'ant-design:unlock-twotone',
|
||||
'ant-design:unordered-list-outlined',
|
||||
'ant-design:up-circle-filled',
|
||||
'ant-design:up-circle-outlined',
|
||||
'ant-design:up-circle-twotone',
|
||||
'ant-design:up-outlined',
|
||||
'ant-design:up-square-filled',
|
||||
'ant-design:up-square-outlined',
|
||||
'ant-design:up-square-twotone',
|
||||
'ant-design:upload-outlined',
|
||||
'ant-design:usb-filled',
|
||||
'ant-design:usb-outlined',
|
||||
'ant-design:usb-twotone',
|
||||
'ant-design:user-add-outlined',
|
||||
'ant-design:user-delete-outlined',
|
||||
'ant-design:user-outlined',
|
||||
'ant-design:user-switch-outlined',
|
||||
'ant-design:usergroup-add-outlined',
|
||||
'ant-design:usergroup-delete-outlined',
|
||||
'ant-design:verified-outlined',
|
||||
'ant-design:vertical-align-bottom-outlined',
|
||||
'ant-design:vertical-align-middle-outlined',
|
||||
'ant-design:vertical-align-top-outlined',
|
||||
'ant-design:vertical-left-outlined',
|
||||
'ant-design:vertical-right-outlined',
|
||||
'ant-design:video-camera-add-outlined',
|
||||
'ant-design:video-camera-filled',
|
||||
'ant-design:video-camera-outlined',
|
||||
'ant-design:video-camera-twotone',
|
||||
'ant-design:wallet-filled',
|
||||
'ant-design:wallet-outlined',
|
||||
'ant-design:wallet-twotone',
|
||||
'ant-design:warning-filled',
|
||||
'ant-design:warning-outlined',
|
||||
'ant-design:warning-twotone',
|
||||
'ant-design:wechat-filled',
|
||||
'ant-design:wechat-outlined',
|
||||
'ant-design:weibo-circle-filled',
|
||||
'ant-design:weibo-circle-outlined',
|
||||
'ant-design:weibo-outlined',
|
||||
'ant-design:weibo-square-filled',
|
||||
'ant-design:weibo-square-outlined',
|
||||
'ant-design:whats-app-outlined',
|
||||
'ant-design:wifi-outlined',
|
||||
'ant-design:windows-filled',
|
||||
'ant-design:windows-outlined',
|
||||
'ant-design:woman-outlined',
|
||||
'ant-design:yahoo-filled',
|
||||
'ant-design:yahoo-outlined',
|
||||
'ant-design:youtube-filled',
|
||||
'ant-design:youtube-outlined',
|
||||
'ant-design:yuque-filled',
|
||||
'ant-design:yuque-outlined',
|
||||
'ant-design:zhihu-circle-filled',
|
||||
'ant-design:zhihu-outlined',
|
||||
'ant-design:zhihu-square-filled',
|
||||
'ant-design:zoom-in-outlined',
|
||||
'ant-design:zoom-out-outlined'
|
||||
]
|
||||
}
|
299
kinit-admin/src/components/IconPicker/src/data/icons.ep.ts
Normal file
299
kinit-admin/src/components/IconPicker/src/data/icons.ep.ts
Normal file
@ -0,0 +1,299 @@
|
||||
export default {
|
||||
name: 'Element Plus',
|
||||
prefix: 'ep',
|
||||
icons: [
|
||||
'ep:add-location',
|
||||
'ep:aim',
|
||||
'ep:alarm-clock',
|
||||
'ep:apple',
|
||||
'ep:arrow-down',
|
||||
'ep:arrow-down-bold',
|
||||
'ep:arrow-left',
|
||||
'ep:arrow-left-bold',
|
||||
'ep:arrow-right',
|
||||
'ep:arrow-right-bold',
|
||||
'ep:arrow-up',
|
||||
'ep:arrow-up-bold',
|
||||
'ep:avatar',
|
||||
'ep:back',
|
||||
'ep:baseball',
|
||||
'ep:basketball',
|
||||
'ep:bell',
|
||||
'ep:bell-filled',
|
||||
'ep:bicycle',
|
||||
'ep:bottom',
|
||||
'ep:bottom-left',
|
||||
'ep:bottom-right',
|
||||
'ep:bowl',
|
||||
'ep:box',
|
||||
'ep:briefcase',
|
||||
'ep:brush',
|
||||
'ep:brush-filled',
|
||||
'ep:burger',
|
||||
'ep:calendar',
|
||||
'ep:camera',
|
||||
'ep:camera-filled',
|
||||
'ep:caret-bottom',
|
||||
'ep:caret-left',
|
||||
'ep:caret-right',
|
||||
'ep:caret-top',
|
||||
'ep:cellphone',
|
||||
'ep:chat-dot-round',
|
||||
'ep:chat-dot-square',
|
||||
'ep:chat-line-round',
|
||||
'ep:chat-line-square',
|
||||
'ep:chat-round',
|
||||
'ep:chat-square',
|
||||
'ep:check',
|
||||
'ep:checked',
|
||||
'ep:cherry',
|
||||
'ep:chicken',
|
||||
'ep:chrome-filled',
|
||||
'ep:circle-check',
|
||||
'ep:circle-check-filled',
|
||||
'ep:circle-close',
|
||||
'ep:circle-close-filled',
|
||||
'ep:circle-plus',
|
||||
'ep:circle-plus-filled',
|
||||
'ep:clock',
|
||||
'ep:close',
|
||||
'ep:close-bold',
|
||||
'ep:cloudy',
|
||||
'ep:coffee',
|
||||
'ep:coffee-cup',
|
||||
'ep:coin',
|
||||
'ep:cold-drink',
|
||||
'ep:collection',
|
||||
'ep:collection-tag',
|
||||
'ep:comment',
|
||||
'ep:compass',
|
||||
'ep:connection',
|
||||
'ep:coordinate',
|
||||
'ep:copy-document',
|
||||
'ep:cpu',
|
||||
'ep:credit-card',
|
||||
'ep:crop',
|
||||
'ep:d-arrow-left',
|
||||
'ep:d-arrow-right',
|
||||
'ep:d-caret',
|
||||
'ep:data-analysis',
|
||||
'ep:data-board',
|
||||
'ep:data-line',
|
||||
'ep:delete',
|
||||
'ep:delete-filled',
|
||||
'ep:delete-location',
|
||||
'ep:dessert',
|
||||
'ep:discount',
|
||||
'ep:dish',
|
||||
'ep:dish-dot',
|
||||
'ep:document',
|
||||
'ep:document-add',
|
||||
'ep:document-checked',
|
||||
'ep:document-copy',
|
||||
'ep:document-delete',
|
||||
'ep:document-remove',
|
||||
'ep:download',
|
||||
'ep:drizzling',
|
||||
'ep:edit',
|
||||
'ep:edit-pen',
|
||||
'ep:eleme',
|
||||
'ep:eleme-filled',
|
||||
'ep:element-plus',
|
||||
'ep:expand',
|
||||
'ep:failed',
|
||||
'ep:female',
|
||||
'ep:files',
|
||||
'ep:film',
|
||||
'ep:filter',
|
||||
'ep:finished',
|
||||
'ep:first-aid-kit',
|
||||
'ep:flag',
|
||||
'ep:fold',
|
||||
'ep:folder',
|
||||
'ep:folder-add',
|
||||
'ep:folder-checked',
|
||||
'ep:folder-delete',
|
||||
'ep:folder-opened',
|
||||
'ep:folder-remove',
|
||||
'ep:food',
|
||||
'ep:football',
|
||||
'ep:fork-spoon',
|
||||
'ep:fries',
|
||||
'ep:full-screen',
|
||||
'ep:goblet',
|
||||
'ep:goblet-full',
|
||||
'ep:goblet-square',
|
||||
'ep:goblet-square-full',
|
||||
'ep:gold-medal',
|
||||
'ep:goods',
|
||||
'ep:goods-filled',
|
||||
'ep:grape',
|
||||
'ep:grid',
|
||||
'ep:guide',
|
||||
'ep:handbag',
|
||||
'ep:headset',
|
||||
'ep:help',
|
||||
'ep:help-filled',
|
||||
'ep:hide',
|
||||
'ep:histogram',
|
||||
'ep:home-filled',
|
||||
'ep:hot-water',
|
||||
'ep:house',
|
||||
'ep:ice-cream',
|
||||
'ep:ice-cream-round',
|
||||
'ep:ice-cream-square',
|
||||
'ep:ice-drink',
|
||||
'ep:ice-tea',
|
||||
'ep:info-filled',
|
||||
'ep:iphone',
|
||||
'ep:key',
|
||||
'ep:knife-fork',
|
||||
'ep:lightning',
|
||||
'ep:link',
|
||||
'ep:list',
|
||||
'ep:loading',
|
||||
'ep:location',
|
||||
'ep:location-filled',
|
||||
'ep:location-information',
|
||||
'ep:lock',
|
||||
'ep:lollipop',
|
||||
'ep:magic-stick',
|
||||
'ep:magnet',
|
||||
'ep:male',
|
||||
'ep:management',
|
||||
'ep:map-location',
|
||||
'ep:medal',
|
||||
'ep:memo',
|
||||
'ep:menu',
|
||||
'ep:message',
|
||||
'ep:message-box',
|
||||
'ep:mic',
|
||||
'ep:microphone',
|
||||
'ep:milk-tea',
|
||||
'ep:minus',
|
||||
'ep:money',
|
||||
'ep:monitor',
|
||||
'ep:moon',
|
||||
'ep:moon-night',
|
||||
'ep:more',
|
||||
'ep:more-filled',
|
||||
'ep:mostly-cloudy',
|
||||
'ep:mouse',
|
||||
'ep:mug',
|
||||
'ep:mute',
|
||||
'ep:mute-notification',
|
||||
'ep:no-smoking',
|
||||
'ep:notebook',
|
||||
'ep:notification',
|
||||
'ep:odometer',
|
||||
'ep:office-building',
|
||||
'ep:open',
|
||||
'ep:operation',
|
||||
'ep:opportunity',
|
||||
'ep:orange',
|
||||
'ep:paperclip',
|
||||
'ep:partly-cloudy',
|
||||
'ep:pear',
|
||||
'ep:phone',
|
||||
'ep:phone-filled',
|
||||
'ep:picture',
|
||||
'ep:picture-filled',
|
||||
'ep:picture-rounded',
|
||||
'ep:pie-chart',
|
||||
'ep:place',
|
||||
'ep:platform',
|
||||
'ep:plus',
|
||||
'ep:pointer',
|
||||
'ep:position',
|
||||
'ep:postcard',
|
||||
'ep:pouring',
|
||||
'ep:present',
|
||||
'ep:price-tag',
|
||||
'ep:printer',
|
||||
'ep:promotion',
|
||||
'ep:quartz-watch',
|
||||
'ep:question-filled',
|
||||
'ep:rank',
|
||||
'ep:reading',
|
||||
'ep:reading-lamp',
|
||||
'ep:refresh',
|
||||
'ep:refresh-left',
|
||||
'ep:refresh-right',
|
||||
'ep:refrigerator',
|
||||
'ep:remove',
|
||||
'ep:remove-filled',
|
||||
'ep:right',
|
||||
'ep:scale-to-original',
|
||||
'ep:school',
|
||||
'ep:scissor',
|
||||
'ep:search',
|
||||
'ep:select',
|
||||
'ep:sell',
|
||||
'ep:semi-select',
|
||||
'ep:service',
|
||||
'ep:set-up',
|
||||
'ep:setting',
|
||||
'ep:share',
|
||||
'ep:ship',
|
||||
'ep:shop',
|
||||
'ep:shopping-bag',
|
||||
'ep:shopping-cart',
|
||||
'ep:shopping-cart-full',
|
||||
'ep:shopping-trolley',
|
||||
'ep:smoking',
|
||||
'ep:soccer',
|
||||
'ep:sold-out',
|
||||
'ep:sort',
|
||||
'ep:sort-down',
|
||||
'ep:sort-up',
|
||||
'ep:stamp',
|
||||
'ep:star',
|
||||
'ep:star-filled',
|
||||
'ep:stopwatch',
|
||||
'ep:success-filled',
|
||||
'ep:sugar',
|
||||
'ep:suitcase',
|
||||
'ep:suitcase-line',
|
||||
'ep:sunny',
|
||||
'ep:sunrise',
|
||||
'ep:sunset',
|
||||
'ep:switch',
|
||||
'ep:switch-button',
|
||||
'ep:switch-filled',
|
||||
'ep:takeaway-box',
|
||||
'ep:ticket',
|
||||
'ep:tickets',
|
||||
'ep:timer',
|
||||
'ep:toilet-paper',
|
||||
'ep:tools',
|
||||
'ep:top',
|
||||
'ep:top-left',
|
||||
'ep:top-right',
|
||||
'ep:trend-charts',
|
||||
'ep:trophy',
|
||||
'ep:trophy-base',
|
||||
'ep:turn-off',
|
||||
'ep:umbrella',
|
||||
'ep:unlock',
|
||||
'ep:upload',
|
||||
'ep:upload-filled',
|
||||
'ep:user',
|
||||
'ep:user-filled',
|
||||
'ep:van',
|
||||
'ep:video-camera',
|
||||
'ep:video-camera-filled',
|
||||
'ep:video-pause',
|
||||
'ep:video-play',
|
||||
'ep:view',
|
||||
'ep:wallet',
|
||||
'ep:wallet-filled',
|
||||
'ep:warn-triangle-filled',
|
||||
'ep:warning',
|
||||
'ep:warning-filled',
|
||||
'ep:watch',
|
||||
'ep:watermelon',
|
||||
'ep:wind-power',
|
||||
'ep:zoom-in',
|
||||
'ep:zoom-out'
|
||||
]
|
||||
}
|
1209
kinit-admin/src/components/IconPicker/src/data/icons.tdesign.ts
Normal file
1209
kinit-admin/src/components/IconPicker/src/data/icons.tdesign.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -202,7 +202,7 @@ export default defineComponent({
|
||||
</div>
|
||||
<Menu
|
||||
class={[
|
||||
'!absolute top-0 z-4000',
|
||||
'!absolute top-0 z-1000',
|
||||
{
|
||||
'!left-[var(--tab-menu-min-width)]': unref(collapse),
|
||||
'!left-[var(--tab-menu-max-width)]': !unref(collapse),
|
||||
|
@ -15,8 +15,6 @@ import { set, get } from 'lodash-es'
|
||||
import { CSSProperties } from 'vue'
|
||||
import { getSlot } from '@/utils/tsxHelper'
|
||||
import TableActions from './components/TableActions.vue'
|
||||
// import Sortable from 'sortablejs'
|
||||
// import { Icon } from '@/components/Icon'
|
||||
import { useAppStore } from '@/store/modules/app'
|
||||
|
||||
const appStore = useAppStore()
|
||||
@ -193,7 +191,7 @@ export default defineComponent({
|
||||
scrollbarAlwaysOn: propTypes.bool.def(false),
|
||||
flexible: propTypes.bool.def(false)
|
||||
},
|
||||
emits: ['update:pageSize', 'update:currentPage', 'register', 'refresh', 'sortable-change'],
|
||||
emits: ['update:pageSize', 'update:currentPage', 'register', 'refresh'],
|
||||
setup(props, { attrs, emit, slots, expose }) {
|
||||
const elTableRef = ref<ComponentRef<typeof ElTable>>()
|
||||
|
||||
@ -218,33 +216,6 @@ export default defineComponent({
|
||||
return propsObj
|
||||
})
|
||||
|
||||
// const sortableEl = ref()
|
||||
// 初始化拖拽
|
||||
// const initDropTable = () => {
|
||||
// const el = unref(elTableRef)?.$el.querySelector('.el-table__body tbody')
|
||||
// if (!el) return
|
||||
// if (unref(sortableEl)) unref(sortableEl).destroy()
|
||||
|
||||
// sortableEl.value = Sortable.create(el, {
|
||||
// handle: '.table-move',
|
||||
// animation: 180,
|
||||
// onEnd(e: any) {
|
||||
// emit('sortable-change', e)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
|
||||
// watch(
|
||||
// () => getProps.value.sortable,
|
||||
// async (v) => {
|
||||
// await nextTick()
|
||||
// v && initDropTable()
|
||||
// },
|
||||
// {
|
||||
// immediate: true
|
||||
// }
|
||||
// )
|
||||
|
||||
const setProps = (props: TableProps = {}) => {
|
||||
mergeProps.value = Object.assign(unref(mergeProps), props)
|
||||
outsideProps.value = { ...props } as any
|
||||
@ -509,20 +480,6 @@ export default defineComponent({
|
||||
}
|
||||
const toolbar = getSlot(slots, 'toolbar')
|
||||
|
||||
// const { sortable } = unref(getProps)
|
||||
|
||||
// const sortableEl = sortable ? (
|
||||
// <ElTableColumn
|
||||
// className="table-move cursor-move"
|
||||
// type="sortable"
|
||||
// prop="sortable"
|
||||
// width="60px"
|
||||
// align="center"
|
||||
// >
|
||||
// <Icon icon="ant-design:drag-outlined" />
|
||||
// </ElTableColumn>
|
||||
// ) : null
|
||||
|
||||
return (
|
||||
<div v-loading={unref(getProps).loading}>
|
||||
<div class="flex justify-between mb-1">
|
||||
|
@ -84,7 +84,7 @@ const filterSearchSchema = (crudSchema: CrudSchema[]): FormSchema[] => {
|
||||
component: schemaItem?.search?.component || 'Input',
|
||||
...schemaItem.search,
|
||||
field: schemaItem.field,
|
||||
label: schemaItem.label
|
||||
label: schemaItem.search?.label || schemaItem.label
|
||||
}
|
||||
|
||||
// 删除不必要的字段
|
||||
@ -103,8 +103,8 @@ const filterTableSchema = (crudSchema: CrudSchema[]): TableColumn[] => {
|
||||
conversion: (schema: CrudSchema) => {
|
||||
if (!schema?.table?.hidden) {
|
||||
return {
|
||||
...schema.table,
|
||||
...schema
|
||||
...schema,
|
||||
...schema.table
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -132,7 +132,7 @@ const filterFormSchema = (crudSchema: CrudSchema[]): FormSchema[] => {
|
||||
component: formItem?.form?.component || 'Input',
|
||||
...formItem.form,
|
||||
field: formItem.field,
|
||||
label: formItem.label
|
||||
label: formItem.form?.label || formItem.label
|
||||
}
|
||||
|
||||
// 删除不必要的字段
|
||||
|
@ -186,7 +186,8 @@ export default {
|
||||
permission: 'Permission test page',
|
||||
function: 'Function',
|
||||
multipleTabs: 'Multiple tabs',
|
||||
details: 'Details'
|
||||
details: 'Details',
|
||||
iconPicker: 'Icon picker'
|
||||
},
|
||||
permission: {
|
||||
hasPermission: 'Please set the operation permission value'
|
||||
|
@ -184,7 +184,8 @@ export default {
|
||||
permission: '权限测试页',
|
||||
function: '功能',
|
||||
multipleTabs: '多开标签页',
|
||||
details: '详情页'
|
||||
details: '详情页',
|
||||
iconPicker: '图标选择器'
|
||||
},
|
||||
permission: {
|
||||
hasPermission: '请设置操作权限值'
|
||||
|
@ -5,7 +5,8 @@ import { PropType, reactive, watch } from 'vue'
|
||||
import { useValidator } from '@/hooks/web/useValidator'
|
||||
import { propTypes } from '@/utils/propTypes'
|
||||
import { getMenuTreeOptionsApi } from '@/api/vadmin/auth/menu'
|
||||
import { ElButton, ElInput } from 'element-plus'
|
||||
import { ElButton } from 'element-plus'
|
||||
import { IconPicker } from '@/components/IconPicker'
|
||||
|
||||
const { required } = useValidator()
|
||||
|
||||
@ -85,14 +86,10 @@ const formSchema = reactive<FormSchema[]>([
|
||||
return (
|
||||
<>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<ElInput
|
||||
v-model={data['icon']}
|
||||
placeholder="支持 Iconify 中的所有图标,请登录网站自行搜索:https://iconify.design/"
|
||||
style="width: 490px"
|
||||
/>
|
||||
<IconPicker style="width: 470px" input-disabled={false} v-model={data['icon']} />
|
||||
<div style="margin-left: 10px">
|
||||
<ElButton type="primary" onClick={toIconify}>
|
||||
跳转
|
||||
Iconify
|
||||
</ElButton>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -24,7 +24,6 @@
|
||||
"@/*": ["src/*"]
|
||||
},
|
||||
"types": [
|
||||
"@intlify/unplugin-vue-i18n/types",
|
||||
"vite/client",
|
||||
"element-plus/global",
|
||||
"@types/qrcode",
|
||||
|
4
kinit-admin/types/components.d.ts
vendored
4
kinit-admin/types/components.d.ts
vendored
@ -1,7 +1,7 @@
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
Icon: typeof import('../components/Icon/src/Icon.vue')['default']
|
||||
Permission: typeof import('../components/Permission/src/Permission.vue')['default']
|
||||
Icon: (typeof import('../components/Icon/src/Icon.vue'))['default']
|
||||
Permission: (typeof import('../components/Permission/src/Permission.vue'))['default']
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,6 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
|
||||
}
|
||||
}),
|
||||
VueJsx(),
|
||||
// WindiCSS(),
|
||||
progress(),
|
||||
createStyleImportPlugin({
|
||||
resolves: [ElementPlusResolve()],
|
||||
@ -159,11 +158,12 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
|
||||
'qs',
|
||||
'echarts',
|
||||
'echarts-wordcloud',
|
||||
'intro.js',
|
||||
'qrcode',
|
||||
'@wangeditor/editor',
|
||||
'@wangeditor/editor-for-vue',
|
||||
'vue-json-pretty'
|
||||
'vue-json-pretty',
|
||||
'@zxcvbn-ts/core',
|
||||
'dayjs'
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ from fastapi.security import OAuth2PasswordBearer
|
||||
"""
|
||||
系统版本
|
||||
"""
|
||||
VERSION = "3.0.2"
|
||||
VERSION = "3.1.0"
|
||||
|
||||
"""安全警告: 不要在生产中打开调试运行!"""
|
||||
DEBUG = False
|
||||
|
Loading…
x
Reference in New Issue
Block a user