|
@@ -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 {
|