MrShi
3 小时以前 ea2fb93a0dfcde8f5b66825b20f9d9b835a28acc
admin/src/components/business/OperaCityPriceRuleWindow.vue
@@ -6,7 +6,7 @@
  >
    <el-tabs v-model="activeTab">
      <el-tab-pane label="就地寄存" name="local">
        <div class="price-tip">根据行李尺寸以及存放天数收费(不足一天按一天计价)</div>
        <div class="tip-warn"><i class="el-icon-warning"></i>根据行李尺寸以及存放天数收费(不足一天按一天计价)</div>
        <div class="price-items">
          <div class="price-item" v-for="(item, index) in jiudiTableData" :key="index">
            <span class="price-label">其中{{item.categoryName}}每天收费</span>
@@ -15,10 +15,10 @@
          </div>
        </div>
      </el-tab-pane>
      <el-tab-pane label="异地寄存" name="remote">
        <div class="remote-config-title">异地寄送配置</div>
      <el-tab-pane label="同城寄送" name="remote">
        <div class="remote-config-title">同城寄送</div>
        <div class="remote-header">
          <span class="remote-tip">根据行李尺寸、配送里程及配送价格收取费用(不足1公里按1公里计价)</span>
          <span class="remote-tip"> <p class="tip-warn"><i class="el-icon-warning"></i>根据行李类型、起送/续送里程及起送/续送价格收取费用(不足1公里按1公里计价)</p></span>
        </div>
        <el-table :data="remoteTableData" border stripe>
          <el-table-column prop="categoryName" label="行李尺寸"></el-table-column>
@@ -47,9 +47,15 @@
      <el-tab-pane label="预计时效" name="time">
        <div class="remote-config-title">预计时效规则</div>
        <div class="remote-header">
          <span class="remote-tip">根据配送里程预计配送时长并展示在小程序下单页面</span>
          <span class="remote-tip"><p class="tip-warn"><i class="el-icon-warning"></i>根据配送里程预计配送时长并展示在小程序下单页面</p></span>
        </div>
        <el-table :data="timeTableData" border stripe>
          <el-table-column label="订单级别">
            <template slot-scope="{row}">
              <span v-if="row.fieldA == 1"  >标速达</span>
              <span v-if="row.fieldA == 2"  >急速达</span>
            </template>
          </el-table-column>
          <el-table-column label="起送里程(公里)">
            <template slot-scope="{row}">
              <el-input v-model="row.startDistance" type="number" placeholder="请输入"></el-input>
@@ -73,7 +79,8 @@
        </el-table>
      </el-tab-pane>
      <el-tab-pane label="门店注册押金" name="deposit">
        <div class="price-tip">根据所在城市以及注册类型不同,平台收取不同数额押金。押金会在门店退网后线下原额退还(门店线上微信支付的押金因微信官方要求具有时效性)</div>
        <div class="price-tip"><p class="tip-warn"><i class="el-icon-warning"></i>
          根据所在城市以及注册类型不同,平台收取不同数额押金。押金会在门店退网后线下原额退还(门店线上微信支付的押金因微信官方要求具有时效性)</p></div>
        <div class="price-items">
          <div class="price-item" v-for="(item, index) in storeDepositData" :key="index">
            <span class="price-label">其中{{item.fieldTypeName}}收取押金</span>
@@ -83,11 +90,11 @@
        </div>
      </el-tab-pane>
      <el-tab-pane label="分成比例" name="share">
        <div class="price-tip">根据订单中不同运营角色而独立配置不同分成比例</div>
        <div class="price-tip"><p class="tip-warn"><i class="el-icon-warning"></i>根据订单中不同运营角色而独立配置不同分成比例</p></div>
        <div class="price-items">
          <div class="price-item" v-for="(item, index) in shareTableData" :key="index">
            <span class="price-label">{{item.fieldType === 4 ? '在订单中作为配送员时,' : '其中门店类型为'}}{{item.fieldTypeName}}分成比例为</span>
            <el-input style="width: 100px;" v-model="item.ratio" type="number" placeholder="请输入"></el-input>
            <span class="price-label">{{item.fieldTypeName}}{{item.fieldType === 4 ? '在订单中作为配送员时,' : '门店'}}分成比例为</span>
            <el-input style="width: 100px;" v-model="item.ratio" placeholder="请输入"></el-input>
            <span class="price-unit">%</span>
          </div>
        </div>
@@ -254,7 +261,7 @@
            item.startPrice === null || item.startPrice === undefined || item.startPrice === '' ||
            item.extraDistance === null || item.extraDistance === undefined || item.extraDistance === '' ||
            item.extraPrice === null || item.extraPrice === undefined || item.extraPrice === '') {
          this.$message.error('请填写所有异地寄送的配置信息')
          this.$message.error('请填写所有同城寄送的配置信息')
          return false
        }
      }
@@ -289,6 +296,19 @@
          this.$message.error('请填写所有分成比例')
          return false
        }
        const num = Number(item.ratio)
        if (isNaN(num) || num < 1) {
          this.$message.error(item.fieldTypeName + '分成比例必须大于等于1')
          return false
        }
        const str = String(item.ratio)
        if (str.includes('.')) {
          const decimal = str.split('.')[1]
          if (decimal.length > 1) {
            this.$message.error(item.fieldTypeName + '分成比例最多支持一位小数')
            return false
          }
        }
      }
      return true
    }
@@ -297,8 +317,9 @@
</script>
<style scoped>
.price-tip {
  margin-bottom: 20px;
  /*margin-bottom: 20px;*/
  color: #666;
  font-size: 14px;
}
@@ -311,10 +332,11 @@
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
}
.price-label {
  flex-shrink: 0;
  font-weight: 500;
  /*font-weight: 500;*/
}
.price-unit {
  color: #666;
@@ -334,7 +356,7 @@
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
  /*margin-bottom: 15px;*/
}
.remote-tip {
  color: #666;
@@ -344,4 +366,4 @@
  margin-top: 15px;
  text-align: right;
}
</style>
</style>