2 次代碼提交 48438471c7 ... 44085c0d35

作者 SHA1 備註 提交日期
  Your Name 44085c0d35 班级删除学员完成 3 月之前
  Your Name ff42df96c2 班级完成 3 月之前

+ 8 - 0
src/api.js

@@ -140,6 +140,11 @@ export default {
 			params: params
 		})
 	},
+	deleteClassUser: params => {
+		return axios.delete(`${baseURL}/api/admin/class/delUser`, {
+			params: params
+		})
+	},
 	//用户管理
 	getUserList: params => {
 		return axios.get(`${baseURL}/api/admin/user/list`, {
@@ -170,6 +175,9 @@ export default {
 	uploadPaper: params => {
 		return axios.post(`${baseURL}/api/admin/paper/upload`, params);
 	},
+	updatePaper: params => {
+		return axios.put(`${baseURL}/api/admin/paper`, params);
+	},
 	getPerList: params => {
 		return axios.get(`${baseURL}/api/admin/permission/list`, {
 			params: params

+ 4 - 3
src/components/ClassUser.vue

@@ -36,7 +36,7 @@
                     " size="mini" type="warning">编辑</el-button>
                             <el-button @click="mark(scope.row.id, scope.row.admin_remark)" size="mini" type="primary">备注
                             </el-button>
-                            <el-button @click="del(scope.row.id)" size="mini" type="danger" disabled>删除</el-button>
+                            <el-button @click="del(scope.row.id)" size="mini" type="danger">删除</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
@@ -99,10 +99,10 @@
                 this.form.subject_item = data.join("|");
             },
             del(id) {
-                this.$confirm("确定删除吗", "提示", {
+                this.$confirm("确定从班级删除该学员?", "提示", {
                     type: "warning",
                 }).then(() => {
-                    this.$api.deleteClass({
+                    this.$api.deleteClassUser({
                         id: id
                     }).then((res) => {
                         this.$message({
@@ -110,6 +110,7 @@
                             type: "success",
                         });
                         this.getData();
+                        this.dialogVisible = false;
                     });
                 });
             },

+ 8 - 6
src/components/Subject.vue

@@ -72,12 +72,14 @@ export default {
                     item3=item2[0].children.filter(item=>item.name==value[2])
                     id=item3[0].id;
             }
-            setTimeout(function(){
-                let values=document.querySelector('.el-input__inner').value;
-                let items=values.split(' / ');
-                console.log(values)
-                that.$emit('subChange',items,id,value)
-            },100)
+            that.$emit('subChange',value,id,value)
+            console.log(value,2222222222)
+            // setTimeout(function(){
+            //     let values=document.querySelector('.el-input__inner').value;
+            //     let items=values.split(' / ');
+            //     console.log(values)
+            //     that.$emit('subChange',items,id,value)
+            // },100)
             
             
         }

+ 33 - 5
src/views/classes/Add.vue

@@ -12,7 +12,7 @@
     <section class="addclass">
         <p>培训计划  >  班级管理  >  新增班级</p>
         <div class="content">
-            <el-form label-width="80px">
+            <el-form label-width="100px" :inline="true">
                 <!-- <el-form-item label="培训项目" v-if="id!=''">
                     <Subject v-if='form.signup_limit' :subvalue='form.subject_item' @subChange='subChange'/>
                 </el-form-item>
@@ -24,8 +24,15 @@
                     <el-cascader-multi :data="data" @change="change" :value="value2" v-model="value2"> </el-cascader-multi>
                 </el-form-item>
                 <el-form-item label="培训计划编号">
-                        <el-input placeholder="培训计划编号" v-model="form.class_no"></el-input>
+                    <el-input placeholder="培训计划编号" v-model="form.class_no"></el-input>
                 </el-form-item>
+                <el-form-item label="培训类型">
+              <el-select v-model="form.train_type" clearable>
+                <el-option label="新训" value="新训"></el-option>
+                <el-option label="复审" value="复审"></el-option>
+                <el-option label="换证" value="换证"></el-option>
+              </el-select>
+            </el-form-item>
                 <el-form-item label="班级名称">
                         <el-input placeholder="班级名称" v-model="form.name"></el-input>
                 </el-form-item>
@@ -39,14 +46,35 @@
                             <el-option label="已结束" :value="3"></el-option>
                         </el-select>
                 </el-form-item>
+                <el-form-item label="理论培训时间">
+                    <el-date-picker
+                        v-model="form.lilun_time"
+                        type="daterange"
+                        range-separator="至"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期">
+                    </el-date-picker>
+                </el-form-item>
+                <el-form-item label="实操培训时间">
+                    <el-date-picker
+                        v-model="form.shicao_time"
+                        type="daterange"
+                        range-separator="至"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期">
+                    </el-date-picker>
+                </el-form-item>
+                <el-form-item label="班主任">
+                    <el-input placeholder="班主任" v-model="form.teacher"></el-input>
+                </el-form-item>
                 <el-form-item label="备注">
-                        <el-input placeholder="备注" v-model="form.remark"></el-input>
+                    <el-input placeholder="备注" v-model="form.remark"></el-input>
                 </el-form-item>
                 <el-form-item label="提醒">
-                        <el-input placeholder="提醒" v-model="form.remind"></el-input>
+                    <el-input placeholder="提醒" v-model="form.remind"></el-input>
                 </el-form-item>
                 <el-form-item label=" ">
-                        <el-button @click="save" type="primary">保存</el-button>
+                    <el-button @click="save" type="primary">保存</el-button>
                 </el-form-item>
             </el-form>
         </div>

+ 26 - 11
src/views/classes/Index.vue

@@ -39,11 +39,15 @@
 <template>
   <section class="apply">
     <p>培训计划 > 班级管理</p>
-    <div style="display:flex;flex-direction:row;">
-      <div style="width:40%;margin-top:10px;margin-right:10px;background:#fff;">
+    <div style="display:flex;flex-direction:row;position:relative;">
+      <i v-if="showTree" @click="showTree=!showTree" class="el-icon-s-fold" 
+        style="position:absolute;left:375px;font-size:22px;top:50%;z-index:10000;"></i>
+      <i v-else @click="showTree=!showTree" class="el-icon-s-unfold" 
+        style="position:absolute;left:10px;font-size:22px;top:50%;z-index:10000;"></i>
+      <div v-if="showTree" style="width:400px;background:#fff;padding:10px;margin-top:10px;">
         <SubjectTree @subChange = "subChange" />
       </div>
-      <div style="width:60%;">
+      <div style="width:100%;margin-left:10px;">
         <div class="filter">
           <el-form label-width="80px" :inline="true" size="small">
             <el-form-item label="班级名称">
@@ -52,6 +56,13 @@
             <el-form-item label="班级编号">
               <el-input clearable placeholder="班级编号" v-model="form.class_no"></el-input>
             </el-form-item>
+            <el-form-item label="培训类型">
+              <el-select v-model="form.train_type" clearable>
+                <el-option label="新训" value="新训"></el-option>
+                <el-option label="复审" value="复审"></el-option>
+                <el-option label="换证" value="换证"></el-option>
+              </el-select>
+            </el-form-item>
             <!-- <el-form-item label="类别">
               <Subject @subChange="subChange" />
             </el-form-item> -->
@@ -69,11 +80,11 @@
                 <el-table-column prop="class_no" width="100" label="培训计划编号"></el-table-column>
           <el-table-column prop="name" width="200" label="班级名称">
           </el-table-column>
-          <!-- <el-table-column
-                prop="subject_item" width="300"
-                label="培训项目">
-                </el-table-column> -->
-          <el-table-column prop="name" width="200" label="班级状态">
+          <el-table-column
+                prop="train_type" width="80"
+                label="培训类型">
+                </el-table-column>
+          <el-table-column prop="name" width="80" label="班级状态">
               <template slot-scope="scope">
                   <span v-if="scope.row.class_status==1">未开班</span>
                   <span v-if="scope.row.class_status==2">培训中</span>
@@ -82,7 +93,7 @@
           </el-table-column>
           <el-table-column prop="signup_limit" width="80" label="计划人数">
           </el-table-column>
-          <el-table-column prop="signuped_count" width="100" label="已报名人数">
+          <el-table-column prop="signuped_count" width="70" label="已报名人数">
             <template slot-scope="scope">
               <el-link type="primary" @click="showSignupUser(scope.row)">{{
             scope.row.signuped_count
@@ -93,9 +104,10 @@
           <el-table-column prop="remind" label="提醒"> </el-table-column>
           <el-table-column prop="ctime" width="200" label="创建时间">
           </el-table-column>
-          <el-table-column fixed="right" prop="zip" width="200" label="操作">
+          <el-table-column fixed="right" prop="zip" width="280" label="操作">
             <template slot-scope="scope">
-              <el-button @click="download(scope.row.id)" size="mini" type="success">导出档案</el-button>
+              <el-button @click="download(scope.row.id)" size="mini" type="success">导出资料</el-button>
+              <el-button @click="download(scope.row.id)" size="mini" type="primary">导出档案</el-button>
               <el-button @click="
               $router.push({
                 path: '/classes/add',
@@ -138,6 +150,7 @@
         loading: false,
         dialogVisible: false,
         signupList: [],
+        showTree:true
       };
     },
     methods: {
@@ -206,6 +219,7 @@
         });
       },
       download(id) {
+        this.loading = true;
         this.$api.downloadClassUser({
           id: id
         }).then((res) => {
@@ -221,6 +235,7 @@
           document.body.appendChild(elink);
           elink.click();
           document.body.removeChild(elink);
+          this.loading = false;
         });
       },
       showSignupUser(row) {

+ 111 - 43
src/views/paper/Index.vue

@@ -1,26 +1,5 @@
-<style lang="scss">
-    .apply{
-       .filter{
-            background: #fff;
-            padding: 20px 20px 10px; 
-            border:1px solid #EDEDED;
-            border-radius:2px;
-            margin-bottom: 10px;
-            margin-top: 10px;
-            .el-form-item{
-                margin-bottom: 10px;
-            }
-            .el-input,.el-select{
-                width: 150px;
-            }
-    
-       }
-       thead{
-           th{
-               background: #eee;
-           }
-       }
-    }
+<style lang="scss" scoped>
+
 </style>
 <template>
     <section class="apply">
@@ -36,13 +15,10 @@
              
                 <el-form-item>
                        <el-button @click="getData" type="primary" icon="el-icon-search">搜索</el-button>
-                       <el-button type="primary">新增</el-button>
                        <el-button @click="dialogVisible=true" type="primary">导入</el-button>
                 </el-form-item>
             </el-form>
         </div>
-
-
         <el-table
                 class="table"
                 :data="list" height="450px"
@@ -65,36 +41,100 @@
                 label="满分">
                 </el-table-column>
                 <el-table-column
+                prop="credit" width="60"
+                label="学时">
+                </el-table-column>
+                <el-table-column
+                prop="paper_type"
+                label="试卷类型">
+                    <template slot-scope="scope">
+                        <el-tag type="success" v-if="scope.row.paper_type=='train'">练习</el-tag>
+                        <el-tag type="warning" v-if="scope.row.paper_type=='exam'">考试</el-tag>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                prop="status"
+                label="状态">
+                    <template slot-scope="scope">
+                        <el-tag type="success" v-if="scope.row.status==2">已发布</el-tag>
+                        <el-tag type="warning" v-if="scope.row.status==1">编辑中</el-tag>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                prop="order"
+                label="排序">
+                </el-table-column> 
+                <el-table-column
                 prop="ctime"
                 label="创建时间">
                 </el-table-column>
                 <el-table-column
                 prop="zip" width="250"
                 label="操作">
-                <template slot-scope="scope">
-                    <el-button @click="$router.push({path:'/papers/detail',query:{id:scope.row.id}})"  size="mini" type="success">查看</el-button>
-                    <el-button size="mini" type="warning">编辑</el-button>
-                    <el-button @click="del(scope.row.id)" size="mini"  type="danger">删除</el-button>
-                </template>
+                    <template slot-scope="scope">
+                        <el-button @click="$router.push({path:'/papers/detail',query:{id:scope.row.id}})"  size="mini" type="success">查看</el-button>
+                        <el-button @click="openAddEdit(scope.row)" size="mini" type="warning">编辑</el-button>
+                        <el-button @click="del(scope.row.id)" size="mini"  type="danger">删除</el-button>
+                    </template>
                 </el-table-column>
         </el-table>
         <Page  ref="pageButton"  :total='total' @pageChange='gopage'/>
-
+        <!--试卷导入-->
         <el-dialog
         title="导入试卷" center
         :visible.sync="dialogVisible"
         width="40%">
-        <p style="text-align:center;">请先下载模板,按模板格式填写好试题数据然后上传。
-            <a style="color:#409eff;" href="https://www.scxjc.club/paper.xlsx">点击下载模板</a> 
-            <br> <br>
-            <input style="width:160px" id='file' type="file">
-        </p>
-       
-        <span slot="footer" class="dialog-footer">
-            <el-button size="small" @click="dialogVisible = false">取 消</el-button>
-            <el-button size="small" type="primary" @click="upload('file')">确 定</el-button>
-        </span>
+            <p style="text-align:center;">请先下载模板,按模板格式填写好试题数据然后上传。
+                <a style="color:#409eff;" href="https://www.scxjc.club/paper.xlsx">点击下载模板</a> 
+                <br> <br>
+                <input style="width:160px" id='file' type="file">
+            </p>
+        
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+                <el-button size="small" type="primary" @click="upload('file')">确 定</el-button>
+            </span>
+        </el-dialog>
+        <!--新增/编辑试卷-->
+        <el-dialog
+        title="新增/编辑试卷" center
+        :visible.sync="addEditDialogVisible"
+        width="40%">
+            <el-form v-model="addEditForm" label-width="80px" size="small">
+                <el-form-item label="试卷名称">
+                    <el-input placeholder="试卷名称" v-model="addEditForm.title"></el-input>
+                </el-form-item>
+                <el-form-item label="考试时间">
+                    <el-input placeholder="考试时间" v-model="addEditForm.total_time"></el-input>
+                </el-form-item>
+                <el-form-item label="满分">
+                    <el-input placeholder="满分" v-model="addEditForm.total_score"></el-input>
+                </el-form-item>
+                <el-form-item label="学时">
+                    <el-input placeholder="学时" v-model="addEditForm.credit"></el-input>
+                </el-form-item>
+                <el-form-item label="试卷类型">
+                    <el-select v-model="addEditForm.paper_type">
+                        <el-option label="练习" value="train"></el-option>
+                        <el-option label="考试" value="exam"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="状态">
+                    <el-select v-model="addEditForm.status">
+                        <el-option label="编辑中" :value="1"></el-option>
+                        <el-option label="已发布" :value="2"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="排序">
+                    <el-input v-model="addEditForm.order" placeholder="排序" type="number" />
+                </el-form-item>
+                <el-form-item>
+                    <el-button @click="addEditDialogVisible=false">取消</el-button>
+                    <el-button @click="saveAddEdit" type="primary">保存</el-button>
+                </el-form-item>
+            </el-form>
         </el-dialog>
+
     </section>
 </template>
 <script>
@@ -111,7 +151,13 @@ export default {
       total:1,
       list:[],
       loading:false,
-      dialogVisible:false
+      dialogVisible:false,
+      addEditDialogVisible:false,
+      addEditForm:{
+          paper_type:"train",
+          status:1,
+          order:1
+      }
     }
   },
   methods:{
@@ -124,6 +170,7 @@ export default {
       },
       subChange(data){
           this.form.subject_item=data.join('|')
+          this.getData();
       },
       getData(){
          var parm=this.form;
@@ -161,6 +208,27 @@ export default {
                 })
             })
       },
+      openAddEdit(row){
+          this.addEditDialogVisible = true;
+          this.$api.getPaper({id:row.id,type:1}).then(res=>{
+              this.addEditForm = res.data.data;
+          })
+      },
+      saveAddEdit(){
+          if(this.addEditForm.id){
+              this.$api.updatePaper(this.addEditForm).then(res=>{
+                  if(!res.data.code){
+                      this.$message({
+                        message: '修改成功!',
+                        type: 'success'
+                    })
+                    this.addEditDialogVisible = false;
+                  }
+              })
+          }else{
+
+          }
+      }
   },
   created(){
       this.getData()

+ 26 - 11
src/views/videos/Add.vue

@@ -9,7 +9,7 @@
     <section class="add">
         <p>在线培训  >  视频管理  >  新增视频</p>
         <div class="content" v-loading.fullscreen.lock="fullscreenLoading">
-            <el-form label-width="80px">
+            <el-form label-width="80px" :inline="true">
                 <el-form-item label="培训项目" v-if="id!=''">
                     <Subject v-if='form.subject_id' :subvalue='form.subject_item' @subChange='subChange'/>
                 </el-form-item>
@@ -26,21 +26,36 @@
                 <el-form-item label="视频名称">
                         <el-input placeholder="视频名称" v-model="form.title"></el-input>
                 </el-form-item>
+                
+                <el-form-item label="状态">
+                    <el-select v-model="form.status">
+                        <el-option label="编辑中" :value="1"></el-option>
+                        <el-option label="已发布" :value="2"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="总时长">
+                    <el-input type="number" placeholder="总时长(分钟)" v-model="form.total_time"></el-input>
+                </el-form-item>
+                <el-form-item label="学时">
+                    <el-input placeholder="学时" v-model="form.credit"></el-input>
+                </el-form-item>
+                <el-form-item label="排序">
+                    <el-input v-model="form.order" placeholder="排序" type="number" />
+                </el-form-item>
+                <el-form-item label="视频文件">
+                    <el-input v-model="form.url" placeholder="视频地址" />
+                </el-form-item>
                 <el-form-item label="封面图">
                     <p v-if="form.img">
                         <img width="300"  :src="form.img" alt="">
                     </p>
                     <input type="file" @change="upload('img')" id='img'>
                 </el-form-item>
-                <el-form-item label="视频文件">
-                    <p v-if="form.url">
-                        <video width="300"  :src="form.url"></video>
-                    </p>
-                    <input type="file" @change="upload('url')" id='url'>
-                </el-form-item>
-                <el-form-item label=" ">
-                        <el-button @click="save" type="primary">保存</el-button>
-                </el-form-item>
+                <div>
+                    <el-form-item label=" ">
+                            <el-button @click="save" type="primary">保存</el-button>
+                    </el-form-item>
+                </div>
             </el-form>
         </div>
     </section>
@@ -54,7 +69,7 @@ export default {
   data(){
     return{
       fullscreenLoading:false,
-      form:{},
+      form:{status:1,order:1},
       id:''
     }
   },

+ 21 - 5
src/views/videos/Index.vue

@@ -59,10 +59,26 @@
                 prop="train_type"
                 label="培训类型">
                 </el-table-column>
-                <!-- <el-table-column
-                prop="total_score"
-                label="满分">
-                </el-table-column> -->
+                <el-table-column
+                prop="status"
+                label="状态">
+                    <template slot-scope="scope">
+                        <el-tag type="success" v-if="scope.row.status==2">已发布</el-tag>
+                        <el-tag type="warning" v-if="scope.row.status==1">编辑中</el-tag>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                prop="credit" width="60"
+                label="学时">
+                </el-table-column>
+                <el-table-column
+                prop="total_time" width="60"
+                label="视频时长">
+                </el-table-column>
+                <el-table-column
+                prop="order"
+                label="排序">
+                </el-table-column>  
                 <el-table-column
                 prop="ctime"
                 label="创建时间">
@@ -88,7 +104,7 @@ export default {
     },
   data(){
     return{
-      form:{name:'',page:1,page_size:20},
+      form:{name:'',page:1,page_size:20,order:1,status:1},
       activeName:"1",
       total:1,
       list:[],