Commit de498718 by yubin

请假

parent 8ae61c2e
......@@ -8,6 +8,14 @@ export const getLeaveList = (param) => {
data: param
})
}
// 列表查询(支持分页与筛选)
export const getLeaveListByUserId = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmLeave/selectListByUserId',
method: 'post',
data: param
})
}
// 获取待审核列表
export const getPendingList = (param) => {
......@@ -89,3 +97,20 @@ export const getLeaveStats = (param) => {
data: param
})
}
export const getLeaveTypeList = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmLeaveType/selectList',
method: 'post',
data: param
})
}
// 转交审批人(前端发起将当前待审批任务转给其他审批人)
export const transferLeaveApproval = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmLeave/transferApproval',
method: 'post',
data: param
})
}
\ No newline at end of file
import axios from '@/libs/api.request'
const permissionType = {
// 键:枚举名,值:枚举值(可以是数字/字符串)
LEAVEAPPROVAL: "leave_approval", // 请假审核
LEAVEVIEW: "leave_view", // 请假查询统计
SUPPLYAPPROVAL: "supply_approval", // 用品审核
SUPPLYVIEW: "supply_view" // 用品查询统计
};
// 获取日常人员列表
export const getLeaveApprovalPermission = () => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUserCategoryPermission/selectOrgPermission',
method: 'post',
data:{
permissionType: permissionType.LEAVEAPPROVAL
}
})
}
// 根据机构编码同步本级及下属机构用户(存在则更新、不存在则新增;null 不覆盖)
export const getLeaveView = () => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUserCategoryPermission/selectOrgPermission',
method: 'post',
data:{
permissionType: permissionType.LEAVEVIEW
}
})
}
// 保存单个日常人员(前端编辑后保存)
export const getSupplyApproval = () => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUserCategoryPermission/selectOrgPermission',
method: 'post',
data:{
permissionType: permissionType.SUPPLYAPPROVAL
}
})
}
// 分页查询日常人员可选上级领导列表
export const getSupplyView = () => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUserCategoryPermission/selectOrgPermission',
method: 'post',
data:{
permissionType: permissionType.SUPPLYVIEW
}
})
}
\ No newline at end of file
......@@ -26,3 +26,29 @@ export const saveDmUser = (param) => {
data: param
})
}
// 分页查询日常人员可选上级领导列表
export const dmUserLeader = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUser/dmUserLeader',
method: 'post',
data: param
})
}
// 分页查询日常人员可选上级部门列表
export const dmUserOffice = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUser/dmUserOffice',
method: 'post',
data: param
})
}
export const getUserTypeList = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyDmUserCategory/selectList',
method: 'post',
data: param
})
}
......@@ -41,27 +41,25 @@
<FormItem label="工号">
<Input v-model="editModal.form.gh" disabled />
</FormItem>
<FormItem label="邮箱">
<Input v-model="editModal.form.email" />
</FormItem>
<FormItem label="电话">
<Input v-model="editModal.form.phone" />
</FormItem>
<FormItem label="手机">
<Input v-model="editModal.form.mobile" />
</FormItem>
<FormItem label="出生日期">
<!-- <FormItem label="出生日期">
<DatePicker v-model="editModal.form.birthday" type="date" placeholder="请选择日期" />
</FormItem>
</FormItem> -->
<FormItem label="参加工作时间">
<DatePicker v-model="editModal.form.in_work_time" type="date" placeholder="请选择日期" />
</FormItem>
<FormItem label="归属部门">
<Input v-model="editModal.form.office_id" placeholder="请输入机构ID(可通过列表选择扩展)" />
</FormItem>
<FormItem label="直属领导ID">
<Input v-model="editModal.form.leader" placeholder="只能选择本级或父机构人员ID" />
<!-- 角色已移除 -->
<!-- <FormItem label="归属部门">
<SelectDisplay v-model="editModal.form.office_id" placeholder="请输入机构" @open="openOfficeSelect(editModal.form)" />
</FormItem>
<FormItem label="直属领导">
<SelectDisplay v-model="editModal.form.leader" placeholder="只能选择本级或父机构人员" @open="openSelectLeader(editModal.form)" />
</FormItem> -->
<FormItem label="是否离职">
<Select v-model="editModal.form.is_leave" style="width: 160px">
<Option :value="0">未离职</Option>
......@@ -74,6 +72,7 @@
<Button type="primary" :loading="editModal.saving" @click="saveEdit">保存</Button>
</div>
</Modal>
<!-- 领导与归属部门选择已移除 -->
</div>
</template>
......@@ -82,22 +81,21 @@ import { getDmUserList, syncDmUsersByOffice, saveDmUser } from '@/api/key-dm-use
export default {
name: 'key-dm-user-index',
components: {},
data () {
return {
officeCode: '',
filters: { name: '' },
rows: [],
// leaders/userTypes 已移除
loading: false,
columns: [
{ type: 'index', title: '序号', width: 60, align: 'center' },
{ title: '姓名', key: 'name', align: 'center' },
{ title: '工号', key: 'gh', align: 'center' },
{ title: '归属部门', key: 'office_name', align: 'center' },
{ title: '邮箱', key: 'email', align: 'center' },
{ title: '电话', key: 'phone', align: 'center' },
{ title: '手机', key: 'mobile', align: 'center' },
{ title: '离职', key: 'is_leave', slot: 'is_leave', width: 80, align: 'center' },
{ title: '同步来源', key: 'is_ext', slot: 'is_ext', width: 120, align: 'center' },
{ title: '操作', slot: 'action', width: 200, align: 'center' }
],
pager: { pageNo: 1, pageSize: 10, totalRecord: 0 },
......@@ -105,7 +103,8 @@ export default {
visible: false,
saving: false,
form: {}
}
},
// leader / office state 已移除
}
},
created () {
......@@ -125,7 +124,19 @@ export default {
console.log('getDmUserList', ret)
if (ret.data && ret.data.errcode === 0) {
const data = ret.data.data || {}
this.rows = data.results || []
this.rows = (data.results || []).map(row => {
// 规范化后端返回的大写 Id 到前端统一使用小写 id(作为主键)
const copy = Object.assign({}, row)
if (copy.Id != null && copy.id == null) copy.id = copy.Id
// 处理嵌套对象可能带有 Id 的情况(归属机构/领导)
if (copy.office_id && copy.office_id.Id != null && copy.office_id.id == null) {
copy.office_id = Object.assign({}, copy.office_id, { id: copy.office_id.Id })
}
if (copy.leader && copy.leader.Id != null && copy.leader.id == null) {
copy.leader = Object.assign({}, copy.leader, { id: copy.leader.Id })
}
return copy
})
this.pager.totalRecord = data.totalRecord || 0
console.log('data', this.rows)
} else {
......@@ -133,6 +144,7 @@ export default {
}
}).finally(() => { this.loading = false })
},
/* 用户角色加载已移除 */
handleSearch () {
this.pager.pageNo = 1
this.fetchList()
......@@ -170,9 +182,13 @@ export default {
})
},
openEdit (row) {
this.editModal.form = Object.assign({}, row)
// 直接拷贝记录用于编辑,并保证小写 id 可用
const copy = Object.assign({}, row)
if (copy.Id != null && copy.id == null) copy.id = copy.Id
this.editModal.form = copy
this.editModal.visible = true
},
/* leader / office 相关方法已移除 */
saveEdit () {
this.$refs.editForm.validate(valid => {
// no strict validation here, just save
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论