考勤迭代
This commit is contained in:
parent
674c16f7d2
commit
630a7dc6cb
@ -272,7 +272,7 @@ export const getHikvisionManualCompareApi = data => post('xmgl/xzHikvisionCompar
|
||||
|
||||
//海康人脸评分接口
|
||||
// export const checkfaceHikvisionApi = (data,token) => post('xmgl/recognition/checkfaceHikvision', data, { headers: {Authorization: token}});
|
||||
export const checkfaceHikvisionApi = data => post('xmgl/recognition/checkfaceHikvision', data);
|
||||
export const checkfaceHikvisionApi = data => post('xmgl/recognition/checkFace', data);
|
||||
|
||||
//人员管理批量删除
|
||||
export const onBatchDeletionApi = data => post('xmgl/workerInfo/deleteBatch', data);
|
||||
|
||||
@ -180,7 +180,7 @@ if (process.env.NODE_ENV == "development") {
|
||||
// axios.defaults.baseURL = 'http://192.168.34.221:28890/' //郭圣雄本地
|
||||
// axios.defaults.baseURL = "http://192.168.34.221:9111/"; //郭圣雄本地
|
||||
// axios.defaults.baseURL = "http://192.168.34.221:19112/"; //郭圣雄本地
|
||||
// axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
|
||||
axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
|
||||
// axios.defaults.baseURL = 'http://182.90.224.237:51234/' //郭圣雄远程
|
||||
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程
|
||||
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈
|
||||
@ -201,7 +201,8 @@ if (process.env.NODE_ENV == "development") {
|
||||
// axios.defaults.baseURL = 'http://192.168.100.4:9809/' //乌丹(合肥启程)新正式地址
|
||||
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000"; //包头化工
|
||||
// axios.defaults.baseURL = "http://222.80.185.228:6090"; //木垒
|
||||
axios.defaults.baseURL = "https://zm.zhgdyun.com:11111";
|
||||
// axios.defaults.baseURL = "https://zm.zhgdyun.com:11111";
|
||||
// axios.defaults.baseURL = "http://121.37.106.37:9809";
|
||||
} else if (process.env.NODE_ENV == "debug") {
|
||||
axios.defaults.baseURL = "https://www.ceshi.com";
|
||||
} else if (process.env.NODE_ENV == "production") {
|
||||
|
||||
@ -49,6 +49,9 @@ export default new Vuex.Store({
|
||||
// UPLOADURL: 'http://192.168.0.12:9809/upload/image/', // 国维科技
|
||||
// FILEURL: ' http://192.168.0.12:9809/image/', // 国维科技
|
||||
// WORKFLOWURL: 'http://192.168.0.12:19998/#/workspace/forms', //国维科技工作流地址
|
||||
// UPLOADURL: "http://117.146.73.156:9809/upload/image/", // 中新建项目
|
||||
// FILEURL: "http://117.146.73.156:9809/image/", //中新建项目
|
||||
// WORKFLOWURL: 'http://117.146.73.156:19998/#/workspace/forms', //中新建项目工作流地址
|
||||
// UPLOADURL: "http://121.37.106.37:9809/upload/image/", // 新能源智慧基建
|
||||
// FILEURL: "http://121.37.106.37:9809/image/", //新能源智慧基建
|
||||
// WORKFLOWURL: 'http://121.37.106.37:19998/#/workspace/forms', //鞍钢平台工作流地址
|
||||
@ -72,8 +75,8 @@ export default new Vuex.Store({
|
||||
WORKFLOWURL: "http://101.43.164.214:11129/#/workspace/forms", // 百色
|
||||
// UPLOADURL:'http://182.90.224.237:51234/upload/image/',
|
||||
// FILEURL:'http://182.90.224.237:51234/image/',
|
||||
// UPLOADURL: "http://http://192.168.34.155:19111/upload/image/", // 洁本地
|
||||
// FILEURL: "http://http://192.168.34.155:19111/image/", //洁本地
|
||||
// UPLOADURL: "http://192.168.34.155:19111/upload/image/", // 洁本地
|
||||
// FILEURL: "http://192.168.34.155:19111/image/", //洁本地
|
||||
// UPLOADURL: 'http://192.168.34.221:9111/upload/image/', // 郭圣雄本地
|
||||
// FILEURL: 'http://192.168.34.221:9111/image/', //郭圣雄本地
|
||||
// WORKFLOWURL: "http://101.43.164.214:11129/#/workspace/forms", //jiayu工作流地址(本地)
|
||||
|
||||
@ -192,13 +192,13 @@
|
||||
></span>
|
||||
{{ $t("message.laborMange.leaveEarly") }}
|
||||
</div>
|
||||
<div>
|
||||
<!-- <div>
|
||||
<span
|
||||
class="span"
|
||||
style="background: #ffb85a; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.overtime") }}
|
||||
</div>
|
||||
</div> -->
|
||||
<div>
|
||||
<span
|
||||
class="span"
|
||||
@ -235,7 +235,11 @@
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] == 0"
|
||||
@click="selectWorker(scope.row, item, scope.$index)"
|
||||
style="cursor: pointer; background: #a3a3a3"
|
||||
:class="
|
||||
number == item && selectIndex == scope.$index ? 'span2' : ''
|
||||
"
|
||||
></span>
|
||||
<span
|
||||
class="span"
|
||||
|
||||
@ -34,6 +34,23 @@
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div class="search-box">
|
||||
<div>
|
||||
<span>是否启用APP打卡</span>
|
||||
<el-popover
|
||||
placement="bottom-start"
|
||||
width="365"
|
||||
:visible-arrow="false"
|
||||
trigger="hover"
|
||||
content="启用APP打卡后,管理人员和劳务人员的可以通过APP上传考勤记录。关闭APP打卡后,管理人员和劳务人员从APP端上传考勤点击打卡按钮提示“APP考勤已关闭,请联系管理员”。">
|
||||
<div slot="reference" class="question-icon">?</div>
|
||||
</el-popover>
|
||||
</div>
|
||||
<el-radio-group v-model="isMobileAttendance" @change="changeConfig">
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<vue-scroll>
|
||||
@ -87,7 +104,7 @@
|
||||
:rules="rules"
|
||||
:model="workerInfo"
|
||||
ref="form"
|
||||
label-width="130px"
|
||||
label-width="140px"
|
||||
size="medium"
|
||||
class="dialogFormBox"
|
||||
>
|
||||
@ -100,7 +117,7 @@
|
||||
:placeholder="$t('message.workType.placeholder')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('message.workType.workInfo.isRest')">
|
||||
<!-- <el-form-item :label="$t('message.workType.workInfo.isRest')">
|
||||
<el-select v-model="workerInfo.isRest">
|
||||
<el-option
|
||||
:value="0"
|
||||
@ -111,7 +128,7 @@
|
||||
:label="$t('message.workType.workInfo.isRestList')[1]"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item
|
||||
prop="startTime"
|
||||
:label="$t('message.workType.workInfo.morningEndTime')"
|
||||
@ -137,6 +154,7 @@
|
||||
<el-form-item :label="$t('message.workType.workInfo.notLater')">
|
||||
<el-input
|
||||
v-model="workerInfo.notLater"
|
||||
:disabled="workerInfo.onceAttendance"
|
||||
:placeholder="$t('message.workType.placeholder')"
|
||||
type="number"
|
||||
></el-input>
|
||||
@ -144,6 +162,7 @@
|
||||
<el-form-item :label="$t('message.workType.workInfo.yesLater')">
|
||||
<el-input
|
||||
v-model="workerInfo.yesLater"
|
||||
:disabled="workerInfo.onceAttendance"
|
||||
:placeholder="$t('message.workType.placeholder')"
|
||||
type="number"
|
||||
></el-input>
|
||||
@ -152,6 +171,7 @@
|
||||
<el-form-item :label="$t('message.workType.workInfo.notAdvance')">
|
||||
<el-input
|
||||
v-model="workerInfo.notAdvance"
|
||||
:disabled="workerInfo.onceAttendance"
|
||||
:placeholder="$t('message.workType.placeholder')"
|
||||
type="number"
|
||||
></el-input>
|
||||
@ -159,11 +179,12 @@
|
||||
<el-form-item :label="$t('message.workType.workInfo.yesAdvance')">
|
||||
<el-input
|
||||
v-model="workerInfo.yesAdvance"
|
||||
:disabled="workerInfo.onceAttendance"
|
||||
:placeholder="$t('message.workType.placeholder')"
|
||||
type="number"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
<!-- <el-form-item
|
||||
:label="$t('message.workType.workInfo.yesOrNotOvertime')"
|
||||
>
|
||||
<el-select v-model="workerInfo.yesOrNotOvertime">
|
||||
@ -176,8 +197,23 @@
|
||||
:label="$t('message.workType.workInfo.isRestList')[1]"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="是否启用一天一打卡">
|
||||
<el-select v-model="workerInfo.onceAttendance" @change="handleChangeOnce">
|
||||
<el-option
|
||||
:value="0"
|
||||
label="不启用"
|
||||
></el-option>
|
||||
<el-option
|
||||
:value="1"
|
||||
label="启用"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<div style="background: #f0efef; border-radius: 4px; padding: 8px;">
|
||||
在上午上班时间到下午下班时间内只要有一次打卡记录即算为正常出勤1工日,没有则算0工日
|
||||
</div>
|
||||
<div class="dialog-footer">
|
||||
<el-button
|
||||
class="cancleBtn"
|
||||
@ -207,10 +243,12 @@ import {
|
||||
workerAttendanceRuleDelete,
|
||||
} from "@/assets/js/api/laborPerson";
|
||||
import { getProjectDetail, editProjectInfo, editClearData } from "@/assets/js/api/baseInfo";
|
||||
import { getProjectConfigListApi, editProjectConfigListApi } from "@/assets/js/api/project.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
radioVal: 0,
|
||||
isMobileAttendance: 0,
|
||||
title: "",
|
||||
dialogVisible: false,
|
||||
workerList: [],
|
||||
@ -224,6 +262,13 @@ export default {
|
||||
notAdvance: "",
|
||||
yesAdvance: "",
|
||||
yesOrNotOvertime: "",
|
||||
onceAttendance: undefined
|
||||
},
|
||||
tempWorkerInfo: {
|
||||
notLater: "",
|
||||
yesLater: "",
|
||||
notAdvance: "",
|
||||
yesAdvance: ""
|
||||
},
|
||||
rules: {
|
||||
ruleName: [
|
||||
@ -251,10 +296,47 @@ export default {
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getProjectConfigList()
|
||||
this.getWorker();
|
||||
this.getProjectDetailFn();
|
||||
},
|
||||
methods: {
|
||||
handleChangeOnce(val) {
|
||||
if(this.workerInfo.notLater || this.workerInfo.yesLater || this.workerInfo.notAdvance || this.workerInfo.yesAdvance) {
|
||||
this.tempWorkerInfo.notLater = this.workerInfo.notLater
|
||||
this.tempWorkerInfo.yesLater = this.workerInfo.yesLater
|
||||
this.tempWorkerInfo.notAdvance = this.workerInfo.notAdvance
|
||||
this.tempWorkerInfo.yesAdvance = this.workerInfo.yesAdvance
|
||||
}
|
||||
if(val) {
|
||||
this.workerInfo.notLater = undefined
|
||||
this.workerInfo.yesLater = undefined
|
||||
this.workerInfo.notAdvance = undefined
|
||||
this.workerInfo.yesAdvance = undefined
|
||||
} else {
|
||||
this.workerInfo.notLater = this.tempWorkerInfo.notLater
|
||||
this.workerInfo.yesLater = this.tempWorkerInfo.yesLater
|
||||
this.workerInfo.notAdvance = this.tempWorkerInfo.notAdvance
|
||||
this.workerInfo.yesAdvance = this.tempWorkerInfo.yesAdvance
|
||||
}
|
||||
},
|
||||
async getProjectConfigList() {
|
||||
const res = await getProjectConfigListApi({
|
||||
projectSn: this.$store.state.projectSn,
|
||||
});
|
||||
if (res.success) {
|
||||
this.isMobileAttendance = res.result[0].isMobileAttendance || 0;
|
||||
}
|
||||
},
|
||||
async changeConfig() {
|
||||
const res = await editProjectConfigListApi({
|
||||
projectSn: this.$store.state.projectSn,
|
||||
isMobileAttendance: this.isMobileAttendance,
|
||||
});
|
||||
if (res.success) {
|
||||
this.$message.success("操作成功");
|
||||
}
|
||||
},
|
||||
// 手动清零
|
||||
operateClear(){
|
||||
// promptToDelete此操作将永久删除该数据 tips提示 determine确 定 cancel取 消
|
||||
@ -315,7 +397,7 @@ export default {
|
||||
addBefore() {
|
||||
this.title = "新增考勤规则";
|
||||
this.dialogVisible = true;
|
||||
(this.workerInfo = {
|
||||
this.workerInfo = {
|
||||
ruleName: "",
|
||||
isRest: "",
|
||||
startTime: "",
|
||||
@ -325,14 +407,27 @@ export default {
|
||||
notAdvance: "",
|
||||
yesAdvance: "",
|
||||
yesOrNotOvertime: "",
|
||||
}),
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate();
|
||||
});
|
||||
onceAttendance: undefined
|
||||
}
|
||||
this.tempWorkerInfo = {
|
||||
notLater: "",
|
||||
yesLater: "",
|
||||
notAdvance: "",
|
||||
yesAdvance: ""
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate();
|
||||
});
|
||||
},
|
||||
editBefore(worker) {
|
||||
this.title = "编辑考勤规则";
|
||||
this.dialogVisible = true;
|
||||
this.tempWorkerInfo = {
|
||||
notLater: "",
|
||||
yesLater: "",
|
||||
notAdvance: "",
|
||||
yesAdvance: ""
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate();
|
||||
});
|
||||
@ -449,4 +544,7 @@ export default {
|
||||
margin-top: 2px;
|
||||
}
|
||||
}
|
||||
.dialogFormBox {
|
||||
width: 460px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -183,7 +183,7 @@
|
||||
v-model="needPhotoForAttend"
|
||||
@change="saveAttendType"
|
||||
>
|
||||
<el-radio :label="0">{{$t('message.laborMange.positioningPunching')}}</el-radio>
|
||||
<el-radio :label="0">{{$t('message.laborMange.positioningPunching')}}+拍照</el-radio>
|
||||
<el-radio :label="1">{{$t('message.laborMange.positioningPunching')}}+{{$t('message.laborMange.faceRecognition')}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
@ -358,7 +358,8 @@ export default {
|
||||
];
|
||||
that.drawCircle();
|
||||
} else {
|
||||
alert("error");
|
||||
// alert("error");
|
||||
console.log("根据地址查询位置失败");
|
||||
}
|
||||
});
|
||||
this.map.on("click", (e) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user