Browse Source

乐团会员列表

1
mo 3 years ago
parent
commit
4ee9c58d1f

+ 1 - 1
src/utils/searchArray.js

@@ -155,7 +155,7 @@ export const visitChiose = [
 export const visitChiose1 = [
   { value: '课程推荐', label: '课程推荐', children: [{ value: '新课推荐', label: '新课推荐' }, { value: '续费提醒', label: '续费提醒' }] },
   { value: '常规回访', label: '常规回访', children: [{ value: '课后及作业回访', label: '课后及作业回访' }, { value: '练习及乐团表现', label: '练习及乐团表现' },{ label:'考勤申诉',  value:'考勤申诉' }, { value: "异常请假回访", label: "异常请假回访" }] },
-  { value: '其它', label: '其它', children: [{ value: '其它', label: '其它' }] }
+  { value: '其它', label: '其它', children: [{ value: '其它', label: '其它' },{ value: '会员续费', label: '会员续费' }] }
 ]
 
 // 交易状态

+ 2 - 0
src/utils/utils.js

@@ -112,6 +112,8 @@ export const getCourseType=(type)=>{
   }
   return arr
 }
+
+// 保留2位小数的正整数 /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
 // 清除路由链接
 export const resetQuery=(that,obj)=>{
   that.$router.replace({query:{...that.$route.query,...obj}})

+ 15 - 15
src/views/categroyManager/productSystem/memberFeeSet.vue

@@ -257,8 +257,8 @@
             { required: true, message: '请输入月收费现价' },
             {
               pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
+                /^\d+$/,
+              message: '请输入≥0的正整数',
             },
           ]"
           :label-width="formLabelWidth"
@@ -272,10 +272,10 @@
           label="月收费原价"
           :rules="[
             { required: true, message: '请输入月收费原价' },
-            {
+             {
               pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
+                /^\d+$/,
+              message: '请输入≥0的正整数',
             },
           ]"
           :label-width="formLabelWidth"
@@ -291,8 +291,8 @@
             { required: true, message: '请输入半年收费现价' },
             {
               pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
+                /^\d+$/,
+              message: '请输入≥0的正整数',
             },
           ]"
           :label-width="formLabelWidth"
@@ -308,8 +308,8 @@
             { required: true, message: '请输入半年收费原价' },
             {
               pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
+                /^\d+$/,
+              message: '请输入≥0的正整数',
             },
           ]"
           :label-width="formLabelWidth"
@@ -323,10 +323,10 @@
           label="年收费现价"
           :rules="[
             { required: true, message: '请输入年收费现价' },
-            {
+             {
               pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
+                /^\d+$/,
+              message: '请输入≥0的正整数',
             },
           ]"
           :label-width="formLabelWidth"
@@ -340,10 +340,10 @@
           label="年收费原价"
           :rules="[
             { required: true, message: '请输入年收费原价' },
-            {
+             {
               pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
+                /^\d+$/,
+              message: '请输入≥0的正整数',
             },
           ]"
           :label-width="formLabelWidth"

+ 1 - 1
src/views/main/abnormal/title.vue

@@ -36,7 +36,7 @@ export default {
   data() {
     return {
       descs,
-      ignore: ["NO_CLASS_MUSIC_GROUP_STUDENT_INFO"], // // 忽略类型
+      ignore: ["NO_CLASS_MUSIC_GROUP_STUDENT_INFO","NO_MEMBER_STUDENT_INFO","MEMBER_STUDENT_INFO"], // // 忽略类型
     };
   },
   mounted() {},

+ 20 - 2
src/views/main/constant.js

@@ -48,7 +48,9 @@ export const descs = {
   COURSE_TIME_ERROR: '上课时间在00:00~06:00时间段内为时间安排异常',
   TOTAL_AMOUNT:'总收入:现金收入 + 余额收入',
   STUDENT_ERROR_LEAVE: '当月请假2次及以上',
-  STUDENT_ARREARAGE: '缴费项目中的学员未缴费'
+  STUDENT_ARREARAGE: '缴费项目中的学员未缴费',
+  NO_MEMBER_STUDENT_INFO:'进行中会员收费乐团中会员已过期在读学生数量',
+  MEMBER_STUDENT_INFO:"进行中会员收费乐团中会员有效期≤15天的在读学生数量"
 }
 
 const dates = {
@@ -90,7 +92,23 @@ export const errorType = {
       lessThenThreeHighOnline: '1',
     },
   },
-  NO_CLASS_MUSIC_GROUP_STUDENT_INFO: {
+  NO_MEMBER_STUDENT_INFO: {
+    name: '当前共有{0}个乐团共{1}名学员会员已过期',
+    isError: true,
+    url: '/studentManager/teamMemberList',
+    permission: '/teamMemberList',
+    always: true,
+    query: {hasMember:'0'}
+  },
+  MEMBER_STUDENT_INFO:{
+    name: '当前共有{0}个乐团共{1}名学员会员即将过期',
+    isError: true,
+    url: '/studentManager/teamMemberList',
+    permission: '/teamMemberList',
+    always: true,
+    query: {hasMember:'1'}
+  },
+  NO_CLASS_MUSIC_GROUP_STUDENT_INFO :{
     name: '当前有{0}个乐团共{1}名学员未加入任何班级',
     isError: true,
     url: '/main/notClassStudent',

+ 1 - 1
src/views/main/reminders/index.vue

@@ -38,7 +38,7 @@
         <title-item
           type="warning"
           :data="[
-            { name: item.desc, num: item.num, errorType: item.errorType },
+            { name: item.desc, num: item.num, errorType: item.errorType,  num2: item.num2, },
           ]"
         >
           <span

+ 1 - 1
src/views/main/studentLeaveList.vue

@@ -109,7 +109,7 @@
                 :username="detail.username"
                 @close="visitVisible = false"
                 @submited="getList"
-                :useVisitType="['常规回访','异常请假回访']"
+                :useVisitType="['其它','异常请假回访']"
             />
         </el-dialog>
     </div>

+ 8 - 0
src/views/studentManager/api.js

@@ -0,0 +1,8 @@
+import request2 from '@/utils/request2'
+
+// 获取首页数据
+export const getMusicMemberList = data => request2({
+  url: '/api-web/musicGroup/queryMusicMemberList',
+  params: data,
+  method: 'get',
+})

+ 86 - 44
src/views/studentManager/memberList.vue

@@ -17,16 +17,16 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="search"
-            placeholder="乐团名称、编号"
+            placeholder="乐团/学员名称、编号"
           ></el-input>
         </el-form-item>
-        <el-form-item>
+        <!-- <el-form-item>
           <el-input
             v-model.trim="searchForm.search"
             @keyup.enter.native="search"
             placeholder="学员姓名、编号"
           ></el-input>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item prop="organId">
           <el-select
             class="multiple"
@@ -44,18 +44,18 @@
           </el-select>
         </el-form-item>
 
-        <el-form-item prop="isActive">
+        <el-form-item prop="hasMember">
           <el-select
             class="multiple"
-            v-model.trim="searchForm.isActive"
+            v-model.trim="searchForm.hasMember"
             clearable
             placeholder="会员是否过期"
           >
-            <el-option label="是" value="true"></el-option>
-            <el-option label="否" value="false"></el-option>
+            <el-option label="已过期" value="0"></el-option>
+            <el-option label="即将过期" value="1"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="isActive">
+        <!-- <el-form-item prop="isActive">
           <el-select
             class="multiple"
             v-model.trim="searchForm.isActive"
@@ -65,7 +65,7 @@
             <el-option label="是" value="true"></el-option>
             <el-option label="否" value="false"></el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item>
           <el-button native-type="submit" type="primary">搜索</el-button>
           <el-button native-type="reset" type="danger">重置</el-button>
@@ -79,51 +79,55 @@
         >
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="userId"
             label="学员编号"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="username"
             label="学员姓名"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="organName"
             label="所属分部"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="musicGroupName"
             label="所属乐团"
           ></el-table-column>
+          <el-table-column align="center" prop="studentId" label="会员是否过期">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.memberDay > 0 ? "否" : "是" }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
-            label="会员是否过期"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
+            prop="memberDay"
             label="会员有效期剩余天数"
           ></el-table-column>
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
-                         <auth
-                :auths="'musicGroupQuit/directQuitMusicGroup4463'"
-              >
-                <el-button type="text" @click="quitTeam(scope.row)"
-                  >退团退费</el-button
-                >
-              </auth>
-              <auth
-                :auths="'musicGroupQuit/directQuitMusicGroup4462'"
-              >
-                <el-button type="text" @click="quieTeams(scope.row)"
-                  >退团</el-button
-                >
-              </auth>
+                <!-- addVisit -->
+                <auth :auths="'visit/add/4465'">
+                  <el-button type="text" @click="addVisit(scope.row)"
+                    >新增回访</el-button
+                  >
+                </auth>
+                <auth :auths="'musicGroupQuit/directQuitMusicGroup4463'">
+                  <el-button type="text" @click="quitTeam(scope.row)"
+                    >退团退费</el-button
+                  >
+                </auth>
+                <auth :auths="'musicGroupQuit/directQuitMusicGroup4462'">
+                  <el-button type="text" @click="quieTeams(scope.row)"
+                    >退团</el-button
+                  >
+                </auth>
               </div>
             </template>
           </el-table-column>
@@ -138,9 +142,9 @@
         />
       </div>
     </div>
-        <!-- 退团弹窗 -->
+    <!-- 退团弹窗 -->
     <el-dialog title="退团信息确认" width="640px" :visible.sync="quitVisible">
-      <quiteTeam :quitForm="quitForm" :activeRow="activeRow"  ref="quitForm"/>
+      <quiteTeam :quitForm="quitForm" :activeRow="activeRow" ref="quitForm" />
       <span slot="footer" class="dialog-footer question">
         <div>
           <el-popover placement="right" width="500" trigger="click">
@@ -167,6 +171,22 @@
         </div>
       </span>
     </el-dialog>
+    <!-- 新增回访 -->
+    <el-dialog
+      title="新增回访"
+      width="500px"
+      :visible.sync="visitVisible"
+      append-to-body
+    >
+      <visit
+        v-if="visitVisible && activeRow"
+        :detail="activeRow"
+        :username="activeRow.username"
+        @close="visitVisible = false"
+        @submited="getList"
+        :useVisitType="['其它', '会员续费']"
+      />
+    </el-dialog>
   </div>
 </template>
 
@@ -174,13 +194,13 @@
 import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
-import quiteTeam from "@/views/teamDetail/components/modals/quite-team"
-import {
-  StudentQuit,
-} from "@/api/buildTeam";
+import quiteTeam from "@/views/teamDetail/components/modals/quite-team";
+import { StudentQuit } from "@/api/buildTeam";
 import load from "@/utils/loading";
+import { getMusicMemberList } from "./api";
+import visit from "@/views/withdrawal-application/modals/visit";
 export default {
-  components: { pagination,quiteTeam },
+  components: { pagination, quiteTeam,visit },
   data() {
     return {
       searchForm: {
@@ -207,8 +227,9 @@ export default {
         maintenanceFee: 0,
         reason: "",
       },
-      quitVisible:false,
-      activeRow:null,
+      quitVisible: false,
+      activeRow: null,
+      visitVisible:false
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -220,8 +241,25 @@ export default {
     this.init();
   },
   methods: {
-    init() {},
-    getList() {},
+    init() {
+      if(this.$route.query.hasMember){
+        this.$set(this.searchForm,'hasMember',this.$route.query.hasMember)
+      }
+      this.getList();
+    },
+    async getList() {
+      try {
+        const res = await getMusicMemberList({
+          ...this.searchForm,
+          page: this.rules.page,
+          rows: this.rules.limit,
+        });
+        this.tableList = res.data.rows;
+        this.rules.total = res.data.total;
+      } catch (e) {
+        console.log(e);
+      }
+    },
     search() {
       this.rules.page = 1;
       this.getList();
@@ -323,6 +361,10 @@ export default {
 
       // row.typeVisible = false;
     },
+    addVisit(row) {
+      this.visitVisible = true;
+      this.activeRow = row;
+    },
   },
 };
 </script>

+ 9 - 2
src/views/withdrawal-application/modals/visit.vue

@@ -38,6 +38,7 @@
           style="width: 80% !important"
           placeholder="选择日期"
           value-format="yyyy-MM-dd"
+           :picker-options="pickerOptions"
         ></el-date-picker>
       </el-form-item>
       <el-form-item label="学员情况" prop="overview">
@@ -82,7 +83,7 @@
     </el-dialog>
 
     <el-dialog
-          v-if="workVisible"
+      v-if="workVisible"
       title="作业列表"
       width="1020px"
       :visible.sync="workVisible"
@@ -123,7 +124,13 @@ export default {
         visitType: [{ required: true, message: "请选择回访类型" }],
       },
       recordVisible:false,
-      workVisible:false
+      workVisible:false,
+        pickerOptions: {
+        firstDayOfWeek: 1,
+        disabledDate(time) {
+          return time.getTime() > new Date().getTime();
+        },
+      },
     };
   },
   mounted(){