重构tagview

This commit is contained in:
zouzhibing 2022-06-10 11:01:39 +08:00
parent fea0add957
commit 3096dccd05
47 changed files with 1479 additions and 1406 deletions

View File

@ -1,5 +1,6 @@
<template>
<div class="m-container-layout">
<slot></slot>
</div>
</template>
@ -7,6 +8,10 @@
</script>
<style>
<style lang="scss" scoped>
.m-container-layout{
margin: 20px;
padding: 20px;
background: white;
}
</style>

View File

@ -6,7 +6,7 @@
>
<template #reference>
<el-badge :value="3" class="item-info-pop">
<el-icon><Bell /></el-icon>
<el-icon class="bell"><Bell /></el-icon>
</el-badge>
</template>
<div>
@ -58,4 +58,9 @@
font-size: 13px;
}
}
.transverseMenu{
.bell{
color: white;
}
}
</style>

View File

@ -1,6 +1,7 @@
<template>
<div class="m-screenful">
<el-icon
class="full-screen"
title="全屏"
@click.stop="click"
style="margin-right: 10px;cursor: pointer" ><full-screen /></el-icon>
@ -58,4 +59,9 @@
cursor: pointer;
transition: all .3s;
}
.transverseMenu{
.full-screen{
color: white;
}
}
</style>

View File

@ -1,9 +1,9 @@
<template>
<section class="app-main" >
<section class="app-main" >
<router-view v-slot="{ Component,route }">
<transition name="fade-slide" mode="out-in" appear>
<keep-alive :include="cachedViews">
<component :is="Component" :key="route.name" v-if="isReload"/>
<component :is="Component" :key="route.name" />
</keep-alive>
</transition>
</router-view>
@ -28,7 +28,7 @@
<style lang="scss" scoped>
.app-main{
padding: 20px;
//padding: 20px;
/*padding-top: 110px;*/
//min-height: 100%;
//overflow: auto;
@ -37,7 +37,7 @@
overflow: hidden;
box-sizing: border-box;
//padding-top: 70px;
background: white;
// background: white;
}

View File

@ -2,7 +2,7 @@
<div
class="m-layout-header"
:style="{left:`${mode==='horizontal'?0:isCollapse?'56':'210'}px`}">
<div class="header" :class="{
<div class="header" :class="{
transverseMenu:mode==='horizontal'
}">
<menu-slide v-if="mode==='horizontal'"/>
@ -161,4 +161,5 @@
display: flex;
align-items: center;
}
</style>

View File

