Commit 01e90fb6 authored by dll's avatar dll

提交

parent 991a067c
...@@ -217,6 +217,12 @@ export default { ...@@ -217,6 +217,12 @@ export default {
formatterMoney(row, column, val) { formatterMoney(row, column, val) {
return ((val || 0) / 1000).toFixed(2) return ((val || 0) / 1000).toFixed(2)
}, },
// 查看天数
formatterDay(row, column, val) {
return <el-tag onClick={() => {
this.handleCountDays(row,column)
}}>{((val || 0) / 1000).toFixed(2)}</el-tag>
},
// 格式化单元格数据 // 格式化单元格数据
formatterDate(row, column) { formatterDate(row, column) {
//console.log("date:",row,column) //console.log("date:",row,column)
......
...@@ -100,7 +100,7 @@ export default { ...@@ -100,7 +100,7 @@ export default {
data() { data() {
return { return {
number: 0, number: 0,
uploadFileUrl: "/study/file/commonupload", // 上传的地址 uploadFileUrl: "/file/commonupload", // 上传的地址
uploadList: [], uploadList: [],
headers:{}, headers:{},
fileList: [], fileList: [],
......
<template> <template>
<div> <div style="margin-bottom:20px">
<el-menu :default-active="activeName" class="el-menu-demo" mode="horizontal" @select="handleClick" v-if="thirdList.length>0"> <el-menu :default-active="activeName" class="el-menu-demo" mode="horizontal" @select="handleClick" v-if="thirdList.length>0">
<el-menu-item :index="item.path" v-for="(item,index) in thirdList" :key="index">{{item.name}}</el-menu-item> <el-menu-item :index="item.path" v-for="(item,index) in thirdList" :key="index">{{item.name}}</el-menu-item>
</el-menu> </el-menu>
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<Confirm @confirm='$emit("del", row.id)' message='确定要删除该条记录吗?'> <Confirm @confirm='$emit("del", row.id)' message='确定要删除该条记录吗?'>
<el-button v-if='!noDel' type="text" icon="el-icon-delete" size='mini' title="删除">删除</el-button> <el-button v-if='!noDel' type="text" icon="el-icon-delete" size='mini' title="删除">删除</el-button>
</Confirm> </Confirm>
</span> </span>
</template> </template>
......
...@@ -36,7 +36,7 @@ const router = new Router({ ...@@ -36,7 +36,7 @@ const router = new Router({
...restBuilder('role', 'system/role'), // 系统管理--角色管理 ...restBuilder('role', 'system/role'), // 系统管理--角色管理
...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'),//部门
......
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
<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="groupId" v-model="form.groupId" placeholder="请输入考勤组"/> <Field label="姓名" prop="responsibleName" v-model="form.responsibleName" placeholder="请输入负责人名称"/>
<Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/> <Field label="电话号码" prop="responsibleName" v-model="form.responsibleName" placeholder="请输入电话号码"/>
<Field label="负责人ID" prop="responsibleId" v-model="form.responsibleId" placeholder="请输入负责人ID"/> <Field label="考勤组" prop="groupId" v-model="form.groupId" placeholder="请输入考勤组"/>
<Field label="负责人名称" prop="responsibleName" v-model="form.responsibleName" placeholder="请输入负责人名称"/> <Field label="考勤组名称" prop="groupName" v-model="form.groupName" placeholder="请输入考勤组名称"/>
<Field label="负责人类型" prop="responsibleType" v-model="form.responsibleType" type="select" :enumData="dict.responsibleType" placeholder="请选择负责人类型"/> <Field label="负责人ID" prop="responsibleId" v-model="form.responsibleId" placeholder="请输入负责人ID"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <Field label="负责人类型" prop="responsibleType" v-model="form.responsibleType" type="select" :enumData="dict.responsibleType" placeholder="请选择负责人类型"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row> </el-row>
...@@ -68,7 +69,7 @@ ...@@ -68,7 +69,7 @@
this.urls.currUrl = "attendance/group/responsible/add"; this.urls.currUrl = "attendance/group/responsible/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type="add"
this.title = "新增考勤组负责人员信息"; this.title = "新增考勤组负责人";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
......
...@@ -7,24 +7,25 @@ ...@@ -7,24 +7,25 @@
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="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人id"/> <Field label="请假人" prop="leavePersonId" v-model="form.leavePersonId" placeholder="请输入请假人id"/>
<Field label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/> <!-- <Field label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/> -->
<Field label="所属部门id" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门id"/> <Field label="所属部门" 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="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/> <Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/> <Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/>
<Field label="开始时间" prop="startTime" v-model="form.startTime" type="date" /> <Field label="开始时间" prop="startTime" v-model="form.startTime" type="date" />
<Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" /> <Field label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/> <Field label="时长" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/>
<Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/> <Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<Field label="审批负责人Id" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/> <Field label="审批负责人" prop="approverId" v-model="form.approverId" placeholder="请输入审批负责人Id"/>
<Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> <!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> -->
<Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> <!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> -->
<Field label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" 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-item label="附件路径" prop="attachmentPath">
<FileUpload @input="uploadFn" />
</el-form-item>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit='submitForm' noCancelBtn />
</el-form> </el-form>
...@@ -65,6 +66,9 @@ ...@@ -65,6 +66,9 @@
}, },
methods: { methods: {
uploadFn(e){
this.form.attachmentPath = e
},
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset()
......
...@@ -40,6 +40,14 @@ ...@@ -40,6 +40,14 @@
}, },
morehandle(){ morehandle(){
console.log(this.selection) console.log(this.selection)
},
// 处理
handle(err){
console.log(err)
},
// 撤销
reCancle(err){
console.log(err)
} }
}, },
data() { data() {
...@@ -109,6 +117,10 @@ ...@@ -109,6 +117,10 @@
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "工号", prop: "staffName"},
{label: "部门", prop: "staffName"},
{label: "考勤组", prop: "staffName"},
{label: "班次", prop: "staffName"},
{label: "异常状态", prop: "errorStatus",formatter: this.formatter}, {label: "异常状态", prop: "errorStatus",formatter: this.formatter},
{label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate}, {label: "异常时间", prop: "errorDateTime", formatter: this.formatterDate},
{label: "处理结果", prop: "errorDateTime", formatter: this.formatterDate}, {label: "处理结果", prop: "errorDateTime", formatter: this.formatterDate},
...@@ -123,8 +135,15 @@ ...@@ -123,8 +135,15 @@
width: 240, width: 240,
formatter: row => { formatter: row => {
return ( return (
<table-buttons noAdd noEdit noView noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <span>
); <el-button type="text" size='mini' onClick={(row) => {
this.handle(row)
}}>处理</el-button>
<el-button type="text" size='mini' onClick={(row) => {
this.reCancle(row)
}}>撤销</el-button>
</span>
)
} }
} }
] ]
......
...@@ -21,6 +21,17 @@ export default { ...@@ -21,6 +21,17 @@ export default {
created() { created() {
}, },
methods: { methods: {
// 导出
doExport(){
this.isExport = true;
this.$download("/attendance/vacation/balance/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);
})
},
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); this.$refs.drawerform.add(row);
...@@ -49,14 +60,27 @@ export default { ...@@ -49,14 +60,27 @@ export default {
}) })
.catch((error) => { .catch((error) => {
this.$message.error(error.message); this.$message.error(error.message);
}); })
} }
}, },
data() { data() {
return { return {
config: { config: {
isshowTabPane:true,
search: [ search: [
{
name: "deptId",
type: "select",
label: "全部部门",
fuzzy: true
},
{
name: "staffName",
type: "text",
label: "员工姓名",
fuzzy: true
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
...@@ -64,11 +88,11 @@ export default { ...@@ -64,11 +88,11 @@ export default {
{label: "员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{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.formatterDay},
{label: "调休(天)", prop: "compensatedLeaveDays", formatter: this.formatterMoney}, {label: "调休(天)", prop: "compensatedLeaveDays", formatter: this.formatterDay},
{label: "病假(天)", prop: "sickLeaveDays", formatter: this.formatterMoney}, {label: "病假(天)", prop: "sickLeaveDays", formatter: this.formatterDay},
{label: "年假(天)", prop: "annualLeaveDays", formatter: this.formatterMoney}, {label: "年假(天)", prop: "annualLeaveDays", formatter: this.formatterDay},
{label: "婚假(tian)", prop: "marriageLeaveDays", formatter: this.formatterMoney}, {label: "婚假(天)", prop: "marriageLeaveDays", formatter: this.formatterDay},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter}, // {label: "创建用户", prop: "createUserId", formatter: this.formatter},
{ {
label: "操作", label: "操作",
...@@ -80,9 +104,10 @@ export default { ...@@ -80,9 +104,10 @@ export default {
) )
} }
} }
] ],
isExport:false
} }
} }
} }
} }
</script> </script>
\ No newline at end of file
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
{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: "personNum"},
{label: "负责人", prop: "workName"}, {label: "负责人", prop: "workName"},
// {label: "部门状态", prop: "deptStatus",formatter: this.formatter}, // {label: "部门状态", prop: "deptStatus",formatter: this.formatter},
......
...@@ -5,16 +5,15 @@ ...@@ -5,16 +5,15 @@
: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"> <el-form ref="form" :model="form" :rules="rules" label-width="120px" style="padding:20px">
<el-row> <el-row>
<Field label="分组id" prop="groupId" v-model="form.groupId" placeholder="请输入分组id"/> <Field label="分组" prop="groupId" v-model="form.groupId" type="select" placeholder="请选择分组"/>
<Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称"/> <Field label="分组名称" prop="groupName" v-model="form.groupName" placeholder="请输入分组名称"/>
<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="type" v-model="form.type" type="select" :enumData="dict.type" 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>
...@@ -47,7 +46,8 @@ ...@@ -47,7 +46,8 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
} },
from:''
}; };
}, },
...@@ -63,11 +63,14 @@ ...@@ -63,11 +63,14 @@
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
// console.log(row,'添加')
this.from = row
this.title = row === 'group'?"新增分组信息":'新增职位信息';
this.reset() this.reset()
this.urls.currUrl = "job/add"; this.urls.currUrl = "job/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type="add"
this.title = "新增员工信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
</div> </div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6" :xs="12" class="mytree"> <el-col :span="6" :xs="12" class="mytree">
<div class="titles"> <div class="title">
<el-button type="primary">新增分组</el-button> <el-button type="primary" size="mini" @click="saveFn('group')">新增分组</el-button>
<el-button type="success">新增职位</el-button> <el-button type="success" size="mini" @click="saveFn('position')">新增职位</el-button>
</div> </div>
<el-scrollbar style="height: 100%"> <el-scrollbar style="height: 100%">
<el-tree <el-tree
...@@ -65,6 +65,9 @@ ...@@ -65,6 +65,9 @@
} }
}, },
methods: { methods: {
saveFn(from){
this.$refs.drawerform.add(from)
},
renderContent: function (h, { node, data, store }) { renderContent: function (h, { node, data, store }) {
return ( return (
<span> <span>
...@@ -95,7 +98,8 @@ ...@@ -95,7 +98,8 @@
}, },
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); // console.log(row,'ssss')
// this.$refs.drawerform.add(row);
}, },
/** 重写编辑方法 */ /** 重写编辑方法 */
toEdit(row) { toEdit(row) {
...@@ -164,9 +168,11 @@ ...@@ -164,9 +168,11 @@
) )
} }
} }
] ],
}, },
isExport:false isExport:false,
saveFrom:'',
addShow:false,
} }
} }
}; };
......
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
<div class="item flex"> <div class="item flex">
<div>全职 <span class="num">{{tableData.staff.fullStaff}}</span></div> <div>全职 <span class="num">{{tableData.staff.fullStaff}}</span></div>
<div>实习 <span class="num">{{tableData.staff.pricateStaff}}</span></div> <div>实习 <span class="num">{{tableData.staff.pricateStaff}}</span></div>
<!-- 兼职未对 -->
<div>兼职 <span class="num">{{tableData.staff.concurrentlyStaff}}</span></div> <div>兼职 <span class="num">{{tableData.staff.concurrentlyStaff}}</span></div>
</div> </div>
...@@ -51,10 +49,18 @@ ...@@ -51,10 +49,18 @@
更多操作<i class="el-icon-arrow-down el-icon--right"></i> 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item>同步数据</el-dropdown-item> <el-dropdown-item>
<el-dropdown-item @click="handleImport">导入花名册</el-dropdown-item> <el-button type="text">同步数据</el-button>
<el-dropdown-item>历史花名册</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item>自定义列表字段</el-dropdown-item> <el-dropdown-item>
<el-button type="text" @click="handleImport">导入花名册</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text" @click="lookDetailHis">历史花名册</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text">自定义列表字段</el-button>
</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
...@@ -107,6 +113,25 @@ ...@@ -107,6 +113,25 @@
<el-button @click="upload.open = false">取 消</el-button> <el-button @click="upload.open = false">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 花名册记录查看 -->
<el-drawer
title="花名册记录"
:visible.sync="drawerhistory"
direction="rtl">
<div class="hisList">
<div class="list mt10" v-for="item in 10" :key="item">
<div class="flex flex-align-center flex-pack-justify">
<div>花名册记录</div>
<el-button type="text">查看</el-button>
</div>
<div class="times">
导出时间:2020-08-13
</div>
</div>
</div>
</el-drawer>
<drawer-show ref="drawerform" @ok="getData" :bumentree="areaData" /> <drawer-show ref="drawerform" @ok="getData" :bumentree="areaData" />
</div> </div>
</template> </template>
...@@ -178,6 +203,11 @@ ...@@ -178,6 +203,11 @@
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}) })
},
// 导出花名册
lookDetailHis(){
console.log('1111')
this.drawerhistory = true
} }
}, },
data() { data() {
...@@ -236,7 +266,8 @@ ...@@ -236,7 +266,8 @@
isshowHome:false, isshowHome:false,
personData:[], personData:[],
isExport:false, isExport:false,
staffInfo:{} staffInfo:{},
drawerhistory:false
} }
}, },
computed:{ computed:{
...@@ -268,6 +299,19 @@ ...@@ -268,6 +299,19 @@
.page{ .page{
min-width: 1400px; min-width: 1400px;
} }
.hisList{
padding: 15px;
.list{
background-color: rgba(64, 158, 255, 0.1);
font-size: 14px;
border-radius: 10px;
padding: 10px;
.times{
font-size: 12px;
color: #999;
}
}
}
.totalNum{ .totalNum{
background: rgba(64, 158, 255,0.2); background: rgba(64, 158, 255,0.2);
padding: 15px; padding: 15px;
......
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