la vor 2 Jahren
Ursprung
Commit
637274e375

+ 184 - 0
src/components/stu-doc-item/index.vue

@@ -0,0 +1,184 @@
+<script setup>
+import { ref, reactive, defineProps,defineEmits ,toRef } from "vue";
+import { Plus, Calendar, Search } from "@element-plus/icons-vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+
+
+const optionRadio = ref(props.docInfo.dxxd_wxdj);
+
+const props = defineProps(['docInfo', 'd'])
+
+const emit = defineEmits(['func']);
+
+const checkedIn = ref(false);
+const chekboxShow = (val) => {
+  let objA = {
+      mark: val,
+      params:props.docInfo.dxxd_id,
+    }
+    emit('editChooseArr', objA)
+}
+
+</script>
+<template>
+  <div class="singleAll">
+    <div class="withAllShow">
+      <div class="withAllShow_left">
+        <el-checkbox v-model="checkedIn" @change="chekboxShow"></el-checkbox>
+      </div>
+      <div class="singleItem">
+        <div class="everyRow flexEveryRow">
+          <div class="mainT">咨询记录</div>
+          <div class="dataShow">日期:{{ props.docInfo.dxxd_date }}</div>
+        </div>
+        <div class="everyRow moreDetail">
+          <div class="vistorFirstShow">来访者姓名</div>
+          <div class="vistorSecondFill">{{ props.docInfo.dxxd_lfzxm }}</div>
+          <div class="vistorFirstShow">学校</div>
+          <div class="vistorSecondFill" style="width: 25%">{{ props.docInfo.dxxd_school_name }}</div>
+          <div class="vistorFirstShow">班级</div>
+          <div class="vistorSecondFill" style="width: 15%; border-right: 0">{{ props.docInfo.dxxd_class_name }}</div>
+        </div>
+        <div class="everyRow moreDetail">
+          <div class="vistorFirstShow">接访老师</div>
+          <div class="vistorSecondFill">{{ props.docInfo.dxxd_jfls }}</div>
+          <div class="vistorFirstShow">住址(选填)</div>
+          <div class="vistorSecondFill" style="width: 25%"> {{ props.docInfo.dxxd_address }} </div>
+          <div class="vistorFirstShow">电话(选填)</div>
+          <div class="vistorSecondFill" style="width: 15%; border-right: 0">{{ props.docInfo.dxxd_phone }}</div>
+        </div>
+        <div class="everyRow textAreaCont">
+          <P class="MainP">咨询缘由:</P>
+          <div class="detailShow">{{ props.docInfo.dxxd_zxyy }}</div>
+        </div>
+        <div class="everyRow textAreaCont">
+          <P class="MainP">来访者自述:</P>
+          <div class="detailShow">{{ props.docInfo.dxxd_lfzzs }}</div>
+        </div>
+        <div class="everyRow textAreaCont">
+          <P class="MainP">初步分析:</P>
+          <div class="detailShow">{{ props.docInfo.dxxd_cbfx }}</div>
+        </div>
+        <div class="everyRow textAreaCont">
+          <P class="MainP">危险等级(单选):</P>
+          <div class="detailShow">
+            <el-radio-group v-model="optionRadio" class="ml-4" :disabled="d">
+              <el-radio label="1" size="small">一般</el-radio>
+              <el-radio label="2" size="small">严重</el-radio>
+              <el-radio label="3" size="small">重大</el-radio>
+            </el-radio-group>
+          </div>
+        </div>
+        <div class="everyRow textAreaCont">
+          <P class="MainP">处理方式:</P>
+          <div class="detailShow">{{ props.docInfo.dxxd_clfs }}</div>
+        </div>
+      </div>
+    </div>
+    <div class="ZXTime">咨询时长:{{ props.docInfo.xxd_zxsc }}</div>
+  </div>
+</template>
+
+<style scoped>
+.withAllShow{
+  display: flex;
+}
+.withAllShow_left {
+  width: 2%;
+  margin-right: 1%;
+}
+.singleItem {
+  width: 97%;
+  border: 1px solid #969696;
+}
+
+.everyRow {
+  border: 1px solid #dbdbdb;
+}
+
+.flexEveryRow {
+  display: flex;
+  flex-direction: row;
+}
+
+.mainT {
+  width: 65%;
+  height: 36px;
+  line-height: 36px;
+  font-size: 16px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #000000;
+  box-sizing: border-box;
+  padding: 0 0 0 10%;
+  background: url("../assets/images/cardIcon.png") no-repeat 10% center;
+  background-size: 19px 18px;
+}
+
+.dataShow {
+  width: 35%;
+  height: 36px;
+  line-height: 36px;
+  font-size: 12px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #898989;
+}
+
+.moreDetail {
+  display: flex;
+  flex-direction: row;
+  height: 32px;
+  line-height: 32px;
+}
+
+.vistorFirstShow {
+  width: 15%;
+  font-size: 10px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #000000;
+  border-right: 1px solid #dbdbdb;
+  box-sizing: border-box;
+  padding: 0 0 0 5px;
+}
+
+.vistorSecondFill {
+  font-size:10px;
+  width: 15%;
+  border-right: 1px solid #dbdbdb;
+  box-sizing: border-box;
+  padding: 0 0 0 2px;
+}
+
+.textAreaCont {
+  height: 69px;
+  box-sizing: border-box;
+  padding-left: 3px;
+  display: flex;
+  flex-direction: column;
+}
+
+.MainP {
+  height: 15px;
+  font-size: 10px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #000000;
+}
+
+.detailShow {
+  font-size: 14px;
+  color: #969696;
+}
+
+.ZXTime {
+  height: 40px;
+  line-height: 40px;
+  font-size: 16px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #007dff;
+  margin-left:3%;
+}
+</style>

