Kaynağa Gözat

提交测试

1
mo 3 yıl önce
ebeveyn
işleme
efeede9c2e

+ 9 - 0
src/views/teamBuild/api.js

@@ -63,6 +63,15 @@ export const getRegisterOrPreList = data => request2({
   requestType: 'json'
 })
 
+// 解除预约限制 studentRegistration/setNoneCloudTeacher
+export const setNoneCloudTeacher = data => request2({
+  url: '/api-web/studentRegistration/setNoneCloudTeacher',
+  params: data,
+  method: 'get',
+  requestType: 'json'
+})
+
+
 // 意向列表
 export const queryPreApplySubjectList = data => request2({
   url: '/api-web/studentRegistration/queryPreApplySubjectList',

+ 34 - 19
src/views/teamBuild/components/newForecast-list.vue

@@ -28,6 +28,7 @@
           :data="tableList"
           @sort-change="changePayTime"
         >
+          <!--    :default-sort="{prop: 'perRegisterTime', order: 'payTime'}" -->
           <el-table-column align="center" prop="userId" label="学员编号">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.userId }}</copy-text>
@@ -42,7 +43,7 @@
           </el-table-column>
           <el-table-column
             align="center"
-            prop="isAllowAdjust"
+            prop="perRegisterTime"
             label="预报名时间"
             sortable="custom"
           >
@@ -55,18 +56,18 @@
           </el-table-column>
           <el-table-column align="center" label="预报名时间差">
             <template slot-scope="scope">
-              {{formatterTimes(scope.row.perRegInterval)  }}
+              {{ formatterTimes(scope.row.perRegInterval) }}
             </template>
           </el-table-column>
           <el-table-column
             align="center"
             label="缴费时间"
             sortable="custom"
-            prop="cloudTeacherMethod"
+            prop="payTime"
           >
             <template slot-scope="scope">
               <div>
-                <p>{{scope.row.payTime | formatTimer }}</p>
+                <p>{{ scope.row.payTime | formatTimer }}</p>
                 <p>{{ scope.row.payTime | formatSecondTimer }}</p>
               </div>
             </template>
@@ -77,7 +78,7 @@
             label="缴费时间差"
           >
             <template slot-scope="scope">
-              {{  formatterTimes(scope.row.payInterval) }}
+              {{ formatterTimes(scope.row.payInterval) }}
             </template>
           </el-table-column>
         </el-table>
@@ -97,7 +98,7 @@
 <script>
 import pagination from "@/components/Pagination/index";
 import { getRegisterOrPreList } from "../api";
-import moment from 'moment'
+import moment from "moment";
 export default {
   name: "forecastName",
   components: { pagination },
@@ -107,6 +108,8 @@ export default {
       musicGroupId: query.id,
       searchForm: {
         search: null,
+        orderByPayTime: null,
+        orderByPerRegister: null,
       },
       tableList: [],
       pageInfo: {
@@ -119,6 +122,8 @@ export default {
     };
   },
   mounted() {
+    this.searchForm.orderByPerRegister = null;
+    this.searchForm.orderByPayTime = null;
     this.$store.dispatch("setSubjects");
     this.getList();
   },
@@ -144,21 +149,31 @@ export default {
       } catch (error) {}
     },
     changePayTime(row) {
-      console.log(row);
+      // console.log(row);
+      this.searchForm.orderByPerRegister = null;
+      this.searchForm.orderByPayTime = null;
+      let obj = {
+        perRegisterTime: "orderByPerRegister",
+        payTime: "orderByPayTime",
+        ascending: "ASC",
+        descending: "DESC",
+      };
+      this.searchForm[obj[row.prop]] = obj[row.order];
+      this.search();
     },
-    formatterTimes(second){
-      if(second<60){
-        return second+'秒'
-      }else if(60<second&&second<3600){
-        return moment(second*1000).format('mm分钟');
-      }else if(3600<second&&second<86400){
-         return moment(second*1000).format('HH小时mm分钟');
-      }else if (second > 86400){
-         return moment(second*1000).format('DD天HH小时');
-      }else{
-        return '--'
+    formatterTimes(second) {
+      if (second < 60) {
+        return second + "秒";
+      } else if (60 < second && second < 3600) {
+        return moment(second * 1000).format("mm分钟");
+      } else if (3600 < second && second < 86400) {
+        return moment(second * 1000).format("HH小时mm分钟");
+      } else if (second > 86400) {
+        return moment(second * 1000).format("DD天HH小时");
+      } else {
+        return "--";
       }
-    }
+    },
   },
 };
 </script>

+ 65 - 9
src/views/teamBuild/signupList.vue

@@ -152,7 +152,10 @@
         :visible.sync="newForecastVisible"
         width="1100px"
       >
-        <newForecastList v-if="newForecastVisible" @close="newForecastVisible = false" />
+        <newForecastList
+          v-if="newForecastVisible"
+          @close="newForecastVisible = false"
+        />
       </el-dialog>
       <el-dialog
         title="预报名名单"
@@ -256,17 +259,17 @@
             <el-option label="否" :value="0"></el-option>
           </el-select>
         </el-form-item>
-        <!-- <el-form-item>
+        <el-form-item>
           <el-select
-            v-model.trim="searchFrom.payingStatus"
+            v-model.trim="searchFrom.noneNeedCloudTeacher"
             clearable
             filterable
-            placeholder="交易状态"
+            placeholder="是否解除限制"
           >
-            <el-option label="审核中" :value="2"></el-option>
-            <el-option label="缴费中" :value="1"></el-option>
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="0"></el-option>
           </el-select>
-        </el-form-item> -->
+        </el-form-item>
         <!-- 专业actualSubjectId 调剂isAllowAdjust 手机号name -->
         <el-form-item>
           <el-button type="danger" native-type="search">搜索</el-button>
@@ -442,6 +445,30 @@
               </div>
             </template>
           </el-table-column>
+          <el-table-column
+            label="解除限制"
+            fixed="right"
+            prop="noneNeedCloudTeacher"
+            align="center"
+          >
+            <template slot="header">
+              <p style="position: relative; display: flex">
+                解除限制
+                <el-tooltip placement="top" popper-class="mTooltip">
+                  <div slot="content">学员是否受到不购买云教练的缴费限制</div>
+                  <i
+                    class="el-icon-question"
+                    style="font-size: 18px; color: #f56c6c"
+                  ></i>
+                </el-tooltip>
+              </p>
+            </template>
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.noneNeedCloudTeacher == 1 ? "是" : "否" }}
+              </div>
+            </template>
+          </el-table-column>
 
           <el-table-column
             label="操作"
@@ -522,6 +549,15 @@
                     >更改声部</el-button
                   >
                 </auth>
+                <!--  -->
+                <auth
+                  v-show="scope.row.payingStatus == 2"
+                  :auths="'studentRegistration/setNoneCloudTeacher'"
+                >
+                  <el-button type="text" @click="relieve(scope.row)"
+                    >解除预约限制</el-button
+                  >
+                </auth>
               </div>
             </template>
           </el-table-column>
@@ -897,6 +933,8 @@ import {
   getMusicGroupGradeList,
   checkCanReg,
 } from "@/api/buildTeam";
+
+import { setNoneCloudTeacher } from "./api";
 import mergeMusic from "./components/merge-music";
 import forecastList from "./components/forecast-list";
 import newForecastList from "./components/newForecast-list";
@@ -922,13 +960,13 @@ export default {
     mergeMusic,
     forecastList,
     visit,
-    newForecastList
+    newForecastList,
   },
   data() {
     return {
       multipleSelection: [], //
       forecastVisible: false, // 预报名状态
-      newForecastVisible:false,
+      newForecastVisible: false,
       isEdit: false,
       rowDetail: null,
       mergeVisible: false,
@@ -947,6 +985,7 @@ export default {
         visited: "",
         hasCloudTeacher: null, // 是否购买云教练
         payingStatus: null,
+        noneNeedCloudTeacher: null,
       },
       quitForm: {
         // 退团信息确认
@@ -1142,6 +1181,7 @@ export default {
         visited: null,
         hasCloudTeacher: null,
         payingStatus: null,
+        noneNeedCloudTeacher: null,
       };
       this.getList();
     },
@@ -1169,6 +1209,7 @@ export default {
         visited: this.searchFrom.visited || null,
         hasCloudTeacher: this.searchFrom.hasCloudTeacher,
         payingStatus: this.searchFrom.payingStatus,
+        noneNeedCloudTeacher: this.searchFrom.noneNeedCloudTeacher,
         page: this.rules.page,
         rows: this.rules.limit,
       };
@@ -1730,6 +1771,21 @@ export default {
     checkboxSelect(row) {
       return row.paymentStatus == 0;
     },
+    relieve(row) {
+      this.$confirm("操作后该学员即可不购买云教练缴费入团", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(async () => {
+        try {
+          const res = await setNoneCloudTeacher({ id: row.id });
+          this.$message.success("解除预约成功");
+          this.getList();
+        } catch (e) {
+          console.log(e);
+        }
+      });
+    },
   },
   watch: {
     "quitForm.isMaintenanceFee"(val) {