MrShi
3 天以前 be3ec4c1f11a5e090408fcd6f650557651fcf007
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<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>