+ 182 - 0
src/pages/studoc/studoc.vue

@@ -0,0 +1,182 @@
+<script setup>
+import { ref, reactive } from "vue";
+import { Plus, Calendar, Search, Delete } from "@element-plus/icons-vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+import user from "~/store/user";
+import { useRouter } from "vue-router";
+
+const router = useRouter();
+
+const pageNum = ref(1);
+const totalNum = ref("");
+const searchValue = ref("");
+const tableData = ref("");
+const InitData = () => {
+  request({
+    url: "/dyaw/xlfw_xsda/index",
+    data: {
+      page: pageNum.value,
+      keyword: searchValue.value,
+    },
+  })
+    .then((res) => {
+      if (res.code == "1") {
+        tableData.value = res.data.page_data;
+        pageNum.value = Number(res.data.total_page);
+        totalNum.value = Number(res.data.total_rows);
+      }
+    })
+    .catch((err) => {
+      console.log(err);
+    });
+};
+InitData();
+
+//多选
+const multipleSelection = ref([]);
+const handleSelectionChange = (val) => {
+  multipleSelection.value = val;
+};
+
+
+
+//批量删除
+const batchDel = () => {
+  if (multipleSelection.value.length == 0) {
+    ElMessage({
+      showClose: true,
+      message: "请至少选择一项~",
+      type: "error",
+    });
+  } else {
+    let tempArr = [];
+    multipleSelection.value.forEach((item) => {
+      tempArr.push(item.dxx_id);
+    });
+    request({
+      url: "/dyaw/xlfw_xsda/delete",
+      data: {
+        dxx_id: tempArr.join(),
+      },
+    })
+      .then((res) => {
+        if (res.code == "1") {
+          ElMessage({
+            message: res.msg,
+            type: "success",
+          });
+          InitData();
+        }
+      })
+      .catch((err) => {
+        console.log(err);
+      });
+  }
+};
+//按钮-搜索
+const searchBtn = () => {
+  InitData();
+};
+//按钮-全部档案(跳转)
+const allFile = () => {
+  router.push("studocAll");
+};
+//表格选项-详情(跳转)
+const handlDetailClick = (item) => {
+  router.push({
+    path: "studocSingle",
+    query: {
+      userId: item.user_id,
+    },
+  });
+};
+//表格选项-删除
+const handleDel = (item) => {
+  request({
+    url: "/dyaw/xlfw_xsda/delete",
+    data: {
+      dxx_id: item.dxx_id,
+    },
+  })
+    .then((res) => {
+      if (res.code == "1") {
+        ElMessage({
+          showClose: true,
+          message: res.msg,
+          type: "success",
+        });
+        InitData();
+      }
+    })
+    .catch((err) => {
+      console.log(err);
+    });
+};
+
+//分页
+const handleCurrentChange = (val) => {
+  pageNum.value = val;
+  InitData();
+};
+</script>
+
+<template>
+  <div class="studocList">
+    <div class="allOptions">
+      <el-button type="danger" :icon="Delete" round @click="batchDel">批量删除</el-button>
+      <el-input v-model="searchValue" style="width: 10%; margin: 0 5px 0 20px" placeholder="关键词搜索" :prefix-icon="Search"
+        round />
+      <el-button type="primary" round @click="searchBtn">搜索</el-button>
+      <el-button type="primary" round @click="allFile">全部档案</el-button>
+    </div>
+    <div class="allTables">
+      <el-table ref="multipleTableRef" :data="tableData" stripe @selection-change="handleSelectionChange"
+        style="width: 100%">
+        <el-table-column type="selection" width="55" />
+        <el-table-column type="index" width="80" label="序号" />
+        <el-table-column prop="dxx_user_realname" label="姓名" />
+        <el-table-column prop="dxx_school_name" label="学校" />
+        <el-table-column prop="dxx_grade_name" label="年级" />
+        <el-table-column prop="dxx_class_name" label="班级" />
+        <el-table-column prop="dxx_zxcs" label="咨询次数" />
+        <el-table-column prop="dxx_dasl" label="档案数量" />
+        <el-table-column fixed="right" label="操作">
+          <template #default="scope">
+            <el-button link type="primary" size="small" @click="handlDetailClick(scope.row)">详情</el-button>
+            <el-button link type="primary" size="small" @click="handleDel(scope.row)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="pag">
+        <el-pagination class="pageC" background small layout=" prev, pager, next" :total="totalNum"
+          @current-change="handleCurrentChange" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.studocList {
+  background: #fff;
+  box-sizing: border-box;
+  padding: 1%;
+}
+
+.allOptions {
+  text-align: right;
+  margin-bottom: 10px;
+}
+
+.allTables {
+  margin-top: 20px;
+}
+
+.pag {
+  margin: 20px 0;
+  overflow: hidden;
+}
+
+.pageC {
+  float: right;
+}
+</style>

