|
@@ -10,18 +10,21 @@
|
|
<div class="m-core">
|
|
<div class="m-core">
|
|
<el-form
|
|
<el-form
|
|
:label-position="labelPosition"
|
|
:label-position="labelPosition"
|
|
- :model="vipform"
|
|
|
|
|
|
+ :model="baseForm"
|
|
ref="vipform"
|
|
ref="vipform"
|
|
label-width="120px"
|
|
label-width="120px"
|
|
:rules="vipformRules"
|
|
:rules="vipformRules"
|
|
class="vipform"
|
|
class="vipform"
|
|
>
|
|
>
|
|
<el-form-item label="活动名称" prop="name">
|
|
<el-form-item label="活动名称" prop="name">
|
|
- <el-input style="width: 400px" v-model.trim="vipform.name"></el-input>
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ style="width: 400px"
|
|
|
|
+ v-model.trim="baseForm.name"
|
|
|
|
+ ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="适用分部" prop="organ">
|
|
<el-form-item label="适用分部" prop="organ">
|
|
<select-all
|
|
<select-all
|
|
- v-model.trim="vipform.organ"
|
|
|
|
|
|
+ v-model.trim="baseForm.organ"
|
|
style="width: 400px"
|
|
style="width: 400px"
|
|
multiple
|
|
multiple
|
|
filterable
|
|
filterable
|
|
@@ -41,48 +44,26 @@
|
|
<el-form-item label="活动描述" prop="desc">
|
|
<el-form-item label="活动描述" prop="desc">
|
|
<el-input
|
|
<el-input
|
|
type="textarea"
|
|
type="textarea"
|
|
- v-model.trim="vipform.desc"
|
|
|
|
|
|
+ v-model.trim="baseForm.desc"
|
|
style="width: 400px"
|
|
style="width: 400px"
|
|
:rows="5"
|
|
:rows="5"
|
|
placeholder="请输入活动说明"
|
|
placeholder="请输入活动说明"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
-<!--
|
|
|
|
- <el-form-item label="课程形式" prop="stauts">
|
|
|
|
- <select-all
|
|
|
|
- v-model.trim="vipform.stauts"
|
|
|
|
- style="width: 400px"
|
|
|
|
- @visible-change="$forceUpdate()"
|
|
|
|
- clearable
|
|
|
|
- multiple
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in selects.vipGroupCategory"
|
|
|
|
- :key="item.id"
|
|
|
|
- :value="item.id"
|
|
|
|
- :label="item.name"
|
|
|
|
- ></el-option>
|
|
|
|
- </select-all>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="课程调整方式" prop="allowOnlineToOffline">
|
|
|
|
|
|
+ <el-form-item label="活动类型" prop="activeType">
|
|
<el-select
|
|
<el-select
|
|
- v-model.trim="vipform.allowOnlineToOffline"
|
|
|
|
- placeholder="请选择课程调整方式"
|
|
|
|
|
|
+ v-model.trim="baseForm.activeType"
|
|
|
|
+ placeholder="请选择活动类型"
|
|
clearable
|
|
clearable
|
|
>
|
|
>
|
|
- <el-option
|
|
|
|
- :label="item.label"
|
|
|
|
- :value="item.value"
|
|
|
|
- v-for="item in vipResetTypeList"
|
|
|
|
- :key="item.value"
|
|
|
|
- ></el-option>
|
|
|
|
|
|
+ <el-option label="课程活动" :value="0"></el-option>
|
|
|
|
+ <el-option label="会员活动" :value="1"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item> -->
|
|
|
|
-
|
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
<el-form-item label="活动生效时间" prop="activeTime">
|
|
<el-form-item label="活动生效时间" prop="activeTime">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
- v-model.trim="vipform.activeTime"
|
|
|
|
|
|
+ v-model.trim="baseForm.activeTime"
|
|
type="datetimerange"
|
|
type="datetimerange"
|
|
:default-time="['00:00:00', '23:59:59']"
|
|
:default-time="['00:00:00', '23:59:59']"
|
|
range-separator="至"
|
|
range-separator="至"
|
|
@@ -96,7 +77,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="排课时间范围" prop="courseTime">
|
|
<el-form-item label="排课时间范围" prop="courseTime">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
- v-model.trim="vipform.courseTime"
|
|
|
|
|
|
+ v-model.trim="baseForm.courseTime"
|
|
type="datetimerange"
|
|
type="datetimerange"
|
|
:default-time="['00:00:00', '23:59:59']"
|
|
:default-time="['00:00:00', '23:59:59']"
|
|
range-separator="至"
|
|
range-separator="至"
|
|
@@ -108,261 +89,41 @@
|
|
end-placeholder="结束日期"
|
|
end-placeholder="结束日期"
|
|
></el-date-picker>
|
|
></el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="适用学员" prop="applyToStudentType">
|
|
|
|
- <el-select
|
|
|
|
- v-model.trim="vipform.applyToStudentType"
|
|
|
|
- placeholder="请选择适用学员"
|
|
|
|
|
|
+ <el-form-item label="适用学员" prop="applyToStudentType">
|
|
|
|
+ <select-all
|
|
|
|
+ v-model.trim="baseForm.applyToStudentType"
|
|
|
|
+ style="width: 400px"
|
|
|
|
+ multiple
|
|
|
|
+ filterable
|
|
clearable
|
|
clearable
|
|
|
|
+ placeholder='请选择适用学员'
|
|
>
|
|
>
|
|
<el-option label="新学员" :value="1"></el-option>
|
|
<el-option label="新学员" :value="1"></el-option>
|
|
<el-option label="老学员" :value="0"></el-option>
|
|
<el-option label="老学员" :value="0"></el-option>
|
|
<el-option label="所有学员" :value="-1"></el-option>
|
|
<el-option label="所有学员" :value="-1"></el-option>
|
|
|
|
+ </select-all>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="可购买次数" prop="studentMaxUsedTimes">
|
|
|
|
+ <el-input
|
|
|
|
+ style="width: 400px"
|
|
|
|
+ type="number"
|
|
|
|
+ v-model.trim="baseForm.studentMaxUsedTimes"
|
|
|
|
+ >
|
|
|
|
+ <template slot="append">次</template>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="是否充值课程余额" prop="applyToStudentType">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model.trim="baseForm.applyToStudentType"
|
|
|
|
+ placeholder="请选择是否充值课程余额"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="是" :value="1"></el-option>
|
|
|
|
+ <el-option label="否" :value="0"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
- <!-- <el-alert
|
|
|
|
- title="活动适用范围&结算标准:"
|
|
|
|
- type="info"
|
|
|
|
- :closable="false"
|
|
|
|
- class="alert"
|
|
|
|
- >
|
|
|
|
- </el-alert> -->
|
|
|
|
- <!-- <div class="activeRange" style="padding-left: 120px">
|
|
|
|
- <div class="right">
|
|
|
|
- <div class="chioseWrap">
|
|
|
|
- <el-checkbox label="线上课" v-model.trim="online"></el-checkbox>
|
|
|
|
- <el-select
|
|
|
|
- v-model.trim="onlineSalary"
|
|
|
|
- disabled
|
|
|
|
- clearable
|
|
|
|
- filterable
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- label="老师默认课酬"
|
|
|
|
- value="TEACHER_DEFAULT"
|
|
|
|
- ></el-option>
|
|
|
|
- <el-option
|
|
|
|
- label="实际课程单价比例折扣"
|
|
|
|
- value="RATIO_DISCOUNT"
|
|
|
|
- ></el-option>
|
|
|
|
- <el-option label="固定课酬" value="FIXED_SALARY"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- <el-input
|
|
|
|
- placeholder="请输入"
|
|
|
|
- v-if="onlineSalary == 'RATIO_DISCOUNT'"
|
|
|
|
- style="width: 200px"
|
|
|
|
- type="number"
|
|
|
|
- @mousewheel.native.prevent
|
|
|
|
- v-model.trim="onlineprice"
|
|
|
|
- >
|
|
|
|
- <template slot="append">%</template>
|
|
|
|
- </el-input>
|
|
|
|
- <el-input
|
|
|
|
- placeholder="请输入"
|
|
|
|
- v-if="onlineSalary == 'FIXED_SALARY'"
|
|
|
|
- style="width: 200px"
|
|
|
|
- type="number"
|
|
|
|
- @mousewheel.native.prevent
|
|
|
|
- v-model.trim="onlineprice"
|
|
|
|
- >
|
|
|
|
- <template slot="append">元</template>
|
|
|
|
- </el-input>
|
|
|
|
- <div
|
|
|
|
- style="width: 200px"
|
|
|
|
- v-if="onlineSalary == 'TEACHER_DEFAULT'"
|
|
|
|
- ></div>
|
|
|
|
- </div>
|
|
|
|
- <div class="chioseWrap">
|
|
|
|
- <el-checkbox label="线下课" v-model.trim="unonline"></el-checkbox>
|
|
|
|
- <el-select
|
|
|
|
- v-model.trim="unonlineSalary"
|
|
|
|
- clearable
|
|
|
|
- disabled
|
|
|
|
- filterable
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- label="老师默认课酬"
|
|
|
|
- value="TEACHER_DEFAULT"
|
|
|
|
- ></el-option>
|
|
|
|
- <el-option
|
|
|
|
- label="实际课程单价比例折扣"
|
|
|
|
- value="RATIO_DISCOUNT"
|
|
|
|
- ></el-option>
|
|
|
|
- <el-option label="固定课酬" value="FIXED_SALARY"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- <el-input
|
|
|
|
- placeholder="请输入"
|
|
|
|
- v-if="unonlineSalary == 'RATIO_DISCOUNT'"
|
|
|
|
- style="width: 200px"
|
|
|
|
- type="number"
|
|
|
|
- @mousewheel.native.prevent
|
|
|
|
- v-model.trim="unonlineprice"
|
|
|
|
- >
|
|
|
|
- <template slot="append">%</template>
|
|
|
|
- </el-input>
|
|
|
|
- <el-input
|
|
|
|
- placeholder="请输入"
|
|
|
|
- style="width: 200px"
|
|
|
|
- v-if="unonlineSalary == 'FIXED_SALARY'"
|
|
|
|
- type="number"
|
|
|
|
- @mousewheel.native.prevent
|
|
|
|
- v-model.trim="unonlineprice"
|
|
|
|
- >
|
|
|
|
- <template slot="append">元</template>
|
|
|
|
- </el-input>
|
|
|
|
- <div
|
|
|
|
- style="width: 200px"
|
|
|
|
- v-if="unonlineSalary == 'TEACHER_DEFAULT'"
|
|
|
|
- ></div>
|
|
|
|
-
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- </div>
|
|
|
|
- </div> -->
|
|
|
|
- <!-- <el-alert
|
|
|
|
- title="活动类型:"
|
|
|
|
- type="info"
|
|
|
|
- style="margin-bottom: 15px"
|
|
|
|
- :closable="false"
|
|
|
|
- class="alert"
|
|
|
|
- >
|
|
|
|
- </el-alert> -->
|
|
|
|
- <!-- <div class="activeType">
|
|
|
|
-
|
|
|
|
- <div class="right">
|
|
|
|
- <div>
|
|
|
|
- <div
|
|
|
|
- class="head"
|
|
|
|
- :class="activeType == 'BASE_ACTIVITY' ? 'active' : ''"
|
|
|
|
- @click="
|
|
|
|
- () => {
|
|
|
|
- this.$refs['form'].resetFields();
|
|
|
|
- activeType = 'BASE_ACTIVITY';
|
|
|
|
- courseNumForm = {
|
|
|
|
- minCourseNum: '',
|
|
|
|
- maxCourseNum: '',
|
|
|
|
- studentMaxUsedTimes: '',
|
|
|
|
- };
|
|
|
|
- attribute1 = '';
|
|
|
|
- attribute2 = '';
|
|
|
|
- }
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- 基础活动
|
|
|
|
- </div>
|
|
|
|
- <p class="title" v-if="activeType == 'BASE_ACTIVITY'">课程原价</p>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <div
|
|
|
|
- class="head"
|
|
|
|
- :class="activeType == 'DISCOUNT' ? 'active' : ''"
|
|
|
|
- @click="activeType = 'DISCOUNT'"
|
|
|
|
- >
|
|
|
|
- 折扣
|
|
|
|
- </div>
|
|
|
|
- <el-input
|
|
|
|
- v-if="activeType == 'DISCOUNT'"
|
|
|
|
- v-model.trim="attribute1"
|
|
|
|
- style="width: 200px !important"
|
|
|
|
- placeholder="请输入折扣数值"
|
|
|
|
- >
|
|
|
|
- <template slot="append">%</template>
|
|
|
|
- </el-input>
|
|
|
|
- <el-form
|
|
|
|
- :model="courseNumForm"
|
|
|
|
- :inline="true"
|
|
|
|
- ref="form"
|
|
|
|
- v-show="activeType == 'DISCOUNT'"
|
|
|
|
- :rules="activeType == 'DISCOUNT' ? courseNumrules : {}"
|
|
|
|
- >
|
|
|
|
- <el-form-item prop="minCourseNum">
|
|
|
|
- <el-input
|
|
|
|
- @change="handleMinChange"
|
|
|
|
- v-model.number="courseNumForm.minCourseNum"
|
|
|
|
- type="number"
|
|
|
|
- style="margin-left: 10px; width: 120px !important"
|
|
|
|
- placeholder="最小课时数"
|
|
|
|
- >
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="maxCourseNum">
|
|
|
|
- <el-input
|
|
|
|
- @change="handleMaxChange"
|
|
|
|
- v-model.number="courseNumForm.maxCourseNum"
|
|
|
|
- type="number"
|
|
|
|
- style="margin-left: 10px; width: 120px !important"
|
|
|
|
- placeholder="最大课时数"
|
|
|
|
- >
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-input
|
|
|
|
- v-model.number="courseNumForm.studentMaxUsedTimes"
|
|
|
|
- type="number"
|
|
|
|
- style="margin-left: 10px; width: 120px !important"
|
|
|
|
- placeholder="学员购买次数"
|
|
|
|
- >
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <div
|
|
|
|
- class="head"
|
|
|
|
- :class="activeType == 'GIVE_CLASS' ? 'active' : ''"
|
|
|
|
- @click="
|
|
|
|
- () => {
|
|
|
|
- this.$refs['form'].resetFields();
|
|
|
|
- activeType = 'GIVE_CLASS';
|
|
|
|
- courseNumForm.minCourseNum = '';
|
|
|
|
- courseNumForm.maxCourseNum = '';
|
|
|
|
- attribute1 = '';
|
|
|
|
- attribute2 = '';
|
|
|
|
- }
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- 赠送课时
|
|
|
|
- </div>
|
|
|
|
- <el-input
|
|
|
|
- placeholder="多少节开始赠"
|
|
|
|
- v-if="activeType == 'GIVE_CLASS'"
|
|
|
|
- v-model.trim="attribute1"
|
|
|
|
- type="number"
|
|
|
|
- @mousewheel.native.prevent
|
|
|
|
- style="margin-right: 10px; width: 200px !important"
|
|
|
|
- >
|
|
|
|
- <template slot="append">节</template>
|
|
|
|
- </el-input>
|
|
|
|
- <span v-if="activeType == 'GIVE_CLASS'">赠</span>
|
|
|
|
- <el-input
|
|
|
|
- v-if="activeType == 'GIVE_CLASS'"
|
|
|
|
- placeholder="请输入赠送课时数"
|
|
|
|
- type="number"
|
|
|
|
- @mousewheel.native.prevent
|
|
|
|
- v-model.trim="attribute2"
|
|
|
|
- style="margin: 0 10px; width: 200px !important"
|
|
|
|
- >
|
|
|
|
- <template slot="append">节</template>
|
|
|
|
- </el-input>
|
|
|
|
- <el-input
|
|
|
|
- v-show="activeType == 'GIVE_CLASS'"
|
|
|
|
- v-model.number="courseNumForm.studentMaxUsedTimes"
|
|
|
|
- type="number"
|
|
|
|
- style="margin-left: 10px; width: 120px !important"
|
|
|
|
- placeholder="学员购买次数"
|
|
|
|
- >
|
|
|
|
- </el-input>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
</div>
|
|
</div>
|
|
- <div
|
|
|
|
- class="btnWrap"
|
|
|
|
- style="justify-content: flex-start; padding-left: 120px"
|
|
|
|
- >
|
|
|
|
- <el-button type="primary" @click="submitFrom">确定</el-button>
|
|
|
|
- <el-button type="info" @click="onReSet">重置</el-button>
|
|
|
|
- </div> -->
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
@@ -373,19 +134,13 @@ import cleanDeep from "clean-deep";
|
|
const MIN_NUMBER = 1;
|
|
const MIN_NUMBER = 1;
|
|
const MAX_NUMBER = 999;
|
|
const MAX_NUMBER = 999;
|
|
export default {
|
|
export default {
|
|
|
|
+ props: ["baseForm"],
|
|
name: "vipNewActive",
|
|
name: "vipNewActive",
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
vipResetTypeList,
|
|
vipResetTypeList,
|
|
pageType: "",
|
|
pageType: "",
|
|
labelPosition: "right",
|
|
labelPosition: "right",
|
|
- vipform: {
|
|
|
|
- name: "",
|
|
|
|
- desc: "",
|
|
|
|
- activeTime: [],
|
|
|
|
- courseTime: [],
|
|
|
|
- organ: [],
|
|
|
|
- },
|
|
|
|
vipformRules: {
|
|
vipformRules: {
|
|
name: [
|
|
name: [
|
|
{ required: true, message: "请输入活动名称", trigger: "blur" },
|
|
{ required: true, message: "请输入活动名称", trigger: "blur" },
|
|
@@ -405,12 +160,16 @@ export default {
|
|
trigger: "blur",
|
|
trigger: "blur",
|
|
},
|
|
},
|
|
],
|
|
],
|
|
- activeTime: [
|
|
|
|
- { required: false, message: "请选择活动时间", trigger: "blur" },
|
|
|
|
|
|
+ activeType: [
|
|
|
|
+ { required: false, message: "请选择活动类型", trigger: "blur" },
|
|
],
|
|
],
|
|
|
|
+ // activeTime: [
|
|
|
|
+ // { required: false, message: "请选择活动时间", trigger: "blur" },
|
|
|
|
+ // ],
|
|
courseTime: [
|
|
courseTime: [
|
|
{ required: false, message: "请选择课程时间", trigger: "blur" },
|
|
{ required: false, message: "请选择课程时间", trigger: "blur" },
|
|
],
|
|
],
|
|
|
|
+ studentMaxUsedTimes:[{ required: true, message: "请输入购买次数", trigger: "blur" }],
|
|
organ: [{ required: true, message: "请选择适用分部", trigger: "blur" }],
|
|
organ: [{ required: true, message: "请选择适用分部", trigger: "blur" }],
|
|
stauts: [
|
|
stauts: [
|
|
{ required: true, message: "请选择活动形式", trigger: "blur" },
|
|
{ required: true, message: "请选择活动形式", trigger: "blur" },
|