11wqe1 2 tháng trước cách đây
mục cha
commit
ed146523b3

+ 2 - 2
package-lock.json

@@ -1,11 +1,11 @@
 {
 {
-  "name": "userManage",
+  "name": "pblAdminTable",
   "version": "0.1.0",
   "version": "0.1.0",
   "lockfileVersion": 2,
   "lockfileVersion": 2,
   "requires": true,
   "requires": true,
   "packages": {
   "packages": {
     "": {
     "": {
-      "name": "userManage",
+      "name": "pblAdminTable",
       "version": "0.1.0",
       "version": "0.1.0",
       "dependencies": {
       "dependencies": {
         "axios": "^1.7.9",
         "axios": "^1.7.9",

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
src/assets/img/cocoFlow2.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
src/assets/img/jxzx.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
src/assets/img/jxzx2.svg


BIN
src/assets/img/root.png


+ 1 - 0
src/assets/img/school.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1743562641385" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16214" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M978.295467 849.5104v33.28H46.011733v-33.28H978.261333z m33.416533-33.211733H12.6976v99.805866H1011.712v-99.805866z" fill="#0253d7" p-id="16215"></path><path d="M512.2048 164.010667l176.196267 176.196266 9.796266 9.796267h213.6064v466.193067H112.605867V350.0032h213.6064l9.796266-9.796267 176.196267-176.196266z m0-47.0016L312.388267 316.757333H79.291733v532.821334h865.792V316.757333H712.021333l-199.7824-199.7824z" fill="#0253d7" p-id="16216"></path><path d="M445.610667 616.413867v199.7824h-66.594134V616.448h66.56z m33.1776-33.314134h-133.188267v266.410667h133.188267v-266.410667z m166.6048 33.314134v199.7824h-66.594134V616.448h66.594134z m33.314133-33.314134H545.450667v266.410667h133.2224v-266.410667zM245.76 449.911467v66.696533H179.2V449.877333h66.594133z m33.314133-33.314134H145.885867v133.188267h133.2224v-133.188267z m-33.314133 233.130667v66.56H179.2v-66.56h66.594133z m33.314133-33.314133H145.885867v133.188266h133.2224v-133.188266z m565.998934-166.5024v66.696533h-66.594134V449.877333h66.56z m33.3824-33.314134h-133.188267v133.188267h133.188267v-133.188267z m-33.3824 233.130667v66.56h-66.594134v-66.56h66.56z m33.3824-33.314133h-133.188267v133.188266h133.188267v-133.188266zM512.2048 283.409067c36.693333 0 66.594133 29.9008 66.594133 66.56a66.696533 66.696533 0 0 1-66.594133 66.628266 66.628267 66.628267 0 0 1 0-133.188266z m0-33.314134a99.874133 99.874133 0 0 0-99.908267 99.908267 99.874133 99.874133 0 0 0 99.908267 99.908267c55.1936 0 96.597333-44.714667 96.597333-99.908267s-41.403733-99.908267-96.597333-99.908267z" fill="#0253d7" p-id="16217"></path></svg>

+ 106 - 0
src/components/botPage.vue

@@ -0,0 +1,106 @@
+<template>
+    <div style="width: 100%;">
+        <div style="color: #1f2937;font-weight: 600;font-size: 20px;margin-bottom: 16px;">
+            热门应用
+        </div>
+
+        <div class="conBlock">
+            <div style="display: flex;justify-content: space-between;margin-bottom: 16px;">
+                <div style="color: #1f2937;font-weight: 600;font-size: 18px;margin-bottom: 16px;">项目式学习</div>
+                <div style="color: #0354d7;font-size: 14px;cursor: pointer;">查看全部</div>
+            </div>
+            <div style="display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 16px;">
+                <div v-for="(item,index) in tab" class="tabCon" :key="index" style="min-width: 308px;">
+                        <div style="flex-wrap: wrap;display: flex;justify-content: space-between;border: 1px rgb(243 244 246 / var(--tw-border-opacity, 1)) solid;border-radius: 10px;padding: 16px;box-sizing: border-box;">
+                            <img style="width: 48px;border-radius: 50%;" src="../assets/date.png" alt="">
+                            <div style="flex: 1;margin-left: 12px;display: flex;flex-direction: column;justify-content: center;">
+                                <div style="color: #1f2937;font-size: 16px;height: 24px;line-height: 24px;">{{ item.name }}</div>
+                                <div style="color: #6b7280;font-size: 12px;height: 16px;line-height: 16px;">{{ item.bir }}</div>
+                            </div>
+                            <div>
+                                <img style="width: 20px;" src="../assets/startIcon.svg" alt="">
+                            </div>
+                    </div>
+                </div>
+                
+            </div>
+        </div>
+
+        <div class="conBlock">
+            <div style="display: flex;justify-content: space-between;margin-bottom: 16px;">
+                <div style="color: #1f2937;font-weight: 600;font-size: 18px;margin-bottom: 16px;">项目式学习</div>
+                <div style="color: #0354d7;font-size: 14px;cursor: pointer;">查看全部</div>
+            </div>
+            <div style="display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 16px;">
+                <div v-for="(item,index) in tab" class="tabCon"  :key="index" style="min-width: 308px;">
+                        <div style="flex-wrap: wrap;display: flex;justify-content: space-between;border: 1px rgb(243 244 246 / var(--tw-border-opacity, 1)) solid;border-radius: 10px;padding: 16px;box-sizing: border-box;">
+                            <img style="width: 48px;border-radius: 50%;" src="../assets/date.png" alt="">
+                            <div style="flex: 1;margin-left: 12px;display: flex;flex-direction: column;justify-content: center;">
+                                <div style="color: #1f2937;font-size: 16px;height: 24px;line-height: 24px;">{{ item.name }}</div>
+                                <div style="color: #6b7280;font-size: 12px;height: 16px;line-height: 16px;">{{ item.bir }}</div>
+                            </div>
+                            <div>
+                                <img style="width: 20px;" src="../assets/startIcon.svg" alt="">
+                            </div>
+                    </div>
+                </div>
+                
+            </div>
+        </div>
+
+        <div class="conBlock">
+            <div style="display: flex;justify-content: space-between;margin-bottom: 16px;">
+                <div style="color: #1f2937;font-weight: 600;font-size: 18px;margin-bottom: 16px;">项目式学习</div>
+                <div style="color: #0354d7;font-size: 14px;cursor: pointer;">查看全部</div>
+            </div>
+            <div style="display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 16px;">
+                <div v-for="(item,index) in tab" class="tabCon"  :key="index" style="min-width: 308px;">
+                        <div style="flex-wrap: wrap;display: flex;justify-content: space-between;border: 1px rgb(243 244 246 / var(--tw-border-opacity, 1)) solid;border-radius: 10px;padding: 16px;box-sizing: border-box;">
+                            <img style="width: 48px;border-radius: 50%;" src="../assets/date.png" alt="">
+                            <div style="flex: 1;margin-left: 12px;display: flex;flex-direction: column;justify-content: center;">
+                                <div style="color: #1f2937;font-size: 16px;height: 24px;line-height: 24px;">{{ item.name }}</div>
+                                <div style="color: #6b7280;font-size: 12px;height: 16px;line-height: 16px;">{{ item.bir }}</div>
+                            </div>
+                            <div>
+                                <img style="width: 20px;" src="../assets/startIcon.svg" alt="">
+                            </div>
+                    </div>
+                </div>
+                
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                tab:[
+                    {name:'PBL课程设计',icon:'',bir:'项目式学习课程规划'},
+                    {name:'课堂活动设计',icon:'',bir:'互动教学活动规划'},
+                    {name:'教案编写',icon:'',bir:'教案智能生成'},
+
+                ]
+            }
+        },
+    }
+</script>
+
+<style scoped>
+.conBlock{
+    background-color: #fff;
+    padding: 24px;
+    box-sizing: border-box;
+    margin-bottom: 24px;
+    border-radius: 10px;
+}
+.tabCon{
+    transition: all 0.3s ease; /* 统一过渡效果 */
+    border-radius: 10px;
+}
+.tabCon:hover{
+    transform: translateY(-5px); /* 向上位移 */
+    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+}
+</style>

+ 0 - 1791
src/components/examine.vue

@@ -1,1791 +0,0 @@
-<template>
-  <div class="table_container">
-    <div class="title_examine">
-      <div class="pub_title">账号审核</div>
-
-      <div style="margin-left: auto">
-        <el-button v-if="type == 0" type="primary" size="small" @click="bactchConfirm(1)"
-          >批量通过</el-button
-        >
-        <el-button v-if="type == 0" type="primary" size="small" @click="bactchConfirm(2)"
-          >批量忽略</el-button
-        >
-        <el-button v-if="type == 2" type="primary" size="small" @click="bactchConfirm(0)"
-          >批量操作</el-button
-        >
-      </div>
-    </div>
-    <div class="table_content">
-      <div class="button_top">
-        <div class="examine_title">
-          <a
-            @click="showData(0)"
-            :style="{
-              color: type == 0 ? 'black' : 'rgb(179, 179, 179)',
-              fontWeight: 'bold',
-            }"
-            >待审核({{ tableData }})</a
-          >
-        </div>
-        <div class="examine_title">
-          <a
-            @click="showData(1)"
-            :style="{
-              color: type == 1 ? 'black' : 'rgb(179, 179, 179)',
-              fontWeight: 'bold',
-            }"
-            >已通过({{ approvedData }})</a
-          >
-        </div>
-        <div class="examine_title">
-          <a
-            @click="showData(2)"
-            :style="{
-              color: type == 2 ? 'black' : 'rgb(179, 179, 179)',
-              fontWeight: 'bold',
-            }"
-            >已忽略({{ RefusedData }})</a
-          >
-        </div>
-        <div class="examine_title">
-          <a
-            @click="showData(3)"
-            :style="{
-              color: type == 3 ? 'black' : 'rgb(179, 179, 179)',
-              fontWeight: 'bold',
-            }"
-            >全部记录({{ AllData }})</a
-          >
-        </div>
-      </div>
-
-      <div class="content">
-        <!-- 待审核的数据 -->
-        <div class="tableBox">
-          <!-- 禁用 stripe 属性,完全自定义背景色 -->
-          <el-table
-            :data="currentTableData"
-            stripe
-            border
-            style="width: 100%"
-            :header-cell-style="headerCellStyle"
-            @selection-change="handleSelectionChange"
-            :row-key="(row) => row.id"
-            ref="rtable"
-            @sort-change="onSortChange"
-          >
-            <el-table-column type="selection" width="50px"></el-table-column>
-            <el-table-column
-              label="组织名称"
-              min-width="45"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">{{
-                scope.row.orgname ? scope.row.orgname : "-"
-              }}</template>
-            </el-table-column>
-            <!-- <el-table-column
-              label="学校名字"
-              min-width="45"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">{{
-                scope.row.schoolName ? scope.row.schoolName : "-"
-              }}</template>
-            </el-table-column> -->
-            <el-table-column
-              show-overflow-tooltip
-              prop="contact_info"
-              label="电话/邮箱"
-              min-width="45"
-            ></el-table-column>
-            <el-table-column
-              prop="name"
-              label="姓名"
-              min-width="45"
-              show-overflow-tooltip
-              :label-class-name="'address-column'"
-            ></el-table-column>
-            <!-- <el-table-column
-              prop="username"
-              label="账号"
-              min-width="45"
-              show-overflow-tooltip
-              :label-class-name="'address-column'"
-            ></el-table-column> -->
-            <el-table-column
-              prop="time"
-              label="提交时间"
-             width="180px"
-              sortable="custom"
-            ></el-table-column>
-          
-            
-            
-
-            <el-table-column
-              prop="remark"
-              label="备注"
-              min-width="45"
-            ></el-table-column>
-
-            <el-table-column
-              prop="utime"
-              label="审核时间"
-              width="180px"
-              sortable="custom"
-              v-if="type !== 0"
-            >
-              <template slot-scope="scope">{{scope.row.utime ? scope.row.utime : '-'}}</template>
-            </el-table-column>
-
-            <el-table-column
-              label="开通组织"
-              min-width="45"
-              v-if="type == 1"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">{{
-                scope.row.orgName ? scope.row.orgName : "-"
-              }}</template>
-            </el-table-column>
-
-            <el-table-column 
-              label="操作" 
-              width="150px" 
-              v-if="type == 0 || type == 2">
-              <template slot-scope="scope">
-                <button
-                  v-if="scope.row.type == 0 "
-                  @click="ajax_move_user(1, scope.row)"
-                  style="
-                    color: #308fff;
-                    background: none;
-                    border: none;
-                    cursor: pointer;
-                    margin-left: 25px;
-                  "
-                >
-                  通过
-                </button>
-                <button
-                  v-if="scope.row.type == 0 "
-                  @click="ajax_move_user(2, scope.row)"
-                  style="
-                    color: #ff2570;
-                    background: none;
-                    border: none;
-                    cursor: pointer;
-                    margin-left: 35px;
-                  "
-                >
-                  忽略
-                </button>
-                <button
-                  v-if="scope.row.type == 2"
-                  @click="ajax_move_user(0, scope.row)"
-                  style="
-                    color: #308fff;
-                    background: none;
-                    border: none;
-                    cursor: pointer;
-                    margin-left: 25px;
-                  "
-                >
-                  移动至待审核
-                </button>
-              </template>
-            </el-table-column>
-
-            <el-table-column 
-              label="状态" 
-              v-if="type == 3"
-              min-width="45">
-              <template slot-scope="scope">
-                {{ getStatusText(scope.row.type) }}
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-        <!-- 学习名称组织名称表单区域 -->
-        <el-dialog
-          title="补充信息"
-          class="table"
-          :visible.sync="isOrgFormVisible"
-          :before-close="close_table"
-          width="920px"
-        >
-          <!-- 搜索框区域 -->
-          <div class="input-container">
-            <div class="input_box">
-              <input
-                type="text"
-                v-model="searchQuery"
-                placeholder="搜索学校"
-                @change="ajax_org_check"
-                class="table_find"
-              />
-            </div>
-            <el-select
-              style="margin-left: 10px"
-              v-model="school.OrgId"
-              placeholder="请选择组织"
-              class="custom-select"
-              @change="ajax_org_check"
-              filterable
-              clearable
-            >
-              <!-- 动态生成 <el-option> -->
-              <el-option
-                v-for="(org, index) in organizations"
-                :key="index"
-                :label="org.name"
-                :value="org.id"
-              >
-                {{ org.name }}
-              </el-option>
-            </el-select>
-
-            <el-select
-              style="margin-left: 10px"
-              v-model="selReg"
-              placeholder="请选择区域"
-              class="custom-select"
-              @change="ajax_org_check"
-              filterable
-              clearable
-            >
-              <el-option
-                v-for="(org, index) in regionCList"
-                :key="index"
-                :label="org.name"
-                :value="org.name"
-              >
-                {{ org.name }}
-              </el-option>
-            </el-select>
-          </div>
-          <div class="table_down">
-            <div v-if="cn_org">
-              <div class="checkbox-container">
-                <!-- 循环渲染每个学校 -->
-                <div
-                  v-for="(school, index) in cn_school"
-                  :key="index"
-                  class="checkbox_comment"
-                >
-                  <div class="checkbox-left">
-                    <label class="checkbox-label">
-                      <!-- 学校名称,显示 school.name -->
-                      <a>{{ school.name }}</a>
-                    </label>
-                    <!-- 单选框,使用 v-model 绑定到一个变量 -->
-                    <input
-                      type="radio"
-                      class="checkbox_input_org"
-                      name="school_selection"
-                      :value="school"
-                      v-model="selectedSchool"
-                    />
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <!-- 按钮区域 -->
-          <div slot="footer" class="dialog-footer">
-            <el-button @click="close_table">取 消</el-button>
-            <el-button type="primary" @click="add_school_dialog = true"
-              >新增学校</el-button
-            >
-            <el-button type="primary" @click="add_org_dialog = true"
-              >新增组织</el-button
-            >
-            <el-button type="primary" v-if="!addBtn" @click="ajax_move_user(1,AddUserInfo)">通过</el-button>
-            <el-button type="primary" v-if="addBtn" @click="bactchConfirm(1)">批量通过</el-button>
-          </div>
-        </el-dialog>
-
-
-    <!-- 新增学校弹窗 -->
-    <el-dialog
-      title="新增学校"
-      class="table"
-      :visible.sync="add_school_dialog"
-      :before-close="close_add_school"
-      width="700px"
-    >
-      <div class="el_dialog_school_content">
-        <form class="el-form">
-          <!-- 学校名称 -->
-          <div class="el-form-item" style="margin-top: 15px">
-            <label class="el-form-item__label" style="width: 100px"
-              >学校名称</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="sch_name"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="学校名称"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 地区 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px">地区</label>
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="region"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="请输入地区"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 学校编码 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >学校编码</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="schoolCode"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="请输入编码"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-      
-          <!-- 上级组织 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >上级组织</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <el-form
-                    :model="school"
-                    ref="form"
-                  >
-                    <el-select
-                      v-model="school.parentOrgId"
-                      placeholder="请选择组织"
-                      class="custom-select"
-                      filterable
-                    >
-                      <el-option
-                        v-for="(org, index) in organizations"
-                        :key="index"
-                        :label="org.name"
-                        :value="org.id"
-                      >
-                        {{ org.name }}
-                      </el-option>
-                    </el-select>
-                  </el-form>
-                </div>
-              </span>
-            </div>
-          </div>
-
-          <!-- 区域 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >区域</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <!-- <el-form
-                    :model="school"
-                    ref="form"
-                  > -->
-                    <el-select
-                      v-model="regionC"
-                      placeholder="请选择区域"
-                      class="custom-select"
-                      filterable
-                    >
-                      <el-option
-                        v-for="(org, index) in regionCList"
-                        :key="index"
-                        :label="org.name"
-                        :value="org.name"
-                      >
-                        {{ org.name }}
-                      </el-option>
-                    </el-select>
-                  <!-- </el-form> -->
-                </div>
-              </span>
-            </div>
-          </div>
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="el-dialog__footer">
-        <el-button @click="close_add_school">取 消</el-button>
-        <el-button type="primary" @click="ajax_add_school">确认</el-button>
-      </div>
-    </el-dialog>
-    <!-- 新增组织弹窗 -->
-    <el-dialog
-      title="新增组织"
-      class="table"
-      :visible.sync="add_org_dialog"
-      :before-close="close_add_school"
-      width="700px"
-    >
-      <div class="el_dialog_org_content">
-        <form class="el-form">
-          <!-- 组织名称 -->
-          <div class="el-form-item" style="margin-top: 15px">
-            <label class="el-form-item__label" style="width: 100px"
-              >组织名称</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="orgName"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="组织名称"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 地区 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >组织编码</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="randomCode"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="请输入随机码"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-
-           <!-- 区域 -->
-           <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >区域</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <!-- <el-form
-                    :model="school"
-                    ref="form"
-                  > -->
-                    <el-select
-                      v-model="regionC"
-                      placeholder="请选择区域"
-                      class="custom-select"
-                      filterable
-                    >
-                      <el-option
-                        v-for="(org, index) in regionCList"
-                        :key="index"
-                        :label="org.name"
-                        :value="org.name"
-                      >
-                        {{ org.name }}
-                      </el-option>
-                    </el-select>
-                  <!-- </el-form> -->
-                </div>
-              </span>
-            </div>
-          </div>
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="close_add_school">取 消</el-button>
-        <el-button type="primary" @click="ajax_add_org">确认</el-button>
-      </div>
-    </el-dialog>
-
-        <!-- 分页组件 -->
-        <el-pagination
-          :current-page="currentPage"
-          :page-size="pageSize"
-          :total="total"
-          @current-change="handlePageChange"
-          layout="total,prev, pager, next, jumper"
-        >
-        </el-pagination>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import { API_CONFIG } from "@/common/apiConfig";
-import { mapGetters } from "vuex";
-import { addUser } from "@/api/user.js";
-
-export default {
-  name: "IndexTable",
-  components: {},
-  data() {
-    return {
-      addBtn : 0, //批量按钮显示
-      //移动弹窗
-      isOrgFormVisible: false,
-      //新增组织
-      add_org_dialog: false,
-      //学校弹窗
-      add_school_dialog: false,
-      //移动组织初始化
-      cn_org: true,
-      searchQuery: "", // 用来存储输入框的值
-      // 用来存储选中的学校名称
-      selectedSchool: {},
-      // 用于存放从后台获取的组织数据
-      organizations: [],
-      cn_school: [],// 用于存放从后台获取的学校数据
-      school: {
-        OrgId: null, // 初始化 OrgId 为 null 或适当的默认值
-      },
-      regionCList:[
-        {id:1,name:'hk'},
-        {id:2,name:'cn'}
-      ], //区域列表
-      regionC:'cn', //区域
-      selReg:"", //筛选区域
-      // 储存筛选完后的学校
-      schoolList:[],
-
-      AddUserInfo:{},
-
-      //新增组织的变量定义
-      orgName: "", // 组织名称
-      u_create: "", // 创建人
-      randomCode: "", //随机码(可以为空)
-      uLogin: "1", // 登录状态 (1 或 2)
-      radio: "1",
-      //新增学校参数的定义
-      sch_name: "", //学校名称
-      region: "", //地区
-      schoolType: "1", //学校单选框类型
-      schoolCode: "", //学校编码
-      loginPermission: "1", //是否允许登录
-
-      checked: true,
-      selectedOptions: [], // 用于存储选中的复选框
-      showCompany: false, // 默认隐藏
-      selectedOrg: "CN", // 默认选中CN组织
-      checkboxStates: Array(10).fill(false), // 确保初始化为一个包含10个元素的数组
-      selectedSchools: Array(16).fill(""), // 确保初始化为一个包含16个空字符串的数组
-      button: Array(10).fill(false), // 确保初始化为一个包含10个元素的数组
-      currentPage: 1,
-      currentApprovedPage: 1,
-      currentRefusedPage: 1,
-      currentAllPage: 1,
-      total: 0,
-      pageSize: 10, // 每页显示的条目数
-      pageSizeOptions: [10, 25, 50], // 可选的页大小
-      currentTableData: [],
-      Pending_request: true,
-      type: 0,
-      tableData: 0,
-      approvedData: 0,
-      RefusedData: 0,
-      AllData: 0,
-      checkArray: [],
-      checkArray2: [],
-      sortF: "add_time",
-      sortO: "DESC",
-    };
-  },
-  watch: {},
-  computed: {
-    ...mapGetters(["userid"]),
-  },
-  methods: {
-    //新增组织关闭
-    close_add_org() {
-      this.add_org_dialog = false;
-    },
-    //组织查询
-    ajax_org() {
-      const params = [API_CONFIG.ajax_org]; // 使用配置中的接口参数
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          // console.log("返回的数据为:", res.data);  // 检查返回的数据
-          if (res.data && Array.isArray(res.data[0])) {
-            // 使用 map() 提取所有组织名称
-            this.organizations = res.data[0].map((item) => ({
-              name: item.name,
-              id: item.id,
-            }));
-          }
-          // console.log("返回的结果为:",this.organizations);
-        })
-        .catch((err) => {
-          this.$message.error("查询失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    // 学校查询
-    ajax_school() {
-    // const params = [API_CONFIG.ajax_school]; // 使用配置中的接口参数
-
-      // 构建请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_school.functionName, // 调用存储过程的名称
-          u_name: this.searchQuery, // 学校名称,绑定到 orgName
-          u_org: this.school.OrgId || '', // 选择的组织的 ID,绑定到 school.parentOrgId,如果没有选择则为空
-          u_regC: this.selReg
-        },
-      ];
-
-    this.$ajax
-      .post(API_CONFIG.baseUrl, params)
-      .then((res) => {
-        // console.log("返回的数据为:", res.data);  // 检查返回的数据
-        if (res.data && Array.isArray(res.data[0])) {
-          // 将 name 和 org 都存入 cn_school 数组中
-          this.cn_school = res.data[0].map((item) => ({
-            name: item.name,
-            id: item.id,
-            org: item.org,
-            area:item.area
-          }));
-          // this.schoolList = res.data[0].map((item) => ({
-          //   name: item.name,
-          //   id: item.id,
-          //   org: item.org,
-          //   area:item.area
-          // }));
-          console.log(this.cn_school);
-        }
-      })
-      .catch((err) => {
-        this.$message.error("查询失败");
-        console.error("请求失败,错误信息:", err);
-      });
-    },
-    //新增学校
-    ajax_add_school() {
-      // 校验学校名称是否为空
-      if (!this.sch_name || this.sch_name.trim() === "") {
-        this.$message.error("学校名称不能为空!");
-        return;
-      }
-
-      // 构建请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_add_school.functionName, // 调用存储过程的名称
-          u_name: this.sch_name, // 学校名称,绑定到 orgName
-          u_org: this.school.parentOrgId || "", // 选择的组织的 ID,绑定到 school.parentOrgId,如果没有选择则为空
-          u_dest: this.region || "", // 地区,绑定到 region,如果为空则传空字符串
-          u_type: this.schoolType || "", // 学校类型,绑定到 schoolType,如果没有选择则为空
-          u_code: this.schoolCode || "", // 学校编码,绑定到 schoolCode,如果为空则传空字符串
-          u_regionC: this.regionC || "", 
-          u_isLogin: this.loginPermission === "1" ? 1 : 2, // 是否允许登录,默认传 2(不允许登录)如果没有选择
-          uid: this.userid,
-        },
-      ];
-
-      // 发起请求
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "已成功执行!",
-          });
-          // 刷新学校列表
-          this.ajax_school();
-          // 关闭弹窗
-          this.add_school_dialog = false;
-          // 清空输入框、下拉菜单选择和单选框
-          this.sch_name = ""; // 清空学校名称
-          this.school.parentOrgId = ""; // 清空组织选择
-          this.region = ""; // 清空地区选择
-          this.regionC = 'cn'
-          this.schoolType = "1"; // 清空学校类型选择
-          this.schoolCode = ""; // 清空学校编码
-          this.loginPermission = "1"; // 清空登录权限的选择
-        })
-        .catch((err) => {
-          this.$message.error("插入失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    //新增组织
-    ajax_add_org() {
-      // 获取弹窗中的输入内容
-      let orgName = this.orgName; // 组织名称
-      let randomCode = this.randomCode || ""; // 随机码(可为空)
-      let uLogin = this.radio; // 获取复选框选中的值(1 或 2)
-
-      // 验证组织名称不能为空
-      if (!orgName) {
-        this.$message.error("组织名称不能为空");
-        return;
-      }
-
-      // 构造请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_add_org.functionName, // 调用存储过程的名称
-          u_name: orgName, // 组织名称
-          u_create: this.userid, // u_create 固定为0
-          u_code: randomCode, // 随机码(可以为空)
-          u_regionC: this.regionC, 
-          u_login: uLogin, // 登录状态
-        },
-      ];
-
-      // 发起请求
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "已成功执行!",
-          });
-          // 刷新组织列表
-          this.ajax_org();
-          //关闭弹窗
-          this.add_org_dialog = false;
-          // 清空输入框、下拉菜单选择和单选框
-          this.orgName = ""; // 清空学校名称
-          this.regionC = 'cn'
-          this.randomCode = ""; // 清空地区选择
-          this.uLogin = "1"; // 清空学校类型选择
-        })
-        .catch((err) => {
-          this.$message.error("插入失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-
-    //新增学校关闭
-    close_add_school() {
-      this.regionC = 'cn'
-      this.add_org_dialog = false;
-      this.add_school_dialog = false;
-    },
-    //组织下拉菜单查询
-    ajax_org_check() {
-      this.selectedSchool = {};
-      this.ajax_school()
-    },
-    // 移动关闭按钮
-    close_table() {
-      // 清空补充信息查询数据
-      this.searchQuery = '';
-      this.school.OrgId = null;
-      this.selReg = '';
-      this.ajax_school()
-
-      this.isOrgFormVisible = false;
-      this.selectedSchool = {};
-
-      // 清空输入框、下拉菜单选择和单选框
-      this.sch_name = ""; // 清空学校名称
-      this.school.parentOrgId = ""; // 清空组织选择
-      this.region = ""; // 清空地区选择
-      this.schoolType = "1"; // 清空学校类型选择
-      this.schoolCode = ""; // 清空学校编码
-      this.loginPermission = "1"; // 清空登录权限的选择
-      // 清空输入框、下拉菜单选择和单选框
-      this.orgName = ""; // 清空学校名称
-      this.randomCode = ""; // 清空地区选择
-      this.uLogin = "1"; // 清空学校类型选择
-    },
-    // 获取状态文本
-    getStatusText(status) {
-      const statusMap = {
-        0: "待审核",
-        1: "已通过",
-        2: "已忽略",
-      };
-      return statusMap[status] || "未知状态";
-    },
-
-    // 获取状态对应的按钮类型
-    getButtonType(status) {
-      const typeMap = {
-        0: "primary", // 待审核 -> 蓝色
-        1: "success", // 已通过 -> 绿色
-        2: "danger", // 已忽略 -> 红色
-      };
-      return typeMap[status] || "default"; // 默认为默认按钮类型
-    },
-    // 表头的背景色
-    headerCellStyle() {
-      return { backgroundColor: "#f1f1f1" };
-    },
-    handlePageChange(page) {
-      API_CONFIG.allRecords.page = page;
-      this.$forceUpdate();
-      this.ajaxAll();
-    },
-    showData(type) {
-      this.sortF = "add_time"
-      this.sortO = "DESC"
-      this.type = type;
-      this.$refs.rtable.clearSort();
-      this.ajaxAll();
-    },
-    handleSelectionChange(selectedRows) {
-      console.log(selectedRows);
-
-      this.checkArray = selectedRows.map((row) => row.id);
-      this.checkArray2 = selectedRows
-    },
-    // 用于显示全部记录的表格数据
-    ajaxAll() {
-      console.log("获取所有记录");
-      // 根据 allRecords 配置生成请求
-      const params = [
-        {
-          functionName: API_CONFIG.allRecords.functionName,
-          r_type: this.type == 3 ? '""' : this.type,
-          page: API_CONFIG.allRecords.page,
-          r_num: API_CONFIG.allRecords.num,
-          sort_field: this.sortF,
-          sort_order: this.sortO
-        },
-      ];
-      this.currentTableData = [];
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          if (res.data) {
-            this.currentTableData = res.data[0];
-            this.total = res.data[0].length ? res.data[0][0].total_count : 0;
-            this.tableData = res.data[1][0].num;
-            this.approvedData = res.data[2][0].num;
-            this.RefusedData = res.data[3][0].num;
-            this.AllData = res.data[4][0].num;
-          }
-          console.log("返回的结果为:", res.data);
-        })
-        .catch((err) => {
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    addUser(row) {
-      let params = {
-        alias: row.name,
-        username: row.username,
-        org: row.orgid,
-        oid: row.oid,
-        ph: row.phonenumber,
-        cid: "",
-        type: 1,
-        opid: "",
-        dest: "",
-        eduid: "",
-      };
-      console.log('params',params);
-      
-      addUser(params)
-        .then((response) => {
-          if (response) {
-            this.$message({
-              type: "success",
-              message: "操作成功",
-            });
-            this.ajaxAll(); // 例如刷新表格数据
-          }
-        })
-        .catch((error) => {
-          console.error("请求失败,错误信息:", error);
-        });
-    },
-    async bactchConfirm(type) {
-      if (!this.checkArray.length) {
-        this.$message.error(`请选择要操作的用户`);
-        return;
-      }
-
-      const confirmationMessage = type === 1 ? "您确定同意这些用户申请并创建吗?" : type ==0 ? "您确定将这些用户移动至待审核吗?" : "您确定忽略这些用户申请吗?";
-      const requestType = type;
-
-      if (!this.isOrgFormVisible && type == 1) {
-        this.addBtn = 1
-        return this.isOrgFormVisible = true
-      }
-
-      if (this.selectedSchool && !this.selectedSchool.id && type == 1) return this.$message.error('请选择学校')
-
-      // 弹出确认框
-      this.$confirm(confirmationMessage, "确认操作", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(async () => {
-          for (const row of this.checkArray2) {
-            // 确认后发起请求
-            const params = [{
-              functionName: API_CONFIG.moveUser.functionName,
-              uid: row.id,
-              org: this.selectedSchool.org,
-              oid:  this.selectedSchool.id,
-              type: requestType,
-              euid: this.userid,
-            }];
-
-            try {
-              const res = await this.$ajax.post(API_CONFIG.baseUrl, params);
-              console.log(res);
-              if (type === 1) {
-                row.oid =  this.selectedSchool.id
-                row.orgid =  this.selectedSchool.org
-
-                await this.addUser(row);
-              } else {
-                this.$message.success("操作成功");
-              }
-              console.log("此条数据处理后的id为:", row.id);
-            } catch (err) {
-              this.$message.error("操作失败");
-              console.error("请求失败,错误信息:", err);
-            }
-          }
-          this.close_table()
-
-          // 所有请求完成后刷新表格数据
-          await this.ajaxAll();
-        })
-        .catch(() => {
-          // 取消操作后的提示
-        });
-    },
-    onSortChange({ prop, order }){
-      if(order){
-        this.sortF = prop == 'time' ? 'add_time' : 'update_time'
-        this.sortO = order == 'descending' ? 'DESC' : 'ASC'
-      }else{
-        this.sortF = 'add_time'
-        this.sortO = 'DESC'
-      }
-      this.ajaxAll()
-      console.log(prop, order);
-
-    },
-    // 忽略操作,将数据移到已忽略
-    ajax_move_user(type, row) {
-      this.AddUserInfo = row
-      let string = "";
-      if (type == 1) {
-        if (row.type == 1) return
-        // console.log(JSON.stringify(this.selectedSchool) === '{}');
-        // console.log(JSON.stringify(this.selectedSchool));
-
-        if (!this.isOrgFormVisible) {
-          this.addBtn = 0
-          return this.isOrgFormVisible = true
-        }
-        
-        if (this.selectedSchool && !this.selectedSchool.id) return this.$message.error('请选择学校')
-
-        string = "您确定同意此用户申请并创建吗?";
-      } else if (type == 2) {
-        string = "您确定忽略此用户申请吗?";
-      } else if (type == 0) {
-        string = "您确定将此用户移动至待审核吗?";
-      }
-      let _type = type;
-
-      // 弹出确认框
-      this.$confirm(string, "确认操作", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          // 确认后发起请求
-          let params = [
-            {
-              functionName: API_CONFIG.moveUser.functionName, // 这里是将数据移至已忽略状态的操作,使用配置中的存储过程名称
-              uid: row.id,
-              org: this.selectedSchool.org,
-              oid:  this.selectedSchool.id,
-              type: _type,
-              euid: this.userid,
-            },
-          ]; 
-
-          // 发起请求
-          this.$ajax
-            .post(API_CONFIG.baseUrl, params)
-            .then((res) => {
-              console.log(res);
-              if (type == 1) {
-                row.oid =  this.selectedSchool.id
-                row.orgid =  this.selectedSchool.org
-
-                this.addUser(row);
-              } else {
-                this.$message({
-                  type: "success",
-                  message: "操作成功",
-                });
-                // 更新数据状态
-                this.ajaxAll(); // 例如刷新表格数据
-              }
-              this.close_table()
-
-              console.log("此条数据处理后的id为:", row.id);
-            })
-            .catch((err) => {
-              this.$message.error("操作失败");
-              console.error("请求失败,错误信息:", err);
-            });
-        })
-        .catch(() => {
-          // 取消操作后的提示
-        });
-    },
-  },
-  mounted() {
-    this.ajaxAll(); // 组件挂载后调用 ajaxAll 方法
-    this.ajax_org(); // 组件创建时,立即调用 ajax_org 获取数据
-    this.ajax_school(); // 组件创建时,立即调用 ajax_org 获取数据
-
-  },
-};
-</script>
-
-<style scoped>
-.content {
-  /* flex-direction: column; */
-  width: 100%;
-}
-
-/* 表格容器样式 */
-.table_container {
-  width: 100%;
-  height: 100%;
-  padding: 10px;
-  box-sizing: border-box;
-  overflow: auto;
-}
-
-.el-table {
-  width: 100%;
-  border: 1px solid #dcdfe6;
-
-  /* 设置表格边框 */
-}
-
-.el-table th,
-.el-table td {
-  border: 1px solid #dcdfe6;
-  /* 设置单元格边框 */
-  height: 80px;
-}
-
-/* 使用v-deep深度,进入元素设置表格行的背景色 */
-::v-deep
-  .el-table--striped
-  .el-table__body
-  tr.el-table__row--striped
-  td.el-table__cell {
-  background-color: #f1f1f1;
-}
-
-.address-column {
-  margin: 0;
-  /* 调整边距 */
-  padding: 5px;
-  /* 调整填充 */
-}
-
-/*审核框架 */
-.button_top {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  margin: 10px 0;
-}
-
-.examine_title a {
-  cursor: pointer;
-  color: black;
-  font-weight: bold;
-}
-
-.button_top .examine_title + .examine_title {
-  margin-left: 20px;
-}
-
-/* 新增账户对话框样式 */
-.add-account-button {
-  margin-top: 20px;
-  /* 添加顶部间距 */
-  padding: 10px 20px;
-  /* 添加内边距 */
-  background-color: transparent;
-  /* 去掉按钮背景 */
-  color: black;
-  /* 设置字体颜色为黑色 */
-  border-radius: 4px;
-  /* 设置圆角 */
-  cursor: pointer;
-  /* 鼠标悬停时显示手型 */
-  font-size: 18px;
-  /* 增大字体 */
-  display: flex;
-  /* 使用 Flexbox 布局 */
-  border: none;
-  align-items: center;
-  /* 垂直居中对齐 */
-}
-
-.add-icon {
-  width: 20px;
-  /* 设置小图片的宽度 */
-  height: 20px;
-  /* 设置小图片的高度 */
-  margin-right: 8px;
-  /* 图片与文字之间的间距 */
-}
-
-/* 对话框内容样式 */
-.modal-content {
-  display: flex;
-  flex-direction: column;
-}
-
-/* 标题样式 */
-.modal-header {
-  display: flex;
-  gap: 80px;
-  /* 设置元素之间的固定间距 */
-  justify-content: center;
-  /* 居中对齐所有元素 */
-  align-items: center;
-  /* 垂直居中对齐 */
-  cursor: pointer;
-  /* 鼠标悬停时显示手型 */
-}
-
-/* 组织标题样式 */
-.org-title {
-  display: flex;
-  align-items: center;
-  margin-bottom: 15px;
-}
-
-.org-title h3 {
-  margin-right: 10px;
-  font-weight: bold;
-}
-
-/* dialog搜索框容器 */
-.dialogsearch-container input {
-  border: none;
-  /* 去掉边框 */
-  padding: 0 10px;
-  /* 添加内边距 */
-  padding-left: 15px;
-  /* 增加左内边距以移动文字 */
-  font-size: 18px;
-  /* 增大字体大小 */
-  outline: none;
-  /* 去掉聚焦时的轮廓 */
-  color: black;
-  border: 1px solid black;
-}
-
-/* dialog搜索框按钮样式 */
-.dialogsearch-button {
-  position: absolute;
-  /* 设置为绝对定位 */
-  right: 310px;
-  /* 右对齐,距离右边310px */
-  height: 40px;
-  /* 设置按钮高度与输入框一致 */
-  border: none;
-  /* 去掉边框 */
-  background: none;
-  /* 去掉背景 */
-  cursor: pointer;
-  /* 鼠标悬停时显示手型 */
-  padding: 0;
-  /* 去掉内边距 */
-}
-
-/* 复选框容器样式 */
-/* .checkbox-container { */
-  /* display: flex; */
-  /* flex-direction: row; */
-  /* 水平排列 */
-  /* gap: 10px; */
-  /* justify-content: space-between; 在两排之间留出空间 */
-  /* margin-top: 100px; */
-  /* 添加顶部间距 */
-/* } */
-/* 弹窗选择区域 */
-.checkbox-container {
-  height: auto;
-  width: 100%;
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-}
-/* 复选框组样式 */
-.checkbox-group {
-  float: right;
-  margin-left: 140px;
-  /* border: 1px solid red; */
-  height: 400px;
-  width: 350px;
-  padding-top: 20px;
-}
-
-/* 复选框在右侧样式 */
-/* .checkbox-left { */
-  /* flex-direction: row-reverse; */
-  /* 选择框在右侧 */
-  /* display: flex; */
-  /* 使用 Flexbox */
-  /* align-items: center; */
-  /* 垂直居中 */
-  /* position: relative; */
-  /* 为下划线定位 */
-  /* padding-top: 15px; */
-  /* 设置文本与下划线之间的间距 */
-/* } */
-
-/* .checkbox-left部分 */
-.checkbox-left {
-  flex-grow: 1; /* 使该部分占据剩余空间 */
-  display: flex;
-  align-items: center;
-}
-
-.checkbox-left a {
-  color: #000000;
-  font-size: 14px;
-  margin-left: 70px; /* Adjust the spacing between text and checkbox */
-  float: left;
-  white-space: nowrap; /* Prevent line breaks */
-  overflow: hidden; /* Hide overflow */
-  text-overflow: ellipsis; /* Add ellipsis for overflow text */
-  max-width: 240px; /* Set a maximum width to trigger ellipsis */
-}
-/* 去除原生复选框样式 */
-.checkbox_input {
-  -webkit-appearance: none; /* 去除Safari等浏览器默认样式 */
-  -moz-appearance: none; /* 去除Firefox的默认样式 */
-  appearance: none; /* 去除默认样式 */
-  width: 20px; /* 设置复选框的宽度 */
-  height: 20px; /* 设置复选框的高度 */
-  border: 1.5px solid #000000; /* 默认边框颜色 */
-  position: relative; /* 设置定位,方便后面绝对定位勾号 */
-  cursor: pointer; /* 鼠标悬停时显示为可点击状态 */
-  float: right;
-  margin-top: 20px;
-  margin-right: 10px;
-}
-.checkbox_input:checked {
-  background-color: #007bff; /* 选中时背景颜色为蓝色 */
-  border-color: #007bff; /* 边框颜色为蓝色 */
-}
-/* 选中时的白色勾号 */
-.checkbox_input:checked::before {
-  content: "";
-  position: absolute;
-  top: 0px;
-  left: 5px;
-  width: 6px;
-  height: 12px;
-  border: solid white;
-  border-width: 0 2px 2px 0;
-  transform: rotate(45deg);
-}
-/* 去除原生复选框样式 */
-.checkbox_input_org {
-  -webkit-appearance: none; /* 去除Safari等浏览器默认样式 */
-  -moz-appearance: none; /* 去除Firefox的默认样式 */
-  appearance: none; /* 去除默认样式 */
-  width: 20px; /* 设置复选框的宽度 */
-  height: 20px; /* 设置复选框的高度 */
-  border: 1.5px solid #000000; /* 默认边框颜色 */
-  cursor: pointer; /* 鼠标悬停时显示为可点击状态 */
-  position: absolute; /* 使用绝对定位,确保其位于右侧 */
-  right: 15px; /* 右侧间距 */
-}
-/* 组织表的选择框样式 */
-/* 选中时的样式 */
-.checkbox_input_org:checked {
-  background-color: #007bff; /* 选中时背景颜色为蓝色 */
-  border-color: #007bff; /* 边框颜色为蓝色 */
-}
-
-/* 选中时的白色勾号 */
-.checkbox_input_org:checked::before {
-  content: "";
-  position: absolute;
-  top: 0px;
-  left: 5px;
-  width: 6px;
-  height: 12px;
-  border: solid white;
-  border-width: 0 2px 2px 0;
-  transform: rotate(45deg);
-}
-/* 组织名称 */
-.checkbox-company {
-  margin-top: 60px; /* 可选:设置顶部间距 */
-  float: left;
-  /* border: 1px solid red; */
-  height: auto;
-  width: 350px;
-}
-
-/*复选框文本样式 */
-/* .checkbox-left::after {
-  content: "";
-  display: block;
-  width: 150%;
-  height: 1px;
-  background-color: black;
-  position: absolute;
-  bottom: 0;
-  left: -12%;
-} */
-
-hr {
-  margin: 20px 0;
-  /* 上下间距 */
-  border: 1px solid #dcdfe6;
-  /* 分隔线颜色 */
-}
-
-/* dialog学校复选框样式 */
-.checkbox-group span.el-checkbox__inner {
-  position: absolute;
-  right: -125px;
-  width: 20px;
-  height: 20px;
-}
-
-/* dialog组织下拉框复选框样式 */
-.checkbox-company span.el-checkbox__inner {
-  width: 20px;
-  height: 20px;
-}
-
-/* 复选框在右侧样式 */
-.checkbox-company {
-  float: right;
-  margin-left: 140px;
-  /* border: 1px solid red; */
-  height: 400px;
-  width: 350px;
-  padding-top: 20px;
-}
-
-.checkbox-right {
-  align-items: center;
-  /* 垂直居中 */
-  position: relative;
-  /* 为下划线定位 */
-  padding-bottom: 5px;
-  /* 设置文本与下划线之间的间距 */
-  padding-top: 15px;
-}
-
-.checkbox-right::after {
-  content: "";
-  /* 创建伪元素 */
-  display: block;
-  /* 使其成为块级元素 */
-  width: 80%;
-  /* 下划线宽度,调整为所需的宽度 */
-  height: 1px;
-  /* 下划线高度 */
-  background-color: black;
-  /* 下划线颜色 */
-  position: absolute;
-  /* 绝对定位 */
-  bottom: 0;
-  /* 距离底部 */
-  left: 8%;
-  /* 调整下划线的水平位置,设置为10% */
-}
-
-/* 为 select 添加自定义下拉箭头 */
-.select_right {
-  border: none;
-  /* 去掉边框 */
-  outline: none;
-  /* 去掉聚焦时的轮廓线 */
-}
-
-/* 公司下拉菜单 */
-.company_checkbox {
-  position: absolute;
-  /* 设置为绝对定位 */
-  width: 278px;
-  background-color: rgb(255, 255, 255);
-  border: 1px solid rgb(239, 239, 239);
-  margin-left: 28px;
-  margin-top: 6px;
-  z-index: 200;
-  padding: 10px 0;
-  /* 给下拉菜单加一点内边距,避免内容太紧 */
-}
-
-/* 每个下拉项的容器,使用flexbox布局 */
-.com_check {
-  display: flex;
-  /* 使用flex布局 */
-  justify-content: space-between;
-  /* 让文本和复选框两端对齐 */
-  align-items: center;
-  /* 让文本和复选框垂直居中对齐 */
-  padding: 5px 20px;
-  /* 给复选框加点内边距,避免紧凑 */
-  position: relative;
-  /* 确保伪元素的定位是相对当前元素 */
-  margin-bottom: 10px;
-  /* 给每个复选框之间留点空隙 */
-}
-
-/* 复选框下的下划线 */
-.com_check::after {
-  content: "";
-  /* 创建伪元素 */
-  display: block;
-  /* 使其成为块级元素 */
-  width: 100%;
-  /* 下划线宽度与复选框相同 */
-  height: 1px;
-  /* 下划线高度 */
-  background-color: rgb(214, 214, 214);
-  /* 下划线颜色 */
-  position: absolute;
-  /* 绝对定位 */
-  bottom: 0;
-  /* 距离底部 */
-  left: 0;
-  /* 距离左边 */
-}
-
-/* 新增学校按钮 */
-.com_but {
-  width: 275px;
-  height: 35px;
-  margin-top: 10px;
-  /* 给按钮与上面的选项留一点空隙 */
-  border: none;
-  background-color: rgb(255, 255, 255);
-  /* 按钮背景色 */
-  outline: none;
-  color: rgb(98, 98, 98);
-  text-align: left;
-  text-indent: 20px;
-  /* 左侧文字缩进 */
-  font-size: 15px;
-  padding-bottom: 5px;
-  /* 设置文本与下划线之间的间距 */
-}
-
-/* 给每个下拉项之间加点空隙 */
-.checkbox-right {
-  margin-bottom: 10px;
-  /* 给每个项之间留点空隙 */
-}
-
-/* 弹窗部分的样式 */
-.confirmation-dialog .el-dialog {
-  position: absolute;
-  top: 20%;
-  left: 40%;
-}
-
-/* 弹窗内容部分的样式 */
-.modal-content .el-overlay .el-dialog {
-  text-align: center;
-  padding: 20px;
-}
-
-/* 弹窗标题部分的样式 */
-
-/* 是否通知申请人弹窗标题部分的样式 */
-.confirmation-modal {
-  position: fixed;
-  /* 使用固定定位 */
-  transform: translate(-50%, -50%);
-  /* 使其真正居中 */
-  background-color: rgba(255, 255, 255, 0.9);
-  /* 背景颜色 */
-  border: 1px solid #ccc;
-  /* 边框 */
-  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
-  /* 阴影效果 */
-  padding: 20px;
-  /* 内边距 */
-  z-index: 2000;
-  /* 确保在其他元素之上 */
-}
-
-/* 是否通知申请人弹窗标题部分按钮的样式 */
-.button-container {
-  display: flex;
-  /* 使用flex布局 */
-  justify-content: space-around;
-  /* 按钮之间的间距 */
-  margin-top: 120px;
-  /* 按钮与文本之间的间距 */
-}
-
-/* 分页功能的样式 */
-.el-pagination {
-  /* 调整分页组件的顶部向上方距离50px */
-  margin-top: 10px;
-  padding: 0;
-}
-
-/* 设置分页按钮的宽度 */
-.el-pagination .el-pagination__prev,
-.el-pagination .el-pagination__next {
-  width: 60px;
-  /* 设置上一页和下一页按钮的宽度 */
-}
-
-/* 设置页码按钮的宽度 */
-.el-pagination .el-pager li {
-  width: 50px;
-  /* 设置每个页码按钮的宽度 */
-}
-
-/* 设置分页大小选择框的宽度 */
-.el-pagination .el-select {
-  width: 80px;
-  /* 设置分页大小选择框的宽度 */
-}
-
-/*取消dialog学校最后一个的margin值 */
-.el-checkbox {
-  margin-right: none !important;
-}
-
-.cell {
-  position: absolute;
-}
-
-.el-checkbox span {
-  margin-left: 3px;
-}
-
-/* 取消 ElTableColumn 默认的 inline-block 和 vertical-align 样式 */
-.el-scrollbar__view {
-  display: block !important;
-  /* 或者 display: flex; 根据你的需求 */
-}
-/* 取消 ElTableColumn 的下方滚动条样式 */
-.el-table--scrollable-x .el-table__body-wrapper {
-  overflow-x: hidden !important; /* 禁止水平滚动 */
-  overflow-y: auto; /* 保留垂直滚动(如果需要) */
-}
-
-.tableBox {
-  width: 100%;
-}
-
-.table_content {
-  width: 100%;
-  overflow: auto;
-  height: calc(100% - 75px);
-}
-
-.table >>> .el-dialog__header {
-  padding: 15px 20px;
-  background: #454545;
-}
-
-.table >>> .el-dialog__title {
-  color: #fff;
-}
-
-.input_box {
-  position: relative;
-  height: 40px;
-  width: 200px;
-}
-/* 输入框容器*/
-.input-container {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  /* border: 1px solid red; */
-}
-/* 搜索框 */
-.table_find {
-  width: 100%;
-  height: 40px;
-  padding-right: 50px;
-  padding-left: 10px;
-  border: 1px solid rgb(189, 189, 189);
-  font-size: 15px;
-  outline: none;
-  cursor: pointer;
-  border-radius: 10px;
-  box-sizing: border-box;
-}
-
-/* 自定义 el-select 的外部样式 */
-.custom-select {
-  width: 220px; /* 设置宽度 */
-  font-size: 14px; /* 设置字体大小 */
-}
-
-/* 修改 el-input__inner 样式 */
-.custom-select .el-input__inner {
-  height: 30px; /* 修改输入框的高度 */
-  font-size: 16px; /* 修改字体大小 */
-  padding-left: 15px; /* 修改左边的内边距 */
-  border-radius: 6px; /* 设置圆角 */
-  border: 1px solid #dcdfe6; /* 设置边框 */
-}
-
-/* 如果需要修改选项的样式,可以使用 .el-select-dropdown__item */
-.custom-select .el-select-dropdown__item {
-  font-size: 14px; /* 修改下拉框选项的字体大小 */
-  padding: 12px; /* 修改选项的内边距 */
-}
-
-.custom-select .el-select-dropdown__item.selected {
-  background-color: #409eff; /* 设置选中项的背景色 */
-  color: #fff; /* 设置选中项的字体颜色 */
-}
-/* 移动弹窗的选择区域 */
-.table_down {
-  width: 100%;
-  height: 450px;
-  /* 添加滚动条 */
-  overflow-y: auto; /* 当内容超出时,显示垂直滚动条 */
-  max-height: 450px; /* 设置最大高度以限制显示区域 */
-}
-
-/* .checkbox_comment样式 */
-.checkbox_comment {
-  position: relative; /* 为复选框和下划线提供定位 */
-  width: 50%;
-  height: 50px;
-  margin-top: 10px;
-  display: flex; /* 使用flexbox对齐 */
-  align-items: center; /* 垂直居中 */
-  justify-content: space-between; /* 确保文本和复选框分别位于两端 */
-  float: left;
-}
-/* 下划线 */
-.checkbox_comment::after {
-  content: "";
-  position: absolute;
-  bottom: 0;
-  left: 13%;
-  width: 250px;
-  height: 1px;
-  background-color: #e7e7e7;
-}
-/* 添加账户的容器 */
-.el-dialog__body {
-  color: #606266;
-  font-size: 14px;
-  height: 180px;
-}
-/* 新增组织的内容容器 */
-.el_dialog_org_content {
-  color: #606266;
-  font-size: 14px;
-  height: 120px;
-}
-/* 新增学校的内容容器 */
-.el_dialog_school_content {
-  color: #606266;
-  font-size: 14px;
-  /* height: 300px; */
-}/* 输入框 */
-.form_input {
-  width: 400px;
-}
-.el-form {
-  /* margin-left: 66px;
-  width: 60%; */
-  /* border: 1px solid red; */
-}
-/* 确认跟取消区域 */
-.form_tool {
-  margin-top: 20px;
-  float: left;
-  margin-left: 90px;
-}
-/* 按钮样式 */
-.form_tool .el-button {
-  width: 100px;
-}
-
-
-/* 新增学校按钮 */
-.add_school {
-  float: left;
-  margin-top: 40px;
-  margin-left: 100px;
-}
-.el-form-item {
-  margin-bottom: 22px;
-  display: flex;
-  align-items: center;
-  /* border: 1px solid black; */
-}
-.el-form-item__label {
-  font-size: 14px;
-  color: #606266;
-  line-height: 40px;
-  margin-left: 20px;
-  width: 70px;
-}
-.el-form-item__content {
-  line-height: 40px;
-  position: relative;
-  font-size: 14px;
-}
-</style>

+ 0 - 1908
src/components/list.vue

@@ -1,1908 +0,0 @@
-<template>
-  <!-- 背景层,覆盖整个页面 -->
-  <div class="list_container">
-    <!-- 头部区域 -->
-    <div class="title_examine">
-      <div class="pub_title">账号列表</div>
-      <div style="margin-left: auto">
-        <el-input
-          v-model="s_name"
-          placeholder="输入检索用户名"
-          size="normal"
-          clearable
-          @input="changeOid"
-          style="margin-right: 10px; width: 200px"
-        ></el-input>
-        <el-input
-          v-model="s_username"
-          placeholder="输入检索账号"
-          size="normal"
-          clearable
-          @input="changeOid"
-          style="margin-right: 10px; width: 200px"
-        ></el-input>
-        <el-select
-          v-model="checkRole"
-          placeholder="选择身份"
-          clearable
-          filterable
-          @change="changeOid"
-          style="margin-right: 10px; width: 120px"
-        >
-          <el-option
-            v-for="item in roleArray"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-        <el-select
-          v-model="checkOid"
-          placeholder="选择学校"
-          clearable
-          filterable
-          @change="changeOid"
-          style="margin-right: 10px"
-        >
-          <el-option
-            v-for="item in getSchool"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          >
-          </el-option>
-        </el-select>
-        <el-select
-          v-model="checkOrg"
-          placeholder="选择组织"
-          clearable
-          filterable
-          @change="changeOrg"
-          style="margin-right: 10px"
-        >
-          <el-option
-            v-for="item in organizations"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          >
-          </el-option>
-        </el-select>
-        <el-button type="primary" size="small" @click="nextStep()"
-          >新增账户</el-button
-        >
-      </div>
-    </div>
-    <!-- 学习名称组织名称表单区域 -->
-    <el-dialog
-      title="移动选择"
-      class="table"
-      :visible.sync="isOrgFormVisible"
-      :before-close="close_table"
-      width="920px"
-    >
-      <!-- 搜索框区域 -->
-      <div class="input-container">
-        <div class="input_box">
-          <input
-            type="text"
-            v-model="searchQuery"
-            placeholder="搜索学校"
-            @change="ajax_org_check"
-            class="table_find"
-          />
-        </div>
-        <el-select
-          style="margin-left: 10px"
-          v-model="school.OrgId"
-          placeholder="请选择组织"
-          class="custom-select"
-          @change="ajax_org_check"
-          filterable
-          clearable
-        >
-          <!-- 动态生成 <el-option> -->
-          <el-option
-            v-for="(org, index) in organizations"
-            :key="index"
-            :label="org.name"
-            :value="org.id"
-          >
-            {{ org.name }}
-          </el-option>
-        </el-select>
-
-        <el-select
-          style="margin-left: 10px"
-          v-model="selReg"
-          placeholder="请选择区域"
-          class="custom-select"
-          @change="ajax_org_check"
-          filterable
-          clearable
-        >
-          <el-option
-            v-for="(org, index) in regionCList"
-            :key="index"
-            :label="org.name"
-            :value="org.name"
-          >
-            {{ org.name }}
-          </el-option>
-        </el-select>
-      </div>
-      <div class="table_down">
-        <div v-if="cn_org">
-          <div class="checkbox-container">
-            <!-- 循环渲染每个学校 -->
-            <div
-              v-for="(school, index) in cn_school"
-              :key="index"
-              class="checkbox_comment"
-            >
-              <div class="checkbox-left">
-                <label class="checkbox-label">
-                  <!-- 学校名称,显示 school.name -->
-                  <a>{{ school.name }}</a>
-                </label>
-                <!-- 单选框,使用 v-model 绑定到一个变量 -->
-                <input
-                  type="radio"
-                  class="checkbox_input_org"
-                  name="school_selection"
-                  :value="school.id"
-                  v-model="selectedSchool"
-                />
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="close_table">取 消</el-button>
-        <el-button type="primary" @click="add_school_dialog = true"
-          >新增学校</el-button
-        >
-        <el-button type="primary" @click="add_org_dialog = true"
-          >新增组织</el-button
-        >
-        <el-button type="primary" @click="ajax_confirm">确认移动</el-button>
-      </div>
-    </el-dialog>
-    <!-- 新增账户弹窗 -->
-    <el-dialog
-      title="新增账户"
-      class="table"
-      :visible.sync="isTableUseVisible"
-      :before-close="close_table"
-      width="700px"
-    >
-    <div class="el-form-item">
-            <label class="el-form-item__label">选择组织</label>
-            <div class="el-form-item__content">
-              <el-select
-                v-model="person.selectedOrg"
-                placeholder="请选择组织"
-                class="custom-select"
-                @change="orgChange"
-                clearable
-                filterable
-              >
-                <el-option
-                  v-for="item in organizations"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">选择学校</label>
-            <div class="el-form-item__content">
-              <el-select
-                v-model="person.selectedSchool"
-                placeholder="请选择学校"
-                class="custom-select"
-                @change="schoolChange"
-                clearable
-                filterable
-              >
-                <el-option
-                  v-for="item in getSchool2"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-      <div>
-        <form class="el-form">
-          <div class="el-form-item">
-            <label class="el-form-item__label">姓名</label>
-            <div class="el-form-item__content">
-              <el-input
-                v-model="person.name"
-                placeholder="请输入姓名"
-                autocomplete="off"
-                class="add_input"
-              ></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">账号</label>
-            <div class="el-form-item__content">
-              <el-input
-                v-model="person.account"
-                placeholder="请输入账号"
-                autocomplete="off"
-                class="add_input"
-              ></el-input>
-            </div>
-            <span style="margin-left: 5px;">{{ this.SuffixData }}</span>
-          </div>
-          <!-- <div class="el-form-item">
-            <label class="el-form-item__label">选择身份</label>
-            <div class="el-form-item__content">
-              <el-select
-                v-model="person.type"
-                placeholder="请选择身份"
-                class="custom-select"
-              >
-                <el-option :value="1" label="学生">学生</el-option>
-                <el-option :value="2" label="老师">老师</el-option>
-              </el-select>
-            </div>
-          </div> -->
-         
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="el-dialog__footer">
-        <el-button @click="close_table">取 消</el-button>
-        <el-button type="primary" @click="addUser">确认</el-button>
-      </div>
-    </el-dialog>
-    <!-- 新增学校弹窗 -->
-    <el-dialog
-      title="新增学校"
-      class="table"
-      :visible.sync="add_school_dialog"
-      :before-close="close_add_school"
-      width="700px"
-    >
-      <div class="el_dialog_school_content">
-        <form class="el-form">
-          <!-- 学校名称 -->
-          <div class="el-form-item" style="margin-top: 15px">
-            <label class="el-form-item__label" style="width: 100px"
-              >学校名称</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="sch_name"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="学校名称"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 地区 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px">地区</label>
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="region"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="请输入地区"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 学校编码 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >学校编码</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="schoolCode"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="请输入编码"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 学校类型
-        <div class="el-form-item">
-          <div class="el-form-item__content" style="margin-left: 100px;">
-            <span>
-              <el-radio v-model="schoolType" label="1">普通学校</el-radio>
-              <el-radio v-model="schoolType" label="2">协同学校</el-radio>
-            </span>
-          </div>
-        </div> -->
-          <!-- 登录权限
-        <div class="el-form-item">
-          <div class="el-form-item__content" style="margin-left: 100px;">
-            <span>
-              <el-radio v-model="loginPermission" label="1">允许登录</el-radio>
-              <el-radio v-model="loginPermission" label="2">不可登录</el-radio>
-            </span>
-          </div>
-        </div> -->
-          <!-- 上级组织 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >上级组织</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <el-form
-                    :model="school"
-                    ref="form"
-                  >
-                    <el-select
-                      v-model="school.parentOrgId"
-                      placeholder="请选择组织"
-                      class="custom-select"
-                      filterable
-                    >
-                      <el-option
-                        v-for="(org, index) in organizations"
-                        :key="index"
-                        :label="org.name"
-                        :value="org.id"
-                      >
-                        {{ org.name }}
-                      </el-option>
-                    </el-select>
-                  </el-form>
-                </div>
-              </span>
-            </div>
-          </div>
-
-           <!-- 区域 -->
-           <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >区域</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <!-- <el-form
-                    :model="school"
-                    ref="form"
-                  > -->
-                    <el-select
-                      v-model="regionC"
-                      placeholder="请选择区域"
-                      class="custom-select"
-                      filterable
-                    >
-                      <el-option
-                        v-for="(org, index) in regionCList"
-                        :key="index"
-                        :label="org.name"
-                        :value="org.name"
-                      >
-                        {{ org.name }}
-                      </el-option>
-                    </el-select>
-                  <!-- </el-form> -->
-                </div>
-              </span>
-            </div>
-          </div>
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="el-dialog__footer">
-        <el-button @click="close_add_school">取 消</el-button>
-        <el-button type="primary" @click="ajax_add_school">确认</el-button>
-      </div>
-    </el-dialog>
-    <!-- 新增组织弹窗 -->
-    <el-dialog
-      title="新增组织"
-      class="table"
-      :visible.sync="add_org_dialog"
-      :before-close="close_add_school"
-      width="700px"
-    >
-      <div class="el_dialog_org_content">
-        <form class="el-form">
-          <!-- 组织名称 -->
-          <div class="el-form-item" style="margin-top: 15px">
-            <label class="el-form-item__label" style="width: 100px"
-              >组织名称</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="orgName"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="组织名称"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 地区 -->
-          <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >组织编码</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <input
-                    v-model="randomCode"
-                    type="text"
-                    autocomplete="off"
-                    placeholder="请输入随机码"
-                    class="el-input__inner"
-                  />
-                </div>
-              </span>
-            </div>
-          </div>
-           <!-- 区域 -->
-           <div class="el-form-item">
-            <label class="el-form-item__label" style="width: 100px"
-              >区域</label
-            >
-            <div class="el-form-item__content" style="margin-left: 5px">
-              <span>
-                <div class="add_input el-input el-input--suffix">
-                  <!-- <el-form
-                    :model="school"
-                    ref="form"
-                  > -->
-                    <el-select
-                      v-model="regionC"
-                      placeholder="请选择区域"
-                      class="custom-select"
-                      filterable
-                    >
-                      <el-option
-                        v-for="(org, index) in regionCList"
-                        :key="index"
-                        :label="org.name"
-                        :value="org.name"
-                      >
-                        {{ org.name }}
-                      </el-option>
-                    </el-select>
-                  <!-- </el-form> -->
-                </div>
-              </span>
-            </div>
-          </div>
-          <!-- 登录权限
-          <div class="el-form-item">
-            <div class="el-form-item__content" style="margin-left: 100px;">
-              <span>
-                <el-radio v-model="radio" label="1">允许登录</el-radio>
-                <el-radio v-model="radio" label="2">不可登录</el-radio>
-              </span>
-            </div>
-          </div> -->
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="close_add_school">取 消</el-button>
-        <el-button type="primary" @click="ajax_add_org">确认</el-button>
-      </div>
-    </el-dialog>
-    <!-- 内容区域 -->
-    <div class="content">
-      <!-- 按钮区域 -->
-      <div class="button_top">
-        <!-- "启用中"按钮 -->
-        <a
-          @click="showType(1)"
-          :style="{ color: type == 1 ? 'black' : 'rgb(179, 179, 179)' }"
-          >启用中({{ tableData_start }})</a
-        >
-        <!-- "已停用"按钮 -->
-        <a
-          @click="showType(0)"
-          :style="{ color: type == 0 ? 'black' : 'rgb(179, 179, 179)' }"
-          >已停用({{ tableData_stop }})</a
-        >
-      </div>
-      <!-- 启用中区域 -->
-      <div>
-        <el-table
-          :data="tableData"
-          border
-          style="width: 100%"
-          stripe
-          :header-cell-style="headerCellStyle"
-          v-loading="tableLoading"
-          @selection-change="handleSelectionChange"
-          :row-key="(row) => row.userid"
-        >
-          <!-- <el-table-column type="selection" width="50px" :reserve-selection="true"></el-table-column> -->
-          <el-table-column
-            show-overflow-tooltip
-            prop="company_name"
-            label="组织名称"
-            min-width="32"
-            header-align="center"
-            align="center"
-          />
-          <el-table-column
-            show-overflow-tooltip
-            prop="company_number"
-            label="学校名称"
-            min-width="32"
-            header-align="center"
-            align="center"
-          />
-          <el-table-column
-            show-overflow-tooltip
-            prop="company_number"
-            label="组织编号"
-            min-width="32"
-            header-align="center"
-            align="center"
-          >
-          <template slot-scope="{ row }">
-              <div>{{ row.orgCode ? row.orgCode : row.schoolCode ? row.schoolCode : '暂无' }}</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            show-overflow-tooltip
-            prop="name"
-            label="姓名"
-            min-width="32"
-            header-align="center"
-            align="center"
-          />
-          <el-table-column
-            show-overflow-tooltip
-            prop="account"
-            label="账户"
-            min-width="32"
-            header-align="center"
-            align="center"
-          />
-          <el-table-column
-            show-overflow-tooltip
-            prop="Ctime"
-            label="账户开通时间"
-            min-width="40"
-            header-align="center"
-            align="center"
-          />
-          <el-table-column
-            show-overflow-tooltip
-            label="身份"
-            min-width="32"
-            header-align="center"
-            align="center"
-          >
-            <template slot-scope="{ row }">
-              <div>{{ roleType(row) }}</div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            show-overflow-toolti
-            label="操作"
-            min-width="35"
-            header-align="center"
-            align="center"
-          >
-            <template slot-scope="{ row }">
-              <el-button
-                link
-                type="text"
-                size="small"
-                @click="ajax__open_stop(row)"
-                v-if="row.state == 1"
-                >停用</el-button
-              >
-              <el-button
-                link
-                type="text"
-                size="small"
-                @click="run(row)"
-                v-if="row.state == 1"
-                >移动</el-button
-              >
-              <el-button
-                link
-                type="text"
-                size="small"
-                @click="ajax__open_stop(row)"
-                v-if="row.state == 0"
-                >启用</el-button
-              >
-
-              <!-- 管理员操作按钮,只有当 row.type === 1 时才显示 -->
-              <el-button
-                v-if="row.type === 1 && row.state == 1"
-                link
-                type="text"
-                size="small"
-                @click="ajax_admin(row.userid, row.role, row.type)"
-              >
-                {{ row.role === 1 ? "取消管理员" : "设置管理员" }}
-              </el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <!-- 分页区域 -->
-        <div class="Pagetion" v-if="total">
-          <el-pagination
-            :current-page="currentPage"
-            :page-size="pageSize"
-            :total="total"
-            layout="total, prev, pager, next, jumper"
-            @current-change="handlePageChange"
-          >
-          </el-pagination>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import { API_CONFIG } from "@/common/apiConfig";
-import { addOp } from "@/api/user";
-import { mapGetters } from "vuex";
-import { debounce } from "lodash";
-import { addUser } from "@/api/user.js";
-
-export default {
-  name: "HelloWorld",
-  components: {},
-  data() {
-    return {
-      // 新增账户默认后缀
-      SuffixData:'',
-      // 储存筛选完后的学校
-      schoolList:[],
-      // 控制下拉菜单的显示与隐藏
-      dropdownVisible: false,
-      checked: true,
-      showCompany: false, // 默认隐藏
-      // 响应式数据
-      //移动弹窗
-      isOrgFormVisible: false,
-      //新增账户
-      isTableUseVisible: false,
-      //新增组织
-      add_org_dialog: false,
-      //新增组织的变量定义
-      orgName: "", // 组织名称
-      u_create: "", // 创建人
-      randomCode: "", //随机码(可以为空)
-      uLogin: "1", // 登录状态 (1 或 2)
-      radio: "1",
-      //新增学校参数的定义
-      sch_name: "", //学校名称
-      region: "", //地区
-      schoolType: "1", //学校单选框类型
-      schoolCode: "", //学校编码
-      loginPermission: "1", //是否允许登录
-      //学校弹窗
-      add_school_dialog: false,
-      isCompanyDropdownVisible: false,
-      companyListVisibility: [false, false, false],
-      open_content: true,
-      add_button: true,
-      stop_content: false,
-      open: true,
-      stop: false,
-      // 用来存储选中的学校名称
-      selectedSchool: "",
-      // 启用区域分页
-      currentPage: 1, // 当前第几页
-      pageSize: 10, // 每页显示条目数
-      // 停止区域分页
-      down_currentPage: 1, // 当前第几页
-      down_pageSize: 10, // 每页显示的条目数
-      // 两个分页初始化状态
-      up_page: true,
-      down_page: false,
-      company_name: 0,
-      // 启用数组
-      tableData: [],
-      // 停用数组
-      tableData_start: "",
-      tableData_stop: "",
-      // 添加账户初始化
-      form: {
-        name: "",
-        account: "",
-        organization: "",
-        school: "",
-      },
-      //移动组织初始化
-      cn_org: true,
-      hk_org: false,
-      com_org: false,
-      // 用于存放从后台获取的组织数据
-      organizations: [],
-      // 用于存放从后台获取的学校数据
-      cn_school: [],
-      searchQuery: "", // 用来存储输入框的值
-      dialogVisible: true,
-      school: {
-        OrgId: null, // 初始化 OrgId 为 null 或适当的默认值
-      },
-      regionCList:[
-        {id:1,name:'hk'},
-        {id:2,name:'cn'}
-      ], //区域列表
-      regionC:'cn', //区域
-      selReg:'', //区域搜索
-      // 用来存储传递的参数
-      ajaxParams: null,
-      check_user_id: "", // 存放当前选择的用户的ID
-      type: 1,
-      total: 0,
-      tableLoading: false,
-      checkOrg: "",
-      checkOid: "",
-      s_name: "",
-      s_username: "",
-      checkRole: "",
-      roleArray: [
-        { value: "1", label: "老师" },
-        { value: "2", label: "学生" },
-        { value: "3", label: "管理员" },
-      ],
-      opUser: {},
-      person: {
-        name: "",
-        account: "",
-        type: "",
-        selectedOrg: "", // 存放所选的组织
-        selectedSchool: "", // 存放所选的学校
-      },
-      checkArray: [],
-    };
-  },
-  computed: {
-    ...mapGetters(["userid"]),
-    roleType() {
-      return function (row) {
-        if (row.type == 2) {
-          return "学生";
-        } else if (row.type == 1) {
-          return row.role == 1 ? "管理员" : "老师";
-        }
-      };
-    },
-    getSchool() {
-      return this.checkOrg
-        ? this.cn_school.filter((e) => e.org === this.checkOrg)
-        : this.cn_school;
-    },
-    getSchool2() {
-      return this.person.selectedOrg
-        ? this.cn_school.filter((e) => e.org === this.person.selectedOrg)
-        : this.cn_school;
-    },
-    getSchool3() {
-      return this.school.OrgId || this.searchQuery
-        ? this.cn_school.filter((e) => e.org === this.school.OrgId || e.name.includes(this.searchQuery))
-        : this.cn_school;
-    },
-  },
-  watch: {},
-  methods: {
-    handleSelectionChange(selectedRows) {
-      this.checkArray = selectedRows.map((row) => row.userid);
-    },
-    // 移动按钮,将isOrgFormVisible区域显示
-    run(row) {
-      this.opUser = row;
-      this.check_user_id = row.userid; // 将选中的userid存储到check_user_id中
-      this.isOrgFormVisible = true; // 显示区域
-      // console.log("选中的用户ID:", this.check_user_id); // 打印出当前的选中用户ID
-    },
-    // 移动关闭按钮
-    close_table() {
-
-      // 清空补充信息查询数据
-      this.searchQuery = '';
-      this.school.OrgId = null;
-      this.selReg = '';
-      this.ajax_school()
-
-      this.SuffixData = ''
-      this.isOrgFormVisible = false;
-      this.isTableUseVisible = false;
-      this.selectedSchool = ''
-    },
-    // 新增账户
-    nextStep() {
-      this.isTableUseVisible = true;
-      this.person = {
-        name: "",
-        account: "",
-        type: 2,
-        selectedOrg: "", // 存放所选的组织
-        selectedSchool: "", // 存放所选的学校
-      };
-    },
-    //新增账户关闭
-    form_clost() {
-      this.isTableUseVisible = false;
-    },
-    //新增组织关闭
-    // close_add_org() {
-    //   this.add_org_dialog = false;
-    // },
-    //新增学校关闭
-    close_add_school() {
-      this.regionC = 'cn'
-      this.add_org_dialog = false;
-      this.add_school_dialog = false;
-    },
-    showType(type) {
-      this.type = type;
-      this.currentPage = 1;
-      this.getData();
-    },
-    // 页码扩展按钮
-    handlePageChange(page) {
-      this.currentPage = page;
-      this.getData();
-    },
-    // 表头的背景色
-    headerCellStyle() {
-      return { backgroundColor: "#f1f1f1" };
-    },
-    // 已启用
-    getData() {
-      // 确认后发起请求
-      this.tableLoading = true;
-      let params = [
-        {
-          functionName: API_CONFIG.ajaxstart.functionName, // 使用配置中的存储过程名称
-          r_type: this.type,
-          cn: this.s_name,
-          un: this.s_username,
-          oid: this.checkOid,
-          org: this.checkOrg,
-          userType: this.checkRole,
-          page: this.currentPage, // 使用当前页码
-          num: this.pageSize, // 每页条目数
-        },
-      ];
-      this.tableData = [];
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          // 假设 res.data[0] 是返回的用户数据数组
-          const users = res.data[0].map((user) => ({
-            company_name: user.org_name || "暂无", // 组织名称
-            company_number: user.school_name || "暂无", // 学校名称
-            name: user.user_name || "暂无", // 姓名
-            account: user.account_name || "暂无", // 账户
-            userid: user.user_id,
-            role: user.admin_role || 0, // 角色,假设 1 为管理员,0 为普通用户
-            school: user.s_id,
-            org: user.org,
-            type: user.usertype,
-            state: user.user_state,
-            orgCode: user.org_code,
-            schoolCode: user.school_code,
-            Ctime: user.Ctime,
-          }));
-
-          // this.tableData = Array(this.pageSize * (this.currentPage - 1)).fill(null).concat(users);
-          this.tableData = users;
-          this.total = res.data[0][0].total_count;
-          this.tableData_stop = res.data[2][0].num;
-          this.tableData_start = res.data[1][0].num;
-          this.tableLoading = false;
-          console.log("you",res.data);
-          
-        })
-        .catch((err) => {
-          // 处理失败的响应
-          this.tableLoading = false;
-          // this.$message.error("查询失败");
-          console.error("请求失败,错误信息:", err); // 打印更详细的错误信息
-        });
-    },
-    // 停用或者启用
-    ajax__open_stop(row) {
-      const actionMessage = row.state == 1 ? "停用该用户" : "启用该用户";
-      const successMessage = row.state == 1 ? "停用成功!" : "启用成功!";
-      const cancelMessage = row.state == 1 ? "已取消停用" : "已取消启用";
-      let params = [
-        {
-          functionName: API_CONFIG.userstate.functionName, // 调用存储过程的名称
-          u_id: row.userid, // 将传入的userid设置为 u_id
-        },
-      ];
-      // 弹窗提示确认
-      this.$confirm(`此操作将会${actionMessage}, 是否继续?`, "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          // 在用户点击确定后,发起 AJAX 请求
-          this.$ajax
-            .post(API_CONFIG.baseUrl, params)
-            .then(async () => {
-              // 提示操作成功
-              this.$message({
-                type: "success",
-                message: successMessage,
-              });
-
-              this.getData();
-              await addOp({
-                uid: this.userid,
-                cid: "",
-                type: "user_op",
-                content: `${row.state == 1 ? "停用" : "启用"}了${row.userid}`,
-              });
-            })
-            .catch((err) => {
-              // 处理失败的响应
-              this.$message.error("处理失败");
-              console.error("请求失败,错误信息:", err); // 打印详细错误信息
-            });
-        })
-        .catch(() => {
-          // 取消操作后提示
-          this.$message({
-            type: "info",
-            message: cancelMessage,
-          });
-        });
-    },
-    //设置管理员
-    ajax_admin(userid, role) {
-      // 判断用户的角色,弹出相应的提示
-      let messageContent =
-        role === 1
-          ? "此操作将会取消此用户的管理员状态,是否继续?"
-          : "此操作将会设置该用户为管理员,是否继续?";
-
-      // 弹窗确认操作
-      this.$confirm(messageContent, "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          // 发送请求时的参数
-          let params = [
-            {
-              functionName: API_CONFIG.ajax_admin.functionName, // 存储过程的名称
-              u_id: userid,
-            },
-          ];
-
-          this.$ajax
-            .post(API_CONFIG.baseUrl, params)
-            .then(async () => {
-              // 只有在成功执行时调用这两个函数
-              this.getData();
-              // 如果更新成功,显示成功提示并调用 ajax_user_stop 和 getData
-              this.$message({
-                type: "success",
-                message: "已成功执行!",
-              });
-              await addOp({
-                uid: this.userid,
-                cid: "",
-                type: "user_op",
-                content: `将${userid}${
-                  role == 1 ? "取消了管理员" : "设置了管理员"
-                }`,
-              });
-            })
-            .catch((error) => {
-              // 请求失败的处理
-              console.error("请求失败:", error);
-              this.$message({
-                type: "error",
-                message: "操作失败,请稍后再试",
-              });
-            });
-        })
-        .catch(() => {
-          // 取消操作时的提示
-          this.$message({
-            type: "info",
-            message: "已取消操作",
-          });
-        });
-    },
-    addUser() {
-      // 检查必填项
-      if (
-        !this.person.name ||
-        !this.person.account ||
-        !this.person.selectedSchool
-      ) {
-        this.$message({
-          type: "error",
-          message: "请填写所有必填项:姓名、账号、组织和学校。",
-        });
-        return; // 终止函数执行
-      }
-      let emailData = this.getEmailWithAt(this.person.account)
-      
-      let zSuffix = ''
-
-      if (this.SuffixData && emailData) {
-        zSuffix =  this.person.account.split('@')[0] + this.SuffixData
-      }else{
-        zSuffix  = this.person.account + this.SuffixData
-      }
-
-
-      console.log('zSuffix',zSuffix);
-      // this.person.account
-
-      if (!/\S+@\S+\.\S+/.test(zSuffix)) {
-        this.$message.error("账号要填写邮箱格式");
-        return;
-      }
-      let params = {
-        alias: this.person.name,
-        username: zSuffix,
-        org: this.person.selectedOrg,
-        oid: this.person.selectedSchool,
-        ph: "",
-        cid: "",
-        type: 1,
-        opid: "",
-        dest: "",
-        eduid: "",
-      };
-      addUser(params)
-        .then(async (response) => {
-          if (response) {
-            await addOp({
-              uid: this.userid,
-              cid: "",
-              type: "user_op",
-              content: `添加了${this.person.name} 账号为${zSuffix}`,
-            });
-            this.$message({
-              type: "success",
-              message: "操作成功",
-            });
-            this.SuffixData = '';
-            this.isTableUseVisible = false;
-            this.getData(); // 例如刷新表格数据
-          }
-        })
-        .catch((error) => {
-          console.error("请求失败,错误信息:", error);
-        });
-    },
-    // 学校查询
-    ajax_school() {
-      // const params = [API_CONFIG.ajax_school]; // 使用配置中的接口参数
-
-
-      // 构建请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_school.functionName, // 调用存储过程的名称
-          u_name: this.searchQuery, // 学校名称,绑定到 orgName
-          u_org: this.school.OrgId || '', // 选择的组织的 ID,绑定到 school.parentOrgId,如果没有选择则为空
-          u_regC: this.selReg
-        },
-      ];
-
-
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          // console.log("返回的数据为:", res.data);  // 检查返回的数据
-          if (res.data && Array.isArray(res.data[0])) {
-            // 将 name 和 org 都存入 cn_school 数组中
-            this.cn_school = res.data[0].map((item) => ({
-              name: item.name,
-              id: item.id,
-              org: item.org,
-              area:item.area
-            }));
-            // this.schoolList= res.data[0].map((item) => ({
-            //   name: item.name,
-            //   id: item.id,
-            //   org: item.org,
-            //   area:item.area
-            // }));
-            console.log(this.cn_school);
-          }
-        })
-        .catch((err) => {
-          this.$message.error("查询失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    //组织查询
-    ajax_org() {
-      const params = [API_CONFIG.ajax_org]; // 使用配置中的接口参数
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          // console.log("返回的数据为:", res.data);  // 检查返回的数据
-          if (res.data && Array.isArray(res.data[0])) {
-            // 使用 map() 提取所有组织名称
-            this.organizations = res.data[0].map((item) => ({
-              name: item.name,
-              id: item.id,
-            }));
-          }
-          // console.log("返回的结果为:",this.organizations);
-        })
-        .catch((err) => {
-          this.$message.error("查询失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    //关键词查询
-    ajax_school_name() {
-      this.selectedSchool = ""
-    },
-    //组织下拉菜单查询
-    ajax_org_check() {
-      this.selectedSchool = "";
-      this.ajax_school()
-    },
-    //新增学校
-    ajax_add_school() {
-      // 校验学校名称是否为空
-      if (!this.sch_name || this.sch_name.trim() === "") {
-        this.$message.error("学校名称不能为空!");
-        return;
-      }
-
-      // 构建请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_add_school.functionName, // 调用存储过程的名称
-          u_name: this.sch_name, // 学校名称,绑定到 orgName
-          u_org: this.school.parentOrgId || "", // 选择的组织的 ID,绑定到 school.parentOrgId,如果没有选择则为空
-          u_dest: this.region || "", // 地区,绑定到 region,如果为空则传空字符串
-          u_type: this.schoolType || "", // 学校类型,绑定到 schoolType,如果没有选择则为空
-          u_code: this.schoolCode || "", // 学校编码,绑定到 schoolCode,如果为空则传空字符串
-          u_regionC: this.regionC || "", 
-          u_isLogin: this.loginPermission === "1" ? 1 : 2, // 是否允许登录,默认传 2(不允许登录)如果没有选择
-          uid: this.userid,
-        },
-      ];
-
-      // 发起请求
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "已成功执行!",
-          });
-          // 刷新学校列表
-          this.ajax_school();
-          // 关闭弹窗
-          this.add_school_dialog = false;
-          // 清空输入框、下拉菜单选择和单选框
-          this.sch_name = ""; // 清空学校名称
-          this.school.parentOrgId = ""; // 清空组织选择
-          this.region = ""; // 清空地区选择
-          this.schoolType = "1"; // 清空学校类型选择
-          this.schoolCode = ""; // 清空学校编码
-          this.regionC = 'cn'
-          this.loginPermission = "1"; // 清空登录权限的选择
-        })
-        .catch((err) => {
-          this.$message.error("插入失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    //新增组织
-    ajax_add_org() {
-      // 获取弹窗中的输入内容
-      let orgName = this.orgName; // 组织名称
-      let randomCode = this.randomCode || ""; // 随机码(可为空)
-      let uLogin = this.radio; // 获取复选框选中的值(1 或 2)
-
-      // 验证组织名称不能为空
-      if (!orgName) {
-        this.$message.error("组织名称不能为空");
-        return;
-      }
-
-      // 构造请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_add_org.functionName, // 调用存储过程的名称
-          u_name: orgName, // 组织名称
-          u_create: this.userid, // u_create 固定为0
-          u_code: randomCode, // 随机码(可以为空)
-          u_regionC: this.regionC,
-          u_login: uLogin, // 登录状态
-        },
-      ];
-
-      // 发起请求
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "已成功执行!",
-          });
-          // 刷新组织列表
-          this.ajax_org();
-          //关闭弹窗
-          this.add_org_dialog = false;
-          // 清空输入框、下拉菜单选择和单选框
-          this.orgName = ""; // 清空学校名称
-          this.regionC = 'cn' 
-          this.randomCode = ""; // 清空地区选择
-          this.uLogin = "1"; // 清空学校类型选择
-        })
-        .catch((err) => {
-          this.$message.error("插入失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    //确认移动
-    ajax_confirm() {
-      // 获取选择的组织ID,确保 orgId 在调用之前已经定义
-      let orgId = this.school.OrgId || ""; // 如果没有选择组织,则为空字符串
-
-      // 获取选中的学校对象
-      const selectedSchoolObject = this.cn_school.find(
-        (school) => school.id === this.selectedSchool
-      );
-
-      // 判断学校ID是否为空
-      if (!selectedSchoolObject || !selectedSchoolObject.id) {
-        this.$message({
-          type: "warning",
-          message: "请选择你要移动的学校!",
-        });
-        return; // 学校ID为空时,阻止后续操作
-      }
-
-      if (selectedSchoolObject.org) {
-        orgId = selectedSchoolObject.org;
-      }
-
-      // 构造请求参数
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_confirm.functionName, // 调用存储过程的名称
-          u_id: this.check_user_id, // 使用this.check_user_id来获取用户id
-          o_id: orgId || "", // 选择的组织的 ID,绑定到 school.parentOrgId,如果没有选择则为空
-          s_id: selectedSchoolObject.id, // 选中的学校的id
-        },
-      ];
-
-      // 发起请求
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then(async () => {
-          this.$message({
-            type: "success",
-            message: "移动成功!",
-          });
-          this.isOrgFormVisible = false; // 隐藏区域
-          // 在此之后再进行输出
-          // console.log("选择的用户id为:", this.check_user_id);
-          // console.log("选择的组织id为:", orgId);
-          // console.log("选择的学校id为:", selectedSchoolObject.id);
-          this.getData(); // 刷新
-          //清空数据
-          this.school.OrgId = ""; // 清空所选组织
-          // 在此之后清空选中的学校
-          this.selectedSchool = null; // 取消选择,重置单选框
-          //刷新学校选择
-          this.ajax_school();
-          await addOp({
-            uid: this.userid,
-            cid: "",
-            type: "user_op",
-            content: `将${this.opUser.userid} 原组织id ${
-              this.opUser.org ? this.opUser.org : "无"
-            } 原学校id ${this.opUser.school}移动到 组织id ${
-              orgId ? orgId : "无"
-            } 学校id ${selectedSchoolObject.id}`,
-          });
-        })
-        .catch((err) => {
-          this.$message.error("移动失败");
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    changeOrg() {
-      this.checkOid = "";
-      this.currentPage = 1;
-      this.getData();
-    },
-    changeOid: debounce(function () {
-      this.currentPage = 1; // 重置当前页
-      this.getData(); // 调用获取数据的方法
-    }, 300),
-    orgChange() {
-      this.SuffixData = ''
-      this.person.selectedSchool = "";
-      this.getSuffix()
-      this.$forceUpdate()
-    },
-    getSuffix(){
-      let params = [
-        {
-          functionName: API_CONFIG.ajax_Suffix.functionName, // 调用存储过程的名称
-          org: this.person.selectedOrg, //组织id
-          oid: this.person.selectedSchool, //学校id
-        },
-      ];
-
-      // 发起请求
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          console.log('getSuffix',res)
-          let data = res.data[0]
-          let orgData = res.data[1]
-
-          if(data.length > 0){
-            let ap = data[0].username
-            this.SuffixData =  this.getEmailWithAt(ap)[0]
-          } else if (orgData.length > 0) {
-            let ap = orgData[0].username
-            this.SuffixData =  this.getEmailWithAt(ap)[0]
-          }
-        
-        })
-        .catch((err) => {
-          console.error("请求失败,错误信息:", err);
-        });
-    },
-    getEmailWithAt(email) {
-      const regex = /@[^@]+$/;  // 匹配最后一个 @ 及其后的内容
-      const match = email.match(regex);
-      return match ? match : '';
-    },
-    schoolChange() {
-      for (var i = 0; i < this.cn_school.length; i++) {
-        if (
-          this.cn_school[i].id == this.person.selectedSchool &&
-          this.cn_school[i].org
-        ) {
-          this.person.selectedOrg = this.cn_school[i].org;
-        }
-      }
-      this.SuffixData = ''
-      if (this.person.selectedSchool != '') {
-        this.getSuffix()
-      }
-
-      this.$forceUpdate()
-    },
-  },
-  mounted() {
-    // this.ajax_user_stop();  // 如果是在启用区域,停用
-    this.getData(); // 如果是在停用区域,启用
-    this.ajax_org(); // 组件创建时,立即调用 ajax_org 获取数据
-    this.ajax_school(); // 组件创建时,立即调用 ajax_org 获取数据
-  },
-};
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-.list_container {
-  width: 100%;
-  height: 100%;
-  padding: 10px;
-  box-sizing: border-box;
-  overflow: auto;
-}
-
-/* 内容区域 */
-.content {
-  width: 100%;
-  overflow: auto;
-  height: calc(100% - 75px);
-}
-/* 按钮区域 */
-.button_top {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  margin: 10px 0;
-}
-
-.button_top a {
-  cursor: pointer;
-  color: black;
-  font-weight: bold;
-}
-
-.button_top a + a {
-  margin-left: 20px;
-}
-/* 表单移动弹窗 */
-.el-table--scrollable-x .el-table__body-wrapper {
-  overflow-x: hidden;
-}
-/* 表单头高度 */
-.el-table .el-table__header th {
-  height: 60px; /* 设置表头行高 */
-  color: rgb(51, 51, 51);
-}
-.el-table th {
-  background-color: rgb(247, 247, 247) !important;
-}
-/* 表格内容的高度以及字体颜色 */
-.el-table__row {
-  height: 60px;
-  color: black;
-}
-/* 表单中操作栏的文字间距 */
-.el-button + .el-button,
-.el-checkbox {
-  margin-left: 25px;
-}
-/* 添加账户的按钮 */
-.add-button {
-  display: flex;
-  align-items: center;
-  background-color: transparent;
-  border: none;
-  cursor: pointer;
-  font-size: 18px;
-  color: black;
-  font-weight: bold;
-  margin-left: -900px;
-  margin-top: 35px;
-  float: left;
-}
-/* +号图标 */
-.add-icon {
-  border: 2px solid black; /* 设置黑色边框 */
-  color: black; /* 设置加号颜色为黑色 */
-  border-radius: 50%; /* 设置为圆形 */
-  width: 15px; /* 设置圆圈的宽度 */
-  height: 15px; /* 设置圆圈的高度 */
-  display: flex; /* 使用 Flexbox 使加号居中 */
-  align-items: center; /* 垂直居中 */
-  justify-content: center; /* 水平居中 */
-  margin-right: 8px; /* 图标与文本之间的间距 */
-}
-
-.el_title {
-  font-size: 18px !important;
-  color: #fff !important;
-  line-height: 40px;
-}
-
-/* 移动弹窗的选择区域 */
-.table_down {
-  width: 100%;
-  height: 450px;
-  /* 添加滚动条 */
-  overflow-y: auto; /* 当内容超出时,显示垂直滚动条 */
-  max-height: 450px; /* 设置最大高度以限制显示区域 */
-}
-/* 头部区域 */
-.table_top {
-  width: 630px;
-  height: 40px;
-  float: left;
-  margin-left: 250px;
-  margin-top: 20px;
-  /* border: 1px solid red; */
-}
-/* 移动弹窗头部区域文字 */
-.organzition_top {
-  font-size: 15px;
-  text-align: center;
-  float: left;
-  padding-right: 95px;
-  color: #0076fe;
-  cursor: pointer;
-}
-/* X号推出弹窗按钮 */
-.table_close {
-  color: #999;
-  position: absolute;
-  font-size: 25px;
-  float: left;
-  margin-left: 420px;
-  cursor: pointer;
-  margin-top: 10px;
-}
-/* 输入框容器*/
-.input-container {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  /* border: 1px solid red; */
-}
-/* 搜索框 */
-.table_find {
-  width: 100%;
-  height: 40px;
-  padding-right: 50px;
-  padding-left: 10px;
-  border: 1px solid rgb(189, 189, 189);
-  font-size: 15px;
-  outline: none;
-  cursor: pointer;
-  border-radius: 10px;
-  box-sizing: border-box;
-}
-/* 按钮选择区域 */
-.check_box_content {
-  width: 90%;
-  height: 45px;
-  float: left;
-  margin-top: 64px;
-  border: 1px solid red;
-}
-/* 按钮样式 */
-.check_box_content .el-button {
-  float: left;
-  margin-top: 5px;
-}
-
-/* 搜索放大镜符号 */
-.el-icon-search {
-  font-size: 25px;
-  position: absolute;
-  display: block;
-  color: black;
-  font-weight: bold;
-  cursor: pointer;
-  top: 50%;
-  transform: translateY(-50%);
-  right: 20px;
-}
-/* 自定义 el-select 的外部样式 */
-.custom-select {
-  width: 220px; /* 设置宽度 */
-  font-size: 14px; /* 设置字体大小 */
-}
-
-/* 修改 el-input__inner 样式 */
-.custom-select .el-input__inner {
-  height: 30px; /* 修改输入框的高度 */
-  font-size: 16px; /* 修改字体大小 */
-  padding-left: 15px; /* 修改左边的内边距 */
-  border-radius: 6px; /* 设置圆角 */
-  border: 1px solid #dcdfe6; /* 设置边框 */
-}
-
-/* 如果需要修改选项的样式,可以使用 .el-select-dropdown__item */
-.custom-select .el-select-dropdown__item {
-  font-size: 14px; /* 修改下拉框选项的字体大小 */
-  padding: 12px; /* 修改选项的内边距 */
-}
-
-.custom-select .el-select-dropdown__item.selected {
-  background-color: #409eff; /* 设置选中项的背景色 */
-  color: #fff; /* 设置选中项的字体颜色 */
-}
-/* 弹窗选择区域 */
-.checkbox-container {
-  height: auto;
-  width: 100%;
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-}
-/* .checkbox_comment样式 */
-.checkbox_comment {
-  position: relative; /* 为复选框和下划线提供定位 */
-  width: 50%;
-  height: 50px;
-  margin-top: 10px;
-  display: flex; /* 使用flexbox对齐 */
-  align-items: center; /* 垂直居中 */
-  justify-content: space-between; /* 确保文本和复选框分别位于两端 */
-  float: left;
-}
-
-/* 下划线 */
-.checkbox_comment::after {
-  content: "";
-  position: absolute;
-  bottom: 0;
-  left: 13%;
-  width: 250px;
-  height: 1px;
-  background-color: #e7e7e7;
-}
-/* .checkbox-left部分 */
-.checkbox-left {
-  flex-grow: 1; /* 使该部分占据剩余空间 */
-  display: flex;
-  align-items: center;
-}
-
-.checkbox-left a {
-  color: #000000;
-  font-size: 14px;
-  margin-left: 70px; /* Adjust the spacing between text and checkbox */
-  float: left;
-  white-space: nowrap; /* Prevent line breaks */
-  overflow: hidden; /* Hide overflow */
-  text-overflow: ellipsis; /* Add ellipsis for overflow text */
-  max-width: 240px; /* Set a maximum width to trigger ellipsis */
-}
-/* 去除原生复选框样式 */
-.checkbox_input {
-  -webkit-appearance: none; /* 去除Safari等浏览器默认样式 */
-  -moz-appearance: none; /* 去除Firefox的默认样式 */
-  appearance: none; /* 去除默认样式 */
-  width: 20px; /* 设置复选框的宽度 */
-  height: 20px; /* 设置复选框的高度 */
-  border: 1.5px solid #000000; /* 默认边框颜色 */
-  position: relative; /* 设置定位,方便后面绝对定位勾号 */
-  cursor: pointer; /* 鼠标悬停时显示为可点击状态 */
-  float: right;
-  margin-top: 20px;
-  margin-right: 10px;
-}
-.checkbox_input:checked {
-  background-color: #007bff; /* 选中时背景颜色为蓝色 */
-  border-color: #007bff; /* 边框颜色为蓝色 */
-}
-/* 选中时的白色勾号 */
-.checkbox_input:checked::before {
-  content: "";
-  position: absolute;
-  top: 0px;
-  left: 5px;
-  width: 6px;
-  height: 12px;
-  border: solid white;
-  border-width: 0 2px 2px 0;
-  transform: rotate(45deg);
-}
-/* 去除原生复选框样式 */
-.checkbox_input_org {
-  -webkit-appearance: none; /* 去除Safari等浏览器默认样式 */
-  -moz-appearance: none; /* 去除Firefox的默认样式 */
-  appearance: none; /* 去除默认样式 */
-  width: 20px; /* 设置复选框的宽度 */
-  height: 20px; /* 设置复选框的高度 */
-  border: 1.5px solid #000000; /* 默认边框颜色 */
-  cursor: pointer; /* 鼠标悬停时显示为可点击状态 */
-  position: absolute; /* 使用绝对定位,确保其位于右侧 */
-  right: 15px; /* 右侧间距 */
-}
-/* 组织表的选择框样式 */
-/* 选中时的样式 */
-.checkbox_input_org:checked {
-  background-color: #007bff; /* 选中时背景颜色为蓝色 */
-  border-color: #007bff; /* 边框颜色为蓝色 */
-}
-
-/* 选中时的白色勾号 */
-.checkbox_input_org:checked::before {
-  content: "";
-  position: absolute;
-  top: 0px;
-  left: 5px;
-  width: 6px;
-  height: 12px;
-  border: solid white;
-  border-width: 0 2px 2px 0;
-  transform: rotate(45deg);
-}
-/* 组织名称 */
-.checkbox-company {
-  margin-top: 60px; /* 可选:设置顶部间距 */
-  float: left;
-  /* border: 1px solid red; */
-  height: auto;
-  width: 350px;
-}
-/* 分页区域 */
-.Pagetion {
-  width: auto;
-  margin-top: 10px;
-  /* border: 1px solid red; */
-}
-/* 分页页数间隔 */
-/* 设置分页按钮的宽度 */
-.el-pagination .el-pagination__prev,
-.el-pagination .el-pagination__next {
-  width: 60px; /* 设置上一页和下一页按钮的宽 */
-}
-.el-pager li {
-  padding: 0px 35px;
-  background: #fff;
-  font-size: 13px;
-  min-width: 35.5px;
-  height: 28px;
-  line-height: 30px;
-  box-sizing: border-box;
-  text-align: center;
-}
-/* 操作字体 */
-.el-button--text {
-  border-color: transparent;
-  color: #0076fe;
-  background: 0 0;
-  padding-left: 0;
-  padding-right: 0;
-}
-/* 添加账户头顶 */
-
-/* 输入框 */
-.form_input {
-  width: 400px;
-}
-.el-form {
-  /* margin-left: 66px;
-  width: 60%; */
-  /* border: 1px solid red; */
-}
-/* 确认跟取消区域 */
-.form_tool {
-  margin-top: 20px;
-  float: left;
-  margin-left: 90px;
-}
-/* 按钮样式 */
-.form_tool .el-button {
-  width: 100px;
-}
-/* 添加账户的容器 */
-.el-dialog__body {
-  color: #606266;
-  font-size: 14px;
-  height: 180px;
-}
-/* 新增组织的内容容器 */
-.el_dialog_org_content {
-  color: #606266;
-  font-size: 14px;
-  height: 120px;
-}
-/* 新增学校的内容容器 */
-.el_dialog_school_content {
-  color: #606266;
-  font-size: 14px;
-  /* height: 300px; */
-}
-/* 新增学校按钮 */
-.add_school {
-  float: left;
-  margin-top: 40px;
-  margin-left: 100px;
-}
-/* 确认移动按钮 */
-.add_run {
-  float: right;
-  margin-top: 40px;
-  margin-right: 100px;
-}
-/* 使用v-deep深度,进入元素设置表格行的背景色 */
-::v-deep
-  .el-table--striped
-  .el-table__body
-  tr.el-table__row--striped
-  td.el-table__cell {
-  background-color: #f1f1f1;
-}
-.el-form-item {
-  margin-bottom: 22px;
-  display: flex;
-  align-items: center;
-  /* border: 1px solid black; */
-}
-.el-form-item__label {
-  font-size: 14px;
-  color: #606266;
-  line-height: 40px;
-  margin-left: 20px;
-  width: 70px;
-}
-.el-form-item__content {
-  line-height: 40px;
-  position: relative;
-  font-size: 14px;
-}
-.el-dialog {
-  position: relative;
-  margin: 0;
-  background: #fff;
-  border-radius: 2px;
-  box-sizing: border-box;
-  width: 50%;
-  height: auto;
-}
-
-/* 停用表单的滑动条 */
-::v-deep.el-table--scrollable-x .el-table__body-wrapper {
-  overflow-x: hidden;
-}
-::v-deep.el-table__body-wrapper is-scrolling-left {
-  overflow-x: hidden;
-}
-/* 选择组织下拉菜单的鼠标悬浮效果 */
-::v-deep.el-select-dropdown__item:hover {
-  background-color: #f5f7fa;
-}
-/* 下拉菜单的滚动条 */
-::v-deep.el-select-dropdown__wrap .el-scrollbar__wrap {
-  overflow-y: auto;
-  overflow-x: hidden;
-  height: 100%;
-}
-
-/* 下拉菜单的ul顶部 */
-::v-deep.el-scrollbar__view .el-select-dropdown__list {
-  list-style: none;
-  padding: 5px 0;
-  margin: 0;
-  box-sizing: border-box;
-}
-/* 下拉菜单底部部分 */
-::v-deep.el-scrollbar__bar .is-vertical {
-  width: 0px;
-  height: 0px;
-}
-::v-deep.el-scrollbar__bar .is-horizontal {
-  width: 0px;
-  height: 0px;
-}
-
-.table >>> .el-dialog__header {
-  padding: 15px 20px;
-  background: #454545;
-}
-
-.table >>> .el-dialog__title {
-  color: #fff;
-}
-
-.input_box {
-  position: relative;
-  height: 40px;
-  width: 200px;
-}
-</style>