+ 227 - 0
src/pages/studoc/studocAll.vue

@@ -0,0 +1,227 @@
+<script setup>
+import { ref, reactive } from "vue";
+import {
+  Plus,
+  Calendar,
+  Search,
+  Delete,
+  Download,
+} from "@element-plus/icons-vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+import user from "~/store/user";
+import StuDocItem from "@/components/stu-doc-item/index.vue";
+import { useRouter } from "vue-router";
+const router = useRouter();
+
+const dataTime = ref("");
+const searchValue = ref("");
+
+const nodata = ref("");
+
+const tempParams = ref("");
+
+const allStuDocData = ref("");
+//初始化数据-档案
+const InitData = () => {
+  if (dataTime.value.length == 0) {
+    tempParams.value = "";
+  } else {
+    tempParams.value = dataTime.value[0] + " - " + dataTime.value[1];
+  }
+  request({
+    url: "/dyaw/xlfw_xsda_dajl/index",
+    data: {
+      keyword: searchValue.value,
+      dxxd_date: tempParams.value,
+    },
+  })
+    .then((res) => {
+      if (res.code == "1") {
+        allStuDocData.value = res.data.page_data;
+        if (res.data.page_data.length > 0) {
+          nodata.value = true;
+        } else {
+          nodata.value = false;
+        }
+      }
+    })
+    .catch((error) => {
+      console.log(error);
+    });
+};
+InitData();
+
+const backBtn = () => {
+  router.push("archives");
+}
+
+const disA = ref(true);
+
+//按钮-搜索
+const searchBtn = () => {
+  InitData();
+};
+
+//时间筛选
+const ChooseDate = (val) => {
+  if (val == null) {
+    //做了清空操作
+    dataTime.value = [];
+  } else {
+    let objA = val;
+    let tempArr = [];
+    for (var i = 0; i < objA.length; i++) {
+      tempArr.push(objA[i]);
+    }
+    dataTime.value = tempArr;
+  }
+  InitData();
+};
+
+//多选(删除)
+const multipleSelection = ref([]);
+const editChooseIdArr = (data) => {
+  if (data.mark) {
+    //选中
+    multipleSelection.value.push(data.params);
+  } else {
+    //取消选中
+    multipleSelection.value = multipleSelection.value.filter((x) => {
+      return x != data.params;
+    });
+  }
+};
+// 批量导出
+const batchExport = () => {
+  let tempStr = multipleSelection.value.join();
+  let downUrl =
+    window.GLOBAL_CONFIG.api +
+    "/dyaw/xlfw_xsda_dajl/index" +
+    "?" +
+    "api=xls&dxxd_id=" +
+    tempStr;
+  window.open(downUrl, "_blank");
+};
+//批量删除
+const batchDel = () => {
+  let tempStr = multipleSelection.value.join();
+  request({
+    url: "/dyaw/xlfw_xsda_dajl/delete",
+    data: {
+      dxxd_id: tempStr,
+    },
+  }).then((res) => {
+    if (res.code == "1") {
+      ElMessage({
+        showClose: true,
+        message: res.msg,
+        type: "success",
+      });
+    }
+  });
+};
+components: {
+  StuDocItem;
+}
+</script>
+
+<template>
+  <div class="studocList">
+    <div class="backOption">
+      <el-button round @click="backBtn">返回</el-button>
+    </div>
+    <div class="studocListIn">
+      <div class="optionTop">
+        <div class="optionTop_left">全部档案</div>
+        <div class="optionTop_middle">
+          <el-date-picker v-model="dataTime" type="daterange" range-separator="-" start-placeholder="开始时间"
+            end-placeholder="结束时间" value-format="YYYY-MM-DD" round @change="ChooseDate" />
+        </div>
+        <div class="optionTop_right">
+          <el-input v-model="searchValue" style="width: 30%; margin: 0 5px 0 20px" placeholder="关键字搜索"
+            :prefix-icon="Search" />
+          <el-button type="primary" round @click="searchBtn">搜索</el-button>
+          <el-button type="success" round :icon="Download" @click="batchExport">批量导出</el-button>
+          <el-button type="danger" round :icon="Delete" @click="batchDel">批量删除</el-button>
+        </div>
+      </div>
+      <div class="allDoc" v-if="nodata">
+        <div class="singlePartDoc" v-for="item in allStuDocData" :key="item.dxxd_id">
+          <div class="everyComp">
+            <StuDocItem :docInfo="item" :d="disA" @editChooseArr="editChooseIdArr" />
+          </div>
+        </div>
+      </div>
+      <div class="normalNoneData" v-else>暂无数据~</div>
+    </div>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.normalNoneData {
+  text-align: center;
+  margin-top: 10%;
+}
+
+.studocList {
+}
+.backOption{
+  text-align:right;
+}
+.studocListIn {
+  width: 100%;
+  min-height:500px;  
+  background-color: white;
+  margin-top: 10px;
+  box-sizing: border-box;
+  padding: 1% 1% 3% 1%;
+}
+
+.optionTop {
+  width: 100%;
+  display: flex;
+  flex-direction: row;
+  box-sizing: border-box;
+  padding: 0 1%;
+}
+
+.optionTop_left {
+  width: 35%;
+  font-size: 18px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #000000;
+}
+
+.optionTop_middle {
+  width: 30%;
+  text-align: right;
+}
+
+.optionTop_right {
+  width: 35%;
+  text-align: right;
+}
+
+.allDoc {
+  width: 100%;
+  display: flex;
+  flex-flow: row wrap;
+  align-content: flex-start;
+  background-color: white;
+  margin-top: 20px;
+}
+
+.singlePartDoc {
+  box-sizing: border-box;
+  background-color: white;
+  flex: 0 0 50%;
+  min-height: 50px;
+  box-sizing: border-box;
+  padding: 20px;
+}
+
+.everyComp {
+  /* border: 1px solid #969696; */
+}
+</style>

