Commit a09bf408 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 890d733c 6404dbe3
......@@ -60,7 +60,8 @@ export default {
/deep/.el-menu--horizontal > .el-menu-item.is-active,
/deep/.el-tabs__item.is-active {
border-bottom: 2px solid #409eff;
color: #303133;
color: #409eff;
font-weight: 600;
}
/deep/.el-tabs__item.is-active {
border-bottom: 3px solid #409eff;
......@@ -78,7 +79,21 @@ export default {
}
/deep/.el-card,
/deep/.page {
-webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
// -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
// box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
padding: 0;
}
/deep/.el-table th {
background: #fafafa !important;
color: rgba(0, 0, 0, 0.85) !important;
}
/deep/.el-table .cell {
font-size: 14px;
}
/deep/.el-drawer__header {
margin-bottom: 0;
padding-bottom: 20px;
}
</style>
......@@ -11,13 +11,8 @@ html * {
}
html,
body {
/* height: 100%; */
/* min-height: 100%; */
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial, sans-serif;
}
body {
overflow-y: scroll;
}
body,
div,
dl,
......@@ -251,6 +246,11 @@ a {
#operatorUserCabinCheckBox .el-checkbox__label {
display: inline;
}
.el-table th,
.el-table tr {
height: 54px;
text-align: center;
}
.page-statistics .chart {
margin-bottom: 80px;
border: 1px solid #ededed;
......@@ -295,7 +295,7 @@ a {
word-break: break-word;
}
.el-button--primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
background: linear-gradient(180deg, #5ab6ff, #2e9aff) !important;
color: #fff !important;
text-align: center !important;
}
......@@ -275,7 +275,11 @@ a {
#operatorUserCabinCheckBox .el-checkbox__label {
display: inline;
}
.el-table th,
.el-table tr {
height: 54px;
text-align: center;
}
// 统计页面隔日期变色
.page-statistics {
.chart {
......@@ -333,7 +337,7 @@ a {
}
}
.el-button--primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
background: linear-gradient(180deg, #5ab6ff, #2e9aff) !important;
color: #fff !important;
text-align: center !important;
}
......@@ -25,7 +25,7 @@
:width="column.width"
:sortable="column.sortable"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:align="column.align || 'center'"
:formatter="column.formatter"
:reserve-selection="column.reserveSelection"
:subColumns="column.subColumns"
......@@ -39,7 +39,7 @@
:label="sunColumn.label"
:width="sunColumn.width"
:sortable="sunColumn.sortable"
:align="sunColumn.align || 'left'"
:align="sunColumn.align || 'center'"
:formatter="sunColumn.formatter"
/>
</el-table-column>
......
......@@ -26,7 +26,7 @@
:width="column.width"
:sortable="column.sortable"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:align="column.align || 'center'"
:formatter="column.formatter"
:reserve-selection="column.reserveSelection"
:subColumns="column.subColumns"
......@@ -40,7 +40,7 @@
:label="sunColumn.label"
:width="sunColumn.width"
:sortable="sunColumn.sortable"
:align="sunColumn.align || 'left'"
:align="sunColumn.align || 'center'"
:formatter="sunColumn.formatter"
/>
</el-table-column>
......
......@@ -19,7 +19,7 @@
:label="column.label"
:width="column.width"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:align="column.align || 'center'"
:formatter='column.formatter'
>
</el-table-column>
......
......@@ -12,9 +12,12 @@
:headers="headers"
class="upload-file-uploader"
ref="upload"
:disabled="pageInfoType == 'view'"
>
<!-- 上传按钮 -->
<el-button size="mini" type="primary">选取文件</el-button>
<el-button size="mini" type="success" :disabled="pageInfoType == 'view'"
>选取文件</el-button
>
<!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip">
......@@ -95,6 +98,10 @@ export default {
type: String,
default: "",
},
pageInfoType: {
type: String,
default: "",
},
},
data() {
return {
......
......@@ -108,6 +108,21 @@
>{{ $label }}</el-radio
>
</el-radio-group>
<el-radio-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'radioCol'"
style="display: flex;margin-top: 12px;"
>
<el-radio
v-for="($label, $value) in enumData"
:key="$value"
:label="$value"
style="margin-bottom: 15px;"
>{{ $label }}</el-radio
>
</el-radio-group>
<el-checkbox-group
:disabled="disabled"
......
......@@ -43,16 +43,16 @@
</el-badge>
</div> -->
<div class="controllBar" @click="returnHome">
<i class="el-icon-s-home" style="font-size: 15px; margin-right: 10px">
首页</i
<i class="el-icon-s-home" style="font-size: 14px; margin-right: 10px">
返回系统首页</i
>
</div>
<a class="controllBar" :href="portal" style="color: #fff;">
<i
class="el-icon-arrow-left"
style="font-size: 15px; margin-right: 10px"
style="font-size: 14px; margin-right: 10px"
>
返回门户</i
返回平台门户</i
>
</a>
......@@ -210,7 +210,7 @@ export default {
.layout-menu-wrapper {
height: 72px;
line-height: 72px;
font-size: 14px;
font-size: 16px;
color: #eee;
background: linear-gradient(90deg, #1845c6, #2999ff) !important;
.layout-logo {
......@@ -231,6 +231,8 @@ export default {
.menu-list {
li {
width: 140px;
text-align: center;
span {
display: block;
padding: 0 6px;
......@@ -254,10 +256,10 @@ export default {
}
.controllBar {
background-color: rgba(255, 255, 255, 0.2);
width: 120px;
width: 150px;
height: 44px;
line-height: 44px;
margin-top: 34px;
margin-top: 36px;
transform: translateY(-50%);
text-align: center;
border-radius: 5px;
......
......@@ -559,6 +559,9 @@ export default {
.el-input {
width: 170px;
}
.el-form-item {
margin-bottom: 10px;
}
.el-select .el-input {
width: 140px;
}
......@@ -568,6 +571,7 @@ export default {
.search-form-wapper {
.el-form-item {
width: 100%;
margin-bottom: 10px;
.el-form-item__label {
min-width: 70px;
}
......
......@@ -24,6 +24,7 @@
size="mini"
@click="config.methods.add"
title="新增"
style="margin-left: 10px;"
>新增</el-button
>
<el-button
......@@ -55,6 +56,7 @@
icon="el-icon-delete"
type="danger"
size="mini"
style="margin-left: 10px;"
title="批量删除"
>批量删除</el-button
>
......@@ -233,7 +235,7 @@
v-if="!isShowButton('notPagination') ? false : data.pageInfo.totalResult"
>
<Pagination
style="float: left"
style="float: right"
:total="data.pageInfo.totalResult"
:prePageResult="data.pageInfo.prePageResult"
/>
......@@ -344,11 +346,11 @@ export default {
.table-head {
display: block;
width: 100%;
.el-button {
margin-bottom: 5px;
}
.table-head-left {
margin-bottom: 10px;
display: block;
width: 100%;
}
......@@ -358,39 +360,41 @@ export default {
width: 100%;
}
}
.table-body,
.table-foot {
padding: 0 10px;
}
}
}
.layout-table {
.table-head {
margin-bottom: 10px;
//padding-bottom: 12px;
// padding-top: 7px;
border-bottom: 1px solid #ededed;
// border-bottom: 1px solid #ededed;
.el-breadcrumb {
margin-right: 30px;
}
.table-head-left .buttons {
button + button {
margin-left: 10px;
margin-bottom: 10px;
}
button + span {
margin-left: 10px;
margin-bottom: 10px;
}
span + span {
margin-left: 10px;
margin-bottom: 10px;
}
span + button {
margin-left: 10px;
margin-bottom: 10px;
}
}
}
.table-body,
.table-foot {
padding: 0 10px;
}
.table-form {
padding-top: 10px;
margin-top: 10px;
overflow: hidden;
}
.search-form-wapper {
......
<template>
<div style="margin-bottom:15px;">
<div>
<el-menu
:default-active="activeName"
class="el-menu-demo"
......
......@@ -66,7 +66,7 @@
icon="el-icon-delete"
size="mini"
title="删除"
style="margin-left: 0;margin-right: 5px"
style="margin-left: 0;margin-right: 5px;color: #FA4D4C;"
>删除</el-button
>
</Confirm>
......
<template>
<div :style="menuPageCss" class="pages page-layout">
<LayoutHeader v-if="menuPage !== 'left'" @changePath="changePath"></LayoutHeader>
<LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage === 'left'" />
<LayoutHeader
v-if="menuPage !== 'left'"
@changePath="changePath"
></LayoutHeader>
<LayoutHeaderLeft
@toggle="toggle"
:isOpen="isOpen"
v-if="menuPage === 'left'"
/>
<div class="layout">
<router-view :class="{ active: !isOpen }" />
</div>
......@@ -53,7 +60,6 @@ export default {
.layout {
padding: 15px 15px 0 15px;
box-sizing: border-box;
}
.page {
......@@ -71,7 +77,7 @@ export default {
}
.page-layout {
background: #eee;
background: #f0f2f5;
height: 100vh;
overflow: auto;
}
......@@ -83,13 +89,13 @@ export default {
/* 滚动条上的滚动滑块 */
.page-layout::-webkit-scrollbar-thumb {
background: #CCCCCC;
background: #cccccc;
border-radius: 4px;
}
/* 滚动条轨道 */
.page-layout::-webkit-scrollbar-track {
background: #EEEEEE;
background: #eeeeee;
border-radius: 4px;
}
</style>
<template>
<!-- 班次表单 -->
<el-drawer :title="title" :visible.sync="open" size="55%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="140px"
style="padding-right:10px;"
>
<el-row>
<Field
label="班次名称"
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"></LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceClassList",
components: {
dialogShow
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceClassList",
components: {
dialogShow,
},
mixins: [table],
created() {},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
align="center"
></el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
/** 子表列元素 */
columnSet: [
{
prop: "goWorkDate",
label: "上班打卡时间",
width: 150,
align: "center",
},
mixins: [table],
created() {
{
prop: "goWorkDateBefore",
label: "上班前打卡(分钟)",
width: 150,
align: "center",
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
{
prop: "goWorkDateAfter",
label: "上班后打卡(分钟)",
width: 150,
align: "center",
},
{
prop: "offWorkDate",
label: "下班打卡时间",
width: 150,
align: "center",
},
{
prop: "offWorkDateBefore",
label: "下班前打卡(分钟)",
width: 150,
align: "center",
},
{
prop: "offWorkDateAfter",
label: "下班后打卡(分钟)",
width: 150,
align: "center",
},
// {prop:"remark",label:"备注",width:150},
// {prop:"classId",label:"班次ID",width:150},
],
config: {
search: [
{
name: "className",
type: "text",
label: "班次名称",
fuzzy: true,
},
],
isshowTabPane: true,
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "班次名称", prop: "className" },
// {label: "考勤时间", prop: "className"},
{
label: "考勤班次详细信息",
width: 200,
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.attendanceClassDetailList)}
<el-button type="text" slot="reference">
详细
</el-button>
</el-popover>
);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
data() {
return {
/** 子表列元素 */
columnSet:[
{prop:"goWorkDate",label:"上班打卡时间",width:150},
{prop:"goWorkDateBefore",label:"上班前打卡(分钟)",width:150},
{prop:"goWorkDateAfter",label:"上班后打卡(分钟)",width:150},
{prop:"offWorkDate",label:"下班打卡时间",width:150},
{prop:"offWorkDateBefore",label:"下班前打卡(分钟)",width:150},
{prop:"offWorkDateAfter",label:"下班后打卡(分钟)",width:150},
// {prop:"remark",label:"备注",width:150},
// {prop:"classId",label:"班次ID",width:150},
],
config: {
search: [
{
name: "className",
type: "text",
label: "班次名称",
fuzzy: true
}
],
isshowTabPane:true,
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "班次名称", prop: "className"},
// {label: "考勤时间", prop: "className"},
{label: "考勤班次详细信息",
width: 200,
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.attendanceClassDetailList)}
<el-button type="text" slot="reference">详细</el-button>
</el-popover>
);
},
},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
},
],
},
};
</script>
\ No newline at end of file
},
};
</script>
......@@ -7,156 +7,167 @@
>
</div>
<tab-pane :activeName="activeName" :thirdList="thirdList"></tab-pane>
<div class="mt20">
<div>考勤组名称</div>
<el-input
placeholder="请输入考勤组名称"
maxlength="20"
v-model="setParams.groupName"
style="width:320px"
class="mt10"
></el-input>
</div>
<div style="padding: 0 10px;">
<div class="mt20">
<div>考勤组名称</div>
<el-input
placeholder="请输入考勤组名称"
maxlength="20"
v-model="setParams.groupName"
style="width:320px"
class="mt10"
></el-input>
</div>
<div class="flex flex-align-center mt20">
<div>考勤人员</div>
<el-button type="text" class="ml20" @click="drawershow('drawer1')"
>设置</el-button
>
</div>
<div class="flex flex-align-center mt20">
<div>考勤人员</div>
<el-button type="text" class="ml20" @click="drawershow('drawer1')"
>设置</el-button
>
</div>
<div
class="flex flex-align-center mt10"
style="color:#999;font-size:14px"
v-if="attendArr.length < 1"
>
<div>参与考勤人员</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>参与考勤人员</div>
<div class="ml20">已设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#999;font-size:14px"
v-if="attendArr.length < 1"
>
<div>参与考勤人员</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>参与考勤人员</div>
<div class="ml20">已设置</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 class="ml20">未设置</div>
</div> -->
<div style="height:20px"></div>
<div style="height:20px"></div>
<div class="flex flex-align-center mt20">
<div>考勤组负责人</div>
<el-button type="text" class="ml20" @click="drawershow('drawer2')"
>设置</el-button
>
</div>
<div class="flex flex-align-center mt20">
<div>考勤组负责人</div>
<el-button type="text" class="ml20" @click="drawershow('drawer2')"
>设置</el-button
>
</div>
<div
class="flex flex-align-center mt10"
style="color:#999;font-size:14px"
v-if="!groupResponsibleEntity.responsibleId"
>
<div>主负责人</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>主负责人</div>
<div class="ml20">已设置</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"
v-if="!groupResponsibleEntity.responsibleId"
>
<div>主负责人</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>主负责人</div>
<div class="ml20">已设置</div>
</div>
<!-- <div class="flex flex-align-center mt10" style="color:#999;font-size:14px">
<div>子负责人</div>
<div class="ml20">未设置</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 class="ml20">未设置</div>
</div> -->
<div style="height:20px"></div>
<div style="height:20px"></div>
<div class="flex flex-align-center mt20">
<div>考勤时间</div>
<el-button type="text" class="ml20" @click="drawershow('drawer3')"
>设置
</el-button>
</div>
<div class="flex flex-align-center mt20">
<div>考勤时间</div>
<el-button type="text" class="ml20" @click="drawershow('drawer3')"
>设置
</el-button>
</div>
<div
class="flex flex-align-center mt10"
v-if="!setParams.type"
style="color:#999;font-size:14px"
>
<div>考勤时间</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>考勤时间</div>
<div class="ml20">已设置</div>
</div>
<div
class="flex flex-align-center mt10"
v-if="!setParams.type"
style="color:#999;font-size:14px"
>
<div>考勤时间</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>考勤时间</div>
<div class="ml20">已设置</div>
</div>
<div style="height:20px"></div>
<div style="height:20px"></div>
<div class="flex flex-align-center mt20">
<div>打卡方式</div>
<el-button type="text" class="ml20" @click="drawershow('drawer4')"
>设置</el-button
>
</div>
<div class="flex flex-align-center mt20">
<div>打卡方式</div>
<el-button type="text" class="ml20" @click="drawershow('drawer4')"
>设置</el-button
>
</div>
<div
class="flex flex-align-center mt10"
style="color:#999;font-size:14px"
v-if="setParams.attendanceType == ''"
>
<div>打卡方式</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>打卡方式</div>
<div class="ml20">已设置</div>
</div>
<div class="mt20">
<el-button type="primary" @click="saveSetform">保存设置</el-button>
<el-button @click="allReset">全部重置</el-button>
<div
class="flex flex-align-center mt10"
style="color:#999;font-size:14px"
v-if="setParams.attendanceType == ''"
>
<div>打卡方式</div>
<div class="ml20">未设置</div>
</div>
<div
class="flex flex-align-center mt10"
style="color:#1890ff;font-size:14px"
v-else
>
<div>打卡方式</div>
<div class="ml20">已设置</div>
</div>
<div class="mt20">
<el-button type="primary" @click="saveSetform">保存设置</el-button>
<el-button @click="allReset">全部重置</el-button>
</div>
</div>
</el-card>
<!-- 设置考勤人员 -->
<el-drawer
title="考勤人员"
size="70%"
:title="
drawer1
? '考勤人员'
: drawer2
? '考勤组负责人'
: drawer3
? '考勤时间'
: drawer4
? '打卡方式'
: ''
"
size="50%"
:beforeClose="closedrawer"
:visible.sync="drawer"
direction="rtl"
>
<div style="padding:20px">
<div style="padding:10px 10px 10px 20px">
<!-- 考勤人员 -->
<div v-if="drawer1">
<div>参与考勤人员({{ this.attendArr.length }})</div>
<el-input
@focus="selectGroup(true)"
type="textarea"
maxlength="20"
autosize
maxlength="200"
:autosize="{ minRows: 2, maxRows: 100 }"
v-model="persons"
style="width:80%"
size="mini"
style="width:100%;margin-top: 10px;"
placeholder="请选择"
>
</el-input>
......@@ -165,7 +176,10 @@
<!-- 考勤组 -->
<div class="mt10" v-if="drawer2">
<div>考勤组负责人:</div>
<el-select v-model="groupResponsibleEntity.responsibleId">
<el-select
v-model="groupResponsibleEntity.responsibleId"
style="width: 100%;margin-top: 10px;"
>
<el-option
v-for="($label, $value) in responsiableList"
:key="$value"
......@@ -192,10 +206,25 @@
<!-- 考勤时间 -->
<div class="mt20" v-if="drawer3">
<!-- -->
<div>班制设定</div>
<el-radio-group v-model="setParams.type" @change="changeRadio">
<div class="mt10" v-for="(item, index) in paibanType" :key="index">
<el-radio :label="item.value">{{ item.label }}</el-radio>
<div class="tips">{{ item.des }}</div>
<div
v-for="(item, index) in paibanType"
:key="index"
style="margin: 30px 0;"
class="radio_box"
>
<el-radio :label="item.value"
><span style="font-size: 16px;font-weight: 600;">
{{ item.label }}</span
></el-radio
>
<div
class="tips"
style="font-size: 14px;margin-top: 10px;margin-left: 28px;"
>
{{ item.des }}
</div>
</div>
</el-radio-group>
</div>
......@@ -275,13 +304,14 @@
</div>
<div v-if="setParams.type != 2">
<div>自动排休</div>
<div class="mt10">
<el-checkbox v-model="holidays" :true-label="1" :false-label="0"
>法定节假日自动排休</el-checkbox
>
</div>
<div class="mt10">
<div style="margin-top: 30px;">
<div>特殊日期</div>
</div>
......@@ -332,15 +362,19 @@
<div>考勤方式</div>
<el-radio-group v-model="setParams.attendanceType">
<div
class="mt10"
v-for="(item, index) in attendanceType"
:key="index"
style="margin: 30px 0;"
>
<el-radio :label="item.value">{{ item.label }}</el-radio>
<el-radio :label="item.value"
><span style="font-size: 16px;font-weight: 600;">
{{ item.label }}</span
></el-radio
>
</div>
</el-radio-group>
</div>
<div class="button_box" style="width: 100%;margin: 20px">
<div class="button_box" style="width: 100%;margin: 20px 0">
<el-button type="primary" @click="() => (drawer = false)"
>保存</el-button
>
......@@ -1392,7 +1426,7 @@ export default {
</script>
<style lang="less" scoped>
.container {
font-size: 15px;
font-size: 16px;
}
.labelClass {
width: 200px;
......@@ -1437,7 +1471,12 @@ export default {
}
.head {
position: absolute;
right: 45px;
right: 10px;
z-index: 99;
top: 6px;
}
/deep/.el-textarea__inner {
height: 500px !important;
font-size: 14px;
}
</style>
<template>
<div class="page">
<LayoutTable :data="tableData" notDel :config="tableConfig" v-if="isshow"></LayoutTable>
<group-template ref="groupTemplate" @ok="okFn" />
</div>
<div class="page">
<LayoutTable
:data="tableData"
notDel
:config="tableConfig"
v-if="isshow"
></LayoutTable>
<group-template ref="groupTemplate" @ok="okFn" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import groupTemplate from "./groupTemplate";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupList",
components: {
groupTemplate
},
mixins: [table],
created() {
},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
>
</el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.isshow = false
this.$refs.groupTemplate.add(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写编辑方法 */
toEdit(row) {
this.isshow = false
this.$refs.groupTemplate.edit(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写查看方法 */
toView(row) {
this.isshow = false
this.$refs.groupTemplate.view(row);
},
okFn(val){
this.getData()
this.isshow = val
}
},
data() {
return {
isshow:true,
/** 子表列元素 */
columnSet:[
{prop:"groupId",label:"考勤组",width:100},
{prop:"groupName",label:"考勤组名称",width:100},
{prop:"staffId",label:"员工ID",width:100},
{prop:"staffName",label:"员工姓名",width:100},
{prop:"partAttendance",label:"是否参与考勤,",width:100},
{prop:"remark",label:"备注",width:100},
],
config: {
isshowTabPane:true,
search: [
{
name: "staffName",
type: "text",
label: "考勤组名称",
fuzzy: true
},
],
columns: [
{type: "selection", width: 60,fixed:'left'},
{type: "index",label: "序号",width: 50,fixed:'left'},
/** 表单弹出框模式需引入 */
import groupTemplate from "./groupTemplate";
import table from "@/assets/mixins/table";
export default {
name: "AttendanceGroupList",
components: {
groupTemplate,
},
mixins: [table],
created() {},
methods: {
renderTable(tableData) {
return (
<el-table stripe data={tableData} class="total-table">
{this.columnSet.map((item) => this.renderTableColumn(item))}
</el-table>
);
},
renderTableColumn(options) {
return (
<el-table-column
prop={options.prop}
label={options.label}
width={options.width}
></el-table-column>
);
},
/** 重写新增方法 */
toAdd(row) {
this.isshow = false;
this.$refs.groupTemplate.add(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写编辑方法 */
toEdit(row) {
this.isshow = false;
this.$refs.groupTemplate.edit(row);
// this.$router.push(
// {
// path:'/attendance/group/view'
// }
// )
},
/** 重写查看方法 */
toView(row) {
this.isshow = false;
this.$refs.groupTemplate.view(row);
},
okFn(val) {
this.getData();
this.isshow = val;
},
},
data() {
return {
isshow: true,
/** 子表列元素 */
columnSet: [
{ prop: "groupId", label: "考勤组", width: 100 },
{ prop: "groupName", label: "考勤组名称", width: 100 },
{ prop: "staffId", label: "员工ID", width: 100 },
{ prop: "staffName", label: "员工姓名", width: 100 },
{ prop: "partAttendance", label: "是否参与考勤,", width: 100 },
{ prop: "remark", label: "备注", width: 100 },
],
config: {
isshowTabPane: true,
search: [
{
name: "staffName",
type: "text",
label: "考勤组名称",
fuzzy: true,
},
],
columns: [
{ type: "selection", width: 60, fixed: "left" },
{ type: "index", label: "序号", width: 50, fixed: "left" },
{label: "考勤组名称", prop: "groupName",width:200,fixed:'left'},
{ label: "考勤组名称", prop: "groupName", width: 200, fixed: "left" },
{label: "人数", prop: "personNum",width: 80,fixed:'left'},
{ label: "人数", prop: "personNum", width: 80, fixed: "left" },
{label: "负责人", prop: "responsibleName",width: 80,fixed:'left'},//未
{
label: "负责人",
prop: "responsibleName",
width: 80,
fixed: "left",
}, //未
{label: "类型", prop: "type",formatter: this.formatterattendType,width: 100,fixed:'left'},
{
label: "类型",
prop: "type",
formatter: this.formatterattendType,
width: 100,
fixed: "left",
},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter},
// {label: "未参与考勤人数", prop: "personNumNo",formatter: this.formatter},
// {label: "未参与考勤人数", prop: "personNumNo",formatter: this.formatter},
// {label: "考勤方式", prop: "attendanceType"},
// {label: "考勤方式", prop: "attendanceType"},
{label: "考勤时间", prop: "attendanceTime",formatter:this.formatterBanci},//未
{
label: "考勤时间",
prop: "attendanceTime",
formatter: this.formatterBanci,
}, //未
// {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,
formatter: row => {
return (
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
// {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,
formatter: (row) => {
return (
<table-buttons
noAdd
noView
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
</script>
\ No newline at end of file
},
};
</script>
<style lang="less" scoped>
.table-head {
padding-left: 10px;
}
</style>
......@@ -79,22 +79,18 @@
placeholder="请输入请假事由"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="审核结果"
prop="auditResult"
v-model="form.auditResult"
type="radio"
:enumData="dict.auditResult"
placeholder="请选择审核结果"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="审核说明"
prop="auditDesc"
v-model="form.auditDesc"
placeholder="请输入审核说明"
:disabled="pageInfo.type == 'view'"
/>
<el-row>
<Field
label="审核结果"
prop="auditResult"
v-model="form.auditResult"
type="radioCol"
:enumData="dict.auditResult"
placeholder="请选择审核结果"
:disabled="pageInfo.type == 'view'"
/>
</el-row>
<Field
label="审批负责人"
prop="approverId"
......@@ -104,6 +100,24 @@
:enumData="dict.approverId"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="申请时间"
prop="createTime"
v-model="form.createTime"
type="datetime"
disabled
/>
<el-row>
<Field
label="审核说明"
prop="auditDesc"
type="textarea"
v-model="form.auditDesc"
placeholder="请输入审核说明"
:disabled="pageInfo.type == 'view'"
style="width: 100%;"
/>
</el-row>
<!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> -->
<!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> -->
<Field
......@@ -113,13 +127,7 @@
type="textarea"
placeholder="请输入备注"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="申请时间"
prop="createTime"
v-model="form.createTime"
type="datetime"
disabled
style="width: 100%;"
/>
</el-row>
<el-form-item label="附件路径" prop="attachmentPathList">
......@@ -127,7 +135,7 @@
@input="uploadFn"
:value="form.attachmentPathList"
:fileNumber="1"
:disabled="pageInfo.type == 'view'"
:pageInfoType="pageInfo.type"
/>
</el-form-item>
<form-buttons
......
......@@ -144,7 +144,7 @@ export default {
{
label: "钉钉原始时间(换算时长)",
width: 165,
width: 190,
formatter: (row) => {
return (
(row.sourceDingTime ? row.sourceDingTime : "--") +
......
......@@ -95,7 +95,7 @@ export default {
{
name: "deptId",
type: "select",
label: "全部部门",
label: "部门",
},
// {
// name: "groupId",
......@@ -111,12 +111,12 @@ export default {
{
name: "errorStatus",
type: "select",
label: "全部异常状态",
label: "异常状态",
},
{
name: "processStatus",
type: "select",
label: "全部处理状态",
label: "处理状态",
},
{
name: "errorDateTimeStart",
......@@ -134,12 +134,12 @@ export default {
label: "员工姓名",
fuzzy: true,
},
{
name: "phoneNumber",
type: "text",
label: "手机号",
fuzzy: true,
},
// {
// name: "phoneNumber",
// type: "text",
// label: "手机号",
// fuzzy: true,
// },
],
columns: [
{ type: "selection", width: 60, fixed: "left" },
......@@ -157,6 +157,7 @@ export default {
{
label: "异常时间",
prop: "errorDateTime",
width: 160,
formatter: this.formatterDate,
},
{
......@@ -175,11 +176,13 @@ export default {
label: "实际打卡时间",
prop: "actualAttendanceDateTime",
formatter: this.formatterDate,
width: 160,
},
{
label: "处理时间",
prop: "operDateTime",
formatter: this.formatterDate,
width: 160,
},
{
label: "处理状态",
......@@ -190,7 +193,7 @@ export default {
{ label: "备注", prop: "remark", formatter: this.formatters },
{
label: "操作",
width: 240,
width: 100,
formatter: (row) => {
if (row.processStatus == 0 || !row.processStatus) {
return (
......
......@@ -35,7 +35,8 @@
v-if="showBtn"
style="margin-left: 10px"
@click="formatData"
>生成打卡记录</el-button
:loading="btnLoading"
>极速计算结果</el-button
>
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
......@@ -150,8 +151,9 @@ export default {
: (this.showBtn = false);
},
methods: {
// 生成打卡记录
// 极速计算结果
formatData() {
this.btnLoading = true;
let params = {};
for (let value of this.config.search) {
if (this.query[value.name]) {
......@@ -164,6 +166,7 @@ export default {
this.$post("/attendance/record/hik/addAttendanceRecord", {
...params,
}).then((res) => {
this.btnLoading = false;
if (res.code == 1) {
this.$message.success("生成打卡记录成功!");
}
......@@ -283,6 +286,7 @@ export default {
},
data() {
return {
btnLoading: false,
showBtn: false,
progress: false,
isExport: false,
......
......@@ -70,7 +70,7 @@
@click="lookexportHis"
>导出记录</el-button
>
<el-button
<!-- <el-button
slot="table-head-left2"
style="margin-left: 10px"
icon="el-icon-tickets"
......@@ -85,7 +85,7 @@
size="mini"
@click="setdialog(1)"
>导出表格设置</el-button
>
> -->
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
<!-- 导出记录查看 -->
......@@ -573,12 +573,12 @@ export default {
fuzzy: true,
},
{
name: "workNum",
type: "text",
label: "员工工号",
fuzzy: true,
},
// {
// name: "workNum",
// type: "text",
// label: "员工工号",
// fuzzy: true,
// },
{
name: "phone",
type: "text",
......
......@@ -206,6 +206,7 @@ export default {
show: true,
label: item + "(" + getMyDay(new Date(item)) + ")",
prop: "attendanceStaffStatEntities",
width: 100,
formatter: (row) => {
if (
row.attendanceStaffStatEntities &&
......@@ -396,12 +397,6 @@ export default {
label: "员工姓名",
fuzzy: true,
},
{
name: "phoneNumber",
type: "text",
label: "手机号",
fuzzy: true,
},
],
columns: [
{ type: "selection", width: 60, fixed: "left", show: true },
......@@ -484,6 +479,7 @@ export default {
label: "因公外出(与窗口工作无关/天)",
prop: "businessTrip",
show: true,
width: 140,
},
{ label: "公休(天)", prop: "publicHoliday", show: true },
......@@ -496,9 +492,19 @@ export default {
{ label: "育儿假(天)", prop: "childRearingLeave", show: true },
{ label: "产假(陪护假/天)", prop: "maternityLeave", show: true },
{
label: "产假(陪护假/天)",
prop: "maternityLeave",
show: true,
width: 140,
},
{ label: "调回单位(或离职/天)", prop: "transferBack", show: true },
{
label: "调回单位(或离职/天)",
prop: "transferBack",
show: true,
width: 140,
},
{ label: "探亲假(天)", prop: "homeLeave", show: true },
......@@ -512,6 +518,7 @@ export default {
label: "未按规定打卡(含忘记打卡)",
prop: "nonCompliancePunch",
show: true,
width: 140,
},
{ label: "迟到(次)", prop: "lateTimes", show: true },
......@@ -532,6 +539,7 @@ export default {
label: "无故缺席会议(次)",
prop: "unexcusedMeetingAbsence",
show: true,
width: 140,
},
{ label: "会议早退", prop: "earlyLeaveMeeting", show: true },
......
......@@ -7,6 +7,7 @@
:disabled="isExport"
size="mini"
slot="table-head-left2"
style="margin-left: 10px;"
>导出</el-button
>
</LayoutTable>
......
......@@ -213,7 +213,7 @@ export default {
{
label: "异常时间",
prop: "errorTime",
width: 150,
width: 240,
formatter: this.formatterDate,
},
......@@ -226,7 +226,7 @@ export default {
{
label: "实际打卡时间",
prop: "actualAttendTime",
width: 150,
width: 240,
formatter: this.formatterDate,
},
......
......@@ -3,7 +3,7 @@
<h1>没有访问权限,或是账号过期。</h1>
<div>
<el-button>重新登录</el-button>
<el-button @click='goHome'>回首页</el-button>
<el-button @click='goHome'>系统首页</el-button>
</div>
</div>
</template>
......
......@@ -33,6 +33,7 @@
native-type="submit"
:loading="loading"
@click="onSubmit"
style="font-size: 20px;"
>登录</el-button
>
</el-form-item>
......@@ -139,7 +140,7 @@ export default {
text-align: center;
.des,
.tips {
font-size: 14px;
font-size: 18px;
white-space: nowrap;
margin-bottom: 20px;
margin-top: 10px;
......@@ -153,8 +154,8 @@ export default {
border-radius: 15px;
h1 {
text-align: center;
font-size: 30px;
font-weight: 500;
font-size: 40px;
font-weight: 600;
}
button {
margin-top: 10px;
......@@ -172,7 +173,7 @@ export default {
}
.el-input__inner {
border-color: #409eff;
border-radius: 20px;
border-radius: 8px;
}
.el-input--small .el-input__inner {
height: 52px;
......@@ -184,10 +185,10 @@ export default {
}
button {
width: 80%;
border-radius: 20px;
border-radius: 8px;
height: 52px;
background: linear-gradient(
90deg,
180deg,
rgba(24, 69, 198, 1) 0%,
rgba(41, 153, 255, 1) 100%
);
......
......@@ -5,7 +5,7 @@
:title="title"
:visible.sync="open"
:direction="direction"
size="50%"
size="35%"
>
<el-form
ref="form"
......@@ -111,7 +111,11 @@
</div>
</div>
<form-buttons @submit="submitForm" noCancelBtn />
<form-buttons
@submit="submitForm"
noCancelBtn
style="position: absolute; left: -100px;"
/>
</el-form>
</el-drawer>
</div>
......
......@@ -35,7 +35,7 @@
</div>
</div>
</div> -->
<el-row :gutter="20">
<el-row :gutter="20" style="padding-top: 10px;">
<el-col :span="6" :xs="12" class="mytree">
<div class="titles">选择部门</div>
<!-- default-expand-all -->
......
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