Commit 767f6e95 authored by dll's avatar dll

'提交'

parent dddd0bca
...@@ -21,7 +21,6 @@ const router = new Router({ ...@@ -21,7 +21,6 @@ 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',
...@@ -38,6 +37,7 @@ const router = new Router({ ...@@ -38,6 +37,7 @@ 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'),//花名册 员工信息
...@@ -63,8 +63,10 @@ const router = new Router({ ...@@ -63,8 +63,10 @@ const router = new Router({
...restBuilder('attendance/class', 'attendance/class'),// 考勤班次信息 ...restBuilder('attendance/class', 'attendance/class'),// 考勤班次信息
...restBuilder('attendance/leave/record', 'attendance/leave/record'),// 请假记录信息 ...restBuilder('attendance/leave/record', 'attendance/leave/record'),// 请假记录信息
...restBuilder('attendance/vacation/balance', 'attendance/vacation/balance'),// 员工假期余额信息 ...restBuilder('attendance/vacation/balance', 'attendance/vacation/balance'),// 员工假期余额信息
// 绩效负责人
...restBuilder('attendance/group/responsible','attendance/group/responsible'),
//以下为基础路由配置 //以下为基础路由配置
builder('blank', 'blank'), builder('blank', 'blank'),
builder('', 'Home'), builder('', 'Home'),
......
<template> <template>
<!-- 弹出框表单 --> <!-- 班次表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-drawer :title="title" :visible.sync="open" size="60%">
<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="className" v-model="form.className" placeholder="请输入班次名称"/> <Field label="班次名称" prop="className" v-model="form.className" placeholder="请输入班次名称"/>
<Field label="班次负责人ID" prop="classResponsiblePersonId" v-model="form.classResponsiblePersonId" placeholder="请输入班次负责人ID"/> <Field label="班次负责人" prop="classResponsiblePersonId" type="select"
<Field label="班次负责人名称" prop="classResponsiblePersonName" v-model="form.classResponsiblePersonName" placeholder="请输入班次负责人名称"/> v-model="form.classResponsiblePersonId" placeholder="请选择班次负责人"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row> </el-row>
<el-divider content-position="center">考勤班次详细信息信息</el-divider> <el-form-item label="上下班时间" prop="attendanceClassDetailList">
<br/> <el-button type="text" @click="handleAddAttendanceClassDetail">添加</el-button>
<el-row :gutter="10" class="mb8"> <div class="bancifor" v-for="(item,index) in attendanceClassDetailList" :key="index">
<el-col :span="1.5"> <div class="title flex flex-align-center flex-pack-justify">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddAttendanceClassDetail">添加</el-button> <span>
</el-col> {{index+1}}次上班时间
<el-col :span="1.5"> </span>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteAttendanceClassDetail">删除</el-button> <el-button type="danger" size="mini" @click="handleDeleteAttendanceClassDetail(index)">删除</el-button>
</el-col> </div>
</el-row> <div>
<span>上班时间</span>
<el-table :data="attendanceClassDetailList" :row-class-name="rowAttendanceClassDetailIndex" @selection-change="handleAttendanceClassDetailSelectionChange" ref="attendanceClassDetail"> <el-time-picker
<el-table-column type="selection" width="50" align="center" /> size="mini"
<el-table-column label="序号" align="center" prop="index" width="50"/> style="width:150px"
<el-table-column label="上班打卡时间" prop="goWorkDate"> class="ml20"
<template slot-scope="scope"> value-format="HH:mm"
<el-input v-model="scope.row.goWorkDate" placeholder="请输入上班打卡时间" /> v-model="goWorkDate"
</template> placeholder="上班时间">
</el-table-column> </el-time-picker>
<el-table-column label="上班打卡前时间段,单位分钟" prop="goWorkDateBefore"> </div>
<template slot-scope="scope"> <div>
<el-input v-model="scope.row.goWorkDateBefore" placeholder="请输入上班打卡前时间段,单位分钟" /> <span>打开时段</span>
</template> <span>上班前</span>
</el-table-column> <el-time-picker
<el-table-column label="上班打卡前时间段,单位分钟" prop="goWorkDateAfter"> size="mini"
<template slot-scope="scope"> style="width:150px"
<el-input v-model="scope.row.goWorkDateAfter" placeholder="请输入上班打卡前时间段,单位分钟" /> class="ml20"
</template> v-model="goWorkDateBefore"
</el-table-column> value-format="HH:mm"
<el-table-column label="下班打卡时间" prop="offWorkDate"> format="HH小时mm分钟"
<template slot-scope="scope"> placeholder="未设置">
<el-input v-model="scope.row.offWorkDate" placeholder="请输入下班打卡时间" /> </el-time-picker>
</template> <span class="ml20">——</span>
</el-table-column> <span class="ml20">下班后</span>
<el-table-column label="下班打卡前时间段,单位分钟" prop="offWorkDateBefore"> <el-time-picker
<template slot-scope="scope"> size="mini"
<el-input v-model="scope.row.offWorkDateBefore" placeholder="请输入下班打卡前时间段,单位分钟" /> style="width:150px"
</template> class="ml20"
</el-table-column> v-model="goWorkDateAfter"
<el-table-column label="下班打卡前时间段,单位分钟" prop="offWorkDateAfter"> value-format="HH:mm"
<template slot-scope="scope"> format="HH小时mm分钟"
<el-input v-model="scope.row.offWorkDateAfter" placeholder="请输入下班打卡前时间段,单位分钟" /> placeholder="未设置">
</template> </el-time-picker>
</el-table-column> </div>
<el-table-column label="备注" prop="remark"> <div>
<template slot-scope="scope"> <span>下班时间</span>
<el-input v-model="scope.row.remark" placeholder="请输入备注" /> <el-time-picker
</template> size="mini"
</el-table-column> style="width:150px"
<el-table-column label="创建用户" prop="createUserId"> class="ml20"
<template slot-scope="scope"> value-format="HH:mm"
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" /> v-model="offWorkDate"
</template> placeholder="下班时间">
</el-table-column> </el-time-picker>
<el-table-column label="创建时间" prop="createTime"> </div>
<template slot-scope="scope"> <div>
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" /> <span>打开时段</span>
</template> <span>上班前</span>
</el-table-column> <el-time-picker
<el-table-column label="更新用户" prop="updateUserId"> size="mini"
<template slot-scope="scope"> style="width:150px"
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" /> class="ml20"
</template> v-model="offWorkDateBefore"
</el-table-column> value-format="HH:mm"
<el-table-column label="更新时间" prop="updateTime"> format="HH小时mm分钟"
<template slot-scope="scope"> placeholder="未设置">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" /> </el-time-picker>
</template> <span class="ml20">——</span>
</el-table-column> <span class="ml20">下班后</span>
<el-table-column label="班次名称" prop="className"> <el-time-picker
<template slot-scope="scope"> size="mini"
<el-input v-model="scope.row.className" placeholder="请输入班次名称" /> style="width:150px"
</template> class="ml20"
</el-table-column> v-model="offWorkDateAfter"
</el-table> value-format="HH:mm"
format="HH小时mm分钟"
placeholder="未设置">
</el-time-picker>
</div>
</div>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div class="dialog-footer ml20">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button> <el-button type="primary" size="mini" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel" size="mini">取 消</el-button>
</div> </div>
</el-dialog> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
...@@ -117,9 +119,15 @@ ...@@ -117,9 +119,15 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
createTime: [ className: [
{required: true,message: "选择创建时间" }, {required: true,message: "输入班次名称" },
], ],
classResponsiblePersonId:[
{required: true,message: "请选择班次负责人" },
],
attendanceClassDetailList:[
{required: true,message: "请添加" }
]
} }
}; };
}, },
...@@ -147,12 +155,13 @@ ...@@ -147,12 +155,13 @@
this.attendanceClassDetailList.push(obj); this.attendanceClassDetailList.push(obj);
}, },
/** 考勤班次详细信息删除按钮操作 */ /** 考勤班次详细信息删除按钮操作 */
handleDeleteAttendanceClassDetail() { handleDeleteAttendanceClassDetail(index) {
if (this.checkedAttendanceClassDetail.length == 0) { this.$alert('确定要删除这条设置吗', '删除提醒', {
this.$alert("请先选择要删除的考勤班次详细信息数据", "提示", { confirmButtonText: "确定", }); confirmButtonText: '确定',
} else { callback: action => {
this.attendanceClassDetailList.splice(this.checkedAttendanceClassDetail[0].index - 1, 1); this.attendanceClassDetailList.splice(index,1)
} }
})
}, },
/** 单选框选中数据 */ /** 单选框选中数据 */
handleAttendanceClassDetailSelectionChange(selection) { handleAttendanceClassDetailSelectionChange(selection) {
...@@ -228,3 +237,13 @@ ...@@ -228,3 +237,13 @@
}, },
}; };
</script> </script>
<style scoped lang="less">
.bancifor{
background-color: #f5f5f5;
padding: 10px;
margin-bottom: 15px;
.title{
border-bottom: 1px solid rgb(206, 206, 206);
}
}
</style>
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
name: "AttendanceClassList", name: "AttendanceClassList",
components: { components: {
dialogShow dialogShow
}, },
mixins: [table], mixins: [table],
created() { created() {
}, },
...@@ -64,34 +64,41 @@ ...@@ -64,34 +64,41 @@
{prop:"className",label:"班次名称",width:100} ], {prop:"className",label:"班次名称",width:100} ],
config: { config: {
search: [ search: [
{
name: "className",
type: "text",
label: "班次名称",
fuzzy: true
}
], ],
isshowTabPane: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: "createUserId", formatter: this.formatter}, {label: "班次名称", prop: "className"},
{label: "考勤班次详细信息", {label: "考勤时间", prop: "className"},
width: 120, // {label: "考勤班次详细信息",
prop: "subColumns", // width: 120,
formatter: (row) => { // prop: "subColumns",
let widthsize = this.columnSet.reduce((pre, cur) => { // formatter: (row) => {
return pre + Number(cur.width); // let widthsize = this.columnSet.reduce((pre, cur) => {
}, 50); // return pre + Number(cur.width);
return ( // }, 50);
<el-popover placement="right" width={widthsize} trigger="click"> // return (
{this.renderTable(row.attendanceClassDetailList)} // <el-popover placement="right" width={widthsize} trigger="click">
<el-button type="text" slot="reference">详细</el-button> // {this.renderTable(row.attendanceClassDetailList)}
</el-popover> // <el-button type="text" slot="reference">详细</el-button>
); // </el-popover>
}, // );
}, // },
// },
{ {
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} />
); );
} }
} }
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "responsibleName", name: "responsibleName",
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<div class="flex flex-align-center mt20"> <div class="flex flex-align-center mt20">
<div>考勤人员</div> <div>考勤人员</div>
<el-button type="text" class="ml20" @click="drawer1= true">设置</el-button> <el-button type="text" class="ml20" @click="drawershow('drawer1')">设置</el-button>
</div> </div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px"> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<div class="flex flex-align-center mt20"> <div class="flex flex-align-center mt20">
<div>考勤组负责人</div> <div>考勤组负责人</div>
<el-button type="text" class="ml20" @click="drawer2= true">设置</el-button> <el-button type="text" class="ml20" @click="drawershow('drawer2')">设置</el-button>
</div> </div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px"> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<div class="flex flex-align-center mt20"> <div class="flex flex-align-center mt20">
<div>考勤时间</div> <div>考勤时间</div>
<el-button type="text" class="ml20" @click="drawer3= true">设置</el-button> <el-button type="text" class="ml20" @click="drawershow('drawer3')">设置</el-button>
</div> </div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px"> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>考勤类型</div> <div>考勤类型</div>
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<div class="flex flex-align-center mt20"> <div class="flex flex-align-center mt20">
<div>打卡方式</div> <div>打卡方式</div>
<el-button type="text" class="ml20" @click="drawer4= true">设置</el-button> <el-button type="text" class="ml20" @click="drawershow('drawer4')">设置</el-button>
</div> </div>
<div class="flex flex-align-center mt10" style="color:#999;font-size:14px"> <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
...@@ -78,81 +78,122 @@ ...@@ -78,81 +78,122 @@
<!-- 设置考勤人员 --> <!-- 设置考勤人员 -->
<el-drawer <el-drawer
title="考勤人员" title="考勤人员"
:beforeClose="closedrawer"
:visible.sync="drawer" :visible.sync="drawer"
direction="rtl" direction="rtl">
:before-close="handleClose"> <div style="padding:20px">
<!-- 考勤人员 --> <!-- 考勤人员 -->
<div> <div v-if="drawer1">
<div>参与考勤人员(0)</div> <div>参与考勤人员(0)</div>
<el-input @focus="selectGroup()" size="mini" placeholder="请选择"></el-input> <el-input @focus="selectGroup()" style="width:220px" size="mini" placeholder="请选择"></el-input>
</div>
<div>
<div>无需考勤人员(0)</div>
<el-input @focus="selectGroup()" size="mini" placeholder="请选择"></el-input>
</div>
<!-- 考勤组 -->
<div>
<span>考勤组负责人:</span>
<el-select></el-select>
</div>
<div>
<span>主负责人:</span>
<el-select></el-select>
</div>
<div>
<span>子负责人:</span>
<el-select></el-select>
</div>
<div>
<span>子负责人权限:</span>
<el-select>
<el-option></el-option>
</el-select>
</div>
<!-- 考勤时间 -->
<div>
<el-radio-group>
<el-radio label="">固定班制(固定时间上下班)</el-radio>
<el-radio label="">排班制(按排班上下班)</el-radio>
<el-radio label="">自由工时(不固定时间上下班)</el-radio>
</el-radio-group>
</div>
<div>
<div>工作日设置:</div>
<div>
<el-tag type="primary">快捷设置班次</el-tag>
<span>班次名称:</span>
<el-button type="text">更改班次</el-button>
</div> </div>
<!-- 班次表 --> <div class="mt10" v-if="drawer1">
<el-table :data="weekList"> <div>无需考勤人员(0)</div>
<el-table-column label="工作日"></el-table-column> <el-input @focus="selectGroup()" style="width:220px" size="mini" placeholder="请选择"></el-input>
<el-table-column label="班次时间段"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" @click="changeBanci(scope.row)">更改班次</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-checkbox>法定节假日自动排休</el-checkbox>
</div> </div>
<div> <!-- 考勤组 -->
<div>特殊日期</div> <div class="mt10" v-if="drawer2">
<div>考勤组负责人:</div>
<el-select></el-select>
</div> </div>
<div class="mt10"> <div class="mt10" v-if="drawer2">
<el-button>+新增必须打卡的日期</el-button> <div>主负责人:</div>
<el-select></el-select>
</div> </div>
<div class="mt10"> <div class="mt10" v-if="drawer2">
<el-button>+新增无需打卡的日期</el-button> <div>子负责人:</div>
<el-select></el-select>
</div>
<div class="mt10" v-if="drawer2">
<div>子负责人权限:</div>
<el-select>
<el-option></el-option>
</el-select>
</div>
<!-- 考勤时间 -->
<div class="mt20" v-if="drawer3">
<el-radio-group>
<div class="mt10">
<el-radio label="">固定班制(固定时间上下班)</el-radio>
<div class="tips">考勤组中所有人按照相同的时间打卡,适用于办公室坐班,例如朝九晚五</div>
</div>
<div class="mt10">
<el-radio label="">排班制(按排班上下班)</el-radio>
<div class="tips">自定义设置每人的班次,适用于工厂、门店等,例如三班倒</div>
</div>
<div class="mt10">
<el-radio label="">自由工时(不固定时间上下班)</el-radio>
<div class="tips">上下班时间不固定,可随时打卡,适用于销售以及装修、家政等计时工</div>
</div>
</el-radio-group>
</div>
<div class="mt20" v-if="drawer3">
<!-- 固定班次设置 -->
<div>工作日设置:</div>
<div class="mt10">
<el-tag type="primary">快捷设置班次</el-tag>
<span class="ml20">班次名称:</span>
<el-button type="text" @click="changeBanci('1')">更改班次</el-button>
</div>
<!-- 班次表 -->
<el-table :data="weekList">
<el-table-column label="工作日"></el-table-column>
<el-table-column label="班次时间段"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" @click="changeBanci(scope.row)">更改班次</el-button>
</template>
</el-table-column>
</el-table>
<!-- 自用工时设置 -->
<div class="mt20">工作日</div>
<div class="mt10">
<el-checkbox-group v-model="week">
<el-checkbox label="">周一</el-checkbox>
<el-checkbox label="">周二</el-checkbox>
<el-checkbox label="">周三</el-checkbox>
<el-checkbox label="">周四</el-checkbox>
<el-checkbox label="">周五</el-checkbox>
<el-checkbox label="">周六</el-checkbox>
<el-checkbox label="">周日</el-checkbox>
</el-checkbox-group>
</div>
<div class="mt20">工作时长</div>
<div class="mt10">
<el-input style="width:100px"></el-input>
<span class="ml20">小时</span>
</div>
<div class="mt10">
<el-checkbox>法定节假日自动排休</el-checkbox>
</div>
<div class="mt10">
<div>特殊日期</div>
</div>
<div class="mt10">
<el-button @click="mustDaka = true">+新增必须打卡的日期</el-button>
</div>
<div class="mt10">
<el-button @click="noneedDaka = true">+新增无需打卡的日期</el-button>
</div>
</div> </div>
<div> <div class="mt20" v-if="drawer4">
<div>考勤方式</div> <div>考勤方式</div>
<el-checkbox-group v-model="type"> <el-checkbox-group v-model="type">
<el-checkbox label="地点打卡"></el-checkbox> <div class="mt10">
<el-checkbox label="Wi-Fi打卡"></el-checkbox> <el-checkbox label="地点打卡"></el-checkbox>
<el-checkbox label="蓝牙打卡"></el-checkbox> </div>
<el-checkbox label="考勤机打卡"></el-checkbox> <div class="mt10">
<el-checkbox label="Wi-Fi打卡"></el-checkbox>
</div>
<div class="mt10">
<el-checkbox label="蓝牙打卡"></el-checkbox>
</div>
<div class="mt10">
<el-checkbox label="考勤机打卡"></el-checkbox>
</div>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
</div> </div>
...@@ -181,12 +222,49 @@ ...@@ -181,12 +222,49 @@
</el-scrollbar> </el-scrollbar>
</div> </div>
</el-dialog> </el-dialog>
<!-- 选择班次 --> <!-- 选择班次 -->
<el-dialog :visible.sync="isshowBanci" title="选择班次"> <el-dialog :visible.sync="isshowBanci" title="选择班次">
<div> <div>
选择班次 选择班次
</div> </div>
</el-dialog> </el-dialog>
<!-- 新增必须打卡时间 -->
<el-dialog :visible.sync="mustDaka" title="新增必须打卡日期">
<div>
<span>选择日期</span>
<el-date-picker type="date" placeholder="年/月/日"></el-date-picker>
</div>
<div>
选择班次
</div>
</el-dialog>
<!-- 新增无需打卡时间 -->
<el-dialog :visible.sync="noneedDaka" title="新增无需打卡日期">
<div>
<span>选择添加方式</span>
<el-radio-group class="ml20">
<el-radio label="">单个日期</el-radio>
<el-radio label="">时间段</el-radio>
</el-radio-group>
</div>
<div>
<span>选择日期</span>
<!-- 单个日期 -->
<el-date-picker type="date" class="ml20"></el-date-picker>
<!-- 日期段 -->
<el-date-picker
type="daterange"
class="ml20"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -203,6 +281,35 @@ ...@@ -203,6 +281,35 @@
}, },
selectGroup(){ selectGroup(){
this.isshowgroup = true this.isshowgroup = true
},
drawershow(from){
switch(from){
case 'drawer1':
this.drawer = true
this.drawer1 = true
break;
case 'drawer2':
this.drawer = true
this.drawer2 = true
break;
case 'drawer3':
this.drawer = true
this.drawer3 = true
break;
case 'drawer4':
this.drawer = true
this.drawer4 = true
break;
default:
break;
}
},
closedrawer(){
this.drawer = false
this.drawer1 = false
this.drawer2 = false
this.drawer3 = false
this.drawer4 = false
} }
}, },
data() { data() {
...@@ -237,17 +344,23 @@ ...@@ -237,17 +344,23 @@
attendanceTime:'', attendanceTime:'',
remark:'' remark:''
}, },
drawer:true, drawer:false,
weekList:[], weekList:[],
isshowBanci:false,//班次展示 isshowBanci:false,//班次展示
isshowgroup:false, isshowgroup:false,//人员选择
mustDaka:false,//必须打卡设置
noneedDaka:false,//无需打卡
areaData:[], areaData:[],
type:[] type:[],
week:[]
} }
} }
} }
</script> </script>
<style lang="less"> <style lang="less">
.container{
font-size: 15px;
}
.labelClass{ .labelClass{
width: 200px; width: 200px;
} }
...@@ -274,4 +387,8 @@ ...@@ -274,4 +387,8 @@
display: inline-block; display: inline-block;
margin-right: 10px; margin-right: 10px;
} }
.tips{
color: #999;
font-size: 12px;
}
</style> </style>
\ No newline at end of file
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable> <LayoutTable :data="tableData" :config="tableConfig" notDel>
<el-button type="primary" @click="doExport" :disabled="isExport"
size="mini" slot="table-head-left2">导出</el-button>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -32,17 +33,27 @@ ...@@ -32,17 +33,27 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
doExport(){
this.isExport = true;
this.$download("/leave/record/exportExcel", {
"idList": this.selection,
'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => {
this.isExport = false;
this.$message.error(error.message);
})
},
}, },
data() { data() {
return { return {
isExport:false,
config: { config: {
isshowTabPane:true, isshowTabPane:true,
search: [ search: [
{ {
name: "leavePersonId", name: "leavePerson",
type: "text", type: "text",
label: "请假人id", label: "请假人",
fuzzy: true fuzzy: true
}, },
{ {
...@@ -51,6 +62,12 @@ ...@@ -51,6 +62,12 @@
label: "电话号码", label: "电话号码",
fuzzy: true fuzzy: true
}, },
{
name: "leaveType",
type: "select",
label: "全部部门",
fuzzy: true
},
{ {
name: "leaveType", name: "leaveType",
type: "select", type: "select",
......
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-drawer <el-drawer
:title="title" title="假期使用记录"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <div class="mt20">
<span>当前假期余额:20天</span>
<el-tag type="success" size="mini">修改余额</el-tag>
</div>
<div class="mt20">
<el-steps direction="vertical" :active="1">
<el-step title="步骤 1"></el-step>
<el-step title="步骤 2"></el-step>
<el-step title="步骤 3" description="这是一段很长很长很长的描述性文字"></el-step>
</el-steps>
</div>
<div class="tips mt20">
当前病假规则:每年1月1日自动发放 30天
</div>
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工id" prop="staffId" v-model="form.staffId" placeholder="请输入员工id"/> <Field label="员工id" prop="staffId" v-model="form.staffId" placeholder="请输入员工id"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" type="textarea" placeholder="请输入员工姓名"/> <Field label="员工姓名" prop="staffName" v-model="form.staffName" type="textarea" placeholder="请输入员工姓名"/>
<Field label="部门id" prop="deptId" v-model="form.deptId" placeholder="请输入部门id"/> <Field label="部门id" prop="deptId" v-model="form.deptId" placeholder="请输入部门id"/>
<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="entryTime" v-model="form.entryTime" type="date" /> <Field label="入职时间" prop="entryTime" v-model="form.entryTime" type="date" />
<Field label="事假" prop="personalLeaveDays" v-model="form.personalLeaveDays" placeholder="请输入事假"/> <Field label="事假" prop="personalLeaveDays" v-model="form.personalLeaveDays" placeholder="请输入事假"/>
<Field label="调休" prop="compensatedLeaveDays" v-model="form.compensatedLeaveDays" placeholder="请输入调休"/> <Field label="调休" prop="compensatedLeaveDays" v-model="form.compensatedLeaveDays" placeholder="请输入调休"/>
<Field label="病假" prop="sickLeaveDays" v-model="form.sickLeaveDays" placeholder="请输入病假"/> <Field label="病假" prop="sickLeaveDays" v-model="form.sickLeaveDays" placeholder="请输入病假"/>
<Field label="年假" prop="annualLeaveDays" v-model="form.annualLeaveDays" placeholder="请输入年假"/> <Field label="年假" prop="annualLeaveDays" v-model="form.annualLeaveDays" placeholder="请输入年假"/>
<Field label="婚假" prop="marriageLeaveDays" v-model="form.marriageLeaveDays" placeholder="请输入婚假"/> <Field label="婚假" prop="marriageLeaveDays" v-model="form.marriageLeaveDays" 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>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit='submitForm' noCancelBtn />
</el-form> </el-form> -->
<div>
</div>
</el-drawer> </el-drawer>
</template> </template>
...@@ -124,3 +138,9 @@ ...@@ -124,3 +138,9 @@
}, },
}; };
</script> </script>
<style scoped>
.tips{
font-size: 14px;
color: #999;
}
</style>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig" notAdd notDel>
</LayoutTable> <el-button type="primary" @click="doExport" :disabled="isExport"
size="mini" slot="table-head-left2">导出</el-button>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
...@@ -33,58 +33,33 @@ ...@@ -33,58 +33,33 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
doExport(){
this.isExport = true;
this.$download("/leave/record/exportExcel", {
"idList": this.selection,
'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => {
this.isExport = false;
this.$message.error(error.message);
})
},
}, },
data() { data() {
return { return {
isExport:false,
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "staffId", name: "staffId",
type: "text", type: "text",
label: "员工id", label: "员工",
fuzzy: true fuzzy: true
}, },
{ {
name: "deptId", name: "deptId",
type: "text", type: "select",
label: "部门id", label: "全部部门",
fuzzy: true
},
{
name: "entryTime",
type: "date",
label: "入职时间",
fuzzy: true
},
{
name: "personalLeaveDays",
type: "text",
label: "事假",
fuzzy: true
},
{
name: "compensatedLeaveDays",
type: "text",
label: "调休",
fuzzy: true
},
{
name: "sickLeaveDays",
type: "text",
label: "病假",
fuzzy: true
},
{
name: "annualLeaveDays",
type: "text",
label: "年假",
fuzzy: true
},
{
name: "marriageLeaveDays",
type: "text",
label: "婚假",
fuzzy: true fuzzy: true
}, },
], ],
...@@ -92,33 +67,34 @@ ...@@ -92,33 +67,34 @@
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "员工id", prop: "staffId", formatter: this.formatter}, // {label: "员工id", prop: "staffId", formatter: this.formatter},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "部门id", prop: "deptId", formatter: this.formatter}, // {label: "部门id", prop: "deptId", formatter: this.formatter},
{label: "部门名称", prop: "deptName"}, {label: "部门名称", prop: "deptName"},
{label: "入职时间", prop: "entryTime", formatter: this.formatterDate}, {label: "入职时间", prop: "entryTime", formatter: this.formatterDate},
{label: "事假", prop: "personalLeaveDays", formatter: this.formatterMoney}, {label: "事假(天)", prop: "personalLeaveDays", formatter: this.formatterMoney},
{label: "调休", prop: "compensatedLeaveDays", formatter: this.formatterMoney}, {label: "调休(天)", prop: "compensatedLeaveDays", formatter: this.formatterMoney},
{label: "病假", prop: "sickLeaveDays", formatter: this.formatterMoney}, {label: "病假(天)", prop: "sickLeaveDays", formatter: this.formatterMoney},
{label: "年假", prop: "annualLeaveDays", formatter: this.formatterMoney}, {label: "年假(天)", prop: "annualLeaveDays", formatter: this.formatterMoney},
{label: "婚假", prop: "marriageLeaveDays", formatter: this.formatterMoney}, {label: "婚假(tian)", prop: "marriageLeaveDays", formatter: this.formatterMoney},
{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 noEdit noView noDel row={row}
onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); );
} }
} }
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
// {label: "祖级列表", prop: "ancestors"}, // {label: "祖级列表", prop: "ancestors"},
{label: "部门名称", prop: "deptName"}, {label: "部门名称", prop: "deptName"},
{label: "成员数量", prop: "deptName"}, {label: "成员数量", prop: "deptName"},
{label: "负责人", prop: "deptName"}, {label: "负责人", prop: "workName"},
// {label: "部门状态", prop: "deptStatus",formatter: this.formatter}, // {label: "部门状态", prop: "deptStatus",formatter: this.formatter},
......
...@@ -24,12 +24,8 @@ ...@@ -24,12 +24,8 @@
<Field label="所属部门" prop="deptName" v-model="form.deptName" placeholder="请选择所属部门" @focus="ishowBumen = true"/> <Field label="所属部门" prop="deptName" v-model="form.deptName" placeholder="请选择所属部门" @focus="ishowBumen = true"/>
<!-- <Field label="职位" prop="positionId" v-model="form.positionId" :enumData="dict.politicalstatus" type="select" placeholder="请选择职位" /> --> <Field label="职位" prop="positionId" v-model="form.positionId" :enumData="dict.positionId" type="select" placeholder="请选择职位" />
<el-form-item label="职位" prop="positionId">
<el-select v-model="form.positionId" placeholder="请选择职位">
<el-option></el-option>
</el-select>
</el-form-item>
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> <Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<!-- <Field label="是否在政务大厅" prop="positionId" v-model="form.positionId" placeholder="请选择" type="select"/> --> <!-- <Field label="是否在政务大厅" prop="positionId" v-model="form.positionId" placeholder="请选择" type="select"/> -->
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" notAdd notDel :config="tableConfig" /> <LayoutTable :data="tableData" notSearch notAdd notDel :config="tableConfig" />
</div> </div>
</template> </template>
...@@ -13,17 +13,18 @@ export default { ...@@ -13,17 +13,18 @@ export default {
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{ // {
name: "loginName", // name: "loginName",
type: "text", // type: "text",
label: "登录名", // label: "登录名",
}, // },
{ // {
name: "requestUrl", // name: "requestUrl",
type: "text", // type: "text",
label: "请求地址", // label: "请求地址",
}, // },
], ],
columns: [ columns: [
{ type: "index", label: "序号",align:"center", width: 50 }, { type: "index", label: "序号",align:"center", width: 50 },
...@@ -33,13 +34,27 @@ export default { ...@@ -33,13 +34,27 @@ export default {
label: "用户名称", label: "用户名称",
align: "center", align: "center",
}, },
{
prop: "logDate",
label: "操作日期",
align: "center",
formatter: this.formatterDate,
},
{ {
prop: "loginName", prop: "loginName",
label: "用户登录名", label: "用户登录名",
align: "center", align: "center",
}, },
{
prop: "loginName",
label: "日志类型",
align: "center",
},
{
prop: "loginName",
label: "操作类型",
align: "center",
},
{ {
prop: "requestUrl", prop: "requestUrl",
label: "请求地址", label: "请求地址",
...@@ -57,13 +72,6 @@ export default { ...@@ -57,13 +72,6 @@ export default {
label: "操作IP地址", label: "操作IP地址",
align: "center", align: "center",
}, },
{
prop: "logDate",
label: "操作时间",
align: "center",
formatter: this.formatterDate,
},
], ],
}, },
}; };
......
...@@ -114,6 +114,7 @@ export default { ...@@ -114,6 +114,7 @@ export default {
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
/** 树表是否默认展开 */ /** 树表是否默认展开 */
expand: false, expand: false,
showType: "treetable", showType: "treetable",
......
...@@ -439,6 +439,7 @@ export default { ...@@ -439,6 +439,7 @@ export default {
form: this.initForm(), form: this.initForm(),
}, },
config: { config: {
isshowTabPane:true,
search: [ search: [
{ {
name: "name", name: "name",
......
...@@ -276,8 +276,9 @@ export default { ...@@ -276,8 +276,9 @@ export default {
visible: false, visible: false,
}, },
config: { config: {
isshowTabPane:true,
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 },
{ {
prop: "loginName", prop: "loginName",
......
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