+ 192 - 0
src/pages/studoc/studocSingle.vue

@@ -0,0 +1,192 @@
+<script setup>
+import { ref, reactive } from "vue";
+import { Plus, Calendar, Search,Delete } from "@element-plus/icons-vue";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import user from '~/store/user';
+import { useRouter } from "vue-router";
+import StuDocItem from "@/components/stu-doc-item/index.vue";
+
+const router = useRouter()
+
+const transId = router.currentRoute.value.query.userId;
+
+const nodata = ref('');
+const dataTime = ref([]);
+const searchValue = ref("");
+
+const tempParams = ref("");
+
+const singleStuDocData = ref("");
+//初始化数据-档案
+const InitData = () => {
+  if (dataTime.value.length == 0) {
+    tempParams.value = '';
+  } else {
+    tempParams.value = dataTime.value[0] + " - " + dataTime.value[1];
+  }
+  request({
+    url: "/dyaw/xlfw_xsda_dajl/index",
+    data: {
+      user_id:transId,
+      keyword: searchValue.value,
+      dxxd_date:tempParams.value,
+    },
+  })
+    .then(res => {
+      if (res.code == "1") {
+        singleStuDocData.value = res.data.page_data;
+        if (res.data.page_data.length > 0) {
+          nodata.value = true;
+        } else {
+          nodata.value = false;
+        }
+        
+      }
+    })
+    .catch(error => {
+      console.log(error);
+    })
+};
+InitData();
+
+const backBtn = () => {
+  router.push("archives");
+}
+
+const disA = ref(true);
+//按钮-搜索
+const searchBtn = () => {
+  InitData();
+};
+//时间筛选
+const ChooseDate = (val) => {
+  if(val==null){//做了清空操作
+    dataTime.value = [];
+  } else {
+    let objA = val;
+    let tempArr = [];
+    for (var i = 0; i < objA.length; i++) {
+      tempArr.push(objA[i])
+  }
+    dataTime.value = tempArr;
+  }
+  InitData();
+}
+
+
+//多选
+const multipleSelection = ref([]);
+const editChooseIdArr = (data) => {
+  if (data.mark) {//选中
+    multipleSelection.value.push(data.params)
+  } else {//取消选中
+    multipleSelection.value = multipleSelection.value.filter(
+      (x)=>{
+        return x != data.params;
+      }
+    );
+  }
+}
+//批量导出
+const batchExport = () => {
+  let tempStr = multipleSelection.value.join();
+  let downUrl=RETresult.api + "/dyaw/xlfw_xsda_dajl/index"+"?" +"api=xls&dxxd_id="+tempStr
+  window.open(downUrl, "_blank");
+}
+
+components: { StuDocItem }
+</script>
+
+<template>
+  <div class="studocSingle">
+    <div class="backOption">
+      <el-button round @click="backBtn">返回</el-button>
+    </div>
+    <div class="studocSingleAll">
+      <div class="optionTop">
+      <div class="optionTop_left">详情:</div>
+      <div class="optionTop_middle">
+        <el-date-picker v-model="dataTime"  type="daterange" range-separator="-" start-placeholder="开始时间"  end-placeholder="结束时间" value-format="YYYY-MM-DD" round @change="ChooseDate" />
+      </div>
+      <div class="optionTop_right">
+        <el-input v-model="searchValue" style="width: 30%; margin: 0 5px 0 20px" placeholder="关键字搜索"
+        :prefix-icon="Search" />
+        <el-button type="primary" round  @click="searchBtn">搜索</el-button>
+        <el-button type="success" round :icon="Download" @click="batchExport" >批量导出</el-button>
+        <el-button type="danger" round :icon="Delete" @click="batchDel" >批量删除</el-button>
+      </div>
+    </div>
+      <div class="allDoc" v-if="nodata">
+      <div class="singlePartDoc" v-for="item in singleStuDocData" :key="item.dxx_id" >
+          <div class="everyComp">
+            <StuDocItem  :docInfo="item" :d="disA" @editChooseArr="editChooseIdArr" />
+          </div>
+      </div>
+    </div>
+    <div class="normalNoneData" v-else >暂无数据~</div>
+    </div>
+  </div>
+</template>
+
+
+<style lang="scss" scoped>
+.normalNoneData {
+  text-align: center;
+  margin-top: 10%;
+}
+.backOption{
+  text-align:right;
+  margin:10px 0;
+}
+.studocSingleAll{
+  min-height:500px;
+  background: #fff;
+  box-sizing: border-box;
+  padding: 1% 1% 3% 1%;
+ }
+ .fucList{
+  box-sizing:border-box;
+  padding:30px 10px;
+  text-align: right;
+}
+
+.optionTop{
+  width:100%;
+  display: flex;
+  flex-direction: row;
+  box-sizing:border-box;
+  padding: 0 1%;
+}
+.optionTop_left{
+  width: 35%;
+  font-size: 18px;
+  font-family: PingFangSC-Regular;
+  text-align: left;
+  color: #000000;
+}
+.optionTop_middle{
+  width: 30%;
+  text-align: right;
+}
+.optionTop_right{
+  width:35%;
+  text-align: right;
+}
+.allDoc{
+  width:100%;
+  display: flex;
+  flex-flow: row wrap;
+  align-content: flex-start;
+}
+.singlePartDoc{
+  box-sizing: border-box;
+  background-color: white;
+  flex: 0 0 50%;
+  min-height: 50px;
+  box-sizing: border-box;
+  padding: 20px;
+}
+.everyComp{
+  /* border: 1px solid #969696; */
+}
+</style>

