lsc 2 years ago
parent
commit
d9022eb707

+ 1 - 1
src/App.vue

@@ -7,7 +7,7 @@
         $route.path == '/note' ||
         $route.path == '/note' ||
         $route.path == '/works',
         $route.path == '/works',
       appNoHeight: $route.path == '/liveRoom',
       appNoHeight: $route.path == '/liveRoom',
-      GMBg:this.$route.query.org=='eb2af5e9-ac3d-46b6-9fe3-3c1c364f0217' && ( $route.path != '/courseGM' &&  $route.path != '/course/addCourseGM'&&  $route.path != '/dataGM'&&  $route.path != '/typeGM')
+      GMBg:this.$route.query.org=='eb2af5e9-ac3d-46b6-9fe3-3c1c364f0217' && ( $route.path != '/courseGM' &&  $route.path != '/course/addCourseGM'&&  $route.path != '/dataGM')
     }"
     }"
   >
   >
     <!-- <div class="app_head" :class="{stuWidth:$route.path == '/student'}"> -->
     <!-- <div class="app_head" :class="{stuWidth:$route.path == '/student'}"> -->

+ 1 - 1
src/components/pages/Ttype.vue

@@ -29,7 +29,7 @@
         <div v-if="step == 1" class="student_search1">
         <div v-if="step == 1" class="student_search1">
           <div></div>
           <div></div>
           <div>
           <div>
-            <el-button size="small" type="primary" @click="dialogVisible6 = true">修改Banner</el-button>
+            <!-- <el-button size="small" type="primary" @click="dialogVisible6 = true">修改Banner</el-button> -->
           </div>
           </div>
         </div>
         </div>
         <div v-if="step == 2" class="student_search1">
         <div v-if="step == 2" class="student_search1">

+ 42 - 22
src/components/pages/TtypeGM.vue

@@ -29,7 +29,7 @@
         <div v-if="step == 1" class="student_search1">
         <div v-if="step == 1" class="student_search1">
           <div></div>
           <div></div>
           <div>
           <div>
-            <el-button size="small" type="primary" @click="dialogVisible6 = true">修改Banner</el-button>
+            <!-- <el-button size="small" type="primary" @click="dialogVisible6 = true" class="btnClassGM">修改Banner</el-button> -->
           </div>
           </div>
         </div>
         </div>
         <div v-if="step == 2" class="student_search1">
         <div v-if="step == 2" class="student_search1">
@@ -38,10 +38,10 @@
               <span @click="step = 1" style="cursor: pointer">分类列表</span>
               <span @click="step = 1" style="cursor: pointer">分类列表</span>
             </el-breadcrumb-item>
             </el-breadcrumb-item>
             <el-breadcrumb-item>
             <el-breadcrumb-item>
-              <span style="color: rgb(15, 126, 255)">子分类列表</span>
+              <span style="color: #5c549f">子分类列表</span>
             </el-breadcrumb-item>
             </el-breadcrumb-item>
           </el-breadcrumb>
           </el-breadcrumb>
-          <el-button size="small" type="primary" @click="dialogVisible4 = true">添加子分类</el-button>
+          <el-button size="small" type="primary" @click="dialogVisible4 = true" class="btnClassGM">添加子分类</el-button>
         </div>
         </div>
         <el-table ref="table" :data="tableData1" stripe border
         <el-table ref="table" :data="tableData1" stripe border
           :header-cell-style="{ background: '#f1f1f1', 'text-align': 'center' }"
           :header-cell-style="{ background: '#f1f1f1', 'text-align': 'center' }"
@@ -52,7 +52,7 @@
           <el-table-column prop="date" label="操作" min-width="30">
           <el-table-column prop="date" label="操作" min-width="30">
             <template slot-scope="scope">
             <template slot-scope="scope">
               <div class="pb_buttonBox">
               <div class="pb_buttonBox">
-                <el-button size="mini" type="primary" @click="selectSType(scope.row.id)">
+                <el-button size="mini" type="primary" @click="selectSType(scope.row.id)" class="btnClassGM">
                   查看子分类
                   查看子分类
                 </el-button>
                 </el-button>
               </div>
               </div>
@@ -68,8 +68,8 @@
           <el-table-column prop="date" label="操作" min-width="30">
           <el-table-column prop="date" label="操作" min-width="30">
             <template slot-scope="scope">
             <template slot-scope="scope">
               <div class="pb_buttonBox">
               <div class="pb_buttonBox">
-                <el-button size="mini" type="primary" @click="updateSPType(scope.row.id, scope.row.name)">修改</el-button>
-                <el-button size="mini" type="primary" @click="deleteStype(scope.row.id)">删除</el-button>
+                <el-button size="mini" type="primary" @click="updateSPType(scope.row.id, scope.row.name)" class="btnClassGM">修改</el-button>
+                <el-button size="mini" type="primary" @click="deleteStype(scope.row.id)" class="btnClassGM">删除</el-button>
               </div>
               </div>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
@@ -95,8 +95,8 @@
         <el-input v-model="schoolName" style="width: 250px; margin: 15px 0px" placeholder="请输入学校名称"></el-input>
         <el-input v-model="schoolName" style="width: 250px; margin: 15px 0px" placeholder="请输入学校名称"></el-input>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="addSchool">确 定</el-button>
+        <el-button @click="dialogVisible = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="addSchool" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog title="修改学校" :visible.sync="dialogVisible1" width="500px" :before-close="handleClose" class="dialog_diy"
     <el-dialog title="修改学校" :visible.sync="dialogVisible1" width="500px" :before-close="handleClose" class="dialog_diy"
@@ -106,8 +106,8 @@
         <el-input v-model="schoolName" style="width: 250px; margin: 15px 0px" placeholder="请输入学校名称"></el-input>
         <el-input v-model="schoolName" style="width: 250px; margin: 15px 0px" placeholder="请输入学校名称"></el-input>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible1 = false">取 消</el-button>
-        <el-button type="primary" @click="updateSchool">确 定</el-button>
+        <el-button @click="dialogVisible1 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="updateSchool" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog title="添加分类" :visible.sync="dialogVisible2" width="500px" :before-close="handleClose" class="dialog_diy"
     <el-dialog title="添加分类" :visible.sync="dialogVisible2" width="500px" :before-close="handleClose" class="dialog_diy"
@@ -117,8 +117,8 @@
         <el-input v-model="typeName" style="width: 250px; margin: 15px 0px" placeholder="请输入分类名称"></el-input>
         <el-input v-model="typeName" style="width: 250px; margin: 15px 0px" placeholder="请输入分类名称"></el-input>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible2 = false">取 消</el-button>
-        <el-button type="primary" @click="addType">确 定</el-button>
+        <el-button @click="dialogVisible2 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="addType" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog title="修改分类" :visible.sync="dialogVisible3" width="500px" :before-close="handleClose" class="dialog_diy"
     <el-dialog title="修改分类" :visible.sync="dialogVisible3" width="500px" :before-close="handleClose" class="dialog_diy"
@@ -128,8 +128,8 @@
         <el-input v-model="typeName" style="width: 250px; margin: 15px 0px" placeholder="请输入分类名称"></el-input>
         <el-input v-model="typeName" style="width: 250px; margin: 15px 0px" placeholder="请输入分类名称"></el-input>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible3 = false">取 消</el-button>
-        <el-button type="primary" @click="updatePtype">确 定</el-button>
+        <el-button @click="dialogVisible3 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="updatePtype" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog title="添加子分类" :visible.sync="dialogVisible4" width="500px" :before-close="handleClose" class="dialog_diy"
     <el-dialog title="添加子分类" :visible.sync="dialogVisible4" width="500px" :before-close="handleClose" class="dialog_diy"
@@ -139,8 +139,8 @@
         <el-input v-model="sTypeName" style="width: 250px; margin: 15px 0px" placeholder="请输入子分类名称"></el-input>
         <el-input v-model="sTypeName" style="width: 250px; margin: 15px 0px" placeholder="请输入子分类名称"></el-input>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible4 = false">取 消</el-button>
-        <el-button type="primary" @click="addStype">确 定</el-button>
+        <el-button @click="dialogVisible4 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="addStype" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog title="修改子分类" :visible.sync="dialogVisible5" width="500px" :before-close="handleClose" class="dialog_diy"
     <el-dialog title="修改子分类" :visible.sync="dialogVisible5" width="500px" :before-close="handleClose" class="dialog_diy"
@@ -150,8 +150,8 @@
         <el-input v-model="sTypeName" style="width: 250px; margin: 15px 0px" placeholder="请输入子分类名称"></el-input>
         <el-input v-model="sTypeName" style="width: 250px; margin: 15px 0px" placeholder="请输入子分类名称"></el-input>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible5 = false">取 消</el-button>
-        <el-button type="primary" @click="updateStype">确 定</el-button>
+        <el-button @click="dialogVisible5 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="updateStype" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog title="添加图片" :visible.sync="dialogVisible6" width="500px" :before-close="handleClose" class="dialog_diy"
     <el-dialog title="添加图片" :visible.sync="dialogVisible6" width="500px" :before-close="handleClose" class="dialog_diy"
