xiaojincai 4 years ago
parent
commit
ca51c190e6
5 changed files with 88 additions and 5 deletions
  1. 2 1
      package.json
  2. 75 0
      src/components/MulSubject.vue
  3. 2 0
      src/main.js
  4. 9 3
      src/views/classes/Add.vue
  5. 0 1
      src/views/content/addContent.vue

+ 2 - 1
package.json

@@ -11,6 +11,7 @@
     "ali-oss": "^6.2.1",
     "cos-js-sdk-v5": "^0.5.20",
     "echarts": "^4.6.0",
+    "el-cascader-multi": "^1.1.8",
     "element-ui": "^2.7.2",
     "font-awesome": "^4.7.0",
     "js-base64": "^2.5.2",
@@ -52,7 +53,7 @@
       "eslint:recommended"
     ],
     "rules": {
-      "no-console":"off"
+      "no-console": "off"
     },
     "parserOptions": {
       "parser": "babel-eslint"

+ 75 - 0
src/components/MulSubject.vue

@@ -0,0 +1,75 @@
+<style lang="scss">
+ @import '../style/style.scss';
+    .sub{
+        .el-input{
+            width: 300px !important;
+        }
+    }
+</style>
+<template>
+    <el-cascader-multi v-model="value2" :data="data" :props='props' > </el-cascader-multi>
+</template>   
+<script>
+export default {
+    data(){
+        return{
+            data:[],
+            checkList:[[1,32,38]],
+            value1:[],
+            props:["value2"],
+            props2:{
+                label:'name',
+                checkStrictly:true,
+                value:'id'
+            },
+            // value2:[[1,32,38]],
+            props1:{
+                label:'name',
+                checkStrictly:true,
+                value:'name'
+            }
+        }
+    },
+    props: {
+        subvalue:'',
+        subject_id:''
+    },
+    methods:{
+        getData(type){
+            this.$api.getSubList().then(res=>{
+                let data=res.data.data;
+                if(this.subject_id){
+                    for(let i=0;i<data.length;i++){
+                        if(data[i].id == this.subject_id){
+                            this.data=data[i].children
+                        }
+                    }
+                }else{
+                    this.data=res.data.data
+                }
+                // this.checkList = [[1,32,38]]              
+          })
+        },
+        handleChange(value) {
+            var id='',that=this;
+            if(value.length>=3&&isNaN(value[0])){
+                var item1=this.data.filter(item=>item.name==value[0]),
+                    item2=item1[0].children.filter(item=>item.name==value[1]),
+                    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)
+            
+            
+        }
+    },
+    created(){
+        this.getData()
+    }
+}
+</script>

+ 2 - 0
src/main.js

@@ -8,11 +8,13 @@ import 'font-awesome/css/font-awesome.css'
 import api from './api';
 
 import BaiduMap from 'vue-baidu-map'
+import elCascaderMulti from "el-cascader-multi";
 Vue.use(BaiduMap, {
   ak: '1hqg34NFaCw9jcv0xG82cI7uINFaXGGM'
 })
 
 Vue.use(ElementUI);
+Vue.use(elCascaderMulti);
 Vue.prototype.$api = api;
 Vue.config.productionTip = false
 

+ 9 - 3
src/views/classes/Add.vue

@@ -13,11 +13,14 @@
         <p>培训计划  >  班级管理  >  新增班级</p>
         <div class="content">
             <el-form label-width="80px">
-                <el-form-item label="培训项目" v-if="id!=''">
+                <!-- <el-form-item label="培训项目" v-if="id!=''">
                     <Subject v-if='form.signup_limit' :subvalue='form.subject_item' @subChange='subChange'/>
                 </el-form-item>
                 <el-form-item label="培训项目" v-else>
                     <Subject @subChange='subChange'/>
+                </el-form-item> -->
+                <el-form-item label="培训项目">
+                    <MulSubject :vlue2="value2"/>
                 </el-form-item>
                 <el-form-item label="班级名称">
                         <el-input placeholder="班级名称" v-model="form.name"></el-input>
@@ -40,14 +43,17 @@
 </template>
 <script>
 import Subject from '../../components/Subject';
+import MulSubject from '../../components/MulSubject';
 export default {
     components:{
-        Subject
+        Subject,
+        MulSubject
     },
   data(){
     return{
       form:{name:''},
-      id:''
+      id:'',
+      value2:[[1,32,38]]
     }
   },
   methods:{

+ 0 - 1
src/views/content/addContent.vue

@@ -41,7 +41,6 @@ export default {
     save() {
       var parm = this.form;
       if (parm.id) {
-        debugger;
         this.$api.editContent(parm).then(res => {
           if (res.data.code == 0) {
             this.$message({ message: "修改成功!", type: "success" });