@ -98,9 +98,9 @@
z-index: 999;
}
.m-container-content{
padding: 20px;
//padding: 20px;
/*background: #f6f8f9;*/
padding-top: 110px;
padding-top: 93px;
position: relative;
}
.app-main-hide-tag{

View File

@ -6,10 +6,12 @@ import store from './store'
import './permission'
import SvgIcon from './icons/index'
import ElementPlus from 'element-plus'
import UContainerLayout from '@/components/u-container-layout/index.vue'
import 'element-plus/dist/index.css'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
const app = createApp(App)
app.component('svg-icon',SvgIcon)
app.component('u-container-layout',UContainerLayout)
import * as ElIconsModules from '@element-plus/icons-vue'
// 全局注册element-plus icon图标组件
Object.keys(ElIconsModules).forEach((key) => {//循环遍历组件名称

View File

@ -3,280 +3,279 @@
<div :id="id" :class="className" :style="{height:height,width:width}" />
</template>
<script lang="ts" setup>
import 'echarts-liquidfill/src/liquidFill.js'
import {geoJson} from './get.js'
import * as echarts from "echarts";
import {EChartsType} from "echarts/core";
import {onMounted} from "vue";
import {geoJson} from './get.js'
import * as echarts from "echarts";
import {EChartsType} from "echarts/core";
import {onMounted} from "vue";
let props = defineProps({
className: {
type: String,
default: 'chart'
},
config:{
type: Object,
default: ()=>{}
},
id: {
type: String,
default: 'chart'
},
width: {
type: String,
default: '200px'
},
height: {
type: String,
default: '200px'
}
})
var geoGpsMap = [109.1162, 34.2004]
var geoCoordMap = {
"江苏": [118.8062, 31.9208],
'内蒙古': [110.3467, 41.4899],
"辽宁": [123.1238, 42.1216],
"陕西": [109.1162, 34.2004],
"甘肃": [103.5901, 36.3043],
"青海": [101.4038, 36.8207],
"新疆": [87.9236, 43.5883],
"河南": [113.4668, 34.6234],
"西藏": [116.3896, 39.91],
"浙江": [119.5313, 29.8773],
"福建": [119.4543, 25.9222],
"湖南": [113.0823, 28.2568],
"四川": [113.0823, 28.2568],
"云南": [102.9199, 25.4663],
"广东": [113.12244, 23.009505],
"海南": [110.3893, 19.8516]
};
var value = {
'江苏': 10000,
'内蒙古': 10000,
'辽宁': 10000,
'陕西': 10000,
'福建': 10000,
'甘肃': 10000,
'青海': 10000,
'新疆': 10000,
'湖北': 10000,
'浙江': 10000,
'河南': 10000,
'湖南': 10000,
'云南': 10000,
'广东': 10000,
'海南': 10000,
'西藏': 10000,
};
var colors = '#f9b207';
var year = ["长春", "长春", "青岛", "青岛", "成都", "成都"];
var mapData = [];
/*柱子Y名称*/
var categoryData = [];
var barData = [];
for (var key in geoCoordMap) {
mapData.push({
"year": '陕西',
"name": key,
"value": value[key] / 100,
"value1": value[key] / 100,
});
}
mapData.sort(function sortNumber(a, b) {
return a.value - b.value
});
for (var j = 0; j < mapData.length; j++) {
barData.push(mapData[j].value1);
categoryData.push(mapData[j].name);
}
echarts.registerMap('china', geoJson);
var convertData = function(data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
});
}
}
return res;
};
var convertToLineData = function(data, gps) {
var res = [];
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
var toCoord = geoCoordMap[dataItem.name];
// debugger;
var fromCoord = gps; //
// var toCoord = geoGps[Math.random()*3];
if (fromCoord && toCoord) {
res.push([{
coord: fromCoord,
value: dataItem.value
}, {
coord: toCoord,
}]);
}
}
return res;
};
const options = {
backgroundColor: '#001540',
geo: {
show: true,
map: 'china',
roam: true,
zoom: 1,
center: [101.4038, 36.8207],
label: {
emphasis: {
show: false
}
let props = defineProps({
className: {
type: String,
default: 'chart'
},
itemStyle: {
normal: {
borderColor: 'rgba(147, 235, 248, 1)',
borderWidth: 1,
areaColor: {
type: 'radial',
x: 0.5,
y: 0.5,
r: 0.8,
colorStops: [{
offset: 0,
color: 'rgba(147, 235, 248, 0)' // 0%
}, {
offset: 1,
color: 'rgba(147, 235, 248, .2)' // 100%
}],
globalCoord: false // false
},
shadowColor: 'rgba(128, 217, 248, 1)',
// shadowColor: 'rgba(255, 255, 255, 1)',
shadowOffsetX: -2,
shadowOffsetY: 2,
shadowBlur: 10
},
emphasis: {
areaColor: '#389BB7',
borderWidth: 0
}
}
},
series: [
//
{
type: 'map',
map: 'china',
geoIndex: 0,
aspectScale: 0.75, //
showLegendSymbol: false, // legend
label: {
normal: {
show: false
},
emphasis: {
show: false,
textStyle: {
color: '#fff'
}
}
},
roam: true,
itemStyle: {
normal: {
areaColor: '#031525',
borderColor: '#FFFFFF',
},
emphasis: {
areaColor: '#2B91B7'
}
},
animation: false
config:{
type: Object,
default: ()=>{}
},
//
{
// name: 'Top 5',
type: 'effectScatter',
coordinateSystem: 'geo',
data: convertData(mapData.sort(function(a, b) {
return b.value - a.value;
}).slice(0, 20)),
symbolSize: function(val) {
return val[2] / 10;
},
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
hoverAnimation: true,
label: {
normal: {
formatter: '{b}',
position: 'right',
show: true
}
},
itemStyle: {
normal: {
color: colors,
shadowBlur: 10,
shadowColor: colors
}
},
zlevel: 1
id: {
type: String,
default: 'chart'
},
//线
{
type: 'lines',
zlevel: 2,
effect: {
show: true,
period: 4, //
trailLength: 0.02, //[0,1]
symbol: 'arrow', //
symbolSize: 3, //
},
lineStyle: {
normal: {
color: colors,
width: 0.1, //线
opacity: 0.5, //线
curveness: .3 //线
}
},
data: convertToLineData(mapData, geoGpsMap)
width: {
type: String,
default: '300px'
},
height: {
type: String,
default: '200px'
}
]
};
let chart:EChartsType;
const initChart =()=> {
let chart = echarts.init(document.getElementById(props.id))
chart.setOption(options)
return chart
}
onMounted(()=>{
chart = initChart()
window.addEventListener('resize',function (){
chart&&chart.resize()
})
})
var geoGpsMap = [109.1162, 34.2004]
var geoCoordMap = {
"江苏": [118.8062, 31.9208],
'内蒙古': [110.3467, 41.4899],
"辽宁": [123.1238, 42.1216],
"陕西": [109.1162, 34.2004],
"甘肃": [103.5901, 36.3043],
"青海": [101.4038, 36.8207],
"新疆": [87.9236, 43.5883],
"河南": [113.4668, 34.6234],
"西藏": [116.3896, 39.91],
"浙江": [119.5313, 29.8773],
"福建": [119.4543, 25.9222],
"湖南": [113.0823, 28.2568],
"四川": [113.0823, 28.2568],
"云南": [102.9199, 25.4663],
"广东": [113.12244, 23.009505],
"海南": [110.3893, 19.8516]
};
var value = {
'江苏': 10000,
'内蒙古': 10000,
'辽宁': 10000,
'陕西': 10000,
'福建': 10000,
'甘肃': 10000,
'青海': 10000,
'新疆': 10000,
'湖北': 10000,
'浙江': 10000,
'河南': 10000,
'湖南': 10000,
'云南': 10000,
'广东': 10000,
'海南': 10000,
'西藏': 10000,
};
var colors = '#f9b207';
var year = ["长春", "长春", "青岛", "青岛", "成都", "成都"];
var mapData = [];
/*柱子Y名称*/
var categoryData = [];
var barData = [];
for (var key in geoCoordMap) {
mapData.push({
"year": '陕西',
"name": key,
"value": value[key] / 100,
"value1": value[key] / 100,
});
}
mapData.sort(function sortNumber(a, b) {
return a.value - b.value
});
for (var j = 0; j < mapData.length; j++) {
barData.push(mapData[j].value1);
categoryData.push(mapData[j].name);
}
echarts.registerMap('china', geoJson);
var convertData = function(data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
});
}
}
return res;
};
var convertToLineData = function(data, gps) {
var res = [];
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
var toCoord = geoCoordMap[dataItem.name];
// debugger;
var fromCoord = gps; //
// var toCoord = geoGps[Math.random()*3];
if (fromCoord && toCoord) {
res.push([{
coord: fromCoord,
value: dataItem.value
}, {
coord: toCoord,
}]);
}
}
return res;
};
const options = {
backgroundColor: '#001540',
geo: {
show: true,
map: 'china',
roam: true,
zoom: 1,
center: [101.4038, 36.8207],
label: {
emphasis: {
show: false
}
},
itemStyle: {
normal: {
borderColor: 'rgba(147, 235, 248, 1)',
borderWidth: 1,
areaColor: {
type: 'radial',
x: 0.5,
y: 0.5,
r: 0.8,
colorStops: [{
offset: 0,
color: 'rgba(147, 235, 248, 0)' // 0%
}, {
offset: 1,
color: 'rgba(147, 235, 248, .2)' // 100%
}],
globalCoord: false // false
},
shadowColor: 'rgba(128, 217, 248, 1)',
// shadowColor: 'rgba(255, 255, 255, 1)',
shadowOffsetX: -2,
shadowOffsetY: 2,
shadowBlur: 10
},
emphasis: {
areaColor: '#389BB7',
borderWidth: 0
}
}
},
series: [
//
{
type: 'map',
map: 'china',
geoIndex: 0,
aspectScale: 0.75, //
showLegendSymbol: false, // legend
label: {
normal: {
show: false
},
emphasis: {
show: false,
textStyle: {
color: '#fff'
}
}
},
roam: true,
itemStyle: {
normal: {
areaColor: '#031525',
borderColor: '#FFFFFF',
},
emphasis: {
areaColor: '#2B91B7'
}
},
animation: false
},
//
{
// name: 'Top 5',
type: 'effectScatter',
coordinateSystem: 'geo',
data: convertData(mapData.sort(function(a, b) {
return b.value - a.value;
}).slice(0, 20)),
symbolSize: function(val) {
return val[2] / 10;
},
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
hoverAnimation: true,
label: {
normal: {
formatter: '{b}',
position: 'right',
show: true
}
},
itemStyle: {
normal: {
color: colors,
shadowBlur: 10,
shadowColor: colors
}
},
zlevel: 1
},
//线
{
type: 'lines',
zlevel: 2,
effect: {
show: true,
period: 4, //
trailLength: 0.02, //[0,1]
symbol: 'arrow', //
symbolSize: 3, //
},
lineStyle: {
normal: {
color: colors,
width: 0.1, //线
opacity: 0.5, //线
curveness: .3 //线
}
},
data: convertToLineData(mapData, geoGpsMap)
}
]
};
let chart:EChartsType;
const initChart =()=> {
let chart = echarts.init(document.getElementById(props.id))
chart.setOption(options)
return chart
}
onMounted(()=>{
chart = initChart()
window.addEventListener('resize',function (){
chart&&chart.resize()
})
})
</script>

View File

@ -2,6 +2,7 @@
<div class="echarts-map">
<migration-charts height="100%" width="100%" id="migration"/>
</div>
</template>
@ -12,6 +13,6 @@ import MigrationCharts from './components/migration/index.vue'
<style>
.echarts-map{
height: calc(100vh - 150px);
height: calc(100vh - 93px);
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<div style="width: 100%;">
<u-container-layout style="width: 100%;">
<el-row class="row-bg" :gutter="10">
<el-col :xs="24" :sm="12" :lg="8">
<el-card class="box-card">
@ -105,7 +105,7 @@
</div>
</u-container-layout>
</template>
<script setup lang="ts">
import LineCharts from './components/simple/line.vue'

View File

@ -1,9 +1,10 @@
<template>
<div>
<div style="margin-bottom: 15px">聊天内容框功能有发送emoji表情上传图片发送图片内容滚动发送文字</div>
<u-chat-box/>
</div>
<u-container-layout>
<div>
<div style="margin-bottom: 15px">聊天内容框功能有发送emoji表情上传图片发送图片内容滚动发送文字</div>
<u-chat-box/>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,5 +1,5 @@
<template>
<div>
<u-container-layout>
<el-card style="margin-bottom: 20px">
<div style="margin-bottom: 10px">输入内容并点击复制按钮</div>
<el-input v-model="inputData" placeholder="请输入" style="width:400px;max-width:100%;" />
@ -11,7 +11,7 @@
<div style="margin-bottom: 10px">复制成功后可在这粘贴测试</div>
<el-input v-model="testValue" placeholder="请输入" style="width:400px;max-width:100%;" />
</el-card>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import {ref} from 'vue'
@ -22,4 +22,4 @@
const handleCopy = (text, event)=> {
clip(text, event)
}
</script>
</script>

View File

@ -1,130 +1,131 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-button class="item">Default</el-button>
<el-button type="primary" class="item">Primary</el-button>
<el-button type="success" class="item">Success</el-button>
<el-button type="info" class="item">Info</el-button>
<el-button type="warning" class="item">Warning</el-button>
<el-button type="danger" class="item">Danger</el-button>
<el-button class="item">中文</el-button>
<el-button plain class="item">Plain</el-button>
<el-button type="primary" plain class="item">Primary</el-button>
<el-button type="success" plain class="item">Success</el-button>
<el-button type="info" plain class="item">Info</el-button>
<el-button type="warning" plain class="item">Warning</el-button>
<el-button type="danger" plain class="item">Danger</el-button>
<el-button round class="item">Round</el-button>
<el-button type="primary" round class="item">Primary</el-button>
<el-button type="success" round class="item">Success</el-button>
<el-button type="info" round class="item">Info</el-button>
<el-button type="warning" round class="item">Warning</el-button>
<el-button type="danger" round class="item">Danger</el-button>
<el-button :icon="Search" circle class="item"/>
<el-button type="primary" :icon="Edit" circle class="item"/>
<el-button type="success" :icon="Check" circle class="item"/>
<el-button type="info" :icon="Message" circle class="item"/>
<el-button type="warning" :icon="Star" circle class="item"/>
<el-button type="danger" :icon="Delete" circle class="item"/>
</div>
</template>
<div>
<el-button class="item">Default</el-button>
<el-button type="primary" class="item">Primary</el-button>
<el-button type="success" class="item">Success</el-button>
<el-button type="info" class="item">Info</el-button>
<el-button type="warning" class="item">Warning</el-button>
<el-button type="danger" class="item">Danger</el-button>
<el-button class="item">中文</el-button>
<el-button plain class="item">Plain</el-button>
<el-button type="primary" plain class="item">Primary</el-button>
<el-button type="success" plain class="item">Success</el-button>
<el-button type="info" plain class="item">Info</el-button>
<el-button type="warning" plain class="item">Warning</el-button>
<el-button type="danger" plain class="item">Danger</el-button>
<el-button round class="item">Round</el-button>
<el-button type="primary" round class="item">Primary</el-button>
<el-button type="success" round class="item">Success</el-button>
<el-button type="info" round class="item">Info</el-button>
<el-button type="warning" round class="item">Warning</el-button>
<el-button type="danger" round class="item">Danger</el-button>
<el-button :icon="Search" circle class="item"/>
<el-button type="primary" :icon="Edit" circle class="item"/>
<el-button type="success" :icon="Check" circle class="item"/>
<el-button type="info" :icon="Message" circle class="item"/>
<el-button type="warning" :icon="Star" circle class="item"/>
<el-button type="danger" :icon="Delete" circle class="item"/>
</div>
</el-card>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<el-button disabled class="item">Default</el-button>
<el-button type="primary" disabled class="item">Primary</el-button>
<el-button type="success" disabled class="item">Success</el-button>
<el-button type="info" disabled class="item">Info</el-button>
<el-button type="warning" disabled class="item">Warning</el-button>
<el-button type="danger" disabled class="item">Danger</el-button>
<el-button plain disabled class="item">Plain</el-button>
<el-button type="primary" plain disabled class="item">Primary</el-button>
<el-button type="success" plain disabled class="item">Success</el-button>
<el-button type="info" plain disabled class="item"> Info</el-button>
<el-button type="warning" plain disabled class="item">Warning</el-button>
<el-button type="danger" plain disabled class="item">Danger</el-button>
</div>
</template>
<div>
<el-button disabled class="item">Default</el-button>
<el-button type="primary" disabled class="item">Primary</el-button>
<el-button type="success" disabled class="item">Success</el-button>
<el-button type="info" disabled class="item">Info</el-button>
<el-button type="warning" disabled class="item">Warning</el-button>
<el-button type="danger" disabled class="item">Danger</el-button>
<el-button plain disabled class="item">Plain</el-button>
<el-button type="primary" plain disabled class="item">Primary</el-button>
<el-button type="success" plain disabled class="item">Success</el-button>
<el-button type="info" plain disabled class="item"> Info</el-button>
<el-button type="warning" plain disabled class="item">Warning</el-button>
<el-button type="danger" plain disabled class="item">Danger</el-button>
</div>
</el-card>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>文字按钮
</span>
</div>
</template>
<div>
<el-button type="text" class="item">文字按钮</el-button>
<el-button type="text" disabled class="item">文字按钮</el-button>
</div>
</template>
<div>
<el-button type="text" class="item">文字按钮</el-button>
<el-button type="text" disabled class="item">文字按钮</el-button>
</div>
</el-card>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>图标按钮
</span>
</div>
</template>
<div>
<el-button type="primary" :icon="Edit" class="item"/>
<el-button type="primary" :icon="Share" class="item"/>
<el-button type="primary" :icon="Delete" class="item"/>
<el-button type="primary" :icon="Search" class="item">Search</el-button>
<el-button type="primary" class="item">
Upload<el-icon class="el-icon--right"><Upload /></el-icon>
</el-button>
</div>
</template>
<div>
<el-button type="primary" :icon="Edit" class="item"/>
<el-button type="primary" :icon="Share" class="item"/>
<el-button type="primary" :icon="Delete" class="item"/>
<el-button type="primary" :icon="Search" class="item">Search</el-button>
<el-button type="primary" class="item">
Upload<el-icon class="el-icon--right"><Upload /></el-icon>
</el-button>
</div>
</el-card>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>按钮组
</span>
</div>
</template>
<div>
<el-button type="primary" icon="ArrowLeft" class="item">上一页</el-button>
<el-button type="primary" class="item">
下一页<el-icon class="el-icon--right"><ArrowRight /></el-icon>
</el-button>
<el-button type="primary" :icon="Edit" class="item"/>
<el-button type="primary" :icon="Share" class="item"/>
<el-button type="primary" :icon="Delete" class="item"/>
</div>
</template>
<div>
<el-button type="primary" icon="ArrowLeft" class="item">上一页</el-button>
<el-button type="primary" class="item">
下一页<el-icon class="el-icon--right"><ArrowRight /></el-icon>
</el-button>
<el-button type="primary" :icon="Edit" class="item"/>
<el-button type="primary" :icon="Share" class="item"/>
<el-button type="primary" :icon="Delete" class="item"/>
</div>
</el-card>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>加载中
</span>
</div>
</template>
<div>
<el-button type="primary" loading class="item">Loading</el-button>
<el-button type="primary" loading-icon="Eleme" loading class="item">Loading</el-button>
<el-button type="primary" loading class="item">
<template #loading>
<div class="custom-loading">
<svg class="circular" viewBox="-10, -10, 50, 50">
<path
class="path"
d="
</div>
</template>
<div>
<el-button type="primary" loading class="item">Loading</el-button>
<el-button type="primary" loading-icon="Eleme" loading class="item">Loading</el-button>
<el-button type="primary" loading class="item">
<template #loading>
<div class="custom-loading">
<svg class="circular" viewBox="-10, -10, 50, 50">
<path
class="path"
d="
M 30 15
L 28 17
M 25.61 25.61
@ -132,35 +133,37 @@
A 15 15, 0, 1, 1, 27.99 7.5
L 15 15
"
style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"
/>
</svg>
</div>
</template>
Loading
</el-button>
</div>
</el-card>
style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"
/>
</svg>
</div>
</template>
Loading
</el-button>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>自定义颜色
</span>
</div>
</template>
<div>
<el-button color="#626aef" class="item">Default</el-button>
<el-button color="#626aef" plain class="item">Plain</el-button>
</div>
</template>
<div>
<el-button color="#626aef" class="item">Default</el-button>
<el-button color="#626aef" plain class="item">Plain</el-button>
<el-button color="#626aef" disabled class="item">Disabled</el-button>
<el-button color="#626aef" disabled plain class="item"
>Disabled Plain</el-button
>
</div>
</el-card>
</div>
</u-container-layout>
<el-button color="#626aef" disabled class="item">Disabled</el-button>
<el-button color="#626aef" disabled plain class="item"
>Disabled Plain</el-button
>
</div>
</el-card>
</div>
</template>
<script lang="ts" setup>
import {

View File

@ -1,105 +1,106 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" />
<el-checkbox v-model="checked2" label="备选项1" />
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" />
<el-checkbox v-model="checked2" label="备选项1" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<el-checkbox v-model="checked1" disabled>备选项11</el-checkbox>
<el-checkbox v-model="checked2">备选项2</el-checkbox>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox v-model="checked1" disabled>备选项11</el-checkbox>
<el-checkbox v-model="checked2">备选项2</el-checkbox>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>多选框组
</span>
</div>
</template>
<div>
<el-checkbox-group v-model="checkList">
<el-checkbox label="备选项 A" />
<el-checkbox label="备选项 B" />
<el-checkbox label="备选项 C" />
<el-checkbox label="禁用" disabled />
<el-checkbox label="选中且禁用" disabled />
</el-checkbox-group>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox-group v-model="checkList">
<el-checkbox label="备选项 A" />
<el-checkbox label="备选项 B" />
<el-checkbox label="备选项 C" />
<el-checkbox label="禁用" disabled />
<el-checkbox label="选中且禁用" disabled />
</el-checkbox-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>中间状态
</span>
</div>
</template>
<div>
<el-checkbox
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>全选</el-checkbox
>
<el-checkbox-group
v-model="checkedCities"
@change="handleCheckedCitiesChange"
>
<el-checkbox v-for="city in cities" :key="city" :label="city">{{
city
}}</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>全选</el-checkbox
>
<el-checkbox-group
v-model="checkedCities"
@change="handleCheckedCitiesChange"
>
<el-checkbox v-for="city in cities" :key="city" :label="city">{{
city
}}</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>按钮样式
</span>
</div>
</template>
<div>
<el-checkbox-group v-model="checkboxGroup1" >
<el-checkbox-button v-for="city in cities" :key="city" :label="city">
{{ city }}
</el-checkbox-button>
</el-checkbox-group>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox-group v-model="checkboxGroup1" >
<el-checkbox-button v-for="city in cities" :key="city" :label="city">
{{ city }}
</el-checkbox-button>
</el-checkbox-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>带有边框
</span>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" border />
<el-checkbox v-model="checked2" label="备选项2" border />
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" border />
<el-checkbox v-model="checked2" label="备选项2" border />
</div>
</el-card>
</div>
</u-container-layout>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

View File

@ -1,80 +1,83 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>日期和时间点
</span>
</div>
</template>
<div>
<el-date-picker
v-model="value1"
type="datetime"
placeholder="选择日期时间点"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-date-picker
v-model="value1"
type="datetime"
placeholder="选择日期时间点"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>日期时间格式
</span>
</div>
</template>
<div>
<el-date-picker
v-model="value4"
type="datetime"
placeholder="选择时间"
format="YYYY/MM/DD hh:mm:ss"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-date-picker
v-model="value4"
type="datetime"
placeholder="选择时间"
format="YYYY/MM/DD hh:mm:ss"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>日期和时间范围
</span>
</div>
</template>
<div>
<el-date-picker
:shortcuts="shortcuts1"
v-model="value3"
type="datetimerange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-date-picker
:shortcuts="shortcuts1"
v-model="value3"
type="datetimerange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>默认的起始与结束时刻
</span>
</div>
</template>
<div>
<el-date-picker
v-model="value5"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="defaultTime1"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-date-picker
v-model="value5"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="defaultTime1"
/>
</div>
</el-card>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

View File

@ -1,7 +1,7 @@
<template>
<div>
<u-container-layout>
<zb-pipeline/>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,77 +1,80 @@
<template>
<div style="max-width: 800px">
<el-form
ref="ruleFormRef"
:model="ruleForm"
:rules="rules"
label-width="120px"
class="demo-ruleForm"
:size="formSize"
>
<el-form-item label="活动名称" prop="name">
<el-input v-model="ruleForm.name" />
</el-form-item>
<el-form-item label="活动区域" prop="region">
<el-select v-model="ruleForm.region" placeholder="活动区域">
<el-option label="区域1" value="上海" />
<el-option label="区域2" value="北京" />
</el-select>
</el-form-item>
<el-form-item label="即时配送" required>
<el-col :span="11">
<el-form-item prop="date1">
<el-date-picker
v-model="ruleForm.date1"
type="date"
placeholder="选择时间"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col class="text-center" :span="2" style="text-align: center">
<span class="text-gray-500" >-</span>
</el-col>
<el-col :span="11">
<el-form-item prop="date2">
<el-time-picker
v-model="ruleForm.date2"
placeholder="选择时间"
style="width: 100%"
/>
</el-form-item>
</el-col>
</el-form-item>
<el-form-item label="即时配送" prop="delivery">
<el-switch v-model="ruleForm.delivery" />
</el-form-item>
<el-form-item label="活动性质" prop="type">
<el-checkbox-group v-model="ruleForm.type">
<el-checkbox label="美食/餐厅线上活动" name="type" />
<el-checkbox label="地推活动" name="type" />
<el-checkbox label="线下主题活动" name="type" />
<el-checkbox label="单纯品牌曝光" name="type" />
</el-checkbox-group>
</el-form-item>
<el-form-item label="特殊资源" prop="resource">
<el-radio-group v-model="ruleForm.resource">
<el-radio label="线上品牌商赞助" />
<el-radio label="线下场地免费" />
</el-radio-group>
</el-form-item>
<el-form-item label="上传图片" prop="img">
<u-upload v-model="ruleForm.img"/>
</el-form-item>
<el-form-item label="备注" prop="desc">
<el-input v-model="ruleForm.desc" type="textarea" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(ruleFormRef)"
>立即创建</el-button
>
<el-button @click="resetForm(ruleFormRef)">重置</el-button>
</el-form-item>
</el-form>
</div>
<u-container-layout>
<div style="max-width: 800px">
<el-form
ref="ruleFormRef"
:model="ruleForm"
:rules="rules"
label-width="120px"
class="demo-ruleForm"
:size="formSize"
>
<el-form-item label="活动名称" prop="name">
<el-input v-model="ruleForm.name" />
</el-form-item>
<el-form-item label="活动区域" prop="region">
<el-select v-model="ruleForm.region" placeholder="活动区域">
<el-option label="区域1" value="上海" />
<el-option label="区域2" value="北京" />
</el-select>
</el-form-item>
<el-form-item label="即时配送" required>
<el-col :span="11">
<el-form-item prop="date1">
<el-date-picker
v-model="ruleForm.date1"
type="date"
placeholder="选择时间"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col class="text-center" :span="2" style="text-align: center">
<span class="text-gray-500" >-</span>
</el-col>
<el-col :span="11">
<el-form-item prop="date2">
<el-time-picker
v-model="ruleForm.date2"
placeholder="选择时间"
style="width: 100%"
/>
</el-form-item>
</el-col>
</el-form-item>
<el-form-item label="即时配送" prop="delivery">
<el-switch v-model="ruleForm.delivery" />
</el-form-item>
<el-form-item label="活动性质" prop="type">
<el-checkbox-group v-model="ruleForm.type">
<el-checkbox label="美食/餐厅线上活动" name="type" />
<el-checkbox label="地推活动" name="type" />
<el-checkbox label="线下主题活动" name="type" />
<el-checkbox label="单纯品牌曝光" name="type" />
</el-checkbox-group>
</el-form-item>
<el-form-item label="特殊资源" prop="resource">
<el-radio-group v-model="ruleForm.resource">
<el-radio label="线上品牌商赞助" />
<el-radio label="线下场地免费" />
</el-radio-group>
</el-form-item>
<el-form-item label="上传图片" prop="img">
<u-upload v-model="ruleForm.img"/>
</el-form-item>
<el-form-item label="备注" prop="desc">
<el-input v-model="ruleForm.desc" type="textarea" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(ruleFormRef)"
>立即创建</el-button
>
<el-button @click="resetForm(ruleFormRef)">重置</el-button>
</el-form-item>
</el-form>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,113 +1,116 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-input v-model="input" placeholder="请输入内容" />
</div>
</el-card>
</div>
</template>
<div>
<el-input v-model="input" placeholder="请输入内容" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<el-input v-model="input" disabled placeholder="请输入内容" />
</div>
</el-card>
</div>
</template>
<div>
<el-input v-model="input" disabled placeholder="请输入内容" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>一键清空
</span>
</div>
</template>
<div>
<el-input v-model="input" placeholder="请输入内容" clearable />
</div>
</el-card>
</div>
</template>
<div>
<el-input v-model="input" placeholder="请输入内容" clearable />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>格式化
</span>
</div>
</template>
<div>
<el-input
v-model="input"
placeholder="请输入内容"
:formatter="(value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-input
v-model="input"
placeholder="请输入内容"
:formatter="(value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>密码框
</span>
</div>
</template>
<div>
<el-input
v-model="input"
type="password"
placeholder="请输入密码"
show-password
/>
</div>
</el-card>
</div>
</template>
<div>
<el-input
v-model="input"
type="password"
placeholder="请输入密码"
show-password
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span> icon 的输入框
</span>
</div>
</template>
<div>
<el-input
v-model="input"
placeholder="请输入内容"
:suffix-icon="Calendar"
/>
<el-input
v-model="input2"
placeholder="请输入内容"
:prefix-icon="Search"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
</div>
</template>
<div>
<el-input
v-model="input"
placeholder="请输入内容"
:suffix-icon="Calendar"
/>
<el-input
v-model="input2"
placeholder="请输入内容"
:prefix-icon="Search"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>文本域
</span>
</div>
</template>
<div>
<el-input
v-model="textarea"
:rows="2"
type="textarea"
placeholder="请输入内容"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-input
v-model="textarea"
:rows="2"
type="textarea"
placeholder="请输入内容"
/>
</div>
</el-card>
</div>
</u-container-layout>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

View File

@ -1,86 +1,89 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
</div>
</el-card>
</div>
</template>
<div>
<el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<el-input-number v-model="num" :disabled="true" />
</div>
</el-card>
</div>
</template>
<div>
<el-input-number v-model="num" :disabled="true" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>步进
</span>
</div>
</template>
<div>
<el-input-number v-model="num" :step="2" />
</div>
</el-card>
</div>
</template>
<div>
<el-input-number v-model="num" :step="2" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>严格步进
</span>
</div>
</template>
<div>
<el-input-number v-model="num" :step="2" step-strictly />
</div>
</el-card>
</div>
</template>
<div>
<el-input-number v-model="num" :step="2" step-strictly />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>精度
</span>
</div>
</template>
<div>
<el-input-number v-model="num" :precision="2" :step="0.1" :max="10" />
</div>
</el-card>
</div>
</template>
<div>
<el-input-number v-model="num" :precision="2" :step="0.1" :max="10" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>按钮位置
</span>
</div>
</template>
<div>
<el-input-number
v-model="num"
class="mx-4"
:min="1"
:max="10"
controls-position="right"
@change="handleChange"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-input-number
v-model="num"
class="mx-4"
:min="1"
:max="10"
controls-position="right"
@change="handleChange"
/>
</div>
</el-card>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

View File

@ -1,69 +1,72 @@
<template>
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-link href="https://element.eleme.io" target="_blank">默认链接</el-link>
<el-link type="primary">主要链接</el-link>
<el-link type="success">成功链接</el-link>
<el-link type="warning">警告链接</el-link>
<el-link type="danger">危险链接</el-link>
<el-link type="info">信息链接</el-link>
</div>
</el-card>
</div>
</template>
<div>
<el-link href="https://element.eleme.io" target="_blank">默认链接</el-link>
<el-link type="primary">主要链接</el-link>
<el-link type="success">成功链接</el-link>
<el-link type="warning">警告链接</el-link>
<el-link type="danger">危险链接</el-link>
<el-link type="info">信息链接</el-link>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<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>
</div>
</el-card>
</div>
</template>
<div>
<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>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>下划线
</span>
</div>
</template>
<div>
<el-link :underline="false">无下划线</el-link>
<el-link>有下划线</el-link>
</div>
</el-card>
</div>
</template>
<div>
<el-link :underline="false">无下划线</el-link>
<el-link>有下划线</el-link>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>图标
</span>
</div>
</template>
<div>
<el-link :icon="Edit">编辑</el-link>
<el-link>
查看<el-icon class="el-icon--right"><icon-view /></el-icon>
</el-link>
</div>
</el-card>
</div>
</template>
<div>
<el-link :icon="Edit">编辑</el-link>
<el-link>
查看<el-icon class="el-icon--right"><icon-view /></el-icon>
</el-link>
</div>
</el-card>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import { Edit, View as IconView } from '@element-plus/icons-vue'

View File

@ -1,81 +1,84 @@
<template>
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-radio v-model="radio4" label="1" >备选项</el-radio>
<el-radio v-model="radio4" label="2">备选项1</el-radio>
</div>
</el-card>
</div>
</template>
<div>
<el-radio v-model="radio4" label="1" >备选项</el-radio>
<el-radio v-model="radio4" label="2">备选项1</el-radio>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<el-radio v-model="radio1" disabled label="disabled">备选项 1</el-radio>
<el-radio v-model="radio1" disabled label="selected and disabled"
>备选项 2</el-radio
>
</div>
</el-card>
</div>
</template>
<div>
<el-radio v-model="radio1" disabled label="disabled">备选项 1</el-radio>
<el-radio v-model="radio1" disabled label="selected and disabled"
>备选项 2</el-radio
>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>单选框组
</span>
</div>
</template>
<div>
<el-radio-group v-model="radio">
<el-radio :label="3">备选项 1</el-radio>
<el-radio :label="6">备选项 2</el-radio>
<el-radio :label="9">备选项 3</el-radio>
</el-radio-group>
</div>
</el-card>
</div>
</template>
<div>
<el-radio-group v-model="radio">
<el-radio :label="3">备选项 1</el-radio>
<el-radio :label="6">备选项 2</el-radio>
<el-radio :label="9">备选项 3</el-radio>
</el-radio-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>按钮样式
</span>
</div>
</template>
<div>
<el-radio-group v-model="radio2">
<el-radio-button label="上海" />
<el-radio-button label="北京" />
<el-radio-button label="广州" />
<el-radio-button label="深圳" />
</el-radio-group>
</div>
</el-card>
</div>
</template>
<div>
<el-radio-group v-model="radio2">
<el-radio-button label="上海" />
<el-radio-button label="北京" />
<el-radio-button label="广州" />
<el-radio-button label="深圳" />
</el-radio-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>带有边框
</span>
</div>
</template>
<div>
<el-radio v-model="radio3" label="1" border>备选项1</el-radio>
<el-radio v-model="radio3" label="2" border>备选项2</el-radio>
</div>
</el-card>
</div>
</template>
<div>
<el-radio v-model="radio3" label="1" border>备选项1</el-radio>
<el-radio v-model="radio3" label="2" border>备选项2</el-radio>
</div>
</el-card>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import { Edit, View as IconView } from '@element-plus/icons-vue'

View File

@ -1,10 +1,13 @@
<template>
<ul v-infinite-scroll="load" class="infinite-list" style="overflow: auto">
<li v-for="i in count" :key="i" class="infinite-list-item">{{ i }}</li>
<div v-if="isLoading"
style="height: 50px;width: 100%;display: flex;align-items: center;justify-content: center"
>正在加载中...</div>
</ul>
<u-container-layout>
<ul v-infinite-scroll="load" class="infinite-list" style="overflow: auto">
<li v-for="i in count" :key="i" class="infinite-list-item">{{ i }}</li>
<div v-if="isLoading"
style="height: 50px;width: 100%;display: flex;align-items: center;justify-content: center"
>正在加载中...</div>
</ul>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,105 +1,108 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>基础用法
</span>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" />
<el-checkbox v-model="checked2" label="备选项1" />
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" />
<el-checkbox v-model="checked2" label="备选项1" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>禁用状态
</span>
</div>
</template>
<div>
<el-checkbox v-model="checked1" disabled>备选项11</el-checkbox>
<el-checkbox v-model="checked2">备选项2</el-checkbox>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox v-model="checked1" disabled>备选项11</el-checkbox>
<el-checkbox v-model="checked2">备选项2</el-checkbox>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>多选框组
</span>
</div>
</template>
<div>
<el-checkbox-group v-model="checkList">
<el-checkbox label="备选项 A" />
<el-checkbox label="备选项 B" />
<el-checkbox label="备选项 C" />
<el-checkbox label="禁用" disabled />
<el-checkbox label="选中且禁用" disabled />
</el-checkbox-group>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox-group v-model="checkList">
<el-checkbox label="备选项 A" />
<el-checkbox label="备选项 B" />
<el-checkbox label="备选项 C" />
<el-checkbox label="禁用" disabled />
<el-checkbox label="选中且禁用" disabled />
</el-checkbox-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>中间状态
</span>
</div>
</template>
<div>
<el-checkbox
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>全选</el-checkbox
>
<el-checkbox-group
v-model="checkedCities"
@change="handleCheckedCitiesChange"
>
<el-checkbox v-for="city in cities" :key="city" :label="city">{{
city
}}</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>全选</el-checkbox
>
<el-checkbox-group
v-model="checkedCities"
@change="handleCheckedCitiesChange"
>
<el-checkbox v-for="city in cities" :key="city" :label="city">{{
city
}}</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>按钮样式
</span>
</div>
</template>
<div>
<el-checkbox-group v-model="checkboxGroup1" >
<el-checkbox-button v-for="city in cities" :key="city" :label="city">
{{ city }}
</el-checkbox-button>
</el-checkbox-group>
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox-group v-model="checkboxGroup1" >
<el-checkbox-button v-for="city in cities" :key="city" :label="city">
{{ city }}
</el-checkbox-button>
</el-checkbox-group>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>带有边框
</span>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" border />
<el-checkbox v-model="checked2" label="备选项2" border />
</div>
</el-card>
</div>
</template>
<div>
<el-checkbox v-model="checked1" label="备选项1" border />
<el-checkbox v-model="checked2" label="备选项2" border />
</div>
</el-card>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

View File

@ -1,56 +1,59 @@
<template>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<u-container-layout>
<div>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>任意时间点
</span>
</div>
</template>
<div>
<el-time-picker v-model="value4" placeholder="选择时间" />
</div>
</el-card>
</div>
</template>
<div>
<el-time-picker v-model="value4" placeholder="选择时间" />
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>限制时间选择范围
</span>
</div>
</template>
<div>
<el-time-picker
v-model="value1"
:disabled-hours="disabledHours"
:disabled-minutes="disabledMinutes"
:disabled-seconds="disabledSeconds"
placeholder="选择时间"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-time-picker
v-model="value1"
:disabled-hours="disabledHours"
:disabled-minutes="disabledMinutes"
:disabled-seconds="disabledSeconds"
placeholder="选择时间"
/>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>任意时间范围
</span>
</div>
</template>
<div>
<el-time-picker
v-model="value3"
is-range
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</div>
</el-card>
</div>
</template>
<div>
<el-time-picker
v-model="value3"
is-range
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</div>
</el-card>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

View File

@ -1,65 +1,68 @@
<template>
<u-container-layout>
<div>
<el-card style="margin-bottom: 10px">
<template #header>
<span>按钮上传</span>
</template>
<div class="demo-image__preview">
<div
class="upload-list"
v-for="item,index in fileList">
<el-image
@click.stop="privew(index)"
style="width: 100%; height: 100%"
:src="item"
:preview-src-list="fileList"
:initial-index="initialIndex"
fit="cover"
/>
</div>
</div>
<el-upload action="/" multiple :before-upload="beforeUploadAction">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-card>
<el-card>
<template #header>
<span>多图片上传</span>
</template>
<u-upload @update="update" v-model="imgs"/>
</el-card>
<el-card style="margin-bottom: 10px">
<template #header>
<span>按钮上传</span>
</template>
<div class="demo-image__preview">
<div
class="upload-list"
v-for="item,index in fileList">
<el-image
@click.stop="privew(index)"
style="width: 100%; height: 100%"
:src="item"
:preview-src-list="fileList"
:initial-index="initialIndex"
fit="cover"
/>
</div>
</div>
<el-upload action="/" multiple :before-upload="beforeUploadAction">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-card>
<el-card>
<template #header>
<span>多图片上传</span>
</template>
<u-upload @update="update" v-model="imgs"/>
</el-card>
<el-card>
<template #header>
<span>拖拽上传</span>
</template>
<div
class="upload-list"
v-for="item,index in fileList1">
<el-image
@click.stop="privew1(index)"
style="width: 100%; height: 100%"
:src="item"
:preview-src-list="fileList1"
:initial-index="initialIndex1"
fit="cover"
/>
</div>
<el-upload
class="upload-demo"
drag
:before-upload="beforeUploadAction1"
action="/"
multiple
>
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
<div class="el-upload__text">
拖拽上传 <em>或者点击上传</em>
</div>
</el-upload>
</el-card>
<el-card>
<template #header>
<span>拖拽上传</span>
</template>
<div
class="upload-list"
v-for="item,index in fileList1">
<el-image
@click.stop="privew1(index)"
style="width: 100%; height: 100%"
:src="item"
:preview-src-list="fileList1"
:initial-index="initialIndex1"
fit="cover"
/>
</div>
<el-upload
class="upload-demo"
drag
:before-upload="beforeUploadAction1"
action="/"
multiple
>
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
<div class="el-upload__text">
拖拽上传 <em>或者点击上传</em>
</div>
</el-upload>
</el-card>
</div>
</u-container-layout>
</template>
<script setup lang="ts">

View File

@ -1,6 +1,6 @@
<template>
<div class="m-error-page">
<u-container-layout class="m-error-page">
<div class="error-page">
<div class="img">
<img :src="fourPng" style="width: 100%">
@ -11,7 +11,7 @@
<el-button type="primary" @click="goBackHome">返回首页</el-button></div>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
@ -67,4 +67,4 @@
animation-fill-mode: forwards;
}
}
</style>
</style>

View File

@ -1,6 +1,6 @@
<template>
<div class="m-error-page">
<u-container-layout class="m-error-page">
<div class="error-page">
<div class="img">
<img :src="fourPng" style="width: 100%">
@ -12,7 +12,7 @@
<el-button type="primary" @click="goBackHome">返回首页</el-button></div>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
@ -68,4 +68,4 @@
animation-fill-mode: forwards;
}
}
</style>
</style>

