jiangping
2025-03-18 1b0cf0db5c82ea8308d2f338973a91555787c34d
admin/src/components/business/OperaPriceConfigWindow.vue
@@ -6,12 +6,13 @@
    width="600px"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules" label-suffix=":">
      <el-form-item label="车型名称" prop="bikeTypeName">
        {{ form.bikeTypeName }}
      </el-form-item>
      <el-form-item label="工作日计费">
<!--      base-->
      <el-form-item label="工作日计费" prop="base">
        <el-select v-model="form.baseType" @change="selectBaseType">
          <el-option
            v-for="item in priceType"
@@ -20,7 +21,7 @@
            :value="item.id"
          ></el-option>
        </el-select>
        <div class="setting" v-if="form.baseType == 1" style="display: flex;">
        <div class="setting" v-if="form.baseType === 1" style="display: flex;">
          <el-input v-model="form.basePrice" type="number" placeholder="" v-trim/>
          元,畅骑一整天
        </div>
@@ -35,7 +36,7 @@
          </div>
        </div>
      </el-form-item>
      <el-form-item label="节假日计费">
      <el-form-item label="节假日计费" prop="holiday">
        <el-select v-model="form.holidayBaseType" @change="selectHolidayBaseType">
          <el-option
            v-for="item in priceType"
@@ -68,18 +69,54 @@
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
import { updatePricingDetailById } from '@/api/business/pricingParam'
// import { findList } from '@/api/business/roomTime'
import { numRule } from '@/utils/form'
export default {
  name: 'OperaPriceConfigWindow',
  extends: BaseOpera,
  components: { GlobalAlertWindow },
  data () {
    const baseRule = (rule, value, callback) => {
      if (this.form.baseType == 1) {
        if (/^[1-9]\d*$|^0$/.test(this.form.basePrice)) {
          callback()
        } else {
          callback(new Error())
        }
      } else {
        if (
          (/^[1-9]\d*$|^0$/.test(this.form.basePrice)) &&
          (/^[1-9]\d*$|^0$/.test(this.form.baseTime)) &&
          (/^[1-9]\d*$|^0$/.test(this.form.unitPrice)) &&
          (/^[1-9]\d*$|^0$/.test(this.form.unitTime))) {
          callback()
        } else {
          callback(new Error())
        }
      }
    }
    const holidayRule = (rule, value, callback) => {
      if (this.form.holidayBaseType === 1) {
        if (/^[1-9]\d*$|^0$/.test(this.form.holidayBasePrice)) {
          callback()
        } else {
          callback(new Error())
        }
      } else {
        if (
          (/^[1-9]\d*$|^0$/.test(this.form.holidayBasePrice)) &&
          (/^[1-9]\d*$|^0$/.test(this.form.holidayBaseTime)) &&
          (/^[1-9]\d*$|^0$/.test(this.form.holidayUnitTime))) {
          callback()
        } else {
          callback(new Error())
        }
      }
    }
    return {
      // 表单数据
      form: {
        id: null,
        pricePramId: null,
        bikeTypeId: null,
        pricePramId: '',
        bikeTypeId: '',
        bikeTypeName: '',
        baseType: '',
        baseTime: '',
@@ -99,17 +136,17 @@
      backInfoRequired: false,
      // 验证规则
      rules: {
        duration: [
         { required: true, validator: numRule, message: '请输入计费时长', tigger: 'blur' }
        base: [
         { required: true, validator: baseRule, message: '请完善工作日计价信息', tigger: 'blur' }
        ],
        backReason: [
          { required: true, message: '请选择调整原因', tigger: 'change'},
        holiday: [
          { required: true, validator: holidayRule, message: '请完善节假日计价信息', tigger: 'blur'},
        ]
      },
    }
  },
  methods: {
    /**
     * 打开窗口
@@ -132,9 +169,8 @@
        for (const key in this.form) {
          this.form[key] = target[key]
        }
        this.form.baseType = target.baseTime==-1 ? 1 : 2
        this.form.holidayBaseType = target.holidayBaseTime==-1 ? 1 : 2
        this.form.baseType = target.baseTime === -1 ? 1 : 2
        this.form.holidayBaseType = target.holidayBaseTime === -1 ? 1 : 2
        // this.form.backReason = ''
        // this.form.backInfo = ''
        // this.$refs.form.clearValidate()