mo 4 rokov pred
rodič
commit
02689a6565
1 zmenil súbory, kde vykonal 224 pridanie a 168 odobranie
  1. 224 168
      src/views/categroyManager/vipActiveList.vue

+ 224 - 168
src/views/categroyManager/vipActiveList.vue

@@ -6,11 +6,19 @@
     </h2>
 
     <div class="m-core">
-      <el-button type="primary" style="margin-bottom: 20px" v-permission="'/vipNewActive'" @click="gotoNewActive">新建</el-button>
-      <save-form :inline="true"
-               class="searchForm"
-               ref='searchForm'
-               :model="searchForm">
+      <div
+        class="newBand"
+        v-permission="'/vipNewActive'"
+        @click="gotoNewActive"
+      >
+        新建
+      </div>
+      <el-form
+        :inline="true"
+        class="searchForm"
+        ref="searchForm"
+        :model="searchForm"
+      >
         <el-form-item prop="search">
           <el-input
             v-model.trim="searchForm.search"
@@ -18,16 +26,20 @@
           ></el-input>
         </el-form-item>
         <el-form-item prop="organId">
-          <el-select class="multiple"
-                     filterable
-                     style="width:180px!important"
-                     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
+            class="multiple"
+            filterable
+            style="width: 180px !important"
+            v-model.trim="searchForm.organId"
+            clearable
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item, index) in organList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="enable">
@@ -44,39 +56,44 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button @click="search"
-                     type="primary">搜索</el-button>
+          <el-button @click="search" type="danger">搜索</el-button>
         </el-form-item>
         <el-form-item>
-          <el-button type='danger'
-                     @click="onReset">重置</el-button>
+          <el-button type="primary" @click="onReset">重置</el-button>
         </el-form-item>
-      </save-form>
+      </el-form>
       <div class="tableWrap">
-        <el-table :data="tableList"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align="center"
-                           prop="id"
-                           label="活动编号"></el-table-column>
-          <el-table-column align="center"
-                           prop="name"
-                           label="活动名称">
-            <template slot-scope="scope">
-              <tooltip :content="scope.row.name"></tooltip>
-            </template>
-          </el-table-column>
-          <el-table-column align="center"
-                           prop="vipGroupCategoryNames"
-                           label="适用课程形式"></el-table-column>
-          <el-table-column align="center"
-                           prop="type"
-                           :formatter="fommatterType"
-                           label="活动类型"></el-table-column>
-          <el-table-column align="center"
-                           label="适用课时类型"
-                           :formatter="fommatterCourseType"></el-table-column>
-          <el-table-column align="center"
-                           label="结算标准">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column
+            align="center"
+            prop="id"
+            label="活动编号"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="name"
+            label="活动名称"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="vipGroupCategoryNames"
+            label="适用课程形式"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="type"
+            :formatter="fommatterType"
+            label="活动类型"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="适用课时类型"
+            :formatter="fommatterCourseType"
+          ></el-table-column>
+          <el-table-column align="center" label="结算标准">
             <template slot-scope="scope">
               <div>
                 <p>{{ scope.row.salarySettlementJson | onlinePip }}</p>
@@ -117,15 +134,35 @@
           <el-table-column align="center" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text"
-                           v-permission="'vipGroupActivity/update'"
-                           @click="reset(scope.row)">修改</el-button>
-                <el-popconfirm
-                  title="确定删除?"
-                  @confirm="remove(scope)"
+                <!--   v-if="scope.row.enable > 0" -->
+                <el-button
+                  type="text"
+                  v-permission="'vipGroupActivity/update'"
+                  @click="reset(scope.row)"
+                  >修改</el-button
+                >
+                <!-- <el-button type='text'
+                @click="remove(scope.row)">删除</el-button>-->
+                <el-popover
+                  placement="top"
+                  width="160"
+                  v-permission="'vipGroupActivity/delete'"
+                  :ref="scope.$index"
                 >
+                  <p>确定删除?</p>
+                  <div style="text-align: right; margin: 0">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      @click="scope._self.$refs[scope.$index].doClose()"
+                      >取消</el-button
+                    >
+                    <el-button type="primary" size="mini" @click="remove(scope)"
+                      >确定</el-button
+                    >
+                  </div>
                   <el-button type="text" slot="reference">删除</el-button>
-                </el-popconfirm>
+                </el-popover>
               </div>
             </template>
           </el-table-column>
@@ -140,99 +177,99 @@
         />
       </div>
     </div>
-    <el-dialog title="修改VIP活动"
-               width="650px"
-               :before-close="closeVipForm"
-               :visible.sync="dialogVisible">
+    <el-dialog
+      title="活动详情"
+      width="60%"
+      :before-close="closeVipform"
+      :visible.sync="dialogVisible"
+    >
       <div>
-        <el-form :label-position="labelPosition"
-                 :model="resetForm"
-                 ref="vipform"
-                 :rules="resetFormRules"
-                 class="vipform">
-          <el-form-item label="活动名称"
-                        label-width="120px"
-                        prop="name">
-            <el-input disabled
-                      v-model.trim="resetForm.name"></el-input>
+        <el-form
+          :label-position="labelPosition"
+          :model="resetForm"
+          ref="vipform"
+          :rules="resetFormRules"
+          class="vipform"
+        >
+          <el-form-item label="活动名称" prop="name">
+            <el-input
+              style="width: 400px"
+              v-model.trim="resetForm.name"
+            ></el-input>
           </el-form-item>
-          <el-form-item label="适用分部"
-                        label-width="120px"
-                        prop="organ">
-            <el-select v-model.trim="resetForm.organ"
-                       filterable
-                       multiple
-                       disabled
-                       clearable>
-              <el-option v-for="(item,index) in selects.branchs"
-                         :key="index"
-                         :label="item.name"
-                         :value="item.id"></el-option>
+          <el-form-item label="适用分部" prop="organ">
+            <el-select
+              v-model.trim="resetForm.organ"
+              filterable
+              disabled
+              multiple
+              clearable
+            >
+              <el-option
+                v-for="(item, index) in organList"
+                :key="index"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
             </el-select>
             <!-- <el-button @click="onCheckAllBranch">适用所有分部</el-button> -->
           </el-form-item>
-          <el-form-item label="课程形式"
-                        prop="stauts"
-                        label-width="120px">
-            <el-select v-model.trim="resetForm.stauts"
-                       filterable
-                       clearable
-                       disabled
-                       multiple>
-              <el-option v-for="(item,index) in selects.vipGroupCategory"
-                         :key="index"
-                         :value="item.id"
-                         :label="item.name"></el-option>
+          <el-form-item label="课程形式" prop="stauts">
+            <el-select
+              v-model.trim="resetForm.stauts"
+              filterable
+              clearable
+              multiple
+              disabled
+            >
+              <el-option
+                v-for="(item, index) in courseStatusList"
+                :key="index"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="活动描述"
-                        prop="desc"
-                        label-width="120px">
-            <el-input type="textarea"
-                      v-model.trim="resetForm.desc"
-                      :rows="5"
-                      disabled
-                      placeholder="请输入活动说明"></el-input>
+          <el-form-item label="活动描述" prop="desc">
+            <el-input
+              type="textarea"
+              v-model.trim="resetForm.desc"
+              style="width: 400px"
+              :rows="5"
+              placeholder="请输入活动说明"
+            ></el-input>
           </el-form-item>
-          <el-form-item label="活动时间"
-                        prop="activeTime"
-                        label-width="120px">
-            <el-date-picker v-model.trim="resetForm.activeTime"
-                            style="width: 100%"
-                            type="datetimerange"
-                            range-separator="至"
-                            value-format="yyyy-MM-dd HH:mm:ss"
-                            :picker-options="{
-                              firstDayOfWeek:1
-                            }"
-                            start-placeholder="开始日期"
-                            end-placeholder="结束日期"></el-date-picker>
+          <el-form-item label="活动时间" prop="activeTime">
+            <el-date-picker
+              v-model.trim="resetForm.activeTime"
+              type="datetimerange"
+              range-separator="至"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              :picker-options="{
+                firstDayOfWeek: 1,
+              }"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            ></el-date-picker>
           </el-form-item>
-          <el-form-item label="课程时间"
-                        prop="courseTime"
-                        label-width="120px">
-            <el-date-picker v-model.trim="resetForm.courseTime"
-                            style="width: 100%"
-                            type="datetimerange"
-                            :picker-options="{
-                              firstDayOfWeek:1
-                            }"
-                            range-separator="至"
-                            value-format="yyyy-MM-dd HH:mm:ss"
-                            start-placeholder="开始日期"
-                            end-placeholder="结束日期"></el-date-picker>
+          <el-form-item label="课程时间" prop="courseTime">
+            <el-date-picker
+              v-model.trim="resetForm.courseTime"
+              type="datetimerange"
+              :picker-options="{
+                firstDayOfWeek: 1,
+              }"
+              range-separator="至"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            ></el-date-picker>
           </el-form-item>
         </el-form>
-        <el-alert
-          title="活动适用范围"
-          type="info"
-          :closable="false"
-          class="alert">
-        </el-alert>
         <div class="activeRange">
-          <!-- <div class="left">
+          <div class="left">
             <p>活动适用范围&结算标准:</p>
-          </div> -->
+          </div>
           <div class="right">
             <div class="chioseWrap">
               <el-checkbox label="线上课" v-model.trim="online"></el-checkbox>
@@ -325,17 +362,10 @@
             </div>
           </div>
         </div>
-        <el-alert
-          title="活动类型"
-          type="info"
-          :closable="false"
-          style="margin-bottom: 15px;"
-          class="alert">
-        </el-alert>
         <div class="activeType">
-          <!-- <div class="left">
-            <p style="width:60px;">活动类型</p>
-          </div> -->
+          <div class="left">
+            <p style="width: 60px">活动类型</p>
+          </div>
           <div class="right">
             <div>
               <div
@@ -411,10 +441,9 @@ import {
   removeVipActive,
 } from "@/api/vipSeting";
 import { getEmployeeOrgan } from "@/api/buildTeam";
-import Tooltip from '@/components/Tooltip'
 export default {
   name: "vipActiveList",
-  components: { pagination,Tooltip },
+  components: { pagination },
   data() {
     return {
       labelPosition: "right",
@@ -487,15 +516,13 @@ export default {
       isReset: false,
     };
   },
-  // created () {
-  //   this.init();
-  // },
-  // activated () {
-  //   this.init();
-  // },
-  mounted () {
+  created() {
     this.init();
   },
+  activated() {
+    this.init();
+  },
+  mounted() {},
   filters: {
     onlinePip(val) {
       let obj = JSON.parse(val);
@@ -610,17 +637,35 @@ export default {
     },
   },
   methods: {
-    async init () {
-      // 获取类型
-      await this.$store.dispatch('setVipGroupCategory')
-      // 获取分部
-      await this.$store.dispatch('setBranchs')
+    init() {
+      if (this.$route.query.searchForm) {
+        this.$route.query.searchForm instanceof Object
+          ? (this.searchForm = this.$route.query.searchForm)
+          : (this.searchForm = JSON.parse(this.$route.query.searchForm));
+      }
+      if (this.$route.query.rules) {
+        this.$route.query.rules instanceof Object
+          ? (this.rules = this.$route.query.rules)
+          : (this.rules = JSON.parse(this.$route.query.rules));
+      }
+      getEmployeeOrgan().then((res) => {
+        if (res.code == 200) {
+          this.organList = res.data;
+        }
+      });
       this.getList();
       // 首先获取课程形式
+      // 获取分部id
+      vipGroupCategory().then((res) => {
+        if (res.code == 200) {
+          this.courseStatusList = res.data;
+        }
+      });
     },
     loadNumber(event) {
       var el = event.currentTarget;
       var elValue = el.value;
+      console.log(elValue);
       var reg = /^((?!0)\d{1,2}|100)$/;
       if (!elValue.match(reg)) {
         elValue = "";
@@ -629,7 +674,8 @@ export default {
         return true;
       }
     },
-    onCheckAllBranch () {
+
+    onCheckAllBranch() {
       // 适用所有分部
       this.resetForm.organ = [];
       this.organList.forEach((item) => {
@@ -638,13 +684,16 @@ export default {
     },
     search() {
       this.rules.page = 1;
-      this.$refs.searchForm.validate(valid => {
-        this.getList()
-      })
+      this.getList();
     },
-    onReset () {
-      this.$refs.searchForm.resetFields()
-      this.search()
+    onReset() {
+      // this.searchForm = {
+      //   enable: null,
+      //   search: null,
+      //   organId: null,
+      // }
+      this.$refs["searchForm"].resetFields();
+      this.search();
     },
     getList() {
       let enable = this.searchForm.enable;
@@ -741,9 +790,10 @@ export default {
         this.resetForm.courseTime = [row.coursesStartTime, row.coursesEndTime];
       }
       // 同步适用范围
-      let obj = row.salarySettlementJson ? JSON.parse(row.salarySettlementJson) : {};
+      let obj = JSON.parse(row.salarySettlementJson);
       // 同步线上课状态
       obj.onlineSalarySettlement ? (this.online = true) : (this.online = false);
+      console.log(obj.onlineSalarySettlement);
       if (obj.onlineSalarySettlement) {
         this.onlineSalary = obj.salarySettlementType;
         if (obj.onlineSalarySettlement.settlementValue) {
@@ -901,9 +951,9 @@ export default {
         }
       });
     },
-    async remove (scope) {
+    remove(scope) {
       let id = scope.row.id;
-      await removeVipActive({ id }).then(res => {
+      removeVipActive({ id }).then((res) => {
         if (res.code == 200) {
           this.$message.success("恭喜您删除成功");
           this.getList();
@@ -913,11 +963,14 @@ export default {
     },
     gotoNewActive() {
       // 带参数 searchForm: { organId: null } 搜索条件
+      let rules = JSON.stringify(this.rules);
+      let searchForm = JSON.stringify(this.searchForm);
       this.$router.push({
-        path: "/vipClassSet/vipNewActive?type=create"
+        path: "/vipClassSet/vipNewActive?type=create",
+        query: { rules, searchForm },
       });
     },
-    closeVipForm () {
+    closeVipform() {
       this.$refs["vipform"].resetFields();
       this.dialogVisible = false;
     },
@@ -1001,7 +1054,10 @@ export default {
 }
 .vipform {
   .el-select {
-    width: 100% !important;
+    width: 400px !important;
+    .el-input__inner {
+      width: 400px;
+    }
   }
 }
 .ishidden {