更新PC端vue-element-plus-admin版本到1.8.7

This commit is contained in:
ktianc 2022-12-06 11:42:19 +08:00
parent 417bfcde05
commit 9ee92305fc
7 changed files with 78 additions and 36 deletions

View File

@ -416,16 +416,15 @@ pnpm run build:pro
## 移动端演示图
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077811740.jpg)
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077826257.jpg)
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077835024.jpg)
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077849753.jpg)
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077860987.jpg)
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077870240.jpg)
![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077878132.jpg)
<table>
<tr>
<td><img src="https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077811740.jpg"/></td>
<td><img src="https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077826257.jpg"/></td>
<td><img src="https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077835024.jpg"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077849753.jpg"/></td>
<td><img src="https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077860987.jpg"/></td>
<td><img src="https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077870240.jpg"/></td>
</tr>
</table>

View File

@ -1,6 +1,6 @@
{
"name": "vue-element-plus-admin",
"version": "1.8.6",
"version": "1.8.7",
"description": "一套基于vue3、element-plus、typesScript、vite3的后台集成方案。",
"author": "Archer <502431556@qq.com>",
"private": false,
@ -34,6 +34,7 @@
"animate.css": "^4.1.1",
"axios": "^1.1.3",
"clipboard": "^2.0.11",
"consola": "^2.15.3",
"echarts": "^5.4.0",
"echarts-wordcloud": "^2.0.0",
"element-plus": "2.2.21",
@ -47,6 +48,7 @@
"pinia-plugin-persist": "^1.0.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
"terser": "^5.16.1",
"url": "^0.11.0",
"vue": "3.2.45",
"vue-i18n": "9.2.2",
@ -97,8 +99,8 @@
"typescript": "4.9.3",
"unplugin-vue-macros": "^0.16.3",
"vite": "3.2.4",
"vite-plugin-ejs": "^1.6.4",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-html": "^3.2.0",
"vite-plugin-mock": "^2.9.6",
"vite-plugin-purge-icons": "^0.9.1",
"vite-plugin-style-import": "2.0.0",

View File

@ -1,11 +1,13 @@
<script setup lang="ts">
import { PropType } from 'vue'
import { PropType, ref } from 'vue'
import { Descriptions } from '@/components/Descriptions'
import { ElSwitch } from 'element-plus'
// json
import { JsonViewer } from 'vue3-json-viewer'
import 'vue3-json-viewer/dist/index.css'
import { DescriptionsSchema } from '@/types/descriptions'
import { DictDetail, selectDictLabel } from '@/utils/dict'
import { useDictStore } from '@/store/modules/dict'
defineProps({
currentRow: {
@ -17,6 +19,18 @@ defineProps({
default: () => []
}
})
const platformOptions = ref<DictDetail[]>([])
const loginMethodOptions = ref<DictDetail[]>([])
const getOptions = async () => {
const dictStore = useDictStore()
const dictOptions = await dictStore.getDictObj(['sys_vadmin_platform', 'sys_vadmin_login_method'])
platformOptions.value = dictOptions.sys_vadmin_platform
loginMethodOptions.value = dictOptions.sys_vadmin_login_method
}
getOptions()
</script>
<template>
@ -32,5 +46,13 @@ defineProps({
<template #request="{ row }">
<JsonViewer :value="JSON.parse(row.request)" copyable boxed sort />
</template>
<template #platform="{ row }">
{{ selectDictLabel(platformOptions, row.platform) }}
</template>
<template #login_method="{ row }">
{{ selectDictLabel(loginMethodOptions, row.login_method) }}
</template>
</Descriptions>
</template>

View File

@ -28,7 +28,7 @@ export const columns = reactive<TableColumn[]>([
},
{
field: 'platform',
label: '登平台',
label: '登平台',
width: '150px',
show: true,
span: 24
@ -42,7 +42,7 @@ export const columns = reactive<TableColumn[]>([
},
{
field: 'ip',
label: '登地址',
label: '登地址',
show: true,
disabled: true,
width: '150px',
@ -50,7 +50,7 @@ export const columns = reactive<TableColumn[]>([
},
{
field: 'address',
label: '登地点',
label: '登地点',
show: true,
span: 24
},
@ -101,10 +101,10 @@ export const columns = reactive<TableColumn[]>([
},
{
field: 'action',
width: '150px',
label: '操作',
show: true,
disabled: true,
disabled: false,
width: '100px',
span: 24
}
])
@ -121,9 +121,20 @@ export const searchSchema = reactive<FormSchema[]>([
}
}
},
{
field: 'platform',
label: '登录平台',
component: 'Select',
componentProps: {
style: {
width: '214px'
},
options: []
}
},
{
field: 'ip',
label: '登陆地址',
label: '登地址',
component: 'Input',
componentProps: {
clearable: false,
@ -134,7 +145,7 @@ export const searchSchema = reactive<FormSchema[]>([
},
{
field: 'address',
label: '登地点',
label: '登地点',
component: 'Input',
componentProps: {
clearable: false,
@ -153,11 +164,11 @@ export const searchSchema = reactive<FormSchema[]>([
},
options: [
{
label: '登成功',
label: '登成功',
value: true
},
{
label: '登失败',
label: '登失败',
value: false
}
]

View File

@ -12,6 +12,7 @@ import Detail from './components/Detail.vue'
import { Search } from '@/components/Search'
import { selectDictLabel, DictDetail } from '@/utils/dict'
import { useDictStore } from '@/store/modules/dict'
import { FormSetPropsType } from '@/types/form'
const { register, elTableRef, tableObject, methods } = useTable({
getListApi: getRecordLoginListApi,
@ -29,12 +30,18 @@ const dialogVisible = ref(false)
const dialogTitle = ref('')
const platformOptions = ref<DictDetail[]>([])
const loginMethodOptions = ref<DictDetail[]>([])
const searchSetSchemaList = ref([] as FormSetPropsType[])
const getOptions = async () => {
const dictStore = useDictStore()
const dictOptions = await dictStore.getDictObj(['sys_vadmin_platform', 'sys_vadmin_login_method'])
platformOptions.value = dictOptions.sys_vadmin_platform
loginMethodOptions.value = dictOptions.sys_vadmin_login_method
searchSetSchemaList.value.push({
field: 'platform',
path: 'componentProps.options',
value: dictOptions.sys_vadmin_platform
})
}
getOptions()
@ -69,7 +76,12 @@ getList()
<template>
<ContentWrap>
<Search :schema="searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="searchSchema"
:setSchemaList="searchSetSchemaList"
@search="setSearchParams"
@reset="setSearchParams"
/>
<div class="mb-8px flex justify-between">
<ElRow />

View File

@ -10,8 +10,8 @@ import { createStyleImportPlugin, ElementPlusResolve } from 'vite-plugin-style-i
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import PurgeIcons from 'vite-plugin-purge-icons'
import { viteMockServe } from 'vite-plugin-mock'
import { createHtmlPlugin } from 'vite-plugin-html'
import VueMarcos from 'unplugin-vue-macros/vite'
import { ViteEjsPlugin } from "vite-plugin-ejs"
// https://vitejs.dev/config/
const root = process.cwd()
@ -71,13 +71,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
// `
// }),
VueMarcos(),
createHtmlPlugin({
inject: {
data: {
title: env.VITE_APP_TITLE,
injectScript: `<script src="./inject.js"></script>`,
}
}
ViteEjsPlugin({
title: env.VITE_APP_TITLE
})
],
@ -124,7 +119,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
rewrite: path => path.replace(/^\/api/, '')
},
// 选项写法
'/static': {
'/media': {
target: 'http://127.0.0.1:9000',
changeOrigin: true,
rewrite: path => path

View File

@ -18,9 +18,10 @@ class LoginParams(QueryParams):
列表分页
"""
def __init__(self, ip: str = None, address: str = None, telephone: str = None, status: bool = None,
params: Paging = Depends()):
platform: str = None, params: Paging = Depends()):
super().__init__(params)
self.ip = ("like", ip)
self.telephone = ("like", telephone)
self.address = ("like", address)
self.status = status
self.platform = platform