View File

@ -1,5 +1,5 @@
<template>
<div>
<u-container-layout>
<div style="margin-bottom: 15px;display: flex;align-items: center">
<el-input v-model="input" placeholder="请输入文件名" style="width: 200px;margin-right: 10px"/>
<div>
@ -18,7 +18,7 @@
<el-table-column :prop="item.name" :label="item.label" :width="item.width" />
</template>
</el-table>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,6 +1,6 @@
<template>
<div>
<u-container-layout>
<div style="margin-bottom: 15px">
<el-input v-model="input" placeholder="请输入文件名" style="width: 200px;margin-right: 10px"/>
<el-button @click="exportExcelAction" type="primary">
@ -20,7 +20,7 @@
<el-table-column :prop="item.name" :label="item.label" :width="item.width" v-else/>
</template>
</el-table>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,5 +1,5 @@
<template>
<div>
<u-container-layout>
<div style="margin-bottom: 15px;display: flex;align-items: center">
<el-input v-model="input" placeholder="请输入文件名" style="width: 200px;margin-right: 10px"/>
<el-button @click="exportExcelAction" type="primary">
@ -11,7 +11,7 @@
<el-table-column :prop="item.name" :label="item.label" :width="item.width" />
</template>
</el-table>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,5 +1,5 @@
<template>
<div class="m-upload-excel">
<u-container-layout class="m-upload-excel">
<el-upload
style="width: 100%"
class="upload-demo"
@ -19,7 +19,7 @@
</el-table-column>
</el-table>
</div>
</div>
</u-container-layout>
</template>
<script setup lang="ts">

