1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 23:11:24 +08:00

Split the punch card assembly

This commit is contained in:
gzw
2023-06-08 00:40:01 +08:00
parent dce4b7d391
commit cc293fa784
4 changed files with 89 additions and 52 deletions

View File

@@ -0,0 +1,114 @@
<template>
<el-form ref="ruleForm" :rules="rules" :model="form" :label-width="formLabelWidth">
<el-form-item label="用户" prop="userId">
<el-select
v-model="form.userId"
filterable
:disabled="isDisabled"
:reserve-keyword="false"
placeholder="选择相对应的工作人员"
>
<el-option
v-for="item in users"
:key="item.id"
:value="item.id"
:label="item.username"
/>
</el-select>
</el-form-item>
<el-form-item label="考勤状态" prop="status">
<el-select v-model="form.status" placeholder="请选择考勤状态" style="width: 200px">
<el-option label="签到" value="1" />
<el-option label="签退" value="2" />
<el-option label="迟到" value="3" />
</el-select>
</el-form-item>
<el-form-item label="考勤时间" v-model="form.attTime" prop="attTime">
<el-date-picker
v-model="form.attTime"
+
type="datetime"
format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择考勤时间"
/>
</el-form-item>
</el-form>
<el-footer style="text-align: center">
<el-button type="primary" @click="submitForm(form)">确认</el-button>
<el-button @click="cancel">取消</el-button>
</el-footer>
</template>
<script>
import { ElMessage } from 'element-plus'
export default {
name: 'EditAttendance',
props: {
users: {},
formData: {},
isDisabled: Boolean
},
data() {
return {
form: {
userId: '',
userName: '',
status: '',
attTime: ''
},
rules: {
userId: [{ required: true, message: '请输入用户编号', trigger: 'change' }],
status: [{ required: true, message: '请选择考勤状态', trigger: 'change' }],
attTime: [{ required: true, message: '请选择考勤时间', trigger: 'change' }]
},
formLabelWidth: '80px',
isdisabled: false
}
},
methods: {
submitForm(form) {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
this.$emit('addAttendance', form)
this.resetForm()
ElMessage({
message: '操作成功',
type: 'success'
})
this.$emit('setDialogVisible', false)
} else {
ElMessage.error('操作失败')
return false
}
})
},
cancel() {
this.resetForm()
ElMessage({
message: '取消操作',
type: 'warning'
})
this.$emit('setDialogVisible', false)
},
resetForm() {
this.$nextTick(() => {
this.$refs.ruleForm.resetFields()
})
}
},
created() {
if (this.formData) {
this.form = this.formData
}
},
updated() {
if (this.formData) {
this.form = this.formData
}
}
}
</script>
<style scoped></style>

View File

@@ -0,0 +1,80 @@
<template>
<el-form ref="ruleForm" :model="form" :label-width="formLabelWidth">
<el-form-item label="考勤时间" prop="attTime">
<el-date-picker v-model="form.attTime" type="datetime" disabled style="width: 200px" />
</el-form-item>
</el-form>
<div>
<span class="dialog-footer">
<el-button type="primary" @click="submitForm()">确认</el-button>
<el-button @click="cancel">取消</el-button>
</span>
</div>
</template>
<script>
import { ElMessage } from 'element-plus'
import _ from 'lodash'
import request from '@/services'
import { DATABASE_SAVE_OK } from '@/constants/Common.constants'
export default {
name: 'EditOneAttendance',
data() {
return {
formLabelWidth: '80px',
form: {
attTime: new Date()
},
nowTime: new Date()
}
},
props: {
formData: {}
},
methods: {
submitForm() {
this.doSave()
},
// 点击取消
cancel() {
ElMessage({
message: '取消操作',
type: 'warning'
})
this.$emit('setDialogVisible', false)
},
alarm() {
setInterval(() => {
this.form.attTime = new Date()
}, 500)
},
doSave() {
request
.post('/attendance/saveOneAttendance', this.form)
.then((response) => {
if (response.data.code === DATABASE_SAVE_OK) {
ElMessage({
message: '签到成功',
type: 'success'
})
this.$emit('setDialogVisible', false)
}
})
.catch((reportError) => {
ElMessage({
message: '签到成功',
type: 'success'
})
})
}
},
created() {
this.alarm()
if (this.formData) {
this.form = _.cloneDeep(this.formData)
}
}
}
</script>
<style scoped></style>