flx:修复bug 新金湾
This commit is contained in:
parent
3aa2ec1aa7
commit
5353c9d16a
BIN
src/assets/images/laborManage/screen-icon.png
Normal file
BIN
src/assets/images/laborManage/screen-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 247 B |
@ -21,18 +21,34 @@
|
|||||||
style="width: 100%; height: calc(100% - 49px)"
|
style="width: 100%; height: calc(100% - 49px)"
|
||||||
></InspectionLedger> -->
|
></InspectionLedger> -->
|
||||||
<AttendanceOverview
|
<AttendanceOverview
|
||||||
|
v-permission="{
|
||||||
|
key: 'attendanceOverview',
|
||||||
|
menuPath: '/project/labor/allAttendanceManage',
|
||||||
|
}"
|
||||||
v-if="activeIndex == '1'"
|
v-if="activeIndex == '1'"
|
||||||
style="width: 100%; height: calc(100% - 49px)"
|
style="width: 100%; height: calc(100% - 49px)"
|
||||||
></AttendanceOverview>
|
></AttendanceOverview>
|
||||||
<DayAttendanceReport
|
<DayAttendanceReport
|
||||||
|
v-permission="{
|
||||||
|
key: 'dayAttendanceReport',
|
||||||
|
menuPath: '/project/labor/allAttendanceManage',
|
||||||
|
}"
|
||||||
v-if="activeIndex == '2'"
|
v-if="activeIndex == '2'"
|
||||||
style="width: 100%; height: calc(100% - 49px)"
|
style="width: 100%; height: calc(100% - 49px)"
|
||||||
></DayAttendanceReport>
|
></DayAttendanceReport>
|
||||||
<MonthAttendanceReport
|
<MonthAttendanceReport
|
||||||
|
v-permission="{
|
||||||
|
key: 'monthAttendanceReport',
|
||||||
|
menuPath: '/project/labor/allAttendanceManage',
|
||||||
|
}"
|
||||||
v-if="activeIndex == '3'"
|
v-if="activeIndex == '3'"
|
||||||
style="width: 100%; height: calc(100% - 49px)"
|
style="width: 100%; height: calc(100% - 49px)"
|
||||||
></MonthAttendanceReport>
|
></MonthAttendanceReport>
|
||||||
<PunchCardRecord
|
<PunchCardRecord
|
||||||
|
v-permission="{
|
||||||
|
key: 'punchCardRecord',
|
||||||
|
menuPath: '/project/labor/allAttendanceManage',
|
||||||
|
}"
|
||||||
v-if="activeIndex == '4'"
|
v-if="activeIndex == '4'"
|
||||||
style="width: 100%; height: calc(100% - 49px)"
|
style="width: 100%; height: calc(100% - 49px)"
|
||||||
></PunchCardRecord>
|
></PunchCardRecord>
|
||||||
|
|||||||
@ -470,7 +470,7 @@ export default {
|
|||||||
tableData: [],
|
tableData: [],
|
||||||
countWorkerDailyInfo: [
|
countWorkerDailyInfo: [
|
||||||
{
|
{
|
||||||
title: "当日进场",
|
title: "当然在职",
|
||||||
countNum: 0,
|
countNum: 0,
|
||||||
content: "当日在职人数之和",
|
content: "当日在职人数之和",
|
||||||
},
|
},
|
||||||
@ -674,7 +674,7 @@ export default {
|
|||||||
// res.result
|
// res.result
|
||||||
this.countWorkerDailyInfo = [
|
this.countWorkerDailyInfo = [
|
||||||
{
|
{
|
||||||
title: "当日进场",
|
title: "当然在职",
|
||||||
countNum: res.result.inServiceCount,
|
countNum: res.result.inServiceCount,
|
||||||
content: "当日在职人数之和",
|
content: "当日在职人数之和",
|
||||||
},
|
},
|
||||||
|
|||||||
@ -78,6 +78,8 @@
|
|||||||
>
|
>
|
||||||
<span style="margin-right: 10px" v-if="data.children.length > 0"
|
<span style="margin-right: 10px" v-if="data.children.length > 0"
|
||||||
>({{ data.children.length }})</span
|
>({{ data.children.length }})</span
|
||||||
|
><span style="margin-right: 10px" v-else
|
||||||
|
>({{ data.workerNum || 0 }})</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-tree>
|
</el-tree>
|
||||||
|
|||||||
@ -580,8 +580,19 @@ export default {
|
|||||||
// startDate: this.exportSettingInfo.startDate[0],
|
// startDate: this.exportSettingInfo.startDate[0],
|
||||||
// endDate: this.exportSettingInfo.startDate[1],
|
// endDate: this.exportSettingInfo.startDate[1],
|
||||||
projectSn: this.projectSn,
|
projectSn: this.projectSn,
|
||||||
|
inserviceType: 1,
|
||||||
|
workerName: this.queryParams.workerName,
|
||||||
|
startTime: this.queryParams.constructionTime[0],
|
||||||
|
endTime: this.queryParams.constructionTime[1],
|
||||||
idList: this.$refs.multipleTable.selection.map((item) => item.id),
|
idList: this.$refs.multipleTable.selection.map((item) => item.id),
|
||||||
};
|
};
|
||||||
|
const categoryObj = {
|
||||||
|
1: "enterpriseId",
|
||||||
|
2: "departmentId",
|
||||||
|
3: "teamId",
|
||||||
|
};
|
||||||
|
requestData[categoryObj[this.riskListDetail.category]] =
|
||||||
|
this.riskListDetail.originalId || "";
|
||||||
fetch(
|
fetch(
|
||||||
this.$http.defaults.baseURL + "xmgl/workerAttendance/exportXls",
|
this.$http.defaults.baseURL + "xmgl/workerAttendance/exportXls",
|
||||||
{
|
{
|
||||||
|
|||||||
@ -130,8 +130,7 @@
|
|||||||
<el-checkbox
|
<el-checkbox
|
||||||
@change="handleQueryChange"
|
@change="handleQueryChange"
|
||||||
v-model="specialWorkerInfo.includingSubordinatesChecked"
|
v-model="specialWorkerInfo.includingSubordinatesChecked"
|
||||||
></el-checkbox
|
></el-checkbox>
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="header_box">
|
<div class="header_box">
|
||||||
<span>特殊工种</span>
|
<span>特殊工种</span>
|
||||||
@ -267,11 +266,12 @@
|
|||||||
v-if="showTeamList && teamListData.totalDepartmentNum > 0"
|
v-if="showTeamList && teamListData.totalDepartmentNum > 0"
|
||||||
style="
|
style="
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 10px;
|
right: 4px;
|
||||||
top: 35%;
|
top: 50%;
|
||||||
font-size: 26px;
|
font-size: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #999;
|
color: #999;
|
||||||
|
transform: translateY(-50%);
|
||||||
"
|
"
|
||||||
></i>
|
></i>
|
||||||
</div>
|
</div>
|
||||||
@ -1492,6 +1492,23 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="考勤组" prop="attendanceGroupV2Id">
|
||||||
|
<el-select
|
||||||
|
v-model="personForm.attendanceGroupV2Id"
|
||||||
|
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||||
|
style="width: 100%"
|
||||||
|
:disabled="titleType == 'detail'"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="(item, index) in workerAttendanceGroupList"
|
||||||
|
:key="index"
|
||||||
|
:label="item.groupName"
|
||||||
|
:value="item.id"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -2296,6 +2313,7 @@ import {
|
|||||||
getDangongWorkerFaceStatusPageList,
|
getDangongWorkerFaceStatusPageList,
|
||||||
xmglXzHikvisionSyncRetryAPI,
|
xmglXzHikvisionSyncRetryAPI,
|
||||||
checkfaceHikvisionApi,
|
checkfaceHikvisionApi,
|
||||||
|
getWorkerAttendanceGroupV2ListApi,
|
||||||
} from "@/assets/js/api/laborPerson";
|
} from "@/assets/js/api/laborPerson";
|
||||||
import { selectUserDevAuthorityByUserIdApi } from "@/assets/js/api/configManage";
|
import { selectUserDevAuthorityByUserIdApi } from "@/assets/js/api/configManage";
|
||||||
import { getProjectConfigListApi } from "@/assets/js/api/project.js";
|
import { getProjectConfigListApi } from "@/assets/js/api/project.js";
|
||||||
@ -2436,6 +2454,7 @@ export default {
|
|||||||
locationCardno: "",
|
locationCardno: "",
|
||||||
personMail: "",
|
personMail: "",
|
||||||
workerNature: "",
|
workerNature: "",
|
||||||
|
attendanceGroupV2Id: "",
|
||||||
},
|
},
|
||||||
//人员录入校验
|
//人员录入校验
|
||||||
personFormRules: this.$t("message.laborMange.personFormRules"),
|
personFormRules: this.$t("message.laborMange.personFormRules"),
|
||||||
@ -2525,6 +2544,7 @@ export default {
|
|||||||
topicName: "topic",
|
topicName: "topic",
|
||||||
userId: "",
|
userId: "",
|
||||||
workerNatureList: [],
|
workerNatureList: [],
|
||||||
|
workerAttendanceGroupList: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -2560,6 +2580,7 @@ export default {
|
|||||||
this.getUGroupDevList();
|
this.getUGroupDevList();
|
||||||
this.getProjectConfig();
|
this.getProjectConfig();
|
||||||
this.getWorkerNatureList();
|
this.getWorkerNatureList();
|
||||||
|
this.getWorkerAttendanceGroupV2List();
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (client) {
|
if (client) {
|
||||||
@ -2584,6 +2605,16 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getWorkerAttendanceGroupV2List() {
|
||||||
|
getWorkerAttendanceGroupV2ListApi({
|
||||||
|
projectSn: this.$store.state.projectSn,
|
||||||
|
// ruleIdIsNullOrRuleId: 1,
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.workerAttendanceGroupList = res.result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
getSpecialWorkerTypeList() {
|
getSpecialWorkerTypeList() {
|
||||||
getWorkerTypeList({
|
getWorkerTypeList({
|
||||||
projectSn: this.projectSn,
|
projectSn: this.projectSn,
|
||||||
@ -3279,6 +3310,7 @@ export default {
|
|||||||
ufaceDevGroupId: [],
|
ufaceDevGroupId: [],
|
||||||
personSerial: "",
|
personSerial: "",
|
||||||
workerNature: "",
|
workerNature: "",
|
||||||
|
attendanceGroupV2Id: "",
|
||||||
enterDate: dayjs().format("YYYY-MM-DD"),
|
enterDate: dayjs().format("YYYY-MM-DD"),
|
||||||
};
|
};
|
||||||
if (this.attendRulesList.length > 0) {
|
if (this.attendRulesList.length > 0) {
|
||||||
@ -3530,6 +3562,7 @@ export default {
|
|||||||
ufaceDevGroupId: [],
|
ufaceDevGroupId: [],
|
||||||
personSerial: "",
|
personSerial: "",
|
||||||
workerNature: "",
|
workerNature: "",
|
||||||
|
attendanceGroupV2Id: "",
|
||||||
};
|
};
|
||||||
this.getUfaceDevList();
|
this.getUfaceDevList();
|
||||||
// this.goTwo()
|
// this.goTwo()
|
||||||
@ -4418,7 +4451,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
.header_box1 {
|
.header_box1 {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #272D45;
|
color: #272d45;
|
||||||
margin-right: 50px;
|
margin-right: 50px;
|
||||||
> span {
|
> span {
|
||||||
margin-right: 13px;
|
margin-right: 13px;
|
||||||
@ -4426,7 +4459,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.header_box {
|
.header_box {
|
||||||
display: flex;
|
display: flex;
|
||||||
color: #272D45;
|
color: #272d45;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-right: 30px;
|
margin-right: 30px;
|
||||||
@ -4595,13 +4628,13 @@ export default {
|
|||||||
width: 90%;
|
width: 90%;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
> span {
|
> span {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/deep/ .el-tree-node__content {
|
/deep/ .el-tree-node__content {
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="日期范围" prop="constructionTime">
|
<el-form-item label="日期范围" prop="constructionTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
@change="initQuery"
|
||||||
value-format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
||||||
v-model="queryParams.constructionTime"
|
v-model="queryParams.constructionTime"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
@ -52,13 +53,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-radio-group v-model="queryParams.isType" size="medium">
|
<el-radio-group @change="getWorkerDailyAttendancePageForWorkerByDate" v-model="queryParams.isType" size="medium">
|
||||||
<el-radio-button :label="1">上下午打卡</el-radio-button>
|
<el-radio-button :label="1">上下午打卡</el-radio-button>
|
||||||
<el-radio-button :label="2">进出场打卡</el-radio-button>
|
<el-radio-button :label="2">进出场打卡</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
|
class="tables"
|
||||||
:data="dataList"
|
:data="dataList"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
:expand-row-keys="expands"
|
:expand-row-keys="expands"
|
||||||
@ -69,27 +71,26 @@
|
|||||||
<template slot="header" slot-scope="scope">
|
<template slot="header" slot-scope="scope">
|
||||||
<div class="table-header">
|
<div class="table-header">
|
||||||
<div>日期</div>
|
<div>日期</div>
|
||||||
<!-- <el-popover
|
<el-popover
|
||||||
|
v-model="isParentVisible"
|
||||||
class="popover-bottom"
|
class="popover-bottom"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
width="200"
|
width="200"
|
||||||
trigger="click"
|
trigger="click"
|
||||||
>
|
>
|
||||||
<div class="popover-box">
|
<div class="popover-box">
|
||||||
<el-checkbox-group v-model="queryParams.checkList">
|
<el-checkbox-group v-model="queryParams.attendanceStatus">
|
||||||
<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>
|
</el-checkbox-group>
|
||||||
<el-button
|
<div class="box-btn">
|
||||||
icon="el-icon-circle-check"
|
<el-button @click="isParentVisible = false" size="mini">取消</el-button>
|
||||||
type="primary"
|
<el-button @click="hlandeQuery" type="primary" size="mini">确定</el-button>
|
||||||
size="medium"
|
</div>
|
||||||
>确定</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div slot="reference">图片</div>
|
<div class="screen-icon" slot="reference"></div>
|
||||||
</el-popover> -->
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -121,10 +122,17 @@
|
|||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.firstTimeAm">{{
|
<div class="box-time">
|
||||||
|
<i v-if="scope.row.firstTimeAm" class="el-icon-success"></i>
|
||||||
|
<i v-else class="el-icon-error"></i>
|
||||||
|
<span>{{
|
||||||
|
scope.row.firstTimeAm ? scope.row.firstTimeAm : "…"
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
|
<!-- <span v-if="scope.row.firstTimeAm">{{
|
||||||
scope.row.firstTimeAm
|
scope.row.firstTimeAm
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else class="attendance-fail"></span>
|
<span v-else class="attendance-fail"></span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@ -134,8 +142,13 @@
|
|||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.endTimePm">{{ scope.row.endTimePm }}</span>
|
<div class="box-time">
|
||||||
<span v-else class="attendance-fail"></span>
|
<i v-if="scope.row.endTimePm" class="el-icon-success"></i>
|
||||||
|
<i v-else class="el-icon-error"></i>
|
||||||
|
<span>{{ scope.row.endTimePm ? scope.row.endTimePm : "…" }}</span>
|
||||||
|
</div>
|
||||||
|
<!-- <span v-if="scope.row.endTimePm">{{ scope.row.endTimePm }}</span>
|
||||||
|
<span v-else class="attendance-fail"></span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
@ -147,10 +160,17 @@
|
|||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.firstInTime">{{
|
<div class="box-time">
|
||||||
|
<i v-if="scope.row.firstInTime" class="el-icon-success"></i>
|
||||||
|
<i v-else class="el-icon-error"></i>
|
||||||
|
<span>{{
|
||||||
|
scope.row.firstInTime ? scope.row.firstInTime : "…"
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
|
<!-- <span v-if="scope.row.firstInTime">{{
|
||||||
scope.row.firstInTime
|
scope.row.firstInTime
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else class="attendance-fail"></span>
|
<span v-else class="attendance-fail"></span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@ -160,8 +180,15 @@
|
|||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.endOutTime">{{ scope.row.endOutTime }}</span>
|
<div class="box-time">
|
||||||
<span v-else class="attendance-fail"></span>
|
<i v-if="scope.row.endOutTime" class="el-icon-success"></i>
|
||||||
|
<i v-else class="el-icon-error"></i>
|
||||||
|
<span>{{
|
||||||
|
scope.row.endOutTime ? scope.row.endOutTime : "…"
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
|
<!-- <span v-if="scope.row.endOutTime">{{ scope.row.endOutTime }}</span>
|
||||||
|
<span v-else class="attendance-fail"></span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
@ -169,7 +196,9 @@
|
|||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
<div class="expand-box" v-if="viewDayAttendanceList.length > 0">
|
<div class="expand-box" v-if="viewDayAttendanceList.length > 0">
|
||||||
<div v-for="(item, index) in viewDayAttendanceList">
|
<div v-for="(item, index) in viewDayAttendanceList">
|
||||||
<span :class="item.passType == 1 ? 'passbox1' : 'passbox2'">({{ item.passType == 1 ? '进场' : '出场'}})</span>{{ item.createTime }}
|
<span :class="item.passType == 1 ? 'passbox1' : 'passbox2'"
|
||||||
|
>({{ item.passType == 1 ? "进场" : "出场" }})</span
|
||||||
|
>{{ item.createTime }}
|
||||||
<span v-if="index != viewDayAttendanceList.length - 1">、</span>
|
<span v-if="index != viewDayAttendanceList.length - 1">、</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- viewDayAttendanceList -->
|
<!-- viewDayAttendanceList -->
|
||||||
@ -233,7 +262,7 @@ export default {
|
|||||||
calType: 1,
|
calType: 1,
|
||||||
isType: 2,
|
isType: 2,
|
||||||
tiemType: 2,
|
tiemType: 2,
|
||||||
checkList: [],
|
attendanceStatus: [],
|
||||||
},
|
},
|
||||||
countWorkerDailyInfo: [
|
countWorkerDailyInfo: [
|
||||||
{
|
{
|
||||||
@ -255,11 +284,13 @@ export default {
|
|||||||
dataList: [],
|
dataList: [],
|
||||||
expands: [],
|
expands: [],
|
||||||
viewDayAttendanceList: [],
|
viewDayAttendanceList: [],
|
||||||
|
isParentVisible: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// this.pageSizeList = JSON.parse(JSON.stringify(this.$store.state.PAGESIZRS));
|
// this.pageSizeList = JSON.parse(JSON.stringify(this.$store.state.PAGESIZRS));
|
||||||
this.projectSn = this.$store.state.projectSn;
|
this.projectSn = this.$store.state.projectSn;
|
||||||
|
this.initQuery();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
expandRow(row) {
|
expandRow(row) {
|
||||||
@ -279,7 +310,12 @@ export default {
|
|||||||
queryTime: row.attendanceDate,
|
queryTime: row.attendanceDate,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.viewDayAttendanceList = res.result;
|
this.viewDayAttendanceList = res.result.map((item) => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
createTime: dayjs(item.createTime).format("HH:mm:ss"),
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -300,6 +336,9 @@ export default {
|
|||||||
dayjs().format("YYYY-MM-DD"),
|
dayjs().format("YYYY-MM-DD"),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
this.initQuery();
|
||||||
|
},
|
||||||
|
initQuery() {
|
||||||
this.getCountWorkerDailyAttendanceStatisticsV2();
|
this.getCountWorkerDailyAttendanceStatisticsV2();
|
||||||
this.getWorkerDailyAttendancePageForWorkerByDate();
|
this.getWorkerDailyAttendancePageForWorkerByDate();
|
||||||
},
|
},
|
||||||
@ -332,6 +371,11 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
hlandeQuery(){
|
||||||
|
this.queryParams.pageNo = 1;
|
||||||
|
this.getWorkerDailyAttendancePageForWorkerByDate();
|
||||||
|
this.isParentVisible = false;
|
||||||
|
},
|
||||||
// 获取列表信息
|
// 获取列表信息
|
||||||
getWorkerDailyAttendancePageForWorkerByDate() {
|
getWorkerDailyAttendancePageForWorkerByDate() {
|
||||||
let data = {
|
let data = {
|
||||||
@ -342,6 +386,8 @@ export default {
|
|||||||
attendanceDate_begin: this.queryParams.constructionTime[0],
|
attendanceDate_begin: this.queryParams.constructionTime[0],
|
||||||
attendanceDate_end: this.queryParams.constructionTime[1],
|
attendanceDate_end: this.queryParams.constructionTime[1],
|
||||||
personSn: this.courseWriterInfo.personSn,
|
personSn: this.courseWriterInfo.personSn,
|
||||||
|
attendanceStatus: this.queryParams.attendanceStatus.join(','),
|
||||||
|
downloadType: this.queryParams.isType,
|
||||||
};
|
};
|
||||||
getWorkerDailyAttendancePageForWorkerByDateApi(data).then((res) => {
|
getWorkerDailyAttendancePageForWorkerByDateApi(data).then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
@ -362,7 +408,6 @@ export default {
|
|||||||
this.getWorkerDailyAttendancePageForWorkerByDate();
|
this.getWorkerDailyAttendancePageForWorkerByDate();
|
||||||
this.getCountWorkerDailyAttendanceStatisticsV2();
|
this.getCountWorkerDailyAttendanceStatisticsV2();
|
||||||
},
|
},
|
||||||
immediate: true,
|
|
||||||
deep: true,
|
deep: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -370,29 +415,68 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
.el-popover {
|
.el-popover {
|
||||||
width: calc(111px - 24px) !important;
|
width: calc(125px - 24px) !important;
|
||||||
|
min-width: initial;
|
||||||
|
}
|
||||||
|
.screen-icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-color: #5181F6;
|
||||||
|
background-image: url(~@/assets/images/laborManage/screen-icon.png);
|
||||||
|
background-size: 75% 75%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center center;
|
||||||
|
cursor: pointer;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-left: 7px;
|
||||||
}
|
}
|
||||||
.popover-box {
|
.popover-box {
|
||||||
// width: 111px;
|
font-size: 14px;
|
||||||
.el-checkbox-group .el-checkbox:not(:first-child) {
|
.el-checkbox-group .el-checkbox:not(:first-child) {
|
||||||
margin-top: 13px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
> .el-button {
|
.box-btn {
|
||||||
margin-top: 13px;
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
> .el-button {
|
||||||
|
margin-left: 0;
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
.tables {
|
||||||
|
min-height: initial;
|
||||||
|
}
|
||||||
|
.box-time {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 14px;
|
||||||
|
.el-icon-error {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
.el-icon-success {
|
||||||
|
color: #00af66;
|
||||||
|
}
|
||||||
|
> span {
|
||||||
|
margin-left: 5px;
|
||||||
|
color: #272d45;
|
||||||
|
}
|
||||||
|
}
|
||||||
.expand-box {
|
.expand-box {
|
||||||
display: flex;
|
display: flex;
|
||||||
> div {
|
> div {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #272D45;
|
color: #272d45;
|
||||||
.passbox1 {
|
.passbox1 {
|
||||||
color: #4181fe;
|
color: #4181fe;
|
||||||
}
|
}
|
||||||
.passbox2 {
|
.passbox2 {
|
||||||
color: #FFA347;
|
color: #ffa347;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -227,11 +227,12 @@
|
|||||||
v-if="showTeamList && teamListData.totalTeamNum > 0"
|
v-if="showTeamList && teamListData.totalTeamNum > 0"
|
||||||
style="
|
style="
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 10px;
|
right: 4px;
|
||||||
top: 35%;
|
top: 50%;
|
||||||
font-size: 26px;
|
font-size: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #999;
|
color: #999;
|
||||||
|
transform: translateY(-50%);
|
||||||
"
|
"
|
||||||
></i>
|
></i>
|
||||||
</div>
|
</div>
|
||||||
@ -664,7 +665,7 @@
|
|||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src="@/assets/images/laborManage/exit-icon.png"
|
src="@/assets/images/laborManage/exit-icon.png"
|
||||||
style="margin-right: 5px;transform: rotate(180deg);"
|
style="margin-right: 5px; transform: rotate(180deg)"
|
||||||
/>
|
/>
|
||||||
<span>{{ $t("message.laborMange.toPlayAgain") }}</span>
|
<span>{{ $t("message.laborMange.toPlayAgain") }}</span>
|
||||||
</div>
|
</div>
|
||||||
@ -1806,6 +1807,23 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="考勤组" prop="attendanceGroupV2Id">
|
||||||
|
<el-select
|
||||||
|
v-model="personForm.attendanceGroupV2Id"
|
||||||
|
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||||
|
style="width: 100%"
|
||||||
|
:disabled="titleType == 'detail'"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="(item, index) in workerAttendanceGroupList"
|
||||||
|
:key="index"
|
||||||
|
:label="item.groupName"
|
||||||
|
:value="item.id"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div class="type-change">
|
<div class="type-change">
|
||||||
<el-radio-group v-model="typeRadio">
|
<el-radio-group v-model="typeRadio">
|
||||||
@ -2556,6 +2574,7 @@ import {
|
|||||||
getDangongWorkerFaceStatusPageList,
|
getDangongWorkerFaceStatusPageList,
|
||||||
checkfaceHikvisionApi,
|
checkfaceHikvisionApi,
|
||||||
onBatchDeletionApi,
|
onBatchDeletionApi,
|
||||||
|
getWorkerAttendanceGroupV2ListApi
|
||||||
} from "@/assets/js/api/laborPerson";
|
} from "@/assets/js/api/laborPerson";
|
||||||
import {
|
import {
|
||||||
selectUserDevAuthorityByUserIdApi,
|
selectUserDevAuthorityByUserIdApi,
|
||||||
@ -2737,6 +2756,7 @@ export default {
|
|||||||
locationCardno: "", //人员定位标签号
|
locationCardno: "", //人员定位标签号
|
||||||
personMail: "",
|
personMail: "",
|
||||||
workerNature: "",
|
workerNature: "",
|
||||||
|
attendanceGroupV2Id: "",
|
||||||
},
|
},
|
||||||
//人员录入校验
|
//人员录入校验
|
||||||
personFormRules: this.$t("message.laborMange.personFormRules2"),
|
personFormRules: this.$t("message.laborMange.personFormRules2"),
|
||||||
@ -2829,6 +2849,7 @@ export default {
|
|||||||
topicName: "topic",
|
topicName: "topic",
|
||||||
userId: "",
|
userId: "",
|
||||||
workerNatureList: [],
|
workerNatureList: [],
|
||||||
|
workerAttendanceGroupList: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -2863,6 +2884,7 @@ export default {
|
|||||||
this.getUGroupDevList();
|
this.getUGroupDevList();
|
||||||
this.getProjectConfig();
|
this.getProjectConfig();
|
||||||
this.getWorkerNatureList();
|
this.getWorkerNatureList();
|
||||||
|
this.getWorkerAttendanceGroupV2List();
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (client) {
|
if (client) {
|
||||||
@ -2887,6 +2909,16 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getWorkerAttendanceGroupV2List() {
|
||||||
|
getWorkerAttendanceGroupV2ListApi({
|
||||||
|
projectSn: this.$store.state.projectSn,
|
||||||
|
// ruleIdIsNullOrRuleId: 1,
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.workerAttendanceGroupList = res.result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
// 获取人员性质下拉
|
// 获取人员性质下拉
|
||||||
async getWorkerNatureList() {
|
async getWorkerNatureList() {
|
||||||
const res = await getDictionaryItemApi({
|
const res = await getDictionaryItemApi({
|
||||||
@ -3858,6 +3890,7 @@ export default {
|
|||||||
ufaceDevGroupId: [],
|
ufaceDevGroupId: [],
|
||||||
personSerial: "",
|
personSerial: "",
|
||||||
workerNature: "",
|
workerNature: "",
|
||||||
|
attendanceGroupV2Id: "",
|
||||||
};
|
};
|
||||||
if (this.attendRulesList.length > 0) {
|
if (this.attendRulesList.length > 0) {
|
||||||
this.personForm.ruleId = this.attendRulesList[0].id;
|
this.personForm.ruleId = this.attendRulesList[0].id;
|
||||||
@ -4109,6 +4142,7 @@ export default {
|
|||||||
ufaceDevGroupId: [],
|
ufaceDevGroupId: [],
|
||||||
personSerial: "",
|
personSerial: "",
|
||||||
workerNature: "",
|
workerNature: "",
|
||||||
|
attendanceGroupV2Id: "",
|
||||||
};
|
};
|
||||||
this.getUfaceDevList();
|
this.getUfaceDevList();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|||||||
@ -86,6 +86,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
div{
|
div{
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
@ -147,6 +148,7 @@
|
|||||||
float: left;
|
float: left;
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
left: 110px;
|
left: 110px;
|
||||||
// top:7px;
|
// top:7px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
@ -156,7 +158,7 @@
|
|||||||
// padding-right: 12px;
|
// padding-right: 12px;
|
||||||
}
|
}
|
||||||
.height_79{
|
.height_79{
|
||||||
height: 79px;
|
height: 70px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.el-form_item {
|
.el-form_item {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user