Commit b8053e6c authored by dll's avatar dll

提交

parent 4b7fe4c3
......@@ -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-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
.flex_warp{flex-wrap: wrap;}
.flex_end{
justify-content: flex-end;
}
.clearfix{
&:after{
content: '';
......
......@@ -247,7 +247,7 @@ export default {
return info
},
// 格式化员工类型
formatterStatus(row, column, val){
formatterType(row, column, val){
const content = formatter(this.tableData, column, val);
if (content) {
if (val == '1') {
......@@ -261,6 +261,19 @@ export default {
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) {
this.selection = val.map(i => i.id);
......@@ -353,6 +366,13 @@ export default {
query: this.tableConfig.addQuery,
})
},
// 导出
toexport(){
this.$router.push({
path: this.pageInfo.importView,
query: this.tableConfig.addQuery,
})
},
// 返回
toBack() {
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 {
this.$store.commit('setThirdPath',path)
this.$router.push({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)//触发点击事件
},
......
......@@ -2,11 +2,12 @@
<template>
<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-left flex flex-align-center">
<slot name="breadcrumb">
<!-- <slot name="breadcrumb">
<Breadcrumb style="margin-left: 10px" />
</slot>
</slot> -->
<div class="buttons">
<el-row>
<slot name="table-head-left"></slot>
......@@ -117,6 +118,7 @@
<div class="table-form">
<slot name="table-search-left"></slot>
<SearchForm
:search="config.search"
v-if="isShowButton('notSearch')"
......@@ -124,6 +126,7 @@
:downloadUrl="config.downloadUrl"
:areaSelect="config.areaSelect"
/>
</div>
</div>
</div>
......@@ -217,7 +220,7 @@ import DataTable from "@/components/DataTable.vue";
import DataTableMobile from "./DataTableMobile.js";
import DataTableFlow from "./DataTableFlow.vue";
import DataTreeTable from "@/components/DataTreeTable.vue";
import TabPane from "@/components/tabPane.vue"
export default {
props: {
data: {
......@@ -239,6 +242,7 @@ export default {
DataTableMobile,
DataTableFlow,
DataTreeTable,
TabPane
},
methods: {
// 根据url的query参数判断是否展示查询条件
......@@ -264,6 +268,12 @@ export default {
isShowBtn(name) {
return this.canShow.indexOf(name) !== -1;
},
handleClick(key){
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
}
},
watch: {
$route(route) {
......@@ -278,14 +288,21 @@ export default {
this.showType = this.config.showType ? this.config.showType : "table";
return Object.keys(this.$attrs) || [];
},
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
}
},
data() {
return {
loading: this.config.loading,
showSearch: this.isShowSearch(this.$route.query),
showType: "table",
};
},
}
}
};
</script>
......
......@@ -21,6 +21,7 @@ const router = new Router({
builder('/authentication', 'login/authentication'),
builder('/login', 'login/login'),
builder('/sso', 'SSO'),
{
path: '/',
name: 'layout',
......@@ -37,10 +38,8 @@ const router = new Router({
...restBuilder('user', 'system/user'), // 用户管理 -- 管理用户
...restBuilder('param', 'system/param'), // 系统管理--参数管理
...restBuilder('task', 'system/task'), // 系统管理--任务管理
//部门
...restBuilder('dept', 'dept'),//部门
...restBuilder('staff', 'staff'),//花名册 员工信息
...restBuilder('staff/care', 'staff/care'),// 员工关怀信息
...restBuilder('care/template', 'care/template'),// 关怀问候信息
......
......@@ -3,10 +3,7 @@
<LayoutHeader v-if="menuPage!=='left'" @changePath="changePath"></LayoutHeader>
<LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage==='left'" />
<div style="padding:20px">
<el-card>
<TabPane :thirdList="thirdList" :activeName="activeName" @handleClick="handleClick"></TabPane>
<router-view :class="{'active': !isOpen}" />
</el-card>
</div>
</div>
</template>
......@@ -39,13 +36,6 @@ export default {
"--padding-top": this.menuPage === "left" ? "60px" : "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: {
......@@ -54,12 +44,6 @@ export default {
},
changePath(e){
this.path = e
},
handleClick(key){
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
}
},
};
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
......@@ -68,6 +65,7 @@
config: {
search: [
],
isshowTabPane:true,
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
......@@ -40,11 +37,20 @@
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
// this.$refs.drawerform.add(row);
this.$router.push(
{
path:'/attendance/group/view'
}
)
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
this.$router.push(
{
path:'/attendance/group/view'
}
)
},
/** 重写查看方法 */
toView(row) {
......@@ -64,36 +70,44 @@
{prop:"remark",label:"备注",width:100},
],
config: {
isshowTabPane:true,
search: [
],
columns: [
{type: "selection", width: 60},
{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: "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: "考勤组人员信息",
width: 120,
prop: "subColumns",
formatter: (row) => {
let widthsize = this.columnSet.reduce((pre, cur) => {
return pre + Number(cur.width);
}, 50);
return (
<el-popover placement="right" width={widthsize} trigger="click">
{this.renderTable(row.attendanceGroupStaffList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
// {label: "考勤方式", prop: "attendanceType"},
{label: "考勤时间", prop: "attendanceType"},
// {label: "考勤组人员信息",
// width: 120,
// prop: "subColumns",
// formatter: (row) => {
// let widthsize = this.columnSet.reduce((pre, cur) => {
// return pre + Number(cur.width);
// }, 50);
// return (
// <el-popover placement="right" width={widthsize} trigger="click">
// {this.renderTable(row.attendanceGroupStaffList)}
// <el-button type="text" slot="reference">详细</el-button>
// </el-popover>
// );
// },
// },
{
label: "操作",
width: 240,
......
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="考勤组名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.groupName}}
</el-descriptions-item>
<el-descriptions-item label="参与考勤人数" label-class-name="labelClass" content-class-name="contentClass">
{{form.personNum}}
</el-descriptions-item>
<el-descriptions-item label="类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("type", form.type) }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{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>
<div class="container">
<el-card style="min-height:80vh">
<tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane>
<div>
<div>考勤组名称</div>
<el-input placeholder="请输入考勤组名称"></el-input>
</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>
</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>
<script>
import view from "@/assets/mixins/view";
import tabPane from '@/components/tabPane.vue'
export default {
mixins: [view],
components: {
tabPane
},
methods: {
......@@ -52,6 +89,13 @@
],
toDate: [
],
activeName:'/attendance/group/view',
thirdList:[
{
name:'新增考勤组',
path:'/attendance/group/view'
}
]
}
}
......
......@@ -38,6 +38,7 @@
data() {
return {
config: {
isshowTabPane:true,
search: [
{
name: "leavePersonId",
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
......@@ -38,6 +35,7 @@
data() {
return {
config: {
isshowTabPane:true,
search: [
{
name: "staffName",
......
......@@ -7,15 +7,30 @@
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<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="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="orderNum" v-model="form.orderNum" placeholder="请输入顺序"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<!-- <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="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="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 />
</el-form>
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
......@@ -38,40 +35,43 @@
data() {
return {
config: {
search: [
{
name: "orderNum",
type: "text",
label: "顺序",
fuzzy: true
},
{
name: "createUserId",
type: "text",
label: "创建用户",
fuzzy: true
},
],
// search: [
// {
// name: "orderNum",
// type: "text",
// label: "顺序",
// fuzzy: true
// },
// {
// name: "createUserId",
// type: "text",
// label: "创建用户",
// fuzzy: true
// },
// ],
isshowTabPane:true,
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "祖级列表", prop: "ancestors"},
// {label: "祖级列表", prop: "ancestors"},
{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: "操作",
width: 240,
formatter: row => {
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 @@
<Field label="职位编码" prop="jobCode" v-model="form.jobCode" placeholder="请输入职位编码"/>
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
......
......@@ -67,7 +67,7 @@
this.urls.currUrl = "job/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增职位信息";
this.title = "新增员工信息";
},
/** 查看*/
view(row) {
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<div style="margin:10px 0">
<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" />
</div>
</template>
......@@ -12,14 +40,26 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import tree from "@/assets/mixins/tree";
import TabPane from "@/components/tabPane.vue"
export default {
name: "JobList",
components: {
drawerShow
},
mixins: [table],
drawerShow,
TabPane
},
mixins: [table,tree],
created() {
},
computed:{
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
}
},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,7 +73,16 @@
toView(row) {
this.$refs.drawerform.view(row);
},
// 获取全部职位
getpositions(){
},
handleClick(key){
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
},
},
data() {
return {
......@@ -62,23 +111,29 @@
{type: "selection", width: 60},
{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: "操作",
width: 240,
formatter: row => {
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>
\ No newline at end of file
......@@ -35,14 +35,8 @@
data() {
return {
config: {
search: [
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
],
isshowTabPane:true,
showType:[],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
......
......@@ -38,6 +38,7 @@
data() {
return {
config: {
isshowTabPane:true,
search: [
{
name: "staffName",
......
......@@ -5,27 +5,39 @@
:visible.sync="open"
:direction="direction"
size="50%">
<div class="tips">此功能为快速添加员工入口,如需为员工办理完整的入职手续,请使用[员工关系-入职管理]功能</div>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<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="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="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="phoneNumber" v-model="form.phoneNumber" 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="positionName" v-model="form.positionName" placeholder="请输入职位名称"/>
<Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" 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="请输入备注"/>
<Field label="职位" prop="positionId" v-model="form.positionId" type="select" placeholder="请选择职位"/>
<Field label="工号" prop="positionId" v-model="form.positionId" placeholder="请输入工号"/>
<Field label="是否在政务大厅" prop="positionId" v-model="form.positionId" placeholder="请选择" type="select"/>
<!-- <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="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>
<form-buttons @submit='submitForm' noCancelBtn />
......@@ -72,9 +84,9 @@
{required: true,message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
// createTime: [
// {required: true,message: "请选择创建时间" },
// ],
}
};
},
......@@ -149,7 +161,15 @@
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
}
}
}
</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>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
......@@ -38,6 +37,7 @@
data() {
return {
config: {
isshowTabPane:true,
search: [
{
name: "staffName",
......
<template>
<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="item">在职员工 <span class="num">66</span></div>
<div class="item flex">
......@@ -40,9 +43,8 @@
<el-row>
<div class="controllList">
<!-- <el-button type="primary">新增员工</el-button> -->
<el-button type="primary">导出数据</el-button>
<el-dropdown class="moreControll">
<!-- <el-button type="primary">导出数据</el-button> -->
<!-- <el-dropdown class="moreControll">
<el-button type="primary">
更多操作<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
......@@ -52,18 +54,18 @@
<el-dropdown-item>历史花名册</el-dropdown-item>
<el-dropdown-item>自定义列表字段</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span class="freshTime">
</el-dropdown> -->
<!-- <span class="freshTime">
<i class="el-icon-refresh"></i>
<span>上次同步时间:2023-04-09 09:00:00</span>
</span>
</span> -->
</div>
<LayoutTable notDel :data="tableData" :config="tableConfig">
</LayoutTable>
</el-row>
</el-col>
</el-row>
<!-- <drawer-show ref="drawerform" @ok="getData" /> -->
<drawer-show ref="drawerform" @ok="getData" />
<home-page v-if="isshowHome" :data="personData"></home-page>
</div>
</template>
......@@ -73,12 +75,12 @@
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import tree from "@/assets/mixins/tree";
import homePage from './homepage.vue'
import TabPane from "@/components/tabPane.vue"
export default {
name: "StaffList",
components: {
drawerShow,
homePage
TabPane,
},
mixins: [table,tree],
created() {
......@@ -87,6 +89,13 @@
})
},
methods: {
handleClick(key){
console.log(key)
this.$store.commit('setThirdPath',key)
this.$router.push({
path:key
})
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
......@@ -99,18 +108,20 @@
toView(row) {
// this.$refs.drawerform.view(row);
// console.log(row)
this.personData = row
this.isshowHome = true
// this.personData = row
// this.isshowHome = true
this.$router.push({
path:'/staff/view',
query:{
id:row.id
}
})
},
handleNodeClick(node) {
this.currentNode = node;
this.query = { deptId: node.id };
this.getData();
},
// 切换标签页
handleClick(e){
console.log(this.activeName)
}
},
data() {
......@@ -120,27 +131,9 @@
{
name: "name",
type: "text",
label: "员工姓名",
label: "员工姓名或手机号",
fuzzy: true
},
// {
// name: "politicalstatus",
// type: "select",
// label: "政治面貌 ",
// fuzzy: true
// },
// {
// name: "staffType",
// type: "select",
// label: "员工类型",
// fuzzy: true
// },
// {
// name: "status",
// type: "select",
// label: "员工状态",
// fuzzy: true
// },
}
],
columns: [
{type: "selection", width: 60},
......@@ -149,10 +142,10 @@
{label: "工号", prop: "workNum"},
{label: "部门", prop: "deptName"},
{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: "phoneNumber",formatter: this.formatter},
{label: "是否在政务中心", prop: "source",formatter: this.formatterSource},//未对
{label: "手机号", prop: "phoneNumber"},
{
label: "操作",
width: 240,
......@@ -162,12 +155,22 @@
)
}
}
]
],
isshowTabPane:false
},
activeName:'first',
isshowHome:false,
personData:[]
}
},
computed:{
thirdList(){
if(!this.$store.state.CurrentThirdArr) return []
return this.$store.state.CurrentThirdArr
},
activeName(){
return this.$store.state.ThirdPath
}
}
};
</script>
......
<template>
<div class="page">
<LayoutTable :data='tableData' :config='tableConfig' notPagination />
<dialog-show ref="dialogform" @ok="getData" />
<!-- <LayoutTable :data='tableData' :config='tableConfig' notPagination /> -->
<!-- <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>
</template>
<script>
import table from '@/assets/mixins/table';
// import table from '@/assets/mixins/table';
import dialogShow from "./dialogshow";
export default {
mixins: [table],
// mixins: [table],
components: { dialogShow },
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) {
this.allMenu = this.sortByGroup(this.util_copy(data.data));
console.log(this.allMenu,'菜单数据')
......@@ -122,11 +183,14 @@ export default {
},
data() {
return {
tableData:[],
allMenu: [], // 经过分组排序的表格数据
select: [], // 当前展开的树节点
query: {
'size': -1
page:1,
size:10
},
total:0,
config: {
search: [
{
......@@ -136,21 +200,21 @@ export default {
},
],
columns: [
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{
width: 60,
formatter: row => {
const icon = this.select.indexOf(row.id) === -1 ? 'right' : 'down';
return (
!row.parentId||row.childList.length>0
? <div onClick={()=>{this.selectHandler(row)}}>
<i class={'el-icon-arrow-'+icon}></i>
</div>
: ''
)
}
},
// { type: "selection",reserveSelection:true, width: 60 },
// { type: "index", label: "序号",align:"center", width: 50 },
// {
// width: 60,
// formatter: row => {
// const icon = this.select.indexOf(row.id) === -1 ? 'right' : 'down';
// return (
// !row.parentId||row.childList.length>0
// ? <div onClick={()=>{this.selectHandler(row)}}>
// <i class={'el-icon-arrow-'+icon}></i>
// </div>
// : ''
// )
// }
// },
{
prop: 'id',
label: 'ID',
......@@ -186,38 +250,41 @@ export default {
width: 100,
formatter: this.changeStatus,
},
{
label: '操作',
formatter: (row)=> {
return (
// {
// label: '操作',
// formatter: (row)=> {
// return (
<div>
<el-link
style="margin-right:5px;margin-left:5px"
icon="el-icon-top"
onClick={() => {
this.handleUp(row);
}}
></el-link>
// <div>
// <el-link
// style="margin-right:5px;margin-left:5px"
// icon="el-icon-top"
// onClick={() => {
// this.handleUp(row);
// }}
// ></el-link>
<el-link
style="margin-right:5px;margin-left:5px"
icon="el-icon-bottom"
onClick={() => {
this.handleDown(row);
}}
// <el-link
// style="margin-right:5px;margin-left:5px"
// icon="el-icon-bottom"
// onClick={() => {
// 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>
......
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