|
@@ -139,21 +139,34 @@
|
|
|
plain
|
|
plain
|
|
|
>勾选删除</el-button
|
|
>勾选删除</el-button
|
|
|
>
|
|
>
|
|
|
- <el-tooltip
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <el-button-group class="ml-4">
|
|
|
|
|
+ <el-tooltip
|
|
|
class="box-item"
|
|
class="box-item"
|
|
|
effect="dark"
|
|
effect="dark"
|
|
|
content="根据当前选中的部门、查询中的用户姓名进行导出"
|
|
content="根据当前选中的部门、查询中的用户姓名进行导出"
|
|
|
placement="top-start"
|
|
placement="top-start"
|
|
|
- >
|
|
|
|
|
- <el-button
|
|
|
|
|
|
|
+ > <el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
color="rgba(0, 97, 255, 1)"
|
|
color="rgba(0, 97, 255, 1)"
|
|
|
@click="importExcel"
|
|
@click="importExcel"
|
|
|
:disabled="isManage != 1"
|
|
:disabled="isManage != 1"
|
|
|
plain
|
|
plain
|
|
|
|
|
+ style="margin-right: 0;border-right: 0px ;"
|
|
|
>导出用户</el-button
|
|
>导出用户</el-button
|
|
|
>
|
|
>
|
|
|
- </el-tooltip>
|
|
|
|
|
|
|
+ </el-tooltip>
|
|
|
|
|
+ <el-button type="primary" @click="exportSettingsClick" style="border-left: 0px ;" plain color="rgba(0, 97, 255, 1)" :icon="Tools" />
|
|
|
|
|
+ </el-button-group>
|
|
|
|
|
+ <!-- <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ color="rgba(0, 97, 255, 1)"
|
|
|
|
|
+ @click="importExcel"
|
|
|
|
|
+ :disabled="isManage != 1"
|
|
|
|
|
+ plain
|
|
|
|
|
+ >导出用户</el-button
|
|
|
|
|
+ > -->
|
|
|
|
|
+
|
|
|
<el-button
|
|
<el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
color="rgba(0, 97, 255, 1)"
|
|
color="rgba(0, 97, 255, 1)"
|
|
@@ -176,11 +189,21 @@
|
|
|
border: 0,
|
|
border: 0,
|
|
|
}"
|
|
}"
|
|
|
>
|
|
>
|
|
|
- <el-table-column align="center" type="selection" width="80" />
|
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ type="selection"
|
|
|
|
|
+
|
|
|
|
|
+ width="80"
|
|
|
|
|
+ />
|
|
|
<el-table-column align="center" prop="name" label="姓名" />
|
|
<el-table-column align="center" prop="name" label="姓名" />
|
|
|
|
|
+ <el-table-column align="center" prop="name" label="时间组" />
|
|
|
<el-table-column align="center" prop="identity" label="身份" />
|
|
<el-table-column align="center" prop="identity" label="身份" />
|
|
|
<el-table-column align="center" prop="department" label="部门" />
|
|
<el-table-column align="center" prop="department" label="部门" />
|
|
|
- <el-table-column align="center" prop="cardNo" label="学号" />
|
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ prop="cardNo"
|
|
|
|
|
+ label="学号/电话号码"
|
|
|
|
|
+ />
|
|
|
<el-table-column align="center" prop="img" label="人脸照片">
|
|
<el-table-column align="center" prop="img" label="人脸照片">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<div class="img">
|
|
<div class="img">
|
|
@@ -242,6 +265,7 @@
|
|
|
<span>基本信息</span>
|
|
<span>基本信息</span>
|
|
|
</div>
|
|
</div>
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
|
|
+ :key="addMemberRuleForm.identity"
|
|
|
label="学号 :"
|
|
label="学号 :"
|
|
|
:prop="addMemberRuleForm.identity == 1 ? '' : 'serialNumber'"
|
|
:prop="addMemberRuleForm.identity == 1 ? '' : 'serialNumber'"
|
|
|
>
|
|
>
|
|
@@ -304,7 +328,7 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
label="身份证号 :"
|
|
label="身份证号 :"
|
|
|
- :prop="addMemberRuleForm.identity == 1 ? '' : 'icCard'"
|
|
|
|
|
|
|
+ :prop="addMemberRuleForm.identity == 1 ? '' : ''"
|
|
|
>
|
|
>
|
|
|
<el-input
|
|
<el-input
|
|
|
v-model="addMemberRuleForm.icCard"
|
|
v-model="addMemberRuleForm.icCard"
|
|
@@ -423,6 +447,20 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
|
|
+ label="任课班级 :"
|
|
|
|
|
+ :prop="addMemberRuleForm.identity == 1 ? '' : 'timeGroupId'"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-cascader
|
|
|
|
|
+ style="width: 500px"
|
|
|
|
|
+ placeholder="请选择任课班级"
|
|
|
|
|
+ v-model="addMemberRuleForm.teachingClass"
|
|
|
|
|
+ :options="teachingClassData"
|
|
|
|
|
+ :props="teachingClassProps"
|
|
|
|
|
+ @change="teachingClassChange"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item
|
|
|
v-if="addMemberRuleForm.identity != 3"
|
|
v-if="addMemberRuleForm.identity != 3"
|
|
|
label="时间组 :"
|
|
label="时间组 :"
|
|
|
:prop="addMemberRuleForm.identity == 1 ? '' : 'timeGroupId'"
|
|
:prop="addMemberRuleForm.identity == 1 ? '' : 'timeGroupId'"
|
|
@@ -1206,6 +1244,43 @@
|
|
|
<el-button @click="cancelMoveMember">取消</el-button>
|
|
<el-button @click="cancelMoveMember">取消</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
+ <!-- 用户导出设置 -->
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ class="exportSettings"
|
|
|
|
|
+ v-model="exportSettingsVisible"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :close-on-press-escape="false"
|
|
|
|
|
+ title="用户导出设置"
|
|
|
|
|
+ align-center
|
|
|
|
|
+ width="650"
|
|
|
|
|
+ :before-close="cancelExportSettings"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="move">
|
|
|
|
|
+ <el-transfer
|
|
|
|
|
+ v-model="exportSettingsSel"
|
|
|
|
|
+ :titles="['未选择', '已选择']"
|
|
|
|
|
+ :left-default-checked="leftChecked"
|
|
|
|
|
+ :right-default-checked="rightChecked"
|
|
|
|
|
+ :props="{
|
|
|
|
|
+ key: 'id',
|
|
|
|
|
+ label: 'name',
|
|
|
|
|
+ }"
|
|
|
|
|
+ @change="exportSettingsChange"
|
|
|
|
|
+ :data="exportSettingsData"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="options">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ color="rgba(41, 109, 227, 1)"
|
|
|
|
|
+ class="queding"
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="confirmExportSettings"
|
|
|
|
|
+ >
|
|
|
|
|
+ 确认
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button @click="cancelExportSettings">取消</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
<!-- 注销账号 -->
|
|
<!-- 注销账号 -->
|
|
|
<!-- <el-dialog
|
|
<!-- <el-dialog
|
|
|
class="closeAccount"
|
|
class="closeAccount"
|
|
@@ -1292,7 +1367,7 @@ import {
|
|
|
import COS from "cos-js-sdk-v5";
|
|
import COS from "cos-js-sdk-v5";
|
|
|
import { useRouter } from "vue-router";
|
|
import { useRouter } from "vue-router";
|
|
|
import { ElMessage, ElMessageBox, genFileId } from "element-plus";
|
|
import { ElMessage, ElMessageBox, genFileId } from "element-plus";
|
|
|
-import { Camera } from "@element-plus/icons-vue";
|
|
|
|
|
|
|
+import { Camera,Tools } from "@element-plus/icons-vue";
|
|
|
import { dayjs } from "element-plus";
|
|
import { dayjs } from "element-plus";
|
|
|
import lodash from "lodash";
|
|
import lodash from "lodash";
|
|
|
import axios from "axios";
|
|
import axios from "axios";
|
|
@@ -1453,9 +1528,10 @@ const addMemberRuleForm = reactive({
|
|
|
facePhoto: "", // 人脸照片
|
|
facePhoto: "", // 人脸照片
|
|
|
compressFacePhoto: "", // 压缩的人脸照片
|
|
compressFacePhoto: "", // 压缩的人脸照片
|
|
|
grade: "", // 年级
|
|
grade: "", // 年级
|
|
|
|
|
+ class: "", // 班级
|
|
|
|
|
+ teachingClass: "", // 任课班级
|
|
|
institute: "", // 学院
|
|
institute: "", // 学院
|
|
|
specialty: "", // 专业
|
|
specialty: "", // 专业
|
|
|
- class: "", // 班级
|
|
|
|
|
school: "", // 校区
|
|
school: "", // 校区
|
|
|
dormitory: "", // 宿舍号
|
|
dormitory: "", // 宿舍号
|
|
|
phone: "", // 手机号
|
|
phone: "", // 手机号
|
|
@@ -1482,6 +1558,90 @@ const conteactListPageCount = ref(50); // 联系人下拉一页数据条数
|
|
|
const conteactListTotalPage = ref(); // 联系人总共多少页,判断滚动到底是否还要加载
|
|
const conteactListTotalPage = ref(); // 联系人总共多少页,判断滚动到底是否还要加载
|
|
|
const conteactListInput = ref(); // 联系人下拉框中的搜索字段
|
|
const conteactListInput = ref(); // 联系人下拉框中的搜索字段
|
|
|
const conteactLoading = ref(false); // 联系人下拉框搜索时加载
|
|
const conteactLoading = ref(false); // 联系人下拉框搜索时加载
|
|
|
|
|
+const teachingClassProps = { multiple: true }; // 任课班级
|
|
|
|
|
+const teachingClassData = ref([
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 1,
|
|
|
|
|
+ label: "语文",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 2,
|
|
|
|
|
+ label: "七年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 3, label: "一班" },
|
|
|
|
|
+ { value: 4, label: "二班" },
|
|
|
|
|
+ { value: 5, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 6,
|
|
|
|
|
+ label: "八年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 7, label: "一班" },
|
|
|
|
|
+ { value: 8, label: "二班" },
|
|
|
|
|
+ { value: 9, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 10,
|
|
|
|
|
+ label: "九年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 11, label: "一班" },
|
|
|
|
|
+ { value: 12, label: "二班" },
|
|
|
|
|
+ { value: 13, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 14,
|
|
|
|
|
+ label: "数学",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 15,
|
|
|
|
|
+ label: "七年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 16, label: "一班" },
|
|
|
|
|
+ { value: 17, label: "二班" },
|
|
|
|
|
+ { value: 18, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 19,
|
|
|
|
|
+ label: "八年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 20, label: "一班" },
|
|
|
|
|
+ { value: 21, label: "二班" },
|
|
|
|
|
+ { value: 22, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 23,
|
|
|
|
|
+ label: "英语",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 24,
|
|
|
|
|
+ label: "七年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 25, label: "一班" },
|
|
|
|
|
+ { value: 26, label: "二班" },
|
|
|
|
|
+ { value: 27, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 28,
|
|
|
|
|
+ label: "八年级",
|
|
|
|
|
+ children: [
|
|
|
|
|
+ { value: 29, label: "一班" },
|
|
|
|
|
+ { value: 30, label: "二班" },
|
|
|
|
|
+ { value: 31, label: "三班" },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+]);
|
|
|
|
|
|
|
|
const upload = ref(); // 人脸照片
|
|
const upload = ref(); // 人脸照片
|
|
|
// 表单验证
|
|
// 表单验证
|
|
@@ -1650,6 +1810,15 @@ const moveTree = ref();
|
|
|
const moveSearchInput = ref(); // 移动部门中关键字搜索
|
|
const moveSearchInput = ref(); // 移动部门中关键字搜索
|
|
|
const treeSelData = reactive({ list: [] }); //
|
|
const treeSelData = reactive({ list: [] }); //
|
|
|
|
|
|
|
|
|
|
+// 用户导出设置 (-----------------------------------------------)
|
|
|
|
|
+const exportSettingsVisible = ref(false);
|
|
|
|
|
+const exportSettingsSel=ref([]) // 用户导出设置的选择数据
|
|
|
|
|
+const leftChecked=ref([]) // 左边默认选择中的数据
|
|
|
|
|
+const rightChecked=ref([]) // 右边默认选择中的数据
|
|
|
|
|
+const exportSettingsData=ref([
|
|
|
|
|
+ {name:'姓名',id:1},{name:'身份',id:2},{name:'部门',id:3},{name:'学号/电话号码',id:4},
|
|
|
|
|
+]) //
|
|
|
|
|
+
|
|
|
// 删除记录页面
|
|
// 删除记录页面
|
|
|
const delRecordDatas = ref(); // 删除记录
|
|
const delRecordDatas = ref(); // 删除记录
|
|
|
const delRecordTotal = ref(); // 删除记录数量
|
|
const delRecordTotal = ref(); // 删除记录数量
|
|
@@ -2164,7 +2333,10 @@ const addMemberClick = () => {
|
|
|
addMemberRef.value.resetFields();
|
|
addMemberRef.value.resetFields();
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
|
|
+const teachingClassChange=(val)=>{
|
|
|
|
|
+ console.log(val);
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
// 编辑成员弹窗
|
|
// 编辑成员弹窗
|
|
|
const editClick = (row) => {
|
|
const editClick = (row) => {
|
|
|
addMemberTitle.value = "编辑成员";
|
|
addMemberTitle.value = "编辑成员";
|
|
@@ -2185,7 +2357,11 @@ const editClick = (row) => {
|
|
|
addMemberRuleForm.sex = row.sexId; // 性别 女:0男:1
|
|
addMemberRuleForm.sex = row.sexId; // 性别 女:0男:1
|
|
|
addMemberRuleForm.department = row.departmentId; // 部门ID
|
|
addMemberRuleForm.department = row.departmentId; // 部门ID
|
|
|
addMemberRuleForm.facePhoto = row.headImage; // 人脸照片
|
|
addMemberRuleForm.facePhoto = row.headImage; // 人脸照片
|
|
|
- addMemberRuleForm.grade = Number(row.grade); // 年级
|
|
|
|
|
|
|
+ if (row.grade) {
|
|
|
|
|
+ addMemberRuleForm.grade = Number(row.grade); // 年级
|
|
|
|
|
+ } else {
|
|
|
|
|
+ addMemberRuleForm.grade = "";
|
|
|
|
|
+ }
|
|
|
nextTick(() => {
|
|
nextTick(() => {
|
|
|
classsList();
|
|
classsList();
|
|
|
});
|
|
});
|
|
@@ -3141,6 +3317,26 @@ const cancelTreeSel = (i) => {
|
|
|
// moveTree.value.setCheckedKeys(arr);
|
|
// moveTree.value.setCheckedKeys(arr);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+// 用户导出设置 (----------------------------------------------------------------)
|
|
|
|
|
+const exportSettingsClick = () => {
|
|
|
|
|
+ exportSettingsVisible.value=true
|
|
|
|
|
+};
|
|
|
|
|
+const exportSettingsChange=(
|
|
|
|
|
+ value,
|
|
|
|
|
+ direction,
|
|
|
|
|
+ movedKeys
|
|
|
|
|
+) => {
|
|
|
|
|
+ console.log(exportSettingsSel.value);
|
|
|
|
|
+
|
|
|
|
|
+ console.log(value, direction, movedKeys)
|
|
|
|
|
+}
|
|
|
|
|
+const confirmExportSettings=()=>{
|
|
|
|
|
+ console.log("确定用户设置");
|
|
|
|
|
+}
|
|
|
|
|
+const cancelExportSettings=()=>{
|
|
|
|
|
+ exportSettingsVisible.value=false
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 注销账号 (--------------------------------------------------------------------)
|
|
// 注销账号 (--------------------------------------------------------------------)
|
|
|
// const closeAccountClick = () => {
|
|
// const closeAccountClick = () => {
|
|
|
// if (selectData.list.length) {
|
|
// if (selectData.list.length) {
|
|
@@ -4118,6 +4314,64 @@ onUnmounted(() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ // 用户导出设置
|
|
|
|
|
+ :deep(.exportSettings) {
|
|
|
|
|
+ // height: 600px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border-radius: 11px;
|
|
|
|
|
+
|
|
|
|
|
+ .el-dialog__header {
|
|
|
|
|
+ border-radius: 11px 11px 0 0;
|
|
|
|
|
+ background: rgba(245, 249, 255, 1);
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ height: 60px;
|
|
|
|
|
+ padding: 0 20px;
|
|
|
|
|
+ line-height: 60px;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ border-bottom: 1px solid rgba(230, 230, 230, 1);
|
|
|
|
|
+
|
|
|
|
|
+ .el-dialog__headerbtn {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .el-dialog__body {
|
|
|
|
|
+ padding: 0px 20px 20px 20px;
|
|
|
|
|
+ height: 550px;
|
|
|
|
|
+ // display: flex;
|
|
|
|
|
+ // flex-direction: column-reverse;
|
|
|
|
|
+ .move {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ .el-transfer{
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ .el-transfer-panel__body{
|
|
|
|
|
+ height: 450px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .options {
|
|
|
|
|
+ margin: 15px 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row-reverse;
|
|
|
|
|
+ .queding {
|
|
|
|
|
+ margin-left: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .option {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row-reverse;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin: 10px 0;
|
|
|
|
|
+
|
|
|
|
|
+ .queding {
|
|
|
|
|
+ margin-left: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
// 注销账号
|
|
// 注销账号
|
|
|
:deep(.closeAccount) {
|
|
:deep(.closeAccount) {
|
|
|
// height: 600px;
|
|
// height: 600px;
|