Commit 202450cf authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 585a838a 0f12e5c8
...@@ -8,43 +8,47 @@ ...@@ -8,43 +8,47 @@
<div class="title" style="margin-bottom:40px">今日数据洞察</div> <div class="title" style="margin-bottom:40px">今日数据洞察</div>
<div class="cell1"> <div class="cell1">
<div class="title">人事数据</div> <div class="title">人事数据</div>
<div class="datas flex flex-align-center flex-pack-justify flex_warp"> <div
class="datas flex flex-align-center flex-pack-justify flex_warp"
>
<div class="item"> <div class="item">
<div>总人数</div> <div>总人数</div>
<div>{{homeStat.totalPersonNum}}</div> <div>{{ homeStat.totalPersonNum }}</div>
</div> </div>
<div class="item"> <div class="item">
<div>部门人数</div> <div>部门人数</div>
<div>{{homeStat.totalDeptNum}}</div> <div>{{ homeStat.totalDeptNum }}</div>
</div> </div>
</div> </div>
</div> </div>
<div class="cell1"> <div class="cell1">
<div class="title">考勤数据</div> <div class="title">考勤数据</div>
<div class="datas flex flex-align-center flex-pack-justify flex_warp"> <div
class="datas flex flex-align-center flex-pack-justify flex_warp"
>
<div class="item"> <div class="item">
<div>打卡人数</div> <div>打卡人数</div>
<div>{{homeStat.attendPersonNum}}</div> <div>{{ homeStat.attendPersonNum }}</div>
</div> </div>
<div class="item"> <div class="item">
<div>出勤率</div> <div>出勤率</div>
<div>{{homeStat.attendRadio}}%</div> <div>{{ homeStat.attendRadio }}%</div>
</div> </div>
<div class="item"> <div class="item">
<div>请假人数</div> <div>请假人数</div>
<div>{{homeStat.levealPersonNum}}</div> <div>{{ homeStat.levealPersonNum }}</div>
</div> </div>
<div class="item"> <div class="item">
<div>迟到人数</div> <div>迟到人数</div>
<div>{{homeStat.latePersonNum}}</div> <div>{{ homeStat.latePersonNum }}</div>
</div> </div>
<div class="item"> <div class="item">
<div>早退人数</div> <div>早退人数</div>
<div>{{homeStat.leftEarlyPersonNum}}</div> <div>{{ homeStat.leftEarlyPersonNum }}</div>
</div> </div>
<div class="item"> <div class="item">
<div>缺卡人数</div> <div>缺卡人数</div>
<div>{{homeStat.missCardPersonNum}}</div> <div>{{ homeStat.missCardPersonNum }}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -56,14 +60,20 @@ ...@@ -56,14 +60,20 @@
<div class="data_right"> <div class="data_right">
<div class="title">科学化、精细化、以人为本知行合一的管理理念</div> <div class="title">科学化、精细化、以人为本知行合一的管理理念</div>
<div class="textWord"> <div class="textWord">
坚持政治性与人民性的根本遵循、制度化与规范化的根本依托、考人与考事的相互结合<br> 坚持政治性与人民性的根本遵循、制度化与规范化的根本依托、考人与考事的相互结合<br />
创新性与技术性的重要支撑以及效能性与发展性的不懈追求 创新性与技术性的重要支撑以及效能性与发展性的不懈追求
</div> </div>
<div class="selectBars flex flex-align-center flex-pack-justify flex_warp"> <div
<div class="Bar_item" v-for="(item, index) in barList" :key="index" class="selectBars flex flex-align-center flex-pack-justify flex_warp"
@click="tabChildren(item.barName)"> >
<div
class="Bar_item"
v-for="(item, index) in barList"
:key="index"
@click="tabChildren(item.barName)"
>
<div class="icon"> <div class="icon">
<img :src="item.icon"> <img :src="item.icon" />
</div> </div>
<div class="barnam">{{ item.barName }}</div> <div class="barnam">{{ item.barName }}</div>
<div class="des" v-html="item.desc"></div> <div class="des" v-html="item.desc"></div>
...@@ -83,40 +93,43 @@ export default { ...@@ -83,40 +93,43 @@ export default {
return this.$store.state.userData; return this.$store.state.userData;
}, },
menu() { menu() {
return this.mapMenu(this.userData.barList) return this.mapMenu(this.userData.barList);
} },
}, },
data() { data() {
return { return {
// 数据洞察 // 数据洞察
homeStat:{ homeStat: {
totalPersonNum:0,//总人数 totalPersonNum: 0, //总人数
totalDeptNum:0,//部门数 totalDeptNum: 0, //部门数
attendPersonNum:0,//考勤人数 attendPersonNum: 0, //考勤人数
attendRadio:0,//出勤率 attendRadio: 0, //出勤率
levealPersonNum:0,//请假人数 levealPersonNum: 0, //请假人数
latePersonNum:0,//迟到人数 latePersonNum: 0, //迟到人数
leftEarlyPersonNum:0,//早退人数 leftEarlyPersonNum: 0, //早退人数
missCardPersonNum:0,//缺卡人数 missCardPersonNum: 0, //缺卡人数
}, },
barList: [ barList: [
{ {
icon: require('@/assets/images/u148.png'), icon: require("@/assets/images/u148.png"),
barName: '智能人事', barName: "智能人事",
desc: '提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能', desc:
navList: [] "提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能",
navList: [],
}, },
{ {
icon: require('@/assets/images/u153.png'), icon: require("@/assets/images/u153.png"),
barName: '考勤打卡', barName: "考勤打卡",
desc: '提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能', desc:
navList: [] "提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能",
navList: [],
}, },
{ {
icon: require('@/assets/images/u158.png'), icon: require("@/assets/images/u158.png"),
barName: '绩效管理', barName: "绩效管理",
desc: '根据部门/个人承担的目标和任务完成情况以及工作<br>评价结果、加减分纪实现考核结果自动生成。', desc:
navList: [] "根据部门/个人承担的目标和任务完成情况以及工作<br>评价结果、加减分纪实现考核结果自动生成。",
navList: [],
}, },
// { // {
// icon: require('@/assets/images/u167.png'), // icon: require('@/assets/images/u167.png'),
...@@ -131,45 +144,48 @@ export default { ...@@ -131,45 +144,48 @@ export default {
// navList: [] // navList: []
// }, // },
{ {
icon: require('@/assets/images/u177.png'), icon: require("@/assets/images/u177.png"),
barName: '系统设置', barName: "系统设置",
desc: '提供包括RBAC用户-角色-权限管理、版本管理、<br>操作及登录日志管理等功能', desc:
navList: [] "提供包括RBAC用户-角色-权限管理、版本管理、<br>操作及登录日志管理等功能",
} navList: [],
] },
} ],
};
}, },
created() { created() {
this.$store.commit('setHeadBar', []) this.$store.commit("setHeadBar", []);
this.$store.commit("setCurrentParentName", '') this.$store.commit("setCurrentParentName", "");
this.$store.commit('setCurrentThirdArr', []) this.$store.commit("setCurrentThirdArr", []);
this.$store.commit('setCurrentSecondPath', '') this.$store.commit("setCurrentSecondPath", "");
this.$store.commit('setThirdPath', '') this.$store.commit("setThirdPath", "");
this.homeNum() this.homeNum();
}, },
methods: { methods: {
tabChildren(name) { tabChildren(name) {
console.log("name:" + name) console.log("name:" + name);
this.$store.commit("setCurrentParentName", name)//存储选择路由 this.$store.commit("setCurrentParentName", name); //存储选择路由
let result = this.menu.find(item => item.name === name) let result = this.menu.find((item) => item.name === name);
this.$store.commit('setHeadBar', result) this.$store.commit("setHeadBar", result);
console.log("result:", result) console.log("result:", result);
if (result) {
// 路由跳转 // 路由跳转
if (result.children.length > 0) { if (result.children.length > 0) {
this.$store.commit('setCurrentThirdArr', result.children[0].children) this.$store.commit("setCurrentThirdArr", result.children[0].children);
this.$store.commit('setCurrentSecondPath', result.children[0].path) this.$store.commit("setCurrentSecondPath", result.children[0].path);
this.$store.commit('setThirdPath', result.children[0].path) this.$store.commit("setThirdPath", result.children[0].path);
this.$router.push({ path: result.children[0].path }) this.$router.push({ path: result.children[0].path });
} else { } else {
this.$message.error('暂未完成添加'); this.$message.error("暂未完成添加");
}
} else {
this.$message.error("暂无权限");
} }
}, },
mapMenu(arr) { mapMenu(arr) {
if (arr.length === 0) return [] if (arr.length === 0) return [];
let result = arr.map(item => { let result = arr.map((item) => {
const url = item.url const url = item.url
? item.url ? item.url
: item.childList[0] : item.childList[0]
...@@ -180,23 +196,24 @@ export default { ...@@ -180,23 +196,24 @@ export default {
path: url, path: url,
id: item.id, id: item.id,
icon: item.imgPath, icon: item.imgPath,
children: item.childList.length === 0 ? [] : this.mapMenu(item.childList) children:
} item.childList.length === 0 ? [] : this.mapMenu(item.childList),
}) };
return result });
return result;
}, },
// 查询统计数据 // 查询统计数据
homeNum() { homeNum() {
this.$post("/login/index").then((res) => { this.$post("/login/index").then((res) => {
const { code, data } = res const { code, data } = res;
if (code == 1) { if (code == 1) {
this.homeStat = Object.assign({},this.homeStat,data.homeStat) this.homeStat = Object.assign({}, this.homeStat, data.homeStat);
console.log(data,"####") console.log(data, "####");
} }
}); });
} },
} },
} };
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.page-home { .page-home {
...@@ -214,7 +231,7 @@ export default { ...@@ -214,7 +231,7 @@ export default {
font-size: 16px; font-size: 16px;
.title { .title {
color: #409EFF; color: #409eff;
margin-bottom: 20px; margin-bottom: 20px;
} }
...@@ -234,20 +251,20 @@ export default { ...@@ -234,20 +251,20 @@ export default {
} }
.cell1:last-child { .cell1:last-child {
border: none border: none;
} }
} }
// 数据标题 // 数据标题
.data_left>.title, .data_left > .title,
.data_right>.title { .data_right > .title {
text-align: center; text-align: center;
font-size: 22px; font-size: 22px;
font-weight: bold; font-weight: bold;
} }
.right_card { .right_card {
background-image: url('~@/assets/images/u162.svg'); background-image: url("~@/assets/images/u162.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% auto; background-size: 100% auto;
background-position: bottom; background-position: bottom;
...@@ -274,7 +291,11 @@ export default { ...@@ -274,7 +291,11 @@ export default {
border-radius: 10px; border-radius: 10px;
padding: 20px 0; padding: 20px 0;
text-align: center; text-align: center;
background: linear-gradient(90deg, rgba(187, 193, 255, 0.3), rgb(235, 235, 235)); background: linear-gradient(
90deg,
rgba(187, 193, 255, 0.3),
rgb(235, 235, 235)
);
cursor: pointer; cursor: pointer;
.icon img { .icon img {
...@@ -302,4 +323,5 @@ export default { ...@@ -302,4 +323,5 @@ export default {
::v-deep .el-card { ::v-deep .el-card {
height: 100%; height: 100%;
}</style> }
</style>
...@@ -3,39 +3,118 @@ ...@@ -3,39 +3,118 @@
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="90%" 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="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/> <Field
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> label="员工ID"
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> prop="staffId"
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> v-model="form.staffId"
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> placeholder="请输入员工ID"
<Field label="职位ID" prop="positionId" v-model="form.positionId" placeholder="请输入职位ID"/> />
<Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/> <Field
<Field label="所属考勤组ID" prop="attendanceGroupId" v-model="form.attendanceGroupId" placeholder="请输入所属考勤组ID"/> label="员工姓名"
<Field label="所属考勤组名称" prop="attendanceGroupName" v-model="form.attendanceGroupName" placeholder="请输入所属考勤组名称"/> prop="staffName"
<Field label="班次ID" prop="shiftsId" v-model="form.shiftsId" placeholder="请输入班次ID"/> v-model="form.staffName"
<Field label="班次名称" prop="shiftsName" v-model="form.shiftsName" placeholder="请输入班次名称"/> placeholder="请输入员工姓名"
<Field label="考勤日期" prop="attendanceDate" v-model="form.attendanceDate" type="date" /> />
<Field label="考勤点名称" prop="attendanceAddress" v-model="form.attendanceAddress" placeholder="请输入考勤点名称"/> <Field
<Field label="事件源" prop="eventSource" v-model="form.eventSource" placeholder="请输入事件源"/> label="工号"
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> prop="workNum"
v-model="form.workNum"
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="所属考勤组ID"
prop="attendanceGroupId"
v-model="form.attendanceGroupId"
placeholder="请输入所属考勤组ID"
/>
<Field
label="所属考勤组名称"
prop="attendanceGroupName"
v-model="form.attendanceGroupName"
placeholder="请输入所属考勤组名称"
/>
<Field
label="班次ID"
prop="shiftsId"
v-model="form.shiftsId"
placeholder="请输入班次ID"
/>
<Field
label="班次名称"
prop="shiftsName"
v-model="form.shiftsName"
placeholder="请输入班次名称"
/>
<Field
label="考勤日期"
prop="attendanceDate"
v-model="form.attendanceDate"
type="date"
/>
<Field
label="考勤点名称"
prop="attendanceAddress"
v-model="form.attendanceAddress"
placeholder="请输入考勤点名称"
/>
<Field
label="事件源"
prop="eventSource"
v-model="form.eventSource"
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
>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
export default { export default {
mixins: [form], mixins: [form],
components: { components: {
dialogShow , dialogShow,
}, },
data() { data() {
return { return {
...@@ -45,46 +124,43 @@ ...@@ -45,46 +124,43 @@
title: "海康考勤打卡记录汇总信息", title: "海康考勤打卡记录汇总信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
toString:[ toString: [],
],
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
],
createTime: [
{required: true,message: "请选择创建时间" },
], ],
} createTime: [{ required: true, message: "请选择创建时间" }],
},
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="attendance/record/hik/edit"; this.urls.currUrl = "attendance/record/hik/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改海康考勤打卡记录汇总信息"; this.title = "修改海康考勤打卡记录汇总信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "attendance/record/hik/add"; this.urls.currUrl = "attendance/record/hik/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增海康考勤打卡记录汇总信息"; this.title = "新增海康考勤打卡记录汇总信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="attendance/record/hik/view"; this.urls.currUrl = "attendance/record/hik/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "海康考勤打卡记录汇总信息详细"; this.title = "海康考勤打卡记录汇总信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -104,21 +180,21 @@ ...@@ -104,21 +180,21 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffId : null, staffId: null,
staffName : "", staffName: "",
workNum : "", workNum: "",
deptId : null, deptId: null,
deptName : "", deptName: "",
positionId : null, positionId: null,
positionName : "", positionName: "",
attendanceGroupId : null, attendanceGroupId: null,
attendanceGroupName : "", attendanceGroupName: "",
shiftsId : null, shiftsId: null,
shiftsName : "", shiftsName: "",
attendanceDate : null, attendanceDate: null,
attendanceAddress : "", attendanceAddress: "",
eventSource : "", eventSource: "",
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -128,5 +204,5 @@ ...@@ -128,5 +204,5 @@
} }
}, },
}, },
}; };
</script> </script>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
icon="el-icon-tickets" icon="el-icon-tickets"
size="mini" size="mini"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -16,7 +17,8 @@ ...@@ -16,7 +17,8 @@
type="primary" type="primary"
@click="doExport" @click="doExport"
:disabled="isExport" :disabled="isExport"
>导出</el-button> >导出</el-button
>
<el-button <el-button
slot="table-head-left2" slot="table-head-left2"
style="margin-left: 10px" style="margin-left: 10px"
...@@ -24,9 +26,16 @@ ...@@ -24,9 +26,16 @@
size="mini" size="mini"
type="success" type="success"
@click="lookexportHis" @click="lookexportHis"
>导出记录</el-button> >导出记录</el-button
<el-button type="primary" size="mini" slot="table-head-left2" >
style="margin-left: 10px" @click="formatData">生成打卡记录</el-button> <!-- <el-button
type="primary"
size="mini"
slot="table-head-left2"
style="margin-left: 10px"
@click="formatData"
>生成打卡记录</el-button
> -->
</LayoutTable> </LayoutTable>
<dialog-show ref="dialogform" @ok="getData" /> <dialog-show ref="dialogform" @ok="getData" />
<el-dialog <el-dialog
...@@ -53,10 +62,11 @@ ...@@ -53,10 +62,11 @@
<em>点击上传</em> <em>点击上传</em>
</div> </div>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">
<el-checkbox <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
v-model="upload.updateSupport" <el-link
/>是否更新已经存在的数据 type="primary"
<el-link type="primary" style="font-size: 14px" @click="downloadTemplate" style="font-size: 14px"
@click="downloadTemplate"
>下载模板</el-link >下载模板</el-link
> >
</div> </div>
...@@ -73,34 +83,40 @@ ...@@ -73,34 +83,40 @@
<el-drawer <el-drawer
title="导出记录" title="导出记录"
:visible.sync="drawerhistory" :visible.sync="drawerhistory"
:direction="direction"> :direction="direction"
>
<div class="hisList"> <div class="hisList">
<div class="list mt10" v-for="(item,index) in exportList" :key="index" @click="changeStatus(item)"> <div
class="list mt10"
v-for="(item, index) in exportList"
:key="index"
@click="changeStatus(item)"
>
<div class="flex flex-align-center flex-pack-justify"> <div class="flex flex-align-center flex-pack-justify">
<div>打卡记录汇总</div> <div>打卡记录汇总</div>
<el-button type="text">导出成功</el-button> <el-button type="text">导出成功</el-button>
</div> </div>
<div class="details" v-if="item.islook"> <div class="details" v-if="item.islook">
<div class="mt10" v-if="item.recordIdList"> <div class="mt10" v-if="item.recordIdList">
选择列表id: {{item.recordIdList}} 选择列表id: {{ item.recordIdList }}
</div> </div>
<div class="mt10" v-if="item.deptName"> <div class="mt10" v-if="item.deptName">
选择部门:{{item.deptName}} 选择部门:{{ item.deptName }}
</div> </div>
<div class="mt10" v-if="item.groupName"> <div class="mt10" v-if="item.groupName">
选择考勤组:{{item.groupName}} 选择考勤组:{{ item.groupName }}
</div> </div>
<div class="mt10" v-if="item.className"> <div class="mt10" v-if="item.className">
选择班次:{{item.className}} 选择班次:{{ item.className }}
</div> </div>
<div class="mt10"> <div class="mt10">
<el-link :href="item.filePath" target="_blank" type="primary">重新下载</el-link> <el-link :href="item.filePath" target="_blank" type="primary"
</div> >重新下载</el-link
>
</div> </div>
<div class="times mt10">
导出时间:{{item.createTime}}
</div> </div>
<div class="times mt10">导出时间:{{ item.createTime }}</div>
</div> </div>
</div> </div>
</el-drawer> </el-drawer>
...@@ -108,58 +124,59 @@ ...@@ -108,58 +124,59 @@
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
import {timestampToTime} from '@/assets/utils/dateFormat' import { timestampToTime } from "@/assets/utils/dateFormat";
export default { export default {
name: "AttendanceRecordHikList", name: "AttendanceRecordHikList",
components: { components: {
dialogShow dialogShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
// 生成打卡记录 // 生成打卡记录
formatData(){ formatData() {
let params = {} let params = {};
for(let value of this.config.search){ for (let value of this.config.search) {
if(this.query[value.name]){ if (this.query[value.name]) {
params[value.name] = this.query[value.name] params[value.name] = this.query[value.name];
} }
} }
if(this.selection.length>0){ if (this.selection.length > 0) {
params['idList'] = this.selection params["idList"] = this.selection;
} }
this.$post('/attendance/record/hik/addAttendanceRecord',{...params}).then(res => { this.$post("/attendance/record/hik/addAttendanceRecord", {
if(res.code == 1){ ...params,
this.$message.success("生成打卡记录成功!") }).then((res) => {
if (res.code == 1) {
this.$message.success("生成打卡记录成功!");
} }
}) });
}, },
// 更改状态 // 更改状态
changeStatus(item){ changeStatus(item) {
this.$set( this.$set(item, "islook", !item.islook);
item,
'islook',
!item.islook
)
}, },
// 导出记录 // 导出记录
lookexportHis(){ lookexportHis() {
this.$post('/attendance/export/record/list',{type:1,page:1,size:-1}).then(res => { this.$post("/attendance/export/record/list", {
if(res.code == 1){ type: 1,
let arr = res.data.data page: 1,
this.exportList = arr.map(item => { size: -1,
item.createTime = timestampToTime(item.createTime,6) }).then((res) => {
item.islook = false if (res.code == 1) {
return item let arr = res.data.data;
}) this.exportList = arr.map((item) => {
item.createTime = timestampToTime(item.createTime, 6);
item.islook = false;
return item;
});
} }
}) });
// 导出记录 // 导出记录
this.drawerhistory = true this.drawerhistory = true;
}, },
/** 导入 */ /** 导入 */
handleImport() { handleImport() {
...@@ -169,12 +186,16 @@ ...@@ -169,12 +186,16 @@
/** 下载模板操作 */ /** 下载模板操作 */
downloadTemplate() { downloadTemplate() {
this.isExport = true; this.isExport = true;
this.$download("/attendance/record/hik/downloadTemplate", {}, { type: "excel" }) this.$download(
"/attendance/record/hik/downloadTemplate",
{},
{ type: "excel" }
)
.then(() => (this.isExport = false)) .then(() => (this.isExport = false))
.catch((error) => { .catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}) });
}, },
/** 文件上传中处理 */ /** 文件上传中处理 */
handleFileUploadProgress(event, file, fileList) { handleFileUploadProgress(event, file, fileList) {
...@@ -195,23 +216,29 @@ ...@@ -195,23 +216,29 @@
/** 导出Excel */ /** 导出Excel */
doExport() { doExport() {
this.isExport = true; this.isExport = true;
let params = {} let params = {};
for(let value of this.config.search){ for (let value of this.config.search) {
if(this.query[value.name]){ if (this.query[value.name]) {
params[value.name] = this.query[value.name] params[value.name] = this.query[value.name];
} }
} }
if(this.selection.length>0){ if (this.selection.length > 0) {
params['idList'] = this.selection params["idList"] = this.selection;
} }
this.$download("/attendance/record/hik/exportExcel", { this.$download(
"/attendance/record/hik/exportExcel",
{
...params, ...params,
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { },
{ type: "excel" }
)
.then(() => (this.isExport = false))
.catch((error) => {
this.isExport = false; this.isExport = false;
this.$message.error(error.message); this.$message.error(error.message);
}) });
}, },
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -226,14 +253,14 @@ ...@@ -226,14 +253,14 @@
this.$refs.dialogform.view(row); this.$refs.dialogform.view(row);
}, },
afterRender(data) { afterRender(data) {
console.log(this.tableData.data) console.log(this.tableData.data);
}, },
}, },
data() { data() {
return { return {
upload: { upload: {
headers:{ headers: {
Authorization:window.sessionStorage.getItem('token') || '' Authorization: window.sessionStorage.getItem("token") || "",
}, },
// 是否显示弹出层(员工关怀信息导入) // 是否显示弹出层(员工关怀信息导入)
open: false, open: false,
...@@ -244,22 +271,24 @@ ...@@ -244,22 +271,24 @@
// 是否更新已经存在的数据 // 是否更新已经存在的数据
updateSupport: 0, updateSupport: 0,
// 上传的地址 // 上传的地址
url: process.env.VUE_APP_API_BASE_URL +"/attendance/attendance/record/hik/importData", url:
process.env.VUE_APP_API_BASE_URL +
"/attendance/attendance/record/hik/importData",
}, },
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [
{ {
name: "staffName", name: "staffName",
type: "text", type: "text",
label: "员工姓名", label: "员工姓名",
fuzzy: false fuzzy: false,
}, },
{ {
name:'workNum', name: "workNum",
type:'text', type: "text",
label:'工号', label: "工号",
fuzzy: false fuzzy: false,
}, },
// { // {
// name: "deptId", // name: "deptId",
...@@ -280,30 +309,34 @@ ...@@ -280,30 +309,34 @@
// fuzzy: false // fuzzy: false
// }, // },
{ {
name:'attendanceDateStart', name: "attendanceDateStart",
type: "date", type: "date",
label: "考勤开始时间", label: "考勤开始时间",
fuzzy: false fuzzy: false,
}, },
{ {
name:'attendanceDateEnd', name: "attendanceDateEnd",
type: "date", type: "date",
label: "考勤结束时间", label: "考勤结束时间",
fuzzy: false fuzzy: false,
} },
], ],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "员工姓名", prop: "staffName"}, { label: "员工姓名", prop: "staffName" },
{label: "工号", prop: "workNum"}, { label: "工号", prop: "workNum" },
{label: "部门", prop: "deptName"}, { label: "部门", prop: "deptName" },
// {label: "考勤组", prop: "attendanceGroupName"}, // {label: "考勤组", prop: "attendanceGroupName"},
// {label: "职位", prop: "positionName"}, // {label: "职位", prop: "positionName"},
// {label: "班次", prop: "shiftsName"}, // {label: "班次", prop: "shiftsName"},
{label: "考勤时间", prop: "attendanceDate",formatter: this.formatterDate}, {
{label: "考勤点名称", prop: "attendanceAddress"}, label: "考勤时间",
{label: "事件源", prop: "eventSource"}, prop: "attendanceDate",
formatter: this.formatterDate,
},
{ label: "考勤点名称", prop: "attendanceAddress" },
{ label: "事件源", prop: "eventSource" },
// { // {
// label: "操作", // label: "操作",
// width: 240, // width: 240,
...@@ -314,32 +347,31 @@ ...@@ -314,32 +347,31 @@
// ) // )
// } // }
// } // }
] ],
}, },
drawerhistory:false, drawerhistory: false,
exportList:[], exportList: [],
baseUrl:process.env.VUE_APP_API_BASE_URL+'/' baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
}
}
}; };
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.hisList{ .hisList {
padding: 15px; padding: 15px;
.list{ .list {
background-color: rgba(64, 158, 255, 0.1); background-color: rgba(64, 158, 255, 0.1);
font-size: 14px; font-size: 14px;
border-radius: 10px; border-radius: 10px;
padding: 10px; padding: 10px;
.times{ .times {
font-size: 12px; font-size: 12px;
color: #999; color: #999;
} }
cursor: pointer; cursor: pointer;
} }
} }
.details{ .details {
cursor: pointer; cursor: pointer;
} }
</style> </style>
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