View File

@ -1,115 +1,118 @@
<template>
<div style="width: 100%;">
<el-row class="row-bg" :gutter="10">
<el-col :xs="24" :sm="12" :lg="8">
<el-card class="box-card" style="height: 100%">
<div class="personal">
<u-container-layout>
<div>
<el-row class="row-bg" :gutter="10">
<el-col :xs="24" :sm="12" :lg="8">
<el-card class="box-card" style="height: 100%">
<div class="personal">
<div>
<el-avatar :size="50" :src="circleUrl" />
</div>
<div class="name"></div>
<div class="description"></div>
<div class="list">
<div>昵称小狼</div>
<div>职业前端</div>
<div>公司小公司</div>
<div>年龄~~</div>
<div>性别</div>
<div>现住址中国-浙江-杭州</div>
<div>邮箱1135957121@qq.com</div>
<div>技术栈JavaScriptHTMLCSSVueNodeReact</div>
</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>个性标签</h5></div>
<div>
<el-tag style="margin-right: 10px">怕麻烦</el-tag>
<el-tag style="margin-right: 10px">健身运动</el-tag>
<el-tag style="margin-right: 10px">睡觉</el-tag>
<el-tag style="margin-right: 10px">漫威</el-tag>
<el-tag>向往</el-tag>
</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>最喜欢的一句话</h5></div>
<div>---------- 开心最重要</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>如果对你有帮助的话可以麻烦点一颗 star! 你的鼓励是我继续优化的动力~~</h5></div>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="12" :lg="16">
<el-row class="custom" :gutter="10" >
<el-col :xs="24" :sm="12" :lg="8">
<el-card style="margin-bottom: 10px">
<div class="grid-content">
<div class="left"><el-icon style="font-size: 24px;color: white"><user /></el-icon></div>
<div class="right">
<h2 style="color: #2d8cf0"><count-to :start-val="0" :end-val="5268" :duration="2000"
:autoplay="true" ></count-to></h2>
<div>用户访问量
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="12" :lg="8">
<el-card style="margin-bottom: 10px">
<div class="grid-content" >
<div class="left" style="background: #64d572"><el-icon style="font-size: 24px;color: white"><user /></el-icon></div>
<div class="right">
<h2 style="color: #64d572"><count-to :start-val="0" :end-val="9599" :duration="2000"
:autoplay="true" ></count-to></h2>
<div>系统消息
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="12" :lg="8">
<el-card style="margin-bottom: 10px">
<div class="grid-content" >
<div class="left" style="background: #f25e43"><el-icon style="font-size: 24px;color: white"><user /></el-icon></div>
<div class="right">
<h2 style="color: #f25e43"><count-to :start-val="0" :end-val="595453" :duration="2000"
:autoplay="true" ></count-to></h2>
<div>数量
</div>
</div>
</div>
</el-card>
</el-col>
</el-row>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>系列开源产品</span>
</div>
</template>
<div style="display: flex">
<el-card style="flex: 1;margin-right: 20px;cursor: pointer" class="card-item" @click="goTo('https://ext.dcloud.net.cn/plugin?id=7511')">
<div style="color: white;margin-bottom: 10px"><h3>zb-table</h3></div>
<div style="font-size: 12px;color: white">uniapp 表格组件 支持固定表头和首列上拉加载更多及固定多列表格自适应内容排序多选checkbox可点击删除编辑合计功能兼容多端</div>
</el-card>
<el-card style="flex: 1;cursor: pointer" class="card-item" @click="goTo('https://github.com/zouzhibin/vue-admin-perfect')">
<div style="color: white;margin-bottom: 10px"><h3>vue-admin-perfect</h3></div>
<div style="font-size: 12px;color: white">系统基于vue3+vuex+ element-plus+ts后台管理系统</div>
</el-card>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>每周用户活跃量</span>
</div>
</template>
<div>
<el-avatar :size="50" :src="circleUrl" />
<bar-charts height="300px" width="100%" id="bar1"></bar-charts>
</div>
<div class="name"></div>
<div class="description"></div>
<div class="list">
<div>昵称小狼</div>
<div>职业前端</div>
<div>公司小公司</div>
<div>年龄~~</div>
<div>性别</div>
<div>现住址中国-浙江-杭州</div>
<div>邮箱1135957121@qq.com</div>
<div>技术栈JavaScriptHTMLCSSVueNodeReact</div>
</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>个性标签</h5></div>
<div>
<el-tag style="margin-right: 10px">怕麻烦</el-tag>
<el-tag style="margin-right: 10px">健身运动</el-tag>
<el-tag style="margin-right: 10px">睡觉</el-tag>
<el-tag style="margin-right: 10px">漫威</el-tag>
<el-tag>向往</el-tag>
</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>最喜欢的一句话</h5></div>
<div>---------- 开心最重要</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>如果对你有帮助的话可以麻烦点一颗 star! 你的鼓励是我继续优化的动力~~</h5></div>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="12" :lg="16">
<el-row class="custom" :gutter="10" >
<el-col :xs="24" :sm="12" :lg="8">
<el-card style="margin-bottom: 10px">
<div class="grid-content">
<div class="left"><el-icon style="font-size: 24px;color: white"><user /></el-icon></div>
<div class="right">
<h2 style="color: #2d8cf0"><count-to :start-val="0" :end-val="5268" :duration="2000"
:autoplay="true" ></count-to></h2>
<div>用户访问量
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="12" :lg="8">
<el-card style="margin-bottom: 10px">
<div class="grid-content" >
<div class="left" style="background: #64d572"><el-icon style="font-size: 24px;color: white"><user /></el-icon></div>
<div class="right">
<h2 style="color: #64d572"><count-to :start-val="0" :end-val="9599" :duration="2000"
:autoplay="true" ></count-to></h2>
<div>系统消息
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="12" :lg="8">
<el-card style="margin-bottom: 10px">
<div class="grid-content" >
<div class="left" style="background: #f25e43"><el-icon style="font-size: 24px;color: white"><user /></el-icon></div>
<div class="right">
<h2 style="color: #f25e43"><count-to :start-val="0" :end-val="595453" :duration="2000"
:autoplay="true" ></count-to></h2>
<div>数量
</div>
</div>
</div>
</el-card>
</el-col>
</el-row>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>系列开源产品</span>
</div>
</template>
<div style="display: flex">
<el-card style="flex: 1;margin-right: 20px;cursor: pointer" class="card-item" @click="goTo('https://ext.dcloud.net.cn/plugin?id=7511')">
<div style="color: white;margin-bottom: 10px"><h3>zb-table</h3></div>
<div style="font-size: 12px;color: white">uniapp 表格组件 支持固定表头和首列上拉加载更多及固定多列表格自适应内容排序多选checkbox可点击删除编辑合计功能兼容多端</div>
</el-card>
<el-card style="flex: 1;cursor: pointer" class="card-item" @click="goTo('https://github.com/zouzhibin/vue-admin-perfect')">
<div style="color: white;margin-bottom: 10px"><h3>vue-admin-perfect</h3></div>
<div style="font-size: 12px;color: white">系统基于vue3+vuex+ element-plus+ts后台管理系统</div>
</el-card>
</div>
</el-card>
<el-card class="box-card">
<template #header>
<div class="card-header">
<span>每周用户活跃量</span>
</div>
</template>
<div>
<bar-charts height="300px" width="100%" id="bar1"></bar-charts>
</div>
</el-card>
</el-card>
</el-col>
</el-row>
</div>
</u-container-layout>
</el-col>
</el-row>
</div>
</template>
<script setup lang="ts">
import {
@ -140,6 +143,7 @@
margin-top: 18px;
line-height: 30px;
text-align: left;
color: red;
}
}
.card-header {

View File

@ -1,5 +1,5 @@
<template>
<div class="components-container">
<u-container-layout class="components-container">
<count-to ref="example" class="example" :start-val="options.startValInput" :end-val="options.endValInput" :duration="options.durationInput" :decimals="options.decimals"
:prefix="options.prefix" :suffix="options.suffix" :autoplay="true" :separator="options.separator"></count-to>
<div style="margin-top: 40px;">
@ -29,7 +29,7 @@
<el-button type="primary" @click="start">开始</el-button>
<el-button type="danger" @click="pauseResume">暂停/恢复</el-button>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,5 +1,5 @@
<template>
<div class="m-cropper">
<u-container-layout class="m-cropper">
<div class="left">
<div class="cropper-content">
<vue-cropper
@ -50,7 +50,7 @@
<img :src="option.cropImg" style="width: 100%;height: 100%" v-if="option.cropImg"/>
</div>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,36 +1,39 @@
<template>
<el-form
ref="formRef"
:model="dynamicValidateForm"
label-width="80px"
class="demo-dynamic"
>
<el-form-item
prop="title"
label="标题"
:rules="[
<u-container-layout>
<el-form
ref="formRef"
:model="dynamicValidateForm"
label-width="80px"
class="demo-dynamic"
>
<el-form-item
prop="title"
label="标题"
:rules="[
{ required: true, message: '请输入标题', trigger: 'blur', },
]"
>
<el-input v-model="dynamicValidateForm.title" />
</el-form-item>
<el-form-item
prop="content"
label="标题"
:rules="[
>
<el-input v-model="dynamicValidateForm.title" />
</el-form-item>
<el-form-item
prop="content"
label="标题"
:rules="[
{ required: true, message: '请输入内容', trigger: 'blur', },
]"
>
<u-wang-edior v-model="dynamicValidateForm.content"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(formRef)">保存</el-button>
<!-- <el-button @click="preview">预览</el-button>-->
<el-button @click="resetForm(formRef)">取消</el-button>
</el-form-item>
</el-form>
>
<u-wang-edior v-model="dynamicValidateForm.content"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(formRef)">保存</el-button>
<!-- <el-button @click="preview">预览</el-button>-->
<el-button @click="resetForm(formRef)">取消</el-button>
</el-form-item>
</el-form>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,6 +1,6 @@
<template>
<div class="row">
<u-container-layout class="row">
<div style="margin-bottom: 10px">卡片拖拽排序</div>
<el-button class="btn " @click="sorter" type="primary" style="margin-bottom: 20px">
还原
@ -42,7 +42,7 @@
</draggable>
</el-row>
</div>
</div>
</u-container-layout>
</template>
<!--<li class="list-group-item" :style="{backgroundColor:`${element.color}` }">-->
<!-- <i-->

