<template>
|
<TableLayout>
|
<template v-slot:table-wrap>
|
<div class="params-container">
|
<div class="section">
|
<h3 class="section-title">司机规则</h3>
|
<div class="form-item">
|
<span class="label">司机每日可取消订单次数为</span>
|
<el-input-number v-model="form.driverDailyCancelLimit" :min="0" controls-position="right"></el-input-number>
|
<span class="desc">次,超过次数后,今日不可抢单</span>
|
</div>
|
<div class="form-item">
|
<span class="label">司机最大同时进行中订单数量为</span>
|
<el-input-number v-model="form.orderAcceptLimit" :min="0" controls-position="right"></el-input-number>
|
<span class="desc">个,超过该数量不允许抢单<span class="red">(即订单状态=待取件/配送中)</span></span>
|
</div>
|
</div>
|
|
<div class="section">
|
<h3 class="section-title">订单规则</h3>
|
<div class="form-item">
|
<span class="label">超时</span>
|
<el-input-number v-model="form.autoCancelTime" :min="0" controls-position="right"></el-input-number>
|
<span class="desc">分钟未支付,订单自动取消</span>
|
</div>
|
<div class="form-item">
|
<span class="label">急速达订单计价系数</span>
|
<el-input-number v-model="form.urgentCoefficient" :min="0" :precision="2" controls-position="right"></el-input-number>
|
</div>
|
<div class="form-item">
|
<span class="label">物品保费比例</span>
|
<el-input-number v-model="form.insuranceRate" :min="0" :precision="2" controls-position="right"></el-input-number>
|
<span class="desc">%</span>
|
</div>
|
<div class="form-item">
|
<span class="label">异地寄送模式下,若物品已送达,而客户当天未取件,则后续系统按</span>
|
<el-input-number v-model="form.unpickedDiscount" :min="0" :precision="2" controls-position="right"></el-input-number>
|
<span class="desc">折扣系数计算</span>
|
</div>
|
<div class="form-item">
|
<span class="label">订单送达后默认</span>
|
<el-input-number v-model="form.autoConfirmReceipt" :min="0" controls-position="right"></el-input-number>
|
<span class="desc">天后自动确认收货<span class="red">(仅限收件地址不是服务点的情况)</span></span>
|
</div>
|
<div class="form-item">
|
<span class="label">订单完成后</span>
|
<el-input-number v-model="form.settlementDate" :min="0" controls-position="right"></el-input-number>
|
<span class="desc">天后系统结算订单,并给与参与角色按比例分成</span>
|
</div>
|
</div>
|
|
<div class="footer">
|
<el-button type="primary" @click="handleSave" :loading="isWorking.save">保存</el-button>
|
</div>
|
</div>
|
</template>
|
</TableLayout>
|
</template>
|
|
<script>
|
import TableLayout from '@/layouts/TableLayout'
|
import { getParams, saveParams } from '@/api/business/sysParams'
|
|
export default {
|
name: 'SysParams',
|
components: { TableLayout },
|
data () {
|
return {
|
form: {
|
autoCancelTime: '',
|
autoConfirmReceipt: '',
|
driverDailyCancelLimit: '',
|
insuranceRate: '',
|
orderAcceptLimit: '',
|
settlementDate: '',
|
unpickedDiscount: '',
|
urgentCoefficient: ''
|
},
|
isWorking: {
|
save: false
|
}
|
}
|
},
|
created () {
|
this.loadData()
|
},
|
methods: {
|
loadData () {
|
getParams().then(res => {
|
this.form = {
|
autoCancelTime: res.autoCancelTime || '',
|
autoConfirmReceipt: res.autoConfirmReceipt || '',
|
driverDailyCancelLimit: res.driverDailyCancelLimit || '',
|
insuranceRate: res.insuranceRate || '',
|
orderAcceptLimit: res.orderAcceptLimit || '',
|
settlementDate: res.settlementDate || '',
|
unpickedDiscount: res.unpickedDiscount || '',
|
urgentCoefficient: res.urgentCoefficient || ''
|
}
|
}).catch(e => {
|
this.$tip.apiFailed(e)
|
})
|
},
|
handleSave () {
|
this.isWorking.save = true
|
saveParams(this.form).then(res => {
|
this.$tip.apiSuccess(res || '保存成功')
|
}).catch(e => {
|
this.$tip.apiFailed(e)
|
}).finally(() => {
|
this.isWorking.save = false
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.params-container {
|
padding: 20px;
|
}
|
.section {
|
margin-bottom: 40px;
|
}
|
.section-title {
|
font-size: 16px;
|
font-weight: bold;
|
color: #303133;
|
margin-bottom: 20px;
|
padding-left: 10px;
|
border-left: 4px solid #2E68EC;
|
}
|
.form-item {
|
display: flex;
|
align-items: center;
|
margin-bottom: 20px;
|
flex-wrap: wrap;
|
}
|
.form-item .label {
|
color: #606266;
|
font-size: 14px;
|
white-space: nowrap;
|
}
|
.form-item .desc {
|
color: #909399;
|
font-size: 14px;
|
margin-left: 10px;
|
}
|
.form-item .red {
|
color: #f56c6c;
|
}
|
.form-item /deep/ .el-input-number {
|
margin: 0 10px;
|
}
|
.form-item /deep/ .el-input-number .el-input__inner {
|
text-align: center;
|
}
|
.footer {
|
padding-top: 20px;
|
border-top: 1px solid #eee;
|
}
|
</style>
|