@@ -178,8 +178,8 @@
         </div> -->
         </div> -->
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible6 = false">取 消</el-button>
-        <el-button type="primary" @click="addBanner">确 定</el-button>
+        <el-button @click="dialogVisible6 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="addBanner" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <el-dialog :visible.sync="imgVisible">
     <el-dialog :visible.sync="imgVisible">
@@ -209,8 +209,8 @@
         </el-card>
         </el-card>
       </div>
       </div>
       <span slot="footer" class="dialog-footer">
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible7 = false">取 消</el-button>
-        <el-button type="primary" @click="setBannerUrl">确 定</el-button>
+        <el-button @click="dialogVisible7 = false" class="cancelbtnGM">取 消</el-button>
+        <el-button type="primary" @click="setBannerUrl" class="btnClassGM">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
   </div>
   </div>
@@ -979,4 +979,24 @@ export default {
 .cardHead {
 .cardHead {
   display: flex;
   display: flex;
 }
 }
+
+.student_table >>> .el-table,
+.student_table >>> .el-table__body-wrapper {
+  height: auto !important;
+}
+
+.student_page
+  >>> .el-pagination.is-background
+  .el-pager
+  li:not(.disabled).active {
+  background-color: #5c549f;
+  color: #fff !important;
+}
+.student_page
+  >>> .el-pagination.is-background
+  .el-pager
+  li:not(.disabled):hover {
+  color: #5c549f;
+}
+
 </style>
 </style>

+ 1187 - 0
src/components/pages/TtypeOrg.vue

@@ -0,0 +1,1187 @@
+<template>
+  <div
+    class="pb_content"
+    style="
+      background: unset;
+      overflow: auto;
+      padding: 20px;
+      margin: 0;
+      box-sizing: border-box;
+    "
+  >
+    <div
+      style="
+        position: absolute;
+        width: 95%;
+        top: 0;
+        height: 100%;
+        overflow: auto;
+        left: 50%;
+        transform: translateX(-50%);
+      "
+    >
+      <div
+        class="pb_content_body"
+        style="
+          background: #fff;
+          padding: 10px 25px;
+          box-sizing: border-box;
+          border-radius: 5px;
+        "
+      >
+        <div class="pb_head">
+          <span>分组管理</span>
+          <!-- <span>备注:教师可以根据课程、班级条件筛选学生并查看该学生信息</span> -->
+        </div>
+        <div class="student_head">
+          <div class="student_search">
+            <!-- <el-button
+              size="small"
+              type="primary"
+              @click="dialogVisible = true"
+              v-if="step == 0"
+              >添加学校</el-button
+            > -->
+            <div v-if="step == 1" class="student_search1">
+              <el-breadcrumb
+                separator-class="el-icon-arrow-right"
+                style="margin-top: 15px"
+              >
+                <el-breadcrumb-item>
+                  <span @click="step = 0;" style="cursor: pointer"
+                    >学校列表</span
+                  ></el-breadcrumb-item
+                >
+                <el-breadcrumb-item>
+                  <span style="color: rgb(15, 126, 255)">分类列表</span>
+                </el-breadcrumb-item>
+              </el-breadcrumb>
+              <div>
+                <el-button
+                  size="small"
+                  type="primary"
+                  @click="dialogVisible6 = true"
+                  >修改Banner</el-button
+                >
+                <!-- <el-button
+                  size="small"
+                  type="primary"
+                  @click="dialogVisible2 = true"
+                  >添加分类</el-button
+                > -->
+              </div>
+            </div>
+            <div v-if="step == 2" class="student_search1">
+              <el-breadcrumb
+                separator-class="el-icon-arrow-right"
+                style="margin-top: 15px"
+              >
+                <el-breadcrumb-item>
+                  <span @click="step = 0" style="cursor: pointer"
+                    >学校列表</span
+                  ></el-breadcrumb-item
+                >
+                <el-breadcrumb-item>
+                  <span @click="step = 1" style="cursor: pointer"
+                    >分类列表</span
+                  >
+                </el-breadcrumb-item>
+                <el-breadcrumb-item>
+                  <span style="color: rgb(15, 126, 255)">子分类列表</span>
+                </el-breadcrumb-item>
+              </el-breadcrumb>
+              <el-button
+                size="small"
+                type="primary"
+                @click="dialogVisible4 = true"
+                >添加子分类</el-button
+              >
+            </div>
+          </div>
+        </div>
+        <el-table
+          ref="table"
+          :data="tableData"
+          stripe
+          border
+          :header-cell-style="{ background: '#f1f1f1', 'text-align': 'center' }"
+          :cell-style="{ 'text-align': 'center' }"
+          style="width: 100%"
+          :height="tableHeight"
+          v-loading="isLoading"
+          v-if="step == 0"
+        >
+          <el-table-column prop="name" label="学校名称" min-width="70">
+          </el-table-column>
+          <el-table-column prop="date" label="操作" min-width="30">
+            <template slot-scope="scope">
+              <div class="pb_buttonBox">
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="selectType(scope.row.id)"
+                >
+                  查看分类
+                </el-button>
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="updateS(scope.row.id, scope.row.name)"
+                  >修改</el-button
+                >
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="deleteSchool(scope.row.id)"
+                  >删除</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-table
+          ref="table"
+          :data="tableData1"
+          stripe
+          border
+          :header-cell-style="{ background: '#f1f1f1', 'text-align': 'center' }"
+          :cell-style="{ 'text-align': 'center' }"
+          style="width: 100%"
+          :height="tableHeight"
+          v-loading="isLoading"
+          v-if="step == 1"
+        >
+          <el-table-column prop="name" label="分类名称" min-width="70">
+          </el-table-column>
+          <el-table-column prop="date" label="操作" min-width="30">
+            <template slot-scope="scope">
+              <div class="pb_buttonBox">
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="selectSType(scope.row.id)"
+                >
+                  查看子分类
+                </el-button>
+                <!-- <el-button
+                  size="mini"
+                  type="primary"
+                  @click="updateP(scope.row.id, scope.row.name)"
+                  >修改</el-button
+                >
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="deletePtype(scope.row.id)"
+                  >删除</el-button
+                > -->
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-table
+          ref="table"
+          :data="tableData2"
+          stripe
+          border
+          :header-cell-style="{ background: '#f1f1f1', 'text-align': 'center' }"
+          :cell-style="{ 'text-align': 'center' }"
+          style="width: 100%"
+          :height="tableHeight"
+          v-loading="isLoading"
+          v-if="step == 2"
+        >
+          <el-table-column prop="name" label="子分类名称" min-width="70">
+          </el-table-column>
+          <el-table-column prop="date" label="操作" min-width="30">
+            <template slot-scope="scope">
+              <div class="pb_buttonBox">
+                <!-- <el-button size="mini" type="primary" @click="selectType">
+                  查看子分类
+                </el-button> -->
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="updateSPType(scope.row.id, scope.row.name)"
+                  >修改</el-button
+                >
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="deleteStype(scope.row.id)"
+                  >删除</el-button
+                >
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <div class="student_page" v-show="step == 0">
+        <el-pagination
+          background
+          layout="prev, pager, next"
+          :page-size="10"
+          :total="total"
+          v-if="page"
+          @current-change="handleCurrentChange"
+        ></el-pagination>
+      </div>
+      <div class="student_page" v-show="step == 1">
+        <el-pagination
+          background
+          layout="prev, pager, next"
+          :page-size="10"
+          :total="total1"
+          v-if="page1"
+          @current-change="handleCurrentChange1"
+        ></el-pagination>
+      </div>
+      <div class="student_page" v-show="step == 2">
+        <el-pagination
+          background
+          layout="prev, pager, next"
+          :page-size="10"
+          :total="total2"
+          v-if="page2"
+          @current-change="handleCurrentChange2"
+        ></el-pagination>
+      </div>
+    </div>
+    <el-dialog
+      title="添加学校"
+      :visible.sync="dialogVisible"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div class="addBox">
+        <span class="tian1">学校名称</span>
+        <el-input
+          v-model="schoolName"
+          style="width: 250px; margin: 15px 0px"
+          placeholder="请输入学校名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="addSchool">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="修改学校"
+      :visible.sync="dialogVisible1"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div class="addBox">
+        <span class="tian1">学校名称</span>
+        <el-input
+          v-model="schoolName"
+          style="width: 250px; margin: 15px 0px"
+          placeholder="请输入学校名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible1 = false">取 消</el-button>
+        <el-button type="primary" @click="updateSchool">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="添加分类"
+      :visible.sync="dialogVisible2"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div class="addBox">
+        <span class="tian1">分类名称</span>
+        <el-input
+          v-model="typeName"
+          style="width: 250px; margin: 15px 0px"
+          placeholder="请输入分类名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible2 = false">取 消</el-button>
+        <el-button type="primary" @click="addType">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="修改分类"
+      :visible.sync="dialogVisible3"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div class="addBox">
+        <span class="tian1">分类名称</span>
+        <el-input
+          v-model="typeName"
+          style="width: 250px; margin: 15px 0px"
+          placeholder="请输入分类名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible3 = false">取 消</el-button>
+        <el-button type="primary" @click="updatePtype">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="添加子分类"
+      :visible.sync="dialogVisible4"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div class="addBox">
+        <span class="tian1">子分类名称</span>
+        <el-input
+          v-model="sTypeName"
+          style="width: 250px; margin: 15px 0px"
+          placeholder="请输入子分类名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible4 = false">取 消</el-button>
+        <el-button type="primary" @click="addStype">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="修改子分类"
+      :visible.sync="dialogVisible5"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div class="addBox">
+        <span class="tian1">子分类名称</span>
+        <el-input
+          v-model="sTypeName"
+          style="width: 250px; margin: 15px 0px"
+          placeholder="请输入子分类名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible5 = false">取 消</el-button>
+        <el-button type="primary" @click="updateStype">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="添加图片"
+      :visible.sync="dialogVisible6"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      center
+    >
+      <div>
+        <div class="dialogBox">
+          <span>添加图片</span>
+
+          <el-upload
+            :class="{ disUoloadSty: noneBtnImg }"
+            action="#"
+            list-type="picture-card"
+            :on-preview="handlePictureCardPreview"
+            :on-remove="handleRemove"
+            v-loading="uploadLoading"
+            :http-request="beforeUpload"
+            ref="upload"
+            :show-file-list="true"
+            :limit="1"
+            accept="image/*"
+          >
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </div>
+        <div class="dialogBox" style="color: #bebebe; margin: 10px 0 0 0">
+          注:适宜上传banner尺寸为1218×300
+        </div>
+        <!-- <div class="dialogBox" style="margin: 10px 0 0 0">
+          <span>Banner课程链接</span>
+          <span style="max-width: 160px">{{ bannerCourse.title }}</span>
+          <el-button type="primary" size="medium" @click="addBannerUrlPop"
+            >选择课程</el-button
+          >
+        </div> -->
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible6 = false">取 消</el-button>
+        <el-button type="primary" @click="addBanner">确 定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog :visible.sync="imgVisible">
+      <img width="100%" :src="dialogImageUrl" alt="" />
+    </el-dialog>
+    <el-dialog
+      title="添加链接"
+      :visible.sync="dialogVisible7"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy"
+      style="text-align: center"
+      center
+    >
+      <div>
+        <el-card class="box-card">
+          <div slot="header" class="cardHead">
+            <el-input
+              v-model="searchClassName"
+              placeholder="请输入需要添加的课程"
+              @keypress.native.enter="Search"
+            ></el-input>
+            <el-button type="text" style="margin: 0 0 0 20px" @click="Search"
+              >搜索</el-button
+            >
+          </div>
+          <div class="cardList">
+            <div v-for="item in courseList" :key="item.courseId">
+              <el-popover placement="top-start" trigger="hover">
+                <p style="max-width: 380px">课程名称: {{ item.title }}</p>
+                <p style="max-width: 380px">简介: {{ item.brief }}</p>
+                <el-radio
+                  :label="item"
+                  slot="reference"
+                  v-model="checkBannerCourse"
+                  ><span>课程名称:</span
+                  ><span>{{ item.title }}</span></el-radio
+                >
+              </el-popover>
+            </div>
+            <!-- </el-checkbox-group> -->
+            <div v-if="courseList.length == 0">暂无数据</div>
+          </div>
+        </el-card>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible7 = false">取 消</el-button>
+        <el-button type="primary" @click="setBannerUrl">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableHeight: "500px",
+      isLoading: false,
+      formLabelWidth: "100px",
+      tableData: [],
+      tableData1: [],
+      tableData2: [],
+      fileList: [],
+      schoolName: "",
+      typeName: "",
+      bannerCourse: "",
+      sTypeName: "",
+      searchClassName: "",
+      checkBannerCourse: "",
+      noneBtnImg: false,
+      isBanner: false,
+      page: 1,
+      total: 0,
+      page1: 1,
+      total1: 0,
+      page2: 1,
+      total2: 0,
+      userid: this.$route.query.userid,
+      oid: this.$route.query.oid,
+      dialogVisible: false,
+      dialogVisible1: false,
+      dialogVisible2: false,
+      dialogVisible3: false,
+      dialogVisible4: false,
+      updateOid: "",
+      dialogVisible5: false,
+      dialogVisible6: false,
+      dialogVisible7: false,
+      step: 0,
+      pid: "",
+      imgVisible: false,
+      dialogImageUrl: "",
+      uploadLoading: false,
+      checkList: [],
+      courseList: [],
+    };
+  },
+  mounted() {
+    this.$nextTick(function () {
+      this.tableHeight =
+        window.innerHeight - this.$refs.table.$el.offsetTop - 200;
+      if (this.tableHeight <= 530) {
+        this.tableHeight = 530;
+      }
+      // 监听窗口大小变化
+      let self = this;
+      window.onresize = function () {
+        self.tableHeight =
+          window.innerHeight - self.$refs.table.$el.offsetTop - 200;
+        if (self.tableHeight <= 530) {
+          self.tableHeight = 530;
+        }
+      };
+    });
+  },
+  methods: {
+    goTo(path) {
+      this.$router.push(path);
+    },
+    time() {
+      if (!this.now) {
+        this.now = new Date().getTime();
+        return true;
+      } else {
+        let time = new Date().getTime();
+        if (time - this.now > 3000) {
+          this.now = time;
+          return true;
+        } else {
+          return false;
+        }
+      }
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "even_row";
+      } else {
+        return "";
+      }
+    },
+    handleClose(done) {
+      done();
+    },
+    imgChange(file, fileList) {
+      var _tmp = this.fileList;
+      this.noneBtnImg = _tmp.length >= 1;
+    },
+    handleRemove(file) {
+      var _tmp = this.fileList;
+      for (var i = 0, len = _tmp.length; i < len; i++) {
+        if (_tmp[i].uid == file.uid) {
+          _tmp.splice(i, 1);
+          break;
+        }
+        this.fileList = _tmp;
+      }
+      this.noneBtnImg = _tmp.length >= 1;
+    },
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = this.fileList[0].url;
+      this.imgVisible = true;
+    },
+    handleCurrentChange(val) {
+      this.page = val;
+      this.selectSchool();
+    },
+    handleCurrentChange1(val) {
+      this.page1 = val;
+      this.selectType();
+    },
+    handleCurrentChange2(val) {
+      this.page2 = val;
+      this.selectSType();
+    },
+    beforeUpload(data) {
+      this.$refs.upload.uploadFiles;
+      this.uploadLoading = true;
+      var file = data.file;
+      var credentials = {
+        accessKeyId: "AKIATLPEDU37QV5CHLMH",
+        secretAccessKey: "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",
+      }; //秘钥形式的登录上传
+      window.AWS.config.update(credentials);
+      window.AWS.config.region = "cn-northwest-1"; //设置区域
+
+      var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
+      var _this = this;
+
+      if (file) {
+        var params = {
+          Key:
+            file.name.split(".")[0] +
+            new Date().getTime() +
+            "." +
+            file.name.split(".")[1],
+          ContentType: file.type,
+          Body: file,
+          "Access-Control-Allow-Credentials": "*",
+          ACL: "public-read",
+        }; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
+        var options = {
+          partSize: 2048 * 1024 * 1024,
+          queueSize: 2,
+          leavePartsOnError: true,
+        };
+        bucket
+          .upload(params, options)
+          .on("httpUploadProgress", function (evt) {
+            //这里可以写进度条
+            // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
+          })
+          .send(function (err, data) {
+            _this.uploadLoading = false;
+            if (err) {
+              var a = _this.$refs.upload.uploadFiles;
+              a.splice(a.length - 1, a.length);
+              _this.$message.error("上传失败");
+            } else {
+              //上传成功处理
+              _this.fileList.push({
+                name: file.name,
+                url: data.Location,
+                uid: file.uid,
+              });
+              console.log(data.Location);
+              _this.imgChange();
+            }
+          });
+      }
+    },
+    addBanner() {
+      if (this.isBanner == true) {
+        this.$confirm(
+          "您已经添加过Banner了,如果您再提交将覆盖上次提交的Banner!",
+          "提示",
+          {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }
+        )
+          .then(() => {
+            var list = this.fileList;
+            if (list.length == 0) {
+              this.$message.error("请上传需要添加的banner");
+              return;
+            }
+            if (this.time()) {
+              let params = [
+                {
+                  p: list[0].url,
+                  url: "",
+                  uid: this.userid,
+                  oid: this.updateOid,
+                },
+              ];
+              this.ajax
+                .post(this.$store.state.api + "addBanner", params)
+                .then((res) => {
+                  this.$message({
+                    message: "添加成功",
+                    type: "success",
+                  });
+                  this.dialogVisible6 = false;
+                  this.init();
+                })
+                .catch((err) => {
+                  this.$message.error("添加失败");
+                  console.error(err);
+                });
+            }
+          })
+          .catch(() => {});
+      } else {
+        var list = this.fileList;
+        if (list.length == 0) {
+          this.$message.error("请上传需要添加的banner");
+          return;
+        }
+        if (this.time()) {
+          let params = [
+            {
+              p: list[0].url,
+              url: "",
+              uid: this.userid,
+              oid: this.updateOid,
+            },
+          ];
+          this.ajax
+            .post(this.$store.state.api + "addBanner", params)
+            .then((res) => {
+              this.$message({
+                message: "添加成功",
+                type: "success",
+              });
+              this.dialogVisible6 = false;
+              this.init();
+            })
+            .catch((err) => {
+              this.$message.error("添加失败");
+              console.error(err);
+            });
+        }
+      }
+    },
+    setBannerUrl() {
+      if (this.checkBannerCourse == "") {
+        this.$message.error("请选择作为banner链接的课程");
+        return;
+      }
+      this.bannerCourse = this.checkBannerCourse;
+      this.dialogVisible7 = false;
+    },
+    selectSchool() {
+      this.isLoading = true;
+      let params = {
+        page: this.page,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectOrgName", params)
+        .then((res) => {
+          this.isLoading = false;
+          this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.tableData = res.data[0];
+        })
+        .catch((err) => {
+          this.isLoading = false;
+          console.error(err);
+        });
+    },
+    addSchool() {
+      let params = [
+        {
+          n: this.schoolName,
+          cuid: this.userid,
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "addSchoolAdmin", params)
+        .then((res) => {
+          this.$message({
+            message: "添加成功",
+            type: "success",
+          });
+          this.dialogVisible = false;
+          this.schoolName = "";
+          this.selectSchool();
+        })
+        .catch((err) => {
+          this.$message.error("添加失败");
+          console.error(err);
+        });
+    },
+    updateS(id, name) {
+      this.dialogVisible1 = true;
+      this.schoolName = name;
+      this.updateId = id;
+    },
+    updateP(id, name) {
+      this.dialogVisible3 = true;
+      this.typeName = name;
+      this.updateId = id;
+    },
+    updateSPType(id, name) {
+      this.dialogVisible5 = true;
+      this.sTypeName = name;
+      this.updateId = id;
+    },
+    updateSchool() {
+      let params = {
+        oid: this.updateId,
+        n: this.schoolName,
+      };
+      this.ajax
+        .get(this.$store.state.api + "updateSN", params)
+        .then((res) => {
+          this.$message({
+            message: "修改成功",
+            type: "success",
+          });
+          this.dialogVisible1 = false;
+          this.updateId = "";
+          this.schoolName = "";
+          this.selectSchool();
+        })
+        .catch((err) => {
+          this.$message.error("修改失败");
+          console.error(err);
+        });
+    },
+    deleteSchool(id) {
+      let params = [
+        {
+          id: id,
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "deleteSchoolAdmin", params)
+        .then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.updateId = "";
+          this.schoolName = "";
+          this.selectSchool();
+        })
+        .catch((err) => {
+          this.$message.error("删除成功");
+          console.error(err);
+        });
+    },
+    selectType(id) {
+      this.tableData1 = [];
+      this.tableData2 = [];
+      this.step = 1;
+      this.updateOid = id;
+      let params = {
+        page: this.page1,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectPtype", params)
+        .then((res) => {
+          this.total1 = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.tableData1 = res.data[0];
+          this.selectBanner();
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    selectBanner() {
+      let params = {
+        oid: this.updateOid,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectBannerByOid", params)
+        .then((res) => {
+          if (res.data[0].length > 0) {
+            this.isBanner = true;
+          } else {
+            this.isBanner = false;
+          }
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    selectSType(pid) {
+      this.step = 2;
+      if (pid != undefined) {
+        this.pid = pid;
+      }
+      let params = {
+        pid: pid != undefined ? pid : this.pid,
+        oid: this.updateOid,
+        page: this.page2,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectStype", params)
+        .then((res) => {
+          this.total2 = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.tableData2 = res.data[0];
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    addType() {
+      let params = {
+        n: this.typeName,
+        uid: this.userid,
+        oid: this.oid,
+      };
+      this.ajax
+        .get(this.$store.state.api + "addPtype", params)
+        .then((res) => {
+          this.$message({
+            message: "添加成功",
+            type: "success",
+          });
+          this.dialogVisible2 = false;
+          this.typeName = "";
+          this.selectType();
+        })
+        .catch((err) => {
+          this.$message.error("添加失败");
+          console.error(err);
+        });
+    },
+    updatePtype() {
+      let params = {
+        n: this.typeName,
+        tid: this.updateId,
+      };
+      this.ajax
+        .get(this.$store.state.api + "updatePtype", params)
+        .then((res) => {
+          this.$message({
+            message: "修改成功",
+            type: "success",
+          });
+          this.dialogVisible3 = false;
+          this.updateId = "";
+          this.typeName = "";
+          this.selectType();
+        })
+        .catch((err) => {
+          this.$message.error("修改失败");
+          console.error(err);
+        });
+    },
+    deletePtype(id) {
+      let params = {
+        tid: id,
+      };
+      this.ajax
+        .get(this.$store.state.api + "deletePtype", params)
+        .then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.updateId = "";
+          this.typeName = "";
+          this.selectType();
+        })
+        .catch((err) => {
+          this.$message.error("删除失败");
+          console.error(err);
+        });
+    },
+    addStype() {
+      let params = {
+        n: this.sTypeName,
+        pid: this.pid,
+        uid: this.userid,
+        oid: this.updateOid,
+      };
+      this.ajax
+        .get(this.$store.state.api + "addStype", params)
+        .then((res) => {
+          this.$message({
+            message: "添加成功",
+            type: "success",
+          });
+          this.dialogVisible4 = false;
+          this.sTypeName = "";
+          this.selectSType();
+        })
+        .catch((err) => {
+          this.$message.error("添加成功");
+          console.error(err);
+        });
+    },
+    updateStype() {
+      let params = {
+        n: this.sTypeName,
+        tid: this.updateId,
+      };
+      this.ajax
+        .get(this.$store.state.api + "updatePtype", params)
+        .then((res) => {
+          this.$message({
+            message: "修改成功",
+            type: "success",
+          });
+          this.dialogVisible5 = false;
+          this.updateId = "";
+          this.sTypeName = "";
+          this.selectSType();
+        })
+        .catch((err) => {
+          this.$message.error("修改失败");
+          console.error(err);
+        });
+    },
+    //打开添加弹窗
+    addBannerUrlPop() {
+      this.dialogVisible7 = true;
+      this.searchClassName = "";
+      this.Search();
+    },
+    init() {
+      this.searchClassName = "";
+      this.checkList = [];
+      this.courseList = [];
+      this.fileList = [];
+      this.$refs.upload ? (this.$refs.upload.uploadFiles.length = 0) : "";
+      this.noneBtnImg = false;
+      this.dialogImageUrl = "";
+      this.bannerCourse = "";
+      this.checkBannerCourse = "";
+    },
+    Search() {
+      this.checkList = [];
+      let params = { t: this.searchClassName, oid: this.updateOid };
+      this.ajax
+        .get(this.$store.state.api + "getSearchCourseByoid", params)
+        .then((res) => {
+          this.courseList = res.data[0];
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    deleteStype(id) {
+      let params = {
+        tid: id,
+      };
+      this.ajax
+        .get(this.$store.state.api + "deletePtype", params)
+        .then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.updateId = "";
+          this.sTypeName = "";
+          this.selectSType();
+        })
+        .catch((err) => {
+          this.$message.error("删除失败");
+          console.error(err);
+        });
+    },
+  },
+  created() {
+    this.page = 1;
+    this.selectSchool();
+  },
+};
+</script>
+
+<style scoped>
+.pb_head > span:nth-child(2) {
+  font-size: 16px;
+  margin-left: 80px;
+  color: #ab582f;
+}
+.addBox {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.tian1 {
+  /* font-size: 16px; */
+  margin-right: 10px;
+}
+.pb_head {
+  margin: 0 !important;
+  width: 100% !important;
+}
+.student_page {
+  margin: 10px 0 0 45px;
+}
+.disUoloadSty >>> .el-upload--picture-card {
+  display: none; /* 上传按钮隐藏 */
+}
+.dialogBox {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.dialogBox span {
+  margin: 0 20px;
+}
+.student_head {
+  margin-top: 10px;
+  padding-bottom: 15px;
+  display: flex;
+  justify-content: space-between;
+}
+.student_search,
+.student_search1 {
+  display: flex;
+  width: 100%;
+  position: relative;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: center;
+  justify-content: flex-end;
+}
+
+.student_search1 {
+  justify-content: space-between;
+}
+
+.student_table >>> .el-table--border td {
+  border-right: 0px !important;
+}
+
+.student_table >>> .el-table,
+.student_table >>> .el-table__body-wrapper {
+  height: auto !important;
+}
+
+.el-table >>> .even_row {
+  background-color: #f1f1f1 !important;
+}
+
+.dialog_diy >>> .el-dialog__header {
+  padding: 9px 20px 10px;
+  background: #32455b !important;
+}
+.dialog_diy >>> .el-dialog__title {
+  color: #fff;
+  font-size: 15px;
+}
+.dialog_diy >>> .el-dialog__headerbtn {
+  top: 14px;
+}
+.dialog_diy >>> .el-dialog__headerbtn .el-dialog__close {
+  color: #fff;
+}
+.dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
+  color: #fff;
+}
+.dialog_diy >>> .el-dialog__body,
+.dialog_diy >>> .el-dialog__footer {
+  background: #fafafa;
+}
+.r_diy >>> .el-dialog__footer {
+  padding: 0;
+}
+.a_addBox {
+  height: 570px;
+  overflow: auto;
+}
+
+.workdates {
+  height: 100%;
+  position: absolute;
+  top: 0;
+  background: #fff;
+  overflow: auto;
+  z-index: 1;
+  width: 95%;
+  left: 50%;
+  transform: translateX(-50%);
+  padding: 20px;
+  box-sizing: border-box;
+}
+.cancelbox {
+  position: absolute;
+  z-index: 2;
+  left: 50%;
+  width: 95%;
+  transform: translateX(-50%);
+  display: flex;
+  justify-content: flex-end;
+  padding: 0 90px 0px 0px;
+  box-sizing: border-box;
+}
+.cardList {
+  font-size: 14px;
+  height: 360px;
+  overflow: auto;
+}
+.cardList div {
+  margin-bottom: 18px;
+}
+.cardList div:last-child {
+  margin-bottom: 0;
+}
+.cardHead {
+  display: flex;
+}
+</style>

+ 38 - 30
src/components/pages/addCourse.vue

@@ -131,21 +131,12 @@
                         <div class="choose">
                         <div class="choose">
                           <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
                           <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
                             <span>{{ item.name }}</span>
                             <span>{{ item.name }}</span>
-                            <el-checkbox-group
-                              v-model="courseTypeId"
-                              v-if="CourseTypeJson[item.id].length > 0"
-                            >
-                              <el-checkbox
-                                v-for="item1 in CourseTypeJson[item.id]"
-                                :key="item1.id"
-                                :label="item1.id"
-                                >{{ item1.name }}</el-checkbox
-                              >
+                            <el-checkbox-group v-model="courseTypeId" v-if="CourseTypeJson[item.id].length > 0">
+                              <el-checkbox v-for="item1 in CourseTypeJson[item.id]" :key="item1.id" :label="item1.id">{{
+                                  item1.name
+                              }}</el-checkbox>
                             </el-checkbox-group>
                             </el-checkbox-group>
-                            <div
-                              v-else
-                              style="font-size: 14px; margin-left: -8px"
-                            >
+                            <div v-else style="font-size: 14px; margin-left: -8px">
                               暂无
                               暂无
                             </div>
                             </div>
                           </div>
                           </div>
@@ -1276,12 +1267,14 @@
                             <div class="elist_inptu_text" v-if="evalua">
                             <div class="elist_inptu_text" v-if="evalua">
                               <span>目标:</span>
                               <span>目标:</span>
                               <!-- <input type="input" v-model="itemTask.eList[eIndex].target" placeholder="填写评价描述" /> -->
                               <!-- <input type="input" v-model="itemTask.eList[eIndex].target" placeholder="填写评价描述" /> -->
-                              <el-select v-model="itemTask.eList[eIndex].target" placeholder="请选择目标"
+                              <!-- <el-select v-model="itemTask.eList[eIndex].target" placeholder="请选择目标"
                                 @change="forceUpdate()">
                                 @change="forceUpdate()">
                                 <el-option v-for="(e, eIndex) in targetArray" :key="eIndex" :label="e.name"
                                 <el-option v-for="(e, eIndex) in targetArray" :key="eIndex" :label="e.name"
                                   :value="e.name">
                                   :value="e.name">
                                 </el-option>
                                 </el-option>
-                              </el-select>
+                              </el-select> -->
+                              <el-cascader :options="targetArray" :props="{ checkStrictly: true }"
+                                :show-all-levels="false" clearable></el-cascader>
                             </div>
                             </div>
                           </div>
                           </div>
                         </div>
                         </div>
@@ -1898,7 +1891,7 @@
         <el-button type="primary" @click="choosePicVisible = false">确 定</el-button>
         <el-button type="primary" @click="choosePicVisible = false">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
-    <el-dialog title="选择系统文件" :visible.sync="sysPicVisible" :append-to-body="true" width="700px"
+    <el-dialog title="选择系统文件" :visible.sync="sysPicVisible" :append-to-body="true" width="710px"
       :before-close="handleClose" class="dialog_diy">
       :before-close="handleClose" class="dialog_diy">
       <div class="cru_selectBox" style="margin: 0">
       <div class="cru_selectBox" style="margin: 0">
         <div @click="getChoosePic(1)" class="cru_select" :class="chooseType == 1 ? 'cru_selected' : ''">
         <div @click="getChoosePic(1)" class="cru_select" :class="chooseType == 1 ? 'cru_selected' : ''">
@@ -4008,7 +4001,7 @@ export default {
             )
             )
           );
           );
         } else {
         } else {
-          var groupJson = { group: [{ name: '' }], number: undefined, islock: 1 };
+          var groupJson = { group: [{ name: '第1组' }], number: undefined, islock: 1 };
           this.groupJson = groupJson;
           this.groupJson = groupJson;
         }
         }
         this.dialogVisibleGroup = true;
         this.dialogVisibleGroup = true;
@@ -5011,10 +5004,15 @@ export default {
           parentid: "root",
           parentid: "root",
           topic: element.name,
           topic: element.name,
         });
         });
+        // targetArray.push({
+        //   id: element.id,
+        //   parentid: "root",
+        //   name: element.name,
+        // });
         targetArray.push({
         targetArray.push({
-          id: element.id,
-          parentid: "root",
-          name: element.name,
+          value: element.name,
+          label: element.name,
+          children: []
         });
         });
         let _eJsonc = Object.keys(element.child);
         let _eJsonc = Object.keys(element.child);
         let _e2 = element.child;
         let _e2 = element.child;
@@ -5025,10 +5023,15 @@ export default {
             parentid: element.id,
             parentid: element.id,
             topic: _ec.name,
             topic: _ec.name,
           });
           });