View File

@ -1,5 +1,5 @@
<template>
<div class="mark-down">
<u-container-layout class="mark-down">
<el-alert
title="Markdown 是基于 md-editor-v3"
type="success"
@ -11,7 +11,7 @@
<div style="margin-top: 20px;flex-shrink: 0">
<el-button type="primary" @click="submit">提交</el-button>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts">
// https://imzbf.github.io/md-editor-v3/index

View File

@ -1,5 +1,5 @@
<template>
<div>
<u-container-layout>
<div>
<el-button type="primary" @click="print(1)">打印图片</el-button>
<el-button type="primary" @click="print(2)">打印表格</el-button>
@ -14,7 +14,7 @@
<el-table-column prop="address" label="地址" />
</el-table>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,6 +1,6 @@
<template>
<div>
<u-container-layout>
<el-input v-model="inputData" placeholder="请输入" style="width:400px;max-width:100%;" />
<el-button type="primary" @click="handleQrcode(1)">
<el-icon style="margin-right: 6px"><collection /></el-icon>
@ -9,7 +9,7 @@
<div>
<vue-qr :logoSrc="src" :text="inputData" :size="200"></vue-qr>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>
import {ref} from 'vue'

View File

@ -1,8 +1,8 @@
<template>
<div style="min-height: 300px">
<u-container-layout style="min-height: 300px">
<el-button @contextmenu.prevent="rightClick">右键菜单</el-button>
<u-right-click-menu :left="clientX" :top="clientY" @ok="operatingRightAction" :data="data"/>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,5 +1,5 @@
<template>
<div>
<u-container-layout>
<splitpanes style="height: 800px">
<pane min-size="20" class="left">1</pane>
<pane>
@ -11,7 +11,7 @@
</pane>
<pane class="item4">5</pane>
</splitpanes>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,5 +1,5 @@
<template>
<div class="m-permission-page">
<u-container-layout class="m-permission-page">
<div style="margin-bottom: 20px">
权限列表{{store.getters.roles}}
</div>
@ -7,7 +7,7 @@
<el-radio-button label="other" />
<el-radio-button label="admin" />
</el-radio-group>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,76 +1,79 @@
<template>
<div class="app-container">
<comprehensive-table
:loading="loading"
@selection-change="selectionChange"
:columns="column" :data="list" @reset="reset" @onSubmit="onSubmit">
<template v-slot:btn>
<div style="display: flex;justify-content: flex-end">
<el-button type="primary" @click="add"><el-icon><plus /></el-icon> </el-button>
<el-button type="danger" @click="batchDelete"><el-icon><delete /></el-icon></el-button>
</div>
</template>
<template v-slot:sex="scope">{{scope.row.sex?'男':'女'}}</template>
<template v-slot:operation="scope">
<el-button
type="primary"
size="small"
icon="Edit"
@click="edit(scope.row)"
>
编辑
</el-button>
<el-button
@click="del(scope.row)"
type="danger"
size="small"
icon="Delete"
>
删除
</el-button>
</template>
</comprehensive-table>
<u-container-layout>
<div class="app-container">
<comprehensive-table
:loading="loading"
@selection-change="selectionChange"
:columns="column" :data="list" @reset="reset" @onSubmit="onSubmit">
<template v-slot:btn>
<div style="display: flex;justify-content: flex-end">
<el-button type="primary" @click="add"><el-icon><plus /></el-icon> </el-button>
<el-button type="danger" @click="batchDelete"><el-icon><delete /></el-icon></el-button>
</div>
</template>
<template v-slot:sex="scope">{{scope.row.sex?'男':'女'}}</template>
<template v-slot:operation="scope">
<el-button
type="primary"
size="small"
icon="Edit"
@click="edit(scope.row)"
>
编辑
</el-button>
<el-button
@click="del(scope.row)"
type="danger"
size="small"
icon="Delete"
>
删除
</el-button>
</template>
</comprehensive-table>
<el-dialog
v-model="dialogVisible"
:title="title"
width="50%"
>
<el-form
ref="ruleFormRef"
:model="ruleForm"
:rules="rules"
label-width="120px"
class="demo-ruleForm"
:size="formSize"
<el-dialog
v-model="dialogVisible"
:title="title"
width="50%"
>
<el-form-item label="活动名称" prop="name">
<el-input v-model="ruleForm.name" />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="ruleForm.sex">
<el-radio :label="1" ></el-radio>
<el-radio :label="0" ></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="价格" prop="price">
<el-input v-model="ruleForm.price" />
</el-form-item>
</el-form>
<template #footer>
<el-form
ref="ruleFormRef"
:model="ruleForm"
:rules="rules"
label-width="120px"
class="demo-ruleForm"
:size="formSize"
>
<el-form-item label="活动名称" prop="name">
<el-input v-model="ruleForm.name" />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="ruleForm.sex">
<el-radio :label="1" ></el-radio>
<el-radio :label="0" ></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="价格" prop="price">
<el-input v-model="ruleForm.price" />
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleClose(ruleFormRef)"
>确定</el-button
>
</span>
</template>
</el-dialog>
</template>
</el-dialog>
</div>
</u-container-layout>
</div>
</template>
<script lang="ts" setup>
import {ref, reactive, onMounted} from "vue";
import {ref, reactive, onMounted} from "vue";
import * as dayjs from 'dayjs'
import { ElMessage,ElMessageBox } from 'element-plus'
import type { FormInstance } from 'element-plus'

View File

@ -1,4 +1,5 @@
<template>
<u-container-layout>
<div>
<div style="display: flex;justify-content: flex-end">
<el-radio-group v-model="radio">
@ -24,6 +25,8 @@
<el-button type="primary" @click="config">提交</el-button>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>

View File

@ -1,90 +1,93 @@
<template>
<div class="inline-edit-table">
<el-form :inline="true" :model="formInline1" class="demo-form-inline">
<el-form-item label="姓名">
<el-input v-model="formInline1.username" placeholder="请输入姓名" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">搜索</el-button>
</el-form-item>
</el-form>
<el-table :data="list" style="width: 100%" :border="true" v-loading="loading">
<el-table-column prop="id" width="60" label="id"/>
<el-table-column prop="name" label="姓名" min-width="200px">
<template #default="scope">
<template v-if="scope.row.edit">
<div style="display: flex;align-items: center;">
<el-input v-model="scope.row.name" size="small" />
<el-button
size="small"
icon="Refresh"
type="warning"
@click="cancelEdit(scope.row)"
>
取消
</el-button>
</div>
<u-container-layout>
<div class="inline-edit-table">
<el-form :inline="true" :model="formInline1" class="demo-form-inline">
<el-form-item label="姓名">
<el-input v-model="formInline1.username" placeholder="请输入姓名" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">搜索</el-button>
</el-form-item>
</el-form>
<el-table :data="list" style="width: 100%" :border="true" v-loading="loading">
<el-table-column prop="id" width="60" label="id"/>
<el-table-column prop="name" label="姓名" min-width="200px">
<template #default="scope">
<template v-if="scope.row.edit">
<div style="display: flex;align-items: center;">
<el-input v-model="scope.row.name" size="small" />
<el-button
size="small"
icon="Refresh"
type="warning"
@click="cancelEdit(scope.row)"
>
取消
</el-button>
</div>
</template>
<template v-else>{{scope.row.name}}</template>
</template>
<template v-else>{{scope.row.name}}</template>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="sex" label="性别" >
<template #default="scope">
{{scope.row.sex?'男':'女'}}
</template>
</el-table-column>
<el-table-column prop="price" label="价格" />
<el-table-column prop="admin" label="账号" />
<el-table-column prop="address" label="地址" />
<el-table-column prop="date" label="日期" />
<el-table-column prop="province" label="省份" />
<el-table-column prop="city" label="城市" />
<el-table-column prop="operator" label="操作" width="180px" fixed="right">
<template #default="scope">
<el-button
v-if="scope.row.edit"
type="success"
size="small"
icon="CircleCheckFilled"
@click="confirmEdit(scope.row)"
>
保存
</el-button>
<el-button
v-else
type="primary"
size="small"
icon="Edit"
@click="scope.row.edit=!scope.row.edit"
>
编辑
</el-button>
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="sex" label="性别" >
<template #default="scope">
{{scope.row.sex?'男':'女'}}
</template>
</el-table-column>
<el-table-column prop="price" label="价格" />
<el-table-column prop="admin" label="账号" />
<el-table-column prop="address" label="地址" />
<el-table-column prop="date" label="日期" />
<el-table-column prop="province" label="省份" />
<el-table-column prop="city" label="城市" />
<el-table-column prop="operator" label="操作" width="180px" fixed="right">
<template #default="scope">
<el-button
v-if="scope.row.edit"
type="success"
size="small"
icon="CircleCheckFilled"
@click="confirmEdit(scope.row)"
>
保存
</el-button>
<el-button
v-else
type="primary"
size="small"
icon="Edit"
@click="scope.row.edit=!scope.row.edit"
>
编辑
</el-button>
<el-button
type="danger"
size="small"
icon="Delete"
@click="deleteAction(scope.row)"
>
删除
</el-button>
<el-button
type="danger"
size="small"
icon="Delete"
@click="deleteAction(scope.row)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div style="width: 100%;display: flex;justify-content: center;padding-top: 20px">
<el-pagination
v-model:currentPage="currentPage1"
:page-size="10"
background
layout="total, sizes, prev, pager, next, jumper"
:total="transData.length"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</template>
</el-table-column>
</el-table>
<div style="width: 100%;display: flex;justify-content: center;padding-top: 20px">
<el-pagination
v-model:currentPage="currentPage1"
:page-size="10"
background
layout="total, sizes, prev, pager, next, jumper"
:total="transData.length"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</div>
</div>
</u-container-layout>
</template>
<script lang="ts" setup >

