Pārlūkot izejas kodu

新增轨迹管理界面对接接口中

hzj18279462576@163.com 2 gadi atpakaļ
vecāks
revīzija
f28b57c491

+ 1 - 1
index.html

@@ -5,7 +5,7 @@
     <link
       rel="icon"
       type="image/svg+xml"
-      href="./src/assets/items/favicon.ico"
+      href="./src/assets/items/school_logo.ico"
     />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>智慧校园</title>

BIN
src/assets/items/school_logo.ico


BIN
src/assets/school-l.png


+ 223 - 166
src/views/attendanceRecord/attendanceRecord.vue

@@ -152,11 +152,11 @@
               @change="searchBtn"
               :clearable="true"
             >
-              <el-option
-                v-for="i in passTypeData"
-                :label="i.name"
-                :value="i.id"
-              >
+              <el-option label="准时" :value="0"></el-option>
+              <el-option label="迟到" :value="1"></el-option>
+              <el-option label="缺卡" :value="3"></el-option>
+              <el-option label="请假" :value="6"></el-option>
+              <el-option label="超时打卡" :value="7">
               </el-option>
             </el-select>
           </div>
@@ -165,15 +165,17 @@
             <span class="title">时间 : </span>
             <el-date-picker
               v-model="searchInput.createTime"
-              type="daterange"
+              type="datetimerange"
+              unlink-panels
+              :clearable='true'
               range-separator="-"
               start-placeholder="起始时间"
               end-placeholder="结束时间"
-              format="YYYY-MM-DD"
-              value-format="YYYY-MM-DD"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
               :prefix-icon="Calendar"
               placeholder="请选择日期"
-              style="width: 280px"
+              style="width: 350px"
               @change="searchBtn"
             />
           </div>
@@ -184,9 +186,16 @@
             type="primary"
             color="rgba(0, 97, 255, 1)"
             plain
-            @click="addClick"
+            @click="importExcel"
             >记录导出</el-button
           >
+          <el-button
+            type="primary"
+            color="rgba(0, 97, 255, 1)"
+            plain
+            @click="editClick"
+            >推送人设置</el-button
+          >
         </div>
       </div>
       <div class="footer" v-loading="loading">
@@ -208,14 +217,29 @@
             width="80"
           />
           <el-table-column align="center" prop="name" label="姓名" />
-          <el-table-column align="center" prop="grade" label="年级" />
-          <el-table-column align="center" prop="subjectStr" label="班级" />
-          <el-table-column align="center" prop="schoolClass" label="学号" />
-          <el-table-column align="center" prop="cardNo" label="图像" />
-          <el-table-column align="center" prop="examTypeStr" label="日期" />
-          <el-table-column align="center" prop="score" label="班次" />
-          <el-table-column align="center" prop="score" label="打卡时间" />
-          <el-table-column align="center" prop="score" label="状态" />
+          <el-table-column align="center" prop="gradeName" label="年级" />
+          <el-table-column align="center" prop="className" label="班级" />
+          <el-table-column align="center" prop="cardNo" label="学号" />
+          <el-table-column align="center" prop="cardNo" label="图像">
+            <template #default={row}>
+              <img @click="imgClick(row.headImage)" :src="row.headImage" style="width:60px;height:60px"/>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="打卡时间">
+            <template #default={row}>
+              <span v-if="row.status==6">{{row.initiateTime}}</span>
+              <span v-else>{{row.attendTime}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="score" label="状态" >
+            <template #default={row}>
+              <span v-if="row.status==0">准时</span>
+              <span v-if="row.status==1">迟到</span>
+              <span v-if="row.status==3">缺卡</span>
+              <span v-if="row.status==6">请假</span>
+              <span v-if="row.status==7">超时打卡</span>
+            </template>
+          </el-table-column>
           <!-- <el-table-column align="center" prop="status" label="操作">
             <template #default="scope">
               <div class="look" @click="editClick(scope.row)">编辑</div>
@@ -238,132 +262,52 @@
           @update:current-page="handleCurrentChange"
         />
       </div>
-    </div>
-    <!-- <div class="scrollId" v-if="recordType == 2">
-      <div class="middle">
-        <div class="filter">
-          <div class="condition">
-            <el-input
-              :clearable="true"
-              @blur="searchBtn"
-              @clear="searchBtn"
-              v-model.trim="searchInput.keyWord"
-              class="sel"
-              placeholder="请输入姓名或工号"
-            />
-          </div>
-          <el-button
-            color="rgba(0, 97, 255, 1)"
-            type="primary"
-            class="search"
-            @click="searchBtn"
-          >
-            查询</el-button
-          >
-          <div class="condition">
-            <span class="title">部门 : </span>
-            <el-select
-              v-model="searchInput.department"
-              placeholder="请选择部门"
-              style="width: 160px"
-              @change="searchBtn"
-              :clearable="true"
-            >
-              <el-option
-                v-for="i in departmentData"
-                :label="i.name"
-                :value="i.id"
-              />
-            </el-select>
-          </div>
-          <div class="condition">
-            <span class="title">状态 : </span>
-            <el-select
-              v-model="searchInput.passType"
-              placeholder="请选择状态"
-              style="width: 160px"
-              @change="searchBtn"
-              :clearable="true"
-            >
-              <el-option
-                v-for="i in passTypeData"
-                :label="i.name"
-                :value="i.id"
-              >
-              </el-option>
-            </el-select>
-          </div>
-          <div class="condition">
-            <span class="title">时间 : </span>
-            <el-date-picker
-              v-model="searchInput.createTime"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="起始时间"
-              end-placeholder="结束时间"
-              format="YYYY-MM-DD"
-              value-format="YYYY-MM-DD"
-              :prefix-icon="Calendar"
-              placeholder="请选择日期"
-              style="width: 280px"
-              @change="searchBtn"
-            />
-          </div>
+
+      <!-- 推送人设置 -->
+      <el-dialog
+        class="editDialog"
+        v-model="editVisible"
+        :close-on-click-modal="false"
+        :close-on-press-escape="false"
+        title="推送人设置"
+        align-center
+        width="500"
+        :before-close="editCancel"
+      >
+        <div class="switch">
+          <p>按照身份推送 :</p>
+          <el-checkbox v-model="editChecked1" label="家长" :true-value="1" :false-value="2" size="large" />
+          <el-checkbox v-model="editChecked2" label="班主任" :true-value="1" :false-value="2" size="large" />
         </div>
-        <div class="gongneng">
+        <div class="options">
           <el-button
+            color="rgba(41, 109, 227, 1)"
+            class="queding"
             type="primary"
-            color="rgba(0, 97, 255, 1)"
-            plain
-            @click="addClick"
-            >记录导出</el-button
+            @click="editConfirm"
           >
+            确认
+          </el-button>
+          <el-button @click="editCancel">取消</el-button>
         </div>
-      </div>
-      <div class="footer" v-loading="loading">
-        <el-table
-          :row-class-name="tableRowClassName"
-          :data="tableData.list"
-          @selection-change="handleSelectionChange"
-          style="width: 100%"
-          :header-cell-style="{
-            background: 'rgba(240, 243, 247, 1)',
-            height: '50px',
-            border: 0,
-          }"
-        >
-          <el-table-column
-            align="center"
-            type="index"
-            label="序号"
-            width="80"
-          />
-          <el-table-column align="center" prop="name" label="姓名" />
-          <el-table-column align="center" prop="grade" label="考勤组" />
-          <el-table-column align="center" prop="subjectStr" label="部门" />
-          <el-table-column align="center" prop="schoolClass" label="工号" />
-          <el-table-column align="center" prop="cardNo" label="职位" />
-          <el-table-column align="center" prop="examTypeStr" label="日期" />
-          <el-table-column align="center" prop="score" label="班次" />
-          <el-table-column align="center" prop="score" label="打卡时间" />
-          <el-table-column align="center" prop="score" label="状态" />
-        </el-table>
-      </div>
-
-      <div class="pageSize">
-        <span></span>
-        <el-pagination
-          background
-          :current-page="teacherData.currentPage"
-          :page-sizes="[10, 20, 50, 100]"
-          :page-size="teacherData.pageSize"
-          layout="total, prev, pager, next, jumper, slot"
-          :total="teacherData.total"
-          @update:page-size="teacherSizeChange"
-          @update:current-page="teacherPageChange"
-        />
-      </div>
-    </div> -->
+      </el-dialog>
+
+      <div class="bgImg" v-if="bgImg">
+      <el-carousel
+        @click="bgImg = false"
+        ref="bgImgs"
+        indicator-position
+        arrow="always"
+        :autoplay="false"
+        trigger
+      >
+        <el-carousel-item  >
+          <img :src="showImg" alt="" />
+        </el-carousel-item>
+      </el-carousel>
+    </div>
+    </div>
+   
   </div>
 </template>
 
@@ -420,18 +364,12 @@ const studentData = reactive({
 });
 const bgImg = ref(false);
 const showImg=ref('')
-// const recordType = ref(2); // 判断是学生还是教师界面
-
-// 教师(------------------------------------------------------------)
-// const teacherData = reactive({
-//   keyWord: ref(''),
-//   department: ref(''), // 部门
-//   passType: ref(''), // 通行状态
-//   createTime: ref(''), // 时间
-//   currentPage: ref(1), // 当前页
-//   pageSize: ref(10),
-//   total: ref(5), // 当前总数
-// });
+
+// 推送人设置
+const editVisible=ref(false)
+const editId=ref()
+const editChecked1=ref(2)// 家长
+const editChecked2=ref(2)// 班主任
 
 // 年级数据下拉
 const adminClassDataList = async () => {
@@ -545,7 +483,7 @@ const getList = async () => {
     },
     params: data,
   });
