Explorar o código

活动排课

1
mo %!s(int64=3) %!d(string=hai) anos
pai
achega
96102e3366

+ 25 - 0
src/api/vipSeting.js

@@ -225,6 +225,31 @@ export function getVipGroupCostCount(data) {
   })
 }
 
+// 计算网管课课酬
+export function getPracticeGroupCostCount(data) {
+  return request({
+    url: api + '/practiceGroupManage/getPracticeGroupCostCount',
+    method: 'POST',
+    data: data
+  })
+}
+// 网管课申请
+export function createPractice(data) {
+  return request({
+    url: api + '/practiceGroupManage/practiceGroupApply',
+    method: 'POST',
+    data
+  })
+}
+
+// 获取网管课单价 practiceGroupManage/queryPracticeGroupSellPrice
+export function getPracticeGroupSellPrice(data) {
+  return request({
+    url: api + '/practiceGroupManage/queryPracticeGroupSellPrice',
+    method: 'GET',
+    params:data
+  })
+}
 // vip课申请
 export function createVip(data) {
   return request({

+ 3 - 0
src/layout/components/TagsView.vue

@@ -90,6 +90,9 @@ export default {
         document.body.removeEventListener("click", this.closeMenu);
       }
     },
+   async '$route.meta.title'(val){
+       await this.$store.dispatch("addVisitedViews", this.$route);
+    }
   },
   mounted() {
     this.addViewTags();

+ 38 - 11
src/views/accompanyManager/accompanyList.vue

@@ -8,7 +8,7 @@
         class="newBand"
         v-permission="'export/practiceGroup'"
         @click="onStudentExport"
-        style="width: 150px; max-width:150px"
+        style="width: 150px; max-width: 150px"
       >
         续费提醒导出
       </div>
@@ -20,6 +20,14 @@
       >
         网管课导出
       </div>
+      <div
+        class="newBand"
+        v-permission="'/buildVip'"
+        @click="newPractice"
+        style="width: 120px"
+      >
+        新建网管课
+      </div>
     </div>
     <div class="m-core">
       <save-form
@@ -265,7 +273,10 @@
             <template slot-scope="scope">
               <div>
                 <!-- v-permission="'courseSchedule/classStartDateAdjust'"  v-if="!scope.row.isSettlement" -->
-                <el-button type="text" @click="lookCrouse(scope.row)"   v-if="permission('/accompanys')"
+                <el-button
+                  type="text"
+                  @click="lookCrouse(scope.row)"
+                  v-if="permission('/accompanys')"
                   >查看</el-button
                 >
                 <el-button
@@ -288,7 +299,7 @@
           </el-table-column>
         </el-table>
         <pagination
-         save-key="accompanyList"
+          save-key="accompanyList"
           sync
           :total.sync="rules.total"
           :page.sync="rules.page"
@@ -340,6 +351,7 @@
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
+
 import { permission } from "@/utils/directivePage";
 import cleanDeep from "clean-deep";
 import { commGroupStatus, practiceGroupType } from "@/utils/searchArray";
@@ -392,9 +404,9 @@ export default {
     };
   },
   mounted() {
-           const { query } = this.$route;
-      if(query.search){
-      this.searchForm.search = query.search
+    const { query } = this.$route;
+    if (query.search) {
+      this.searchForm.search = query.search;
     }
     this.init();
   },
@@ -470,7 +482,7 @@ export default {
                 } else {
                   let objectUrl = URL.createObjectURL(blob);
                   let link = document.createElement("a");
-                  let fname = "网管课续费提醒" + new Date().getTime() + '.xls'; //下载文件的名字
+                  let fname = "网管课续费提醒" + new Date().getTime() + ".xls"; //下载文件的名字
                   link.href = objectUrl;
                   link.setAttribute("download", fname);
                   document.body.appendChild(link);
@@ -532,7 +544,7 @@ export default {
                 } else {
                   let objectUrl = URL.createObjectURL(blob);
                   let link = document.createElement("a");
-                  let fname = "网管课" + new Date().getTime() + '.xls'; //下载文件的名字
+                  let fname = "网管课" + new Date().getTime() + ".xls"; //下载文件的名字
                   link.href = objectUrl;
                   link.setAttribute("download", fname);
                   document.body.appendChild(link);
@@ -569,11 +581,20 @@ export default {
       });
     },
     lookCrouse(row) {
-    let coursesStartDate = this.$helpers.dayjs(row.coursesStartDate).format('YYYY-MM-DD')
-    let coursesExpireDate = this.$helpers.dayjs(row.coursesExpireDate).format('YYYY-MM-DD')
+      let coursesStartDate = this.$helpers
+        .dayjs(row.coursesStartDate)
+        .format("YYYY-MM-DD");
+      let coursesExpireDate = this.$helpers
+        .dayjs(row.coursesExpireDate)
+        .format("YYYY-MM-DD");
       this.$router.push({
         path: "/business/accompanys",
-        query: { id: row.id, type: row.type,coursesStartDate,coursesExpireDate },
+        query: {
+          id: row.id,
+          type: row.type,
+          coursesStartDate,
+          coursesExpireDate,
+        },
       });
     },
     closeCrouse(row) {
@@ -620,6 +641,12 @@ export default {
         }
       });
     },
