|
@@ -100,11 +100,26 @@
|
|
|
元
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="setSaleAmounttile()" prop="saleAmount">
|
|
|
- <el-input-number v-model="form.saleAmount" style="width: 350px"></el-input-number>
|
|
|
+ <el-input-number v-model="form.saleAmount" style="width: 350px" @change="saleAmountChange"></el-input-number>
|
|
|
{{ !['group'].includes(channelType) ? '元':form.touristLimit==2?'元':'元/人' }}
|
|
|
</el-form-item>
|
|
|
+ <el-form-item v-if="channelType == 'retail'" label="佣金比例" prop="retailRate">
|
|
|
+ <!-- <el-input-number
|
|
|
+ v-model="form.retailRate"
|
|
|
+ :min="0"
|
|
|
+ :precision="2"
|
|
|
+ :step="0.01"
|
|
|
+ step-strictly
|
|
|
+ style="width: 350px">
|
|
|
+ </el-input-number> -->
|
|
|
+ <el-input v-model="form.retailRate" placeholder="请输入佣金比例" type="number" @change="handleChange" style="width: 350px">
|
|
|
+ <template slot="append">%</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item v-if="channelType == 'retail'" label="佣金:" prop="retailAmount">
|
|
|
- <el-input-number v-model="form.retailAmount" style="width: 350px"></el-input-number>
|
|
|
+ <el-input v-model="form.retailAmount" disabled style="width: 350px">
|
|
|
+ </el-input>
|
|
|
+ <!-- <el-input-number v-model="form.retailAmount" style="width: 350px"></el-input-number> -->
|
|
|
元
|
|
|
</el-form-item>
|
|
|
<el-form-item label="备注:" prop="remark">
|
|
@@ -133,6 +148,7 @@
|
|
|
import { saveAndEdit,saveAndUpdate } from "@/api/priceConfiguration/index";
|
|
|
import { pageList as goodsPageListApi } from '@/api/ticketMr/ticketMr'
|
|
|
import moment from "moment"
|
|
|
+import * as math from 'mathjs';
|
|
|
export default {
|
|
|
name: "addAndEdit",
|
|
|
props: {
|
|
@@ -141,6 +157,17 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
data() {
|
|
|
+ let checkInput = (rule, value, callback) => {
|
|
|
+ if (value === null || value === '') {
|
|
|
+ callback(new Error('请输入有效的数字'));
|
|
|
+ } else if (value < 0) {
|
|
|
+ callback(new Error('佣金比例不能小于0'));
|
|
|
+ } else if ((!/^\d+(\.\d{1,2})?$/.test(value.toString()))) {
|
|
|
+ callback(new Error('最多保留两位小数'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
return {
|
|
|
title: "编辑",
|
|
|
model: "EDIT",
|
|
@@ -151,6 +178,7 @@ export default {
|
|
|
id: undefined,
|
|
|
weekName: [],
|
|
|
weekType: 0,
|
|
|
+ retailRate: 0,
|
|
|
},
|
|
|
rules: {
|
|
|
performDate: [{ required: true, message: "请选择日期", trigger: ["change","blur"] }],
|
|
@@ -159,7 +187,11 @@ export default {
|
|
|
seatTypeId: [{ required: true, message: "请选择票档名称", trigger: ["change","blur"] }],
|
|
|
originalAmount: [{ required: true, message: "请输入划线价", trigger: ["change","blur"] }],
|
|
|
saleAmount: [{ required: true, message: "请输入价格", trigger: ["change","blur"] }],
|
|
|
- retailAmount: [{ required: true, message: "请输入佣金", trigger: ["change","blur"] }],
|
|
|
+ retailRate: [
|
|
|
+ { required: true, message: "请输入佣金比例", trigger: 'change' },
|
|
|
+ { required: true, validator: checkInput, trigger: 'change'}
|
|
|
+ ],
|
|
|
+ // retailAmount: [{ required: true, message: "请输入佣金", trigger: ["change","blur"] }],
|
|
|
remark: [{ required: false, message: "请输入备注", trigger: ["change","blur"] }],
|
|
|
|
|
|
touristLimit: [{ required: true, message: "请选择成团要求", trigger: ["change","blur"] }],
|
|
@@ -222,6 +254,8 @@ export default {
|
|
|
this.form = {
|
|
|
weekName: [],
|
|
|
weekType: 0,
|
|
|
+ retailRate: 0,
|
|
|
+
|
|
|
};
|
|
|
}
|
|
|
}
|
|
@@ -250,6 +284,34 @@ export default {
|
|
|
} catch (error) {
|
|
|
}
|
|
|
},
|
|
|
+ // 分销价格
|
|
|
+ saleAmountChange() {
|
|
|
+ if(this.form.retailRate) {
|
|
|
+ // 使用 mathjs 进行计算
|
|
|
+ const result = math.evaluate(`${this.form.saleAmount} * ${this.form.retailRate} / 100`);
|
|
|
+ // 返回结果,保留两位小数
|
|
|
+ this.form.retailAmount = parseFloat(result.toFixed(2))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 分佣比例
|
|
|
+ handleChange(value) {
|
|
|
+ if (value === null || value === undefined) {
|
|
|
+ this.form.retailRate = null;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const num = Number(value);
|
|
|
+ if (isNaN(num) || num < 0) {
|
|
|
+ this.form.retailRate = 0;
|
|
|
+ } else {
|
|
|
+ this.form.retailRate = parseFloat(num.toFixed(2));
|
|
|
+ if(this.form.saleAmount) {
|
|
|
+ // 使用 mathjs 进行计算
|
|
|
+ const result = math.evaluate(`${this.form.saleAmount} * ${this.form.retailRate} / 100`);
|
|
|
+ // 返回结果,保留两位小数
|
|
|
+ this.form.retailAmount = parseFloat(result.toFixed(2))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
/** 选择票务 */
|
|
|
selectGoodsId(value){
|
|
|
this.$set(this.form,'seatTypeId','')
|