+ 176 - 2
src/pages/teacher/archives.vue

@@ -1,11 +1,185 @@
 <script setup lang="ts">
+import { ref, reactive } from "vue";
+import { Plus, Calendar, Search,Delete } from "@element-plus/icons-vue";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import user from '~/store/user';
+
+import { useRouter } from "vue-router";
+
+const router = useRouter()
+
+const pageNum = ref(1);
+const totalNum = ref("");
+const searchValue = ref("");
+const tableData = ref("");
+const InitData = () => {
+  request({
+    url: "/dyaw/xlfw_xsda/index",
+    data: {
+      page: pageNum.value,
+      keyword: searchValue.value,
+    },
+  })
+    .then((res) => {
+      if (res.code == "1") {
+        tableData.value = res.data.page_data;
+        pageNum.value = Number(res.data.total_page);
+        totalNum.value = Number(res.data.total_rows);
+      }
+    })
+    .catch((err) => {
+      console.log(err);
+    });
+};
+InitData();
+
+//多选
+const multipleSelection = ref([]);
+const handleSelectionChange = (val) => {
+  multipleSelection.value = val;
+};
+
+
+
+//批量删除
+const batchDel = () => {
+  if (multipleSelection.value.length == 0) {
+    ElMessage({
+      showClose: true,
+      message: "请至少选择一项~",
+      type: "error",
+    });
+  } else {
+    let tempArr = [];
+    multipleSelection.value.forEach((item) => {
+      tempArr.push(item.dxx_id);
+    });
+    request({
+      url: "/dyaw/xlfw_xsda/delete",
+      data: {
+        dxx_id: tempArr.join(),
+      },
+    })
+      .then((res) => {
+        if (res.code == "1") {
+          ElMessage({
+            message: res.msg,
+            type: "success",
+          });
+          InitData();
+        }
+      })
+      .catch((err) => {
+        console.log(err);
+      });
+  }
+};
+//按钮-搜索
+const searchBtn = () => {
+  InitData();
+};
+//按钮-全部档案(跳转)
+const allFile = () => {
+  router.push("studocAll");
+};
+//表格选项-详情(跳转)
+const handlDetailClick = (paramsAll) => {
+  router.push({
+    path: "studocSingle",
+    query: {
+      userId: paramsAll.user_id,
+    },
+  });
+};
+//表格选项-删除
+const handleDel = (paramsAll) => {
+  request({
+    url: "/dyaw/xlfw_xsda/delete",
+    data: {
+      dxx_id: paramsAll.dxx_id,
+    },
+  })
+    .then((res) => {
+      if (res.code == "1") {
+        ElMessage({
+          showClose: true,
+          message: res.msg,
+          type: "success",
+        });
+        InitData();
+      }
+    })
+    .catch((err) => {
+      console.log(err);
+    });
+};
+
+//分页
+const handleCurrentChange = (val) => {
+  pageNum.value = val;
+  InitData();
+};
+
 
 </script>
 
 <template>
