Browse Source

添加全选

wolyshaw 4 years ago
parent
commit
81bcd1d034

+ 2 - 0
src/components/install.js

@@ -5,10 +5,12 @@
 
 import saveform from '@/components/save-form'
 import overflowtext from '@/components/overflow-text'
+import selectall from '@/components/select-all'
 
 export default {
   install(Vue) {
     Vue.component(saveform.name, saveform)
     Vue.component(overflowtext.name, overflowtext)
+    Vue.component(selectall.name, selectall)
   }
 }

+ 51 - 0
src/components/select-all/index.vue

@@ -0,0 +1,51 @@
+<template>
+  <div class="select-all">
+    <el-select
+      multiple
+      clearable
+      filterable
+      collapse-tags
+      class="select"
+      v-bind="{...$attrs, ...$props}"
+      v-on:input="value => $emit('input', value)"
+      ref="select"
+    >
+      <slot/>
+    </el-select>
+    <el-button @click="selectAll" class="btn">
+      全选
+    </el-button>
+  </div>
+</template>
+<script>
+export default {
+  name: 'select-all',
+  mounted() {
+    console.log(this)
+  },
+  methods: {
+    selectAll() {
+      const { options } = this.$refs.select
+      const values = options.filter(item => !item.disabled && item.value).map(item => item.value)
+      this.$emit('input', values)
+    }
+  }
+}
+</script>
+<style lang="less" scoped>
+.select-all{
+  display: flex;
+  .select{
+    flex: 1;
+    /deep/ .el-input__inner{
+      border-radius: 4px 0 0 4px;
+    }
+  }
+}
+.btn{
+  width: 50px;
+  padding: 10px;
+  border-left: none;
+  border-radius: 0 4px 4px 0;
+}
+</style>

+ 11 - 11
src/views/reportForm/index.vue

@@ -41,7 +41,7 @@
         <div class="m-wrap">
           <div class="title">乐团招生汇总:
           </div>
-          <el-select v-model.trim="organIdList"
+          <select-all v-model.trim="organIdList"
                      class="organSelect"
                      style="width:100%"
                      filterable
@@ -52,7 +52,7 @@
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
-          </el-select>
+          </select-all>
 
           <div class="newBand"
                @click="exportMusicGroup"
@@ -73,7 +73,7 @@
         <div class="m-wrap">
           <div class="title">老师默认课酬:
           </div>
-          <el-select v-model.trim="teacherDefaultSalaryOrganId"
+          <select-all v-model.trim="teacherDefaultSalaryOrganId"
                      class="organSelect"
                      style="width:100%"
                      filterable
@@ -84,7 +84,7 @@
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
-          </el-select>
+          </select-all>
 
           <div class="newBand"
                @click="exportDefaultSalary"
@@ -105,7 +105,7 @@
         <div class="m-wrap">
           <div class="title">乐团在读人数:
           </div>
-          <el-select v-model.trim="musicTeamNum"
+          <select-all v-model.trim="musicTeamNum"
                      class="organSelect"
                      style="width:100%"
                      filterable
@@ -116,7 +116,7 @@
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
-          </el-select>
+          </select-all>
           <div class="newBand"
                @click="exportMusicTeamNum"
                v-permission="'export/musicGroupNormalStudentNum'">导出
@@ -137,7 +137,7 @@
         <div class="m-wrap">
           <div class="title">回款统计:
           </div>
-          <el-select v-model.trim="studentOrganId"
+          <select-all v-model.trim="studentOrganId"
                      class="organSelect"
                      style="width:100%"
                      filterable
@@ -148,7 +148,7 @@
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
-          </el-select>
+          </select-all>
           <el-date-picker style="margin-left: 15px;"
                           v-model="studentMonth"
                           type="month"
@@ -173,7 +173,7 @@
         <div class="m-wrap">
           <div class="title">学生考勤:
           </div>
-          <el-select v-model.trim="attendanceOrganId"
+          <select-all v-model.trim="attendanceOrganId"
                      class="organSelect"
                      style="width:100%"
                      filterable
@@ -184,7 +184,7 @@
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
-          </el-select>
+          </select-all>
           <el-select v-model.trim="attendanceCourseType"
                      class="organSelect"
                      style=" margin-left: 15px; width:100%"
@@ -584,4 +584,4 @@ export default {
 /deep/.el-input__icon.el-icon-date {
   height: 40px !important;
 }
-</style>
+</style>

+ 6 - 6
src/views/teamDetail/components/modals/class-pay-list-item.vue

@@ -113,7 +113,7 @@ export default {
         paymentPattern: null,
       },
       other: {},
-      
+
     };
   },
   mounted() {
@@ -128,7 +128,7 @@ export default {
       if (this.payInfo.hasOwnProperty(key)) {
         if (this.item.classId == key) {
           this.payItem = this.payInfo[key];
-          console.log(this.payItem);
+          // console.log(this.payItem);
           break;
         }
       }
@@ -231,14 +231,14 @@ export default {
         }else{
           return null
         }
-        // 说明验证通过 
-       
+        // 说明验证通过
+
       } else {
         this.$message.error("请填写必要信息");
         return 'error';
       }
     },
-   
+
   },
    watch:{
       'payInfo':{
@@ -297,4 +297,4 @@ export default {
   text-align: center;
   margin: 60px;
 }
-</style>
+</style>