mo %!s(int64=2) %!d(string=hai) anos
pai
achega
ebe9da34b1

+ 12 - 3
src/components/remote-search/index.vue

@@ -43,7 +43,7 @@ import { throttle, slice, uniqBy } from "lodash";
 import selects from "@/store/modules/selects";
 export default {
   name: "remote-search",
-  props: ["commit", "number", "value", "width", "multiple", "ariaPlaceholder",'demissionFlag'],
+  props: ["commit", "number", "value", "width", "multiple", "ariaPlaceholder",'demissionFlag','isForzenWithQueryCondition'],
   data() {
     return {
       options: [],
@@ -69,8 +69,17 @@ export default {
         this.commit == "setEducations" ? "setOrganRole" : this.commit;
         if(this.commit == 'setTenantUser'){
           await this.$store.dispatch(commit,this.value);
-        }else{
-          await this.$store.dispatch(commit,this.demissionFlag);
+        }
+        else if(this.commit == 'setTeachers'){
+
+          await this.$store.dispatch(commit,{
+            demissionFlag: this.demissionFlag,
+            isForzenWithQueryCondition:this.isForzenWithQueryCondition
+          });
+        }
+        else{
+
+          await this.$store.dispatch(commit,this.demissionFlag,);
         }
 
       if (commit == "setOrganRole") {

+ 2 - 2
src/store/modules/selects.js

@@ -127,10 +127,10 @@ export default {
     },
     async setTeachers({ commit, state }, force) {
       if (
-        (!state.teachers.length || force === true) &&
+        (!state.teachers.length ) &&
         !loadings.commit_teachers
       ) {
-        loadings.commit_teachers = getTeacher({demissionFlag:force});
+        loadings.commit_teachers = getTeacher({demissionFlag:force.demissionFlag,isForzenWithQueryCondition:force.isForzenWithQueryCondition});
         try {
           const res = await loadings.commit_teachers;
           commit("commit_teachers", res.data);

+ 1 - 1
src/views/categroyManager/insideSetting/branchManager.vue

@@ -18,7 +18,7 @@
           <el-input
             v-model="searchForm.search"
             clearable
-            placeholder="请输入合作单位名称"
+            placeholder="单位/乐团主管名称"
           ></el-input>
         </el-form-item>
         <el-form-item>

+ 13 - 1
src/views/resetTeaming/components/payInfoDetail.vue

@@ -368,7 +368,10 @@ export default {
         ],
         leBaoList: [{}],
         activeList: [{}],
-        isMusicGroupFee:null,
+        isShowMemberForPay:true,
+        isShowMusicInsuranceForPay:true,
+        isShowVipCourseForPay:true,
+        isShowMusicCourseForPay:true,
         leixing: "1",
       },
       teamCourse: false,
@@ -897,6 +900,11 @@ export default {
               ? { ...form.leBaoList[0], optionalFlag: false }
               : null, // 乐保
         },
+        isShowMemberForPay:form.isShowMemberForPay,
+        isShowMusicInsuranceForPay:form.isShowMusicInsuranceForPay,
+        isShowVipCourseForPay:form.isShowVipCourseForPay,
+        isShowMusicCourseForPay:form.isShowMusicCourseForPay,
+
       };
     },
     fommatDate() {
@@ -918,6 +926,10 @@ export default {
         musicGroupPaymentCalenderCourseSettingsList:
           this.form.eclass?.length > 0 ? this.form.eclass : null,
         musicGroupId: this.$route.query.id,
+        isShowMemberForPay:form.isShowMemberForPay,
+        isShowMusicInsuranceForPay:form.isShowMusicInsuranceForPay,
+        isShowVipCourseForPay:form.isShowVipCourseForPay,
+        isShowMusicCourseForPay:form.isShowMusicCourseForPay,
       };
     },
     getScroll() {

+ 59 - 24
src/views/resetTeaming/modals/payLeBao.vue

@@ -1,22 +1,37 @@
 <template>
   <div class="teamCourseList">
-    <p class="coreTitle">乐保</p>
+    <p class="coreTitle">
+      乐保
+
+      <el-form-item
+        label="是否展示"
+        prop="isShowMusicInsuranceForPay"
+        v-if="allCourseCurrentPrice == 0"
+        class="titleFormItem"
+      >
+        <el-select
+          style="width: 100% !important"
+          v-model="form.isShowMusicInsuranceForPay"
+          placeholder="请选择是否展乐保费用"
+          size="mini"
+        >
+          <el-option label="是" :value="true"> </el-option>
+          <el-option label="否" :value="false"> </el-option>
+        </el-select>
+      </el-form-item>
+    </p>
     <el-table
-    class="courseTable"
+      class="courseTable"
       :data="form.leBaoList"
       style="width: 100% !important; background: #f9f9f9"
       :header-cell-style="{ background: '#F9F9F9', color: '#444' }"
     >
-      <el-table-column
-      width="170px"
-        label="乐器保养"
-
-      >
+      <el-table-column width="170px" label="乐器保养">
         <template slot-scope="scope">
           <p>乐器保养</p>
         </template>
       </el-table-column>
-      <el-table-column label="年限" prop="num" key="num"  width="170px">
+      <el-table-column label="年限" prop="num" key="num" width="170px">
         <template slot-scope="scope">
           <el-form-item
             :prop="'leBaoList.' + scope.$index + '.num'"
@@ -44,7 +59,12 @@
           </el-form-item>
         </template>
       </el-table-column>
-      <el-table-column label="售价(元)" prop="actualAmount" key="actualAmount"  width="170px">
+      <el-table-column
+        label="售价(元)"
+        prop="actualAmount"
+        key="actualAmount"
+        width="170px"
+      >
         <template slot-scope="scope">
           <el-form-item
             :prop="'leBaoList.' + scope.$index + '.actualAmount'"
@@ -73,7 +93,7 @@
         prop="originalAmount"
         key="originalAmount"
         label="原价(元)"
-         width="170px"
+        width="170px"
       >
         <template slot-scope="scope">
           <el-form-item
@@ -91,15 +111,14 @@
               :controls="false"
               :precision="0"
               :min="0"
-              :disabled='true'
+              :disabled="true"
               placeholder="请输入原价"
             />
           </el-form-item>
         </template>
       </el-table-column>
       <el-table-column prop="close" key="close">
-        <template slot-scope="scope">
-        </template>
+        <template slot-scope="scope"> </template>
       </el-table-column>
     </el-table>
     <!--          v-if="!isCommon && $listeners.create"  @click="$listeners.create"-->
@@ -108,7 +127,7 @@
 </template>
 <script>
 export default {
-  props: ["form",'leBaoInfo'],
+  props: ["form", "leBaoInfo"],
   data() {
     return {
       charges: [],
@@ -119,22 +138,38 @@ export default {
     };
   },
   methods: {
-    changeYear(val){
-      this.leBaoInfo.forEach(element => {
-        if(element.id == '189'){
-          this.$set(this.form.leBaoList[0],'actualAmount',val*element.paranValue)
+    changeYear(val) {
+      this.leBaoInfo.forEach((element) => {
+        if (element.id == "189") {
+          this.$set(
+            this.form.leBaoList[0],
+            "actualAmount",
+            val * element.paranValue
+          );
         }
-          if(element.id == '202'){
-          this.$set(this.form.leBaoList[0],'originalAmount',val*element.paranValue)
+        if (element.id == "202") {
+          this.$set(
+            this.form.leBaoList[0],
+            "originalAmount",
+            val * element.paranValue
+          );
         }
       });
-
     },
     change() {},
   },
-  computed:{
-
-  }
+  computed: {
+    allCourseCurrentPrice() {
+      let price = 0;
+      this.form.leBaoList.forEach((element) => {
+        price += element.actualAmount;
+      });
+      if (price > 0) {
+        this.form.isShowMusicInsuranceForPay = true;
+      }
+      return price;
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 26 - 1
src/views/resetTeaming/modals/payMember.vue

@@ -1,6 +1,19 @@
 <template>
   <div class="teamCourseList">
-    <p class="coreTitle">云教练</p>
+    <p class="coreTitle">云教练
+      <el-form-item label="是否展示" prop="isShowMemberForPay" v-if="allCourseCurrentPrice==0"  class="titleFormItem">
+        <el-select
+          style="width: 100% !important"
+          v-model="form.isShowMemberForPay"
+          placeholder="请选择是否展示云教练费用"
+          size="mini"
+        >
+          <el-option label="是" :value="true"> </el-option>
+          <el-option label="否" :value="false"> </el-option>
+        </el-select>
+      </el-form-item>
+    </p>
+
     <el-table
     class="courseTable"
       :data="form.memberList"
@@ -426,6 +439,18 @@ export default {
       },
     },
   },
+  computed:{
+    allCourseCurrentPrice(){
+      let price = 0
+      this.form.memberList.forEach(element => {
+        price+=element.actualAmount
+      });
+      if(price >0){
+        this.form.isShowMemberForPay = true
+      }
+      return price
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 35 - 1
src/views/resetTeaming/modals/payTeamActive.vue

@@ -1,6 +1,25 @@
 <template>
   <div class="teamCourseList">
-    <p class="coreTitle">乐团小课  <el-button size="mini" icon="el-icon-plus" plain class="addBtn" @click="$listeners.create">新增活动</el-button></p>
+    <p class="coreTitle">乐团小课
+      <el-form-item
+        label="是否展示"
+        prop="isShowVipCourseForPay"
+        v-if="allCourseCurrentPrice == 0"
+        class="titleFormItem"
+
+      >
+        <el-select
+        @change="changeMusic"
+          style="width: 100% !important"
+          v-model="form.isShowVipCourseForPay"
+          placeholder="请选择是否展乐团小课"
+          size="mini"
+        >
+          <el-option label="是" :value="true"> </el-option>
+          <el-option label="否" :value="false"> </el-option>
+        </el-select>
+      </el-form-item>
+       <el-button size="mini" icon="el-icon-plus" plain class="addBtn" @click="$listeners.create">新增活动</el-button></p>
     <el-table
     class="courseTable"
       :data="form.activeList"
@@ -219,6 +238,21 @@ export default {
       return selected.includes(key);
     },
     change() {},
+    changeMusic(val){
+      console.log(val,this.form)
+    }
+  },
+  computed: {
+    allCourseCurrentPrice() {
+      let price = 0;
+      this.form.activeList.forEach((element) => {
+        price += element.actualAmount;
+      });
+      if (price > 0) {
+        this.form.isShowVipCourseForPay = true;
+      }
+      return price;
+    },
   },
 };
 </script>

+ 3 - 3
src/views/resetTeaming/modals/payTeamCourse.vue

@@ -53,10 +53,10 @@
           </el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="是否展示" prop="isMusicGroupFee" v-if="allCourseCurrentPrice==0"  class="titleFormItem">
+      <el-form-item label="是否展示" prop="isShowMusicCourseForPay" v-if="allCourseCurrentPrice==0"  class="titleFormItem">
         <el-select
           style="width: 100% !important"
-          v-model="form.isMusicGroupFee"
+          v-model="form.isShowMusicCourseForPay"
           placeholder="请选择是否展示乐团费用"
           size="mini"
         >
@@ -271,7 +271,7 @@ export default {
         price+=element.courseCurrentPrice
       });
       if(price >0){
-        this.form.isMusicGroupFee = null
+        this.form.isShowMusicCourseForPay = true
       }
       return price
     }

+ 6 - 6
src/views/resetTeaming/modals/subject-preview.vue

@@ -3,6 +3,7 @@
     <tips />
 
     <course-model
+      v-if="preViewData.isShowMusicCourseForPay"
       :courseViewType="courseViewType"
       :courseShowInfo="courseShowInfo"
       :remissionCourseFeeStatus="remissionCourseFeeStatus"
@@ -18,7 +19,7 @@
     />
 
     <member
-      v-if="toolsPackage && toolsPackage.length > 0"
+      v-if="toolsPackage && toolsPackage.length > 0&&preViewData.isShowMemberForPay"
       :toolsPackage="toolsPackage"
       :isGiveAccessories="isGiveAccessories"
       :accessStatus="accessOries.length > 0"
@@ -36,7 +37,7 @@
       @onQuestions="onQuestions"
     />
 
-    <div class="courseModel" style="margin-top: 12px;" v-if="instrumentRepair && instrumentRepair.length > 0">
+    <div class="courseModel" style="margin-top: 12px;" v-if="instrumentRepair && instrumentRepair.length > 0&& preViewData.isShowMusicInsuranceForPay">
       <h2 class="titles">
         <img :src="trainSmallBg" />
         <span>乐器保养</span>
@@ -70,9 +71,8 @@
       :isGiveAccessories="giveAccessoriesStatus"
       @onAuxiliarie="onCheckItem"
     />
-
     <activity
-      v-if="activityList && activityList.length > 0"
+      v-if="activityList && activityList.length > 0&&preViewData.isShowVipCourseForPay"
       :trainSmallBg="trainSmallBg"
       :activityList="activityList"
       @onCheckItem="onCheckItem"
@@ -253,12 +253,12 @@ export default {
       // 云教练
       const member = paymentCalender && paymentCalender.member ? paymentCalender.member : {}
       member.isStatus = true
-      this.toolsPackage = member.actualAmount ? [member] : []
+      this.toolsPackage = member.actualAmount ? [member] : [member]
       // 乐器保养
       const repair = paymentCalender && paymentCalender.repair ? paymentCalender.repair : {}
       repair.name = '乐器保养'
       repair.isStatus = true // 默认不选择乐器保养
-      this.instrumentRepair = repair.actualAmount ? [repair] : []
+      this.instrumentRepair = repair.actualAmount ? [repair] : [repair]
       // 小班课
       const activity = paymentCalender && paymentCalender.activity ? paymentCalender.activity : []
       activity.map(i => {

+ 33 - 0
src/views/returnVisitManager/components/returnVisitList.vue

@@ -91,6 +91,7 @@
         <el-form-item>
           <el-button type="danger" native-type="submit">搜索</el-button>
           <el-button native-type="reset" type="primary">重置</el-button>
+          <el-button v-if="permission('export/studentVisitRecord')" type="primary" @click="onExport">导出</el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
@@ -251,6 +252,7 @@
 </template>
 <script>
 import { visitChiose1 } from "@/utils/searchArray";
+import { Export } from "@/utils/downLoadFile";
 import pagination from "@/components/Pagination/index";
 import { getEmployeeOrgan } from "@/api/buildTeam";
 import { getVisitList,updateProbStatus } from "../api.js";
@@ -258,6 +260,7 @@ import cleanDeep from "clean-deep";
 import { getTimes } from "@/utils";
 import { resetQuery } from "@/utils/utils";
 import { permission } from "@/utils/directivePage";
+import qs from 'qs'
 export default {
   components: { pagination },
   data() {
@@ -393,6 +396,36 @@ export default {
     permission(str) {
       return permission(str);
     },
+    onExport() {
+      let { timer, typeList, ...rest } = this.searchForm;
+      let type,
+        purpose = null;
+      if (typeList.length > 0) {
+        type = typeList[0];
+        purpose = typeList[1];
+      }
+
+      let params = {
+        ...rest,
+        page: this.rules.page,
+        rows: this.rules.limit,
+        ...getTimes(timer, ["startTime", "endTime"]),
+        type,
+        purpose,
+      };
+      Export(
+        this,
+        {
+          url: "/api-web/export/studentVisitRecord",
+          params: qs.stringify(cleanDeep({
+            ...params
+          })) ,
+          fileName: `学员回访导出.xls`,
+          method: "post",
+        },
+        "确定导出学员回访"
+      );
+    },
   },
   watch: {
     detailVisible(val) {

+ 7 - 7
src/views/stuRecodeManager/index.vue

@@ -148,12 +148,12 @@
         <el-form-item>
           <el-button native-type="submit" type="danger">搜索</el-button>
           <el-button native-type="reset" type="primary">重置</el-button>
-          <!-- <el-button
+          <el-button
             @click="onExport"
             type="primary"
-            v-permission="'export/queryTeacherAttendances'"
+            v-permission="'export/studentCourseAttendance'"
 
-            >导出</el-button> -->
+            >导出</el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
@@ -473,17 +473,17 @@ export default {
         page: this.rules.page,
         rows: this.rules.limit,
         ids: this.$route.query.ids,
-        ...getTimes(dates, ["classStartDate", "classEndDate"], "YYYY-MM-DD"),
+        ...getTimes(dates, ["startDateOfCourse", "endDateOfCourse"], "YYYY-MM-DD"),
       };
       await Export(
         this,
         {
-          url: "/api-web/export/exportStudentAttendances",
-          fileName: "考勤列表.xls",
+          url: "/api-web/export/studentCourseAttendance",
+          fileName: "学生考勤列表.xls",
           method: "post",
           params: qs.stringify(cleanDeep(obj)),
         },
-        "您确定考勤列表?"
+        "您确定导出学员考勤列表?"
       );
     },
     getList() {

+ 2 - 1
src/views/teamDetail/teamCourseList.vue

@@ -34,7 +34,8 @@
           <remote-search
             :commit="'setTeachers'"
             v-model="searchForm.teacherIdList"
-            :demissionFlag="false"
+            :demissionFlag="true"
+            :isForzenWithQueryCondition="true"
           />
         </el-form-item>
         <el-form-item>