Commit b800848e authored by xinzhedeai's avatar xinzhedeai

add:员工 - 岗位 部门接口对接。删除编辑功能

parent bd2c1637
...@@ -20,7 +20,7 @@ export function unbindCard(data) { ...@@ -20,7 +20,7 @@ export function unbindCard(data) {
// 新增人员信息 // 新增人员信息
export function addInfo(data) { export function addInfo(data) {
return request({ return request({
url: '/person/info/addRemotePersonInfo', url: '/person/info/addPerson',
method: 'post', method: 'post',
data: data data: data
}) })
...@@ -29,17 +29,23 @@ export function addInfo(data) { ...@@ -29,17 +29,23 @@ export function addInfo(data) {
// 修改人员信息 // 修改人员信息
export function updateInfo(data) { export function updateInfo(data) {
return request({ return request({
url: '/person/info/updateRemotePersonInfo', url: '/person/info/updatePerson',
method: 'put', method: 'put',
data: data data: data
}) })
} }
export function getInfo(id) {
return request({
url: '/person/info/getPersonById/' + id,
method: 'get'
})
}
// 删除人员信息 // 删除人员信息
export function delInfo(data) { export function delInfo(id) {
return request({ return request({
url: '/person/info/deleteRemotePersonInfo', url: '/person/info/deletePerson/' + id,
method: 'delete', method: 'delete',
data: data
}) })
} }
...@@ -62,43 +62,43 @@ ...@@ -62,43 +62,43 @@
<el-table-column label="性别" align="center" prop="sex" /> <el-table-column label="性别" align="center" prop="sex" />
<el-table-column label="联系方式" align="center" prop="phone" /> <el-table-column label="联系方式" align="center" prop="phone" />
<el-table-column label="身份证号" align="center" prop="idCard" /> <el-table-column label="身份证号" align="center" prop="idCard" />
<el-table-column label="所在部门1" align="center" prop="dept" /> <el-table-column label="所在部门" align="center" prop="deptName" />
<el-table-column label="岗位名称1" align="center" prop="idCard" /> <el-table-column label="岗位名称" align="center" prop="positionName" />
<el-table-column label="定位卡号" align="center" prop="cardId" /> <el-table-column label="定位卡号" align="center" prop="cardId" />
<el-table-column <el-table-column
label="操作" label="操作"
align="center" align="center"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
fixed="right" fixed="right"
width="180" width="380"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" type="primary"
type="text" size="small"
icon="el-icon-link" icon="el-icon-link"
v-if="!scope.row.cardId" v-if="!scope.row.cardId"
@click="handleBindCard(scope.row)" @click="handleBindCard(scope.row)"
>定位卡绑定</el-button >定位卡绑定</el-button
> >
<el-button <el-button
size="mini" type="primary"
type="text" size="small"
icon="el-icon-unlock" icon="el-icon-unlock"
v-if="scope.row.cardId" v-if="scope.row.cardId"
@click="handleUnbindCard(scope.row)" @click="handleUnbindCard(scope.row)"
>定位卡解绑</el-button >定位卡解绑</el-button
> >
<el-button <el-button
size="mini" size="small"
type="text" type="primary"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
>修改</el-button >修改</el-button
> >
<el-button <el-button
size="mini" size="small"
type="text" type="danger"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
>删除</el-button >删除</el-button
...@@ -145,25 +145,27 @@ ...@@ -145,25 +145,27 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所在部门" prop="deptId"> <el-form-item label="所在部门" prop="deptId">
<treeselect <treeselect
v-model="form.deptIds" v-model="form.deptId"
:options="deptOptions" :options="deptOptions"
placeholder="请选择部门" placeholder="请选择部门"
:normalizer="normalizer" :normalizer="normalizer"
@select="handleDeptSelect"
></treeselect> ></treeselect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位名称" prop="cardId"> <el-form-item label="岗位名称" prop="positionId">
<el-select <el-select
v-model="form.cardId" v-model="form.positionId"
placeholder="请选择岗位名称" placeholder="请选择岗位名称"
clearable clearable
@change="handlePositionChange"
> >
<el-option <el-option
v-for="item in positionOptions" v-for="item in positionOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value * 1"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -177,10 +179,10 @@ ...@@ -177,10 +179,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="出生日期" prop="birth"> <el-form-item label="出生日期" prop="birthTime">
<el-date-picker <el-date-picker
clearable clearable
v-model="form.birth" v-model="form.birthTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="" placeholder=""
...@@ -200,10 +202,10 @@ ...@@ -200,10 +202,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="入职日期" prop="hireDate"> <el-form-item label="入职日期" prop="joiningTime">
<el-date-picker <el-date-picker
clearable clearable
v-model="form.hireDate" v-model="form.joiningTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择入职日期" placeholder="请选择入职日期"
...@@ -212,18 +214,18 @@ ...@@ -212,18 +214,18 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="家庭住址11" prop="seniority"> <el-form-item label="家庭住址" prop="address">
<el-input v-model="form.seniority" placeholder="" /> <el-input v-model="form.address" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="职称" prop="professionalTitle"> <el-form-item label="职称" prop="jobName">
<el-input v-model="form.professionalTitle" placeholder="" /> <el-input v-model="form.jobName" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="职称证书编号" prop="professionalTitleNumber"> <el-form-item label="职称证书编号" prop="jobNumber">
<el-input v-model="form.professionalTitleNumber" placeholder="" /> <el-input v-model="form.jobNumber" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -289,6 +291,7 @@ import { ...@@ -289,6 +291,7 @@ import {
listInfo, listInfo,
delInfo, delInfo,
addInfo, addInfo,
getInfo, // 引入获取人员信息的接口
updateInfo, updateInfo,
unbindCard, unbindCard,
getCardList, // 引入获取定位卡号列表的接口 getCardList, // 引入获取定位卡号列表的接口
...@@ -304,12 +307,6 @@ export default { ...@@ -304,12 +307,6 @@ export default {
components: { Treeselect }, components: { Treeselect },
data() { data() {
return { return {
// 级联选择器配置
cascaderProps: {
value: "index",
label: "name",
children: "children",
},
deptOptions: [ deptOptions: [
{ {
label: "部门1", label: "部门1",
...@@ -397,20 +394,105 @@ export default { ...@@ -397,20 +394,105 @@ export default {
}, },
methods: { methods: {
/** 处理岗位选择 */
handlePositionChange(value) {
if (value) {
// 根据选择的岗位ID查找对应的岗位对象
const positionItem = this.positionOptions.find(
(item) => item.value === value
);
if (positionItem) {
// 将岗位名称存储到form.positionName
this.form.positionName = positionItem.label;
}
} else {
// 如果取消选择,清空岗位名称
this.form.positionName = null;
}
},
normalizer(node) { normalizer(node) {
return { const result = {
id: node.index, // 用index作为唯一标识 id: node.index, // 用index作为唯一标识
label: node.name, // 用name作为显示文本 label: node.name, // 用name作为显示文本
children: node.children || [], // 子节点(如果为null则转为空数组)
}; };
// 只有当children不为null且有值时才添加该属性
if (node.children && node.children.length > 0) {
result.children = node.children;
}
return result;
},
/** 处理部门选择 */
handleDeptSelect(selectedNode) {
if (selectedNode) {
// 直接从选中的节点获取name属性值
this.form.deptName = selectedNode.name;
// 同时设置deptId以便后续处理
this.form.deptId = selectedNode.index;
} else {
// 如果取消选择,清空相关字段
this.form.deptName = null;
this.form.deptId = null;
}
},
/** 查找部门节点(递归函数,用于备用) */
findDepartmentNode(deptId, options = this.deptOptions) {
for (let i = 0; i < options.length; i++) {
const node = options[i];
if (node.index === deptId) {
return node;
}
if (node.children && node.children.length > 0) {
const found = this.findDepartmentNode(deptId, node.children);
if (found) {
return found;
}
}
}
return null;
}, },
/** 获取部门列表 */ /** 获取部门列表 */
getDeptList() { getDeptList() {
getDept({}) getDept({})
.then((response) => { .then((response) => {
console.log(response.data, "部门数据"); console.log(response.data, "部门数据");
// 检查数据格式是否正确 // 添加递归处理函数过滤children为null的情况
this.deptOptions = response.data.data; const processDepartmentData = (data) => {
if (!data || !Array.isArray(data)) return [];
return data.map((item) => {
const processedItem = { ...item };
// 如果children存在且是数组,递归处理
if (
processedItem.children &&
Array.isArray(processedItem.children)
) {
// 递归处理子部门
processedItem.children = processDepartmentData(
processedItem.children
);
// 如果处理后的children为空数组,移除该属性
if (processedItem.children.length === 0) {
delete processedItem.children;
}
} else if (
processedItem.children === null ||
processedItem.children === undefined
) {
// 如果children为null或undefined,移除该属性
delete processedItem.children;
}
return processedItem;
});
};
// 处理部门数据
this.deptOptions = processDepartmentData(
// response.data.data[0].children
response.data.data[0].children
);
}) })
.catch((error) => { .catch((error) => {
console.error("获取部门列表失败:", error); console.error("获取部门列表失败:", error);
...@@ -526,7 +608,7 @@ export default { ...@@ -526,7 +608,7 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listInfo(this.queryParams).then((response) => { listInfo(this.queryParams).then((response) => {
this.infoList = response.data; this.infoList = response.records;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
...@@ -538,85 +620,7 @@ export default { ...@@ -538,85 +620,7 @@ export default {
}, },
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {};
createBy: null,
createTime: null,
updateTime: null,
remark: null,
personId: null,
personType: null,
personTypeName: null,
staffType: null,
staffTypeName: null,
positionIconType: null,
positionIconTypeName: null,
realName: null,
phone: null,
sex: "",
birth: null,
email: null,
nativePlace: null,
nation: null,
maritalStatus: null,
politicsStatus: null,
healthStatus: null,
idType: null,
idNumber: null,
personIc: null,
personCode: null,
personSource: null,
company: null,
companyName: null,
administratorName: null,
administratorPhone: null,
jobNumber: null,
jobStatus: null,
hireDate: null,
hireDateAlias: null,
dimissionDate: null,
officePhone: null,
duty: null,
professionalTitle: null,
professionalTitleNumber: null,
seniority: null,
experience: null,
yearPlusExperience: null,
highestEducation: null,
highestDegree: null,
profession: null,
school: null,
diplomaNumber: null,
cengNumber: null,
accessory: null,
accessoryList: null,
contractorId: null,
contractorName: null,
receiveLeader: null,
receivePhone: null,
gateThrough: null,
leaveTime: null,
visitorStatus: null,
visitTime: null,
process: null,
lastUpdateDate: null,
lastCreateDate: null,
updateFail: null,
onlineStatus: null,
inOutStatus: null,
cardType: null,
cardTypeName: null,
cardId: null,
icCardId: null,
cardPower: null,
personPhoto: null,
photoSign: null,
deptName: null,
reservationEntryStartTime: null,
reservationEntryEndTime: null,
reservationVisitingTime: null,
curUserName: null,
visitorId: null,
};
this.resetForm("form"); this.resetForm("form");
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
...@@ -645,12 +649,8 @@ export default { ...@@ -645,12 +649,8 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
listInfo({ getInfo(row.personId).then((response) => {
pageNum: 1, this.form = response;
pageSize: 1,
personId: row.personId,
}).then((response) => {
this.form = response.data[0];
this.open = true; this.open = true;
this.title = "修改员工信息"; this.title = "修改员工信息";
...@@ -702,10 +702,7 @@ export default { ...@@ -702,10 +702,7 @@ export default {
this.$modal this.$modal
.confirm("是否确认删除该数据项?") .confirm("是否确认删除该数据项?")
.then(function () { .then(function () {
return delInfo({ return delInfo(row.personId);
personIds: [row.personId],
personType: row.personType,
});
}) })
.then(() => { .then(() => {
this.getList(); this.getList();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment