Selaa lähdekoodia

提交全选修改

1
mo 4 vuotta sitten
vanhempi
commit
d356a783e7

+ 68 - 27
src/components/select-all/index.vue

@@ -1,52 +1,93 @@
 <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"
+  <div>
+    <el-tooltip
+      v-if="isShow"
+      class="item"
+      effect="dark"
+      :content="labelStr"
+      placement="top"
+      ref="tooltip"
     >
-      <slot/>
-    </el-select>
-    <el-button @click="selectAll" class="btn">
-      全选
-    </el-button>
+      <div class="showDev"></div>
+    </el-tooltip>
+    <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" v-bind="{ ...$attrs }">
+        全选
+      </el-button>
+    </div>
   </div>
 </template>
 <script>
 export default {
-  name: 'select-all',
+  name: "select-all",
+  data() {
+    return {
+      labelStr: "",
+      isShow: false,
+    };
+  },
   mounted() {
-    console.log(this)
+    this.isShow = this.$refs?.select?.disabled || false;
+    console.log(this.$refs?.select?.disabled);
+    const { selected } = this.$refs.select;
+    this.labelStr = selected.map((item) => item.label).join(",");
   },
   methods: {
     selectAll() {
-      const { options } = this.$refs.select
-      const values = options.filter(item => !item.disabled && item.value).map(item => item.value)
-      this.$emit('input', values)
-    }
-  }
-}
+      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="scss">
+.el-tooltip__popper {
+  max-width: 300px;
+  line-height: 180%;
+}
+
+</style>
 <style lang="less" scoped>
-.select-all{
+
+
+.select-all {
   display: flex;
-  .select{
+  .select {
     flex: 1;
-    /deep/ .el-input__inner{
+    /deep/ .el-input__inner {
       border-radius: 4px 0 0 4px;
     }
   }
 }
-.btn{
+.btn {
   width: 50px;
   padding: 0 10px;
   border-left: none;
   border-radius: 0 4px 4px 0;
+
+}
+.item {
+  width: 100%;
+  position: absolute;
+  z-index: 1000;
   height: 40px;
+  .showDev {
+    width: 100%;
+  }
 }
 </style>

+ 3 - 3
src/views/HumanResources/form.vue

@@ -104,12 +104,12 @@
               <th class="description-label">声部</th>
               <td class="description-content">
                 <el-form-item prop="subjectIdList">
-                  <el-select
+                  <select-all
                     v-model.trim="form.subjectIdList"
                     clearable
                     filterable
                     multiple
-                    size="mini"
+
                     collapse-tags
                     placeholder='请选择声部'
                   >
@@ -119,7 +119,7 @@
                       :label="item.name"
                     >
                     </el-option>
-                  </el-select>
+                  </select-all>
                 </el-form-item>
               </td>
             </tr>

+ 6 - 5
src/views/categroyManager/insideSetting/staffManager.vue

@@ -190,7 +190,7 @@
         <el-form-item label="角色分类"
                       prop="roleIds"
                       :label-width="formLabelWidth">
-          <el-select v-model.trim="form.roleIds"
+          <select-all v-model.trim="form.roleIds"
                      placeholder="请选择角色分类"
                      clearable
                      filterable
@@ -200,12 +200,13 @@
                        :key="item.value"
                        :label="item.label"
                        :value="item.value"></el-option>
-          </el-select>
+          </select-all>
         </el-form-item>
         <el-form-item label="所属部门"
                       prop="organIdLists"
                       :label-width="formLabelWidth">
-          <el-select style="width: calc(100% - 75px) !important;"
+                      <!-- style="width: calc(100% - 75px) !important;" -->
+          <select-all
                      filterable
                      clearable
                       placeholder="请选择部门"
@@ -216,8 +217,8 @@
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"></el-option>
-          </el-select>
-          <el-button @click="onBranchCheckAll">全选</el-button>
+          </select-all>
+          <!-- <el-button @click="onBranchCheckAll">全选</el-button> -->
         </el-form-item>
         <el-form-item label="工作类型"
                       prop="jobNature"

+ 1 - 1
src/views/categroyManager/vipActiveList.vue

@@ -195,7 +195,7 @@
     <el-dialog
       title="修改VIP/乐理课活动"
       width="650px"
-      :before-close="closeVipform"
+      v-if="dialogVisible"
       :visible.sync="dialogVisible"
     >
       <div>

+ 2 - 2
src/views/contentManager/components/activity.vue

@@ -20,7 +20,7 @@
         </el-select>
       </el-form-item> -->
       <el-form-item prop="organIdList">
-        <el-select class="multiple" v-model="searchForm.organIdList"
+        <select-all class="multiple" v-model="searchForm.organIdList"
                    clearable
                    multiple
                    filterable
@@ -30,7 +30,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>

+ 3 - 3
src/views/contentManager/components/advert.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple" clearable
+        <select-all class="multiple" clearable
                    filterable
                    collapse-tags
                    multiple
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>
@@ -196,4 +196,4 @@ export default {
 .bannerImg {
   height: 60px;
 }
-</style>
+</style>

+ 2 - 2
src/views/contentManager/components/appPage.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple"
+        <select-all class="multiple"
                    v-model.trim="searchForm.organIdList" clearable
                    filterable
                    collapse-tags
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>

+ 2 - 2
src/views/contentManager/components/banner.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple" clearable
+        <select-all class="multiple" clearable
                    filterable
                    collapse-tags
                    multiple
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>

+ 2 - 2
src/views/contentManager/components/flashPage.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple" clearable
+        <select-all class="multiple" clearable
                    filterable
                    collapse-tags
                    multiple
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>

+ 2 - 2
src/views/contentManager/components/information.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple" clearable
+        <select-all class="multiple" clearable
                    filterable
                    collapse-tags
                    multiple
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item prop="subType">
         <el-select v-model="searchForm.subType"

+ 2 - 2
src/views/contentManager/components/knowledge.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple" clearable
+        <select-all class="multiple" clearable
                    filterable
                    collapse-tags
                    multiple
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item prop="subType">
         <el-select v-model="searchForm.subType"

+ 2 - 2
src/views/contentManager/components/training.vue

@@ -10,7 +10,7 @@
              @submit="search"
              :model="searchForm">
       <el-form-item prop="organIdList">
-        <el-select class="multiple" clearable
+        <select-all class="multiple" clearable
                    filterable
                    collapse-tags
                    multiple
@@ -20,7 +20,7 @@
                     :key="index"
                     :label="item.name"
                     :value="item.id"></el-option>
-        </el-select>
+        </select-all>
       </el-form-item>
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>

+ 4 - 4
src/views/teacherManager/teacherOperation/components/teacherOperation.vue

@@ -130,7 +130,7 @@
             </el-col>
             <el-col :span="12">
               <el-form-item label="流动范围" :label-width="formLabelWidth">
-                <el-select
+                <select-all
                   v-model.trim="topForm.flowOrganRange"
                   filterable
                   clearable
@@ -143,7 +143,7 @@
                     :label="item.label"
                     :value="item.value.toString()"
                   ></el-option>
-                </el-select>
+                </select-all>
               </el-form-item>
             </el-col>
           </el-row>
@@ -258,7 +258,7 @@
                 :rules="[{ required: true }]"
                 :label-width="formLabelWidth"
               >
-                <el-select
+                <select-all
                   :disabled="!topForm.organId"
                   v-model="subjectIds"
                   clearable
@@ -271,7 +271,7 @@
                     :label="item.name"
                     :value="item.id"
                   ></el-option>
-                </el-select>
+                </select-all>
               </el-form-item>
             </el-col>
             <el-col :span="12">

+ 2 - 2
src/views/teamBuild/components/soundSetComponents/soundSetCore.vue

@@ -56,7 +56,7 @@
             />
             <div class="coreItemRow">
               <p class="title">教辅:</p>
-              <el-select
+              <select-all
                 style="width: 558px !important"
                 v-model="item.markChioseList"
                 :disabled="basdisabled"
@@ -81,7 +81,7 @@
                     >{{ item.groupPurchasePrice | moneyFormat }}元</span
                   >
                 </el-option>
-              </el-select>
+              </select-all>
             </div>
           </el-collapse-item>
         </el-collapse>

+ 2 - 2
src/views/teamDetail/components/modals/create-user-pay.vue

@@ -42,7 +42,7 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="临时班">
-            <el-select
+            <select-all
               v-model.trim="form.snapClass"
               filterable
               clearable
@@ -54,7 +54,7 @@
                 :value="item.id"
                 :label="item.name"
               ></el-option>
-            </el-select>
+            </select-all>
           </el-form-item>
         </el-col>
       </el-row>

+ 2 - 2
src/views/teamDetail/components/modals/select-student.vue

@@ -70,7 +70,7 @@
         <!-- :offset="showName ? 4 : 0" -->
         <el-col :span="10" >
           <el-form-item label="声部" style="margin-right: 0;" prop="sound"  :rules="(isOnlyChangeUser||activeType == 'MUSIC_NETWORK')?null:[{ required: true, message: '请选择声部',trigger: 'blur' }]">
-            <el-select
+            <select-all
               v-model="form.sound"
               style="width: 100%"
               clearable
@@ -85,7 +85,7 @@
                 :label="item.name"
                 :value="item.id"
               ></el-option>
-            </el-select>
+            </select-all>
           </el-form-item>
         </el-col>
       </el-row>

+ 2 - 2
src/views/teamDetail/components/resetClass.vue

@@ -471,7 +471,7 @@
             newClassForm.type == 'HIGH'
           "
         >
-          <el-select
+          <select-all
             v-model.trim="newClassForm.memo"
             multiple
             clearable
@@ -484,7 +484,7 @@
               :label="item.name"
               :value="item.id"
             ></el-option>
-          </el-select>
+          </select-all>
         </el-form-item>
         <el-form-item
           label="网络教室声部"

+ 2 - 2
src/views/teamDetail/teamClassList.vue

@@ -22,7 +22,7 @@
           ></el-input>
         </el-form-item>
         <el-form-item prop="organIdList">
-          <el-select
+          <select-all
             class="multiple"
             filterable
             multiple
@@ -37,7 +37,7 @@
               :label="item.name"
               :value="item.id"
             ></el-option>
-          </el-select>
+          </select-all>
         </el-form-item>
         <el-form-item>
           <el-select