|
@@ -18,13 +18,14 @@
|
|
|
@close="cancel"
|
|
|
>
|
|
|
<div class="dialog">
|
|
|
- <el-form :model="form" ref="form" :rules="rules" label-width="120px">
|
|
|
+ <el-form :model="form" ref="form" :rules="rules" label-width="140px">
|
|
|
<el-form-item label="票务名称:" prop="goodsId">
|
|
|
<el-select
|
|
|
v-model="form.goodsId"
|
|
|
placeholder="票务名称"
|
|
|
clearable
|
|
|
style="width: 350px"
|
|
|
+ @change="selectGoodsId"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="dict in goodsPageListS"
|
|
@@ -45,14 +46,14 @@
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="dict in seatTypeListS"
|
|
|
- :key="dict.id"
|
|
|
- :value="dict.id"
|
|
|
- :label="dict.name"
|
|
|
+ :key="dict.seatTypeId"
|
|
|
+ :value="dict.seatTypeId"
|
|
|
+ :label="dict.seatTypeName"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="日期范围:" prop="performDate">
|
|
|
+ <el-form-item label="日期范围:" v-if="!['group'].includes(channelType)" prop="performDate">
|
|
|
<el-date-picker
|
|
|
v-model="form.performDate"
|
|
|
type="daterange"
|
|
@@ -62,7 +63,7 @@
|
|
|
end-placeholder="结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="星期:" prop="weekType">
|
|
|
+ <el-form-item label="星期:" v-if="!['group'].includes(channelType)" prop="weekType">
|
|
|
<div>
|
|
|
<el-button
|
|
|
@click="selectWeekType()"
|
|
@@ -75,11 +76,36 @@
|
|
|
</div>
|
|
|
<div style="font-size: 12px;">指定在选定区间内的周几价格进行调整,列如区间选择2018-01-01至2018-01-20,星期选择星期一,则这个区间内的星期一价格都进行调整</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="划线价:" prop="originalAmount">
|
|
|
- <el-input v-model="form.originalAmount" style="width: 350px"></el-input>
|
|
|
+ <div v-if="['group'].includes(channelType)">
|
|
|
+ <el-form-item label="成团要求:" prop="touristLimit">
|
|
|
+ <el-radio-group v-model="form.touristLimit" @input="selectTouristLimit">
|
|
|
+ <el-radio :label="0">不限</el-radio>
|
|
|
+ <el-radio :label="1">限制最低人数</el-radio>
|
|
|
+ <el-radio :label="2">限制人数范围</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="form.touristLimit == 1 || form.touristLimit == 2" label="游客限制最小值:" prop="touristMin">
|
|
|
+ <el-input-number v-model="form.touristMin" :step="1" :precision="0" style="width: 350px"></el-input-number>
|
|
|
+ 人
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="form.touristLimit == 2" label="游客限制最大值:" prop="touristMax">
|
|
|
+ <el-input-number v-model="form.touristMax" :step="1" :precision="0" style="width: 350px"></el-input-number>
|
|
|
+ 人
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <el-form-item v-if="!['window','group'].includes(channelType)" label="划线价:" prop="originalAmount">
|
|
|
+ <el-input-number v-model="form.originalAmount" :step="1" :precision="0" style="width: 350px"></el-input-number>
|
|
|
+ 元
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="setSaleAmounttile()" prop="saleAmount">
|
|
|
+ <el-input-number v-model="form.saleAmount" :step="1" :precision="0" style="width: 350px"></el-input-number>
|
|
|
+ {{ !['group'].includes(channelType) ? '元':'元/人' }}
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="销售价:" prop="saleAmount">
|
|
|
- <el-input v-model="form.saleAmount" style="width: 350px"></el-input>
|
|
|
+ <el-form-item v-if="channelType == 'retail'" label="佣金:" prop="retailAmount">
|
|
|
+ <el-input-number v-model="form.retailAmount" :step="1" :precision="0" style="width: 350px"></el-input-number>
|
|
|
+ 元
|
|
|
</el-form-item>
|
|
|
<el-form-item label="备注:" prop="remark">
|
|
|
<el-input v-model="form.remark" type="textarea" maxlength="50" show-word-limit></el-input>
|
|
@@ -106,10 +132,14 @@
|
|
|
<script>
|
|
|
import { saveAndEdit } from "@/api/priceConfiguration/index";
|
|
|
import { pageList as goodsPageListApi } from '@/api/ticketMr/ticketMr'
|
|
|
-import { pageList as seatTypeListApi } from '@/api/seatTypeMr/seatTypeMr'
|
|
|
import moment from "moment"
|
|
|
export default {
|
|
|
name: "addAndEdit",
|
|
|
+ props: {
|
|
|
+ channelType: {
|
|
|
+ type: [String]
|
|
|
+ }
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
title: "编辑",
|
|
@@ -128,8 +158,13 @@ export default {
|
|
|
weekType: [{ required: true, message: "请选择星期", trigger: ["change","blur"] }],
|
|
|
seatTypeId: [{ required: true, message: "请选择票档名称", trigger: ["change","blur"] }],
|
|
|
originalAmount: [{ required: true, message: "请输入划线价", trigger: ["change","blur"] }],
|
|
|
- saleAmount: [{ required: true, message: "请输入销售价", trigger: ["change","blur"] }],
|
|
|
+ saleAmount: [{ required: true, message: "请输入价格", trigger: ["change","blur"] }],
|
|
|
+ retailAmount: [{ required: true, message: "请输入佣金", trigger: ["change","blur"] }],
|
|
|
remark: [{ required: false, message: "请输入备注", trigger: ["change","blur"] }],
|
|
|
+
|
|
|
+ touristLimit: [{ required: true, message: "请选择成团要求", trigger: ["change","blur"] }],
|
|
|
+ touristMin: [{ required: true, message: "请输入游客限制最小值", trigger: ["change","blur"] }],
|
|
|
+ touristMax: [{ required: true, message: "请输入游客限制最大值", trigger: ["change","blur"] }],
|
|
|
},
|
|
|
editType: false,
|
|
|
|
|
@@ -149,7 +184,6 @@ export default {
|
|
|
},
|
|
|
created() {
|
|
|
this.goodsPageListFun()
|
|
|
- this.seatTypeListFun()
|
|
|
},
|
|
|
methods: {
|
|
|
/**
|
|
@@ -163,9 +197,7 @@ export default {
|
|
|
this.editType = false;
|
|
|
if (obj){
|
|
|
this.title = "编辑价格配置";
|
|
|
- if(obj.performId) {
|
|
|
- await this.goodsPageListFun(obj.performId);
|
|
|
- }
|
|
|
+ this.selectGoodsId(obj.goodsId)
|
|
|
this.form = {
|
|
|
...obj,
|
|
|
performDate: [obj.dateStart,obj.dateEnd],
|
|
@@ -174,12 +206,19 @@ export default {
|
|
|
planSessionList: obj.planSessionList ? obj.planSessionList:[],
|
|
|
id: null
|
|
|
}
|
|
|
+
|
|
|
}else{
|
|
|
this.title = "新增价格配置";
|
|
|
- this.form = {
|
|
|
+ if(this.channelType == 'group') {
|
|
|
+ this.form = {
|
|
|
+ touristLimit: 0,
|
|
|
+ };
|
|
|
+ }else {
|
|
|
+ this.form = {
|
|
|
weekName: [],
|
|
|
- weekType: 0
|
|
|
- };
|
|
|
+ weekType: 0,
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs["form"].clearValidate();
|
|
@@ -198,7 +237,7 @@ export default {
|
|
|
pageSize: 999,
|
|
|
goodsType: 2,
|
|
|
classifyId: 1,
|
|
|
- channelType: "applet",
|
|
|
+ channelType: this.channelType,
|
|
|
})
|
|
|
if(res.code == 200){
|
|
|
this.goodsPageListS = res.data.rows || []
|
|
@@ -206,17 +245,14 @@ export default {
|
|
|
} catch (error) {
|
|
|
}
|
|
|
},
|
|
|
- async seatTypeListFun() {
|
|
|
- try {
|
|
|
- let res = await seatTypeListApi({
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 999,
|
|
|
- })
|
|
|
- if(res.code == 200){
|
|
|
- this.seatTypeListS = res.data.rows || []
|
|
|
+ /** 选择票务 */
|
|
|
+ selectGoodsId(value){
|
|
|
+ this.$set(this.form,'seatTypeId','')
|
|
|
+ this.goodsPageListS.forEach((item,index)=>{
|
|
|
+ if(item.id == value) {
|
|
|
+ this.seatTypeListS = item.seatTypeList
|
|
|
}
|
|
|
- } catch (error) {
|
|
|
- }
|
|
|
+ })
|
|
|
},
|
|
|
/**
|
|
|
* 保存
|
|
@@ -228,9 +264,21 @@ export default {
|
|
|
if (valid) {
|
|
|
try {
|
|
|
let postEdit = JSON.parse(JSON.stringify(this.form))
|
|
|
- postEdit['startDate'] = moment(postEdit.performDate[0]).format('YYYY-MM-DD')
|
|
|
- postEdit['endDate'] = moment(postEdit.performDate[1]).format('YYYY-MM-DD')
|
|
|
- postEdit.weekName = postEdit.weekName.join(','),
|
|
|
+ if(postEdit.performDate){
|
|
|
+ postEdit['startDate'] = moment(postEdit.performDate[0]).format('YYYY-MM-DD')
|
|
|
+ postEdit['endDate'] = moment(postEdit.performDate[1]).format('YYYY-MM-DD')
|
|
|
+ }
|
|
|
+ if(postEdit.weekName) {
|
|
|
+ postEdit.weekName = postEdit.weekName.join(',')
|
|
|
+ }
|
|
|
+ if(this.channelType == 'group') {
|
|
|
+ if(!postEdit.touristLimit) {
|
|
|
+ postEdit.touristMin = ''
|
|
|
+ postEdit.touristMax = ''
|
|
|
+ }else if(postEdit.touristLimit == 1) {
|
|
|
+ postEdit.touristMax = ''
|
|
|
+ }
|
|
|
+ }
|
|
|
delete postEdit.performDate
|
|
|
this.loading = true;
|
|
|
const { code } = await saveAndEdit({ ...postEdit });
|
|
@@ -287,6 +335,27 @@ export default {
|
|
|
if(!this.form.weekType) {
|
|
|
this.form.weekName = []
|
|
|
}
|
|
|
+ },
|
|
|
+ /** */
|
|
|
+ setSaleAmounttile(){
|
|
|
+ let str = ''
|
|
|
+ if(this.channelType == "applet") {
|
|
|
+ str = "销售价:"
|
|
|
+ }
|
|
|
+ if(this.channelType == "retail") {
|
|
|
+ str = "分销价:"
|
|
|
+ }
|
|
|
+ if(this.channelType == "window") {
|
|
|
+ str = "销售价:"
|
|
|
+ }
|
|
|
+ if(this.channelType == "group") {
|
|
|
+ str = "销售价:"
|
|
|
+ }
|
|
|
+ return str
|
|
|
+ },
|
|
|
+ selectTouristLimit() {
|
|
|
+ this.$set(this.form,'touristMin',undefined)
|
|
|
+ this.$set(this.form,'touristMax',undefined)
|
|
|
}
|
|
|
},
|
|
|
};
|