⬆ chore: version

This commit is contained in:
淋雨的小丸子 2023-06-20 21:56:30 +08:00
parent 48e91e76af
commit 0f76f6d49b
67 changed files with 427 additions and 429 deletions

View File

@ -42,7 +42,8 @@
- [🌐 Gitee Warehouse address](https://gitee.com/chu1204505056/vue-admin-better?_from=gitee_search)
- Recently, the VAB official website has been frequently attacked by DDoS. We have taken relevant preventive measures. If the website cannot be accessed, please visit the backup address
- Recently, the VAB official website has been frequently attacked by DDoS. We have taken relevant preventive measures.
If the website cannot be accessed, please visit the backup address
## 🌐 Backup address (support automatic update of HTTPS website)
@ -73,7 +74,11 @@ npm run serve
## 🍻 Front end discussion QQ group
- Let's have a cup of coffee, and then contact QQ 783963206 to invite you to the discussion group. Because of the large number of users, if you haven't passed a friend's request, please contact Alipay on the Alipay payment page, whether you invite or not, you can enjoy the open source code, thank you for your support and trust, and provide the vue-admin-beautifu basic version in the group. Automatic configuration tutorial of development tools and project development documents.
- Let's have a cup of coffee, and then contact QQ 783963206 to invite you to the discussion group. Because of the large
number of users, if you haven't passed a friend's request, please contact Alipay on the Alipay payment page, whether
you invite or not, you can enjoy the open source code, thank you for your support and trust, and provide the
vue-admin-beautifu basic version in the group. Automatic configuration tutorial of development tools and project
development documents.
<table>
<tr>
@ -107,7 +112,7 @@ npm run serve
## 🎨 Acknowledge
| Project |
| ---------------------------------------------------------------- |
|------------------------------------------------------------------|
| [vue](https://github.com/vuejs/vue) |
| [element-ui](https://github.com/ElemeFE/element) |
| [element-plus](https://github.com/element-plus/element-plus) |
@ -196,7 +201,9 @@ The following is a screenshot of the pro version:
## 📄 Commercial considerations
This project can be used for commercial purposes free of charge. Please abide by the MIT agreement and keep the author's technical support statement. For customized source code copyright information, please contact customer service QQ 783963206.
This project can be used for commercial purposes free of charge. Please abide by the MIT agreement and keep the author's
technical support statement. For customized source code copyright information, please contact customer service QQ
783963206.
<!-- ## 严正声明

View File

@ -50,7 +50,9 @@
## 🍻 前端讨论 QQ 群
- 请我们喝杯咖啡,打赏后联系 QQ 783963206 邀请您进入讨论群(由于用户数较多,如果您打赏后未通过好友请求,请联系商家),不管您请还是不请,您都可以享受到开源的代码,感谢您的支持和信任,群内提供 vue-admin-better 基础版本、开发工具自动配置教程及项目开发文档。
- 请我们喝杯咖啡,打赏后联系 QQ 783963206 邀请您进入讨论群(由于用户数较多,如果您打赏后未通过好友请求,请联系商家),不管您请还是不请,您都可以享受到开源的代码,感谢您的支持和信任,群内提供
vue-admin-better 基础版本、开发工具自动配置教程及项目开发文档。
<table>
<tr>
<td>
@ -128,7 +130,7 @@ npm run serve
## 🎨 鸣谢
| Project |
| ---------------------------------------------------------------- |
|------------------------------------------------------------------|
| [vue](https://github.com/vuejs/vue) |
| [element-ui](https://github.com/ElemeFE/element) |
| [element-plus](https://github.com/element-plus/element-plus) |

View File

@ -12,8 +12,8 @@
<el-dialog
:visible.sync="dialogTableVisible"
append-to-body
title="vue-admin-better异常捕获(温馨提示:错误必须解决)"
width="70%"
title="vue-admin-beautiful异常捕获(温馨提示:错误必须解决)"
>
<el-table :data="errorLogs">
<el-table-column label="报错路由">
@ -38,7 +38,7 @@
</el-popover>
</template>
</el-table-column>
<el-table-column width="380" label="操作">
<el-table-column label="操作" width="380">
<template slot-scope="{ row }">
<a
v-for="(item, index) in searchList"
@ -56,7 +56,7 @@
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogTableVisible = false"> </el-button>
<el-button type="danger" icon="el-icon-delete" @click="clearAll">
<el-button icon="el-icon-delete" type="danger" @click="clearAll">
暂不显示
</el-button>
</span>

View File

@ -1,28 +1,28 @@
<template>
<a
aria-label="View source on Github"
class="github-corner"
href="https://github.com/chuzhixin/vue-admin-beautiful"
target="_blank"
class="github-corner"
aria-label="View source on Github"
>
<svg
width="80"
aria-hidden="true"
class="github-color"
height="80"
viewBox="0 0 250 250"
class="github-color"
aria-hidden="true"
width="80"
>
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
<path
class="octo-arm"
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
fill="currentColor"
style="transform-origin: 130px 106px"
class="octo-arm"
/>
<path
class="octo-body"
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
fill="currentColor"
class="octo-body"
/>
</svg>
</a>

View File

@ -8,13 +8,13 @@
<script>
export default {
name: "VabQueryFormBottomPanel",
name: 'VabQueryFormBottomPanel',
props: {},
data() {
return {};
return {}
},
created() {},
mounted() {},
methods: {},
};
}
</script>

View File

@ -1,5 +1,5 @@
<template>
<el-col :xs="24" :sm="24" :md="24" :lg="span" :xl="span">
<el-col :lg="span" :md="24" :sm="24" :xl="span" :xs="24">
<div class="left-panel">
<slot></slot>
</div>

View File

@ -1,5 +1,5 @@
<template>
<el-col :xs="24" :sm="24" :md="24" :lg="span" :xl="span">
<el-col :lg="span" :md="24" :sm="24" :xl="span" :xs="24">
<div class="right-panel">
<slot></slot>
</div>

View File

@ -8,8 +8,8 @@
<span>{{ routeChildren.meta.title }}</span>
<el-tag
v-if="routeChildren.meta && routeChildren.meta.badge"
type="danger"
effect="dark"
type="danger"
>
{{ routeChildren.meta.badge }}
</el-tag>

View File

@ -2,8 +2,8 @@
<component
:is="menuComponent"
v-if="!item.hidden"
:item="item"
:full-path="fullPath"
:item="item"
:route-children="routeChildren"
>
<template v-if="item.children && item.children.length">

View File

@ -1,14 +1,14 @@
<template>
<el-scrollbar class="side-bar-container" :class="{ 'is-collapse': collapse }">
<el-scrollbar :class="{ 'is-collapse': collapse }" class="side-bar-container">
<vab-logo />
<el-menu
:background-color="variables['menu-background']"
:text-color="variables['menu-color']"
:active-text-color="variables['menu-color-active']"
:default-active="activeMenu"
:background-color="variables['menu-background']"
:collapse="collapse"
:collapse-transition="false"
:default-active="activeMenu"
:default-openeds="defaultOpens"
:text-color="variables['menu-color']"
:unique-opened="uniqueOpened"
mode="vertical"
>
@ -100,6 +100,7 @@
right: 10px;
margin-top: -3px;
}
.el-menu-item,
.el-submenu {
text-align: center;

View File

@ -2,17 +2,17 @@
<div id="tabs-bar-container" class="tabs-bar-container">
<el-tabs
v-model="tabActive"
type="card"
class="tabs-content"
type="card"
@tab-click="handleTabClick"
@tab-remove="handleTabRemove"
>
<el-tab-pane
v-for="item in visitedRoutes"
:key="item.path"
:closable="!isAffix(item)"
:label="item.meta.title"
:name="item.path"
:closable="!isAffix(item)"
></el-tab-pane>
</el-tabs>

View File

@ -2,17 +2,17 @@
<div class="top-bar-container">
<div class="vab-main">
<el-row>
<el-col :xl="7" :lg="7" :md="7" :sm="7" :xs="7">
<el-col :lg="7" :md="7" :sm="7" :xl="7" :xs="7">
<vab-logo />
</el-col>
<el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
<el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="12">
<el-menu
:background-color="variables['menu-background']"
:text-color="variables['menu-color']"
:active-text-color="variables['menu-color-active']"
:background-color="variables['menu-background']"
:default-active="activeMenu"
mode="horizontal"
:text-color="variables['menu-color']"
menu-trigger="hover"
mode="horizontal"
>
<template v-for="route in routes">
<vab-side-bar-item
@ -24,15 +24,15 @@
</template>
</el-menu>
</el-col>
<el-col :xl="5" :lg="5" :md="5" :sm="5" :xs="5">
<el-col :lg="5" :md="5" :sm="5" :xl="5" :xs="5">
<div class="right-panel">
<vab-error-log />
<vab-full-screen-bar @refresh="refreshRoute" />
<vab-theme-bar class="hidden-md-and-down" />
<vab-icon
title="重载路由"
:pulse="pulse"
:icon="['fas', 'redo']"
:pulse="pulse"
title="重载路由"
@click="refreshRoute"
/>
<vab-avatar />

View File

@ -37,6 +37,7 @@ function handleMockArray() {
getFiles('mock/controller')
return mockArray
}
module.exports = {
handleRandomImage,
handleMockArray,

View File

@ -30,7 +30,7 @@
},
"dependencies": {
"axios": "^1.4.0",
"caniuse-lite": "^1.0.30001504",
"caniuse-lite": "^1.0.30001505",
"clipboard": "^2.0.11",
"core-js": "^3.31.0",
"dayjs": "^1.11.8",

View File

@ -2,20 +2,20 @@
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<meta content="IE=edge" http-equiv="X-UA-Compatible" />
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
<link href="<%= BASE_URL %>favicon.ico" rel="icon" />
<title>vue-admin-better官网、首页、文档和下载 - 前端开发框架</title>
<meta
name="keywords"
content="vab,vab官网,后台管理框架,vue后台管理框架,vue-admin-beautiful-pro源码分享,vue-admin-beautiful-pro源码,vue-admin-beautiful官网,vue-admin-beautiful文档,vue-element-admin,vue-element-admin官网,vue-element-admin文档,vue-admin,vue-admin官网,vue-admin文档"
name="keywords"
/>
<meta
name="description"
content="<%= VUE_APP_TITLE %>官网与文档基于vue-admin-beautiful构建简称vab是一款超棒的vue+element中后台前端快速开发框架QQ群972435319作者<%= VUE_APP_AUTHOR %>"
name="description"
/>
<meta name="author" content="<%= VUE_APP_AUTHOR %>" />
<link rel="stylesheet" href="<%= BASE_URL %>static/css/loading.css" />
<meta content="<%= VUE_APP_AUTHOR %>" name="author" />
<link href="<%= BASE_URL %>static/css/loading.css" rel="stylesheet" />
</head>
<body>
<noscript>

View File

@ -191,11 +191,4 @@
color: #606266;
}
</style>
<style lang="scss">
/* .vab-tree-select{
.el-tag__close.el-icon-close{
width:0;
overflow:hidden;
}
} */
</style>
<style lang="scss"></style>

View File

@ -1,6 +1,6 @@
<template>
<div class="content">
<div class="g-container" :style="styleObj">
<div :style="styleObj" class="g-container">
<div class="g-number">
{{ endVal }}
</div>

View File

@ -1,5 +1,5 @@
<template>
<div class="card" :style="styleObj">
<div :style="styleObj" class="card">
<div class="card-borders">
<div class="border-top"></div>
<div class="border-right"></div>
@ -13,8 +13,8 @@
<a
v-for="(item, index) in iconArray"
:key="index"
class="social-icon"
:href="item.url"
class="social-icon"
target="_blank"
>
<vab-icon :icon="['fas', item.icon]" />

View File

@ -1,5 +1,5 @@
<template>
<div class="content" :style="styleObj">
<div :style="styleObj" class="content">
<div v-for="(item, index) in 200" :key="index" class="snow"></div>
</div>
</template>

View File

@ -75,8 +75,6 @@
</template>
<script>
import { baseURL, tokenName } from '@/config'
export default {
name: 'VabUpload',
props: {
@ -207,12 +205,12 @@
this.imgSuccessNum = 0
this.imgErrorNum = 0
/* if ("development" === process.env.NODE_ENV) {
this.api = process.env.VUE_APP_BASE_API;
} else {
this.api = `${window.location.protocol}//${window.location.host}`;
}
this.api = process.env.VUE_APP_BASE_API;
} else {
this.api = `${window.location.protocol}//${window.location.host}`;
}
this.action = this.api + this.url; */
this.action = this.api + this.url; */
this.dialogFormVisible = false
},
},

View File

@ -2,21 +2,22 @@
<div class="vab-ad">
<el-carousel
v-if="adList"
height="30px"
direction="vertical"
:autoplay="true"
:interval="3000"
direction="vertical"
height="30px"
indicator-position="none"
>
<el-carousel-item v-for="(item, index) in adList" :key="index">
<el-tag type="warning">Ad</el-tag>
<a target="_blank" :href="item.url">{{ item.title }}</a>
<a :href="item.url" target="_blank">{{ item.title }}</a>
</el-carousel-item>
</el-carousel>
</div>
</template>
<script>
import { getList } from '@/api/ad'
export default {
name: 'VabAd',
data() {

View File

@ -80,9 +80,11 @@
position: relative;
width: 100%;
overflow: hidden;
.vab-keel {
margin: $base-padding;
}
.app-main-height {
min-height: $base-app-main-height;
}

View File

@ -2,7 +2,7 @@
<el-dropdown @command="handleCommand">
<span class="avatar-dropdown">
<!--<el-avatar class="user-avatar" :src="avatar"></el-avatar>-->
<img class="user-avatar" :src="avatar" alt="" />
<img :src="avatar" alt="" class="user-avatar" />
<div class="user-name">
{{ username }}
<i class="el-icon-arrow-down el-icon--right"></i>

View File

@ -2,11 +2,11 @@
<div :class="'logo-container-' + layout">
<router-link to="/">
<!-- 这里是logo变更的位置 -->
<vab-remix-icon v-if="logo" class="logo" :icon-class="logo" />
<vab-remix-icon v-if="logo" :icon-class="logo" class="logo" />
<span
class="title"
:class="{ 'hidden-xs-only': layout === 'horizontal' }"
:title="title"
class="title"
>
{{ title }}
</span>

View File

@ -1,7 +1,7 @@
<template>
<div class="nav-bar-container">
<el-row :gutter="15">
<el-col :xs="4" :sm="12" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="4">
<div class="left-panel">
<i
:class="collapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'"
@ -12,15 +12,15 @@
<vab-breadcrumb class="hidden-xs-only" />
</div>
</el-col>
<el-col :xs="20" :sm="12" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="20">
<div class="right-panel">
<vab-error-log />
<vab-full-screen-bar @refresh="refreshRoute" />
<vab-theme-bar class="hidden-xs-only" />
<vab-icon
title="重载所有路由"
:pulse="pulse"
:icon="['fas', 'redo']"
:pulse="pulse"
title="重载所有路由"
@click="refreshRoute"
/>
<vab-avatar />

View File

@ -1,8 +1,8 @@
<template>
<span v-if="themeBar">
<vab-icon
title="主题配置"
:icon="['fas', 'palette']"
title="主题配置"
@click="handleOpenThemeBar"
/>
<div class="theme-bar-setting">
@ -17,11 +17,11 @@
</div>
<el-drawer
title="主题配置"
:visible.sync="drawerVisible"
direction="rtl"
append-to-body
direction="rtl"
size="300px"
title="主题配置"
>
<el-scrollbar style="height: 80vh; overflow: hidden">
<div class="el-drawer__body">
@ -66,6 +66,7 @@
<script>
import { mapActions, mapGetters } from 'vuex'
import { layout as defaultLayout } from '@/config'
export default {
name: 'VabThemeBar',
data() {

View File

@ -1,12 +1,12 @@
<template>
<div class="vue-admin-beautiful-wrapper" :class="classObj">
<div :class="classObj" class="vue-admin-beautiful-wrapper">
<div
v-if="'horizontal' === layout"
class="layout-container-horizontal"
:class="{
fixed: header === 'fixed',
'no-tabs-bar': tabsBar === 'false' || tabsBar === false,
}"
class="layout-container-horizontal"
>
<div :class="header === 'fixed' ? 'fixed-header' : ''">
<vab-top-bar />
@ -26,11 +26,11 @@
</div>
<div
v-else
class="layout-container-vertical"
:class="{
fixed: header === 'fixed',
'no-tabs-bar': tabsBar === 'false' || tabsBar === false,
}"
class="layout-container-vertical"
>
<div
v-if="device === 'mobile' && collapse === false"
@ -38,7 +38,7 @@
@click="handleFoldSideBar"
/>
<vab-side-bar />
<div class="vab-main" :class="collapse ? 'is-collapse-main' : ''">
<div :class="collapse ? 'is-collapse-main' : ''" class="vab-main">
<div :class="header === 'fixed' ? 'fixed-header' : ''">
<vab-nav-bar />
<vab-tabs-bar v-if="tabsBar === 'true' || tabsBar === true" />
@ -54,6 +54,7 @@
<script>
import { mapActions, mapGetters } from 'vuex'
import { tokenName } from '@/config'
export default {
name: 'Layout',
data() {

View File

@ -1,6 +1,5 @@
import { MessageBox } from 'element-ui'
import { donation } from '@/config'
import { dependencies, repository } from '../../package.json'
import { dependencies } from '../../package.json'
if (!!window.ActiveXObject || 'ActiveXObject' in window) {
MessageBox({

View File

@ -1 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M19.913 14.529a31.977 31.977 0 00-.675-1.886l-.91-2.246c0-.026.012-.468.012-.696C18.34 5.86 16.507 2 12 2S5.66 5.86 5.66 9.7c0 .229.011.671.012.697l-.91 2.246a32.777 32.777 0 00-.675 1.886c-.86 2.737-.581 3.87-.369 3.895.455.054 1.771-2.06 1.771-2.06 0 1.224.637 2.822 2.016 3.976-.515.157-1.147.399-1.554.695-.365.267-.319.54-.253.65.289.481 4.955.307 6.303.157 1.347.15 6.014.324 6.302-.158.066-.11.112-.382-.253-.649-.407-.296-1.039-.538-1.555-.696 1.379-1.153 2.016-2.751 2.016-3.976 0 0 1.316 2.115 1.771 2.06.212-.025.49-1.157-.37-3.894"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"/>
<path
d="M19.913 14.529a31.977 31.977 0 00-.675-1.886l-.91-2.246c0-.026.012-.468.012-.696C18.34 5.86 16.507 2 12 2S5.66 5.86 5.66 9.7c0 .229.011.671.012.697l-.91 2.246a32.777 32.777 0 00-.675 1.886c-.86 2.737-.581 3.87-.369 3.895.455.054 1.771-2.06 1.771-2.06 0 1.224.637 2.822 2.016 3.976-.515.157-1.147.399-1.554.695-.365.267-.319.54-.253.65.289.481 4.955.307 6.303.157 1.347.15 6.014.324 6.302-.158.066-.11.112-.382-.253-.649-.407-.296-1.039-.538-1.555-.696 1.379-1.153 2.016-2.751 2.016-3.976 0 0 1.316 2.115 1.771 2.06.212-.025.49-1.157-.37-3.894"/>
</svg>

Before

Width:  |  Height:  |  Size: 657 B

After

Width:  |  Height:  |  Size: 669 B

View File

@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M1 3h4l7 12 7-12h4L12 22 1 3zm8.667 0L12 7l2.333-4h4.035L12 14 5.632 3h4.035z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"/>
<path d="M1 3h4l7 12 7-12h4L12 22 1 3zm8.667 0L12 7l2.333-4h4.035L12 14 5.632 3h4.035z"/>
</svg>

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 200 B

View File

@ -119,8 +119,8 @@ $--fill-base: $--color-white;
/* Typography
-------------------------- */
$--font-path: "~element-ui/lib/theme-chalk/fonts";
$--font-display: "auto";
$--font-path: '~element-ui/lib/theme-chalk/fonts';
$--font-display: 'auto';
/// fontSize|1|Font Size|0
$--font-size-extra-large: 20px;
/// fontSize|1|Font Size|0
@ -987,51 +987,51 @@ $--lg: 1200px;
$--xl: 1920px;
$--breakpoints: (
"xs": (
'xs': (
max-width: $--sm - 1,
),
"sm": (
'sm': (
min-width: $--sm,
),
"md": (
'md': (
min-width: $--md,
),
"lg": (
'lg': (
min-width: $--lg,
),
"xl": (
'xl': (
min-width: $--xl,
),
);
$--breakpoints-spec: (
"xs-only": (
'xs-only': (
max-width: $--sm - 1,
),
"sm-and-up": (
'sm-and-up': (
min-width: $--sm,
),
"sm-only": "(min-width: #{$--sm}) and (max-width: #{$--md - 1})",
"sm-and-down": (
'sm-only': '(min-width: #{$--sm}) and (max-width: #{$--md - 1})',
'sm-and-down': (
max-width: $--md - 1,
),
"md-and-up": (
'md-and-up': (
min-width: $--md,
),
"md-only": "(min-width: #{$--md}) and (max-width: #{$--lg - 1})",
"md-and-down": (
'md-only': '(min-width: #{$--md}) and (max-width: #{$--lg - 1})',
'md-and-down': (
max-width: $--lg - 1,
),
"lg-and-up": (
'lg-and-up': (
min-width: $--lg,
),
"lg-only": "(min-width: #{$--lg}) and (max-width: #{$--xl - 1})",
"lg-and-down": (
'lg-only': '(min-width: #{$--lg}) and (max-width: #{$--xl - 1})',
'lg-and-down': (
max-width: $--xl - 1,
),
"xl-only": (
'xl-only': (
min-width: $--xl,
),
);
@import "~element-ui/packages/theme-chalk/src/index";
@import '~element-ui/packages/theme-chalk/src/index';

View File

@ -197,9 +197,9 @@ select {
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
[type='button'],
[type='reset'],
[type='submit'] {
-webkit-appearance: button;
}
@ -208,9 +208,9 @@ button,
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
padding: 0;
border-style: none;
}
@ -220,9 +220,9 @@ button::-moz-focus-inner,
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
outline: 1px dotted ButtonText;
}
@ -271,8 +271,8 @@ textarea {
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
[type='checkbox'],
[type='radio'] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
@ -281,8 +281,8 @@ textarea {
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
height: auto;
}
@ -291,7 +291,7 @@ textarea {
* 2. Correct the outline style in Safari.
*/
[type="search"] {
[type='search'] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
@ -300,7 +300,7 @@ textarea {
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
[type='search']::-webkit-search-decoration {
-webkit-appearance: none;
}

View File

@ -8,103 +8,75 @@
text-indent: -9999px;
background: transparent;
border-radius: 100%;
box-shadow: #f86 -14px -14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px,
#4ae -14px 14px 0 7px;
box-shadow: #f86 -14px -14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px, #4ae -14px 14px 0 7px;
transform-origin: 50% 50%;
animation: dots-loader 5s infinite ease-in-out;
}
@keyframes dots-loader {
0% {
box-shadow: #f86 -14px -14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px,
#4ae -14px 14px 0 7px;
box-shadow: #f86 -14px -14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px, #4ae -14px 14px 0 7px;
}
8.33% {
box-shadow: #f86 14px -14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px,
#4ae -14px 14px 0 7px;
box-shadow: #f86 14px -14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px, #4ae -14px 14px 0 7px;
}
16.67% {
box-shadow: #f86 14px 14px 0 7px,
#fc6 14px 14px 0 7px,
#6d7 14px 14px 0 7px,
box-shadow: #f86 14px 14px 0 7px, #fc6 14px 14px 0 7px, #6d7 14px 14px 0 7px,
#4ae -14px 14px 0 7px;
}
25% {
box-shadow: #f86 -14px 14px 0 7px,
#fc6 -14px 14px 0 7px,
#6d7 -14px 14px 0 7px,
#4ae -14px 14px 0 7px;
box-shadow: #f86 -14px 14px 0 7px, #fc6 -14px 14px 0 7px,
#6d7 -14px 14px 0 7px, #4ae -14px 14px 0 7px;
}
33.33% {
box-shadow: #f86 -14px -14px 0 7px,
#fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px,
#4ae -14px -14px 0 7px;
box-shadow: #f86 -14px -14px 0 7px, #fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px, #4ae -14px -14px 0 7px;
}
41.67% {
box-shadow: #f86 14px -14px 0 7px,
#fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px,
#4ae 14px -14px 0 7px;
box-shadow: #f86 14px -14px 0 7px, #fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px, #4ae 14px -14px 0 7px;
}
50% {
box-shadow: #f86 14px 14px 0 7px,
#fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px,
#4ae 14px -14px 0 7px;
box-shadow: #f86 14px 14px 0 7px, #fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px, #4ae 14px -14px 0 7px;
}
58.33% {
box-shadow: #f86 -14px 14px 0 7px,
#fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px,
#4ae 14px -14px 0 7px;
box-shadow: #f86 -14px 14px 0 7px, #fc6 -14px 14px 0 7px,
#6d7 -14px -14px 0 7px, #4ae 14px -14px 0 7px;
}
66.67% {
box-shadow: #f86 -14px -14px 0 7px,
#fc6 -14px -14px 0 7px,
#6d7 -14px -14px 0 7px,
#4ae 14px -14px 0 7px;
box-shadow: #f86 -14px -14px 0 7px, #fc6 -14px -14px 0 7px,
#6d7 -14px -14px 0 7px, #4ae 14px -14px 0 7px;
}
75% {
box-shadow: #f86 14px -14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px -14px 0 7px,
#4ae 14px -14px 0 7px;
box-shadow: #f86 14px -14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px -14px 0 7px, #4ae 14px -14px 0 7px;
}
83.33% {
box-shadow: #f86 14px 14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px,
#4ae 14px 14px 0 7px;
box-shadow: #f86 14px 14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px, #4ae 14px 14px 0 7px;
}
91.67% {
box-shadow: #f86 -14px 14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px,
#4ae -14px 14px 0 7px;
box-shadow: #f86 -14px 14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px, #4ae -14px 14px 0 7px;
}
100% {
box-shadow: #f86 -14px -14px 0 7px,
#fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px,
#4ae -14px 14px 0 7px;
box-shadow: #f86 -14px -14px 0 7px, #fc6 14px -14px 0 7px,
#6d7 14px 14px 0 7px, #4ae -14px 14px 0 7px;
}
}

View File

@ -17,7 +17,7 @@
left: 30px;
width: 4px;
height: 27px;
content: "";
content: '';
background: white;
border-radius: 2px;
transform-origin: 50% 100%;
@ -30,7 +30,7 @@
left: 26px;
width: 13px;
height: 13px;
content: "";
content: '';
background: white;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;

View File

@ -18,7 +18,7 @@
display: inline-block;
width: 50px;
height: 50px;
content: "";
content: '';
border-radius: 50%;
}

View File

@ -29,7 +29,7 @@
right: 50%;
width: 50%;
height: 100%;
content: "";
content: '';
background: #f86;
-moz-border-radius: 24px 0 0 24px;
-webkit-border-radius: 24px;
@ -49,7 +49,7 @@
right: 50%;
width: 50%;
height: 100%;
content: "";
content: '';
background: #fc6;
-moz-border-radius: 24px 0 0 24px;
-webkit-border-radius: 24px;

View File

@ -8,6 +8,7 @@
@import './normalize.scss';
@import './transition.scss';
@import './loading.scss';
$base: '.vab';
@mixin scrollbar {
@ -70,8 +71,10 @@ a {
* {
transition: $base-transition;
}
svg {
transition: none;
* {
transition: none;
}
@ -146,6 +149,7 @@ html {
* {
transition: none;
}
padding: $base-padding;
background: $base-color-white;
}
@ -264,6 +268,7 @@ html {
.el-submenu {
margin: 7px !important;
border-radius: 5px !important;
&:hover {
border-radius: 5px !important;
}

View File

@ -5,11 +5,11 @@ import {
contentType,
debounce,
invalidCode,
loginInterception,
noPermissionCode,
requestTimeout,
successCode,
tokenName,
loginInterception,
} from '@/config'
import store from '@/store'
import qs from 'qs'

View File

@ -7,6 +7,7 @@
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path)
}
/**
* @author https://vue-admin-beautiful.com author
* @description 校验密码是否小于6位
@ -16,6 +17,7 @@ export function isExternal(path) {
export function isPassword(str) {
return str.length >= 6
}
/**
* @author chuzhixin 1204505056@qq.com 不想保留author可删除
* @description 判断是否是字符串
@ -25,6 +27,7 @@ export function isPassword(str) {
export function isString(str) {
return typeof str === 'string' || str instanceof String
}
/**
* @author chuzhixin 1204505056@qq.com 不想保留author可删除
* @description 判断是否是数组
@ -37,6 +40,7 @@ export function isArray(arg) {
}
return Array.isArray(arg)
}
/**
* @author chuzhixin 1204505056@qq.com 不想保留author可删除
* @description 判断是否是手机号

View File

@ -2,7 +2,7 @@
<div class="error-container">
<div class="error-content">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="24" :xl="12" :xs="24">
<div class="pic-error">
<img
alt="401"
@ -27,7 +27,7 @@
</div>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="24" :xl="12" :xs="24">
<div class="bullshit">
<div class="bullshit-oops">{{ oops }}</div>
<div class="bullshit-headline">{{ headline }}</div>

View File

@ -2,7 +2,7 @@
<div class="error-container">
<div class="error-content">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="24" :xl="12" :xs="24">
<div class="pic-error">
<img
alt="401"
@ -27,7 +27,7 @@
</div>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="24" :xl="12" :xs="24">
<div class="bullshit">
<div class="bullshit-oops">{{ oops }}</div>
<div class="bullshit-headline">{{ headline }}</div>

View File

@ -7,29 +7,30 @@
祝用框架的小伙伴都能住上别墅开上保时捷
</el-tag>
</template>
<el-table :data="tableData" row-key="title" height="283px">
<el-table :data="tableData" height="283px" row-key="title">
<el-table-column align="center" label="拖拽" width="50px">
<template #default="{}">
<vab-icon
style="cursor: pointer"
:icon="['fas', 'arrows-alt']"
style="cursor: pointer"
></vab-icon>
</template>
</el-table-column>
<el-table-column width="20px" />
<el-table-column prop="title" label="目标" width="230px" />
<el-table-column label="目标" prop="title" width="230px" />
<el-table-column label="进度" width="220px">
<template #default="{ row }">
<el-progress :percentage="row.percentage" :color="row.color" />
<el-progress :color="row.color" :percentage="row.percentage" />
</template>
</el-table-column>
<el-table-column width="50px" />
<el-table-column prop="endTIme" label="完成时间" />
<el-table-column label="完成时间" prop="endTIme" />
</el-table>
</el-card>
</template>
<script>
import Sortable from 'sortablejs'
export default {
data() {
return {

View File

@ -27,16 +27,16 @@
<td>授权渠道</td>
<td colspan="3">
<a
target="_blank"
href="https://vue-admin-beautiful.com/authorization"
target="_blank"
>
<el-button style="margin-left: 10px" type="primary">
PRO付费版本 购买源码 699
</el-button>
</a>
<a
target="_blank"
href="https://vue-admin-beautiful.com/authorization"
target="_blank"
>
<el-button style="margin-left: 10px" type="primary">
Plus付费版本 购买源码 799

View File

@ -1,30 +1,30 @@
<template>
<div class="index-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<el-col :lg="24" :md="24" :sm="24" :xl="24" :xs="24">
<el-alert v-if="noticeList[0]" :closable="noticeList[0].closable">
<div
style="display: flex; align-items: center; justify-content: center"
>
<a
target="_blank"
href="https://github.com/chuzhixin/vue-admin-better"
target="_blank"
>
<img
style="margin-right: 10px"
src="https://img.shields.io/github/stars/chuzhixin/vue-admin-better?style=flat-square&label=Stars&logo=github"
style="margin-right: 10px"
/>
</a>
<p v-html="noticeList[0].title"></p>
</div>
</el-alert>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="6" :xl="6">
<el-col :lg="6" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="never">
<div slot="header">
<span>访问量</span>
</div>
<vab-chart autoresize :option="fwl" />
<vab-chart :option="fwl" autoresize />
<div class="bottom">
<span>
日均访问量:
@ -34,12 +34,12 @@
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="6" :xl="6">
<el-col :lg="6" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="never">
<div slot="header">
<span>授权数</span>
</div>
<vab-chart autoresize :option="sqs" />
<vab-chart :option="sqs" autoresize />
<div class="bottom">
<span>
总授权数:
@ -52,31 +52,31 @@
<el-col
v-for="(item, index) in iconList"
:key="index"
:xs="12"
:sm="6"
:md="3"
:lg="3"
:md="3"
:sm="6"
:xl="3"
:xs="12"
>
<router-link :to="item.link" target="_blank">
<el-card class="icon-panel" shadow="never">
<vab-icon
:style="{ color: item.color }"
:icon="['fas', item.icon]"
:style="{ color: item.color }"
></vab-icon>
<p>{{ item.title }}</p>
</el-card>
</router-link>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="11" :xl="11">
<el-col :lg="11" :md="24" :sm="24" :xl="11" :xs="24">
<el-card class="card" shadow="never">
<div slot="header">
<span>依赖信息</span>
<div style="float: right">部署时间:{{ updateTime }}</div>
</div>
<div class="bottom-btn">
<el-popover placement="top" width="250" trigger="hover">
<el-popover placement="top" trigger="hover" width="250">
<p>
请我们喝杯咖啡付款后联系qq
783963206我们将邀请您加入我们的讨论群谢谢您愿意支持开源加群获取文档及基础模板群内大佬众多希望能帮到大家如情况不允许请勿勉强
@ -87,14 +87,14 @@
</a>
</el-popover>
<a
target="_blank"
href="https://github.com/chuzhixin/vue-admin-better"
target="_blank"
>
<el-button type="warning">github下载源码点star</el-button>
</a>
<a
target="_blank"
href="https://gitee.com/chu1204505056/vue-admin-beautiful"
target="_blank"
>
<el-button type="warning">码云下载源码点star</el-button>
</a>
@ -147,15 +147,15 @@
<span>其他信息</span>
</div>
<div style="text-align: center">
<vab-colorful-icon style="font-size: 140px" icon-class="vab" />
<vab-colorful-icon icon-class="vab" style="font-size: 140px" />
<h1 style="font-size: 30px">vue-admin-better</h1>
</div>
<div v-for="(item, index) in noticeList" :key="index">
<el-alert
v-if="index !== 0"
:closable="item.closable"
:title="item.title"
:type="item.type"
:closable="item.closable"
></el-alert>
<br />
</div>
@ -164,7 +164,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="13" :lg="13" :xl="13">
<el-col :lg="13" :md="13" :sm="24" :xl="13" :xs="24">
<el-card class="card" shadow="never">
<div slot="header">
<span>更新日志</span>
@ -173,8 +173,8 @@
<el-timeline-item
v-for="(activity, index) in activities"
:key="index"
:timestamp="activity.timestamp"
:color="activity.color"
:timestamp="activity.timestamp"
>
{{ activity.content }}
</el-timeline-item>
@ -192,7 +192,6 @@
import { dependencies, devDependencies } from '../../../package.json'
import { getList } from '@/api/changeLog'
import { getNoticeList } from '@/api/notice'
import { getRepos, getStargazers } from '@/api/github'
import Plan from './components/Plan'
import VersionInformation from './components/VersionInformation'
@ -576,18 +575,18 @@
const res = await getNoticeList()
this.noticeList = res.data
/* getRepos({
token: "1061286824f978ea3cf98b7b8ea26fe27ba7cea1",
}).then((res) => {
const per_page = Math.ceil(res.data.stargazers_count / 100);
alert(per_page);
getStargazers({
token: "1061286824f978ea3cf98b7b8ea26fe27ba7cea1",
page: 1,
per_page: res.per_page,
}).then((res) => {
const per_page = Math.ceil(res.data.stargazers_count / 100);
alert(per_page);
getStargazers({
token: "1061286824f978ea3cf98b7b8ea26fe27ba7cea1",
page: 1,
per_page: res.per_page,
}).then((res) => {
alert(JSON.stringify(res));
});
}); */
alert(JSON.stringify(res));
});
}); */
},
},
}

View File

@ -1,16 +1,16 @@
<template>
<div class="login-container">
<el-alert
title="beautiful boys and girls欢迎加入vue-admin-beautifulQQ群972435319"
type="success"
:closable="false"
style="position: fixed"
title="beautiful boys and girls欢迎加入vue-admin-beautifulQQ群972435319"
type="success"
></el-alert>
<el-row>
<el-col :xs="24" :sm="24" :md="12" :lg="16" :xl="16">
<el-col :lg="16" :md="12" :sm="24" :xl="16" :xs="24">
<div style="color: transparent">占位符</div>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-form
ref="form"
:model="form"
@ -20,7 +20,7 @@
>
<div class="title">hello !</div>
<div class="title-tips">欢迎来到{{ title }}</div>
<el-form-item style="margin-top: 40px" prop="username">
<el-form-item prop="username" style="margin-top: 40px">
<span class="svg-container svg-container-admin">
<vab-icon :icon="['fas', 'user']" />
</span>
@ -41,8 +41,8 @@
ref="password"
v-model.trim="form.password"
:type="passwordType"
tabindex="2"
placeholder="请输入密码"
tabindex="2"
@keyup.enter.native="handleLogin"
/>
<span

View File

@ -4,8 +4,8 @@
<vab-query-form-right-panel :span="24">
<el-form
ref="form"
:model="queryForm"
:inline="true"
:model="queryForm"
@submit.native.prevent
>
<el-form-item>
@ -14,8 +14,8 @@
<el-form-item>
<el-button
icon="el-icon-search"
type="primary"
native-type="submit"
type="primary"
@click="handleQuery"
>
查询
@ -28,11 +28,11 @@
<el-col
v-for="(item, index) in list"
:key="index"
:xs="24"
:sm="8"
:md="8"
:lg="8"
:md="8"
:sm="8"
:xl="6"
:xs="24"
>
<el-card :body-style="{ padding: '0px' }" shadow="hover">
<div class="goods-list-card-body">
@ -53,11 +53,11 @@
</el-col>
</el-row>
<el-pagination
background
:current-page="queryForm.pageNo"
:layout="layout"
:page-size="queryForm.pageSize"
:total="total"
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
></el-pagination>

View File

@ -25,7 +25,7 @@
</el-form-item>
</el-form>
<div class="pay-button-group">
<el-button type="primary" :loading="loading" @click="handleSubmit">
<el-button :loading="loading" type="primary" @click="handleSubmit">
提交
</el-button>
<el-button @click="handlePrev">上一步</el-button>

View File

@ -1,15 +1,15 @@
<template>
<div>
<div class="pay-top-content">
<vab-icon class="pay-success" :icon="['fas', 'check-circle']"></vab-icon>
<vab-icon :icon="['fas', 'check-circle']" class="pay-success"></vab-icon>
<p>支付成功</p>
</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
class="pay-bottom"
label-width="120px"
>
<el-form-item label="付款账户:">
{{ infoData.payAccount }}

View File

@ -2,13 +2,13 @@
<div class="pay-container">
<el-row :gutter="20">
<el-col
:xs="24"
:sm="{ span: 20, offset: 2 }"
:md="{ span: 20, offset: 2 }"
:lg="{ span: 14, offset: 5 }"
:md="{ span: 20, offset: 2 }"
:sm="{ span: 20, offset: 2 }"
:xl="{ span: 12, offset: 6 }"
:xs="24"
>
<el-steps :space="200" :active="active" align-center class="steps">
<el-steps :active="active" :space="200" align-center class="steps">
<el-step title="填写转账信息"></el-step>
<el-step title="确认转账信息"></el-step>
<el-step title="完成"></el-step>
@ -33,6 +33,7 @@
import Step1 from './components/Step1'
import Step2 from './components/Step2'
import Step3 from './components/Step3'
export default {
name: 'Pay',
components: { Step1, Step2, Step3 },

View File

@ -4,16 +4,16 @@
演示环境仅做基础功能展示若想实现不同角色的真实菜单配置需将settings.js路由加载模式改为all模式由后端全面接管路由渲染与权限控制
</el-divider>
<el-row>
<el-col :xs="24" :sm="24" :md="8" :lg="4" :xl="4">
<el-col :lg="4" :md="8" :sm="24" :xl="4" :xs="24">
<el-tree
:data="data"
:default-expanded-keys="['root']"
:props="defaultProps"
node-key="id"
:default-expanded-keys="['root']"
@node-click="handleNodeClick"
></el-tree>
</el-col>
<el-col :xs="24" :sm="24" :md="16" :lg="20" :xl="20">
<el-col :lg="20" :md="16" :sm="24" :xl="20" :xs="24">
<vab-query-form>
<vab-query-form-top-panel :span="12">
<el-button icon="el-icon-plus" type="primary" @click="handleEdit">
@ -25,29 +25,29 @@
v-loading="listLoading"
:data="list"
:element-loading-text="elementLoadingText"
row-key="path"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
border
default-expand-all
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
row-key="path"
>
<el-table-column
show-overflow-tooltip
prop="name"
label="name"
prop="name"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="path"
label="路径"
prop="path"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="是否隐藏">
<el-table-column label="是否隐藏" show-overflow-tooltip>
<template #default="{ row }">
<span>
{{ row.hidden ? '是' : '否' }}
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="是否一直显示当前节点">
<el-table-column label="是否一直显示当前节点" show-overflow-tooltip>
<template #default="{ row }">
<span>
{{ row.alwaysShow ? '是' : '否' }}
@ -55,21 +55,21 @@
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="component"
label="vue文件路径"
prop="component"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="redirect"
label="重定向"
prop="redirect"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="meta.title"
label="标题"
prop="meta.title"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="图标">
<el-table-column label="图标" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
<vab-icon
@ -79,28 +79,28 @@
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="是否固定">
<el-table-column label="是否固定" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
{{ row.meta.affix ? '是' : '否' }}
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="是否无缓存">
<el-table-column label="是否无缓存" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
{{ row.meta.noKeepAlive ? '是' : '否' }}
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="badge">
<el-table-column label="badge" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
{{ row.meta.badge }}
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="操作" width="200">
<el-table-column label="操作" show-overflow-tooltip width="200">
<template #default="{ row }">
<el-button type="text" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" @click="handleDelete(row)">删除</el-button>
@ -116,7 +116,7 @@
<script>
import { getRouterList as getList } from '@/api/router'
import { getTree, doDelete } from '@/api/menuManagement'
import { doDelete, getTree } from '@/api/menuManagement'
import Edit from './components/MenuManagementEdit'
export default {

View File

@ -17,8 +17,8 @@
<el-form-item>
<el-input
v-model.trim="queryForm.permission"
placeholder="请输入查询条件"
clearable
placeholder="请输入查询条件"
/>
</el-form-item>
<el-form-item>
@ -38,16 +38,16 @@
>
<el-table-column show-overflow-tooltip type="selection"></el-table-column>
<el-table-column
show-overflow-tooltip
prop="id"
label="id"
prop="id"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="permission"
label="权限码"
prop="permission"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="操作" width="200">
<el-table-column label="操作" show-overflow-tooltip width="200">
<template #default="{ row }">
<el-button type="text" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" @click="handleDelete(row)">删除</el-button>
@ -55,11 +55,11 @@
</el-table-column>
</el-table>
<el-pagination
background
:current-page="queryForm.pageNo"
:page-size="queryForm.pageSize"
:layout="layout"
:page-size="queryForm.pageSize"
:total="total"
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
@ -68,7 +68,7 @@
</template>
<script>
import { getList, doDelete } from '@/api/roleManagement'
import { doDelete, getList } from '@/api/roleManagement'
import Edit from './components/RoleManagementEdit'
export default {

View File

@ -12,8 +12,8 @@
<el-form-item label="密码" prop="password">
<el-input
v-model.trim="form.password"
type="password"
autocomplete="off"
type="password"
></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">

View File

@ -14,8 +14,8 @@
<el-form-item>
<el-input
v-model.trim="queryForm.username"
placeholder="请输入用户名"
clearable
placeholder="请输入用户名"
/>
</el-form-item>
<el-form-item>
@ -35,22 +35,22 @@
>
<el-table-column show-overflow-tooltip type="selection"></el-table-column>
<el-table-column
show-overflow-tooltip
prop="id"
label="id"
prop="id"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="username"
label="用户名"
prop="username"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="email"
label="邮箱"
prop="email"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="权限">
<el-table-column label="权限" show-overflow-tooltip>
<template #default="{ row }">
<el-tag v-for="(item, index) in row.permissions" :key="index">
{{ item }}
@ -59,11 +59,11 @@
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="datatime"
label="修改时间"
prop="datatime"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="操作" width="200">
<el-table-column label="操作" show-overflow-tooltip width="200">
<template #default="{ row }">
<el-button type="text" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" @click="handleDelete(row)">删除</el-button>
@ -71,11 +71,11 @@
</el-table-column>
</el-table>
<el-pagination
background
:current-page="queryForm.pageNo"
:page-size="queryForm.pageSize"
:layout="layout"
:page-size="queryForm.pageSize"
:total="total"
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
@ -84,7 +84,7 @@
</template>
<script>
import { getList, doDelete } from '@/api/userManagement'
import { doDelete, getList } from '@/api/userManagement'
import Edit from './components/UserManagementEdit'
export default {

View File

@ -2,31 +2,31 @@
<div class="register-container">
<el-alert
v-if="nodeEnv !== 'development'"
title="beautiful boys and girls欢迎加入vue-admin-beautifulQQ群972435319"
type="success"
:closable="false"
style="position: fixed"
title="beautiful boys and girls欢迎加入vue-admin-beautifulQQ群972435319"
type="success"
></el-alert>
<el-row>
<el-col :xs="24" :sm="24" :md="12" :lg="16" :xl="16">
<el-col :lg="16" :md="12" :sm="24" :xl="16" :xs="24">
<div style="color: transparent">占位符</div>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-form
ref="registerForm"
:model="form"
class="register-form"
:rules="registerRules"
class="register-form"
size="mini"
>
<el-form-item prop="username">
<el-input
v-model.trim="form.username"
v-focus
auto-complete="off"
placeholder="请输入用户名"
style="margin-top: 20px"
type="text"
placeholder="请输入用户名"
auto-complete="off"
>
<vab-icon slot="prefix" :icon="['fas', 'user-alt']"></vab-icon>
</el-input>
@ -34,11 +34,11 @@
<el-form-item prop="phone">
<el-input
v-model.trim="form.phone"
type="text"
placeholder="请输入手机号"
maxlength="11"
show-word-limit
autocomplete="off"
maxlength="11"
placeholder="请输入手机号"
show-word-limit
type="text"
>
<vab-icon slot="prefix" :icon="['fas', 'mobile-alt']"></vab-icon>
</el-input>
@ -46,8 +46,8 @@
<el-form-item prop="phoneCode" style="position: relative">
<el-input
v-model.trim="form.phoneCode"
type="text"
placeholder="手机验证码"
type="text"
>
<vab-icon
slot="prefix"
@ -55,9 +55,9 @@
></vab-icon>
</el-input>
<el-button
type="primary"
class="show-pwd phone-code"
:disabled="isGetphone"
class="show-pwd phone-code"
type="primary"
@click="getPhoneCode"
>
{{ phoneCode }}
@ -66,9 +66,9 @@
<el-form-item prop="password">
<el-input
v-model.trim="form.password"
type="password"
placeholder="设置密码"
autocomplete="new-password"
placeholder="设置密码"
type="password"
>
<vab-icon slot="prefix" :icon="['fas', 'unlock']"></vab-icon>
</el-input>
@ -93,6 +93,7 @@
<script>
import { isPassword, isPhone } from '@/utils/validate'
import { register } from '@/api/user'
export default {
username: 'Register',
directives: {

View File

@ -1,26 +1,26 @@
<template>
<div class="element-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="18" :lg="18" :xl="16">
<el-col :lg="18" :md="18" :sm="24" :xl="16" :xs="24">
<el-button type="primary" @click="dialogVisible = !dialogVisible">
element全部文档点这里
</el-button>
<el-dialog
:fullscreen="true"
title="element文档"
:visible.sync="dialogVisible"
title="element文档"
>
<iframe
class="element-iframe"
src="https://element.eleme.cn/#/zh-CN/component/installation"
frameborder="0"
src="https://element.eleme.cn/#/zh-CN/component/installation"
></iframe>
</el-dialog>
<el-divider content-position="left">
Tag 标签
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/tag"
target="_blank"
>
文档
</a>
@ -39,8 +39,8 @@
<el-divider content-position="left">
进度条
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/progress"
target="_blank"
>
文档
</a>
@ -50,51 +50,51 @@
<el-progress :percentage="100" status="warning"></el-progress>
<el-progress :percentage="50" status="exception"></el-progress>
<el-progress
:text-inside="true"
:percentage="70"
:stroke-width="26"
:percentage="70"
:text-inside="true"
></el-progress>
<el-progress
:text-inside="true"
:percentage="100"
:stroke-width="24"
:percentage="100"
:text-inside="true"
status="success"
></el-progress>
<el-progress
:text-inside="true"
:stroke-width="22"
:percentage="80"
:stroke-width="22"
:text-inside="true"
status="warning"
></el-progress>
<el-progress
:text-inside="true"
:stroke-width="20"
:percentage="50"
:stroke-width="20"
:text-inside="true"
status="exception"
></el-progress>
<el-progress type="circle" :percentage="0"></el-progress>
<el-progress type="circle" :percentage="25"></el-progress>
<el-progress :percentage="0" type="circle"></el-progress>
<el-progress :percentage="25" type="circle"></el-progress>
<el-progress
type="circle"
:percentage="100"
status="success"
type="circle"
></el-progress>
<el-progress
type="circle"
:percentage="70"
status="warning"
type="circle"
></el-progress>
<el-progress
type="circle"
:percentage="50"
status="exception"
type="circle"
></el-progress>
<el-divider content-position="left">
按钮
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/button"
target="_blank"
>
文档
</a>
@ -106,44 +106,44 @@
<el-button type="warning">警告按钮</el-button>
<el-button type="danger">危险按钮</el-button>
<el-button plain>朴素按钮</el-button>
<el-button type="primary" plain>主要按钮</el-button>
<el-button type="success" plain>成功按钮</el-button>
<el-button type="info" plain>信息按钮</el-button>
<el-button type="warning" plain>警告按钮</el-button>
<el-button type="danger" plain>危险按钮</el-button>
<el-button plain type="primary">主要按钮</el-button>
<el-button plain type="success">成功按钮</el-button>
<el-button plain type="info">信息按钮</el-button>
<el-button plain type="warning">警告按钮</el-button>
<el-button plain type="danger">危险按钮</el-button>
<el-button round>圆角按钮</el-button>
<el-button type="primary" round>主要按钮</el-button>
<el-button type="success" round>成功按钮</el-button>
<el-button type="info" round>信息按钮</el-button>
<el-button type="warning" round>警告按钮</el-button>
<el-button type="danger" round>危险按钮</el-button>
<el-button icon="el-icon-search" circle></el-button>
<el-button type="primary" icon="el-icon-edit" circle></el-button>
<el-button type="success" icon="el-icon-check" circle></el-button>
<el-button type="info" icon="el-icon-message" circle></el-button>
<el-button type="warning" icon="el-icon-star-off" circle></el-button>
<el-button type="danger" icon="el-icon-delete" circle></el-button>
<el-button round type="primary">主要按钮</el-button>
<el-button round type="success">成功按钮</el-button>
<el-button round type="info">信息按钮</el-button>
<el-button round type="warning">警告按钮</el-button>
<el-button round type="danger">危险按钮</el-button>
<el-button circle icon="el-icon-search"></el-button>
<el-button circle icon="el-icon-edit" type="primary"></el-button>
<el-button circle icon="el-icon-check" type="success"></el-button>
<el-button circle icon="el-icon-message" type="info"></el-button>
<el-button circle icon="el-icon-star-off" type="warning"></el-button>
<el-button circle icon="el-icon-delete" type="danger"></el-button>
<el-button disabled>默认按钮</el-button>
<el-button type="primary" disabled>主要按钮</el-button>
<el-button type="success" disabled>成功按钮</el-button>
<el-button type="info" disabled>信息按钮</el-button>
<el-button type="warning" disabled>警告按钮</el-button>
<el-button type="danger" disabled>危险按钮</el-button>
<el-button type="primary" icon="el-icon-edit"></el-button>
<el-button type="primary" icon="el-icon-share"></el-button>
<el-button type="primary" icon="el-icon-delete"></el-button>
<el-button type="primary" icon="el-icon-search">搜索</el-button>
<el-button disabled type="primary">主要按钮</el-button>
<el-button disabled type="success">成功按钮</el-button>
<el-button disabled type="info">信息按钮</el-button>
<el-button disabled type="warning">警告按钮</el-button>
<el-button disabled type="danger">危险按钮</el-button>
<el-button icon="el-icon-edit" type="primary"></el-button>
<el-button icon="el-icon-share" type="primary"></el-button>
<el-button icon="el-icon-delete" type="primary"></el-button>
<el-button icon="el-icon-search" type="primary">搜索</el-button>
<el-button type="primary">
上传
<i class="el-icon-upload el-icon--right"></i>
</el-button>
<el-button type="primary" :loading="true">加载中</el-button>
<el-button :loading="true" type="primary">加载中</el-button>
<el-divider content-position="left">
文字链接
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/link"
target="_blank"
>
文档
</a>
@ -157,18 +157,18 @@
<el-link type="danger">危险链接</el-link>
<el-link type="info">信息链接</el-link>
<el-link disabled>默认链接</el-link>
<el-link type="primary" disabled>主要链接</el-link>
<el-link type="success" disabled>成功链接</el-link>
<el-link type="warning" disabled>警告链接</el-link>
<el-link type="danger" disabled>危险链接</el-link>
<el-link type="info" disabled>信息链接</el-link>
<el-link disabled type="primary">主要链接</el-link>
<el-link disabled type="success">成功链接</el-link>
<el-link disabled type="warning">警告链接</el-link>
<el-link disabled type="danger">危险链接</el-link>
<el-link disabled type="info">信息链接</el-link>
<el-link :underline="false">无下划线</el-link>
<el-link>有下划线</el-link>
<el-divider content-position="left">
头像
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/avatar"
target="_blank"
>
文档
</a>
@ -177,8 +177,8 @@
<el-divider content-position="left">
页头
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/page-header"
target="_blank"
>
文档
</a>
@ -187,8 +187,8 @@
<el-divider content-position="left">
面包屑
<a
target="_blank"
href="https://element.eleme.cn/#/zh-CN/component/breadcrumb"
target="_blank"
>
文档
</a>

View File

@ -1,13 +1,13 @@
<template>
<div class="form-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-form
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="100px"
class="demo-ruleForm"
label-width="100px"
>
<el-form-item label="活动名称" prop="name">
<el-input v-model="ruleForm.name"></el-input>

View File

@ -26,11 +26,11 @@
<el-col
v-for="(item, index) in queryIcon"
:key="index"
:xs="6"
:sm="8"
:md="3"
:lg="2"
:md="3"
:sm="8"
:xl="2"
:xs="6"
>
<el-card
shadow="hover"
@ -47,9 +47,9 @@
<el-pagination
:background="background"
:current-page="queryForm.pageNo"
:layout="layout"
:page-size="queryForm.pageSize"
:page-sizes="[72, 144, 216, 288]"
:layout="layout"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"

View File

@ -20,11 +20,11 @@
<el-col
v-for="(item, index) in queryIcon"
:key="index"
:xs="6"
:sm="8"
:md="3"
:lg="2"
:md="3"
:sm="8"
:xl="2"
:xs="6"
>
<el-card
shadow="hover"
@ -39,9 +39,9 @@
<el-pagination
:background="background"
:current-page="queryForm.pageNo"
:layout="layout"
:page-size="queryForm.pageSize"
:page-sizes="[72, 144, 216, 288]"
:layout="layout"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"

View File

@ -4,16 +4,16 @@
<el-col :span="24">
<el-card shadow="hover">
<el-link
type="primary"
href="https://www.lodashjs.com/"
target="_blank"
type="primary"
>
lodashjs官网
</el-link>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header">
<span>去除数组array中的最后一个元素</span>
@ -26,7 +26,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header">
<span>返回数组 array的第一个元素</span>
@ -39,7 +39,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>合并数组</span></div>
<div class="lodash-content">
@ -50,7 +50,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>左切片</span></div>
<div class="lodash-content">
@ -61,7 +61,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>右切片</span></div>
<div class="lodash-content">
@ -72,7 +72,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>修改拼接</span></div>
<div class="lodash-content">
@ -83,7 +83,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>获取数组最后一个元素</span></div>
<div class="lodash-content">
@ -94,7 +94,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>数组去重</span></div>
<div class="lodash-content">
@ -105,7 +105,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>获取数组的最大值</span></div>
<div class="lodash-content">
@ -116,7 +116,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>获取数组的最小值</span></div>
<div class="lodash-content">
@ -127,7 +127,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header">
<span>四舍五入(保留任意位小数)</span>
@ -140,7 +140,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>数组内数据相加</span></div>
<div class="lodash-content">
@ -151,7 +151,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>返回随机数</span></div>
<div class="lodash-content">
@ -162,7 +162,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>返回数组内的随机数</span></div>
<div class="lodash-content">
@ -173,7 +173,7 @@
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<el-col :lg="8" :md="12" :sm="24" :xl="6" :xs="24">
<el-card shadow="hover">
<div slot="header"><span>事件防抖动</span></div>
<div class="lodash-content">

View File

@ -7,6 +7,7 @@
<script>
import axios from 'axios'
import * as mapv from 'mapv'
export default {
name: 'Map',
components: {},

View File

@ -1,7 +1,7 @@
<template>
<div class="more-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="8">
<el-col :lg="8" :md="24" :sm="24" :xl="8" :xs="24">
<el-card>
<div slot="header">
开源版本
@ -18,8 +18,8 @@
<li>
开源地址
<a
target="_blank"
href="https://github.com/chuzhixin/vue-admin-beautiful"
target="_blank"
>
如果有幸帮到了你麻烦给个star
</a>
@ -29,7 +29,7 @@
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="8">
<el-col :lg="8" :md="24" :sm="24" :xl="8" :xs="24">
<el-card>
<div slot="header">
VIP群

View File

@ -4,7 +4,7 @@
intelligence模式,前端根据permissions拦截路由(演示环境,默认使用此方案)
</el-divider>
<el-form ref="form" :model="form" :inline="true">
<el-form ref="form" :inline="true" :model="form">
<el-form-item label="切换账号">
<el-radio-group v-model="form.account">
<el-radio label="admin">admin</el-radio>
@ -43,40 +43,40 @@
</p>
<br />
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<el-col :lg="12" :md="12" :sm="24" :xl="12" :xs="24">
<el-table
:data="tableData"
row-key="path"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
border
default-expand-all
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
row-key="path"
>
<el-table-column
show-overflow-tooltip
prop="name"
label="name"
prop="name"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="path"
label="path"
prop="path"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="component"
label="component"
prop="component"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="redirect"
label="redirect"
prop="redirect"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="meta.title"
label="标题"
prop="meta.title"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="图标">
<el-table-column label="图标" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
<vab-icon
@ -86,21 +86,21 @@
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="是否固定">
<el-table-column label="是否固定" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
{{ row.meta.affix }}
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="是否无缓存">
<el-table-column label="是否无缓存" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
{{ row.meta.noKeepAlive }}
</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip label="badge">
<el-table-column label="badge" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.meta">
{{ row.meta.badge }}

View File

@ -1,10 +1,10 @@
<template>
<div class="small-components-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<el-col :lg="24" :md="24" :sm="24" :xl="24" :xs="24">
<el-divider content-position="left">小组件</el-divider>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-card shadow="hover">
<div slot="header">
<span>snow</span>
@ -12,7 +12,7 @@
<vab-snow></vab-snow>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-card shadow="hover">
<div slot="header">
<span>profile</span>
@ -31,12 +31,12 @@
></vab-profile>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-card shadow="hover">
<div slot="header">
<span>charge</span>
</div>
<vab-charge :start-val="startVal" :end-val="endVal"></vab-charge>
<vab-charge :end-val="endVal" :start-val="startVal"></vab-charge>
</el-card>
</el-col>
</el-row>

View File

@ -16,8 +16,8 @@
<vab-query-form-right-panel>
<el-form
ref="form"
:model="queryForm"
:inline="true"
:model="queryForm"
@submit.native.prevent
>
<el-form-item>
@ -26,8 +26,8 @@
<el-form-item>
<el-button
icon="el-icon-search"
type="primary"
native-type="submit"
type="primary"
@click="handleQuery"
>
查询
@ -51,22 +51,22 @@
type="selection"
width="55"
></el-table-column>
<el-table-column show-overflow-tooltip label="序号" width="95">
<el-table-column label="序号" show-overflow-tooltip width="95">
<template #default="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="title"
label="标题"
prop="title"
show-overflow-tooltip
></el-table-column>
<el-table-column
show-overflow-tooltip
label="作者"
prop="author"
show-overflow-tooltip
></el-table-column>
<el-table-column show-overflow-tooltip label="头像">
<el-table-column label="头像" show-overflow-tooltip>
<template #default="{ row }">
<el-image
v-if="imgShow"
@ -76,12 +76,12 @@
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
label="点击量"
prop="pageViews"
show-overflow-tooltip
sortable
></el-table-column>
<el-table-column show-overflow-tooltip label="状态">
<el-table-column label="状态" show-overflow-tooltip>
<template #default="{ row }">
<el-tooltip
:content="row.status"
@ -96,12 +96,12 @@
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
label="时间"
prop="datetime"
show-overflow-tooltip
width="200"
></el-table-column>
<el-table-column show-overflow-tooltip label="操作" width="180px">
<el-table-column label="操作" show-overflow-tooltip width="180px">
<template #default="{ row }">
<el-button type="text" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" @click="handleDelete(row)">删除</el-button>
@ -122,8 +122,9 @@
</template>
<script>
import { getList, doDelete } from '@/api/table'
import { doDelete, getList } from '@/api/table'
import TableEdit from './components/TableEdit'
export default {
name: 'ComprehensiveTable',
components: {

View File

@ -1,7 +1,7 @@
<template>
<div class="tree-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<el-col :lg="6" :md="24" :sm="24" :xl="6" :xs="24">
<el-divider content-position="left">常规树</el-divider>
<el-input v-model="filterText" placeholder="输入关键字过滤" />
<el-tree
@ -54,7 +54,7 @@
</template>
</el-tree>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<el-col :lg="6" :md="24" :sm="24" :xl="6" :xs="24">
<el-divider content-position="left">懒加载树</el-divider>
<el-input
v-model.lazy="keyW"
@ -137,7 +137,7 @@
</el-tree>
</div>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<el-col :lg="6" :md="24" :sm="24" :xl="6" :xs="24">
<el-divider content-position="left">单选树</el-divider>
<el-select
ref="singleTree"
@ -167,7 +167,7 @@
</el-option>
</el-select>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<el-col :lg="6" :md="24" :sm="24" :xl="6" :xs="24">
<el-divider content-position="left">多选树</el-divider>
<el-select
v-model="multipleSelectTreeVal"

View File

@ -3,10 +3,10 @@
<el-divider content-position="left">演示环境可能无法模拟上传</el-divider>
<vab-upload
ref="vabUpload"
url="/upload"
name="file"
:limit="50"
:size="2"
name="file"
url="/upload"
></vab-upload>
<el-button type="primary" @click="handleShow({ key: 'value' })">
模拟上传

View File

@ -1,8 +1,8 @@
<template>
<div class="webSocket-container">
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-alert type="success" :closable="false">
<el-col :lg="8" :md="12" :sm="24" :xl="8" :xs="24">
<el-alert :closable="false" type="success">
webSocket连接{{ status }}
</el-alert>
<br />