Commit b8053e6c authored by dll's avatar dll

提交

parent 4b7fe4c3
...@@ -106,6 +106,9 @@ ins,a { ...@@ -106,6 +106,9 @@ ins,a {
.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;} .flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;} .flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
.flex_warp{flex-wrap: wrap;} .flex_warp{flex-wrap: wrap;}
.flex_end{
justify-content: flex-end;
}
.clearfix{ .clearfix{
&:after{ &:after{
content: ''; content: '';
......
...@@ -247,7 +247,7 @@ export default { ...@@ -247,7 +247,7 @@ export default {
return info return info
}, },
// 格式化员工类型 // 格式化员工类型
formatterStatus(row, column, val){ formatterType(row, column, val){
const content = formatter(this.tableData, column, val); const content = formatter(this.tableData, column, val);
if (content) { if (content) {
if (val == '1') { if (val == '1') {
...@@ -261,6 +261,19 @@ export default { ...@@ -261,6 +261,19 @@ export default {
return val return val
} }
}, },
// 格式化是否在政务中心
formatterSource(row, column, val){
const content = formatter(this.tableData, column, val);
if (content) {
if (val == '1') {
return <el-tag size='mini'></el-tag>
} else if (val == '2') {
return <el-tag size='mini'></el-tag>
}
} else {
return val
}
},
// 多选表格行 // 多选表格行
handleSelectionChange(val) { handleSelectionChange(val) {
this.selection = val.map(i => i.id); this.selection = val.map(i => i.id);
...@@ -353,6 +366,13 @@ export default { ...@@ -353,6 +366,13 @@ export default {
query: this.tableConfig.addQuery, query: this.tableConfig.addQuery,
}) })
}, },
// 导出
toexport(){
this.$router.push({
path: this.pageInfo.importView,
query: this.tableConfig.addQuery,
})
},
// 返回 // 返回
toBack() { toBack() {
this.$router.push({ this.$router.push({
......
export const timestampToTime = (timestamp) => {
// 时间戳为10位需*1000,时间戳为13位不需乘1000
var date = new Date(timestamp * 1000);
var Y = date.getFullYear() + "-";
var M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
var h = date.getHours() + ":";
var m = date.getMinutes() + ":";
var s = date.getSeconds();
return Y + M + D;
}
\ No newline at end of file
...@@ -72,7 +72,21 @@ export default { ...@@ -72,7 +72,21 @@ export default {
this.$store.commit('setThirdPath',path) this.$store.commit('setThirdPath',path)
this.$router.push({path}) this.$router.push({path})
let thirdArr = this.headBar.children.find(item => item.path === path) let thirdArr = this.headBar.children.find(item => item.path === path)
this.$store.commit('setCurrentThirdArr',thirdArr.children) let arr = []
console.log(thirdArr,'ssssss')
if(thirdArr.children.length === 0){
arr.push(
{
children: [],
id: thirdArr.id,
name: thirdArr.name,
path: thirdArr.path
}
)
}else{
arr = thirdArr.children
}
this.$store.commit('setCurrentThirdArr',arr)
this.$emit('changePath',path)//触发点击事件 this.$emit('changePath',path)//触发点击事件
}, },
......
...@@ -2,11 +2,12 @@ ...@@ -2,11 +2,12 @@
<template> <template>
<div class="layout-table" :loading="data.loading"> <div class="layout-table" :loading="data.loading">
<TabPane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick" v-if="config.isshowTabPane"></TabPane>
<div class="table-head flex flex-pack-justify"> <div class="table-head flex flex-pack-justify">
<div class="table-head-left flex flex-align-center"> <div class="table-head-left flex flex-align-center">
<slot name="breadcrumb"> <!-- <slot name="breadcrumb">
<Breadcrumb style="margin-left: 10px" /> <Breadcrumb style="margin-left: 10px" />
</slot> </slot> -->
<div class="buttons"> <div class="buttons">
<el-row> <el-row>
<slot name="table-head-left"></slot> <slot name="table-head-left"></slot>
...@@ -117,6 +118,7 @@ ...@@ -117,6 +118,7 @@
<div class="table-form"> <div class="table-form">
<slot name="table-search-left"></slot> <slot name="table-search-left"></slot>
<SearchForm <SearchForm
:search="config.search" :search="config.search"
v-if="isShowButton('notSearch')" v-if="isShowButton('notSearch')"
...@@ -124,6 +126,7 @@ ...@@ -124,6 +126,7 @@
:downloadUrl="config.downloadUrl" :downloadUrl="config.downloadUrl"
:areaSelect="config.areaSelect" :areaSelect="config.areaSelect"
/> />
</div> </div>
</div> </div>
</div> </div>
...@@ -217,7 +220,7 @@ import DataTable from "@/components/DataTable.vue"; ...@@ -217,7 +220,7 @@ import DataTable from "@/components/DataTable.vue";
import DataTableMobile from "./DataTableMobile.js"; import DataTableMobile from "./DataTableMobile.js";
import DataTableFlow from "./DataTableFlow.vue"; import DataTableFlow from "./DataTableFlow.vue";
import DataTreeTable from "@/components/DataTreeTable.vue"; import DataTreeTable from "@/components/DataTreeTable.vue";
import TabPane from "@/components/tabPane.vue"
export default { export default {
props: { props: {
data: { data: {
...@@ -239,6 +242,7 @@ export default { ...@@ -239,6 +242,7 @@ export default {
DataTableMobile, DataTableMobile,
DataTableFlow, DataTableFlow,
DataTreeTable, DataTreeTable,
TabPane
}, },
methods: { methods: {
// 根据url的query参数判断是否展示查询条件 // 根据url的query参数判断是否展示查询条件
...@@ -264,6 +268,12 @@ export default { ...@@ -264,6 +268,12 @@ export default {
isShowBtn(name) { isShowBtn(name) {
return this.canShow.indexOf(name) !== -1; return this.canShow.indexOf(name) !== -1;
}, },
handleClick(key){
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
}
}, },
watch: { watch: {
$route(route) { $route(route) {
...@@ -278,14 +288,21 @@ export default { ...@@ -278,14 +288,21 @@ export default {
this.showType = this.config.showType ? this.config.showType : "table"; this.showType = this.config.showType ? this.config.showType : "table";
return Object.keys(this.$attrs) || []; return Object.keys(this.$attrs) || [];
}, },
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
}
}, },
data() { data() {
return { return {
loading: this.config.loading, loading: this.config.loading,
showSearch: this.isShowSearch(this.$route.query), showSearch: this.isShowSearch(this.$route.query),
showType: "table", showType: "table",
}; }
}, }
}; };
</script> </script>
......
...@@ -21,6 +21,7 @@ const router = new Router({ ...@@ -21,6 +21,7 @@ const router = new Router({
builder('/authentication', 'login/authentication'), builder('/authentication', 'login/authentication'),
builder('/login', 'login/login'), builder('/login', 'login/login'),
builder('/sso', 'SSO'), builder('/sso', 'SSO'),
{ {
path: '/', path: '/',
name: 'layout', name: 'layout',
...@@ -37,10 +38,8 @@ const router = new Router({ ...@@ -37,10 +38,8 @@ const router = new Router({
...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户 ...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户
...restBuilder('param', 'system/param'), // 系统管理--参数管理 ...restBuilder('param', 'system/param'), // 系统管理--参数管理
...restBuilder('task', 'system/task'), // 系统管理--任务管理 ...restBuilder('task', 'system/task'), // 系统管理--任务管理
//部门 //部门
...restBuilder('dept', 'dept'),//部门 ...restBuilder('dept', 'dept'),//部门
...restBuilder('staff', 'staff'),//花名册 员工信息 ...restBuilder('staff', 'staff'),//花名册 员工信息
...restBuilder('staff/care', 'staff/care'),// 员工关怀信息 ...restBuilder('staff/care', 'staff/care'),// 员工关怀信息
...restBuilder('care/template', 'care/template'),// 关怀问候信息 ...restBuilder('care/template', 'care/template'),// 关怀问候信息
......
...@@ -3,10 +3,7 @@ ...@@ -3,10 +3,7 @@
<LayoutHeader v-if="menuPage!=='left'" @changePath="changePath"></LayoutHeader> <LayoutHeader v-if="menuPage!=='left'" @changePath="changePath"></LayoutHeader>
<LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage==='left'" /> <LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage==='left'" />
<div style="padding:20px"> <div style="padding:20px">
<el-card>
<TabPane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></TabPane>
<router-view :class="{'active': !isOpen}" /> <router-view :class="{'active': !isOpen}" />
</el-card>
</div> </div>
</div> </div>
</template> </template>
...@@ -39,13 +36,6 @@ export default { ...@@ -39,13 +36,6 @@ export default {
"--padding-top": this.menuPage === "left" ? "60px" : "0px", "--padding-top": this.menuPage === "left" ? "60px" : "0px",
"--margin-left": this.menuPage === "left" ? "200px" : "0px", "--margin-left": this.menuPage === "left" ? "200px" : "0px",
} }
},
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
} }
}, },
methods: { methods: {
...@@ -54,12 +44,6 @@ export default { ...@@ -54,12 +44,6 @@ export default {
}, },
changePath(e){ changePath(e){
this.path = e this.path = e
},
handleClick(key){
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
} }
}, },
}; };
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -68,6 +65,7 @@ ...@@ -68,6 +65,7 @@
config: { config: {
search: [ search: [
], ],
isshowTabPane:true,
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -40,11 +37,20 @@ ...@@ -40,11 +37,20 @@
}, },
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); // this.$refs.drawerform.add(row);
this.$router.push(
{
path:'/attendance/group/view'
}
)
}, },
/** 重写编辑方法 */ /** 重写编辑方法 */
toEdit(row) { toEdit(row) {
this.$refs.drawerform.edit(row); this.$router.push(
{
path:'/attendance/group/view'
}
)
}, },
/** 重写查看方法 */ /** 重写查看方法 */
toView(row) { toView(row) {
...@@ -64,36 +70,44 @@ ...@@ -64,36 +70,44 @@
{prop:"remark",label:"备注",width:100}, {prop:"remark",label:"备注",width:100},
], ],
config: { config: {
isshowTabPane:true,
search: [ search: [
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "参与考勤人数", prop: "personNum",formatter: this.formatter}, {label: "考勤组名称", prop: "personNum",formatter: this.formatter},
{label: "人数", prop: "personNum",formatter: this.formatter},
{label: "负责人", prop: "personNum",formatter: this.formatter},
{label: "类型", prop: "type",formatter: this.formatter}, {label: "类型", prop: "type",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, // {label: "创建用户", prop: "createUserId", formatter: this.formatter},
{label: "未参与考勤人数", prop: "personNumNo",formatter: this.formatter}, // {label: "未参与考勤人数", prop: "personNumNo",formatter: this.formatter},
{label: "考勤方式", prop: "attendanceType"}, // {label: "考勤方式", prop: "attendanceType"},
{label: "考勤组人员信息",
width: 120, {label: "考勤时间", prop: "attendanceType"},
prop: "subColumns",
formatter: (row) => { // {label: "考勤组人员信息",
let widthsize = this.columnSet.reduce((pre, cur) => { // width: 120,
return pre + Number(cur.width); // prop: "subColumns",
}, 50); // formatter: (row) => {
return ( // let widthsize = this.columnSet.reduce((pre, cur) => {
<el-popover placement="right" width={widthsize} trigger="click"> // return pre + Number(cur.width);
{this.renderTable(row.attendanceGroupStaffList)} // }, 50);
<el-button type="text" slot="reference">详细</el-button> // return (
</el-popover> // <el-popover placement="right" width={widthsize} trigger="click">
); // {this.renderTable(row.attendanceGroupStaffList)}
}, // <el-button type="text" slot="reference">详细</el-button>
}, // </el-popover>
// );
// },
// },
{ {
label: "操作", label: "操作",
width: 240, width: 240,
......
<template> <template>
<layout-view> <div class="container">
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border> <el-card style="min-height:80vh">
<template slot="title"> <tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane>
<i class="el-icon-tickets"></i> <div>
基本详细信息 <div>考勤组名称</div>
</template> <el-input placeholder="请输入考勤组名称"></el-input>
<template slot="extra"> </div>
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button> <div>
</template> <div>考勤人员</div>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass"> <el-button type="text">设置</el-button>
{{form.groupName}} </div>
</el-descriptions-item> <div>
<el-descriptions-item label="参与考勤人数" label-class-name="labelClass" content-class-name="contentClass"> <div>参与考勤人员</div>
{{form.personNum}} <el-button type="text">设置</el-button>
</el-descriptions-item> </div>
<el-descriptions-item label="类型" label-class-name="labelClass" content-class-name="contentClass"> <div>
{{ util_formatters("type", form.type) }} <div>无需考勤人员</div>
</el-descriptions-item> <el-button type="text">设置</el-button>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass"> </div>
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="未参与考勤人数" label-class-name="labelClass" content-class-name="contentClass">
{{form.personNumNo}}
</el-descriptions-item>
<el-descriptions-item label="考勤方式" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("attendanceType", form.attendanceType) }}
</el-descriptions-item>
</el-descriptions>
</layout-view> <div style="height:20px"></div>
<div>
<div>考勤组负责人</div>
<el-button type="text">设置</el-button>
</div>
<div>
<div>主负责人</div>
<el-button type="text">设置</el-button>
</div>
<div>
<div>子负责人</div>
<el-button type="text">设置</el-button>
</div>
<div>
<div>子负责人权限</div>
<el-button type="text">设置</el-button>
</div>
<div style="height:20px"></div>
<div>
<div>考勤时间</div>
<el-button type="text">设置</el-button>
</div>
<div>
<div>考勤类型</div>
<el-button type="text">设置</el-button>
</div>
<div>
<div>工作日设置</div>
<el-button type="text">设置</el-button>
</div>
<div style="height:20px"></div>
<div>
<div>打卡方式</div>
<el-button type="text">设置</el-button>
</div>
<div>
<div>考勤方式</div>
<el-button type="text">设置</el-button>
</div>
</el-card>
</div>
</template> </template>
<script> <script>
import view from "@/assets/mixins/view"; import tabPane from '@/components/tabPane.vue'
export default { export default {
mixins: [view],
components: { components: {
tabPane
}, },
methods: { methods: {
...@@ -52,6 +89,13 @@ ...@@ -52,6 +89,13 @@
], ],
toDate: [ toDate: [
],
activeName:'/attendance/group/view',
thirdList:[
{
name:'新增考勤组',
path:'/attendance/group/view'
}
] ]
} }
} }
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "leavePersonId", name: "leavePersonId",
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -38,6 +35,7 @@ ...@@ -38,6 +35,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
......
...@@ -7,15 +7,30 @@ ...@@ -7,15 +7,30 @@
size="50%"> size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="父id" prop="parentId" v-model="form.parentId" placeholder="请输入父id"/> <!-- <Field label="父id" prop="parentId" v-model="form.parentId" placeholder="请输入父id"/> -->
<Field label="祖级列表" prop="ancestors" v-model="form.ancestors" type="textarea" placeholder="请输入祖级列表"/> <!-- <Field label="祖级列表" prop="ancestors" v-model="form.ancestors" type="textarea" placeholder="请输入祖级列表"/> -->
<Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/> <!-- <Field label="部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入部门名称"/> -->
<Field label="部门状态" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择部门状态"/> <!-- <Field label="上级部门" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择上级部门"/> -->
<Field label="顺序" prop="orderNum" v-model="form.orderNum" placeholder="请输入顺序"/> <!-- <Field label="负责人" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择员工"/> -->
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <!-- <Field label="部门状态" prop="deptStatus" v-model="form.deptStatus" type="select" :enumData="dict.deptStatus" placeholder="请选择部门状态"/> -->
<!-- <Field label="顺序" prop="orderNum" v-model="form.orderNum" placeholder="请输入顺序"/> -->
<!-- <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> -->
</el-row> <el-form-item label="部门名称" prop="deptName">
<el-input placeholder="请输入部门名称" clearable v-model="form.deptName"></el-input>
</el-form-item>
<el-form-item label="上级部门">
<el-select placeholder="请选择上级部门" clearable v-model="form">
<el-option></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人">
<el-select placeholder="请选择员工" clearable>
<el-option></el-option>
</el-select>
</el-form-item>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit='submitForm' noCancelBtn />
</el-form> </el-form>
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -38,40 +35,43 @@ ...@@ -38,40 +35,43 @@
data() { data() {
return { return {
config: { config: {
search: [ // search: [
{ // {
name: "orderNum", // name: "orderNum",
type: "text", // type: "text",
label: "顺序", // label: "顺序",
fuzzy: true // fuzzy: true
}, // },
{ // {
name: "createUserId", // name: "createUserId",
type: "text", // type: "text",
label: "创建用户", // label: "创建用户",
fuzzy: true // fuzzy: true
}, // },
], // ],
isshowTabPane:true,
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "祖级列表", prop: "ancestors"}, // {label: "祖级列表", prop: "ancestors"},
{label: "部门名称", prop: "deptName"}, {label: "部门名称", prop: "deptName"},
{label: "成员数量", prop: "deptName"},
{label: "负责人", prop: "deptName"},
{label: "部门状态", prop: "deptStatus",formatter: this.formatter}, // {label: "部门状态", prop: "deptStatus",formatter: this.formatter},
{label: "顺序", prop: "orderNum",formatter: this.formatter}, // {label: "顺序", prop: "orderNum",formatter: this.formatter},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, // {label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: row => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); )
} }
} }
] ]
......
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
<Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/> <Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/>
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/> <Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button> <el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
this.urls.currUrl = "job/add"; this.urls.currUrl = "job/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type="add"
this.title = "新增职位信息"; this.title = "新增员工信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <div style="margin:10px 0">
</LayoutTable> <tab-pane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></tab-pane>
</div>
<el-row :gutter="20">
<el-col :span="6" :xs="12" class="mytree">
<div class="titles">
<el-button type="primary">新增分组</el-button>
<el-button type="success">新增职位</el-button>
</div>
<el-scrollbar style="height: 100%">
<el-tree
size="mini"
ref="siteTree"
:data="areaData"
id="el-tree"
node-key="id"
indent="4"
:props="treeProps"
:load="loadNode"
highlight-current
default-expand-all
:expand-on-click-node="false"
:render-content="renderContent"
@node-click="handleNodeClick"
>
</el-tree>
</el-scrollbar>
</el-col>
<el-col :span="18" :xs="12" class="mytree">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</el-col>
</el-row>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -12,14 +40,26 @@ ...@@ -12,14 +40,26 @@
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import tree from "@/assets/mixins/tree";
import TabPane from "@/components/tabPane.vue"
export default { export default {
name: "JobList", name: "JobList",
components: { components: {
drawerShow drawerShow,
}, TabPane
mixins: [table], },
mixins: [table,tree],
created() { created() {
}, },
computed:{
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
}
},
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -33,7 +73,16 @@ ...@@ -33,7 +73,16 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
// 获取全部职位
getpositions(){
},
handleClick(key){
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
},
}, },
data() { data() {
return { return {
...@@ -62,23 +111,29 @@ ...@@ -62,23 +111,29 @@
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "分组名称", prop: "groupName"}, // {label: "分组名称", prop: "groupName"},
{label: "职位编码", prop: "jobCode"}, // {label: "职位编码", prop: "jobCode"},
{label: "职位名称", prop: "jobName"}, // {label: "职位名称", prop: "jobName"},
{label: "姓名", prop: "jobName"},
{label: "部门", prop: "jobName"},
{label: "员工类型", prop: "jobName"},
{label: "手机号", prop: "jobName"},
{label: "添加时间", prop: "jobName"},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: row => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons noAdd noEdit row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); )
} }
} }
] ]
},
areaData:[]
} }
};
} }
}; };
</script> </script>
\ No newline at end of file
...@@ -35,14 +35,8 @@ ...@@ -35,14 +35,8 @@
data() { data() {
return { return {
config: { config: {
search: [ isshowTabPane:true,
{ showType:[],
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
......
...@@ -5,27 +5,39 @@ ...@@ -5,27 +5,39 @@
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%">
<div class="tips">此功能为快速添加员工入口,如需为员工办理完整的入职手续,请使用[员工关系-入职管理]功能</div>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<!-- <Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/> -->
<!-- <Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> -->
<!-- <Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/> -->
<!-- <Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/> -->
<!-- <Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> -->
<!-- <Field label="政治面貌 " prop="politicalstatus" v-model="form.politicalstatus" type="select" :enumData="dict.politicalstatus" placeholder="请选择政治面貌 "/> -->
<!-- <Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> -->
<Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/> <Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/>
<Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> <Field label="手机号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/>
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/>
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="政治面貌 " prop="politicalstatus" v-model="form.politicalstatus" type="select" :enumData="dict.politicalstatus" placeholder="请选择政治面貌 "/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> <Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
<Field label="职位ID" prop="positionId" v-model="form.positionId" placeholder="请输入职位ID"/> <Field label="职位" prop="positionId" v-model="form.positionId" type="select" placeholder="请选择职位"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/>
<Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型"/> <Field label="工号" prop="positionId" v-model="form.positionId" placeholder="请输入工号"/>
<Field label="员工状态" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态"/>
<Field label="入职登记表" prop="registerPath" v-model="form.registerPath" type="textarea" placeholder="请输入入职登记表"/> <Field label="是否在政务大厅" prop="positionId" v-model="form.positionId" placeholder="请选择" type="select"/>
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" />
<Field label="转正时间" prop="regularDate" v-model="form.regularDate" type="date" /> <!-- <Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/> -->
<Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" /> <!-- <Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型"/> -->
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <!-- <Field label="员工状态" prop="status" v-model="form.status" type="select" :enumData="dict.status" placeholder="请选择员工状态"/> -->
<!-- <Field label="入职登记表" prop="registerPath" v-model="form.registerPath" type="textarea" placeholder="请输入入职登记表"/> -->
<!-- <Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" /> -->
<!-- <Field label="转正时间" prop="regularDate" v-model="form.regularDate" type="date" /> -->
<!-- <Field label="离职时间" prop="leaveDate" v-model="form.leaveDate" type="date" /> -->
<!-- <Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> -->
</el-row> </el-row>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit='submitForm' noCancelBtn />
...@@ -72,9 +84,9 @@ ...@@ -72,9 +84,9 @@
{required: true,message: "请输入员工姓名", trigger: "blur" }, {required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, {max: 64,message: "最多只能录入64个字符",trigger: "blur",},
], ],
createTime: [ // createTime: [
{required: true,message: "请选择创建时间" }, // {required: true,message: "请选择创建时间" },
], // ],
} }
}; };
}, },
...@@ -149,7 +161,15 @@ ...@@ -149,7 +161,15 @@
if (this.$refs[refName]) { if (this.$refs[refName]) {
this.$refs[refName].resetFields(); this.$refs[refName].resetFields();
} }
}, }
}, }
}; }
</script> </script>
<style scoped>
.tips{
margin-left: 120px;
margin-bottom: 20px;
color: #999;
font-size: 15px;
}
</style>
\ No newline at end of file
<template>
<div class="personal">
<el-drawer title="个人主页" :visible.sync="open">
{{data}}
</el-drawer>
</div>
</template>
<script>
export default {
props:{
data:{
type:Object,
default:{}
}
},
data(){
return{
open:true
}
}
}
</script>
<style>
</style>
\ No newline at end of file
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
...@@ -38,6 +37,7 @@ ...@@ -38,6 +37,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
......
<template> <template>
<div class="page"> <div class="page">
<div style="margin:10px 0">
<tab-pane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></tab-pane>
</div>
<div class="totalNum flex"> <div class="totalNum flex">
<div class="item">在职员工 <span class="num">66</span></div> <div class="item">在职员工 <span class="num">66</span></div>
<div class="item flex"> <div class="item flex">
...@@ -40,9 +43,8 @@ ...@@ -40,9 +43,8 @@
<el-row> <el-row>
<div class="controllList"> <div class="controllList">
<!-- <el-button type="primary">新增员工</el-button> --> <!-- <el-button type="primary">导出数据</el-button> -->
<el-button type="primary">导出数据</el-button> <!-- <el-dropdown class="moreControll">
<el-dropdown class="moreControll">
<el-button type="primary"> <el-button type="primary">
更多操作<i class="el-icon-arrow-down el-icon--right"></i> 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
...@@ -52,18 +54,18 @@ ...@@ -52,18 +54,18 @@
<el-dropdown-item>历史花名册</el-dropdown-item> <el-dropdown-item>历史花名册</el-dropdown-item>
<el-dropdown-item>自定义列表字段</el-dropdown-item> <el-dropdown-item>自定义列表字段</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown> -->
<span class="freshTime"> <!-- <span class="freshTime">
<i class="el-icon-refresh"></i> <i class="el-icon-refresh"></i>
<span>上次同步时间:2023-04-09 09:00:00</span> <span>上次同步时间:2023-04-09 09:00:00</span>
</span> </span> -->
</div> </div>
<LayoutTable notDel :data="tableData" :config="tableConfig"> <LayoutTable notDel :data="tableData" :config="tableConfig">
</LayoutTable> </LayoutTable>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<!-- <drawer-show ref="drawerform" @ok="getData" /> --> <drawer-show ref="drawerform" @ok="getData" />
<home-page v-if="isshowHome" :data="personData"></home-page> <home-page v-if="isshowHome" :data="personData"></home-page>
</div> </div>
</template> </template>
...@@ -73,12 +75,12 @@ ...@@ -73,12 +75,12 @@
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import tree from "@/assets/mixins/tree"; import tree from "@/assets/mixins/tree";
import homePage from './homepage.vue' import TabPane from "@/components/tabPane.vue"
export default { export default {
name: "StaffList", name: "StaffList",
components: { components: {
drawerShow, drawerShow,
homePage TabPane,
}, },
mixins: [table,tree], mixins: [table,tree],
created() { created() {
...@@ -87,6 +89,13 @@ ...@@ -87,6 +89,13 @@
}) })
}, },
methods: { methods: {
handleClick(key){
console.log(key)
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
},
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); this.$refs.drawerform.add(row);
...@@ -99,18 +108,20 @@ ...@@ -99,18 +108,20 @@
toView(row) { toView(row) {
// this.$refs.drawerform.view(row); // this.$refs.drawerform.view(row);
// console.log(row) // console.log(row)
this.personData = row // this.personData = row
this.isshowHome = true // this.isshowHome = true
this.$router.push({
path:'/staff/view',
query:{
id:row.id
}
})
}, },
handleNodeClick(node) { handleNodeClick(node) {
this.currentNode = node; this.currentNode = node;
this.query = { deptId: node.id }; this.query = { deptId: node.id };
this.getData(); this.getData();
},
// 切换标签页
handleClick(e){
console.log(this.activeName)
} }
}, },
data() { data() {
...@@ -120,27 +131,9 @@ ...@@ -120,27 +131,9 @@
{ {
name: "name", name: "name",
type: "text", type: "text",
label: "员工姓名", label: "员工姓名或手机号",
fuzzy: true fuzzy: true
}, }
// {
// name: "politicalstatus",
// type: "select",
// label: "政治面貌 ",
// fuzzy: true
// },
// {
// name: "staffType",
// type: "select",
// label: "员工类型",
// fuzzy: true
// },
// {
// name: "status",
// type: "select",
// label: "员工状态",
// fuzzy: true
// },
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
...@@ -149,10 +142,10 @@ ...@@ -149,10 +142,10 @@
{label: "工号", prop: "workNum"}, {label: "工号", prop: "workNum"},
{label: "部门", prop: "deptName"}, {label: "部门", prop: "deptName"},
{label: "职位", prop: "positionName"}, {label: "职位", prop: "positionName"},
{label: "员工类型", prop: "staffType",formatter: this.formatterStatus}, {label: "员工类型", prop: "staffType",formatter: this.formatterType},
{label: "员工状态", prop: "status",formatter: this.formatter}, {label: "员工状态", prop: "status",formatter: this.formatter},
{label: "是否在政务中心", prop: "status",formatter: this.formatter},//未对 {label: "是否在政务中心", prop: "source",formatter: this.formatterSource},//未对
{label: "手机号", prop: "phoneNumber",formatter: this.formatter}, {label: "手机号", prop: "phoneNumber"},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
...@@ -162,12 +155,22 @@ ...@@ -162,12 +155,22 @@
) )
} }
} }
] ],
isshowTabPane:false
}, },
activeName:'first', activeName:'first',
isshowHome:false, isshowHome:false,
personData:[] personData:[]
} }
},
computed:{
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
}
} }
}; };
</script> </script>
......
<template> <template>
<layout-view> <div>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border> <el-card>
<template slot="title"> <div class="flex flex flex-pack-justify" style="margin:10px 0">
<i class="el-icon-tickets"></i> <div style="color:rgb(20, 134, 248);font-weight:bold;padding: 0 20px;">个人主页</div>
qqq基本详细信息 <el-button type="primary" @click="$router.back()" size="small">返回上级</el-button>
</template> </div>
<template slot="extra"> <div class="persons">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button> <div class="cell1 flex flex-pack-justify">
</template> <div class="avator"></div>
<el-descriptions-item label="员工姓名" label-class-name="labelClass" content-class-name="contentClass"> <div class="content">
{{form.name}} <div class="c1">
</el-descriptions-item> <span>{{info.name}}</span>
<el-descriptions-item label="性别" label-class-name="labelClass" content-class-name="contentClass"> <span class="tags" v-if="info.status == 1">正式</span>
{{ util_formatters("gender", form.gender) }} <span class="tags" v-if="info.status == 2">试用</span>
</el-descriptions-item> <span class="tags" v-if="info.status == 3">离职</span>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass"> </div>
{{ util_formatterDate(form.birthday)}} <div class="c2">
</el-descriptions-item> <span>{{info.positionName}}</span>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass"> <span style="margin:0 10px">|</span>
{{form.photoPath}} <span>1512天</span>
</el-descriptions-item> </div>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass"> </div>
{{form.phoneNumber}} </div>
</el-descriptions-item> <div class="cell2">
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass"> <div class="title">成长记录</div>
{{form.idCard}} <div class="flex">
</el-descriptions-item> <div class="history">
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass"> <div class="times">{{info.entryDate}}</div>
{{form.workNum}} <div>入职时间</div>
</el-descriptions-item> </div>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass"> <div class="history">
{{ util_formatters("politicalstatus", form.politicalstatus) }} <div class="times">{{info.regularDate}}</div>
</el-descriptions-item> <div>转正时间</div>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass"> </div>
{{form.deptId}} </div>
</el-descriptions-item> </div>
<el-descriptions-item label="所属部门名称" label-class-name="labelClass" content-class-name="contentClass"> <div class="cell2">
{{form.deptName}} <div class="title flex flex-pack-justify">
</el-descriptions-item> <div>本月假勤统计</div>
<el-descriptions-item label="职位ID" label-class-name="labelClass" content-class-name="contentClass"> <div class="times">更多记录</div>
{{form.positionId}} </div>
</el-descriptions-item> <div class="flex flex-pack-justify" style="margin-top:10px">
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass"> <div class="flex">
{{form.positionName}} <div>实际出勤天数</div>
</el-descriptions-item> <div class="times">2020天</div>
<el-descriptions-item label="员工类型" label-class-name="labelClass" content-class-name="contentClass"> </div>
{{ util_formatters("staffType", form.staffType) }} <div class="flex">
</el-descriptions-item> <div>请假天数</div>
<el-descriptions-item label="员工状态" label-class-name="labelClass" content-class-name="contentClass"> <div class="times">2020天</div>
{{ util_formatters("status", form.status) }} </div>
</el-descriptions-item> </div>
<el-descriptions-item label="入职登记表" label-class-name="labelClass" content-class-name="contentClass"> <div class="flex flex-pack-justify" style="margin-top:10px">
{{form.registerPath}} <div class="flex">
</el-descriptions-item> <div>迟到早退次数</div>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass"> <div class="times">2020次</div>
{{ util_formatterDate(form.entryDate)}} </div>
</el-descriptions-item> <div class="flex">
<el-descriptions-item label="转正时间" label-class-name="labelClass" content-class-name="contentClass"> <div>旷工天数</div>
{{ util_formatterDate(form.regularDate)}} <div class="times">2020天</div>
</el-descriptions-item> </div>
<el-descriptions-item label="离职时间" label-class-name="labelClass" content-class-name="contentClass"> </div>
{{ util_formatterDate(form.leaveDate)}} <div class="flex flex-pack-justify" style="margin-top:10px">
</el-descriptions-item> <div class="flex">
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass"> <div>缺卡次数</div>
{{form.remark}} <div class="times">2020天</div>
</el-descriptions-item> </div>
</el-descriptions> <div class="flex">
<div>加班天数</div>
</layout-view> <div class="times">2020天</div>
</div>
</div>
</div>
<div class="cell2">
<div class="title">当前剩余假期</div>
<div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex">
<div>调休</div>
<div class="times">2020天</div>
</div>
<div class="flex">
<div>婚假</div>
<div class="times">2020天</div>
</div>
</div>
<div class="flex flex-pack-justify" style="margin-top:10px">
<div class="flex">
<div>年假</div>
<div class="times">2020天</div>
</div>
<div class="flex">
<div>陪产假</div>
<div class="times">2020天</div>
</div>
</div>
</div>
</div>
</el-card>
</div>
</template> </template>
<script> <script>
import view from "@/assets/mixins/view"; import {timestampToTime} from '@/assets/utils/dateFormat.js'
export default { export default {
mixins: [view],
components: { components: {
}, },
methods: { methods: {
getdata(id){
this.$get('/staff/info',{id}).then(res => {
if(res.code == 1){
this.info = res.data
this.info.entryDate = timestampToTime(this.info.entryDate)
this.info.regularDate = timestampToTime(this.info.regularDate)
}
})
.catch(err => {
this.$message.error(err.message)
})
}
}, },
data() { data() {
return { return {
size:"small", info:{}
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"status",
],
toArrays: [
],
toDate: [
]
} }
},
created(){
this.getdata(this.$route.query.id)
} }
} }
</script> </script>
<style lang="less"> <style lang="less">
.labelClass{ .persons{
width: 200px; width: 100%;
padding: 0 20px;
.title{
font-weight: bold;
} }
.el-descriptions__body{ .cell1{
margin-left: 5px; .avator{
margin-right: 5px; width: 120px;
color: #606266; height: 150px;
background-color: #FFF; background-color: aliceblue;
}
.c2{
color: #999;
font-size: 12px;
margin-top: 10px;
}
.tags{
background: aliceblue;
padding: 5px;
border-radius: 5px;
color: rgb(20, 134, 248);
font-size: 14px;
}
}
.cell2{
background-color: rgb(247, 246, 246);
border-radius: 10px;
margin-top: 20px;
font-size: 15px;
padding: 10px 15px;
.history{
margin-right: 50px;
margin-top: 20px;
}
.times{
color: rgb(20, 134, 248);
} }
.contentClass{
width: 600px;
} }
}
</style> </style>
\ No newline at end of file
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data='tableData' :config='tableConfig' notPagination /> <!-- <LayoutTable :data='tableData' :config='tableConfig' notPagination /> -->
<dialog-show ref="dialogform" @ok="getData" /> <!-- <dialog-show ref="dialogform" @ok="getData" /> -->
<el-table
:data="tableData"
style="width: 100%;margin-bottom: 20px;"
row-key="id"
border
default-expand-all
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column
v-for="(item,index) in config.columns" :key="index"
:prop="item.prop"
:label="item.label"
width="180">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="query.page"
:page-sizes="[10, 20, 30, 40]"
:page-size="query.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div> </div>
</template> </template>
<script> <script>
import table from '@/assets/mixins/table'; // import table from '@/assets/mixins/table';
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
export default { export default {
mixins: [table], // mixins: [table],
components: { dialogShow }, components: { dialogShow },
methods: { methods: {
// 菜单表格
gettableList(){
this.$post('/menu/list',this.query).then(res => {
if(res.code == 1){
// 原数组
let arr = res.data.data
this.tableData = this.resetTableList(arr)
this.total = res.data.total
}
})
},
// 重排表格
resetTableList(arr){
let result = arr.map(item => {
// 一级目录
if(item.childList.length == 0){
return {
...item,
children:[]
}
}else if(item.childList.length > 0){
return {
...item,
children:this.resetTableList(item.childList)
}
}
})
return result
},
//
handleSizeChange(size){
this.query.size = size
this.gettableList()
},
handleCurrentChange(page){
this.query.page = page
this.gettableList()
},
beforeRender(data) { beforeRender(data) {
this.allMenu = this.sortByGroup(this.util_copy(data.data)); this.allMenu = this.sortByGroup(this.util_copy(data.data));
console.log(this.allMenu,'菜单数据') console.log(this.allMenu,'菜单数据')
...@@ -122,11 +183,14 @@ export default { ...@@ -122,11 +183,14 @@ export default {
}, },
data() { data() {
return { return {
tableData:[],
allMenu: [], // 经过分组排序的表格数据 allMenu: [], // 经过分组排序的表格数据
select: [], // 当前展开的树节点 select: [], // 当前展开的树节点
query: { query: {
'size': -1 page:1,
size:10
}, },
total:0,
config: { config: {
search: [ search: [
{ {
...@@ -136,21 +200,21 @@ export default { ...@@ -136,21 +200,21 @@ export default {
}, },
], ],
columns: [ columns: [
{ type: "selection",reserveSelection:true, width: 60 }, // { type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 }, // { type: "index", label: "序号",align:"center", width: 50 },
{ // {
width: 60, // width: 60,
formatter: row => { // formatter: row => {
const icon = this.select.indexOf(row.id) === -1 ? 'right' : 'down'; // const icon = this.select.indexOf(row.id) === -1 ? 'right' : 'down';
return ( // return (
!row.parentId||row.childList.length>0 // !row.parentId||row.childList.length>0
? <div onClick={()=>{this.selectHandler(row)}}> // ? <div onClick={()=>{this.selectHandler(row)}}>
<i class={'el-icon-arrow-'+icon}></i> // <i class={'el-icon-arrow-'+icon}></i>
</div> // </div>
: '' // : ''
) // )
} // }
}, // },
{ {
prop: 'id', prop: 'id',
label: 'ID', label: 'ID',
...@@ -186,38 +250,41 @@ export default { ...@@ -186,38 +250,41 @@ export default {
width: 100, width: 100,
formatter: this.changeStatus, formatter: this.changeStatus,
}, },
{ // {
label: '操作', // label: '操作',
formatter: (row)=> { // formatter: (row)=> {
return ( // return (
<div> // <div>
<el-link // <el-link
style="margin-right:5px;margin-left:5px" // style="margin-right:5px;margin-left:5px"
icon="el-icon-top" // icon="el-icon-top"
onClick={() => { // onClick={() => {
this.handleUp(row); // this.handleUp(row);
}} // }}
></el-link> // ></el-link>
<el-link // <el-link
style="margin-right:5px;margin-left:5px" // style="margin-right:5px;margin-left:5px"
icon="el-icon-bottom" // icon="el-icon-bottom"
onClick={() => { // onClick={() => {
this.handleDown(row); // this.handleDown(row);
}} // }}
></el-link> // ></el-link>
<table-buttons noView row={row} onEdit={this.toEdit} onDel={this.toDel} /> // <table-buttons noView row={row} onEdit={this.toEdit} onDel={this.toDel} />
</div> // </div>
) // )
}, // },
}, // },
], ],
}, },
} }
},
created(){
this.gettableList()
} }
} }
</script> </script>
......
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