+    newPractice() {
+      this.$router.push({
+        path: "/business/buildVip",
+        query:{courseType:'PRACTICE'}
+      });
+    },
   },
   watch: {
     closeVisible(val) {

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 482 - 255
src/views/buildVip/index.vue


+ 8 - 9
src/views/categroyManager/modals/baseInfo.vue

@@ -20,7 +20,7 @@
           <el-input
             style="width: 400px"
             v-model.trim="baseForm.name"
-            :disabled="isDisabled"
+            :disabled="isDisabled || status != 'DRAFT'"
           ></el-input>
         </el-form-item>
         <!--   @visible-change="$forceUpdate()" -->
@@ -32,7 +32,7 @@
             filterable
             @change="onOrganChange"
             clearable
-            :disabled="isDisabled"
+            :disabled="isDisabled || status != 'DRAFT'"
           >
             <el-option
               v-for="(item, index) in selects.branchs"
@@ -50,7 +50,7 @@
             style="width: 400px"
             :rows="5"
             placeholder="请输入活动说明"
-            :disabled="isDisabled"
+            :disabled="isDisabled || status != 'DRAFT'"
           ></el-input>
         </el-form-item>
         <el-form-item label="活动类型" prop="activityType">
@@ -60,7 +60,7 @@
             clearable
             style="width: 400px !important"
             @change="changeActivityType"
-            :disabled="isDisabled"
+            :disabled="isDisabled || status != 'DRAFT'"
           >
             <el-option label="课程活动" :value="0"></el-option>
             <el-option label="会员活动" :value="1"></el-option>
@@ -69,7 +69,7 @@
 
         <el-form-item label="活动生效时间" prop="activeTime">
           <el-date-picker
-          :disabled="isDisabled"
+            :disabled="isDisabled"
             v-model.trim="baseForm.activeTime"
             type="datetimerange"
             :default-time="['00:00:00', '23:59:59']"
@@ -93,7 +93,7 @@
         </el-form-item>
         <el-form-item label="排课时间范围" prop="courseTime">
           <el-date-picker
-          :disabled="isDisabled"
+            :disabled="isDisabled"
             v-model.trim="baseForm.courseTime"
             type="datetimerange"
             :default-time="['00:00:00', '23:59:59']"
@@ -170,7 +170,7 @@
             placeholder="请选择是否充值课程余额"
             clearable
             style="width: 400px !important"
-            :disabled="isDisabled"
+            :disabled="isDisabled  || status !=  'DRAFT'"
           >
             <el-option label="课程余额" :value="1"></el-option>
             <el-option label="资格限制" :value="0"></el-option>
@@ -198,7 +198,7 @@ import { vipResetTypeList } from "@/utils/searchArray";
 import cleanDeep from "clean-deep";
 
 export default {
-  props: ["baseForm","isDisabled",'status'],
+  props: ["baseForm", "isDisabled", "status"],
   name: "vipNewActive",
   data() {
     return {
@@ -523,7 +523,6 @@ export default {
     },
     applyToStudentTypeChange() {
       this.$refs.vipform.validateField("applyToStudentType");
-      console.log(this.baseForm.applyToStudentType);
       this.$forceUpdate();
     },
     onCheckAllBranch() {

+ 32 - 20
src/views/categroyManager/vipNewActive.vue

@@ -21,8 +21,8 @@
         v-if="active == 1"
         ref="baseForm"
         @resetPayInfo="resetPayInfo"
-        :isDisabled='isDisabled'
-        :status='statuss'
+        :isDisabled="isDisabled"
+        :status="statuss"
       />
       <payInfo
         :payForm="payForm"
@@ -33,14 +33,15 @@
         @chageSalary="chageSalary"
         v-if="active == 2"
         :remberList="remberList"
-        :isDisabled='isDisabled'
+        :isDisabled="isDisabled || statuss != 'DRAFT'"
       />
       <salaryInfo
         :salaryForm="salaryForm"
         v-if="active == 3"
         :activeType="baseForm.activityType"
         :payForm="payForm"
-        :isDisabled='isDisabled'
+        :isDisabled="isDisabled || statuss != 'DRAFT'"
+        :status="statuss"
       />
     </div>
     <el-button
@@ -58,16 +59,27 @@
       >下一步</el-button
     >
 
-    <el-button style="margin-top: 12px" type="danger" @click="save" v-if="!isDisabled"
+    <el-button
+      style="margin-top: 12px"
+      type="danger"
+      @click="save"
+      v-if="!isDisabled && statuss == 'DRAFT'"
       >保存草稿</el-button
     >
     <el-button
       style="margin-top: 12px"
       type="danger"
       @click="submit"
-      v-if="active == 3&&!isDisabled"
+      v-if="active == 3 && !isDisabled && statuss == 'DRAFT'"
       >创建活动</el-button
     >
+    <el-button
+      style="margin-top: 12px"
+      type="danger"
+      @click="submit"
+      v-if="active == 3 && !isDisabled && statuss != 'DRAFT'"
+      >提交修改</el-button
+    >
   </div>
 </template>
 
@@ -140,7 +152,7 @@ export default {
   },
   data() {
     return {
-      status: "",
+      status: "DRAFT",
       active: 1,
       baseForm: {
         name: "",
@@ -177,16 +189,16 @@ export default {
   },
   methods: {
     onCancel() {
-      if (this.active > 1) {
-        this.active--;
-        console.log(this.active);
-      } else {
+      // if (this.active > 1) {
+      //   this.active--;
+      //   console.log(this.active);
+      // } else {
         this.$store.dispatch("delVisitedViews", this.$route);
         this.$router.push({
           path: "/vipActiveManager/vipActiveList",
           query: { rules: this.rules, searchForm: this.searchForm },
         });
-      }
+      // }
     },
     next() {
       let flags = true;
@@ -313,7 +325,7 @@ export default {
                 }),
               });
             } else {
-              this.$message.success("活动创建成功");
+              this.$message.success("活动修改成功");
               this.$store.dispatch("delVisitedViews", this.$route);
               this.$router.push({
                 path: "/vipActiveManager/vipActiveList",
@@ -429,15 +441,15 @@ export default {
   },
   computed: {
     isDisabled() {
-      if(this.$route.query.type == 'look'){
-        return true
-      }else{
-        return false
+      if (this.$route.query.type == "look") {
+        return true;
+      } else {
+        return false;
       }
     },
-    statuss(){
-      return this.status
-    }
+    statuss() {
+      return this.status;
+    },
   },
 };
 </script>

+ 0 - 2
src/views/vipClass/vipList.vue

@@ -508,8 +508,6 @@ export default {
       scope._self.$refs[scope.$index].doClose();
     },
     gotoBuildVip() {
-      let rules = JSON.stringify(this.rules);
-      let searchForm = JSON.stringify(this.searchForm);
       this.$router.push({
         path: "/business/buildVip",
       });

+ 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.124:8000' //邹璇
+let target = 'http://192.168.3.124: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:8000' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio