修改:设置界面适配移动端

This commit is contained in:
jmal 2021-01-16 22:51:38 +08:00
parent eb2eb04fe8
commit ef38ad3565
14 changed files with 119 additions and 44 deletions

View File

@ -95,4 +95,9 @@ export default {
background: linear-gradient(rgba(255,255,255,0), #fff); background: linear-gradient(rgba(255,255,255,0), #fff);
} }
} }
@media screen and (max-width: 768px) {
/deep/ .el-dialog {
width: 100% !important;
}
}
</style> </style>

View File

@ -1067,6 +1067,9 @@ export default {
this.gridColumnNum = this.queryFileType === 'image' ? Math.round(clientWidth / 100 - 5) : Math.round(clientWidth / 100 - 4) this.gridColumnNum = this.queryFileType === 'image' ? Math.round(clientWidth / 100 - 5) : Math.round(clientWidth / 100 - 4)
} else { } else {
this.gridColumnNum = this.queryFileType === 'image' ? Math.round(clientWidth / 100 - 3) : Math.round(clientWidth / 100 - 2) this.gridColumnNum = this.queryFileType === 'image' ? Math.round(clientWidth / 100 - 3) : Math.round(clientWidth / 100 - 2)
if(clientWidth < 768){
this.gridColumnNum = 2
}
} }
if(clientWidth < 900){ if(clientWidth < 900){
this.showUpdateDateItem = false this.showUpdateDateItem = false

View File

@ -2,6 +2,7 @@
<template> <template>
<div class="table-temp"> <div class="table-temp">
<el-table <el-table
ref="tableData"
:data="tableData" :data="tableData"
:max-height="tableMaxHeight" :max-height="tableMaxHeight"
row-key="id" row-key="id"
@ -9,7 +10,7 @@
size="medium" size="medium"
fit fit
highlight-current-row highlight-current-row
default-expand-all :default-expand-all="isExpand"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
v-loading="loading" v-loading="loading"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@ -27,7 +28,7 @@
:label="item.label" :label="item.label"
:fixed="item.fixed" :fixed="item.fixed"
:width="item.width" :width="item.width"
:min-widitem="item.minWidth" :min-width="item.minWidth"
:align="item.align || 'center'" :align="item.align || 'center'"
:sort-orders="['ascending', 'descending']" :sort-orders="['ascending', 'descending']"
:sortable="item.sortable" :sortable="item.sortable"
@ -103,6 +104,10 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
isExpand: {
type: Boolean,
default: true
},
pagination: { pagination: {
type: Object, type: Object,
default: { default: {
@ -120,7 +125,7 @@ export default {
pageIndex: 0, pageIndex: 0,
pageSize: 15, pageSize: 15,
pageTotal: 0 pageTotal: 0
} },
}; };
}, },
mounted() { mounted() {
@ -159,6 +164,22 @@ export default {
//调用父组件方法 //调用父组件方法
this.$emit('sortChange', { backData: column }); this.$emit('sortChange', { backData: column });
}, },
// 是否展开table(展开与折叠切换)
handleExpand() {
this.$nextTick(() => {
this.forArr(this.tableData, this.isExpand)
})
},
// 遍历
forArr(arr, isExpand) {
arr.forEach(i => {
// toggleRowExpansion(i, isExpand)用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
this.$refs.tableData.toggleRowExpansion(i, isExpand)
if (i.children) {
this.forArr(i.children, isExpand)
}
})
},
} }
} }
</script> </script>
@ -187,6 +208,12 @@ export default {
.el-button { .el-button {
padding: 0; padding: 0;
} }
.el-table__body-wrapper{
//&::-webkit-scrollbar {
// width: 10px;
// height: 10px;
//}
}
} }
/deep/.el-pagination { /deep/.el-pagination {
margin-top: 15px; margin-top: 15px;

View File

@ -4,16 +4,16 @@
<breadcrumb class="breadcrumb-container" /> <breadcrumb class="breadcrumb-container" />
<div class="right-content"> <div class="right-content">
<router-link to="/setting/website/manager-blog"> <router-link v-if="isShow" to="/setting/website/manager-blog">
<div class="right-content-button"> <div class="right-content-button">
<svg-icon icon-class="wangzhanguanli"></svg-icon>网站管理 <svg-icon icon-class="wangzhanguanli"></svg-icon>网站管理
</div> </div>
</router-link> </router-link>
<router-link target="_blank" to="/articles"> <router-link v-if="isShow" target="_blank" to="/articles">
<div class="right-content-button"> <div class="right-content-button">
<svg-icon icon-class="WEBSITE"></svg-icon>网站 <svg-icon icon-class="WEBSITE"></svg-icon>网站
</div> </div>
</router-link> </router-link>
<div class="right-username">{{showName}}</div> <div class="right-username">{{showName}}</div>
<div class="right-menu"> <div class="right-menu">
<el-dropdown class="avatar-container" trigger="click"> <el-dropdown class="avatar-container" trigger="click">
@ -53,6 +53,7 @@ import Icon from '@/components/Icon/Icon.vue'
export default { export default {
data() { data() {
return { return {
isShow: true,
activeIndex: '1', activeIndex: '1',
imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=',
defaultAvatar: require('../../assets/img/default-avatar.png') defaultAvatar: require('../../assets/img/default-avatar.png')
@ -70,6 +71,9 @@ export default {
'showName' 'showName'
]) ])
}, },
mounted() {
this.isShow = this.$pc;
},
methods: { methods: {
handleSelect(key, keyPath) { handleSelect(key, keyPath) {
}, },
@ -119,7 +123,7 @@ export default {
.right-username { .right-username {
line-height: 50px; line-height: 50px;
margin-right: 10px; margin: 0 10px;
} }
} }
@ -194,7 +198,6 @@ export default {
.right-content-button { .right-content-button {
line-height: 50px; line-height: 50px;
margin-right: 10px;
padding: 0 10px; padding: 0 10px;
&:hover { &:hover {
background-color: #00000006; background-color: #00000006;

View File

@ -67,8 +67,8 @@ export default {
if(!ws.isConnected){ if(!ws.isConnected){
toConnection(this.$store.state.user.name,this.$store.state.user.token); toConnection(this.$store.state.user.name,this.$store.state.user.token);
} }
if(this.$route.path.startsWith('/articles')){ if(this.$route.path.startsWith('/setting')){
this.isShow = false this.isShow = true
} }
}else{ }else{
this.isShow = false this.isShow = false

View File

@ -385,3 +385,11 @@
padding: 10px; padding: 10px;
} }
} }
@media screen and (max-width: 768px) {
.dashboard-container {
min-width: 100px !important;
}
.info-statistics {
width: 100% !important;
}
}

View File

@ -13,11 +13,11 @@ body {
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;; font-family: Menlo,Monaco,Consolas,"Courier New",monospace;;
} }
/deep/::-webkit-scrollbar { ///deep/::-webkit-scrollbar {
/*滚动条整体样式*/ // /*滚动条整体样式*/
width: 10px; // width: 10px;
height: 10px; // height: 10px;
} //}
/deep/::-webkit-scrollbar-thumb { /deep/::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/ /*滚动条里面小方块*/
height: 30px; height: 30px;
@ -107,9 +107,6 @@ div:focus {
padding: 4px 3px 15px 15px; padding: 4px 3px 15px 15px;
} }
.al-icon-picker-popper { .al-icon-picker-popper {
.popper__arrow {
left: 35px!important;
}
.el-card { .el-card {
margin: 10px 12px 0 0; margin: 10px 12px 0 0;
} }
@ -162,6 +159,7 @@ div:focus {
.al-file-sort-item { .al-file-sort-item {
.al-file-sort-item-icon { .al-file-sort-item-icon {
font-weight: 600; font-weight: 600;
margin-right: 0;
} }
} }
.al-file-sort-item.active { .al-file-sort-item.active {

View File

@ -18,7 +18,6 @@ a:hover {
/deep/.box-card { /deep/.box-card {
margin: 0 auto; margin: 0 auto;
max-width: 1240px; max-width: 1240px;
min-width: 640px;
.clearfix { .clearfix {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
@ -180,5 +179,20 @@ a:hover {
.search-form .el-form-actions { .search-form .el-form-actions {
text-align: right; text-align: right;
} }
/deep/ .el-dialog {
margin-top: 10vh!important;
}
.dialog-avatar {
/deep/.el-dialog {
min-width: 100px;
width: 100%;
.container {
display: block;
.img-container {
width: unset;
}
}
}
}
} }

View File

@ -1,9 +1,9 @@
// 把此段代码贴到iconfont项目页面的控制台中, 以获取图标列表 // 把此段代码贴到iconfont项目页面的控制台中, 以获取图标列表
const nodeArray = Array.from(document.querySelectorAll('.block-icon-list .icon-item .icon-code.icon-code-show')); // const nodeArray = Array.from(document.querySelectorAll('.block-icon-list .icon-item .icon-code.icon-code-show'));
const iconNames = nodeArray.map(item => item.outerText.replace('icon-','')) // const iconNames = nodeArray.map(item => item.outerText.replace('icon-',''))
console.log(iconNames.slice(0,80)) // console.log(iconNames.slice(0,80))
console.log(iconNames.slice(80,130)) // console.log(iconNames.slice(80,130))
export const icon = { export const icon = {
list: ["emoji-a", "emoji-bizui", "emoji-baiyan", "emoji-aixin", "emoji-dajing", "emoji-ziya", "emoji-daxiao", "emoji-esi", "emoji-fadai", "emoji-fankun", "emoji-ganga", "emoji-fennu", "emoji-hanyan", "emoji-jingkong", "emoji-haochi", "emoji-emo", "emoji-jingsong", "emoji-jingya", "emoji-kaixin", "emoji-lengku", "emoji-danao", "emoji-liukoushui", "emoji-liulei", "emoji-mengbi", "mianwubiaoqing", "nanguo", "shuizhuo", "taoyan", "tanchi", "siliao", "tiaopi", "xiaochulei", "wuliao", "xingxingyan", "xieyan", "xiasi", "xiaolian", "ku", "shengqi", "yousiliao", "en", "bushufu", "bianbian", "fankun1", "feiwen", "ganmao", "huaixiao", "liuhan", "outu", "keshui", "renzhe", "santiaoxian", "guaiwu", "shoushang", "tianshi", "shuai", "xianwen", "xiaodiaodaya", "xiong", "yiwen", "yun", "liubixie", "shimo", "dianzan", "biti", "fendou", "huqi", "heng", "kulou", "leng", "taoyan1", "shuixing", "aini", "aixin1", "zhadan", "xinsui", "maren", "zhutou", "qie", "youling", list: ["emoji-a", "emoji-bizui", "emoji-baiyan", "emoji-aixin", "emoji-dajing", "emoji-ziya", "emoji-daxiao", "emoji-esi", "emoji-fadai", "emoji-fankun", "emoji-ganga", "emoji-fennu", "emoji-hanyan", "emoji-jingkong", "emoji-haochi", "emoji-emo", "emoji-jingsong", "emoji-jingya", "emoji-kaixin", "emoji-lengku", "emoji-danao", "emoji-liukoushui", "emoji-liulei", "emoji-mengbi", "mianwubiaoqing", "nanguo", "shuizhuo", "taoyan", "tanchi", "siliao", "tiaopi", "xiaochulei", "wuliao", "xingxingyan", "xieyan", "xiasi", "xiaolian", "ku", "shengqi", "yousiliao", "en", "bushufu", "bianbian", "fankun1", "feiwen", "ganmao", "huaixiao", "liuhan", "outu", "keshui", "renzhe", "santiaoxian", "guaiwu", "shoushang", "tianshi", "shuai", "xianwen", "xiaodiaodaya", "xiong", "yiwen", "yun", "liubixie", "shimo", "dianzan", "biti", "fendou", "huqi", "heng", "kulou", "leng", "taoyan1", "shuixing", "aini", "aixin1", "zhadan", "xinsui", "maren", "zhutou", "qie", "youling",

View File

@ -9,9 +9,10 @@
</div> </div>
</div> </div>
<div> <div>
<div class="config-itme-label">网盘同步:</div> <div class="config-itme-label">网盘同步:
<el-button class="sync-button" size="mini" :loading="syncLoading" type="primary" @click="sync()"><i class="el-icon-refresh"></i></el-button>
</div>
<span class="instruction">一般用于初始化操作, 将文件数据同步到数据库</span> <span class="instruction">一般用于初始化操作, 将文件数据同步到数据库</span>
<el-button class="sync-button" size="mini" :loading="syncLoading" type="primary" @click="sync()"><i class="el-icon-refresh"></i></el-button>
<div class="config-itme-label">启用webp: <div class="config-itme-label">启用webp:
<el-switch <el-switch
v-model="webpEnabled" v-model="webpEnabled"
@ -22,7 +23,7 @@
</el-switch> </el-switch>
</div> </div>
<span class="instruction"> <span class="instruction">
在不降低图片质量的情况下,极大降低图片文件的体积,建议开启. 将图片转换为webp格式存储,在不降低图片质量的情况下,极大降低图片文件的体积,建议开启.
<a href="https://baike.baidu.com/item/webp%E6%A0%BC%E5%BC%8F" target="_blank">什么是webp?</a> <a href="https://baike.baidu.com/item/webp%E6%A0%BC%E5%BC%8F" target="_blank">什么是webp?</a>
</span> </span>
</div> </div>

View File

@ -322,5 +322,16 @@
padding: 30px 12px; padding: 30px 12px;
} }
} }
.el-button+.el-button {
margin-left: 0;
}
}
@media screen and (max-width: 768px) {
/deep/ .el-divider--vertical {
display: none;
}
.avatar-preview {
display: none;
}
} }
</style> </style>

View File

@ -135,9 +135,9 @@ export default {
sortOrder: '' sortOrder: ''
}, },
tableHeader: [ tableHeader: [
{prop: 'username',label: '用户账号',sortable: 'custom'}, {prop: 'username', minWidth: 110, label: '用户账号',sortable: 'custom'},
{prop: 'showName',label: '用户名',sortable: 'custom'}, {prop: 'showName', minWidth: 100, label: '用户名',sortable: 'custom'},
{prop: 'roles',label: '角色', tag: true, {prop: 'roles', minWidth: 120, label: '角色', tag: true,
formatData: (roles)=> { formatData: (roles)=> {
if(roles){ if(roles){
let tagNames = this.roleList.map(role => { let tagNames = this.roleList.map(role => {
@ -152,7 +152,7 @@ export default {
}, },
{prop: 'quota',label: '配额(G)',sortable: 'custom'}, {prop: 'quota',label: '配额(G)',sortable: 'custom'},
{prop: 'createTime',label: '创建时间',sortable: 'custom'}, {prop: 'createTime',label: '创建时间',sortable: 'custom'},
{label: '操作',active: [ {label: '操作', minWidth: 130, active: [
{name: '修改', icon: 'el-icon-edit', handle: (row) => this.handleEdit(row.id,row.username)}, {name: '修改', icon: 'el-icon-edit', handle: (row) => this.handleEdit(row.id,row.username)},
{name: '删除', icon: 'el-icon-delete', color: '#ff4d4f', handle: (row) => this.handleDelete([row.id])}, {name: '删除', icon: 'el-icon-delete', color: '#ff4d4f', handle: (row) => this.handleDelete([row.id])},
], ],
@ -188,7 +188,6 @@ export default {
resize(){ resize(){
let clientWidth = document.querySelector(".container").clientWidth let clientWidth = document.querySelector(".container").clientWidth
const monbile = clientWidth <= 768; const monbile = clientWidth <= 768;
this.tableHeader[2].disabled = monbile
this.tableHeader[3].disabled = monbile this.tableHeader[3].disabled = monbile
this.tableHeader[4].disabled = monbile this.tableHeader[4].disabled = monbile
}, },

View File

@ -17,9 +17,6 @@
<el-form-item label="菜单名称:" prop="name"> <el-form-item label="菜单名称:" prop="name">
<el-input placeholder="请输入菜单名称" v-model="form.name" /> <el-input placeholder="请输入菜单名称" v-model="form.name" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="菜单图标:" prop="icon">-->
<!-- <el-input placeholder="请输入菜单图标" v-model="form.icon" />-->
<!-- </el-form-item>-->
<el-form-item label="菜单图标:" prop="icon"> <el-form-item label="菜单图标:" prop="icon">
<icon-select v-model="form.icon"></icon-select> <icon-select v-model="form.icon"></icon-select>
</el-form-item> </el-form-item>
@ -85,6 +82,7 @@
<div class="el-form-actions"> <div class="el-form-actions">
<el-button class="card-btn-icon" size="medium" icon="el-icon-search" type="primary" @click="getMenuTree()">查询</el-button> <el-button class="card-btn-icon" size="medium" icon="el-icon-search" type="primary" @click="getMenuTree()">查询</el-button>
<el-button class="card-btn-icon" size="medium" icon="el-icon-plus" type="primary" @click="add()">添加</el-button> <el-button class="card-btn-icon" size="medium" icon="el-icon-plus" type="primary" @click="add()">添加</el-button>
<el-button class="card-btn-icon" size="medium" :icon="isExpand ? 'el-icon-remove-outline': 'el-icon-circle-plus-outline'" type="primary" @click="handleExpand()">{{isExpand ? "折叠" : "展开"}}</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -92,12 +90,14 @@
</div> </div>
</div> </div>
<table-list <table-list
ref="tableMenu"
:has-selection="false" :has-selection="false"
:tableData="dataList" :tableData="dataList"
:less-client-height="210" :less-client-height="210"
:loading="loading" :loading="loading"
:tableHeader="tableHeader" :tableHeader="tableHeader"
:pagination="pagination" :pagination="pagination"
:is-expand.sync="isExpand"
@pageChange="pageChange" @pageChange="pageChange"
@selectFun="selectFun" @selectFun="selectFun"
@sortChange="sortChange" @sortChange="sortChange"
@ -131,6 +131,7 @@ export default {
dialogTitle: '', dialogTitle: '',
updateLoading: false, updateLoading: false,
valid: true, valid: true,
isExpand: true,
form: { form: {
name: '', name: '',
parentId: '', parentId: '',
@ -182,7 +183,7 @@ export default {
} }
}, },
{prop: 'createTime', label: '创建时间'}, {prop: 'createTime', label: '创建时间'},
{label: '操作',active: [ {label: '操作', minWidth: 130, active: [
{name: '修改', icon: 'el-icon-edit', handle: (row) => this.handleEdit(row.id)}, {name: '修改', icon: 'el-icon-edit', handle: (row) => this.handleEdit(row.id)},
{name: '删除', icon: 'el-icon-delete', color: '#ff4d4f', handle: (row) => this.handleDelete([row.id])}, {name: '删除', icon: 'el-icon-delete', color: '#ff4d4f', handle: (row) => this.handleDelete([row.id])},
], ],
@ -253,6 +254,11 @@ export default {
this.$refs.managerForm.resetFields() this.$refs.managerForm.resetFields()
this.$refs.selectTree.clearHandle() this.$refs.selectTree.clearHandle()
}, },
// 展开与折叠table
handleExpand() {
this.isExpand = !this.isExpand
this.$refs.tableMenu.handleExpand()
},
// 设置formData // 设置formData
setFormData() { setFormData() {
let data = new FormData(); let data = new FormData();

View File

@ -127,11 +127,11 @@ export default {
sortOrder: '' sortOrder: ''
}, },
tableHeader: [ tableHeader: [
{prop: 'name',label: '角色名称',sortable: 'custom'}, {prop: 'name',label: '角色名称', minWidth: 110, sortable: 'custom'},
{prop: 'code',label: '角色标识',sortable: 'custom'}, {prop: 'code',label: '角色标识', minWidth: 110, sortable: 'custom'},
{prop: 'remarks',label: '备注',sortable: 'custom'}, {prop: 'remarks',label: '备注', minWidth: 110, sortable: 'custom'},
{prop: 'createTime',label: '创建时间',sortable: 'custom'}, {prop: 'createTime',label: '创建时间',sortable: 'custom'},
{label: '操作',active: [ {label: '操作', minWidth: 160, active: [
{name: '修改', icon: 'el-icon-edit', handle: (row) => this.handleEdit(row.id)}, {name: '修改', icon: 'el-icon-edit', handle: (row) => this.handleEdit(row.id)},
{name: '分配权限', icon: 'el-icon-finished', handle: (row) => this.authorization(row.id)}, {name: '分配权限', icon: 'el-icon-finished', handle: (row) => this.authorization(row.id)},
], ],