mo 3 роки тому
батько
коміт
5055d234cc

+ 1 - 1
src/views/attendanceManager/attendanceList/index.vue

@@ -226,7 +226,7 @@ export default {
       // date.page = this.rules.page;
       // date.rows = this.rules.limit;
 
-            let { courseTimer, ...rest } = this.searchForm;
+      let { courseTimer, ...rest } = this.searchForm;
       let params = {
         ...rest,
         page: this.rules.page,

+ 1 - 1
src/views/businessManager/orderManager/financeManager-taoqi.vue

@@ -1075,7 +1075,7 @@ export default {
             number: null,
           }
         ]
-        goodsQuery({ rows: 99999, organId: val }).then((res) => {
+        goodsQuery({ rows: 99999 }).then((res) => {
           if (res.code === 200) {
             this.shopList = res.data.rows;
           }

+ 1 - 1
src/views/businessManager/orderManager/financeManager.vue

@@ -1084,7 +1084,7 @@ export default {
             number: null,
           }
         ]
-        goodsQuery({ rows: 99999, organId: val }).then((res) => {
+        goodsQuery({ rows: 99999 }).then((res) => {
           if (res.code === 200) {
             this.shopList = res.data.rows;
           }

+ 2 - 2
src/views/businessManager/shopManager/shopList.vue

@@ -858,14 +858,14 @@
         </el-form-item>
         <!--  :disabled="pageDisabled || pageType == 'update'" -->
         <el-form-item
-          label="系统收费团可见分部"
+          label="会员收费团可见分部"
           prop="memberFeeShowOrganId"
           :label-width="formLabelWidth"
         >
           <select-all
             v-model.trim="form.memberFeeShowOrganId"
             filterable
-            placeholder="请选择系统收费团可见分部"
+            placeholder="请选择会员收费团可见分部"
             style="width: 400px !important"
             multiple
             clearable

+ 1 - 1
src/views/businessManager/shopManager/shopOperation.vue

@@ -228,7 +228,7 @@
             ></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item label="系统收费团可见分部" prop="memberFeeShowOrganId">
+        <el-form-item label="会员收费团可见分部" prop="memberFeeShowOrganId">
           <select-all
             v-model.trim="form.memberFeeShowOrganId"
             filterable

+ 3 - 1
src/views/resetTeaming/components/resetPayListSchool.vue

@@ -174,7 +174,8 @@
               </auth>
               <el-button
                 type="text"
-                v-if="teamStatus && scope.row.auditStatus === 'REJECT'"
+                v-if="teamStatus && (scope.row.auditStatus === 'REJECT' ||
+                      scope.row.auditStatus === 'DRAFT')"
                 v-permission="'musicGroupPaymentCalender/update/3883'"
                 @click="resetPay(scope.row)"
                 >修改</el-button
@@ -470,6 +471,7 @@ import {
   getMusicGroupStu,
   musicGroupPaymentCalenderDetailBatchAdd,
   musicGroupPaymentCalenderDelByBatchNo,
+  revokeMusicGroupPaymentCalender
 } from "../api";
 import setStudentFee from "./studentPayBase";
 import userPayForm from "../modals/user-pay-form";

+ 7 - 1
src/views/resetTeaming/modals/user-pay-form.vue

@@ -305,6 +305,7 @@ export default {
         paymentDate: [],
       },
       money: "",
+      isSetCourseSettingsId:false
     };
   },
   computed: {
@@ -406,7 +407,8 @@ export default {
     },
     async "form.musicGroupOrganizationCourseSettingId"(val) {
       // && !this.rowDetail
-      if (val) {
+
+      if (val&&!this.isSetCourseSettingsId) {
         try {
           const res = await queryByMusicGroupOrganizationCourseSettingsId({
             id: val,
@@ -418,6 +420,7 @@ export default {
           this.syncAllMoney();
         } catch (error) {}
       }
+      this.isSetCourseSettingsId = false
     },
     "payment.paymentPattern"() {
       this.syncAllMoney();
@@ -554,6 +557,9 @@ export default {
             this.$set(this.cycle, "paymentValid", arr);
           }
           this.studentIds = firstPayment.studentIds;
+          if(res.data.auditDto?.musicGroupOrganizationCourseSettingsId){
+            this.isSetCourseSettingsId = true
+          }
           this.$set(
             this.form,
             "musicGroupOrganizationCourseSettingId",

+ 4 - 2
src/views/returnVisitManager/returnVisitList.vue

@@ -13,7 +13,7 @@
       >
         <el-form-item>
           <el-input
-            placeholder="请输入老师姓名"
+            placeholder="老师、学生姓名、编号"
             v-model.trim="searchForm.search"
           ></el-input>
         </el-form-item>
@@ -222,6 +222,9 @@ export default {
       this.searchForm.search = this.$route.query.search;
       this.searchForm.timer = this.$route.query.timer;
     }
+    if(this.$route.query.typeList&&this.$route.query.typeList.length>0){
+       this.searchForm.typeList = this.$route.query.typeList
+    }
     this.getList();
   },
   activated() {
@@ -255,7 +258,6 @@ export default {
     getList() {
       // cleanDeep
       let { timer, typeList, ...rest } = this.searchForm;
-      console.log(typeList);
       let type,
         purpose = null;
       if (typeList.length > 0) {

+ 37 - 13
src/views/studentManager/memberList.vue

@@ -55,7 +55,7 @@
             <el-option label="即将过期" value="1"></el-option>
           </el-select>
         </el-form-item>
-                <el-form-item>
+        <el-form-item>
           <el-date-picker
             v-model.trim="searchForm.visitTime"
             style="width: 410px"
@@ -103,6 +103,11 @@
           ></el-table-column>
           <el-table-column
             align="center"
+            prop="phone"
+            label="手机号"
+          ></el-table-column>
+          <el-table-column
+            align="center"
             prop="organName"
             label="所属分部"
           ></el-table-column>
@@ -110,7 +115,16 @@
             align="center"
             prop="musicGroupName"
             label="所属乐团"
-          ></el-table-column>
+          >
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                @click="gotoMusic(scope.row.musicGroupName)"
+              >
+                {{ scope.row.musicGroupName }}
+              </el-button>
+            </template>
+          </el-table-column>
           <el-table-column align="center" prop="studentId" label="会员是否过期">
             <template slot-scope="scope">
               <div>
@@ -129,14 +143,10 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="memberDay"
-            label="回访日期"
-          >
+          <el-table-column align="center" prop="memberDay" label="回访日期">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.visitTime }}
+                {{ scope.row.visitTime | dayjsFormat }}
               </div>
             </template>
           </el-table-column>
@@ -149,6 +159,11 @@
                     >新增回访</el-button
                   >
                 </auth>
+                <auth :auths="'visit/queryPage'" v-if="scope.row.visitTime">
+                  <el-button type="text" @click="lookVisit(scope.row)"
+                    >查看回访</el-button
+                  >
+                </auth>
 
                 <auth :auths="'musicGroupQuit/directQuitMusicGroup4463'">
                   <el-button type="text" @click="quitTeam(scope.row)"
@@ -238,9 +253,9 @@ export default {
     return {
       searchForm: {
         search: null,
-        organId:null,
-        hasMember:null,
-        visitTime:[]
+        organId: null,
+        hasMember: null,
+        visitTime: [],
       },
 
       tableList: [{}],
@@ -286,11 +301,11 @@ export default {
     },
     async getList() {
       // 设置时间
-           let { visitTime, ...rest } = this.searchForm;
+      let { visitTime, ...rest } = this.searchForm;
       try {
         const res = await getMusicMemberList({
           ...rest,
-            ...getTimes(visitTime, ["visitStartTime", "visitEndTime"]),
+          ...getTimes(visitTime, ["visitStartTime", "visitEndTime"]),
           page: this.rules.page,
           rows: this.rules.limit,
         });
@@ -409,6 +424,15 @@ export default {
       this.visitVisible = true;
       this.activeRow = row;
     },
+    gotoMusic(str) {
+      this.$router.push({ path: "/teamList", query: { search: str } });
+    },
+    lookVisit(row) {
+      this.$router.push({
+        path: "/studentManager/returnVisitList",
+        query: { search: row.userId,typeList:['其它', '会员续费'] },
+      });
+    },
   },
   watch: {
     quitVisible(val) {

+ 92 - 59
src/views/studentManager/studentList.vue

@@ -151,53 +151,59 @@
           :data="tableList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         >
-          <el-table-column align="center" prop="userId" label="学员编号">
+          <el-table-column align="center" prop="organName" label="所属分部">
             <template slot-scope="scope">
-              <copy-text>{{ scope.row.userId }}</copy-text>
+              <copy-text>{{ scope.row.organName }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="username" label="学员姓名">
+          <el-table-column
+            align="center"
+            prop="userId"
+            label="学员信息"
+            width="140px"
+          >
             <template slot-scope="scope">
-              <copy-text>{{ scope.row.username }}</copy-text>
+              {{ scope.row.username }}
+              ({{ scope.row.gender ? "男" : "女" }})<br />
+              <copy-text>{{ scope.row.userId }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="organName" label="所属分部">
+          <!-- <el-table-column align="center" prop="username" label="学员姓名">
+            <template slot-scope="scope"> </template>
+          </el-table-column> -->
+          <el-table-column
+            align="center"
+            prop="realName"
+            label="家长信息"
+            width="140px"
+          >
             <template slot-scope="scope">
-              <copy-text>{{ scope.row.organName }}</copy-text>
+              {{ scope.row.realName }}
+              <br />
+              <copy-text>{{ scope.row.parentsPhone }}</copy-text>
             </template>
           </el-table-column>
           <el-table-column
             align="center"
-            prop="cooperationOrganName"
-            label="所属学校"
+            prop="subjectName"
+            label="声部"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="subjectName"
-            label="声部"
+            prop="cooperationOrganName"
+            label="所属学校"
           ></el-table-column>
+
           <el-table-column align="center" prop="teacherName" label="指导老师">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.teacherName }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="性别">
-            <template slot-scope="scope">{{
-              scope.row.gender ? "男" : "女"
-            }}</template>
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="realName"
-            label="家长姓名"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            width="120px"
-            prop="parentsPhone"
-            label="家长联系电话"
-          ></el-table-column>
-              <!-- <el-table-column
+          <!-- <el-table-column align="center" label="性别">
+            <template slot-scope="scope"></template>
+          </el-table-column> -->
+
+          <!-- <el-table-column
             align="center"
             prop="leaveNum"
             label="本月请假次数"
@@ -232,7 +238,7 @@
               scope.row.noStartPracticeCourseNum
             }}</template>
           </el-table-column>
-               <el-table-column align="center" label="vip课剩余课时">
+          <el-table-column align="center" label="vip课剩余课时">
             <template slot-scope="scope">{{
               scope.row.noStartVipCourseNum
             }}</template>
@@ -247,6 +253,21 @@
               scope.row.serviceTag ? "是" : "否"
             }}</template>
           </el-table-column>
+                   <el-table-column
+            align="center"
+            width="120px"
+            prop="parentsPhone"
+            label="会员截止日期"
+          >
+          <template slot-scope="scope">
+            <div v-if="scope.row.membershipEndTime" :class="checkDate(scope.row.membershipEndTime)?'':'red'">
+              {{scope.row.membershipEndTime|dayjsFormat}}
+            </div>
+            <div v-else class="red">
+               未购买会员
+            </div>
+          </template>
+          </el-table-column>
           <el-table-column align="center" label="是否是新用户">
             <template slot="header">
               <p style="position: relative">
@@ -277,23 +298,17 @@
               </div>
             </template>
           </el-table-column>
-                 <el-table-column
-            align="center"
-            prop="balance"
-            label="账户余额(元)"
-          >
+          <el-table-column align="center" prop="balance" label="账户余额(元)">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.balance | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="carePackage"
-            label="关心包"
-          >
-            <template slot-scope="scope">{{ scope.row.carePackage | studentPackage }}</template>
+          <el-table-column align="center" prop="carePackage" label="关心包">
+            <template slot-scope="scope">{{
+              scope.row.carePackage | studentPackage
+            }}</template>
           </el-table-column>
           <el-table-column align="center" prop="comeOnPackage" label="加油包">
             <template slot-scope="scope">{{
@@ -422,7 +437,10 @@
           </el-select>
         </el-form-item>
         <el-form-item label="家长姓名" prop="parseName">
-          <el-input v-model.trim="studentForm.parseName" :disabled="!isNew"></el-input>
+          <el-input
+            v-model.trim="studentForm.parseName"
+            :disabled="!isNew"
+          ></el-input>
         </el-form-item>
         <el-form-item
           label="联系电话"
@@ -447,7 +465,6 @@
             clearable
             placeholder="请选择分部"
             @change="changeStudentOrgan"
-
           >
             <el-option
               v-for="(item, index) in selects.branchs"
@@ -458,7 +475,13 @@
           </el-select>
         </el-form-item>
         <el-form-item prop="school" label="所属学校">
-          <el-select v-model.trim="studentForm.school" filterable clearable  :disabled='!studentForm.organId'   class="multiple">
+          <el-select
+            v-model.trim="studentForm.school"
+            filterable
+            clearable
+            :disabled="!studentForm.organId"
+            class="multiple"
+          >
             <el-option
               v-for="(item, index) in cooperationList"
               :key="index"
@@ -650,7 +673,9 @@
           <el-table-column align="center" prop="studentId" label="协议名称">
             <template slot-scope="scope">
               <!-- {{ formatProtocol(scope.row.version) }} -->
-              <span v-html="`产品与服务协议${formatProtocol(scope.row.version)}`"></span>
+              <span
+                v-html="`产品与服务协议${formatProtocol(scope.row.version)}`"
+              ></span>
             </template>
           </el-table-column>
           <el-table-column align="center" label="签署时间" prop="createTime">
@@ -742,7 +767,7 @@ export default {
         isNewUser: 1,
         carePackage: 0,
         comeOnPackage: 0,
-        school:null
+        school: null,
       },
       studentUpdatePackage: {
         carePackage: 0,
@@ -778,8 +803,8 @@ export default {
     };
   },
   mounted() {
-    if(this.$route.params.search){
-      this.searchForm.search = this.$route.params.search
+    if (this.$route.params.search) {
+      this.searchForm.search = this.$route.params.search;
     }
     this.$store.dispatch("setBranchs");
     this.$store.dispatch("setTeachers");
@@ -796,15 +821,15 @@ export default {
       this.qrcodeUrl = vaildStudentUrl() + `/#/queryStudentPer`;
     },
     formatProtocol(version) {
-        let str = '(含课程)'
-        if(version == 3) {
-            str = '(含系统)'
-        } else if(version == 4) {
-            str = '(含云教练)'
-        } else if(version == 5) {
-            str = '(含云教练<sup>+</sup>)'
-        }
-        return str
+      let str = "(含课程)";
+      if (version == 3) {
+        str = "(含系统)";
+      } else if (version == 4) {
+        str = "(含云教练)";
+      } else if (version == 5) {
+        str = "(含云教练<sup>+</sup>)";
+      }
+      return str;
     },
     getList() {
       let params = this.searchForm;
@@ -945,7 +970,7 @@ export default {
             subjectIdList: studentForm.subjectIdList,
             carePackage: studentForm.carePackage,
             comeOnPackage: studentForm.comeOnPackage,
-            cooperationOrganId:studentForm.school
+            cooperationOrganId: studentForm.school,
           };
           registerStudent(obj).then((res) => {
             if (res.code == 200) {
@@ -977,7 +1002,7 @@ export default {
             subjectIdList: studentForm.subjectIdList,
             carePackage: studentForm.carePackage,
             comeOnPackage: studentForm.comeOnPackage,
-              cooperationOrganId:studentForm.school
+            cooperationOrganId: studentForm.school,
           };
           updateStudent(obj).then((res) => {
             if (res.code == 200) {
@@ -1045,7 +1070,7 @@ export default {
           subjectIdList: Number(row.subjectIdList) || null,
           carePackage: row.carePackage,
           comeOnPackage: row.comeOnPackage,
-          school:row.cooperationOrganId
+          school: row.cooperationOrganId,
         };
         this.studentUpdatePackage = {
           carePackage: row.carePackage,
@@ -1095,7 +1120,7 @@ export default {
     },
     async changeStudentOrgan(val) {
       this.studentForm.teacherId = null;
-      this.studentForm.school=null;
+      this.studentForm.school = null;
       if (val) {
         await getTeacher({ organId: val }).then((res) => {
           if (res.code == 200) {
@@ -1124,6 +1149,11 @@ export default {
     onDownloadProtocol(item) {
       window.location.href = item.url;
     },
+    checkDate(dateStr){
+      let dayjs = this.$helpers.dayjs;
+      let nowDate = new Date().getTime()
+      return nowDate -  dayjs(dateStr).valueOf() <0
+    }
   },
 };
 </script>
@@ -1146,4 +1176,7 @@ export default {
     width: 185px !important;
   }
 }
+.red {
+  color: red;
+}
 </style>

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

@@ -379,7 +379,8 @@ export default {
       getSubjectGoods({
         subjectIds: val,
         chargeTypeId: this.topfor.type,
-        musicGroupId: this.teamid
+        musicGroupId: this.teamid,
+         courseViewType:this.topfor.courseViewType
       }).then((res) => {
         if (res.code == 200) {
           if (res.data) {

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

@@ -110,6 +110,7 @@
       :form="memberForm"
       :isUserType="isUserType"
       :organId="baseInfo.organId"
+      ref="memberForm"
     />
     <el-alert title="缴费设置" :closable="false" class="alert" type="info">
     </el-alert>
@@ -422,6 +423,7 @@ export default {
         refs.cycle,
         refs.payment,
         refs.other,
+        refs.memberForm,
         ...(refs.cycles || []),
       ]
         .filter((item) => !!item)

+ 3 - 1
src/views/teamDetail/components/studentList.vue

@@ -445,7 +445,7 @@
           ></el-input>
         </el-form-item>
         <el-form-item label="学员性别" prop="sex">
-          <el-select v-model.trim="maskForm.sex" clearable>
+          <el-select v-model.trim="maskForm.sex" clearable style="width:185px!important">
             <el-option label="男" :value="1"></el-option>
             <el-option label="女" :value="0"></el-option>
           </el-select>
@@ -463,6 +463,7 @@
             filterable
             clearable
             v-model.trim="maskForm.currentGradeNum"
+            style="width:185px!important"
           >
             <el-option
               v-for="item in gradeList"
@@ -496,6 +497,7 @@
             clearable
             filterable
             @change="onSoundChange"
+            style="width:185px!important"
           >
             <el-option
               v-for="(item, index) in soundList"

+ 2 - 2
vue.config.js

@@ -17,10 +17,10 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://192.168.3.139:8000' // 箭河
-let target = 'http://192.168.3.148:8000' //邹璇
+// let target = 'http://192.168.3.148:8000' //邹璇
 // let target = 'http://192.168.3.112:8000' //勇哥
 // let target = 'http://dev.dayaedu.com' // 开发环境
-// let target = 'https://test.dayaedu.com' //测试环境
+let target = 'https://test.dayaedu.com' //测试环境
 // let target = 'http://192.168.3.134' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {