qsh 2 months ago
parent 3db8be1280
commit 30655c4219
  1. 2
      src/api/home/falseDiligence.js
  2. 5
      src/api/pers/employee.js
  3. 22
      src/views/Home/FalseDiligenceReport/index.vue
  4. 1
      src/views/Home/Salary/index.vue
  5. 34
      src/views/Pers/Employee/Comp/DialogEmployee.vue
  6. 6
      src/views/Profile/Index.vue
  7. 21
      src/views/Profile/components/BasicInfo.vue

@ -12,7 +12,7 @@ export const syncFalseDiligence = async (params) => {
// 修改考勤数据
export const updateFalseDiligence = async (data) => {
return await request.put({ url: '/admin-api/oa/dingtalk/attendance/update', data })
return await request.put({ url: '/admin-api/oa/dingtalk/attendance/batchUpdate', data })
}
// 封存考勤数据

@ -29,3 +29,8 @@ export const getEmployeeDetail = (id) => {
export const deleteEmployee = (id) => {
return request.delete({ url: '/admin-api/oa/employee/delete', params: { id } })
}
// 详情
export const getDingUserId = (params) => {
return request.get({ url: '/admin-api/oa/employee/getDingTalkUserIdByMobile', params })
}

@ -81,6 +81,19 @@
<span v-else> {{ row.reallyWorkDay }}</span>
</template>
</el-table-column>
<el-table-column label="调休天数" align="center">
<template #default="{ row }">
<el-input-number
v-if="row.edit"
v-model="row.compensatoryLeaveDay"
:min="0"
:controls="false"
size="small"
style="width: 65px"
/>
<span v-else> {{ row.compensatoryLeaveDay }}</span>
</template>
</el-table-column>
<el-table-column label="缺勤天数" align="center">
<template #default="{ row }">
<el-input-number
@ -270,8 +283,8 @@ async function getList() {
function spanMethod({ row, columnIndex }) {
if (row.userDingAttendanceRespVOList && row.userDingAttendanceRespVOList.length > 0) {
if (columnIndex === 0) {
return [1, 12]
} else if (columnIndex == 12 && row.id) {
return [1, 13]
} else if (columnIndex == 13 && row.id) {
return [1, 1]
} else {
return [0, 0]
@ -313,9 +326,7 @@ async function handleSave(row) {
text: `假勤数据保存中,请稍后...`,
background: 'rgba(0, 0, 0, 0.7)'
})
await FalseDiligenceApi.updateFalseDiligence({
userDingAttendanceSaveReqVO: row.userDingAttendanceRespVOList
})
await FalseDiligenceApi.updateFalseDiligence(row.userDingAttendanceRespVOList)
globalLoading.value.close()
message.success('保存成功!')
getList()
@ -332,6 +343,7 @@ async function handleSealup(row) {
await FalseDiligenceApi.saveFalseDiligence({
period: row.period
})
message.success('封存成功!')
//
await getList()
} catch (err) {

@ -431,6 +431,7 @@ async function handleSealup(row) {
grantIdList: row.userSalaryGrantRespVOList.map((it) => it.grantId),
period: row.period
})
message.success('封存成功!')
//
await getList()
} catch (err) {

@ -5,7 +5,7 @@
v-loading="formLoading"
:model="formData"
:rules="formRules"
label-width="80px"
label-width="100px"
>
<el-row :gutter="20">
<el-col :span="12">
@ -69,8 +69,9 @@
<el-form-item label="开通系统" prop="instanceIds">
<el-select
v-model="formData.instanceIds"
placeholder="选择考勤方案"
placeholder="选择开通系统"
multiple
collapse-tags
clearable
filterable
>
@ -127,11 +128,28 @@
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12" :offset="0">
<el-form-item label="钉钉手机号">
<el-input
v-model="formData.ddPhone"
placeholder="请输入钉钉手机号"
clearable
@blur="getDingdingUserId"
/>
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="钉钉Id" prop="dingUserId">
<el-input v-model="formData.dingUserId" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="微信号" prop="wxAlias">
<el-input v-model="formData.wxAlias" placeholder="请输入微信号" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="备注">
<el-input v-model="formData.remark" placeholder="请输入内容" type="textarea" />
@ -253,4 +271,16 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
async function getDingdingUserId() {
try {
if (!formData.value.ddPhone) {
formData.value.dingUserId = undefined
return
}
const data = await EmployeeApi.getDingUserId({ mobile: formData.value.ddPhone })
formData.value.dingUserId = data
} finally {
}
}
</script>

@ -22,16 +22,16 @@
<el-tab-pane :label="t('profile.info.resetPwd')" name="resetPwd">
<ResetPwd />
</el-tab-pane>
<el-tab-pane :label="t('profile.info.userSocial')" name="userSocial">
<!-- <el-tab-pane :label="t('profile.info.userSocial')" name="userSocial">
<UserSocial />
</el-tab-pane>
</el-tab-pane> -->
</el-tabs>
</div>
</el-card>
</div>
</template>
<script setup lang="ts" name="Profile">
import { BasicInfo, ProfileUser, ResetPwd, UserSocial } from './components/'
import { BasicInfo, ProfileUser, ResetPwd } from './components/'
const { t } = useI18n()
const activeName = ref('basicInfo')

@ -26,14 +26,14 @@ const { t } = useI18n()
//
const rules = reactive<FormRules>({
nickname: [{ required: true, message: t('profile.rules.nickname'), trigger: 'blur' }],
email: [
{ required: true, message: t('profile.rules.mail'), trigger: 'blur' },
{
type: 'email',
message: t('profile.rules.truemail'),
trigger: ['blur', 'change']
}
],
// email: [
// { required: true, message: t('profile.rules.mail'), trigger: 'blur' },
// {
// type: 'email',
// message: t('profile.rules.truemail'),
// trigger: ['blur', 'change']
// }
// ],
mobile: [
{ required: true, message: t('profile.rules.phone'), trigger: 'blur' },
{
@ -59,6 +59,11 @@ const schema = reactive<FormSchema[]>([
label: t('profile.user.email'),
component: 'Input'
},
{
field: 'wxAlias',
label: '微信号',
component: 'Input'
},
{
field: 'sex',
label: t('profile.user.sex'),

Loading…
Cancel
Save