View File

@ -1,19 +1,22 @@
<template>
<div class="app-container">
<el-table :data="list" style="width: 100%">
<el-table-column prop="date" label="Date" width="150" />
<el-table-column label="Delivery Info">
<el-table-column prop="name" label="Name" width="120" />
<el-table-column label="Address Info">
<el-table-column prop="state" label="State" width="120" />
<el-table-column prop="city" label="City" width="120" />
<el-table-column prop="address" label="Address" />
<el-table-column prop="zip" label="Zip" width="120" />
<u-container-layout>
<div class="app-container">
<el-table :data="list" style="width: 100%">
<el-table-column prop="date" label="Date" width="150" />
<el-table-column label="Delivery Info">
<el-table-column prop="name" label="Name" width="120" />
<el-table-column label="Address Info">
<el-table-column prop="state" label="State" width="120" />
<el-table-column prop="city" label="City" width="120" />
<el-table-column prop="address" label="Address" />
<el-table-column prop="zip" label="Zip" width="120" />
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</div>
</u-container-layout>
</div>
</template>
<script lang="ts" setup>
import {ref} from "vue";

View File

@ -1,5 +1,5 @@
<template>
<div>
<u-container-layout>
<div style="margin-bottom: 15px;display: flex;align-items: center">
<el-input v-model="input" placeholder="请输入文件名" style="width: 200px;margin-right: 10px"/>
<el-button @click="exportExcelAction" type="primary">
@ -11,7 +11,7 @@
<el-table-column :prop="item.name" :label="item.label" :width="item.width" />
</template>
</el-table>
</div>
</u-container-layout>
</template>
<script lang="ts" setup>