Commit dd372aa5 authored by hangjun83's avatar hangjun83

前端: 1、调整样式页面

parent 9e49e6da
......@@ -155,7 +155,7 @@ App running at:
```
> <strong>注意:</strong> 如果需要打包进行正式环境的运行要执行:
```sh
npm build #运行结束会在dist文件生成html文件,将该dist文件夹打包上传至服务中。
npm run build #运行结束会在dist文件生成html文件,将该dist文件夹打包上传至服务中。
```
......
......@@ -3,6 +3,11 @@
margin-bottom: 2vh;
}
.operation button {
width: 150px;
height: 40px;
}
.select-count {
font-weight: 600;
color: #40a9ff;
......
.search {
.operation {
margin-bottom: 2vh;
height: 80vh;
}
.operation form input {
width: 550px;
height: 35px;
}
.select-title {
......
......@@ -6,7 +6,7 @@
<Menu active-name="1-1" theme="primary" width="auto" @on-select="currName = $event">
<MenuItem name="1-1">安装配置</MenuItem>
<MenuItem name="1-2">服务器端</MenuItem>
<MenuItem name="1-3"></MenuItem>
<MenuItem name="1-3">页面</MenuItem>
</Menu>
</Sider>
<Content :style="{
......
......@@ -357,3 +357,67 @@
z-index: 100;
top: 1px;
}
//表格公共样式
.tableInfoBox {
position: relative;
margin: 10px 0px 0px;
background-color: #fff;
border: 1px;
.ivu-table-wrapper {
border: 0px;
}
.ivu-table-border td {
border-color: #f9f9f9;
height: 65px;
}
.ivu-table-tip td {
border-bottom: 1px;
span {
width: 100%;
padding: 0px;
display: inline-block;
color: #aaaaaa;
background-repeat: no-repeat;
background-position: center 50%;
}
}
table th .ivu-table-cell {
position: relative;
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow: inherit;
padding-left: 10px;
padding-right: 10px;
}
/*头部th*/
.ivu-table-header th,
.ivu-table-fixed-header th {
color: #252b2d;
font-weight: bold;
background-color: #f9f9f9;
border:0px;
height: 105px;
}
.ivu-table table {
width: calc(~'100% - 0px') !important;
}
}
/*-弹窗居中显示-*/
.vertical-center-modal {
display: flex;
align-items: center;
justify-content: center;
.ivu-modal {
top: 0;
}
}
\ No newline at end of file
......@@ -3,17 +3,13 @@
@import "./menuManage.less";
</style>
<template>
<div class="search">
<Card>
<Row class="operation" align="middle" justify="space-between">
<div class="search">
<Row type="flex" justify="start" :gutter="24" v-show="showType == 'tree'">
<Col :sm="10" :md="10" :lg="10" :xl="8">
<Card class="operation">
<Row align="middle" justify="start">
<div>
<Button
@click="add"
type="primary"
icon="md-add"
v-show="showType == 'tree'"
>添加子节点</Button
>
<Button @click="add" type="primary" icon="md-add" v-show="showType == 'tree'">添加子节点</Button>
<Button @click="delAll" icon="md-trash">批量删除</Button>
<Dropdown @on-click="handleDropdown" v-show="showType == 'tree'">
<Button>
......@@ -29,301 +25,156 @@
</Dropdown>
</div>
</Row>
<Row type="flex" justify="start" :gutter="16" v-show="showType == 'tree'">
<Col :sm="8" :md="8" :lg="8" :xl="6">
<Alert show-icon>
<Divider />
<Row type="flex" justify="start" :gutter="24" v-show="showType == 'tree'">
<Col>
<Alert v-show="editTitle">
<template slot="desc">
当前选择编辑:
<span class="select-title">{{ editTitle }}</span>
<a
class="select-clear"
v-show="form.id && editTitle"
@click="cancelEdit"
>取消选择</a
>
<a class="select-clear" v-show="form.id && editTitle" @click="cancelEdit">取消选择</a>
</template>
</Alert>
<div style="position: relative">
<div class="tree-bar" :style="{ maxHeight: maxHeight }">
<Tree
ref="tree"
:data="data"
show-checkbox
:render="renderContent"
@on-select-change="selectTree"
@on-check-change="changeSelect"
:check-strictly="!strict"
></Tree>
<Tree ref="tree" :data="data" show-checkbox :render="renderContent" @on-select-change="selectTree" @on-check-change="changeSelect" :check-strictly="!strict"></Tree>
</div>
<Spin size="large" fix v-if="loading"></Spin>
</div>
</Col>
<Col :sm="16" :md="16" :lg="16" :xl="9">
<Form
ref="form"
:model="form"
:label-width="110"
:rules="formValidate"
>
</Row>
</Card>
</Col>
<Col :sm="18" :md="18" :lg="18" :xl="11">
<Card class="operation" bordered shadow>
<Row>
<Icon type="ios-apps" style="display:inline-block;padding-top:5px;"/>
<span style="display:inline-block;padding-left:15px;font-size:16px;font-weight:bold;color:#252b2d">菜单编辑</span>
</Row>
<Divider />
<Row align="middle" justify="start" v-show="editTitle">
<Form ref="form" :model="form" :label-width="110" :rules="formValidate">
<FormItem label="类型" prop="type">
<div v-show="form.menuType == 'top'">
<Icon
type="ios-navigate-outline"
size="16"
style="margin-right: 5px"
></Icon>
<Icon type="ios-navigate-outline" size="16" style="margin-right: 5px"></Icon>
<span>顶部菜单</span>
</div>
<div v-show="form.menuType == 'page'">
<Icon
type="ios-list-box-outline"
size="16"
style="margin-right: 5px"
></Icon>
<Icon type="ios-list-box-outline" size="16" style="margin-right: 5px"></Icon>
<span>页面菜单</span>
</div>
<div v-show="form.menuType == 'button'">
<Icon
type="md-radio-button-on"
size="16"
style="margin-right: 5px"
></Icon>
<Icon type="md-radio-button-on" size="16" style="margin-right: 5px"></Icon>
<span>操作按钮</span>
</div>
</FormItem>
<FormItem label="上级菜单" prop="parentTitle" class="form-noheight">
<div style="display: flex">
<Input
v-model="form.parentTitle"
readonly
style="margin-right: 10px"
/>
<Poptip
transfer
trigger="click"
placement="right-start"
title="选择上级菜单"
width="250"
>
<Input v-model="form.parentTitle" readonly style="margin-right: 10px" />
<Poptip transfer trigger="click" placement="right-start" title="选择上级菜单" width="250">
<Button icon="md-list">选择菜单</Button>
<div slot="content" class="tree-bar tree-select">
<Tree
:data="dataEdit"
@on-select-change="selectTreeEdit"
></Tree>
<Tree :data="dataEdit" @on-select-change="selectTreeEdit"></Tree>
<Spin size="large" fix v-if="loading"></Spin>
</div>
</Poptip>
</div>
</FormItem>
<FormItem
label="名称"
prop="name"
v-if="form.menuType == 'top' || form.menuType == 'page'"
>
<FormItem label="名称" prop="name" v-if="form.menuType == 'top' || form.menuType == 'page'">
<Input v-model="form.name" />
</FormItem>
<FormItem
label="名称"
prop="name"
v-if="form.menuType == 'button'"
class="block-tool"
>
<FormItem label="名称" prop="name" v-if="form.menuType == 'button'" class="block-tool">
<Tooltip placement="right" content="操作按钮名称不得重复">
<Input v-model="form.name" />
</Tooltip>
</FormItem>
<FormItem
label="标题"
prop="title"
>
<FormItem label="标题" prop="title">
<Input v-model="form.title" />
</FormItem>
<FormItem label="页面路径" prop="path">
<Input v-model="form.path" />
</FormItem>
<FormItem
label="按钮权限类型"
prop="buttonType"
v-if="form.menuType == 'button'"
>
<dict
dict="defaultButtonPermission"
v-model="form.buttonType"
placeholder="请选择或输入搜索"
filterable
clearable
/>
<FormItem label="按钮权限类型" prop="buttonType" v-if="form.menuType == 'button'">
<dict dict="defaultButtonPermission" v-model="form.buttonType" placeholder="请选择或输入搜索" filterable clearable />
</FormItem>
<FormItem
label="图标"
prop="icon"
v-if="form.menuType == 'top' || form.menuType == 'page'"
>
<icon-choose
showCustom
showInput
v-model="form.icon"
></icon-choose>
<FormItem label="图标" prop="icon" v-if="form.menuType == 'top' || form.menuType == 'page'">
<icon-choose showCustom showInput v-model="form.icon"></icon-choose>
</FormItem>
<FormItem label="前端组件" prop="component" v-if="form.menuType == 'page'">
<Input v-model="form.component" />
</FormItem>
<FormItem label="排序值" prop="sortOrder">
<Tooltip
trigger="hover"
placement="right"
content="值越小越靠前,支持小数"
>
<InputNumber
:max="1000"
:min="0"
v-model="form.sort"
></InputNumber>
<Tooltip trigger="hover" placement="right" content="值越小越靠前,支持小数">
<InputNumber :max="1000" :min="0" v-model="form.sort"></InputNumber>
</Tooltip>
</FormItem>
<FormItem label="是否启用" prop="status">
<i-switch
size="large"
v-model="form.status"
:true-value="1"
:false-value="0"
>
<i-switch size="large" v-model="form.status" :true-value="1" :false-value="0">
<span slot="open">启用</span>
<span slot="close">禁用</span>
</i-switch>
</FormItem>
<FormItem>
<Button
style="margin-right: 5px"
@click="submitEdit"
:loading="submitLoading"
:disabled="!form.id || !editTitle"
type="primary"
icon="ios-create-outline"
>修改并保存</Button
>
<Button style="margin-right: 5px" @click="submitEdit" :loading="submitLoading" :disabled="!form.id || !editTitle" type="primary" icon="ios-create-outline">修改并保存</Button>
<Button @click="handleReset">重置</Button>
</FormItem>
</Form>
</Row>
</Card>
</Col>
</Row>
</Card>
<Modal
draggable
:title="modalTitle"
v-model="menuModalVisible"
:mask-closable="false"
:width="500"
:styles="{ top: '30px' }"
>
<Form
ref="formAdd"
:model="formAdd"
:label-width="110"
:rules="formValidate"
>
<Modal draggable class="operation" :title="modalTitle" v-model="menuModalVisible" :mask-closable="false" :width="800" :styles="{ top: '30px' }">
<Form ref="formAdd" :model="formAdd" :label-width="110" :rules="formValidate">
<div v-if="showParent">
<FormItem label="上级节点:">{{ parentTitle }}</FormItem>
</div>
<FormItem label="类型" prop="type">
<div v-show="formAdd.type == -1">
<Icon
type="ios-navigate-outline"
size="16"
style="margin-right: 5px"
></Icon>
<Icon type="ios-navigate-outline" size="16" style="margin-right: 5px"></Icon>
<span>顶部菜单</span>
</div>
<div v-show="formAdd.type == 0">
<Icon
type="ios-list-box-outline"
size="16"
style="margin-right: 5px"
></Icon>
<Icon type="ios-list-box-outline" size="16" style="margin-right: 5px"></Icon>
<span>页面菜单</span>
</div>
<div v-show="formAdd.type == 1">
<Icon
type="md-radio-button-on"
size="16"
style="margin-right: 5px"
></Icon>
<Icon type="md-radio-button-on" size="16" style="margin-right: 5px"></Icon>
<span>操作按钮</span>
</div>
</FormItem>
<FormItem
label="名称"
prop="name"
v-if="formAdd.type == -1 || formAdd.type == 0"
>
<FormItem label="名称" prop="name" v-if="formAdd.type == -1 || formAdd.type == 0">
<Input v-model="formAdd.name" />
</FormItem>
<FormItem
label="名称"
prop="name"
v-if="formAdd.type == 1"
class="block-tool"
>
<FormItem label="名称" prop="name" v-if="formAdd.type == 1" class="block-tool">
<Tooltip placement="right" content="操作按钮名称不得重复">
<Input v-model="formAdd.name" />
</Tooltip>
</FormItem>
<FormItem
label="标题"
prop="title"
>
<FormItem label="标题" prop="title">
<Input v-model="formAdd.title" />
</FormItem>
<FormItem label="路径" prop="path" v-if="formAdd.type == 0 || formAdd.type == 1">
<Input v-model="formAdd.path" />
</FormItem>
<FormItem
label="按钮权限类型"
prop="buttonType"
v-if="formAdd.type == 1"
>
<dict
dict="defaultButtonPermission"
v-model="formAdd.buttonType"
placeholder="请选择或输入搜索"
filterable
clearable
/>
<FormItem label="按钮权限类型" prop="buttonType" v-if="formAdd.type == 1">
<dict dict="defaultButtonPermission" v-model="formAdd.buttonType" placeholder="请选择或输入搜索" filterable clearable />
</FormItem>
<FormItem
label="图标"
prop="icon"
v-if="formAdd.type == -1 || formAdd.type == 0"
>
<icon-choose
showCustom
showInput
v-model="formAdd.icon"
></icon-choose>
<FormItem label="图标" prop="icon" v-if="formAdd.type == -1 || formAdd.type == 0">
<icon-choose showCustom showInput v-model="formAdd.icon"></icon-choose>
</FormItem>
<FormItem label="前端组件" prop="component" v-if="formAdd.type == 0">
<Input v-model="formAdd.component" />
</FormItem>
<FormItem label="排序值" prop="sort">
<Tooltip
trigger="hover"
placement="right"
content="值越小越靠前,支持小数"
>
<InputNumber
:max="1000"
:min="0"
v-model="formAdd.sort"
></InputNumber>
<Tooltip trigger="hover" placement="right" content="值越小越靠前,支持小数">
<InputNumber :max="1000" :min="0" v-model="formAdd.sort"></InputNumber>
</Tooltip>
</FormItem>
<FormItem label="是否启用" prop="status">
<i-switch
size="large"
v-model="formAdd.status"
:true-value="1"
:false-value="0"
>
<i-switch size="large" v-model="formAdd.status" :true-value="1" :false-value="0">
<span slot="open">启用</span>
<span slot="close">禁用</span>
</i-switch>
......@@ -331,18 +182,14 @@
</Form>
<div slot="footer">
<Button type="text" @click="menuModalVisible = false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="submitAdd"
>提交</Button
>
<Button type="primary" :loading="submitLoading" @click="submitAdd">提交</Button>
</div>
</Modal>
</div>
</div>
</template>
<script>
import {
getAllPermissionList,
loadPermission,
addSubMenus,
editMenus,
deleteMenus,
......@@ -391,23 +238,37 @@ export default {
buttonType: "",
},
formValidate: {
title: [{ required: true, message: "标题不能为空", trigger: "change" }],
name: [
{ required: true, message: "名称不能为空", trigger: "change" },
],
icon: [{ required: true, message: "图标不能为空", trigger: "change" }],
path: [{ required: true, message: "路径不能为空", trigger: "change" }],
component: [
{ required: true, message: "前端组件不能为空", trigger: "change" },
],
sort: [
{
title: [{
required: true,
message: "标题不能为空",
trigger: "change"
}],
name: [{
required: true,
message: "名称不能为空",
trigger: "change"
}, ],
icon: [{
required: true,
message: "图标不能为空",
trigger: "change"
}],
path: [{
required: true,
message: "路径不能为空",
trigger: "change"
}],
component: [{
required: true,
message: "前端组件不能为空",
trigger: "change"
}, ],
sort: [{
required: true,
type: "number",
message: "排序值不能为空",
trigger: "change",
},
],
}, ],
},
submitLoading: false,
data: [],
......@@ -419,7 +280,11 @@ export default {
init() {
this.getAllList();
},
renderContent(h, { root, node, data }) {
renderContent(h, {
root,
node,
data
}) {
let icon = "";
if (data.level == 0) {
icon = "ios-navigate";
......@@ -644,7 +509,7 @@ export default {
this.formAdd.icon = ""
this.formAdd.component = ""
this.formAdd.type = 'button'
}else if(this.formAdd.type == 0)(
} else if (this.formAdd.type == 0)(
this.formAdd.type = 'page'
)
addSubMenus(this.formAdd).then((res) => {
......@@ -667,7 +532,7 @@ export default {
return;
}
this.parentTitle = this.form.title;
this.modalTitle = "添加子节点(可拖动)";
this.modalTitle = "添加子菜单节点(可拖动)";
this.showParent = true;
let type = 0;
if (this.form.level == 1) {
......@@ -724,8 +589,7 @@ export default {
}
this.$Modal.confirm({
title: "确认删除",
content:
"您确认要删除所选的 " +
content: "您确认要删除所选的 " +
this.selectList.length +
" 条数据及其下级所有数据?",
loading: true,
......@@ -735,7 +599,9 @@ export default {
ids += e.id + ",";
});
ids = ids.substring(0, ids.length - 1);
deleteMenus({ ids: ids }).then((res) => {
deleteMenus({
ids: ids
}).then((res) => {
this.$Modal.remove();
if (res.status == 'success') {
this.$Message.success("删除成功");
......
......@@ -11,14 +11,15 @@
<Button @click="delAll" icon="md-trash">批量删除</Button>
<Button @click="init" icon="md-refresh">刷新</Button>
</Row>
<Alert show-icon v-show="openTip">
<Divider />
<div>
已选择
<span class="select-count">{{ selectList.length }}</span>
<a class="select-clear" @click="clearSelectAll">清空</a>
</Alert>
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
</div>
<Table stripe border class="tableInfoBox" :loading="loading" :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
<Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" size="small" show-total show-elevator show-sizer></Page>
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" show-total show-sizer></Page>
</Row>
</Card>
......
......@@ -36,18 +36,22 @@
</DropdownMenu>
</Dropdown>
</Col>
<Col span="12">
<div style="text-align:right;">
<Button icon="ios-search" style="margin-top:10px" type="text" @click="openSearch = !openSearch">关闭/开启搜索</Button>
</div>
<Col span="12" style="text-align:right">
<Button icon="ios-search" type="dashed" @click="openSearch = !openSearch">开启/关闭搜索</Button>
</Col>
</Row>
<Alert show-icon v-show="openTip">
<Divider />
<Row>
<Col span="3">
<div style="display:inline-block;vertical-align: middle;">
已选择
<span class="select-count">{{ this.selectList.length }}</span>
<span class="select-count">{{ selectList.length }}</span>
<a class="select-clear" @click="clearSelectAll">清空</a>
</Alert>
<Table :loading="loading" border :columns="columns" :data="data" sortable="custom" @on-sort-change="changeSort" @on-selection-change="showSelect" ref="table"></Table>
</div>
</Col>
</Row>
<Table stripe border class="tableInfoBox" :loading="loading" :columns="columns" :data="data" sortable="custom" @on-sort-change="changeSort" @on-selection-change="showSelect"></Table>
<Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" size="small" show-total show-elevator show-sizer></Page>
</Row>
......@@ -64,8 +68,6 @@ import {
enableUser,
disableUser,
deleteUser,
getAllUserData,
resetUserPass,
} from "@/api/index";
import addEdit from "./addEdit.vue";
import {
......@@ -115,27 +117,23 @@ export default {
type: "selection",
width: 60,
align: "center",
fixed: "left",
},
{
type: "index",
width: 60,
align: "center",
fixed: "left",
},
{
title: "登录账号",
key: "username",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "用户名",
key: "nickname",
minWidth: 125,
sortable: true,
fixed: "left",
render: (h, params) => {
return h(
"a", {
......@@ -159,7 +157,7 @@ export default {
title: "类型",
key: "type",
align: "center",
width: 110,
width: 150,
render: (h, params) => {
let re = "",
color = "";
......@@ -181,31 +179,12 @@ export default {
),
]);
},
filters: [{
label: "普通用户",
value: 0,
},
{
label: "管理员",
value: 1,
},
],
filterMultiple: false,
filterRemote: (e) => {
let v = "";
if (e.length > 0) {
v = e[0];
}
this.searchForm.type = v;
this.searchForm.pageNumber = 1;
this.getDataList();
},
},
{
title: "状态",
key: "status",
align: "center",
width: 100,
width: 150,
render: (h, params) => {
if (params.row.status == 1) {
return h("div", [
......@@ -227,25 +206,6 @@ export default {
]);
}
},
filters: [{
label: "启用",
value: 1,
},
{
label: "禁用",
value: 0,
},
],
filterMultiple: false,
filterRemote: (e) => {
let v = "";
if (e.length > 0) {
v = e[0];
}
this.searchForm.status = v;
this.searchForm.pageNumber = 1;
this.getDataList();
},
},
{
title: "所在角色组",
......@@ -467,7 +427,7 @@ export default {
onOk: () => {
enableUser(v.id).then((res) => {
this.$Modal.remove();
if (res.success) {
if (res.status == 'success') {
this.$Message.success("操作成功");
this.getDataList();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment