|  | @@ -100,11 +100,26 @@
 | 
											
												
													
														|  |            元
 |  |            元
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </el-form-item>
 | 
											
												
													
														|  |          <el-form-item :label="setSaleAmounttile()" prop="saleAmount">
 |  |          <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?'元':'元/人' }}
 |  |            {{ !['group'].includes(channelType) ? '元':form.touristLimit==2?'元':'元/人' }}
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </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-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>
 | 
											
												
													
														|  |          <el-form-item label="备注:" prop="remark">
 |  |          <el-form-item label="备注:" prop="remark">
 | 
											
										
											
												
													
														|  | @@ -133,6 +148,7 @@
 | 
											
												
													
														|  |  import { saveAndEdit,saveAndUpdate } from "@/api/priceConfiguration/index";
 |  |  import { saveAndEdit,saveAndUpdate } from "@/api/priceConfiguration/index";
 | 
											
												
													
														|  |  import { pageList as goodsPageListApi } from '@/api/ticketMr/ticketMr'
 |  |  import { pageList as goodsPageListApi } from '@/api/ticketMr/ticketMr'
 | 
											
												
													
														|  |  import moment from "moment"
 |  |  import moment from "moment"
 | 
											
												
													
														|  | 
 |  | +import * as math from 'mathjs';
 | 
											
												
													
														|  |  export default {
 |  |  export default {
 | 
											
												
													
														|  |    name: "addAndEdit",
 |  |    name: "addAndEdit",
 | 
											
												
													
														|  |    props: {
 |  |    props: {
 | 
											
										
											
												
													
														|  | @@ -141,6 +157,17 @@ export default {
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    data() {
 |  |    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 {
 |  |      return {
 | 
											
												
													
														|  |        title: "编辑",
 |  |        title: "编辑",
 | 
											
												
													
														|  |        model: "EDIT",
 |  |        model: "EDIT",
 | 
											
										
											
												
													
														|  | @@ -151,6 +178,7 @@ export default {
 | 
											
												
													
														|  |          id: undefined,
 |  |          id: undefined,
 | 
											
												
													
														|  |          weekName: [],
 |  |          weekName: [],
 | 
											
												
													
														|  |          weekType: 0,
 |  |          weekType: 0,
 | 
											
												
													
														|  | 
 |  | +        retailRate: 0,
 | 
											
												
													
														|  |        },
 |  |        },
 | 
											
												
													
														|  |        rules: {
 |  |        rules: {
 | 
											
												
													
														|  |          performDate: [{ required: true, message: "请选择日期", trigger: ["change","blur"] }],
 |  |          performDate: [{ required: true, message: "请选择日期", trigger: ["change","blur"] }],
 | 
											
										
											
												
													
														|  | @@ -159,7 +187,11 @@ export default {
 | 
											
												
													
														|  |          seatTypeId: [{ required: true, message: "请选择票档名称", trigger: ["change","blur"] }],
 |  |          seatTypeId: [{ required: true, message: "请选择票档名称", trigger: ["change","blur"] }],
 | 
											
												
													
														|  |          originalAmount: [{ 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"] }],
 |  | 
 | 
											
												
													
														|  | 
 |  | +        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"] }],
 |  |          remark: [{ required: false, message: "请输入备注", trigger: ["change","blur"] }],
 | 
											
												
													
														|  |        
 |  |        
 | 
											
												
													
														|  |          touristLimit: [{ required: true, message: "请选择成团要求", trigger: ["change","blur"] }],
 |  |          touristLimit: [{ required: true, message: "请选择成团要求", trigger: ["change","blur"] }],
 | 
											
										
											
												
													
														|  | @@ -222,6 +254,8 @@ export default {
 | 
											
												
													
														|  |            this.form = {
 |  |            this.form = {
 | 
											
												
													
														|  |              weekName: [],
 |  |              weekName: [],
 | 
											
												
													
														|  |              weekType: 0,
 |  |              weekType: 0,
 | 
											
												
													
														|  | 
 |  | +            retailRate: 0,
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |            };
 |  |            };
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
										
											
												
													
														|  | @@ -250,6 +284,34 @@ export default {
 | 
											
												
													
														|  |        } catch (error) {      
 |  |        } 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){
 |  |      selectGoodsId(value){
 | 
											
												
													
														|  |        this.$set(this.form,'seatTypeId','')
 |  |        this.$set(this.form,'seatTypeId','')
 |