@@ -1,97 +1,125 @@
< template >
< template >
< div class = "app-container" >
< div class = "app-container" >
< el-row :gutter = "20" >
< el-row :gutter = "20" >
< splitpanes : horizontal = "this.$store.getters.device === 'mobile'" class = "default-theme" >
<!-- < splitpanes : horizontal = "this.$store.getters.device === 'mobile'" class = "default-theme" > -- >
<!-- 部门数据 -- >
<!-- 部门数据 -- >
< pane size = "16" >
<!-- < pane size = "16" > -- >
< el-col >
< el-col :span = "4" >
< div class = "" >
< div class = "" >
< el-input v-model = "deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search" style="margin-bottom: 20px" / >
< el-input v-model = "deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
< / div >
style = "margin-bottom: 20px" / >
< div class = "" >
< / div >
< el-tree :data = "deptOptions" :props = "defaultProps" :expand-on-click-node = "false" :filter-node-method = "filterNode" ref = "tree" node -key = " id " default -expand -all highlight -current @ node -click = " handleNodeClick " / >
< div class = "" >
< / div >
< el-tree :data = "deptOptions" :props = "defaultProps" :expand-on-click-node = "false"
:filter-node-method = "filterNode" ref = "tree" node -key = " id " default -expand -all highlight -current
@ node -click = " handleNodeClick " / >
< / div >
< / el-col >
<!-- < / pane > -- >
<!-- 用户数据 -- >
<!-- < pane size = "84" > -- >
< el-col :span = "20" >
< el-form :model = "queryParams" ref = "queryForm" size = "small" :inline = "true" v-show = "showSearch"
label -width = " 68px " >
< el-form-item label = "用户名称" prop = "userName" >
< el-input v-model = "queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px"
@keyup.enter.native ="handleQuery" / >
< / el-form-item >
< el-form-item label = "手机号码" prop = "phonenumber" >
< el-input v-model = "queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px"
@keyup.enter.native ="handleQuery" / >
< / el-form-item >
< el-form-item label = "状态" prop = "status" >
< el-select v-model = "queryParams.status" placeholder="用户状态" clearable style="width: 240px" >
< el -option v-for = "dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
:value = "dict.value" / >
< / el-select >
< / el-form-item >
< el-form-item label = "创建时间" >
< el-date-picker v-model = "dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-"
start -placeholder = " 开始日期 " end -placeholder = " 结束日期 " > < / el-date-picker >
< / el-form-item >
< el-form-item >
< el-button type = "primary" icon = "el-icon-search" size = "mini" @click ="handleQuery" > 搜索 < / el -button >
< el-button icon = "el-icon-refresh" size = "mini" @click ="resetQuery" > 重置 < / el -button >
< / el-form-item >
< / el-form >
< el-row :gutter = "10" class = "mb8" >
< el-col :span = "1.5" >
< el-button type = "primary" plain icon = "el-icon-plus" size = "mini" @click ="handleAdd"
v-hasPermi = "['system:user:add']" > 新增 < / el -button >
< / el-col >
< / el-col >
< / pane >
< el-col :span = "1.5" >
<!-- 用户数据 -- >
< el-button type = "success" plain icon = "el-icon-edit" size = "mini" :disabled = "single" @click ="handleUpdate"
< pane size = "84" >
v-hasPermi = "['system:user:edit']" > 修改 < / el -button >
< el-col >
< el-form :model = "queryParams" ref = "queryForm" size = "small" :inline = "true" v-show = "showSearch" label-width="68px" >
< el -form -item label = "用户名称" prop = "userName" >
< el-input v-model = "queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" / >
< / el-form-item >
< el-form-item label = "手机号码" prop = "phonenumber" >
< el-input v-model = "queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" @keyup.enter.native="handleQuery" / >
< / el-form-item >
< el-form-item label = "状态" prop = "status" >
< el-select v-model = "queryParams.status" placeholder="用户状态" clearable style="width: 240px" >
< el -option v-for = "dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" / >
< / el-select >
< / el-form-item >
< el-form-item label = "创建时间" >
< el-date-picker v-model = "dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" > < / el -date -picker >
< / el-form-item >
< el-form-item >
< el-button type = "primary" icon = "el-icon-search" size = "mini" @click ="handleQuery" > 搜索 < / el -button >
< el-button icon = "el-icon-refresh" size = "mini" @click ="resetQuery" > 重置 < / el -button >
< / el-form-item >
< / el-form >
< el-row :gutter = "10" class = "mb8" >
< el-col :span = "1.5" >
< el-button type = "primary" plain icon = "el-icon-plus" size = "mini" @click ="handleAdd" v-hasPermi = "['system:user:add']" > 新增 < / el -button >
< / el-col >
< el-col :span = "1.5" >
< el-button type = "success" plain icon = "el-icon-edit" size = "mini" :disabled = "single" @click ="handleUpdate" v-hasPermi = "['system:user:edit']" > 修改 < / el -button >
< / el-col >
< el-col :span = "1.5" >
< el-button type = "danger" plain icon = "el-icon-delete" size = "mini" :disabled = "multiple" @click ="handleDelete" v-hasPermi = "['system:user:remove']" > 删除 < / el -button >
< / el-col >
< el-col :span = "1.5" >
< el-button type = "info" plain icon = "el-icon-upload2" size = "mini" @click ="handleImport" v-hasPermi = "['system:user:import']" > 导入 < / el -button >
< / el-col >
< el-col :span = "1.5" >
< el-button type = "warning" plain icon = "el-icon-download" size = "mini" @click ="handleExport" v-hasPermi = "['system:user:export']" > 导出 < / el -button >
< / el-col >
< right-toolbar :showSearch.sync = "showSearch" @queryTable ="getList" :columns = "columns" > < / right-toolbar >
< / el-row >
< el-table v-loading = "loading" :data="userList" @selection-change="handleSelectionChange" >
< el -table -column type = "selection" width = "50" align = "center" / >
< el-table-column label = "用户编号" align = "center" key = "userId" prop = "userId" v-if = "columns.userId.visible" / >
< el-table-column label = "用户名称" align = "center" key = "userName" prop = "userName" v-if = "columns.userName.visible" :show-overflow-tooltip="true" / >
< el-table-column label = "用户昵称" align = "center" key = "nickName" prop = "nickName" v-if = "columns.nickName.visible" :show-overflow-tooltip="true" / >
< el-table-column label = "部门" align = "center" key = "deptName" prop = "dept.deptName" v-if = "columns.deptName.visible" :show-overflow-tooltip="true" / >
< el-table-column label = "手机号码" align = "center" key = "phonenumber" prop = "phonenumber" v-if = "columns.phonenumber.visible" width="120" / >
< el-table-column label = "状态" align = "center" key = "status" v-if = "columns.status.visible" >
< template slot -scope = " scope " >
< el-switch v-model = "scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)" > < / el -switch >
< / template >
< / el-table-column >
< el-table-column label = "创建时间" align = "center" prop = "createTime" v-if = "columns.createTime.visible" width="160" >
< template slot -scope = " scope " >
< span > { { parseTime ( scope . row . createTime ) } } < / span >
< / template >
< / el-table-column >
< el-table-column label = "操作" align = "center" width = "160" class -name = " small -padding fixed -width " >
< template slot -scope = " scope " v-if = "scope.row.userId !== 1" >
< el -button size = "mini" type = "text" icon = "el-icon-edit" @click ="handleUpdate(scope.row)" v-hasPermi = "['system:user:edit']" > 修改 < / el -button >
< el-button size = "mini" type = "text" icon = "el-icon-delete" @click ="handleDelete(scope.row)" v-hasPermi = "['system:user:remove']" > 删除 < / el -button >
< el-dropdown size = "mini" @command ="(command) => handleCommand(command, scope.row)" v-hasPermi = "['system:user:resetPwd', 'system:user:edit']" >
< el -button size = "mini" type = "text" icon = "el-icon-d-arrow-right" > 更多 < / el-button >
< el-dropdown-menu slot = "dropdown" >
< el-dropdown-item command = "handleResetPwd" icon = "el-icon-key" v-hasPermi = "['system:user:resetPwd']" > 重置密码 < / el -dropdown -item >
< el-dropdown-item command = "handleAuthRole" icon = "el-icon-circle-check" v-hasPermi = "['system:user:edit']" > 分配角色 < / el -dropdown -item >
< / el-dropdown-menu >
< / el-dropdown >
< / template >
< / el-table-column >
< / el-table >
< pagination v-show = "total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" / >
< / el-col >
< / el-col >
< / pane >
< el-col :span = "1.5" >
< / splitpanes >
< el-button type = "danger" plain icon = "el-icon-delete" size = "mini" :disabled = "multiple" @click ="handleDelete"
v-hasPermi = "['system:user:remove']" > 删除 < / el -button >
< / el-col >
< el-col :span = "1.5" >
< el-button type = "info" plain icon = "el-icon-upload2" size = "mini" @click ="handleImport"
v-hasPermi = "['system:user:import']" > 导入 < / el -button >
< / el-col >
<!-- < el-col :span = "1.5" >
< el-button type = "warning" plain icon = "el-icon-download" size = "mini" @click ="handleExport"
v-hasPermi = "['system:user:export']" > 导出 < / el -button >
< / el-col > -- >
< el-button type = "warning" plain icon = "el-icon-download" size = "mini" @click ="handleExport"
v-hasPermi = "['system:user:export']" > 导出 < / el -button >
< el-col :span = "1.5" >
< right-toolbar :showSearch.sync = "showSearch" @queryTable ="getList" :columns = "columns" > < / right-toolbar >
< / el-col >
< / el-row >
< el-table v-loading = "loading" :data="userList" @selection-change="handleSelectionChange" >
< el -table -column type = "selection" width = "50" align = "center" / >
< el-table-column label = "用户编号" align = "center" key = "userId" prop = "userId" v-if = "columns.userId.visible" / >
< el-table-column label = "用户名称" align = "center" key = "userName" prop = "userName" v-if = "columns.userName.visible"
:show-overflow-tooltip = "true" / >
< el-table-column label = "用户昵称" align = "center" key = "nickName" prop = "nickName" v-if = "columns.nickName.visible"
:show-overflow-tooltip = "true" / >
< el-table-column label = "部门" align = "center" key = "deptName" prop = "dept.deptName" v-if = "columns.deptName.visible"
:show-overflow-tooltip = "true" / >
< el-table-column label = "手机号码" align = "center" key = "phonenumber" prop = "phonenumber"
v-if = "columns.phonenumber.visible" width="120" / >
< el-table-column label = "状态" align = "center" key = "status" v-if = "columns.status.visible" >
< template slot -scope = " scope " >
< el-switch v-model = "scope.row.status" active-value="0" inactive-value="1"
@change ="handleStatusChange(scope.row)" > < / el -switch >
< / template >
< / el-table-column >
< el-table-column label = "创建时间" align = "center" prop = "createTime" v-if = "columns.createTime.visible" width="160" >
< template slot -scope = " scope " >
< span > { { parseTime ( scope . row . createTime ) } } < / span >
< / template >
< / el-table-column >
< el-table-column label = "操作" align = "center" width = "160" class -name = " small -padding fixed -width " >
< template slot -scope = " scope " v-if = "scope.row.userId !== 1" >
< el -button size = "mini" type = "text" icon = "el-icon-edit" @click ="handleUpdate(scope.row)"
v-hasPermi = "['system:user:edit']" > 修改 < / el -button >
< el-button size = "mini" type = "text" icon = "el-icon-delete" @click ="handleDelete(scope.row)"
v-hasPermi = "['system:user:remove']" > 删除 < / el -button >
< el-dropdown size = "mini" @command ="(command) => handleCommand(command, scope.row)"
v-hasPermi = "['system:user:resetPwd', 'system:user:edit']" >
< el -button size = "mini" type = "text" icon = "el-icon-d-arrow-right" > 更多 < / el-button >
< el-dropdown-menu slot = "dropdown" >
< el-dropdown-item command = "handleResetPwd" icon = "el-icon-key"
v-hasPermi = "['system:user:resetPwd']" > 重置密码 < / el -dropdown -item >
< el-dropdown-item command = "handleAuthRole" icon = "el-icon-circle-check"
v-hasPermi = "['system:user:edit']" > 分配角色 < / el -dropdown -item >
< / el-dropdown-menu >
< / el-dropdown >
< / template >
< / el-table-column >
< / el-table >
< pagination v-show = "total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync = "queryParams.pageSize" @pagination ="getList" / >
< / el-col >
<!-- < / pane > -- >
<!-- < / splitpanes > -- >
< / el-row >
< / el-row >
<!-- 添加或修改用户配置对话框 -- >
<!-- 添加或修改用户配置对话框 -- >
@@ -105,7 +133,8 @@
< / el-col >
< / el-col >
< el-col :span = "12" >
< el-col :span = "12" >
< el-form-item label = "归属部门" prop = "deptId" >
< el-form-item label = "归属部门" prop = "deptId" >
< treeselect v-model = "form.deptId" :options="enabledDeptOptions" :show-count="true" placeholder="请选择归属部门" / >
< treeselect v-model = "form.deptId" :options="enabledDeptOptions" :show-count="true"
placeholder = "请选择归属部门" / >
< / el-form-item >
< / el-form-item >
< / el-col >
< / el-col >
< / el-row >
< / el-row >
@@ -137,14 +166,17 @@
< el-col :span = "12" >
< el-col :span = "12" >
< el-form-item label = "用户性别" >
< el-form-item label = "用户性别" >
< el-select v-model = "form.sex" placeholder="请选择性别" >
< el-select v-model = "form.sex" placeholder="请选择性别" >
< el -option v-for = "dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value" > < / el -option >
< el -option v-for = "dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value = "dict.value" > < / el-option >
< / el-select >
< / el-select >
< / el-form-item >
< / el-form-item >
< / el-col >
< / el-col >
< el-col :span = "12" >
< el-col :span = "12" >
< el-form-item label = "状态" >
< el-form-item label = "状态" >
< el-radio-group v-model = "form.status" >
< el-radio-group v-model = "form.status" >
< el -radio v-for = "dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value" > {{ dict.label }} < / el -radio >
< el -radio v-for = "dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value" > {{
dict.label
}} < / el -radio >
< / el-radio-group >
< / el-radio-group >
< / el-form-item >
< / el-form-item >
< / el-col >
< / el-col >
@@ -153,14 +185,16 @@
< el-col :span = "12" >
< el-col :span = "12" >
< el-form-item label = "岗位" >
< el-form-item label = "岗位" >
< el-select v-model = "form.postIds" multiple placeholder="请选择岗位" >
< el-select v-model = "form.postIds" multiple placeholder="请选择岗位" >
< el -option v-for = "item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId" :disabled="item.status == 1" > < / el-option >
< el -option v-for = "item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId"
: disabled = "item.status == 1" > < / el-option >
< / el-select >
< / el-select >
< / el-form-item >
< / el-form-item >
< / el-col >
< / el-col >
< el-col :span = "12" >
< el-col :span = "12" >
< el-form-item label = "角色" >
< el-form-item label = "角色" >
< el-select v-model = "form.roleIds" multiple placeholder="请选择角色" >
< el-select v-model = "form.roleIds" multiple placeholder="请选择角色" >
< el -option v-for = "item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId" :disabled="item.status == 1" > < / el -option >
< el -option v-for = "item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId"
: disabled = "item.status == 1" > < / el-option >
< / el-select >
< / el-select >
< / el-form-item >
< / el-form-item >
< / el-col >
< / el-col >
@@ -181,7 +215,9 @@
<!-- 用户导入对话框 -- >
<!-- 用户导入对话框 -- >
< el-dialog :title = "upload.title" :visible.sync = "upload.open" width = "400px" append -to -body >
< el-dialog :title = "upload.title" :visible.sync = "upload.open" width = "400px" append -to -body >
< el-upload ref = "upload" :limit = "1" accept = ".xlsx, .xls" :headers = "upload.headers" : action = "upload.url + '?updateSupport=' + upload.updateSupport" :disabled = "upload.isUploading" :on-progress = "handleFileUploadProgress" :on-success = "handleFileSuccess" :auto-upload = "false" drag >
< el-upload ref = "upload" :limit = "1" accept = ".xlsx, .xls" :headers = "upload.headers"
: action = "upload.url + '?updateSupport=' + upload.updateSupport" :disabled = "upload.isUploading"
:on-progress = "handleFileUploadProgress" :on-success = "handleFileSuccess" :auto-upload = "false" drag >
< i class = "el-icon-upload" > < / i >
< i class = "el-icon-upload" > < / i >
< div class = "el-upload__text" > 将文件拖到此处 , 或 < em > 点击上传 < / em > < / div >
< div class = "el-upload__text" > 将文件拖到此处 , 或 < em > 点击上传 < / em > < / div >
< div class = "el-upload__tip text-center" slot = "tip" >
< div class = "el-upload__tip text-center" slot = "tip" >
@@ -189,7 +225,8 @@
< el-checkbox v-model = "upload.updateSupport" / > 是否更新已经存在的用户数据
< el-checkbox v-model = "upload.updateSupport" / > 是否更新已经存在的用户数据
< / div >
< / div >
< span > 仅允许导入xls 、 xlsx格式文件 。 < / span >
< span > 仅允许导入xls 、 xlsx格式文件 。 < / span >
< el-link type = "primary" :underline = "false" style = "font-size: 12px; vertical-align: baseline" @click ="importTemplate" > 下载模板 < / el -link >
< el-link type = "primary" :underline = "false" style = "font-size: 12px; vertical-align: baseline"
@click ="importTemplate" > 下载模板 < / el -link >
< / div >
< / div >
< / el-upload >
< / el-upload >
< div slot = "footer" class = "dialog-footer" >
< div slot = "footer" class = "dialog-footer" >
@@ -335,10 +372,10 @@ export default {
getList ( ) {
getList ( ) {
this . loading = true
this . loading = true
listUser ( this . addDateRange ( this . queryParams , this . dateRange ) ) . then ( response => {
listUser ( this . addDateRange ( this . queryParams , this . dateRange ) ) . then ( response => {
this . userList = response . rows
this . userList = response . rows
this . total = response . total
this . total = response . total
this . loading = false
this . loading = false
}
}
)
)
} ,
} ,
/** 查询部门下拉树结构 */
/** 查询部门下拉树结构 */
@@ -373,11 +410,11 @@ export default {
// 用户状态修改
// 用户状态修改
handleStatusChange ( row ) {
handleStatusChange ( row ) {
let text = row . status === "0" ? "启用" : "停用"
let text = row . status === "0" ? "启用" : "停用"
this . $modal . confirm ( '确认要"' + text + '""' + row . userName + '"用户吗?' ) . then ( function ( ) {
this . $modal . confirm ( '确认要"' + text + '""' + row . userName + '"用户吗?' ) . then ( function ( ) {
return changeUserStatus ( row . userId , row . status )
return changeUserStatus ( row . userId , row . status )
} ) . then ( ( ) => {
} ) . then ( ( ) => {
this . $modal . msgSuccess ( text + "成功" )
this . $modal . msgSuccess ( text + "成功" )
} ) . catch ( function ( ) {
} ) . catch ( function ( ) {
row . status = row . status === "0" ? "1" : "0"
row . status = row . status === "0" ? "1" : "0"
} )
} )
} ,
} ,
@@ -476,18 +513,18 @@ export default {
}
}
} ,
} ,
} ) . then ( ( { value } ) => {
} ) . then ( ( { value } ) => {
resetUserPwd ( row . userId , value ) . then ( response => {
resetUserPwd ( row . userId , value ) . then ( response => {
this . $modal . msgSuccess ( "修改成功,新密码是:" + value )
this . $modal . msgSuccess ( "修改成功,新密码是:" + value )
} )
} )
} ) . catch ( ( ) => { } )
} ) . catch ( ( ) => { } )
} ,
} ,
/** 分配角色操作 */
/** 分配角色操作 */
handleAuthRole : function ( row ) {
handleAuthRole : function ( row ) {
const userId = row . userId
const userId = row . userId
this . $router . push ( "/system/user-auth/role/" + userId )
this . $router . push ( "/system/user-auth/role/" + userId )
} ,
} ,
/** 提交按钮 */
/** 提交按钮 */
submitForm : function ( ) {
submitForm : function ( ) {
this . $refs [ "form" ] . validate ( valid => {
this . $refs [ "form" ] . validate ( valid => {
if ( valid ) {
if ( valid ) {
if ( this . form . userId != undefined ) {
if ( this . form . userId != undefined ) {
@@ -509,12 +546,12 @@ export default {
/** 删除按钮操作 */
/** 删除按钮操作 */
handleDelete ( row ) {
handleDelete ( row ) {
const userIds = row . userId || this . ids
const userIds = row . userId || this . ids
this . $modal . confirm ( '是否确认删除用户编号为"' + userIds + '"的数据项?' ) . then ( function ( ) {
this . $modal . confirm ( '是否确认删除用户编号为"' + userIds + '"的数据项?' ) . then ( function ( ) {
return delUser ( userIds )
return delUser ( userIds )
} ) . then ( ( ) => {
} ) . then ( ( ) => {
this . getList ( )
this . getList ( )
this . $modal . msgSuccess ( "删除成功" )
this . $modal . msgSuccess ( "删除成功" )
} ) . catch ( ( ) => { } )
} ) . catch ( ( ) => { } )
} ,
} ,
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport ( ) {
handleExport ( ) {
@@ -561,18 +598,36 @@ export default {
background : # 2 B2F36 ;
background : # 2 B2F36 ;
border : none ;
border : none ;
}
}
. splitpanes . default - theme . splitpanes _ _splitter {
. splitpanes . default - theme . splitpanes _ _splitter {
position : relative ;
position : relative ;
background : # 39414 A ! important ;
background : # 39414 A ! important ;
transition : background .2 s ease ;
transition : background .2 s ease ;
}
}
. splitpanes . default - theme . splitpanes _ _splitter : hover { background : # 46505 A ! important ; }
. splitpanes . default - theme . splitpanes _ _splitter : : before {
. splitpanes . default - theme . splitpanes _ _splitter : hover {
content : "" ; position : absolute ; left : 50 % ; top : 50 % ; transform : translate ( - 50 % , - 50 % ) ;
background : # 46505 A ! important ;
border - radius : 2 px ; background : # 4 A525B ;
}
. splitpanes . default - theme . splitpanes _ _splitter : : before {
content : "" ;
position : absolute ;
left : 50 % ;
top : 50 % ;
transform : translate ( - 50 % , - 50 % ) ;
border - radius : 2 px ;
background : # 4 A525B ;
}
. splitpanes . default - theme . splitpanes -- vertical . splitpanes _ _splitter : : before {
width : 2 px ;
height : 60 % ;
}
. splitpanes . default - theme . splitpanes -- horizontal . splitpanes _ _splitter : : before {
height : 2 px ;
width : 60 % ;
}
}
. splitpanes . default - theme . splitpanes -- vertical . splitpanes _ _splitter : : before { width : 2 px ; height : 60 % ; }
. splitpanes . default - theme . splitpanes -- horizontal . splitpanes _ _splitter : : before { height : 2 px ; width : 60 % ; }
/* ========== 左侧 pane: 树卡片化 ========== */
/* ========== 左侧 pane: 树卡片化 ========== */
. splitpanes . default - theme . splitpanes _ _pane : first - child {
. splitpanes . default - theme . splitpanes _ _pane : first - child {
@@ -581,23 +636,32 @@ export default {
padding : 12 px ;
padding : 12 px ;
box - sizing : border - box ;
box - sizing : border - box ;
border : 1 px solid # 39414 A ;
border : 1 px solid # 39414 A ;
border - radius : 10 px ; /* 外缘圆角 */
border - radius : 10 px ;
/* 外缘圆角 */
box - shadow :
box - shadow :
0 10 px 20 px rgba ( 0 , 0 , 0 , .28 ) , /* 外部阴影,轻悬浮 */
0 10 px 20 px rgba ( 0 , 0 , 0 , .28 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , .04 ) ; /* 顶部微高光 */
/* 外部阴影,轻悬浮 */
inset 0 1 px 0 rgba ( 255 , 255 , 255 , .04 ) ;
/* 顶部微高光 */
}
}
/* 左卡片内部:搜索输入与树对齐、树铺满 */
/* 左卡片内部:搜索输入与树对齐、树铺满 */
. splitpanes . default - theme . splitpanes _ _pane : first - child . head - container {
. splitpanes . default - theme . splitpanes _ _pane : first - child . head - container {
margin : 0 0 10 px 0 ;
margin : 0 0 10 px 0 ;
}
}
. splitpanes . default - theme . splitpanes _ _pane : first - child . el - input . el - input _ _inner {
. splitpanes . default - theme . splitpanes _ _pane : first - child . el - input . el - input _ _inner {
background : # 2 F3339 ; border : 1 px solid # 444 A52 ; color : # EAEAEA ;
background : # 2 F3339 ;
border : 1 px solid # 444 A52 ;
color : # EAEAEA ;
}
}
. splitpanes . default - theme . splitpanes _ _pane : first - child . el - tree {
. splitpanes . default - theme . splitpanes _ _pane : first - child . el - tree {
height : calc ( 100 % - 48 px ) ; /* 让树尽量铺满高度(根据你的搜索区高度可微调) */
height : calc ( 100 % - 48 px ) ;
/* 让树尽量铺满高度(根据你的搜索区高度可微调) */
overflow : auto ;
overflow : auto ;
background : transparent ; /* 让卡片底色透出 */
background : transparent ;
/* 让卡片底色透出 */
border : none ;
border : none ;
}
}
@@ -610,45 +674,67 @@ export default {
border : 1 px solid # 39414 A ;
border : 1 px solid # 39414 A ;
border - radius : 10 px ;
border - radius : 10 px ;
box - shadow :
box - shadow :
inset 0 12 px 24 px rgba ( 0 , 0 , 0 , .35 ) , /* 内阴影,像面板内凹 */
inset 0 12 px 24 px rgba ( 0 , 0 , 0 , .35 ) ,
0 1 px 0 rgba ( 255 , 255 , 255 , .04 ) inset ;
/* 内阴影,像面板内凹 */
0 1 px 0 rgba ( 255 , 255 , 255 , .04 ) inset ;
}
}
/* 右卡片内部:查询表单、按钮区、表格与卡片留白统一 */
/* 右卡片内部:查询表单、按钮区、表格与卡片留白统一 */
. splitpanes . default - theme . splitpanes _ _pane : last - child . el - form {
. splitpanes . default - theme . splitpanes _ _pane : last - child . el - form {
margin - bottom : 10 px ;
margin - bottom : 10 px ;
}
}
. splitpanes . default - theme . splitpanes _ _pane : last - child . mb8 { margin - bottom : 10 px ; }
. splitpanes . default - theme . splitpanes _ _pane : last - child . mb8 {
margin - bottom : 10 px ;
}
. splitpanes . default - theme . splitpanes _ _pane : last - child . el - table {
. splitpanes . default - theme . splitpanes _ _pane : last - child . el - table {
background : # 1 E2227 ; /* 表格卡片底 */
background : # 1 E2227 ;
/* 表格卡片底 */
border - radius : 10 px ;
border - radius : 10 px ;
border : 1 px solid # 444 A52 ;
border : 1 px solid # 444 A52 ;
overflow : hidden ;
overflow : hidden ;
box - shadow :
box - shadow :
0 8 px 16 px rgba ( 0 , 0 , 0 , .25 ) , /* 外部阴影 */
0 8 px 16 px rgba ( 0 , 0 , 0 , .25 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , .03 ) ;
/* 外部阴影 */
inset 0 1 px 0 rgba ( 255 , 255 , 255 , .03 ) ;
}
}
/* 表头与分页条边距协调 */
/* 表头与分页条边距协调 */
. splitpanes . default - theme . splitpanes _ _pane : last - child . el - table + . el - pagination {
. splitpanes . default - theme . splitpanes _ _pane : last - child . el - table + . el - pagination {
margin - top : 10 px ;
margin - top : 10 px ;
}
}
/* pane 内滚动条统一 */
/* pane 内滚动条统一 */
. splitpanes . default - theme . splitpanes _ _pane : : - webkit - scrollbar { width : 8 px ; height : 8 px ; }
. splitpanes . default - theme . splitpanes _ _pane : : - webkit - scrollbar {
. splitpanes . default - theme . splitpanes _ _pane : : - webkit - scrollbar - thumb { background : # 4 A525B ; border - radius : 6 px ; }
width : 8 px ;
. splitpanes . default - theme . splitpanes _ _pane : : - webkit - scrollbar - track { background : transparent ; }
height : 8 px ;
}
. splitpanes . default - theme . splitpanes _ _pane : : - webkit - scrollbar - thumb {
background : # 4 A525B ;
border - radius : 6 px ;
}
. splitpanes . default - theme . splitpanes _ _pane : : - webkit - scrollbar - track {
background : transparent ;
}
/* 响应式:窄屏减少内边距,避免拥挤 */
/* 响应式:窄屏减少内边距,避免拥挤 */
@ media ( max - width : 1200 px ) {
@ media ( max - width : 1200 px ) {
. splitpanes . default - theme . splitpanes _ _pane : first - child ,
. splitpanes . default - theme . splitpanes _ _pane : first - child ,
. splitpanes . default - theme . splitpanes _ _pane : last - child { padding : 12 px ; }
. splitpanes . default - theme . splitpanes _ _pane : last - child {
padding : 12 px ;
}
}
}
@ media ( max - width : 992 px ) {
@ media ( max - width : 992 px ) {
. splitpanes . default - theme . splitpanes _ _pane : first - child ,
. splitpanes . default - theme . splitpanes _ _pane : first - child ,
. splitpanes . default - theme . splitpanes _ _pane : last - child { padding : 8 px ; border - radius : 8 px ; }
. splitpanes . default - theme . splitpanes _ _pane : last - child {
padding : 8 px ;
border - radius : 8 px ;
}
}
}
< / style >
< / style >