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) => { 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) => { export const deleteEmployee = (id) => {
return request.delete({ url: '/admin-api/oa/employee/delete', params: { 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> <span v-else> {{ row.reallyWorkDay }}</span>
</template> </template>
</el-table-column> </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"> <el-table-column label="缺勤天数" align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-input-number <el-input-number
@ -270,8 +283,8 @@ async function getList() {
function spanMethod({ row, columnIndex }) { function spanMethod({ row, columnIndex }) {
if (row.userDingAttendanceRespVOList && row.userDingAttendanceRespVOList.length > 0) { if (row.userDingAttendanceRespVOList && row.userDingAttendanceRespVOList.length > 0) {
if (columnIndex === 0) { if (columnIndex === 0) {
return [1, 12] return [1, 13]
} else if (columnIndex == 12 && row.id) { } else if (columnIndex == 13 && row.id) {
return [1, 1] return [1, 1]
} else { } else {
return [0, 0] return [0, 0]
@ -313,9 +326,7 @@ async function handleSave(row) {
text: `假勤数据保存中,请稍后...`, text: `假勤数据保存中,请稍后...`,
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}) })
await FalseDiligenceApi.updateFalseDiligence({ await FalseDiligenceApi.updateFalseDiligence(row.userDingAttendanceRespVOList)
userDingAttendanceSaveReqVO: row.userDingAttendanceRespVOList
})
globalLoading.value.close() globalLoading.value.close()
message.success('保存成功!') message.success('保存成功!')
getList() getList()
@ -332,6 +343,7 @@ async function handleSealup(row) {
await FalseDiligenceApi.saveFalseDiligence({ await FalseDiligenceApi.saveFalseDiligence({
period: row.period period: row.period
}) })
message.success('封存成功!')
// //
await getList() await getList()
} catch (err) { } catch (err) {

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

@ -5,7 +5,7 @@
v-loading="formLoading" v-loading="formLoading"
:model="formData" :model="formData"
:rules="formRules" :rules="formRules"
label-width="80px" label-width="100px"
> >
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
@ -69,8 +69,9 @@
<el-form-item label="开通系统" prop="instanceIds"> <el-form-item label="开通系统" prop="instanceIds">
<el-select <el-select
v-model="formData.instanceIds" v-model="formData.instanceIds"
placeholder="选择考勤方案" placeholder="选择开通系统"
multiple multiple
collapse-tags
clearable clearable
filterable filterable
> >
@ -127,11 +128,28 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <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-col :span="12">
<el-form-item label="微信号" prop="wxAlias"> <el-form-item label="微信号" prop="wxAlias">
<el-input v-model="formData.wxAlias" placeholder="请输入微信号" /> <el-input v-model="formData.wxAlias" placeholder="请输入微信号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="formData.remark" placeholder="请输入内容" type="textarea" /> <el-input v-model="formData.remark" placeholder="请输入内容" type="textarea" />
@ -253,4 +271,16 @@ const resetForm = () => {
} }
formRef.value?.resetFields() 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> </script>

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

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

Loading…
Cancel
Save