-  console.log(res, JSON.parse(eds.decryptDes(res.data.data)), "成绩分页数据");
+  console.log(res, JSON.parse(eds.decryptDes(res.data.data)), "考勤记录");
   if (res.data.code == 200) {
     loading.value = false;
     tableData.list = JSON.parse(eds.decryptDes(res.data.data)).list;
@@ -566,22 +504,76 @@ const searchBtn = lodash.debounce(async () => {
   getList();
 }, 300);
 
+// 推送人设置
+const editClick =async () =>{
+  editVisible.value=true
+  let res = await axios({
+    method: "get",
+    url: api.value + "/wanzai/api/smartPushConfig/list",
+    headers: {
+      token: sessionStorage.getItem("token"),
+      user_head: sessionStorage.getItem("userhead"),
+    },
+  });
+  console.log(res, JSON.parse(eds.decryptDes(res.data.data)), "推送配置");
+  if (res.data.code == 200) {
+    let data = JSON.parse(eds.decryptDes(res.data.data))
+    editId.value=data.id
+    editChecked1.value=data.parentsPush
+    editChecked2.value=data.chargeTeacherPush
+  } 
+}
+const editConfirm=async ()=>{
+  let data = {
+    id: editId.value,
+    parentsPush:  editChecked1.value,
+    chargeTeacherPush: editChecked2.value, // 用户名称
+  };
+  let res = await axios({
+    method: "post",
+    url: api.value + "/wanzai/api/smartPushConfig/update",
+    headers: {
+      token: sessionStorage.getItem("token"),
+      user_head: sessionStorage.getItem("userhead"),
+    },
+    data: data,
+  });
+  console.log(res, "确定推送");
+  if (res.data.code == 200) {
+    editVisible.value=false
+    ElMessage({
+      type: "success",
+      showClose: true,
+      message: res.data.message,
+      center: true,
+    });
+  } else {
+    ElMessage({
+      type: "error",
+      showClose: true,
+      message: res.data.message,
+      center: true,
+    });
+  }
+}
+const editCancel=()=>{
+  editVisible.value=false
+}
 
 //导出功能 (-----------------------------------------------------------------)
 const importExcel = async () => {
   let data = {
-    name: searchInput.keyWord,
-    semester: searchInput.semester,
-    grade: searchInput.grade,
-    schoolClass: searchInput.class,
-    subject: searchInput.subject,
-    examType: searchInput.examType,
-    MinScore: searchInput.gradeLow,
-    MaxScore: searchInput.gradeHigh,
+    currentPage: studentData.currentPage,
+    pageCount: studentData.pageSize,
+    keyWord: searchInput.keyWord, // 用户名称
+    gradeId:searchInput.grade,
+    classId:searchInput.class,
+    openType:searchInput.openType,// 开门方式
+    resultStatus:searchInput.resultStatus,// 通行状态
   };
   let res = await axios({
     method: "get",
-    url: api.value + "/wanzai/api/smartScore/smartUserExport",
+    url: api.value + "/wanzai/api/smartAttendance/queryPageExport",
     headers: {
       token: sessionStorage.getItem("token"),
       user_head: sessionStorage.getItem("userhead"),
@@ -591,7 +583,7 @@ const importExcel = async () => {
   });
   console.log(res, "导出用户");
   if (res.status == 200) {
-    let name = `成绩表信息`;
+    let name = `考勤记录数据`;
     var content = res.data;
     var datas = new Blob([content]);
     var downloadUrl = window.URL.createObjectURL(datas);
@@ -634,11 +626,13 @@ const handleCurrentChange = (value) => {
   studentData.currentPage = value;
   getList();
 };
+// 查看图片
+const imgClick = (row) => {
+  console.log(row);
+  bgImg.value = true;
+  showImg.value = row;
+};
 
-const teacherSizeChange=(value)=>{
-  teacherData.pageSize=value
-  getList()
-}
 // 分页
 const teacherPageChange = (value) => {
   teacherData.currentPage = value;
@@ -938,6 +932,69 @@ onUnmounted(() => {
         }
       }
     }
+    :deep(.editDialog) {
+    //   height: 420px;
+    border-radius: 11px;
+    .el-dialog__header {
+      border-radius: 11px 11px 0 0;
+      background: rgba(237, 241, 245, 1);
+      font-weight: 600;
+      margin: 0;
+      .el-dialog__headerbtn {
+        outline: none;
+      }
+    }
+    .el-dialog__body {
+      padding: 0 30px;
+      height: 300px;
+      .switch {
+        margin: 10px 0;
+        p {
+          font-size: 17px;
+          margin-right: 10px;
+        }
+      }
+      .attention {
+        color: rgb(238, 190, 119);
+      }
+      .options {
+        margin: 160px 20px 20px 0;
+        width: 100%;
+        display: flex;
+        flex-direction: row-reverse;
+        .queding {
+          color: #fff;
+          margin-left: 15px;
+        }
+      }
+    }
+  }
+    .bgImg {
+    position: absolute;
+    left: 0;
+    top: 0;
+    z-index: 99999999;
+    width: 100%;
+    height: 100%;
+    background-color: rgba(255, 255, 255, 0.8);
+    :deep(.el-carousel__arrow){
+      display:none;
+    }
+    // border-radius: 50px;
+    :deep(.el-carousel__container) {
+      width: 100%;
+      height: calc(100vh);
+
+      .el-carousel__item {
+        display: flex;
+        justify-content: center;
+
+        img {
+          height: 100%;
+        }
+      }
+    }
+  }
   }
 }
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2124 - 0
src/views/caller/caller copy.vue


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 437 - 351
src/views/caller/caller.vue


+ 1 - 1
src/views/energy/energy.vue

@@ -17,7 +17,7 @@
                   <el-statistic title="" :value="getWaterTj" />
                 </el-col> -->
                 <span class="unit">{{ getElcTj }}</span>
-                <div class="units">kw.h</div>
+                <div class="units">kw·h</div>
               </div>
             </div>
             <div class="quantity">

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 736 - 1126
src/views/faceRecord/faceRecord.vue


+ 6 - 2
src/views/home/home.vue

@@ -337,9 +337,13 @@ const applyLink = (row) => {
   let charToCheck = "http";
 
   if (str.includes(charToCheck)) {
-    window.open(row.urlLink);
+    if(row.descript=='领导驾驶舱'){
+      window.open(`${row.urlLink}?token=${sessionStorage.getItem("token")}`);
+    }else{
+      window.open(row.urlLink)
+    }
   } else {
-    window.open(`https://${row.urlLink}`);
+    window.open(`https://${row.urlLink}?token=${sessionStorage.getItem("token")}`);
   }
 };
 

+ 3 - 1
src/views/leave/leave.vue

@@ -868,7 +868,9 @@ onUnmounted(() => {
     width: 100%;
     height: 100%;
     background-color: rgba(255, 255, 255, 0.8);
-
+    :deep(.el-carousel__arrow){
+      display:none;
+    }
     // border-radius: 50px;
     :deep(.el-carousel__container) {
       width: 100%;

+ 43 - 18
src/views/student/student.vue

@@ -272,7 +272,7 @@
             >
               <el-option
                 :label="i.name"
-                :value="i.name"
+                :value="`${i.name}-${i.id}`"
                 v-for="i in gradeData"
               />
             </el-select>
@@ -285,7 +285,7 @@
             >
               <el-option
                 :label="i.name"
-                :value="i.name"
+                :value="`${i.name}-${i.id}`"
                 v-for="i in semesterData"
               />
             </el-select>
@@ -296,10 +296,11 @@
               placeholder="请先选择考试类型"
               multiple
               style="width: 400px"
+              @change="typeChange"
             >
               <el-option
                 :label="i.name"
-                :value="i.name"
+                :value="`${i.name}-${i.id}`"
                 v-for="i in examTypeData"
               />
             </el-select>
@@ -603,10 +604,12 @@ const getList = async () => {
   let data = {
     name: searchInput.keyWord,
     term: searchInput.semester,
-    gradeName: searchInput.grade.split("-")[0],
     className: searchInput.class,
     // scoreLevel: searchInput.appraisal,
   };
+  if(searchInput.grade){
+    data.gradeName=searchInput.grade.split("-")[0] 
+  }
   let res = await axios({
     method: "post",
     url: api.value + "/wanzai/api/smartEvaluateStudent/queryEvaluateStudent",
@@ -680,8 +683,8 @@ const classDataList = async () => {
 // 改变年级选择
 const yearClassChange = async (value) => {
   console.log(value);
-  let arr = value.split("-");
   if (value) {
+    let arr = value.split("-");
     classInfoList(arr[1]);
   } else {
     classsData.value = [];
@@ -725,12 +728,12 @@ const assessType = async (value) => {
     },
     params: data,
   });
-  // console.log(
-  //   examType,
-  //   JSON.parse(eds.decryptDes(examType.data.data)),
-  //   "考试类型下拉数据"
-  // );
-  console.log(examType, "考试类型下拉数据");
+  console.log(
+    examType,
+    JSON.parse(eds.decryptDes(examType.data.data)),
+    "考试类型下拉数据"
+  );
+  // console.log(examType, "考试类型下拉数据");
   if (examType.data.code == 200) {
     examTypeData.value = JSON.parse(eds.decryptDes(examType.data.data));
     // ElMessage({
@@ -928,13 +931,18 @@ const criterionClick = () => {
 const assessgradeChange = (value) => {
   let id = "";
   gradeData.value.forEach((item) => {
-    if (item.name == value) {
+    if (item.name == value.split('-')[0]) {
       id = item.id;
     }
   });
   assessType(id);
   assessRuleForm.type = [];
 };
+// 改变考试类型
+const typeChange=(value)=>{
+  console.log(value);
+  
+}
 // 等级标准数据
 const criterionDataList = async () => {
   let res = await axios({
@@ -969,12 +977,25 @@ const confirmAssess = (formEl) => {
       });
       let data = {
         smartSubjectTemplate: {
-          grade: assessRuleForm.grade,
-          term: assessRuleForm.term,
-          examType: assessRuleForm.type.join(","),
+          grade: assessRuleForm.grade.split('-')[0],
+          gradeId: assessRuleForm.grade.split('-')[1],
+          term: assessRuleForm.term.split('-')[0],
+          termId: assessRuleForm.term.split('-')[1],
         },
         ruleList: arr,
       };
+      let type=[]
+      let types=[];
+      assessRuleForm.type.forEach(item=>{
+        type.push(item.split("-")[1])
+        types.push({
+          name:item.split("-")[0],
+          id:item.split("-")[1]
+        })
+      })
+      data.smartSubjectTemplate.examType=type.join(',')
+      data.smartSubjectTemplate.examTypes=types
+
       console.log(data);
       if (assessRuleForm.id) {
         data.smartSubjectTemplate.id = assessRuleForm.id;
@@ -1058,10 +1079,14 @@ const criterionEditClick = async (row) => {
     }
   });
   assessType(id);
-  assessRuleForm.grade = row.grade;
-  assessRuleForm.term = row.term;
+  assessRuleForm.grade = `${row.grade}-${row.gradeId}`;
+  assessRuleForm.term = `${row.term}-${row.termId}`;
   assessRuleForm.id = row.id;
-  assessRuleForm.type = row.examType.split(",");
+  let arr=[]
+  row.examTypes.forEach(i=>{
+    arr.push(`${i.name}-${i.id}`)
+  })
+  assessRuleForm.type = arr;
   // 编辑时的等级表格数据
   let formData = new FormData();
   formData.append("id", row.id);

+ 6 - 3
src/views/teacher/teacher.vue

@@ -52,7 +52,7 @@
               <el-option
                 v-for="i in gradeData"
                 :label="i.name"
-                :value="`${i.name}-${i.id}`"
+                :value="i.id"
               >
               </el-option>
             </el-select>
@@ -767,9 +767,8 @@ const subjectDataList = async (value) => {
 // 改变年级选择
 const yearClassChange = async (value) => {
   console.log(value);
-  let arr = value.split("-");
   if (value) {
-    subjectDataList(arr[1]);
+    subjectDataList(value);
   } else {
     subjectData.value = [];
     classsData.value = [];
@@ -803,6 +802,10 @@ const getList = async () => {
     };
     let data = {
       name: searchInput.keyWord,
+      term:searchInput.semester,
+      gradeName:searchInput.grade,
+      className:searchInput.class,
+      subject:searchInput.subject,
     };
     let res = await axios({
       method: "post",

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 642 - 623
src/views/trackSearch/trackSearch.vue


+ 5 - 2
src/views/trafficRecord/trafficRecord.vue

@@ -141,6 +141,7 @@
             <el-date-picker
               v-model="searchInput.createTime"
               type="datetimerange"
+              unlink-panels
               :clearable='false'
               range-separator="-"
               start-placeholder="起始时间"
@@ -576,7 +577,7 @@ const importExcel = async () => {
   });
   console.log(res, "导出用户");
   if (res.status == 200) {
-    let name = `成绩表信息`;
+    let name = `通行记录数据`;
     var content = res.data;
     var datas = new Blob([content]);
     var downloadUrl = window.URL.createObjectURL(datas);
@@ -991,7 +992,9 @@ onUnmounted(() => {
     width: 100%;
     height: 100%;
     background-color: rgba(255, 255, 255, 0.8);
-
+    :deep(.el-carousel__arrow){
+      display:none;
+    }
     // border-radius: 50px;
     :deep(.el-carousel__container) {
       width: 100%;

+ 136 - 125
src/views/user/user.vue

@@ -139,8 +139,8 @@
               plain
               >勾选删除</el-button
             >
-           
-              <!-- <el-button-group class="ml-4">
+
+            <!-- <el-button-group class="ml-4">
                 <el-tooltip
               class="box-item"
               effect="dark"
@@ -158,26 +158,27 @@
           </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-tooltip
+
+            <el-tooltip
               class="box-item"
               effect="dark"
               content="根据当前选中的部门、查询中的用户姓名进行导出"
               placement="top-start"
-            > <el-button
+            >
+              <el-button
                 type="primary"
                 color="rgba(0, 97, 255, 1)"
                 @click="exportSettingsClick"
                 :disabled="isManage != 1"
                 plain
-                style="margin-right: 0;"
+                style="margin-right: 0"
                 >导出用户</el-button
               >
-          </el-tooltip>
-          <!-- <el-button-group class="ml-4">
+            </el-tooltip>
+            <!-- <el-button-group class="ml-4">
                 <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)"
@@ -200,14 +201,13 @@
               border: 0,
             }"
           >
+            <el-table-column align="center" type="selection" width="80" />
+            <el-table-column align="center" prop="name" label="姓名" />
             <el-table-column
               align="center"
-              type="selection"
-              
-              width="80"
+              prop="timeGroupName"
+              label="时间组"
             />
-            <el-table-column align="center" prop="name" label="姓名" />
-            <el-table-column align="center" prop="timeGroupName" label="时间组" />
             <el-table-column align="center" prop="identity" label="身份" />
             <el-table-column align="center" prop="department" label="部门" />
             <el-table-column
@@ -320,7 +320,12 @@
             <el-form-item
               :key="addMemberRuleForm.identity"
               label="学号 :"
-              :prop="(addMemberRuleForm.identity == 1 || addMemberRuleForm.identity == 14) ? '' : 'serialNumber'"
+              :prop="
+                addMemberRuleForm.identity == 1 ||
+                addMemberRuleForm.identity == 14
+                  ? ''
+                  : 'serialNumber'
+              "
             >
               <el-input
                 :disabled="addMemberTitle == '编辑成员' ? true : false"
@@ -338,7 +343,7 @@
                 style="width: 500px"
               />
             </el-form-item>
-         
+
             <el-form-item
               label="身份证号 :"
               :prop="addMemberRuleForm.identity == 1 ? '' : ''"
@@ -472,7 +477,7 @@
                 :props="teachingClassProps"
                 @change="teachingClassChange"
                 clearable
-                ref='teachingClassRef'
+                ref="teachingClassRef"
               />
             </el-form-item>
             <el-form-item
@@ -1259,8 +1264,8 @@
         <el-button @click="cancelMoveMember">取消</el-button>
       </div>
     </el-dialog>
-     <!-- 用户导出设置 -->
-     <el-dialog
+    <!-- 用户导出设置 -->
+    <el-dialog
       class="exportSettings"
       v-model="exportSettingsVisible"
       :close-on-click-modal="false"
@@ -1272,17 +1277,17 @@
     >
       <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"
-       />
+          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
@@ -1382,7 +1387,7 @@ import {
 import COS from "cos-js-sdk-v5";
 import { useRouter } from "vue-router";
 import { ElMessage, ElMessageBox, genFileId } from "element-plus";
-import { Camera,Tools } from "@element-plus/icons-vue";
+import { Camera, Tools } from "@element-plus/icons-vue";
 import { dayjs } from "element-plus";
 import lodash from "lodash";
 import axios from "axios";
@@ -1573,8 +1578,13 @@ const conteactListPageCount = ref(50); // 联系人下拉一页数据条数
 const conteactListTotalPage = ref(); // 联系人总共多少页,判断滚动到底是否还要加载
 const conteactListInput = ref(); // 联系人下拉框中的搜索字段
 const conteactLoading = ref(false); // 联系人下拉框搜索时加载
-const teachingClassRef=ref()
-const teachingClassProps = { multiple: true,label:'name',value:'id',children:'children' }; // 任课班级
+const teachingClassRef = ref();
+const teachingClassProps = {
+  multiple: true,
+  label: "name",
+  value: "id",
+  children: "children",
+}; // 任课班级
 const teachingClassData = ref([
   {
     value: 1,
@@ -1662,8 +1672,7 @@ const teachingClassData = ref([
 const upload = ref(); // 人脸照片
 // 表单验证
 const checkPhone = (rule, value, callback) => {
-  var reg =
-  /^[1][0-9]{10}$/;
+  var reg = /^[1][0-9]{10}$/;
   if (!reg.test(value)) {
     callback(new Error("手机号格式不对"));
   } else {
@@ -1693,7 +1702,9 @@ const addMemberRules = reactive({
   // institute: [{ required: true, message: "学院不能为空", trigger: "blur" }],
   // specialty: [{ required: true, message: "专业不能为空", trigger: "blur" }],
   class: [{ required: true, message: "班级不能为空", trigger: "change" }],
-  teachingClass:[{ required: true, message: "任课班级不能为空", trigger: "change" }],
+  teachingClass: [
+    { required: true, message: "任课班级不能为空", trigger: "change" },
+  ],
   // school: [{ required: true, message: "校区不能为空", trigger: "blur" }],
   // dormitory: [{ required: true, message: "宿舍号不能为空", trigger: "blur" }],
   phone: [
@@ -1829,12 +1840,15 @@ 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 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(); // 删除记录
@@ -1880,11 +1894,11 @@ const getList = async () => {
     params: data,
   });
   // console.log(res);
-  console.log(res,JSON.parse(eds.decryptDes(res.data.data)), "用户列表");
-  
+  console.log(res, JSON.parse(eds.decryptDes(res.data.data)), "用户列表");
+
   if (res.data.code == 200) {
     loading.value = false;
-    let datas=JSON.parse(eds.decryptDes(res.data.data))
+    let datas = JSON.parse(eds.decryptDes(res.data.data));
     tableData.list = datas.list;
     total.value = datas.totalCount;
   } else {
@@ -2209,7 +2223,7 @@ const teachingClassList = async () => {
     },
     // params: data,
   });
-  console.log(post,"任课班级数据");
+  console.log(post, "任课班级数据");
   if (post.data.code == 200) {
     teachingClassData.value = post.data.data;
   } else {
@@ -2370,11 +2384,10 @@ const addMemberClick = () => {
     addMemberRef.value.resetFields();
   });
 };
-const teachingClassChange=(val)=>{
+const teachingClassChange = (val) => {
   console.log(val);
   console.log(teachingClassRef.value.getCheckedNodes());
-  
-}
+};
 // 编辑成员弹窗
 const editClick = (row) => {
   addMemberTitle.value = "编辑成员";
@@ -2403,7 +2416,7 @@ const editClick = (row) => {
   nextTick(() => {
     classsList();
   });
-  
+
   addMemberRuleForm.institute = row.college; // 学院
   addMemberRuleForm.specialty = row.speciality; // 专业
   addMemberRuleForm.class = row.schoolClass; // 班级
@@ -2420,8 +2433,8 @@ const editClick = (row) => {
   } else {
     addMemberRuleForm.contact = [];
   }
-  if(row.subjectVos){
-    let idArr=[]
+  if (row.subjectVos) {
+    let idArr = [];
     // row.subjectVos.forEach(item=>{
     //   item.children.forEach(is=>{
     //     is.children.forEach(i=>{
@@ -2430,16 +2443,16 @@ const editClick = (row) => {
     //   })
     // })
     // console.log(idArr,"任课班级数据重组");
-    row.subjectVos.forEach(item=>{
-      idArr.push(item.ids)
-    })
-    console.log(idArr,'任课班级数据重组');
-    
-    addMemberRuleForm.teachingClass=idArr
-  }else{
-    addMemberRuleForm.teachingClass=[]
+    row.subjectVos.forEach((item) => {
+      idArr.push(item.ids);
+    });
+    console.log(idArr, "任课班级数据重组");
+
+    addMemberRuleForm.teachingClass = idArr;
+  } else {
+    addMemberRuleForm.teachingClass = [];
   }
-  
+
   addMemberRuleForm.jobName = row.title; // 职称
   addMemberRuleForm.houseAddress = row.address; // 家庭住址
   addMemberRuleForm.nation = row.nation; // 民族
@@ -2460,14 +2473,14 @@ const confirmAddMember = async (formEl) => {
         arr.push(index[1]);
       });
       console.log(arr);
-// 任课班级
-      let teachingClassArr=[]
-      if(addMemberRuleForm.teachingClass){
-        addMemberRuleForm.teachingClass.forEach(item=>{
-          teachingClassArr.push({ids:item})
-        })
+      // 任课班级
+      let teachingClassArr = [];
+      if (addMemberRuleForm.teachingClass) {
+        addMemberRuleForm.teachingClass.forEach((item) => {
+          teachingClassArr.push({ ids: item });
+        });
       }
-      
+
       let data = {
         cardNo: addMemberRuleForm.serialNumber, // 学号
         name: addMemberRuleForm.name, // 姓名
@@ -2495,28 +2508,28 @@ const confirmAddMember = async (formEl) => {
       let res = "";
       if (addMemberRuleForm.id) {
         data.id = addMemberRuleForm.id;
-        data.usr = teachingClassArr,// 任课班级
-        res = await axios({
-          method: "post",
-          url: api.value + "/wanzai/api/smartUser/updateSmartUserById",
-          headers: {
-            token: sessionStorage.getItem("token"),
-            user_head: sessionStorage.getItem("userhead"),
-          },
-          data: data,
-        });
+        (data.usr = teachingClassArr), // 任课班级
+          (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 {
-        data.isr = teachingClassArr,// 任课班级
-        res = await axios({
-          method: "post",
-          url: api.value + "/wanzai/api/smartUser/insertSmartUser",
-          headers: {
-            token: sessionStorage.getItem("token"),
-            user_head: sessionStorage.getItem("userhead"),
-          },
-          data: data,
-        });
+        (data.isr = teachingClassArr), // 任课班级
+          (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, "新增用户");
       }
 
@@ -2858,7 +2871,7 @@ const delRecordClose = () => {
 
 // 批量导入模板下载 (-------------------------------------------------)
 // 用户导出设置  数据
-const importSystemList=async ()=>{
+const importSystemList = async () => {
   let data = {
     identityId: addMemberRuleForm.identity,
   };
@@ -2871,19 +2884,19 @@ const importSystemList=async ()=>{
     },
     params: data,
   });
-  console.log(post,'用户导出设置  数据');
+  console.log(post, "用户导出设置  数据");
   if (post.data.code == 200) {
     exportSettingsData.value = post.data.data;
-    let arr=[]
-    post.data.data.forEach(item=>{
-      arr.push(item.id)
-    })
-    exportSettingsSel.value=arr
+    let arr = [];
+    post.data.data.forEach((item) => {
+      arr.push(item.id);
+    });
+    exportSettingsSel.value = arr;
     console.log(exportSettingsSel.value);
   } else {
     exportSettingsData.value = [];
   }
-}
+};
 const downLoadtempAdd = async (flag) => {
   if (flag == 1) {
     let res = await axios({
@@ -3415,29 +3428,25 @@ const cancelTreeSel = (i) => {
 
 // 用户导出设置 (----------------------------------------------------------------)
 const exportSettingsClick = () => {
-  exportSettingsVisible.value=true
+  exportSettingsVisible.value = true;
 };
-const exportSettingsChange=(
-  value,
-  direction,
-  movedKeys
-) => {
+const exportSettingsChange = (value, direction, movedKeys) => {
   // console.log(exportSettingsSel.value);
-  console.log(value, direction, movedKeys)
-}
-const confirmExportSettings=async ()=>{
-  let arr=[]
-  exportSettingsData.value.forEach(item=>{
-    exportSettingsSel.value.forEach(i=>{
-      if(item.id==i){
-        arr.push(item)
+  console.log(value, direction, movedKeys);
+};
+const confirmExportSettings = async () => {
+  let arr = [];
+  exportSettingsData.value.forEach((item) => {
+    exportSettingsSel.value.forEach((i) => {
+      if (item.id == i) {
+        arr.push(item);
       }
-    })
-  })
+    });
+  });
   let data = {
     departmentId: treeNodeId.value,
     name: searchInput.keyWord,
-    gauageOutfitVos:arr
+    gauageOutfitVos: arr,
   };
   let res = await axios({
     method: "post",
@@ -3474,10 +3483,10 @@ const confirmExportSettings=async ()=>{
       center: true,
     });
   }
-}
-const cancelExportSettings=()=>{
-  exportSettingsVisible.value=false
-}
+};
+const cancelExportSettings = () => {
+  exportSettingsVisible.value = false;
+};
 
 // 注销账号 (--------------------------------------------------------------------)
 // const closeAccountClick = () => {
@@ -3633,8 +3642,8 @@ onBeforeMount(async () => {
   getDepartment(); // 左边部门树形结构
   classDataList(); // 添加成员中 获取身份数据下拉、年级数据下拉、班级数据下拉
   postList(); // 职务数据
-  teachingClassList() // 任课班级数据
-  importSystemList()// 导出设置列表
+  teachingClassList(); // 任课班级数据
+  importSystemList(); // 导出设置列表
 });
 onUnmounted(() => {
   document.removeEventListener("keyup", Enters);
@@ -4289,7 +4298,9 @@ onUnmounted(() => {
     width: 100%;
     height: 100%;
     background-color: rgba(255, 255, 255, 0.8);
-
+    :deep(.el-carousel__arrow) {
+      display: none;
+    }
     // border-radius: 50px;
     :deep(.el-carousel__container) {
       width: 100%;
@@ -4458,8 +4469,8 @@ onUnmounted(() => {
       }
     }
   }
-   // 用户导出设置
-   :deep(.exportSettings) {
+  // 用户导出设置
+  :deep(.exportSettings) {
     // height: 600px;
     overflow: hidden;
     border-radius: 11px;
@@ -4487,12 +4498,12 @@ onUnmounted(() => {
       .move {
         display: flex;
         justify-content: center;
-        .el-transfer{
+        .el-transfer {
           margin-top: 10px;
           height: 100%;
-          .el-transfer-panel__body{
+          .el-transfer-panel__body {
             height: 458px;
-            .el-checkbox-group{
+            .el-checkbox-group {
               height: 100%;
             }
           }