+ 0 - 516
src/components/organList.vue

@@ -1,516 +0,0 @@
-<template>
-    <div class="list_container">
-        <div class="title_examine">
-            <div class="pub_title">组织列表</div>
-            <div style="margin-left: auto;">
-                <el-input v-model="checkOrg" placeholder="请输入组织" size="normal" clearable @input="changeOrg"
-                    style="margin-right: 10px; width: 200px"></el-input>
-                <el-select v-model="checkArea" placeholder="选择区域" clearable filterable @change="changeArea"
-                    style="margin-right: 10px">
-                    <el-option v-for="item in regionCList" :key="item.id" :label="item.name" :value="item.name">
-                    </el-option>
-                </el-select>
-                <el-button type="primary" size="small" @click="add_organ_dialog = true;">新增组织</el-button>
-            </div>
-        </div>
-        <div class="tableBox">
-            <el-table :data="organizations" stripe border style="width: 100%" :header-cell-style="headerCellStyle">
-                <el-table-column show-overflow-tooltip prop="name" label="组织名称" min-width="45"></el-table-column>
-                <el-table-column show-overflow-tooltip prop="code" label="编码" min-width="45">
-                    <template slot-scope="scope">
-                        {{ scope.row.code || '-' }} <!-- 如果 org 为空,显示 '-' -->
-                    </template>
-                </el-table-column>
-                <el-table-column show-overflow-tooltip prop="area" label="区域" min-width="45"></el-table-column>
-                <el-table-column show-overflow-tooltip prop="ctime" label="创建时间" min-width="45"></el-table-column>
-                <el-table-column label="操作" width="150px">
-                    <template slot-scope="scope">
-                        <div class="operate">
-                            <button @click="update(scope.row)">编辑</button>
-                            <button @click="toPage(scope.row)">批量创建</button>
-                            <button @click="delete_organ(scope.row)" style="color:red;">删除</button>
-                            
-                        </div>
-                    </template>
-                </el-table-column>
-            </el-table>
-        </div>
-        <!-- 分页组件 -->
-        <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total"
-            @current-change="handlePageChange" layout="total,prev, pager, next, jumper">
-        </el-pagination>
-        <!-- 新增组织弹窗 -->
-        <el-dialog title="新增组织" class="table" :visible.sync="add_organ_dialog" :before-close="close_add_organ"
-            width="700px">
-            <div class="el_dialog_org_content">
-                <form class="el-form">
-                    <!-- 组织名称 -->
-                    <div class="el-form-item" style="margin-top: 15px">
-                        <label class="el-form-item__label" style="width: 100px">组织名称</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="orgName" type="text" autocomplete="off" placeholder="组织名称"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 地区 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">组织编码</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="randomCode" type="text" autocomplete="off" placeholder="请输入随机码"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 区域 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">区域</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-
-                                    <el-select v-model="regionC" placeholder="请选择区域" class="custom-select" filterable>
-                                        <el-option v-for="(org, index) in regionCList" :key="index" :label="org.name"
-                                            :value="org.name">
-                                            {{ org.name }}
-                                        </el-option>
-                                    </el-select>
-
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                </form>
-            </div>
-            <!-- 按钮区域 -->
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="close_add_organ">取 消</el-button>
-                <el-button type="primary" @click="ajax_add_org">确认</el-button>
-            </div>
-        </el-dialog>
-        <!-- 修改组织弹窗 -->
-        <el-dialog title="修改组织" class="table" :visible.sync="add_organ_dialog2" :before-close="close_add_organ2"
-            width="700px">
-            <div class="el_dialog_org_content">
-                <form class="el-form">
-                    <!-- 组织名称 -->
-                    <div class="el-form-item" style="margin-top: 15px">
-                        <label class="el-form-item__label" style="width: 100px">组织名称</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="orgName" type="text" autocomplete="off" placeholder="组织名称"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 地区 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">组织编码</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="randomCode" type="text" autocomplete="off" placeholder="请输入随机码"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 区域 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">区域</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-
-                                    <el-select v-model="regionC" placeholder="请选择区域" class="custom-select" filterable>
-                                        <el-option v-for="(org, index) in regionCList" :key="index" :label="org.name"
-                                            :value="org.name">
-                                            {{ org.name }}
-                                        </el-option>
-                                    </el-select>
-
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                </form>
-            </div>
-            <!-- 按钮区域 -->
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="close_add_organ2">取 消</el-button>
-                <el-button type="primary" @click="updateOrgan">确认</el-button>
-            </div>
-        </el-dialog>
-    </div>
-</template>
-<script>
-import { API_CONFIG } from '@/common/apiConfig';
-import { addOp } from "@/api/user";
-import { mapGetters } from 'vuex';
-export default {
-    name: 'onList',
-    data() {
-        return {
-            organizations: [],
-            organList: [],
-            checkOrg: "",
-            checkArea: "",
-            currentPage: 1,
-            pageSize: 10,
-            total: 0,
-            add_organ_dialog: false,
-            add_organ_dialog2: false,
-            orgName: "",
-            randomCode: "",
-            regionC: 'cn',
-            uLogin: "1", // 登录状态 (1 或 2)
-            radio: "1",
-            regionCList: [
-                { id: 1, name: 'hk' },
-                { id: 2, name: 'cn' }
-            ], //区域列表
-            form: {
-                organ: ""
-            },
-            organ: {}
-        }
-    },
-    computed: {
-        ...mapGetters(['userid']),
-    },
-    methods: {
-        // 表头的背景色
-        headerCellStyle() {
-            return { backgroundColor: "#f1f1f1" };
-        },
-        changeOrg() {
-            this.currentPage = 1;
-            this.getOrgan();
-        },
-        changeArea() {
-            this.currentPage = 1;
-            this.getOrgan();
-        },
-        getOrgan() {
-            let params = [
-                {
-                    functionName: "getOrgan",
-                    org: this.checkOrg,
-                    area: this.checkArea,
-                    page: this.currentPage,
-                    num: this.pageSize,
-                }
-            ];
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then((res) => {
-                    // console.log("返回的数据为:", res.data);  // 检查返回的数据
-                    if (res.data && Array.isArray(res.data[0])) {
-                        // 使用 map() 提取所有组织名称
-                        this.organizations = res.data[0]
-                        this.total = res.data[0][0].num
-
-                        // console.log(this.organizations);
-
-                    }
-
-                })
-                .catch((err) => {
-                    this.$message.error("查询失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-        ajax_org() {
-            const params = [API_CONFIG.ajax_org]; // 使用配置中的接口参数
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then((res) => {
-                    // console.log("返回的数据为:", res.data);  // 检查返回的数据
-                    if (res.data && Array.isArray(res.data[0])) {
-                        // 使用 map() 提取所有组织名称
-                        this.organList = res.data[0].map((item) => ({
-                            name: item.name,
-                            id: item.id,
-                        }));
-                    }
-                    // console.log("返回的结果为:",this.organizations);
-                })
-                .catch((err) => {
-                    this.$message.error("查询失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-        // 页码扩展按钮
-        handlePageChange(page) {
-            this.currentPage = page;
-            this.getOrgan();
-        },
-        //新增学校关闭
-        close_add_organ() {
-            this.regionC = 'cn'
-            this.add_organ_dialog = false;
-        },
-        //修改学校关闭
-        close_add_organ2() {
-            this.regionC = 'cn'
-            this.add_organ_dialog2 = false;
-        },
-        //新增组织
-        ajax_add_org() {
-            // 获取弹窗中的输入内容
-            let orgName = this.orgName; // 组织名称
-            let randomCode = this.randomCode || ""; // 随机码(可为空)
-            let uLogin = this.radio; // 获取复选框选中的值(1 或 2)
-
-            // 验证组织名称不能为空
-            if (!orgName) {
-                this.$message.error("组织名称不能为空");
-                return;
-            }
-
-            // 构造请求参数
-            let params = [
-                {
-                    functionName: API_CONFIG.ajax_add_org.functionName, // 调用存储过程的名称
-                    u_name: orgName, // 组织名称
-                    u_create: this.userid, // u_create 固定为0
-                    u_code: randomCode, // 随机码(可以为空)
-                    u_regionC: this.regionC,
-                    u_login: uLogin, // 登录状态
-                },
-            ];
-
-            // 发起请求
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then(async (res) => {
-                    console.log(res.data);
-                    // 检查返回的结果
-                    if (res.data && res.data[0] && res.data[0][0]) {
-                        if (res.data[0][0].name === 1) {
-                            this.$message({
-                                type: "error",
-                                message: "该组织已存在,请重新选择!",
-                            });
-                            return;
-                        } else {
-                            this.$message({
-                                type: "success",
-                                message: "添加成功!",
-                            });
-                            await addOp({
-                                uid: this.userid,
-                                cid: "",
-                                type: "user_op",
-                                content: `添加了组织 ${orgName}`,
-                            });
-                        }
-                    } else {
-                        this.$message.error("插入失败,未返回有效结果");
-                    }
-                    // 刷新组织列表
-                    this.getOrgan();
-                    //关闭弹窗
-                    this.add_organ_dialog = false;
-                    // 清空输入框、下拉菜单选择和单选框
-                    this.orgName = ""; // 清空学校名称
-                    this.regionC = 'cn'
-                    this.randomCode = ""; // 清空地区选择
-                    this.uLogin = "1"; // 清空学校类型选择
-                })
-                .catch((err) => {
-                    this.$message.error("插入失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-
-        update(row) {
-            this.add_organ_dialog2 = true;
-            this.nid = row.id;
-            this.orgName = row.name;
-            this.randomCode = row.code;
-            this.regionC = row.area;
-            console.log(row);
-        },
-        updateOrgan() {
-            let params = [
-                {
-                    functionName: "updateOrgan",
-                    id: this.nid,
-                    name: this.orgName,
-                    code: this.randomCode,
-                    area: this.regionC
-
-                }
-            ];
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then(async (res) => {
-                    console.log("👉", res.data);
-                    this.add_organ_dialog2 = false;
-                    this.$message({
-                        message: '修改成功',
-                        type: 'success'
-                    });
-                    this.getOrgan();
-                    await addOp({
-                        uid: this.userid,
-                        cid: "",
-                        type: "user_op",
-                        content: `修改了组织 ${this.orgName} ${this.nid}`,
-                    });
-                })
-                .catch((err) => {
-                    this.$message.error("修改失败");
-                    console.log(err);
-                });
-        },
-        delete_organ(row) {
-            this.nid = row.id;
-
-            let params = [
-                {
-                    functionName: "deleteOrgan",
-                    id: this.nid
-                }
-            ];
-            this.$confirm("确定删除此组织记录吗?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    this.$ajax
-                        .post(API_CONFIG.baseUrl, params)
-                        .then(async (res) => {
-                            console.log("👉", res.data);
-                            this.$message({
-                                message: '删除成功',
-                                type: 'success'
-                            });
-                            this.getOrgan();
-                            await addOp({
-                                uid: this.userid,
-                                cid: "",
-                                type: "user_op",
-                                content: `删除了组织 ${row.name} ${row.id}`,
-                            });
-                        })
-                })
-                .catch((err) => {
-                    this.$message.error("删除失败");
-                    console.log(err);
-                });
-        },
-        async getUserId(oid, org) {
-            let params = [
-                {
-                functionName: "select_Suffix", // 调用存储过程的名称
-                org: org, //组织id
-                oid: oid, //学校id
-                },
-            ];
-
-            try {
-                const res = await this.$ajax.post(API_CONFIG.baseUrl, params);
-                console.log('getSuffix', res);
-                let data = res.data[0];
-                let orgData = res.data[1];
-                let ap = data.length > 0 ? data[0].userid : orgData.length > 0 ? orgData[0].userid : "";
-                return ap
-            } catch (err) {
-                console.error("请求失败,错误信息:", err);
-            }
-        },
-        async toPage(row) {
-            const oid = "";
-            const org = row.id;
-            await addOp({
-              uid: this.userid,
-              cid: "",
-              type: "user_op",
-              content: `点击了批量添加 ${row.name}${row.id}`,
-            });
-            let userid = await this.getUserId(oid, org);
-            const url=`https://pbl.cocorobo.cn/pbl-teacher-table/dist/?#/teacher?userid=${userid ? userid : this.userid}&oid=${oid}&org=${org}`;
-            window.open(url,'_blank');
-        }
-
-
-    },
-    mounted() {
-        this.getOrgan();
-        this.ajax_org();
-    }
-}
-</script>
-<style scoped>
-.list_container {
-    width: 100%;
-    height: 100%;
-    padding: 10px;
-    box-sizing: border-box;
-    overflow: auto;
-}
-
-.tableBox {
-    margin: 10px 0;
-}
-
-.operate {
-    display: flex;
-    gap: 10px;
-}
-
-/* 新增组织的内容容器 */
-.el_dialog_org_content {
-    color: #606266;
-    font-size: 14px;
-    height: 120px;
-}
-
-.el-form-item {
-    margin-bottom: 22px;
-    display: flex;
-    align-items: center;
-    /* border: 1px solid black; */
-}
-
-.el-form-item__label {
-    font-size: 14px;
-    color: #606266;
-    line-height: 40px;
-    margin-left: 20px;
-    width: 70px;
-}
-
-.el-form-item__content {
-    line-height: 40px;
-    position: relative;
-    font-size: 14px;
-}
-
-.table>>>.el-dialog__header {
-    padding: 15px 20px;
-    background: #454545;
-}
-
-.table>>>.el-dialog__title {
-    color: #fff;
-}
-
-.operate button {
-    background: none;
-    border: none;
-    cursor: pointer;
-    color: #308fff;
-}
-</style>

+ 0 - 642
src/components/schoolList.vue

@@ -1,642 +0,0 @@
-<template>
-    <div class="list_container">
-        <div class="title_examine">
-            <div class="pub_title">学校列表</div>
-            <div style="margin-left: auto;">
-                <el-input v-model="checkOid" placeholder="请输入学校" size="normal" clearable @input="changeOid"
-                    style="margin-right: 10px; width: 200px"></el-input>
-                <el-input v-model="checkOrg" placeholder="请输入组织" size="normal" clearable @input="changeOrg"
-                    style="margin-right: 10px; width: 200px"></el-input>
-
-                <el-button type="primary" size="small" @click="add_school_dialog = true;">新增学校</el-button>
-            </div>
-        </div>
-        <div class="tableBox">
-            <el-table :data="schoolData" stripe border style="width: 100%" :header-cell-style="headerCellStyle">
-                <el-table-column show-overflow-tooltip prop="name" label="学校名称" min-width="45"></el-table-column>
-                <el-table-column show-overflow-tooltip prop="org_name" label="组织" min-width="45">
-                    <template slot-scope="scope">
-                        {{ scope.row.org_name || '-' }} <!-- 如果 org 为空,显示 '-' -->
-                    </template>
-                </el-table-column>
-                <el-table-column show-overflow-tooltip prop="org_code" label="组织编码" min-width="45">
-                    <template slot-scope="scope">
-                        {{ scope.row.org_code || '-' }} <!-- 如果 org 为空,显示 '-' -->
-                    </template>
-                </el-table-column>
-                <el-table-column show-overflow-tooltip prop="code" label="编码" min-width="45">
-                    <template slot-scope="scope">
-                        {{ scope.row.code || '-' }} <!-- 如果 org 为空,显示 '-' -->
-                    </template>
-                </el-table-column>
-                <el-table-column show-overflow-tooltip prop="area" label="区域" min-width="45"></el-table-column>
-                <el-table-column show-overflow-tooltip prop="ctime" label="创建时间" min-width="45"></el-table-column>
-                <el-table-column label="操作" width="150px">
-                    <template slot-scope="scope">
-                        <div class="operate">
-                            <button @click="update(scope.row)">编辑</button>
-                            <button @click="toPage(scope.row)">批量创建</button>
-                            <button @click="delete_school(scope.row)" style="color:red;">删除</button>
-
-                        </div>
-                    </template>
-                </el-table-column>
-            </el-table>
-        </div>
-        <!-- 分页组件 -->
-        <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total"
-            @current-change="handlePageChange" layout="total,prev, pager, next, jumper">
-        </el-pagination>
-        <!-- 新增学校弹窗 -->
-        <el-dialog title="新增学校" class="table" :visible.sync="add_school_dialog" :before-close="close_add_school"
-            width="700px">
-            <div class="el_dialog_school_content">
-                <form class="el-form">
-                    <!-- 学校名称 -->
-                    <div class="el-form-item" style="margin-top: 15px">
-                        <label class="el-form-item__label" style="width: 100px">学校名称</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="sch_name" type="text" autocomplete="off" placeholder="学校名称"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 地区 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">地区</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="region" type="text" autocomplete="off" placeholder="请输入地区"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 学校编码 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">学校编码</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="schoolCode" type="text" autocomplete="off" placeholder="请输入编码"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">上级组织</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <el-form :model="school" ref="form">
-                                        <el-select v-model="school.parentOrgId" placeholder="请选择组织"
-                                            class="custom-select" filterable>
-                                            <el-option v-for="(org, index) in organizations" :key="index"
-                                                :label="org.name" :value="org.id">
-                                                {{ org.name }}
-                                            </el-option>
-                                        </el-select>
-                                    </el-form>
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-
-                    <!-- 区域 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">区域</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-
-                                    <el-select v-model="regionC" placeholder="请选择区域" class="custom-select" filterable>
-                                        <el-option v-for="(org, index) in regionCList" :key="index" :label="org.name"
-                                            :value="org.name">
-                                            {{ org.name }}
-                                        </el-option>
-                                    </el-select>
-
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                </form>
-            </div>
-            <!-- 按钮区域 -->
-            <div slot="footer" class="el-dialog__footer">
-                <el-button @click="close_add_school">取 消</el-button>
-                <el-button type="primary" @click="ajax_add_school">确认</el-button>
-            </div>
-        </el-dialog>
-        <!-- 修改学校弹窗 -->
-        <el-dialog title="修改学校" class="table" :visible.sync="add_school_dialog2" :before-close="close_add_school2"
-            width="700px">
-            <div class="el_dialog_school_content">
-                <form class="el-form">
-                    <!-- 学校名称 -->
-                    <div class="el-form-item" style="margin-top: 15px">
-                        <label class="el-form-item__label" style="width: 100px">学校名称</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="sch_name" type="text" autocomplete="off" placeholder="学校名称"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 地区 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">地区</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="region" type="text" autocomplete="off" placeholder="请输入地区"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <!-- 学校编码 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">学校编码</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <input v-model="schoolCode" type="text" autocomplete="off" placeholder="请输入编码"
-                                        class="el-input__inner" />
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">上级组织</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-                                    <el-form :model="school" ref="form">
-                                        <el-select v-model="school.parentOrgId" placeholder="请选择组织"
-                                            class="custom-select" filterable>
-                                            <el-option v-for="(org, index) in organizations" :key="index"
-                                                :label="org.name" :value="org.id">
-                                                {{ org.name }}
-                                            </el-option>
-                                        </el-select>
-                                    </el-form>
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-
-                    <!-- 区域 -->
-                    <div class="el-form-item">
-                        <label class="el-form-item__label" style="width: 100px">区域</label>
-                        <div class="el-form-item__content" style="margin-left: 5px">
-                            <span>
-                                <div class="add_input el-input el-input--suffix">
-
-                                    <el-select v-model="regionC" placeholder="请选择区域" class="custom-select" filterable>
-                                        <el-option v-for="(org, index) in regionCList" :key="index" :label="org.name"
-                                            :value="org.name">
-                                            {{ org.name }}
-                                        </el-option>
-                                    </el-select>
-
-                                </div>
-                            </span>
-                        </div>
-                    </div>
-                </form>
-            </div>
-            <!-- 按钮区域 -->
-            <div slot="footer" class="el-dialog__footer">
-                <el-button @click="close_add_school2">取 消</el-button>
-                <el-button type="primary" @click="updateSchool()">确认</el-button>
-            </div>
-        </el-dialog>
-    </div>
-</template>
-<script>
-import { addOp } from "@/api/user";
-import { API_CONFIG } from '@/common/apiConfig';
-import { mapGetters } from 'vuex';
-
-export default {
-    name: 'schoolList',
-    data() {
-        return {
-            schoolData: [],
-            schoolList: [],
-            cn_school: [],
-            checkOid: "",
-            checkOrg: "",
-            currentPage: 1,
-            pageSize: 10,
-            total: 0,
-            add_school_dialog: false,
-            add_school_dialog2: false,
-            sch_name: "", //学校名称
-            form: {
-                name: "",
-                account: "",
-                organization: "",
-                school: "",
-            },
-            school: {
-                OrgId: null, // 初始化 OrgId 为 null 或适当的默认值
-                parentOrgId: ''
-            },
-            region: "", //地区
-            schoolCode: "", //学校编码
-            regionC: 'cn', //区域
-            regionCList: [
-                { id: 1, name: 'hk' },
-                { id: 2, name: 'cn' }
-            ], //区域列表
-            organizations: [],
-            schoolType: "1", //学校单选框类型
-            loginPermission: "1", //是否允许登录
-            nid: "", //修改学校的id
-        }
-    },
-    methods: {
-        // 表头的背景色
-        headerCellStyle() {
-            return { backgroundColor: "#f1f1f1" };
-        },
-        changeOrg() {
-            this.currentPage = 1;
-            this.getSchool();
-        },
-        changeOid() {
-            this.currentPage = 1; // 重置当前页
-            this.getSchool(); // 调用获取数据的方法
-        },
-        getSchool() {
-            let params = [
-                {
-                    functionName: "getSchoolList",
-                    sName: this.checkOid,
-                    oName: this.checkOrg,
-                    page: this.currentPage,
-                    num: this.pageSize,
-                }
-            ];
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then((res) => {
-                    // console.log("返回的数据为:", res.data);  // 检查返回的数据
-                    if (res.data && Array.isArray(res.data[0])) {
-                        // 使用 map() 提取所有组织名称
-                        this.schoolData = res.data[0]
-
-                        if (this.schoolData.length > 0 && res.data[0][0] && res.data[0][0].num !== undefined) {
-                            this.total = res.data[0][0].num; // 使用 num 的值
-                        } else {
-                            this.total = 0; // 设置总数为0
-                        }
-                    } else {
-                        this.total = 0; // 如果没有数据,设置总数为0
-                    }
-
-                })
-                .catch((err) => {
-                    this.$message.error("查询失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-        ajax_school() {
-            // 构建请求参数
-            let params = [
-                {
-                    functionName: "getAllSchool", // 调用存储过程的名称
-                },
-            ];
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then((res) => {
-                    // console.log("返回的数据为:", res.data);  // 检查返回的数据
-                    if (res.data && Array.isArray(res.data[0])) {
-                        this.cn_school = res.data[0].map((item) => ({
-                            name: item.name,
-                            id: item.id,
-                            org: item.org,
-                            area: item.area
-                        }));
-                        // 将 name 和 org 都存入 cn_school 数组中
-                        this.schoolList = res.data[0].map((item) => ({
-                            name: item.name,
-                            id: item.id,
-                            org: item.org,
-                            area: item.area
-                        }));
-                        // console.log(this.schoolList);
-                    }
-                })
-                .catch((err) => {
-                    this.$message.error("查询失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-        // 页码扩展按钮
-        handlePageChange(page) {
-            this.currentPage = page;
-            this.getSchool();
-        },
-        close_add_school() {
-            this.add_school_dialog = false;
-        },
-        close_add_school2() {
-            this.add_school_dialog2 = false;
-            this.sch_name = ""; // 清空学校名称
-            this.school.parentOrgId = ""; // 清空组织选择
-            this.region = ""; // 清空地区选择
-            this.regionC = 'cn'
-            this.schoolType = "1"; // 清空学校类型选择
-            this.schoolCode = ""; // 清空学校编码
-            this.loginPermission = "1"; // 清空登录权限的选择
-        },
-        //组织查询
-        ajax_org() {
-            const params = [API_CONFIG.ajax_org]; // 使用配置中的接口参数
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then((res) => {
-                    // console.log("返回的数据为:", res.data);  // 检查返回的数据
-                    if (res.data && Array.isArray(res.data[0])) {
-                        // 使用 map() 提取所有组织名称
-                        this.organizations = res.data[0].map((item) => ({
-                            name: item.name,
-                            id: item.id,
-                        }));
-                    }
-                    // console.log("返回的结果为:", this.organizations);
-                })
-                .catch((err) => {
-                    this.$message.error("查询失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-        ajax_add_school() {
-            // 校验学校名称是否为空
-            if (!this.sch_name || this.sch_name.trim() === "") {
-                this.$message.error("学校名称不能为空!");
-                return;
-            }
-
-            // 构建请求参数
-            let params = [
-                {
-                    functionName: API_CONFIG.ajax_add_school.functionName, // 调用存储过程的名称
-                    u_name: this.sch_name, // 学校名称,绑定到 orgName
-                    u_org: this.school.parentOrgId || "", // 选择的组织的 ID,绑定到 school.parentOrgId,如果没有选择则为空
-                    u_dest: this.region || "", // 地区,绑定到 region,如果为空则传空字符串
-                    u_type: this.schoolType || "", // 学校类型,绑定到 schoolType,如果没有选择则为空
-                    u_code: this.schoolCode || "", // 学校编码,绑定到 schoolCode,如果为空则传空字符串
-                    u_regionC: this.regionC || "",
-                    u_isLogin: this.loginPermission === "1" ? 1 : 2, // 是否允许登录,默认传 2(不允许登录)如果没有选择
-                    uid: this.userid,
-                },
-            ];
-
-            // 发起请求
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then(async (res) => {
-                    // console.log("👉", res.data);
-                    if (res.data && res.data[0] && res.data[0][0]) {
-                        if (res.data[0][0].name === 1) {
-                            this.$message({
-                                type: "error",
-                                message: "该学校已存在,请重新选择!",
-                            });
-                            return;
-                        } else {
-                            this.$message({
-                                type: "success",
-                                message: "添加成功!",
-                            });
-                            await addOp({
-                                uid: this.userid,
-                                cid: "",
-                                type: "user_op",
-                                content: `添加了学校 ${this.sch_name}`,
-                            });
-                        }
-                    } else {
-                        this.$message.error("插入失败,未返回有效结果");
-                    }
-                    // 刷新学校列表
-                    this.getSchool();
-                    // 关闭弹窗
-                    this.add_school_dialog = false;
-                    // 清空输入框、下拉菜单选择和单选框
-                    this.sch_name = ""; // 清空学校名称
-                    this.school.parentOrgId = ""; // 清空组织选择
-                    this.region = ""; // 清空地区选择
-                    this.regionC = 'cn'
-                    this.schoolType = "1"; // 清空学校类型选择
-                    this.schoolCode = ""; // 清空学校编码
-                    this.loginPermission = "1"; // 清空登录权限的选择
-                })
-                .catch((err) => {
-                    this.$message.error("插入失败");
-                    console.error("请求失败,错误信息:", err);
-                });
-        },
-        update(row) {
-            this.nid = row.id;
-            this.add_school_dialog2 = true;
-            this.sch_name = row.name;
-            this.school.parentOrgId = row.org;
-            this.region = row.dest;
-            this.schoolCode = row.code;
-            this.regionC = row.area;
-
-        },
-        updateSchool() {
-            let params = [
-                {
-                    functionName: "updateSchool",
-                    id: this.nid,
-                    name: this.sch_name,
-                    dest: this.region,
-                    code: this.schoolCode,
-                    organ: this.school.parentOrgId,
-                    area: this.regionC
-
-                }
-            ];
-            this.$ajax
-                .post(API_CONFIG.baseUrl, params)
-                .then(async (res) => {
-                    console.log("👉", res.data);
-                    this.add_school_dialog2 = false;
-                    this.$message({
-                        message: '修改成功',
-                        type: 'success'
-                    });
-                    this.getSchool();
-                    await addOp({
-                        uid: this.userid,
-                        cid: "",
-                        type: "user_op",
-                        content: `修改了学校 ${this.sch_name}${this.nid}`,
-                    });
-                })
-                .catch((err) => {
-                    this.$message.error("修改失败");
-                    console.log(err);
-                });
-        },
-        delete_school(row) {
-            this.nid = row.id;
-
-            let params = [
-                {
-                    functionName: "deleteSchool",
-                    id: this.nid
-                }
-            ];
-            this.$confirm("确定删除此学校记录吗?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    this.$ajax
-                        .post(API_CONFIG.baseUrl, params)
-                        .then(async (res) => {
-                            console.log("👉", res.data);
-                            this.$message({
-                                message: '删除成功',
-                                type: 'success'
-                            });
-                            this.getSchool();
-                            await addOp({
-                                uid: this.userid,
-                                cid: "",
-                                type: "user_op",
-                                content: `删除了学校 ${row.name}${row.id}`,
-                            });
-                        })
-                })
-                .catch((err) => {
-                    this.$message.error("删除失败");
-                    console.log(err);
-                });
-        },
-        async getUserId(oid, org) {
-            let params = [
-                {
-                functionName: "select_Suffix", // 调用存储过程的名称
-                org: org, //组织id
-                oid: oid, //学校id
-                },
-            ];
-
-            try {
-                const res = await this.$ajax.post(API_CONFIG.baseUrl, params);
-                console.log('getSuffix', res);
-                let data = res.data[0];
-                let orgData = res.data[1];
-                let ap = data.length > 0 ? data[0].userid : orgData.length > 0 ? orgData[0].userid : "";
-                return ap
-            } catch (err) {
-                console.error("请求失败,错误信息:", err);
-            }
-        },
-        async toPage(row) {
-            const oid = row.id;
-            const org = row.org;
-            let userid = await this.getUserId(oid, org);
-            await addOp({
-                uid: this.userid,
-                cid: "",
-                type: "user_op",
-                content: `点击了批量添加 ${row.name}${row.id}`,
-            });
-            const url=`https://pbl.cocorobo.cn/pbl-teacher-table/dist/?#/teacher?userid=${userid ? userid : this.userid}&oid=${oid}&org=${org}`;
-            window.open(url,'_blank');
-        }
-
-    },
-    mounted() {
-        this.getSchool();
-        this.ajax_org();
-        this.ajax_school();
-    },
-    computed: {
-        ...mapGetters(["userid"]),
-
-    },
-}
-</script>
-<style scoped>
-.list_container {
-    width: 100%;
-    height: 100%;
-    padding: 10px;
-    box-sizing: border-box;
-    overflow: auto;
-}
-
-/* 新增学校的内容容器 */
-.el_dialog_school_content {
-    color: #606266;
-    font-size: 14px;
-    /* height: 300px; */
-}
-
-.el-form-item {
-    margin-bottom: 22px;
-    display: flex;
-    align-items: center;
-    /* border: 1px solid black; */
-}
-
-.el-form-item__label {
-    font-size: 14px;
-    color: #606266;
-    line-height: 40px;
-    margin-left: 20px;
-    width: 70px;
-}
-
-.el-form-item__content {
-    line-height: 40px;
-    position: relative;
-    font-size: 14px;
-}
-
-.table>>>.el-dialog__header {
-    padding: 15px 20px;
-    background: #454545;
-}
-
-.table>>>.el-dialog__title {
-    color: #fff;
-}
-
-
-.tableBox {
-    margin: 10px 0;
-}
-
-.operate {
-    display: flex;
-    gap: 10px;
-}
-
-.operate button {
-    background: none;
-    border: none;
-    cursor: pointer;
-    color: #308fff;
-}
-</style>

+ 181 - 0
src/components/sidebarL.vue

@@ -0,0 +1,181 @@
+<template>
+    <div>
+        <!-- 窄侧边导航栏 -->
+        <div id="sidebar"
+            class="bg-white shadow-lg w-20 flex-shrink-0 transition-all duration-300 ease-in-out z-20 flex flex-col">
+            <!-- 顶部Logo -->
+            <div class="flex items-center justify-center p-4 border-b">
+                <i class="fas fa-school text-primary text-3xl"></i>
+            </div>
+
+            <!-- 导航菜单 - 一级图标 -->
+            <nav class="p-2 flex-1">
+                <div class="space-y-2">
+                    <!-- 首页 -->
+                    <a href="#"
+                        class="nav-icon-btn w-full flex flex-col items-center justify-center p-3 rounded-lg hover:bg-gray-100 text-primary active"
+                        data-direct-link="true">
+                        <i class="fas fa-home text-xl"></i>
+                        <span class="nav-icon-text">首页</span>
+                    </a>
+
+                    <!-- cocoflow -->
+                    <a href="#"
+                        class="nav-icon-btn w-full flex flex-col items-center justify-center p-3 rounded-lg hover:bg-gray-100 text-gray-700"
+                        data-direct-link="true">
+                        <i class="fas fa-layer-group text-xl"></i>
+                        <span class="nav-icon-text">CocoFlow</span>
+                    </a>
+
+                    <!-- 教学中心 -->
+                    <button
+                        class="nav-icon-btn w-full flex flex-col items-center justify-center p-3 rounded-lg hover:bg-gray-100 text-gray-700"
+                        data-menu="teaching">
+                        <i class="fas fa-chalkboard-teacher text-xl"></i>
+                        <span class="nav-icon-text">教学中心</span>
+                    </button>
+
+                    <!-- 智能教务 -->
+                    <button
+                        class="nav-icon-btn w-full flex flex-col items-center justify-center p-3 rounded-lg hover:bg-gray-100 text-gray-700"
+                        data-menu="office">
+                        <i class="fas fa-briefcase text-xl"></i>
+                        <span class="nav-icon-text">智能教务</span>
+                    </button>
+
+                    <!-- 知识库 -->
+                    <a href="#"
+                        class="nav-icon-btn w-full flex flex-col items-center justify-center p-3 rounded-lg hover:bg-gray-100 text-gray-700"
+                        data-direct-link="true">
+                        <i class="fas fa-database text-xl"></i>
+                        <span class="nav-icon-text">知识库</span>
+                    </a>
+                </div>
+            </nav>
+
+            <!-- 底部用户头像和信息 -->
+            <div class="p-2">
+                <!-- 提醒图标按钮 -->
+                <div class="flex justify-center mb-4">
+                    <div class="relative cursor-pointer hover:opacity-80">
+                        <i class="fas fa-bell text-gray-600 text-xl"></i>
+                        <!-- 红点通知标记 -->
+                        <span class="absolute -top-1 -right-1 bg-red-500 rounded-full w-2 h-2"></span>
+                    </div>
+                </div>
+                <div class="flex flex-col items-center justify-center mb-2">
+                    <img src="https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=100&q=80"
+                        alt="用户头像" class="w-10 h-10 rounded-full cursor-pointer hover:opacity-80 mb-1">
+                    <span class="text-xs text-gray-700">李老师</span>
+                </div>
+            </div>
+        </div>
+
+        <!-- 展开的侧边栏菜单 -->
+        <div id="expanded-menu"
+            class="fixed left-20 top-0 bottom-0 w-64 bg-white shadow-lg z-10 transform -translate-x-full transition-transform duration-300 ease-in-out">
+            <!-- 二级菜单标题 -->
+            <div class="flex items-center p-4 relative" style="border-bottom: 1px solid #e5e7eb; height: 72px;">
+                <h3 id="expanded-menu-title" class="text-lg font-semibold text-gray-800">首页</h3>
+                <button id="close-expanded-menu"
+                    class="absolute right-4 top-1/2 transform -translate-y-1/2 text-gray-500 hover:text-gray-700">
+                    <i class="fas fa-times"></i>
+                </button>
+            </div>
+
+            <!-- 首页二级菜单 -->
+            <div id="home-menu" class="menu-content p-4 space-y-2">
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-tachometer-alt text-gray-600"></i>
+                    <span>仪表盘</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-star text-gray-600"></i>
+                    <span>收藏应用</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-history text-gray-600"></i>
+                    <span>最近使用</span>
+                </a>
+            </div>
+
+
+
+            <!-- 教学中心二级菜单 -->
+            <div id="teaching-menu" class="menu-content p-4 space-y-2 hidden">
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-book text-gray-600"></i>
+                    <span>课程管理</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700" id="course-center-link">
+                    <i class="fas fa-graduation-cap text-gray-600"></i>
+                    <span>课程中心</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-star text-gray-600"></i>
+                    <span>学生评价</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-eye text-gray-600"></i>
+                    <span>课堂观察</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-users text-gray-600"></i>
+                    <span>协同建构</span>
+                </a>
+            </div>
+
+
+            <!-- 智能教务二级菜单 -->
+            <div id="office-menu" class="menu-content p-4 space-y-2 hidden">
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-chart-line text-gray-600"></i>
+                    <span>综合看板</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-file-alt text-gray-600"></i>
+                    <span>智能表单</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-user-tie text-gray-600"></i>
+                    <span>教师管理</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-chalkboard-teacher text-gray-600"></i>
+                    <span>教师中心</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-comments text-gray-600"></i>
+                    <span>会议妙记</span>
+                </a>
+                <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 text-gray-700">
+                    <i class="fas fa-user-graduate text-gray-600"></i>
+                    <span>学生管理</span>
+                </a>
+            </div>
+
+          </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                
+            }
+        },
+    }
+</script>
+
+<style scoped>
+  #expanded-menu {
+            transition: transform 0.3s ease-in-out;
+            box-shadow: 4px 0 15px rgba(0, 0, 0, 0.1);
+        }
+
+        #expanded-menu.show {
+            transform: translateX(0);
+        }
+
+</style>

+ 157 - 0
src/components/topPage.vue

@@ -0,0 +1,157 @@
+<template>
+    <div>
+        <div class="top">
+            <div class="topBlock">
+                <div class="topTit" style="display: flex;">
+                    <div>欢迎使用</div>
+                    <div style="color: #0354D7;margin: 0 15px;">深圳市荔园教育集团—通新岭校区</div>
+                    <div>AI平台!</div>
+                </div>
+                <div class="topDetail">
+                    探索AI教育的无限可能,提升教学效率与学习体验
+                </div>
+            </div>
+            <img style="width: 96px;height: 96px;" src="../assets/img/root.png" alt="">
+        </div>
+        <div class="TabList">
+            <div class="TabListCon" v-for="(item,index) in tabData" :key="index">
+                <div></div>
+                <div class="TabListName">{{ item.name }}</div>
+                <div class="TabListBri">{{ item.bri }}</div>
+            </div>
+        </div>
+        <div class="footCon">
+            <div class="footConLeft">
+                <div></div>
+                <div style="font-size: 20px;font-weight: 600;color: #1f2937;margin-bottom: 8px;">CocoFlow</div>
+                <div style="color: #4b5563;font-size: 14px;">汇聚丰富的教育AI应用,搭建属于您的专属教育应用</div>
+            </div>
+            <div class="footList">
+                <div class="footListCon" v-for="(item,index) in tabData" :key="index">
+                    <div></div>
+                    <div class="TabListName">{{ item.name }}</div>
+                    <div class="TabListBri">{{ item.bri }}</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                tabData:[
+                    {name:'综合看板',icon:'',bri:'平台数据可视化看板'},
+                    {name:'智能表单',icon:'',bri:'智能化表单管理'},
+                    {name:'教师管理',icon:'',bri:'教师账号与权限管理'},
+                    {name:'课程中心',icon:'',bri:'在AI的辅助下进行授课与评价'},
+                    {name:'课程管理',icon:'',bri:'创建和管理课程'},
+                    {name:'课堂观察',icon:'',bri:'对课堂进行全方位、多维度的分析'},
+                ],
+                footData:[
+                    {name:'项目式课程设计',icon:'',bri:'从创意开始,帮助你设计PBL的课程案例。'},
+                    {name:'STEM活动设计',icon:'',bri:'以“5EX”模型设计STEM课程'},
+                    {name:'跨学科课程设计',icon:'',bri:'以“C-POTE”模型设计跨学科课程'},
+                    {name:'创意智造',icon:'',bri:'以设计思维为核心,深度启发学生创意。'},
+                    {name:'资料搜集',icon:'',bri:'搜集适合教学使用的高质量媒体资源。'},
+                    {name:'文本改写',icon:'',bri:'按自定义标准改写文本。'},
+                    {name:'智能总结',icon:'',bri:'按自定义要求总结文本。'},
+                    {name:'班级管理助手',icon:'',bri:'诊断班级管理问题并给出建议'},
+
+                ],
+            }
+        },
+    }
+</script>
+
+<style scoped>
+.footConLeft{
+    padding: 25px;
+    box-sizing: border-box;
+}
+.footCon{
+    display: flex;
+    justify-content: space-between;
+    padding: 16px;
+    box-sizing: border-box;
+    background-color: #eff6ff;
+    border-radius: 10px;
+}
+.footListCon{
+    background-color: #fff;
+    border-radius: 10px;
+    padding: 24px;
+    box-sizing: border-box;
+    transition: all 0.3s ease; /* 统一过渡效果 */
+    min-height: 156px;
+}
+.footListCon:hover{
+    transform: translateY(-5px); /* 向上位移 */
+    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+}
+.footList{
+    display: grid;
+    grid-template-columns: repeat(4, 1fr);
+    gap: 16px; /* 网格间距 */
+}
+.TabList{
+    display: grid;
+    grid-template-columns: repeat(3, 1fr);
+    gap: 16px; /* 网格间距 */
+    margin-bottom: 16px;
+}
+
+.TabListCon{
+    width: 170px;
+    height: 140px;
+    padding: 24px;
+    box-sizing: border-box;
+    background-color: #fff;
+    border-radius: 10px;
+    width: 100%;
+    box-shadow: 0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgb(0 0 0 / 0.05);
+    transition: all 0.3s ease; /* 统一过渡效果 */
+}
+.TabListCon:hover{
+    transform: translateY(-5px); /* 向上位移 */
+    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+}
+.TabListName{
+    color: #1f2937;
+    font-size: 18px;
+    font-weight: 600;
+    margin-bottom: 4px;
+}
+.TabListBri{
+    color: #4b5563;
+    font-size: 12px;
+}
+.top{
+    display: flex;
+    min-height: 144px;
+    justify-content: space-between;
+    background-color: #fff;
+    align-items: center;
+    padding: 24px;
+    box-sizing: border-box;
+    margin-bottom: 32px;
+    border-radius: 10px;
+    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)
+}
+.topBlock{
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+}
+.topTit{
+    font-size: 30px;
+    height: 100%;
+    color: #000;
+    font-weight: 600;
+}
+.topDetail{
+    color: #64748B;
+    margin-top: 16px;
+}
+</style>

+ 0 - 706
src/components/versionAdd.vue

@@ -1,706 +0,0 @@
-<template>
-  <div class="list_container">
-    <div class="title_examine">
-      <div class="pub_title">版本添加</div>
-      <div style="margin-left: auto;">
-        <el-button type="primary" size="small" @click="addVersionm()">新增版本</el-button>
-        <el-button type="primary" size="small" @click="checkDate()">查看日历</el-button>
-      </div>
-
-    </div>
-    <!-- 内容区域 -->
-    <div class="content">
-      <!-- 按钮区域 -->
-      <div class="button_top">
-        <a @click="showType('正式')" :style="{ color: type == '正式' ? 'black' : 'rgb(179, 179, 179)' }">正式({{ countFormal
-        }})</a>
-        <a @click="showType('beta')" :style="{ color: type == 'beta' ? 'black' : 'rgb(179, 179, 179)' }">beta({{
-          countBeta }})</a>
-        <a @click="showType('hk')" :style="{ color: type == 'hk' ? 'black' : 'rgb(179, 179, 179)' }">hk({{ countHk
-        }})</a>
-        <a @click="showType('com')" :style="{ color: type == 'com' ? 'black' : 'rgb(179, 179, 179)' }">com({{ countCom
-        }})</a>
-      </div>
-      <div class="tableBox">
-        <el-table :data="tableData" stripe border style="width: 100%" :header-cell-style="headerCellStyle">
-          <el-table-column show-overflow-tooltip prop="update_at" label="更新日期" min-width="45"></el-table-column>
-          <el-table-column prop="update_title" label="更新标题" min-width="45" show-overflow-tooltip></el-table-column>
-          <el-table-column prop="update_desc" label="更新描述" width="180px" class="description"></el-table-column>
-          <el-table-column prop="update_details" label="更新详情" width="180px">
-            <template #default="scope">
-              <el-tooltip class="item" effect="dark" :content="scope.row.update_details" placement="left">
-                <div class="cell-ellipsis">{{ scope.row.update_details }}</div>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-          <el-table-column prop="update_version" label="更新版本" min-width="45"></el-table-column>
-          <el-table-column prop="tagName" label="更新标签" min-width="45">
-            <template #default="scope">
-              <el-tooltip class="item" effect="dark" :content="scope.row.tagName" placement="top">
-                <div class="cell-ellipsis">{{ scope.row.tagName }}</div>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-          <el-table-column label="操作" width="150px">
-            <template slot-scope="scope">
-              <div class="operate" style="display: flex;gap: 24px;">
-                <button style="color: #308fff;" @click="update(scope.row)">修改</button>
-                <button style="color: #ff2570;" @click="delete_version(scope.row.id)">删除</button>
-                <button style="color: rgb(21 189 97);" @click="go(scope.row)">预览</button>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-      <!-- 分页组件 -->
-      <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total" @current-change="handlePageChange"
-        layout="total,prev, pager, next, jumper">
-      </el-pagination>
-
-    </div>
-    <el-dialog title="新增版本" class="table" :visible.sync="isTableUseVisible" width="700px">
-      <div>
-        <form class="el-form">
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新日期</label>
-            <div class="el-form-item__content">
-              <el-date-picker v-model="currentDate" format="yyyy-MM-dd" type="date" value-format="yyyy-MM-dd"
-                placeholder="更新日期" />
-            </div>
-          </div>
-
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新标题</label>
-            <div class="el-form-item__content">
-              <el-input placeholder="请输入标题" autocomplete="off" v-model="upTitle"></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新描述</label>
-            <div class="el-form-item__content">
-              <el-input type='textarea' placeholder="请输入描述" autocomplete="off" v-model="upDesc"
-                :autosize="{ minRows: 2, maxRows: 10 }"></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新详情</label>
-            <div class="el-form-item__content">
-              <el-input type='textarea' placeholder="请输入详情" autocomplete="off" v-model="upDetail"
-                :autosize="{ minRows: 2, maxRows: 10 }"></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新标签</label>
-            <div class="el-form-item__content">
-              <el-input v-model="newTag" placeholder="请输入标签,回车添加标签" autocomplete="off"
-                @keyup.enter.native.prevent="addTag"></el-input>
-            </div>
-            <div class="tags-container">
-              <el-tag v-for="(tag, index) in tags" :key="index" closable @close="removeTag(index)" class="tag-item">
-                {{ tag }}
-              </el-tag>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">版本分类</label>
-            <div class="el-form-item__content">
-              <el-select v-model="tagValue" placeholder="请选择">
-                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="el-dialog__footer">
-        <el-button @click="isTableUseVisible = false;">取 消</el-button>
-        <el-button type="primary" @click="addVersion()">确认</el-button>
-      </div>
-    </el-dialog>
-    <el-dialog title="修改版本" class="table" :visible.sync="isTableUseVisible2" width="700px" @close="cancel()">
-      <div>
-        <form class="el-form">
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新日期</label>
-            <div class="el-form-item__content">
-              <el-date-picker v-model="currentDate" format="yyyy-MM-dd" type="date" value-format="yyyy-MM-dd"
-                placeholder="更新日期" />
-            </div>
-          </div>
-
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新标题</label>
-            <div class="el-form-item__content">
-              <el-input placeholder="请输入标题" autocomplete="off" v-model="upTitle"></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新描述</label>
-            <div class="el-form-item__content">
-              <el-input type='textarea' placeholder="请输入描述" autocomplete="off" v-model="upDesc"
-                :autosize="{ minRows: 2, maxRows: 10 }"></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新详情</label>
-            <div class="el-form-item__content">
-              <el-input type='textarea' placeholder="请输入详情" autocomplete="off" v-model="upDetail"
-                :autosize="{ minRows: 2, maxRows: 10 }"></el-input>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">更新标签</label>
-            <div class="el-form-item__content">
-              <el-input v-model="newTag" placeholder="请输入标签,回车添加标签" autocomplete="off"
-                @keyup.enter.native.prevent="addTag"></el-input>
-            </div>
-            <div class="tags-container">
-              <el-tag v-for="(tag, index) in tags" :key="index" closable @close="removeTag(index)" class="tag-item">
-                {{ tag }}
-              </el-tag>
-            </div>
-          </div>
-          <div class="el-form-item">
-            <label class="el-form-item__label">版本分类</label>
-            <div class="el-form-item__content">
-              <el-select v-model="tagValue" placeholder="请选择">
-                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-        </form>
-      </div>
-      <!-- 按钮区域 -->
-      <div slot="footer" class="el-dialog__footer">
-        <el-button @click="isTableUseVisible2 = false">取 消</el-button>
-        <el-button type="primary" @click="updateVersion()">确认</el-button>
-      </div>
-    </el-dialog>
-  </div>
-
-
-</template>
-<script>
-import { API_CONFIG } from '@/common/apiConfig';
-import { mapGetters } from 'vuex';
-export default {
-  name: 'versionAdd',
-  data() {
-    return {
-      type: '正式',
-      tableData: [],
-      options: [{
-        value: '选项1',
-        label: '正式'
-      }, {
-        value: '选项2',
-        label: 'beta'
-      }, {
-        value: '选项3',
-        label: 'hk'
-      }, {
-        value: '选项4',
-        label: 'com'
-      }],
-      tagValue: '',
-      //新增版本
-      isTableUseVisible: false,
-      isTableUseVisible2: false,
-      isPreviewVisible: false,
-      upTitle: '',
-      upDesc: '',
-      upDetail: '',
-      newTag: "", // 存储输入框的标签内容
-      tags: [], // 存储已添加的标签
-      nid: "",//修改的id
-      currentDate: "",
-      currentPage: 1,
-      total: 0,
-      pageSize: 10, // 每页显示的条目数
-      countFormal: 0,
-      countBeta: 0,
-      countHk: 0,
-      countCom: 0,
-      isChong: 0
-    }
-  },
-  computed: {
-    ...mapGetters(["userid"]),
-  },
-  created() {
-    this.formatDate();
-
-  },
-  methods: {
-    go(row) {
-      this.$router.push({
-        path: '/versionInstr',
-        query: {
-          id: row.id,
-          type: 2
-        }
-      });
-    },
-    checkDate() {
-      this.$router.push({
-        path: '/updateDate',
-        query: {
-          versType: this.type
-        }
-      });
-    },
-    formatDate() {
-      // 使用示例
-      const today = new Date(); // 获取当前日期
-      const year = today.getFullYear(); // 获取年份
-      const month = String(today.getMonth() + 1).padStart(2, '0'); // 获取月份,注意月份从0开始,所以要加1,并确保是两位数
-      const day = String(today.getDate()).padStart(2, '0'); // 获取日期,并确保是两位数
-
-      this.currentDate = `${year}-${month}-${day}`; // 返回格式化后的日期字符串
-    },
-    // 表头的背景色
-    headerCellStyle() {
-      return { backgroundColor: "#f1f1f1" };
-    },
-    showType(type) {
-      this.type = type;
-      this.currentPage = 1;
-      this.getData()
-    },
-    addVersionm() {
-      this.isTableUseVisible = true;
-    },
-    cancel() {
-      this.formatDate();
-      this.upTitle = '';
-      this.upDesc = '';
-      this.upDetail = '';
-      this.tagValue = '';
-      this.tags = [];
-    },
-    update(row) {
-      this.isTableUseVisible2 = true;
-      console.log("表格信息", row);
-      this.currentDate = row.update_at;
-      this.upTitle = row.update_title;
-      this.upDesc = row.update_desc;
-      this.upDetail = row.update_details;
-      this.tagValue = row.update_version;
-      this.tags = row.tagName ? row.tagName.split(',') : [];
-      //修改后的数据
-      this.nid = row.id;
-    },
-    // 添加标签
-    addTag() {
-      if (this.newTag.trim() !== '') {
-        this.tags.push(this.newTag.trim());
-        this.newTag = '';
-      }
-    },
-    // 关闭预览对话框 清空tags
-    handlePreviewClose() {
-      this.tags = [];
-    },
-    // 删除标签
-    removeTag(index) {
-      this.tags.splice(index, 1); // 从标签数组中删除标签
-    },
-    getData() {
-      let params = [
-        {
-          functionName: "getVersion",
-          uid: this.userid,
-          page: this.currentPage,
-          num: this.pageSize,
-          type: this.type
-        }
-      ];
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          console.log("👉", res.data);
-          this.tableData = res.data[0] || [];
-          this.total = (res.data[0] && res.data[0][0] && res.data[0][0].num) || 0;
-
-          this.countFormal = (res.data[1] && res.data[1][0] && res.data[1][0].countFormal) || 0;
-          this.countBeta = (res.data[1] && res.data[1][0] && res.data[1][0].countBeta) || 0;
-          this.countHk = (res.data[1] && res.data[1][0] && res.data[1][0].countHk) || 0;
-          this.countCom = (res.data[1] && res.data[1][0] && res.data[1][0].countCom) || 0;
-          console.log("我被调用了");
-
-        })
-        .catch((err) => {
-          console.log(err);
-        });
-    },
-    async addVersion() {
-      if (this.upTitle === '') {
-        this.$message.error("请填写标题");
-        return;
-      } else if (this.upDesc === '') {
-        this.$message.error("请填写描述");
-        return;
-      } else if (this.upDetail === '') {
-        this.$message.error("请填写详情");
-        return;
-      } else if (this.tags.length === 0) {
-        this.$message.error("请填写标签");
-        return;
-      } else if (this.tagValue === '') {
-        this.$message.error("请选择版本分类");
-        return;
-      }
-
-      await this.versionChong();
-      if (this.isChong === 1) {
-        console.log(1);
-
-        return;
-      }
-      this.isTableUseVisible = false;
-      let params = [
-        {
-          functionName: "addVersion",
-          uid: this.userid,
-          upTime: this.currentDate,
-          utitle: this.upTitle,
-          udesc: this.upDesc,
-          udetail: this.upDetail,
-          uversion: this.tagValue,
-          utags: this.tags.join(',')
-        }
-      ];
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          console.log("👉", res.data);
-          this.$message({
-            message: '添加成功',
-            type: 'success'
-          });
-          this.getData();
-          this.upTitle = '';
-          this.upDesc = '';
-          this.upDetail = '';
-          this.tagValue = '';
-          this.tags = [];
-          console.log(this.currentDate);
-          this.formatDate()
-
-        })
-        .catch((err) => {
-          this.$message.error("添加失败");
-          console.log(err);
-        });
-
-
-    },
-    // 页码扩展按钮
-    handlePageChange(page) {
-      this.currentPage = page;
-      this.getData();
-    },
-    updateVersion() {
-      if (this.upTitle === '') {
-        this.$message.error("请填写标题");
-        return;
-      } else if (this.upDesc === '') {
-        this.$message.error("请填写描述");
-        return;
-      } else if (this.upDetail === '') {
-        this.$message.error("请填写详情");
-        return;
-      } else if (this.tags.length === 0) {
-        this.$message.error("请填写标签");
-        return;
-      } else if (this.tagValue === '') {
-        this.$message.error("请选择版本分类");
-        return;
-      }
-
-      let params = [
-        {
-          functionName: "updateVersion",
-          id: this.nid,
-          ntitle: this.upTitle,
-          ndesc: this.upDesc,
-          ndetail: this.upDetail,
-          ntags: this.tags,
-          nversion: this.tagValue,
-          ntime: this.currentDate
-        }
-      ];
-      this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          console.log("👉", res.data);
-          this.isTableUseVisible2 = false;
-          this.$message({
-            message: '修改成功',
-            type: 'success'
-          });
-          this.getData();
-
-        })
-        .catch((err) => {
-          this.$message.error("修改失败");
-          console.log(err);
-        });
-    },
-    delete_version(id) {
-      this.nid = id;
-
-      let params = [
-        {
-          functionName: "deleteVersion",
-          id: this.nid
-        }
-      ];
-      this.$confirm("确定删除此版本记录吗?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          this.$ajax
-            .post(API_CONFIG.baseUrl, params)
-            .then((res) => {
-              console.log("👉", res.data);
-              this.$message({
-                message: '删除成功',
-                type: 'success'
-              });
-              this.getData();
-
-            })
-        })
-        .catch((err) => {
-          this.$message.error("删除失败");
-          console.log(err);
-        });
-    },
-    async versionChong() {
-      let params = [
-        {
-          functionName: "selectVersionChong",
-          id: this.userid,
-          ntime: this.currentDate,
-          nversion: this.tagValue
-        }
-      ];
-      await this.$ajax
-        .post(API_CONFIG.baseUrl, params)
-        .then((res) => {
-          if (res.data[0][0].isChong === 1) {
-            // 如果日期和版本已存在,提示用户
-            this.$message.error("该日期在当前版本中已存在,请重新选择!");
-            this.isChong = 1;
-            console.log(res.data);
-
-          }
-          else {
-            this.isChong = 0;
-          }
-
-        })
-        .catch((err) => {
-          // 处理请求错误
-          console.error("检查日期和版本失败:", err);
-          this.$message.error("检查日期和版本失败,请稍后重试!");
-        });
-    },
-  },
-  mounted() {
-    this.getData();
-  },
-}
-</script>
-<style scoped>
-.list_container {
-  width: 100%;
-  height: 100%;
-  padding: 10px;
-  box-sizing: border-box;
-  overflow: auto;
-}
-
-/* 按钮区域 */
-.button_top {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  margin: 10px 0;
-}
-
-.button_top a {
-  cursor: pointer;
-  color: black;
-  font-weight: bold;
-}
-
-.button_top a+a {
-  margin-left: 20px;
-}
-
-.table>>>.el-dialog__header {
-  padding: 15px 20px;
-  background: #454545;
-}
-
-.table>>>.el-dialog__title {
-  color: #fff;
-}
-
-.tags-container {
-  margin-top: 10px;
-}
-
-.el-tag {
-  margin-right: 5px;
-}
-
-.el-form-item {
-  display: flex;
-  flex-direction: column;
-}
-
-.el-form-item__label {
-  font-size: 14px;
-  color: #606266;
-  line-height: 40px;
-  width: 70px;
-}
-
-.el-form-item__content {
-  line-height: 40px;
-  position: relative;
-  font-size: 14px;
-}
-
-/* 分页功能的样式 */
-.el-pagination {
-  /* 调整分页组件的顶部向上方距离50px */
-  margin-top: 10px;
-  padding: 0;
-}
-
-/* 设置分页按钮的宽度 */
-.el-pagination .el-pagination__prev,
-.el-pagination .el-pagination__next {
-  width: 60px;
-  /* 设置上一页和下一页按钮的宽度 */
-}
-
-/* 设置页码按钮的宽度 */
-.el-pagination .el-pager li {
-  width: 50px;
-  /* 设置每个页码按钮的宽度 */
-}
-
-/* 设置分页大小选择框的宽度 */
-.el-pagination .el-select {
-  width: 80px;
-  /* 设置分页大小选择框的宽度 */
-}
-
-.operate {
-  display: flex;
-  gap: 24px;
-}
-
-.operate button {
-  background: none;
-  border: none;
-  cursor: pointer;
-}
-
-.version_middle {
-  margin: 34px 45px;
-  border-bottom: 1px solid #E7E7E7;
-  padding-bottom: 25px;
-}
-
-.v_m_title {
-  text-align: center;
-  margin-bottom: 14px;
-  font-size: 56px;
-}
-
-.v_m_instr {
-  color: #00000099;
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-line-clamp: 3;
-  /* 限制显示的行数 */
-  overflow: hidden;
-  text-overflow: ellipsis;
-  line-height: 24px;
-  text-align: center;
-}
-
-.version_content {
-  display: flex;
-  margin: 39px 46px;
-  ;
-}
-
-.v_l_items {
-  display: flex;
-  gap: 13px;
-  flex-wrap: wrap;
-  margin-top: 10px;
-}
-
-.v_l_item {
-  padding: 2px 6px;
-  background: rgb(240, 244, 255);
-  color: rgb(51, 112, 255);
-  border-radius: 4px;
-  text-align: center;
-  font-size: 14px;
-  height: 20px;
-  line-height: 20px;
-  white-space: nowrap;
-  /* 禁止换行 */
-  overflow: hidden;
-  /* 超出部分隐藏 */
-  text-overflow: ellipsis;
-  cursor: pointer;
-  max-width: 165px;
-}
-
-.version_left {
-  max-width: 232px;
-}
-
-.version_right {
-  margin-left: 65px;
-}
-
-.v_r_text {
-  margin-top: 10px;
-  line-height: 35px;
-  text-align: center;
-}
-
-.cell-ellipsis {
-  white-space: nowrap;
-  /* 禁止换行 */
-  overflow: hidden;
-  /* 超出部分隐藏 */
-  text-overflow: ellipsis;
-  /* 显示省略号 */
-}
-
-.tag-item {
-  white-space: nowrap;
-  /* 禁止换行 */
-  overflow: hidden;
-  /* 超出部分隐藏 */
-  text-overflow: ellipsis;
-  /* 显示省略号 */
-  max-width: 200px;
-}
-</style>

+ 5 - 30
src/router/index.js

@@ -1,12 +1,7 @@
 import Vue from 'vue';
 import Vue from 'vue';
 import VueRouter from 'vue-router';
 import VueRouter from 'vue-router';
 import HomeView from '../views/HomeView.vue';
 import HomeView from '../views/HomeView.vue';
-import UserList from '@/components/list.vue'; // 账号列表组件
-import UserExamine from '@/components/examine.vue'; // 账号审核组件.
-import VersionAdd from '@/components/versionAdd.vue';//版本添加组件
-import OrganList from '@/components/organList.vue';
-import SchoolList from '@/components/schoolList.vue';
-
+import homepageL  from '@/views/homepageL.vue'
 
 
 Vue.use(VueRouter);
 Vue.use(VueRouter);
 
 
@@ -24,32 +19,12 @@ const routes = [
     path: '/',
     path: '/',
     name: 'home',
     name: 'home',
     component: HomeView,
     component: HomeView,
-    redirect: '/user-list', // 默认跳转到账号列表
+    redirect: '/homepageL', // 默认跳转到首页
     children: [
     children: [
       {
       {
-        path: 'user-list',
-        name: 'UserList',
-        component: UserList,
-      },
-      {
-        path: 'user-examine',
-        name: 'UserExamine',
-        component: UserExamine,
-      },
-      {
-        path: 'version-add',
-        name: 'VersionAdd',
-        component: VersionAdd,
-      },
-      {
-        path: 'organ-list',
-        name: 'organList',
-        component: OrganList,
-      },
-      {
-        path: 'school-list',
-        name: 'schoolList',
-        component: SchoolList,
+        path: 'homepageL',
+        name: 'homepageL',
+        component: homepageL,
       },
       },
     ],
     ],
   },
   },

+ 72 - 67
src/views/HomeView.vue

@@ -1,31 +1,40 @@
 <template>
 <template>
   <div class="body">
   <div class="body">
-    <div class="top">
+    <!-- <div class="top">
       <div class="title">CocoClass后台管理</div>
       <div class="title">CocoClass后台管理</div>
       <div class="person">
       <div class="person">
         <div class="person_name">{{ userinfo ? userinfo.username : "" }}</div>
         <div class="person_name">{{ userinfo ? userinfo.username : "" }}</div>
         <el-button type="text" @click="handleLogout" style="margin-left: 20px">退出</el-button>
         <el-button type="text" @click="handleLogout" style="margin-left: 20px">退出</el-button>
       </div>
       </div>
-    </div>
+    </div> -->
     <div class="container">
     <div class="container">
       <div class="left">
       <div class="left">
+        <img class="logo"  src="../assets/可可乐博logo.jpg" alt="">
         <ul>
         <ul>
-          <router-link class="menu_left" to="/user-list">
-            <i class="el-icon-s-custom"></i>账号列表
+          <router-link class="menu_left" to="/">
+            <i class="fas fa-home text-xl"></i>
+            <span>首页</span>
+          </router-link>
+          <router-link class="menu_left" to="/">
+            <img src="" alt="">
+            <span>CocoFlow</span>
           </router-link>
           </router-link>
-          <router-link class="menu_left" to="/user-examine">
-            <i class="el-icon-edit"></i>账号审核
+          <router-link class="menu_left" to="/">
+            <img src="" alt="">
+            <span>教学中心</span>
           </router-link>
           </router-link>
-          <router-link class="menu_left" to="/organ-list">
-            <i class="el-icon-office-building"></i>组织列表
+          <router-link class="menu_left" to="/">
+            <img src="" alt="">
+            <span>智能教务</span>
           </router-link>
           </router-link>
-          <router-link class="menu_left" to="/school-list">
-            <i class="el-icon-school"></i>学校列表
+          <router-link class="menu_left" to="/">
+            <img src="" alt="">
+            <span>知识库</span>
           </router-link>
           </router-link>
-          <!-- <router-link class="menu_left" to="/version-add">
-            <i class="el-icon-office-building"></i>版本更新
-          </router-link> -->
         </ul>
         </ul>
+        <div class="userInfo">
+          李老师
+        </div>
       </div>
       </div>
       <div class="table-container">
       <div class="table-container">
         <router-view></router-view>
         <router-view></router-view>
@@ -37,9 +46,13 @@
 <script>
 <script>
 import { mapGetters, mapActions } from 'vuex';
 import { mapGetters, mapActions } from 'vuex';
 import { loginOut } from '@/api/user';
 import { loginOut } from '@/api/user';
+// import sidebarL from '../components/sidebarL.vue';
 
 
 export default {
 export default {
   name: "HomeView",
   name: "HomeView",
+  components:{
+    // sidebarL
+  },
   computed: {
   computed: {
     ...mapGetters(['userinfo']),
     ...mapGetters(['userinfo']),
   },
   },
@@ -75,79 +88,71 @@ export default {
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
-.body {
-  width: 100%;
-  height: 100%;
-  overflow: hidden;
-}
-.top {
-  width: 100%;
-  height: 50px;
-  background-color: #ffffff;
-  display: flex;
-  align-items: center;
-  padding: 0 20px;
-  box-sizing: border-box;
+.logo{
+  width: 80px;
+  height: 68px;
 }
 }
-.top > .title {
-  font-weight: bold;
-  font-size: 20px;
-  line-height: 40px;
-}
-.person {
-  margin-left: auto;
-  display: flex;
-  align-items: center;
-}
-.person > .person_name {
-  font-size: 15px;
-  color: black;
-  font-weight: 400;
-}
-.container {
-  display: flex;
-  width: 100%;
-  height: calc(100% - 50px);
-  overflow: hidden;
-}
-.table-container {
-  width: calc(100% - 180px);
-  overflow: hidden;
-  height: 100%;
+.userInfo{
+  width: 80px;
+  height: 128px;
 }
 }
 .left {
 .left {
-  width: 180px;
+  width: 80px;
   height: 100%;
   height: 100%;
   background-color: #ffffff;
   background-color: #ffffff;
   display: flex;
   display: flex;
   flex-direction: column;
   flex-direction: column;
-  border: 5px;
   align-items: center;
   align-items: center;
+  justify-content: space-between;
+  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+  overflow: visible; /* 默认值,允许阴影溢出 */
+  z-index: 99999;
 }
 }
-.left ul {
+.left ul { 
   width: 100%;
   width: 100%;
+  height: 100%;
+  padding: 8px;
+  box-sizing: border-box;
+  display: flex;
+  flex-direction: column;
   background-color: #ffffff;
   background-color: #ffffff;
 }
 }
+
 .menu_left {
 .menu_left {
-  width: 100%;
-  height: 50px;
-  text-decoration: none;
-  color: rgb(154, 154, 154);
-  background-color: #ffffff;
-  line-height: 40px;
-  display: flex;
+  width: 64px;
+  height: 70px;
+  font-size: 10px;
+  margin-top: 3px;
+  white-space: nowrap;
+  color: #64748b;
   align-items: center;
   align-items: center;
   justify-content: center;
   justify-content: center;
+  display: flex;
+  padding: 12px;
+  box-sizing: border-box;
+  border-radius: 10px;
+  border: none;
+  text-decoration: none; /* 移除下划线 */
 }
 }
 .menu_left > i {
 .menu_left > i {
   margin-right: 10px;
   margin-right: 10px;
 }
 }
-.router-link-active {
-  background-color: #3d67bc;
-  color: rgb(255, 255, 255);
+.body {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+}
+
+.container {
+  display: flex;
+  width: 100%;
+  height: 100vh;
 }
 }
-.router-link-exact-active {
-  background-color: #3d67bc;
-  color: rgb(255, 255, 255);
+.table-container {
+  display: flex;
+  flex: 1;
+  justify-content: center;
+  background-color: #F9FAFB;
 }
 }
+
 </style>
 </style>

+ 42 - 0
src/views/homepageL.vue

@@ -0,0 +1,42 @@
+<template>
+    <div class="allPage">
+        <div class="packageL">
+            <topPage></topPage>
+            <div style="height: 30px;width: 100%;"></div>
+            <botPage></botPage>
+        </div>
+    </div>
+</template>
+
+<script>
+import topPage from '../components/topPage'
+import botPage from '../components/botPage'
+
+    export default {
+        components:{
+            topPage,
+            botPage
+        },
+        data() {
+            return {
+                
+            }
+        },
+    }
+</script>
+
+<style scoped>
+    .allPage{
+        width: 100%;
+        justify-content: center;
+        height: 100%;
+        overflow: auto;
+    }
+    .packageL{
+        padding: 24px;
+        box-sizing: border-box;
+        margin: auto;
+        max-width: 1280px;
+    }
+
+</style>

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác