lex hace 2 años
padre
commit
e389c665f9
Se han modificado 2 ficheros con 219 adiciones y 234 borrados
  1. 8 0
      src/views/courseCredentials/api.js
  2. 211 234
      src/views/courseCredentials/index.vue

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

@@ -0,0 +1,8 @@
+import request2 from "@/utils/request2";
+
+export const queryDetailPage = data =>
+  request2({
+    url: "/api-web/activityUserMapper/queryDetailPage",
+    data,
+    method: "post"
+  });

+ 211 - 234
src/views/courseCredentials/index.vue

@@ -1,182 +1,203 @@
 <template>
-  <div class="credentials">
-    <save-form
-      :inline="true"
-      :model="searchForm"
-      ref="searchForm"
-      @submit="search"
-      @reset="onReSet"
-    >
-      <el-form-item prop="organId">
-        <el-select
-          class="multiple"
-          filterable
-          v-model.trim="searchForm.organId"
-          clearable
-          placeholder="请选择分部"
-          @change="changeOrgan"
-        >
-          <el-option
-            v-for="(item, index) in selects.branchs"
-            :key="index"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item prop="cooperationId">
-        <el-select
-          v-model.trim="searchForm.cooperationId"
-          :disabled="!searchForm.organId"
-          filterable
-          clearable
-          placeholder="请选择合作单位"
-          @change="changeCooper"
-        >
-          <el-option
-            v-for="(item, index) in cooperationList"
-            :key="index"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item prop="musicGroupId">
-        <el-select
-          v-model.trim="searchForm.musicGroupId"
-          clearable
-          filterable
-          placeholder="请选择乐团"
-          :disabled="!searchForm.cooperationId"
-        >
-          <el-option
-            v-for="(item, index) in musicList"
-            :key="index"
-            :value="item.id"
-            :label="item.name"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button native-type="submit" type="primary">搜索</el-button>
-        <el-button native-type="reset" type="danger">重置</el-button>
-      </el-form-item>
-    </save-form>
-
-    <div class="tableWrap">
-      <el-table
-        style="width: 100%"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-        :data="tableList"
-        @selection-change="handleSelectionChange"
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      排课资格列表
+    </h2>
+    <div class="m-core">
+      <save-form
+        :inline="true"
+        :model="searchForm"
+        ref="searchForm"
+        @submit="search"
+        @reset="onReSet"
       >
-        <el-table-column
-          type="selection"
-          width="55"
-          v-permission="'childrenReserve/sendMsg'"
-        >
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="organName"
-          label="分部"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="cooperationOrganName"
-          label="合作单位"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="musicGroupName"
-          label="乐团名称"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="normalNum"
-          label="在读人数"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="reserveNum"
-          label="预约人数"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="instrumentalMusicNum"
-          label="器乐考级人次"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="musicTheoryNum"
-          label="乐理考级人次"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="buyVip1Num"
-          label="1v1VIP课购买人数"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="buyVip1Amount"
-          label="1v1VIP课成交金额"
-        >
-          <template slot-scope="scope">
-            <div>
-              {{ scope.row.buyVip1Amount | moneyFormat }}
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="buyVip2Num"
-          label="1v2VIP课购买人数"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="buyVip2Amount"
-          label="1v2VIP课成交金额"
-        >
-          <template slot-scope="scope">
-            <div>
-              {{ scope.row.buyVip2Amount | moneyFormat }}
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="buyMusicTheoryNum"
-          label="乐理课购买人数"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="buyMusicTheoryAmount"
-          label="乐理课成交金额"
+        <el-form-item prop="search">
+          <el-input
+            placeholder="活动编号/来源"
+            clearable
+            type="text"
+            v-model.trim="searchForm.search"
+          ></el-input>
+        </el-form-item>
+        <el-form-item prop="organId">
+          <el-select
+            class="multiple"
+            filterable
+            v-model.trim="searchForm.organId"
+            clearable
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="returnFee">
+          <el-select
+            class="multiple"
+            clearable
+            v-model.trim="searchForm.returnFee"
+            placeholder="是否退费"
+          >
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="0"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="hasSubCourse">
+          <el-select
+            class="multiple"
+            clearable
+            v-model.trim="searchForm.hasSubCourse"
+            placeholder="是否有剩余为排课"
+          >
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="0"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item>
+          <el-button native-type="submit" type="primary">搜索</el-button>
+          <el-button native-type="reset" type="danger">重置</el-button>
+        </el-form-item>
+      </save-form>
+
+      <div class="tableWrap">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
         >
-          <template slot-scope="scope">
-            <div>
-              {{ scope.row.buyMusicTheoryAmount | moneyFormat }}
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column align="center" prop="studentId" label="操作">
-          <template slot-scope="scope">
-            <div>
-              <el-button type="text" @click="gotoDetail(scope.row)"
-                >详情</el-button
+          <el-table-column
+            align="center"
+            prop="activityId"
+            label="活动编号"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="addMemo"
+            label="活动名称"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="organName"
+            label="分部"
+          ></el-table-column>
+          <el-table-column align="center" label="学员信息">
+            <template slot-scope="scope">
+              {{ scope.row.username }}
+              <copy-text>{{ scope.row.userId }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="teacherName"
+            label="指导老师"
+          ></el-table-column>
+
+          <el-table-column align="center" label="付费类型">
+            <template slot-scope="scope">
+              <span v-if="scope.row.vipFlag">
+                {{ scope.row.categoryName }}
+              </span>
+              <span v-if="scope.row.practiceFlag">
+                网管课
+              </span>
+              <span v-if="scope.row.memberFlag">云教练</span>
+
+              <span
+                v-if="
+                  !scope.row.vipFlag &&
+                    !scope.row.practiceFlag &&
+                    !scope.row.memberFlag
+                "
+                >--</span
               >
-            </div>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        sync
-        :total.sync="rules.total"
-        :page.sync="rules.page"
-        :limit.sync="rules.limit"
-        :page-sizes="rules.page_size"
-        @pagination="getList"
-      />
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="付费课资格">
+            <template slot-scope="scope">
+              <span v-if="scope.row.vipFlag || scope.row.practiceFlag">
+                <span v-if="!scope.row.memberFlag"
+                  >{{ scope.row.totalCourseNum - scope.row.subCourseNum }}/{{
+                    scope.row.totalCourseNum
+                  }}</span
+                >
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="赠送类型">
+            <template slot-scope="scope">
+              <span v-if="scope.row.giveVipFlag">
+                {{ scope.row.giveCategoryName }}
+              </span>
+              <span v-if="scope.row.givePracticeFlag">
+                网管课
+              </span>
+              <span v-if="scope.row.giveMemberFlag">云教练</span>
+
+              <span
+                v-if="
+                  !scope.row.giveVipFlag &&
+                    !scope.row.givePracticeFlag &&
+                    !scope.row.giveMemberFlag
+                "
+                >--</span
+              >
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="赠送课资格">
+            <template slot-scope="scope">
+              <span v-if="scope.row.giveVipFlag || scope.row.givePracticeFlag">
+                <span v-if="!scope.row.giveMemberFlag"
+                  >{{
+                    scope.row.totalGiveCourseNum - scope.row.subGiveCourseNum
+                  }}/{{ scope.row.totalGiveCourseNum }}</span
+                >
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="musicTheoryNum"
+            label="是否退费"
+          >
+            <template slot-scope="scope">
+              {{ scope.row.returnFee ? "是" : "否" }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="actualPrice"
+            label="支付金额"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="subNoCoursePrice"
+            label="剩余排课金额"
+          ></el-table-column>
+          <!-- <el-table-column align="center" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text" @click="gotoDetail(scope.row)"
+                  >详情</el-button
+                >
+              </div>
+            </template>
+          </el-table-column> -->
+        </el-table>
+        <pagination
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
+      </div>
     </div>
   </div>
 </template>
@@ -198,67 +219,46 @@
  -->
 
 <script>
-import qs from "qs";
 import pagination from "@/components/Pagination/index";
-import qrCode from "@/components/QrCode/index";
-import { vaildStudentUrl } from "@/utils/validate";
-import { Export } from "@/utils/downLoadFile";
-import load from "@/utils/loading";
-import { queryByOrganId, getSchool, getMusicGroup } from "@/api/systemManage";
-// import { getMusicGroupGradeList, sendMsgList } from "./api";
-import countTo from "vue-count-to";
+import { queryDetailPage } from "./api";
 export default {
   name: "credentials",
+  components: {
+    pagination
+  },
   data() {
     return {
       searchForm: {
         search: null,
         organId: null,
-        cooperationId: null,
-        musicGroupId: null
+        hasSubCourse: null,
+        returnFee: null
       },
-      codeStatus: false,
-      codeTitle: null,
-      qrCodeUrl: null,
       tableList: [],
-      cooperationList: [],
-      musicList: [],
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
-      },
-      statInfo: {
-        ...baseStatusInfo
-      },
-      chioseList: []
+      }
     };
   },
   mounted() {
     // 获取分部
     this.$store.dispatch("setBranchs");
-    this.init();
+    this.getList();
   },
   methods: {
-    init() {
-      this.getList();
-    },
     async getList() {
       try {
-        // const res = await getMusicGroupGradeList({
-        //   page: this.rules.page,
-        //   rows: this.rules.limit,
-        //   ...this.searchForm
-        // });
-        // this.tableList = res.data.rows;
-        // this.rules.total = res.data.total;
-        // if (res?.data?.statInfo) {
-        //   this.statInfo = { ...res.data.statInfo };
-        // } else {
-        //   this.statInfo = { ...baseStatusInfo };
-        // }
+        const res = await queryDetailPage({
+          page: this.rules.page,
+          rows: this.rules.limit,
+          ...this.searchForm
+        });
+        this.tableList = res.data.rows;
+        this.rules.total = res.data.total;
       } catch (e) {}
     },
     search() {
@@ -273,17 +273,6 @@ export default {
       this.$refs.searchForm.resetFields();
       this.search();
     },
-
-    changeOrgan(val) {
-      this.searchForm.cooperationId = null;
-      this.searchForm.musicGroupId = null;
-    },
-    changeCooper(val) {
-      this.searchForm.musicGroupId = null;
-    },
-    handleSelectionChange(val) {
-      this.chioseList = val;
-    },
     gotoDetail(row) {
       // query:{'musicGroupId':}
       this.$router.push({
@@ -295,18 +284,6 @@ export default {
           organId: row.organId
         }
       });
-    },
-    exportChildren() {
-      Export(
-        this,
-        {
-          url: "/api-web/export/statisticsDetail",
-          fileName: "21暑期考级.xls",
-          method: "post",
-          params: qs.stringify({ ...this.searchForm })
-        },
-        "您确定导出21暑期考级?"
-      );
     }
   }
 };