-          targetArray.push({
-            id: _ec.id,
-            parentid: element.id,
-            name: _ec.name,
+          // targetArray.push({
+          //   id: _ec.id,
+          //   parentid: element.id,
+          //   name: _ec.name,
+          // });
+          targetArray[i].children.push({
+            value: _ec.name,
+            label: _ec.name,
+            children: []
           });
           });
           let _eJsonz = Object.keys(_ec.child);
           let _eJsonz = Object.keys(_ec.child);
           let _e3 = _ec.child;
           let _e3 = _ec.child;
@@ -5039,10 +5042,14 @@ export default {
               parentid: _ec.id,
               parentid: _ec.id,
               topic: _ez.name,
               topic: _ez.name,
             });
             });
-            targetArray.push({
-              id: _ez.id,
-              parentid: _ec.id,
-              name: _ez.name,
+            // targetArray.push({
+            //   id: _ez.id,
+            //   parentid: _ec.id,
+            //   name: _ez.name,
+            // });
+            targetArray[i].children[j].children.push({
+              value: _ez.name,
+              label: _ez.name,
             });
             });
           }
           }
         }
         }
@@ -5186,7 +5193,8 @@ export default {
       this.isClickColor = i + 1;
       this.isClickColor = i + 1;
     },
     },
     addGroup(i) {
     addGroup(i) {
-      this.groupJson.group.splice(i + 1, 0, { name: "" });
+      // this.groupJson.group.splice(i + 1, 0, { name: "第"+(i+1)+"组" });
+      this.groupJson.group.push({ name: "第" + (this.groupJson.group.length + 1) + "组" });
     },
     },
     deleteGroup(i) {
     deleteGroup(i) {
       this.groupJson.group.splice(i, 1)
       this.groupJson.group.splice(i, 1)

+ 1 - 1
src/components/pages/addCourseGM.vue

@@ -1919,7 +1919,7 @@
         <el-button type="primary" @click="choosePicVisible = false">确 定</el-button>
         <el-button type="primary" @click="choosePicVisible = false">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
-    <el-dialog title="选择系统文件" :visible.sync="sysPicVisible" :append-to-body="true" width="700px"
+    <el-dialog title="选择系统文件" :visible.sync="sysPicVisible" :append-to-body="true" width="710px"
       :before-close="handleClose" class="dialog_diy">
       :before-close="handleClose" class="dialog_diy">
       <div class="cru_selectBox" style="margin: 0">
       <div class="cru_selectBox" style="margin: 0">
         <div @click="getChoosePic(1)" class="cru_select" :class="chooseType == 1 ? 'cru_selected' : ''">
         <div @click="getChoosePic(1)" class="cru_select" :class="chooseType == 1 ? 'cru_selected' : ''">

+ 4 - 0
src/components/pages/course.vue

@@ -104,6 +104,7 @@
                 <span style="font-size:18px;font-weight:700">...</span>
                 <span style="font-size:18px;font-weight:700">...</span>
                 <div>
                 <div>
                   <span @click="copyCourse(item.courseId)">复制</span>
                   <span @click="copyCourse(item.courseId)">复制</span>
+                  <span @click="get(item.courseId)">查看</span>
                 </div>
                 </div>
               </div>
               </div>
             </div>
             </div>
@@ -293,6 +294,9 @@ export default {
       // );
       // );
       window.parent.postMessage({ cid: cid, screenType: "2" }, "*");
       window.parent.postMessage({ cid: cid, screenType: "2" }, "*");
     },
     },
+    get(cid){
+      window.parent.postMessage({ cid: cid, screenType: "3" }, "*");
+    },
     handle_remove(file, fileList) {
     handle_remove(file, fileList) {
       var _tmp = this.fileList;
       var _tmp = this.fileList;
       for (var i = 0, len = _tmp.length; i < len; i++) {
       for (var i = 0, len = _tmp.length; i < len; i++) {

+ 244 - 138
src/components/pages/student.vue

@@ -1,14 +1,11 @@
 <template>
 <template>
   <div class="pb_content" style="background: unset">
   <div class="pb_content" style="background: unset">
-    <div
-      class="pb_content_body"
-      style="
+    <div class="pb_content_body" style="
         background: #fff;
         background: #fff;
         padding: 0px 25px;
         padding: 0px 25px;
         box-sizing: border-box;
         box-sizing: border-box;
         border-radius: 5px;
         border-radius: 5px;
-      "
-    >
+      ">
       <div class="pb_head">
       <div class="pb_head">
         <span>我的学生列表</span>
         <span>我的学生列表</span>
       </div>
       </div>
@@ -17,25 +14,14 @@
           <el-input v-model="sPhoneUser" class="student_input" placeholder="请输入用户名"></el-input>
           <el-input v-model="sPhoneUser" class="student_input" placeholder="请输入用户名"></el-input>
           <el-select v-model="cid" placeholder="请选择班级" class="student_input" @change="searchStudent">
           <el-select v-model="cid" placeholder="请选择班级" class="student_input" @change="searchStudent">
             <el-option label="所有人" value=""></el-option>
             <el-option label="所有人" value=""></el-option>
-            <el-option
-              v-for="(item, index) in classJuri"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+            <el-option v-for="(item, index) in classJuri" :key="index" :label="item.name" :value="item.id"></el-option>
           </el-select>
           </el-select>
           <el-button class="student_button" @click="searchStudent">查询</el-button>
           <el-button class="student_button" @click="searchStudent">查询</el-button>
         </div>
         </div>
         <div class="head_right">
         <div class="head_right">
           <el-button @click="addStudent">添加学生</el-button>
           <el-button @click="addStudent">添加学生</el-button>
-          <el-upload
-            class="upload-demo newCss"
-            :http-request="handleChange"
-            :on-remove="handleRemove"
-            action="#"
-            :file-list="fileListUpload"
-            accept=".xlsx"
-          >
+          <el-upload class="upload-demo newCss" :http-request="handleChange" :on-remove="handleRemove" action="#"
+            :file-list="fileListUpload" accept=".xlsx">
             <el-button size="primary" type="primary">批量添加</el-button>
             <el-button size="primary" type="primary">批量添加</el-button>
             <div slot="tip" class="el-upload__tip" style="margin-left:10px;">只能上传xlsx文件,且不超过500kb</div>
             <div slot="tip" class="el-upload__tip" style="margin-left:10px;">只能上传xlsx文件,且不超过500kb</div>
           </el-upload>
           </el-upload>
@@ -46,45 +32,32 @@
     </div>
     </div>
     <div class="pb_content_body">
     <div class="pb_content_body">
       <div class="student_table">
       <div class="student_table">
-        <el-table
-          ref="table"
-          :data="tableData"
-          border
-          :height="tableHeight"
-          :fit="true"
-          v-loading="isLoading"
-          style="width: 100%"
-          :header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }"
-          :row-class-name="tableRowClassName"
-        >
+        <el-table ref="table" :data="tableData" border :height="tableHeight" :fit="true" v-loading="isLoading"
+          style="width: 100%" :header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }"
+          :row-class-name="tableRowClassName">
           <el-table-column label="姓名" min-width="10" align="center">
           <el-table-column label="姓名" min-width="10" align="center">
             <template slot-scope="scope">
             <template slot-scope="scope">
               <div class="userImg">
               <div class="userImg">
                 <div class="tx">
                 <div class="tx">
-                  <img
-                    :src="
-                      scope.row.headportrait != null
-                        ? scope.row.headportrait
-                        : tx
-                    "
-                    alt
-                  />
+                  <img :src="
+                    scope.row.headportrait != null
+                      ? scope.row.headportrait
+                      : tx
+                  " alt />
                 </div>
                 </div>
-                <div
-                  style="
+                <div style="
                     width: 150px;
                     width: 150px;
                     text-align: left;
                     text-align: left;
                     white-space: nowrap;
                     white-space: nowrap;
                     overflow: hidden;
                     overflow: hidden;
                     text-overflow: ellipsis;
                     text-overflow: ellipsis;
-                  "
-                >{{ scope.row.name }}</div>
+                  ">{{ scope.row.name }}</div>
               </div>
               </div>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-            <el-table-column label="账号" min-width="15" align="center">
+          <el-table-column label="账号" min-width="15" align="center">
             <template slot-scope="scope">
             <template slot-scope="scope">
-              <div>{{scope.row.un ? scope.row.un : "" }}</div>
+              <div>{{ scope.row.un ? scope.row.un : "" }}</div>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <!-- <el-table-column label="电话" min-width="15" align="center">
           <!-- <el-table-column label="电话" min-width="15" align="center">
@@ -100,47 +73,28 @@
             align="center"
             align="center"
           >
           >
           </el-table-column>-->
           </el-table-column>-->
-          <el-table-column
-            prop="classname2"
-            label="班级"
-            min-width="15"
-            align="center"
-          >
+          <el-table-column prop="classname2" label="班级" min-width="15" align="center">
           </el-table-column>
           </el-table-column>
-          <el-table-column label="操作" width="200px">
+          <el-table-column label="操作" width="250px">
             <template slot-scope="scope">
             <template slot-scope="scope">
-              <!-- <el-button
-                class="de_button"
-                type="primary"
-                size="small"
-                @click="deleteStudent(scope.row.userid, scope.row.state)"
-                >删除</el-button
-              >-->
-              <div class="delete" @click="deleteStudent(scope.row.userid, scope.row.state)">
-                <img src="../../assets/remove.png" alt />
+              <div class="btnBox">
+                <el-button class="de_button" type="primary" size="small"
+                  @click="updateStudentA(scope.row)">修改</el-button>
+                <div class="delete">
+                  <img src="../../assets/remove.png" alt @click="deleteStudent(scope.row.userid, scope.row.state)" />
+                </div>
               </div>
               </div>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
       </div>
       </div>
       <div class="student_page">
       <div class="student_page">
-        <el-pagination
-          background
-          layout="prev, pager, next"
-          :page-size="10"
-          :total="total"
-          v-if="page"
-          @current-change="handleCurrentChange"
-        ></el-pagination>
+        <el-pagination background layout="prev, pager, next" :page-size="10" :total="total" v-if="page"
+          @current-change="handleCurrentChange"></el-pagination>
       </div>
       </div>
     </div>
     </div>
-    <el-dialog
-      :visible.sync="dialogVisible"
-      :append-to-body="true"
-      width="700px"
-      :before-close="handleClose"
-      class="add_student"
-    >
+    <el-dialog :visible.sync="dialogVisible" :append-to-body="true" width="700px" :before-close="handleClose"
+      class="add_student">
       <div slot="title" class="header-title">
       <div slot="title" class="header-title">
         <div class="logoImg">
         <div class="logoImg">
           <img src="../../assets/logo.png" alt />
           <img src="../../assets/logo.png" alt />
@@ -173,12 +127,7 @@
         </el-form-item>
         </el-form-item>
         <el-form-item label="班级" :label-width="formLabelWidth">
         <el-form-item label="班级" :label-width="formLabelWidth">
           <el-select v-model="sByClass" placeholder="请选择班级">
           <el-select v-model="sByClass" placeholder="请选择班级">
-            <el-option
-              v-for="(item, index) in classJuri"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+            <el-option v-for="(item, index) in classJuri" :key="index" :label="item.name" :value="item.id"></el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <div style="text-align: center; color: #adb3b7">注:添加学生的账号密码为123456</div>
         <div style="text-align: center; color: #adb3b7">注:添加学生的账号密码为123456</div>
@@ -187,6 +136,49 @@
         <el-button class="right" @click="insertStudent">确认</el-button>
         <el-button class="right" @click="insertStudent">确认</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
+    <el-dialog :visible.sync="dialogVisibleUpdate" :append-to-body="true" width="700px" :before-close="handleClose"
+      class="add_student">
+      <div slot="title" class="header-title">
+        <div class="logoImg">
+          <img src="../../assets/logo.png" alt />
+        </div>
+        <div class="title_add_student">修改学生</div>
+      </div>
+      <el-form>
+        <el-form-item label="学生名称" :label-width="formLabelWidth">
+          <span>
+            <el-input placeholder="请输入学生昵称" clearable v-model="userinfo.name" class="add_input"></el-input>
+          </span>
+        </el-form-item>
+        <el-form-item label="学生学号" :label-width="formLabelWidth">
+          <span>
+            <el-input placeholder="请输入学生学号" clearable v-model="userinfo.studentid" class="add_input"></el-input>
+          </span>
+        </el-form-item>
+        <el-form-item label="学生手机号" :label-width="formLabelWidth">
+          <span>
+            <el-input placeholder="请输入学生手机号" clearable v-model="userinfo.phonenumber" class="add_input"></el-input>
+          </span>
+        </el-form-item>
+        <el-form-item label="学生邮箱" :label-width="formLabelWidth">
+          <span>
+            <el-input placeholder="请输入学生邮箱" clearable v-model="userinfo.un" class="add_input"></el-input>
+          </span>
+        </el-form-item>
+        <el-form-item label="所属学校" :label-width="formLabelWidth">
+          <el-input disabled style="width: 300px" v-model="schoolName"></el-input>
+        </el-form-item>
+        <el-form-item label="班级" :label-width="formLabelWidth">
+          <el-select v-model="userinfo.classid" placeholder="请选择班级">
+            <el-option v-for="(item, index) in classJuri" :key="index" :label="item.name" :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <div style="text-align: center; color: #adb3b7">注:添加学生的账号密码为123456</div>
+      </el-form>
+      <span slot="footer" class="dialog-footer flex">
+        <el-button class="right" @click="updateStudent">修改</el-button>
+      </span>
+    </el-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -201,6 +193,9 @@ export default {
       formLabelWidth: "100px",
       formLabelWidth: "100px",
       tableData: [],
       tableData: [],
       dialogVisible: false,
       dialogVisible: false,
+      dialogVisibleUpdate: false,
+      userinfo: {},
+      userinfoA: {},
       sName: "",
       sName: "",
       sPhone: "",
       sPhone: "",
       sId: "",
       sId: "",
@@ -292,10 +287,10 @@ export default {
       if (this.sName === "") {
       if (this.sName === "") {
         this.$message.error("学生昵称不能为空");
         this.$message.error("学生昵称不能为空");
         return;
         return;
-      }  else if (this.sByClass === "") {
+      } else if (this.sByClass === "") {
         this.$message.error("请为学生选择班级");
         this.$message.error("请为学生选择班级");
         return;
         return;
-      } else if (this.sId != "" && !/^[1][3,4,5,7,8][0-9]{9}$/.test(this.sPhone)) {
+      } else if (this.sPhone != "" && !/^[1][3,4,5,7,8][0-9]{9}$/.test(this.sPhone)) {
         this.$message.error("手机号格式不正确");
         this.$message.error("手机号格式不正确");
         return;
         return;
       } else if (
       } else if (
@@ -320,36 +315,36 @@ export default {
         //     if (res.data[0].length > 0) {
         //     if (res.data[0].length > 0) {
         //       this.$message.error("此学生手机号码已被注册");
         //       this.$message.error("此学生手机号码已被注册");
         //     } else {
         //     } else {
-              let params = { un: this.sMail };
-              this.ajax
-                .get(this.$store.state.api + "findMail", params)
-                .then((res) => {
-                  if (res.data[0].length > 0) {
-                    this.$message.error("此学生邮箱已被注册");
-                  } else {
-                    // let params = { un: this.sId };
-                    // this.ajax
-                    //   .get(this.$store.state.api + "findSid", params)
-                    //   .then((res) => {
-                        // if (res.data[0].length > 0) {
-                        //   this.$message.error("此学生学号已被注册");
-                        // } else {
-                          this.add_Student();
-                        // }
-                      // })
-                      // .catch((err) => {
-                      //   console.error(err);
-                      // });
-                  }
-                })
-                .catch((err) => {
-                  console.error(err);
-                });
-            // }
-          // })
-          // .catch((err) => {
-          //   console.error(err);
-          // });
+        let params = { un: this.sMail };
+        this.ajax
+          .get(this.$store.state.api + "findMail", params)
+          .then((res) => {
+            if (res.data[0].length > 0) {
+              this.$message.error("此学生邮箱已被注册");
+            } else {
+              // let params = { un: this.sId };
+              // this.ajax
+              //   .get(this.$store.state.api + "findSid", params)
+              //   .then((res) => {
+              // if (res.data[0].length > 0) {
+              //   this.$message.error("此学生学号已被注册");
+              // } else {
+              this.add_Student();
+              // }
+              // })
+              // .catch((err) => {
+              //   console.error(err);
+              // });
+            }
+          })
+          .catch((err) => {
+            console.error(err);
+          });
+        // }
+        // })
+        // .catch((err) => {
+        //   console.error(err);
+        // });
       }
       }
     },
     },
     add_Student() {
     add_Student() {
@@ -472,7 +467,7 @@ export default {
       if (this.fileTemp) {
       if (this.fileTemp) {
         if (
         if (
           this.fileTemp.type ==
           this.fileTemp.type ==
-            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
+          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
           this.fileTemp.type == "application/vnd.ms-excel"
           this.fileTemp.type == "application/vnd.ms-excel"
         ) {
         ) {
           this.importCount = 1;
           this.importCount = 1;
@@ -946,7 +941,81 @@ export default {
               console.error(err);
               console.error(err);
             });
             });
         })
         })
-        .catch(() => {});
+        .catch(() => { });
+    },
+    updateStudentA(res) {
+      this.userinfo = JSON.parse(JSON.stringify(res));
+      this.userinfoA = JSON.parse(JSON.stringify(res));
+      this.dialogVisibleUpdate = true;
+    },
+    updateStudent() {
+      if (this.userinfo.name === "") {
+        this.$message.error("学生昵称不能为空");
+        return;
+      } else if (!this.userinfo.classid) {
+        this.$message.error("请为学生选择班级");
+        return;
+      } else if (this.userinfo.phonenumber != "" && !/^[1][3,4,5,7,8][0-9]{9}$/.test(this.userinfo.phonenumber)) {
+        this.$message.error("手机号格式不正确");
+        return;
+      } else if (
+        !/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/.test(this.userinfo.un)
+      ) {
+        this.$message.error("邮箱格式不正确");
+        return;
+      }
+
+
+      if (this.time()) {
+        if (this.userinfoA.un != this.userinfo.un) {
+          let params = { un: this.userinfo.un };
+          this.ajax
+            .get(this.$store.state.api + "findMail", params)
+            .then((res) => {
+              if (res.data[0].length > 0) {
+                this.$message.error("此学生邮箱已被注册");
+              } else {
+                this.update_Student();
+              }
+            })
+            .catch((err) => {
+              console.error(err);
+            });
+        }else{
+          this.update_Student();
+        }
+
+      }
+    },
+    update_Student() {
+      let params = [
+        {
+          userid: this.userinfo.userid,
+          username: this.userinfo.un,
+          alias: this.userinfo.name,
+          ph: this.userinfo.phonenumber,
+          sid: this.userinfo.studentid,
+          cid: this.userinfo.classid,
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "updateStudentInfo", params)
+        .then((res) => {
+          this.$message({
+            message: "修改成功",
+            type: "success",
+          });
+          this.dialogVisibleUpdate = false;
+          this.getStudent();
+        })
+        .catch((err) => {
+          this.isLoading = false;
+          this.$message({
+            message: "修改失败",
+            type: "error",
+          });
+          console.error(err);
+        });
     },
     },
   },
   },
   created() {
   created() {
@@ -959,40 +1028,47 @@ export default {
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
-.pb_head > span:nth-child(2) {
+.pb_head>span:nth-child(2) {
   font-size: 20px;
   font-size: 20px;
   margin-left: 5px;
   margin-left: 5px;
   color: #828282;
   color: #828282;
 }
 }
+
 .pb_head {
 .pb_head {
   margin: 0 !important;
   margin: 0 !important;
   width: 100% !important;
   width: 100% !important;
 }
 }
+
 .student_page {
 .student_page {
   margin-top: 10px;
   margin-top: 10px;
 }
 }
+
 .student_head {
 .student_head {
   margin-top: 10px;
   margin-top: 10px;
   padding-bottom: 10px;
   padding-bottom: 10px;
   display: flex;
   display: flex;
   justify-content: space-between;
   justify-content: space-between;
 }
 }
+
 .head_left {
 .head_left {
   display: flex;
   display: flex;
   align-items: center;
   align-items: center;
 }
 }
+
 .head_right {
 .head_right {
   display: flex;
   display: flex;
   flex-direction: row;
   flex-direction: row;
   flex-wrap: nowrap;
   flex-wrap: nowrap;
   align-items: baseline;
   align-items: baseline;
 }
 }
-.student_input >>> .el-input__inner {
+
+.student_input>>>.el-input__inner {
   height: 30px;
   height: 30px;
   width: 190px;
   width: 190px;
   font-size: 13px;
   font-size: 13px;
   padding: 0 10px;
   padding: 0 10px;
 }
 }
+
 .student_button {
 .student_button {
   color: #fff;
   color: #fff;
   background: #2268bc;
   background: #2268bc;
@@ -1002,7 +1078,8 @@ export default {
   font-size: 12px;
   font-size: 12px;
   line-height: 30px;
   line-height: 30px;
 }
 }
-.head_right > button:nth-child(1) {
+
+.head_right>button:nth-child(1) {
   color: #fff;
   color: #fff;
   background: #2268bc;
   background: #2268bc;
   width: 70px;
   width: 70px;
@@ -1011,7 +1088,8 @@ export default {
   font-size: 12px;
   font-size: 12px;
   line-height: 30px;
   line-height: 30px;
 }
 }
-.head_right > button:nth-child(2) {
+
+.head_right>button:nth-child(2) {
   color: #fff;
   color: #fff;
   background: #2268bc;
   background: #2268bc;
   width: 70px;
   width: 70px;
@@ -1020,7 +1098,8 @@ export default {
   font-size: 12px;
   font-size: 12px;
   line-height: 30px;
   line-height: 30px;
 }
 }
-.head_right > div {
+
+.head_right>div {
   font-size: 12px;
   font-size: 12px;
   line-height: 40px;
   line-height: 40px;
   margin-left: 10px;
   margin-left: 10px;
@@ -1028,15 +1107,20 @@ export default {
   text-decoration: underline;
   text-decoration: underline;
   cursor: pointer;
   cursor: pointer;
 }
 }
-.student_table >>> .el-table--border td {
+
+.student_table>>>.el-table--border td {
   border-right: 0px !important;
   border-right: 0px !important;
 }
 }
-.student_table >>> .el-table,.student_table >>> .el-table__body-wrapper{
+
+.student_table>>>.el-table,
+.student_table>>>.el-table__body-wrapper {
   height: auto !important;
   height: auto !important;
 }
 }
-.el-table >>> .even_row {
+
+.el-table>>>.even_row {
   background-color: #f1f1f1 !important;
   background-color: #f1f1f1 !important;
 }
 }
+
 .de_button {
 .de_button {
   color: #fff;
   color: #fff;
   background: #5190fd;
   background: #5190fd;
@@ -1046,57 +1130,72 @@ export default {
   font-size: 12px;
   font-size: 12px;
   line-height: 25px;
   line-height: 25px;
 }
 }
-.add_student >>> .el-dialog__header {
+
+.add_student>>>.el-dialog__header {
   padding: 20px 20px 10px;
   padding: 20px 20px 10px;
   text-align: center;
   text-align: center;
   background: #32455b;
   background: #32455b;
 }
 }
-.add_student >>> .el-dialog__title {
+
+.add_student>>>.el-dialog__title {
   font-size: 14px !important;
   font-size: 14px !important;
   color: #fff !important;
   color: #fff !important;
 }
 }
-.add_student >>> .el-dialog__headerbtn {
+
+.add_student>>>.el-dialog__headerbtn {
   font-size: 20px !important;
   font-size: 20px !important;
 }
 }
-.add_student >>> .el-form-item__label {
+
+.add_student>>>.el-form-item__label {
   margin-left: 65px;
   margin-left: 65px;
 }
 }
-.add_student >>> .el-form-item {
+
+.add_student>>>.el-form-item {
   display: flex;
   display: flex;
 }
 }
-.add_student >>> .el-form-item__content {
+
+.add_student>>>.el-form-item__content {
   margin: 0 !important;
   margin: 0 !important;
 }
 }
+
 .add_input {
 .add_input {
   width: 365px;
   width: 365px;
 }
 }
-.add_student >>> .el-dialog__footer {
+
+.add_student>>>.el-dialog__footer {
   text-align: center !important;
   text-align: center !important;
 }
 }
+
 .right {
 .right {
   width: 250px;
   width: 250px;
   color: #fff;
   color: #fff;
   background: #0e72e6;
   background: #0e72e6;
   margin-bottom: 20px;
   margin-bottom: 20px;
 }
 }
+
 .header-title {
 .header-title {
   display: flex;
   display: flex;
 }
 }
+
 .logoImg {
 .logoImg {
   width: 30px;
   width: 30px;
 }
 }
-.logoImg > img {
+
+.logoImg>img {
   width: 100%;
   width: 100%;
   height: 100%;
   height: 100%;
 }
 }
+
 .title_add_student {
 .title_add_student {
   margin: 0 auto;
   margin: 0 auto;
   color: #fff;
   color: #fff;
 }
 }
+
 .upload-demo {
 .upload-demo {
   line-height: 0px !important;
   line-height: 0px !important;
 }
 }
-.upload-demo >>> .el-button {
+
+.upload-demo>>>.el-button {
   color: #fff;
   color: #fff;
   background: #2268bc;
   background: #2268bc;
   width: 70px;
   width: 70px;
@@ -1120,11 +1219,13 @@ export default {
 
 
 .delete {
 .delete {
   width: 25px;
   width: 25px;
+  height: 25px;
   cursor: pointer;
   cursor: pointer;
+  margin-left: 10px;
 }
 }
 
 
-.tx > img,
-.delete > img {
+.tx>img,
+.delete>img {
   width: 100%;
   width: 100%;
   height: 100%;
   height: 100%;
 }
 }
@@ -1136,15 +1237,20 @@ export default {
   align-items: baseline;
   align-items: baseline;
 }
 }
 
 
-.student_input.el-input{
-  width: auto; 
+.student_input.el-input {
+  width: auto;
 }
 }
 
 
-.student_input{
+.student_input {
   margin-right: 10px;
   margin-right: 10px;
 }
 }
 
 
-.student_input >>> .el-input__icon{
+.student_input>>>.el-input__icon {
   line-height: unset;
   line-height: unset;
 }
 }
+
+.btnBox {
+  display: flex;
+  align-items: center;
+}
 </style>
 </style>

+ 1 - 1
src/components/pages/studentGM.vue

@@ -297,7 +297,7 @@ export default {
       }  else if (this.sByClass === "") {
       }  else if (this.sByClass === "") {
         this.$message.error("请为学生选择班级");
         this.$message.error("请为学生选择班级");
         return;
         return;
-      } else if (this.sId != "" && !/^[1][3,4,5,7,8][0-9]{9}$/.test(this.sPhone)) {
+      } else if (this.sPhone != "" && !/^[1][3,4,5,7,8][0-9]{9}$/.test(this.sPhone)) {
         this.$message.error("手机号格式不正确");
         this.$message.error("手机号格式不正确");
         return;
         return;
       } else if (
       } else if (

+ 8 - 0
src/router/index.js

@@ -38,6 +38,7 @@ import audioDemo from '@/components/pages/audioDemo'
 import Ttype from '@/components/pages/Ttype'
 import Ttype from '@/components/pages/Ttype'
 import TtypeGM from '@/components/pages/TtypeGM'
 import TtypeGM from '@/components/pages/TtypeGM'
 import Ttype2 from '@/components/pages/Ttype2'
 import Ttype2 from '@/components/pages/Ttype2'
+import TtypeOrg from '@/components/pages/TtypeOrg'
 import banner from '@/components/pages/banner'
 import banner from '@/components/pages/banner'
 import CaseDesign from '@/components/pages/CaseDesign'
 import CaseDesign from '@/components/pages/CaseDesign'
 import CaseDesignGM from '@/components/pages/CaseDesignGM'
 import CaseDesignGM from '@/components/pages/CaseDesignGM'
@@ -334,6 +335,13 @@ export default new Router({
             meta: {
             meta: {
                 requireAuth: '' // 不需要鉴权
                 requireAuth: '' // 不需要鉴权
             }
             }
+        }, {
+            path: '/TtypeOrg',
+            name: 'TtypeOrg',
+            component: TtypeOrg,
+            meta: {
+                requireAuth: '' // 不需要鉴权
+            }
         }, {
         }, {
             path: '/banner',
             path: '/banner',
             name: 'banner',
             name: 'banner',