|
|
@@ -199,7 +199,7 @@
|
|
|
<div class="addMember" v-if="addMemberShow">
|
|
|
<div class="left">
|
|
|
<img src="@/assets/images/close.png" alt="" @click="addMemberConcel" />
|
|
|
- <span class="add">添加成员</span>
|
|
|
+ <span class="add">{{ addMemberTitle }}</span>
|
|
|
</div>
|
|
|
<div class="content">
|
|
|
<div class="form">
|
|
|
@@ -261,7 +261,7 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="部门 :" prop="department">
|
|
|
- <el-cascader
|
|
|
+ <!-- <el-cascader
|
|
|
v-model="addMemberRuleForm.department"
|
|
|
style="width: 500px"
|
|
|
filterable
|
|
|
@@ -269,6 +269,15 @@
|
|
|
:options="dataSource"
|
|
|
:props="{ label: 'name', value: 'id' }"
|
|
|
:show-all-levels="false"
|
|
|
+ /> -->
|
|
|
+ <el-tree-select
|
|
|
+ v-model="addMemberRuleForm.department"
|
|
|
+ :data="dataSource"
|
|
|
+ default-expand-all
|
|
|
+ check-strictly
|
|
|
+ :render-after-expand="false"
|
|
|
+ style="width: 500px"
|
|
|
+ :props="{ label: 'name', value: 'id' }"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="人脸照片 :" prop="facePhoto">
|
|
|
@@ -310,6 +319,7 @@
|
|
|
v-model="addMemberRuleForm.grade"
|
|
|
placeholder="请选择年级"
|
|
|
style="width: 500px"
|
|
|
+ @change="classsListChange"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="i in gradeData"
|
|
|
@@ -388,7 +398,7 @@
|
|
|
v-for="item in conteactListData"
|
|
|
:key="item.id"
|
|
|
:label="item.name"
|
|
|
- :value="item.id"
|
|
|
+ :value="`${item.id}`"
|
|
|
>
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
<span
|
|
|
@@ -1082,8 +1092,10 @@ const addBMRules = reactive({
|
|
|
{ required: true, message: "部门名称不能为空", trigger: "blur" },
|
|
|
],
|
|
|
});
|
|
|
+
|
|
|
// 添加成员页面 (---------------------------------------------)
|
|
|
const addMemberShow = ref(false);
|
|
|
+const addMemberTitle = ref("添加成员");
|
|
|
const addMemberRef = ref();
|
|
|
const addMemberRuleForm = reactive({
|
|
|
serialNumber: "", // 编号
|
|
|
@@ -1126,19 +1138,19 @@ const upload = ref(); // 人脸照片
|
|
|
const addMemberRules = reactive({
|
|
|
serialNumber: [{ required: true, message: "编号不能为空", trigger: "blur" }],
|
|
|
name: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
|
|
|
- identity: [{ required: true, message: "身份不能为空", trigger: "blur" }],
|
|
|
+ identity: [{ required: true, message: "身份不能为空", trigger: "change" }],
|
|
|
icCard: [{ required: true, message: "身份证号不能为空", trigger: "blur" }],
|
|
|
sex: [{ required: true, message: "性别不能为空", trigger: "blur" }],
|
|
|
- department: [{ required: true, message: "部门不能为空", trigger: "blur" }],
|
|
|
+ department: [{ required: true, message: "部门不能为空", trigger: "change" }],
|
|
|
facePhoto: [{ required: true, message: "人脸照片不能为空", trigger: "blur" }],
|
|
|
- grade: [{ required: true, message: "年级不能为空", trigger: "blur" }],
|
|
|
+ grade: [{ required: true, message: "年级不能为空", trigger: "change" }],
|
|
|
// institute: [{ required: true, message: "学院不能为空", trigger: "blur" }],
|
|
|
// specialty: [{ required: true, message: "专业不能为空", trigger: "blur" }],
|
|
|
- class: [{ required: true, message: "班级不能为空", trigger: "blur" }],
|
|
|
+ class: [{ required: true, message: "班级不能为空", trigger: "change" }],
|
|
|
// school: [{ required: true, message: "校区不能为空", trigger: "blur" }],
|
|
|
// dormitory: [{ required: true, message: "宿舍号不能为空", trigger: "blur" }],
|
|
|
- phone: [{ required: true, message: "手机号不能为空", trigger: "blur" }],
|
|
|
- contact: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
|
|
|
+ // phone: [{ required: true, message: "手机号不能为空", trigger: "blur" }],
|
|
|
+ // contact: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
|
|
|
// jobName: [{ required: true, message: "职称不能为空", trigger: "blur" }],
|
|
|
houseAddress: [
|
|
|
// { required: true, message: "家庭地址不能为空", trigger: "blur" },
|
|
|
@@ -1524,7 +1536,7 @@ const classDataList = async () => {
|
|
|
},
|
|
|
// params: data,
|
|
|
});
|
|
|
- // console.log(identity,"身份下拉数据");
|
|
|
+ console.log(identity, "身份下拉数据");
|
|
|
identityData.value = identity.data.data;
|
|
|
let grade = await axios({
|
|
|
method: "get",
|
|
|
@@ -1535,19 +1547,8 @@ const classDataList = async () => {
|
|
|
},
|
|
|
// params: data,
|
|
|
});
|
|
|
- // console.log(grade,"年级下拉数据");
|
|
|
+ console.log(grade, "年级下拉数据");
|
|
|
gradeData.value = grade.data.data;
|
|
|
- let classs = await axios({
|
|
|
- method: "get",
|
|
|
- url: api.value + "/wanzai/api/smartClass/querySmartClasss",
|
|
|
- headers: {
|
|
|
- // token: sessionStorage.getItem("token"),
|
|
|
- // user_head: sessionStorage.getItem("userhead"),
|
|
|
- },
|
|
|
- // params: data,
|
|
|
- });
|
|
|
- // console.log(classs,"班级下拉数据");
|
|
|
- classsData.value = classs.data.data;
|
|
|
};
|
|
|
// 联系人分页数据
|
|
|
const studentList = async () => {
|
|
|
@@ -1571,6 +1572,30 @@ const studentList = async () => {
|
|
|
conteactListData.value = res.data.data.list;
|
|
|
conteactListTotalPage.value = res.data.data.totalPage;
|
|
|
};
|
|
|
+// 班级下拉数据
|
|
|
+const classsList = async () => {
|
|
|
+ let data = {
|
|
|
+ gradeId: addMemberRuleForm.grade,
|
|
|
+ };
|
|
|
+ let classs = await axios({
|
|
|
+ method: "get",
|
|
|
+ url: api.value + "/wanzai/api/smartClass/querySmartClasss",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ params: data,
|
|
|
+ });
|
|
|
+ console.log(classs, "班级下拉数据");
|
|
|
+ classsData.value = classs.data.data;
|
|
|
+};
|
|
|
+// 切换年级加载班级数据
|
|
|
+const classsListChange = (value) => {
|
|
|
+ addMemberRuleForm.class = "";
|
|
|
+ if (addMemberRuleForm.grade) {
|
|
|
+ classsList();
|
|
|
+ }
|
|
|
+};
|
|
|
// 联系人分页触底加载更多
|
|
|
const addStudentListScroll = () => {
|
|
|
nextTick(() => {
|
|
|
@@ -1623,10 +1648,71 @@ const conteactMethod = (query) => {
|
|
|
};
|
|
|
// 添加成员弹窗
|
|
|
const addMemberClick = () => {
|
|
|
+ addMemberTitle.value = "添加成员";
|
|
|
homeShow.value = false;
|
|
|
addMemberShow.value = true;
|
|
|
studentList();
|
|
|
addStudentListScroll();
|
|
|
+ addMemberRuleForm.serialNumber = "";
|
|
|
+ addMemberRuleForm.name = "";
|
|
|
+ addMemberRuleForm.identity = "";
|
|
|
+ addMemberRuleForm.icCard = "";
|
|
|
+ addMemberRuleForm.sex = "";
|
|
|
+ addMemberRuleForm.departmentID = "";
|
|
|
+ addMemberRuleForm.facePhoto = "";
|
|
|
+ addMemberRuleForm.grade = "";
|
|
|
+ addMemberRuleForm.institute = "";
|
|
|
+ addMemberRuleForm.specialty = "";
|
|
|
+ addMemberRuleForm.class = "";
|
|
|
+ addMemberRuleForm.school = "";
|
|
|
+ addMemberRuleForm.dormitory = "";
|
|
|
+ addMemberRuleForm.phone = "";
|
|
|
+ addMemberRuleForm.contact = "";
|
|
|
+ addMemberRuleForm.jobName = "";
|
|
|
+ addMemberRuleForm.houseAddress = "";
|
|
|
+ addMemberRuleForm.nation = "";
|
|
|
+ addMemberRuleForm.originOfStudent = "";
|
|
|
+ addMemberRuleForm.graduateCollege = "";
|
|
|
+ addMemberRuleForm.duty = "";
|
|
|
+ nextTick(() => {
|
|
|
+ addMemberRef.value.resetFields();
|
|
|
+ });
|
|
|
+};
|
|
|
+// 编辑成员弹窗
|
|
|
+const editClick = (row) => {
|
|
|
+ addMemberTitle.value = "编辑成员";
|
|
|
+ homeShow.value = false;
|
|
|
+ addMemberShow.value = true;
|
|
|
+ studentList();
|
|
|
+ addStudentListScroll();
|
|
|
+ console.log(row, "编辑");
|
|
|
+ addMemberRuleForm.serialNumber = row.cardNo; // 编号
|
|
|
+ addMemberRuleForm.name = row.name; // 姓名
|
|
|
+ addMemberRuleForm.identity = row.identityId; // 身份ID
|
|
|
+ addMemberRuleForm.icCard = row.idCard; // 身份证
|
|
|
+ addMemberRuleForm.sex = row.sexId; // 性别 女:0男:1
|
|
|
+ addMemberRuleForm.department = row.departmentId; // 部门ID
|
|
|
+ addMemberRuleForm.facePhoto = row.headImage; // 人脸照片
|
|
|
+ addMemberRuleForm.grade = Number(row.grade); // 年级
|
|
|
+ classsList();
|
|
|
+ addMemberRuleForm.institute = row.college; // 学院
|
|
|
+ addMemberRuleForm.specialty = row.speciality; // 专业
|
|
|
+ addMemberRuleForm.class = row.schoolClass; // 班级
|
|
|
+ addMemberRuleForm.school = row.campus; // 校区
|
|
|
+ addMemberRuleForm.dormitory = row.dormitoryNumber; // 宿舍号
|
|
|
+ addMemberRuleForm.phone = row.phone; // 手机号
|
|
|
+ if (row.affiliate) {
|
|
|
+ addMemberRuleForm.contact = row.affiliate.split(","); // 联系人
|
|
|
+ } else {
|
|
|
+ addMemberRuleForm.contact = "";
|
|
|
+ }
|
|
|
+ addMemberRuleForm.jobName = row.title; // 职称
|
|
|
+ addMemberRuleForm.houseAddress = row.address; // 家庭住址
|
|
|
+ addMemberRuleForm.nation = row.nation; // 民族
|
|
|
+ addMemberRuleForm.originOfStudent = row.ofStudent; // 生源地
|
|
|
+ addMemberRuleForm.graduateCollege = row.graduate; // 毕业学校
|
|
|
+ addMemberRuleForm.duty = row.duties; // 职务
|
|
|
+ addMemberRuleForm.id = row.id;
|
|
|
};
|
|
|
// 确定添加成员
|
|
|
const confirmAddMember = async (formEl) => {
|
|
|
@@ -1639,8 +1725,7 @@ const confirmAddMember = async (formEl) => {
|
|
|
identityId: addMemberRuleForm.identity, // 身份ID
|
|
|
idCard: addMemberRuleForm.icCard, // 身份证
|
|
|
sexId: addMemberRuleForm.sex, // 性别 女:0男:1
|
|
|
- departmentId:
|
|
|
- addMemberRuleForm.department[addMemberRuleForm.department.length - 1], // 部门ID
|
|
|
+ departmentId: addMemberRuleForm.department, // 部门ID
|
|
|
headImage: addMemberRuleForm.facePhoto, // 人脸照片
|
|
|
grade: addMemberRuleForm.grade, // 年级
|
|
|
college: addMemberRuleForm.institute, // 学院
|
|
|
@@ -1657,16 +1742,32 @@ const confirmAddMember = async (formEl) => {
|
|
|
graduate: addMemberRuleForm.graduateCollege, // 毕业学校
|
|
|
duties: addMemberRuleForm.duty, // 职务
|
|
|
};
|
|
|
- let res = await axios({
|
|
|
- method: "post",
|
|
|
- url: api.value + "/wanzai/api/smartUser/insertSmartUser",
|
|
|
- headers: {
|
|
|
- // token: sessionStorage.getItem("token"),
|
|
|
- // user_head: sessionStorage.getItem("userhead"),
|
|
|
- },
|
|
|
- data: data,
|
|
|
- });
|
|
|
- console.log(res, "新增用户");
|
|
|
+ let res = "";
|
|
|
+ if (addMemberRuleForm.id) {
|
|
|
+ data.id = addMemberRuleForm.id;
|
|
|
+ res = await axios({
|
|
|
+ method: "post",
|
|
|
+ url: api.value + "/wanzai/api/smartUser/updateSmartUserById",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ data: data,
|
|
|
+ });
|
|
|
+ console.log(res, "编辑用户");
|
|
|
+ } else {
|
|
|
+ res = await axios({
|
|
|
+ method: "post",
|
|
|
+ url: api.value + "/wanzai/api/smartUser/insertSmartUser",
|
|
|
+ headers: {
|
|
|
+ // token: sessionStorage.getItem("token"),
|
|
|
+ // user_head: sessionStorage.getItem("userhead"),
|
|
|
+ },
|
|
|
+ data: data,
|
|
|
+ });
|
|
|
+ console.log(res, "新增用户");
|
|
|
+ }
|
|
|
+
|
|
|
if (res.data.code == 200) {
|
|
|
ElMessage({
|
|
|
type: "success",
|
|
|
@@ -1695,6 +1796,7 @@ const addMemberConcel = () => {
|
|
|
addMemberShow.value = false;
|
|
|
homeShow.value = true;
|
|
|
addMemberRef.value.resetFields();
|
|
|
+ addMemberRuleForm.id = "";
|
|
|
};
|
|
|
// 移出照片
|
|
|
const handleRemove = (uploadFile, uploadFiles) => {
|
|
|
@@ -1723,7 +1825,7 @@ const handlePreview = (file) => {
|
|
|
const handleChange = async (file, fileLists) => {
|
|
|
console.log(file, "1111");
|
|
|
if (file.raw.type == "image/jpeg" || file.raw.type == "image/png") {
|
|
|
- if (file.size / 1024 <= 150) {
|
|
|
+ if (file.size / 1024 <= 50) {
|
|
|
const cos = new COS({
|
|
|
SecretId: "AKIDCPVZdcWIxgHpy5FYxVyPiqkZGrhdXUBg",
|
|
|
SecretKey: "NkyCN3cz97qKaeXLvHOGxOcdS8f184pL",
|
|
|
@@ -1755,7 +1857,7 @@ const handleChange = async (file, fileLists) => {
|
|
|
}
|
|
|
);
|
|
|
} else {
|
|
|
- ElMessage.error("图片的大小不能超过150kb!");
|
|
|
+ ElMessage.error("图片的大小不能超过50kb!");
|
|
|
}
|
|
|
} else {
|
|
|
ElMessage.error("图片格式必须为JPG/PNG格式!");
|
|
|
@@ -2417,12 +2519,12 @@ onUnmounted(() => {
|
|
|
|
|
|
.footer {
|
|
|
width: 96%;
|
|
|
- // height: 550px;
|
|
|
- margin: 10px auto 30px;
|
|
|
+ height: calc(100% - 205px);
|
|
|
+ margin: 10px auto 25px;
|
|
|
+ min-height: 300px;
|
|
|
|
|
|
.el-table--fit {
|
|
|
- // height: 100%;
|
|
|
-
|
|
|
+ height: 100% !important;
|
|
|
:deep(.el-table__header-wrapper) {
|
|
|
background-color: #000;
|
|
|
font-size: 14px;
|