-  <div>teacher_archives</div>
+  <div class="xsda">
+    <div class="allOptions">
+      <el-button type="danger" :icon="Delete" round @click="batchDel">批量删除</el-button>
+      <el-input v-model="searchValue" style="width: 10%; margin: 0 5px 0 20px" placeholder="关键词搜索" :prefix-icon="Search"
+        round />
+      <el-button type="primary" round @click="searchBtn">搜索</el-button>
+      <el-button type="primary" round @click="allFile">全部档案</el-button>
+    </div>
+    <div class="allTables">
+      <el-table ref="multipleTableRef" :data="tableData" stripe @selection-change="handleSelectionChange"
+        style="width: 100%">
+        <el-table-column type="selection" width="55" />
+        <el-table-column type="index" width="80" label="序号" />
+        <el-table-column prop="dxx_user_realname" label="姓名" />
+        <el-table-column prop="dxx_school_name" label="学校" />
+        <el-table-column prop="dxx_grade_name" label="年级" />
+        <el-table-column prop="dxx_class_name" label="班级" />
+        <el-table-column prop="dxx_zxcs" label="咨询次数" />
+        <el-table-column prop="dxx_dasl" label="档案数量" />
+        <el-table-column fixed="right" label="操作">
+          <template #default="scope">
+            <el-button link type="primary" size="small" @click="handlDetailClick(scope.row)">详情</el-button>
+            <el-button link type="primary" size="small" @click="handleDel(scope.row)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="pag">
+        <el-pagination class="pageC" background small layout=" prev, pager, next" :total="totalNum"
+          @current-change="handleCurrentChange" />
+      </div>
+    </div>
+  </div>
 </template>
 
-<style scoped>
+<style scoped lang="scss">
+.xsda {
+  background: #fff;
+  box-sizing: border-box;
+  padding: 1%;
+}
+
+.allOptions {
+  text-align: right;
+  margin-bottom: 10px;
+}
+
+.allTables {
+  margin-top: 20px;
+}
+
+.pag {
+  margin: 20px 0;
+  overflow: hidden;
+}
 
+.pageC {
+  float: right;
+}
 </style>

+ 14 - 3
src/router/routes/teacher.ts

@@ -13,9 +13,20 @@ export default {
       component: () => import('@/pages/teacher/consult.vue')
     },
     {
-      path: 'consult',
+      path: 'archives',
       name: 'teacher_archives',
-      component: () => import('@/pages/teacher/archives.vue')
-    }
+      component: () => import('@/pages/teacher/archives.vue'),
+    },
+    {
+      path: 'studocSingle',
+      name: 'archives_studocSingle',
+      component: () => import('@/pages/studoc/studocSingle.vue')
+    },
+    {
+      path: 'studocAll',
+      name: 'archives_studocAll',
+      component: () => import('@/pages/studoc/studocAll.vue'),
+    },
+
   ]
 }