From d54dc04ae25b73ee0c7c588c6523d94624f052e3 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 05 六月 2026 10:09:13 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun
---
admin/src/views/business/sysParams.vue | 290 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 232 insertions(+), 58 deletions(-)
diff --git a/admin/src/views/business/sysParams.vue b/admin/src/views/business/sysParams.vue
index 4d975db..2d98292 100644
--- a/admin/src/views/business/sysParams.vue
+++ b/admin/src/views/business/sysParams.vue
@@ -1,81 +1,186 @@
<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 class="params-container" :style="' height: '+contentHeight+'px;'">
+ <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="label">娆★紝瓒呰繃娆℃暟鍚庯紝浠婃棩涓嶅彲鎶㈠崟</span>
</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 class="form-item">
+ <span class="label">鍙告満鏈�澶у悓鏃惰繘琛屼腑璁㈠崟鏁伴噺涓�</span>
+ <el-input-number v-model="form.orderAcceptLimit" :min="0" controls-position="right"></el-input-number>
+ <span class="label">涓紝瓒呰繃璇ユ暟閲忎笉鍏佽鎶㈠崟<span class="red">锛堝嵆璁㈠崟鐘舵��=寰呭彇浠�/閰嶉�佷腑锛�</span></span>
</div>
-
- <div class="footer">
- <el-button type="primary" @click="handleSave" :loading="isWorking.save">淇濆瓨</el-button>
+ <div class="form-item">
+ <span class="label">瀹㈡埛涓嬪崟鍚庢瘡闅�</span>
+ <el-input-number v-model="form.noGrabNotifyTime" :min="0" controls-position="right"></el-input-number>
+ <span class="label">鍒嗛挓鏈湁鍙告満鎶㈠崟锛岀郴缁熸帹閫佸钩鍙扮鐞嗗憳</span>
+ <el-select v-model="userIds" multiple clearable placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in userList"
+ :key="item.id"
+ :label="item.realname"
+ :value="item.id+''" />
+ </el-select>
+ <span class="label">鎻愰啋鍔犳�ユ淳鍗曞鐞嗐��</span>
+ </div>
+ <div class="form-item">
+ <span class="label">闂ㄥ簵榛樿閰嶉�佽寖鍥�</span>
+ <el-input-number v-model="form.defaultDeliveryRange" :min="0" controls-position="right"></el-input-number>
+ <span class="label">锛堝叕閲岋級</span>
</div>
</div>
- </template>
- </TableLayout>
+
+ <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="label">鍒嗛挓鏈敮浠橈紝璁㈠崟鑷姩鍙栨秷</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="label">澶╁悗鑷姩纭鏀惰揣<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="label">澶╁悗绯荤粺缁撶畻璁㈠崟锛屽苟缁欎笌鍙備笌瑙掕壊鎸夋瘮渚嬪垎鎴�</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.orderCouponOrderCount" :min="1" controls-position="right"></el-input-number>
+ <span class="label">鍗曪紝鑷冲</span>
+ <el-input-number v-model="form.orderCouponGiftCount" :min="1" controls-position="right"></el-input-number>
+ <span class="label">娆★紝骞冲彴璧犻�佷紭鎯犲埜 </span>
+ <el-select v-model="form.orderCouponId" style="width: 130px;" placeholder="浼樻儬鍒�">
+ <el-option v-for="item in couponList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ <span class="label"><span class="red">锛堜互琛屾潕宸插瘎瀛橀棬搴椾负鍑嗭紝鍗充究閫�鍗曚害涓嶆敹鍥烇紝榛樿姣忔鍙戞斁1寮狅級</span></span>
+ </div>
+ <div class="form-item">
+ <span class="label">浼氬憳娉ㄥ唽姣忔弧</span>
+ <el-input-number v-model="form.registerCouponYears" :min="1" controls-position="right"></el-input-number>
+ <span class="label">骞达紝鑷冲</span>
+ <el-input-number v-model="form.registerCouponGiftCount" :min="1" controls-position="right"></el-input-number>
+ <span class="label">娆★紝骞冲彴璧犻�佷紭鎯犲埜 </span>
+ <el-select v-model="form.registerCouponId" style="width: 130px;" placeholder="浼樻儬鍒�">
+ <el-option v-for="item in couponList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ <span class="label"><span class="red">锛堟寜娉ㄥ唽鏃堕棿锛屾棤璁轰細鍛樻槸鍚︿笅鍗曪紱榛樿姣忔鍙戞斁1寮狅級</span></span>
+ </div>
+ <div class="form-item">
+ <span class="label">鏂版敞鍐屼細鍛橀�佸钩鍙拌禒閫佷紭鎯犲埜</span>
+ <el-select v-model="form.registerGiftCouponId" style="width: 130px;" placeholder="浼樻儬鍒�">
+ <el-option v-for="item in couponList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </div>
+ </div>
+
+ <div class="section">
+ <h3 class="section-title">寮�绁ㄨ鍒�</h3>
+ <div class="form-item">
+ <span class="label">瓒呮椂</span>
+ <el-input-number v-model="form.invoiceMonthLimit" :min="1" controls-position="right"></el-input-number>
+ <span class="label">涓湀鐨勮鍗曚笉鍏佽寮�鍙戠エ</span>
+ </div>
+ </div>
+
+ <div class="section">
+ <h3 class="section-title">鍙告満濂栧姳瑙勫垯</h3>
+ <div class="table-container">
+ <el-table :data="driverRewardList" border style="width: 100%">
+ <el-table-column prop="registerRewardAmount" label="娉ㄥ唽濂栧姳锛堝厓/鍗曪級">
+ <template slot-scope="scope">
+ <el-input-number v-model="scope.row.registerRewardAmount" :min="1" controls-position="right"></el-input-number>
+ </template>
+ </el-table-column>
+ <el-table-column prop="registerRewardOrderCount" label="娉ㄥ唽濂栧姳鍗曟暟">
+ <template slot-scope="scope">
+ <el-input-number v-model="scope.row.registerRewardOrderCount" :min="1" controls-position="right"></el-input-number>
+ </template>
+ </el-table-column>
+ <el-table-column prop="platformRewardAmount" label="骞冲彴濂栧姳锛堝厓/鍗曪級">
+ <template slot-scope="scope">
+ <el-input-number v-model="scope.row.platformRewardAmount" :min="1" controls-position="right"></el-input-number>
+ </template>
+ </el-table-column>
+ <el-table-column prop="platformRewardOrderCount" label="骞冲彴濂栧姳鍗曟暟">
+ <template slot-scope="scope">
+ <el-input-number v-model="scope.row.platformRewardOrderCount" :min="1" controls-position="right"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+
+ <div class="footer">
+ <el-button type="primary" @click="handleSave" :loading="isWorking.save">淇濆瓨</el-button>
+ </div>
+ </div>
</template>
<script>
import TableLayout from '@/layouts/TableLayout'
import { getParams, saveParams } from '@/api/business/sysParams'
+import { allList } from '@/api/system/user'
+import { validList } from '@/api/business/coupon'
export default {
name: 'SysParams',
components: { TableLayout },
data () {
return {
+ contentHeight: 600,
+ driverRewardList: [],
form: {
- autoCancelTime: '',
- autoConfirmReceipt: '',
- driverDailyCancelLimit: '',
+ autoCancelTime: '',
+ autoConfirmReceipt: '',
+ registerRewardAmount: 0,
+ registerRewardOrderCount: 0,
+ platformRewardAmount: 0,
+ platformRewardOrderCount: 0,
+ driverDailyCancelLimit: '',
insuranceRate: '',
orderAcceptLimit: '',
+ noGrabNotifyUsers: '',
+ noGrabNotifyTime: '',
+ defaultDeliveryRange: '',
settlementDate: '',
unpickedDiscount: '',
- urgentCoefficient: ''
+ urgentCoefficient: '',
+ orderCouponOrderCount: '',
+ orderCouponGiftCount: '',
+ registerCouponYears: '',
+ registerCouponGiftCount: '',
+ orderCouponId: null,
+ registerCouponId: null,
+ registerGiftCouponIds: null,
+ invoiceMonthLimit: ''
},
+ couponList: [],
+ userIds: [],
+ userList: [],
isWorking: {
save: false
}
@@ -83,8 +188,26 @@
},
created () {
this.loadData()
+ this.loadUserlist()
+ this.loadCouponList()
+ this.contentHeight = window.innerHeight -110;
},
methods: {
+ loadCouponList() {
+ validList().then(res => {
+ console.log(res)
+ this.couponList = res || []
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ },
+ loadUserlist () {
+ allList().then(res => {
+ this.userList = res || []
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ },
loadData () {
getParams().then(res => {
this.form = {
@@ -92,10 +215,35 @@
autoConfirmReceipt: res.autoConfirmReceipt || '',
driverDailyCancelLimit: res.driverDailyCancelLimit || '',
insuranceRate: res.insuranceRate || '',
+ defaultDeliveryRange: res.defaultDeliveryRange || '',
+ noGrabNotifyTime: res.noGrabNotifyTime || '',
orderAcceptLimit: res.orderAcceptLimit || '',
+ noGrabNotifyUsers: res.noGrabNotifyUsers || '',
settlementDate: res.settlementDate || '',
unpickedDiscount: res.unpickedDiscount || '',
- urgentCoefficient: res.urgentCoefficient || ''
+ urgentCoefficient: res.urgentCoefficient || '',
+ orderCouponOrderCount: res.orderCouponOrderCount || '',
+ orderCouponGiftCount: res.orderCouponGiftCount || '',
+ registerCouponYears: res.registerCouponYears || '',
+ registerCouponGiftCount: res.registerCouponGiftCount || '',
+ orderCouponId: res.orderCouponId ? Number(res.orderCouponId) : null,
+ registerCouponId: res.registerCouponId ? Number(res.registerCouponId) : null,
+ registerGiftCouponIds: res.registerGiftCouponIds ? Number(res.registerGiftCouponIds) : '',
+ registerRewardAmount: (res.registerRewardAmount || 0) / 100,
+ registerRewardOrderCount: res.registerRewardOrderCount || 0,
+ platformRewardAmount: (res.platformRewardAmount || 0) / 100,
+ platformRewardOrderCount: res.platformRewardOrderCount || 0,
+ invoiceMonthLimit: res.invoiceMonthLimit || ''
+ }
+ // 鍒濆鍖栧徃鏈哄鍔辫鍒欒〃鏍兼暟鎹�
+ this.driverRewardList = [{
+ registerRewardAmount: this.form.registerRewardAmount || 0,
+ registerRewardOrderCount: this.form.registerRewardOrderCount || 0,
+ platformRewardAmount: this.form.platformRewardAmount || 0,
+ platformRewardOrderCount: this.form.platformRewardOrderCount || 0
+ }]
+ if (this.form.noGrabNotifyUsers) {
+ this.userIds = this.form.noGrabNotifyUsers.split(',')
}
}).catch(e => {
this.$tip.apiFailed(e)
@@ -103,7 +251,30 @@
},
handleSave () {
this.isWorking.save = true
- saveParams(this.form).then(res => {
+ // 娣辨嫹璐濊〃鍗曟暟鎹�
+ const submitForm = JSON.parse(JSON.stringify(this.form))
+ submitForm.noGrabNotifyUsers = ''
+ if (this.userIds) {
+ submitForm.noGrabNotifyUsers = this.userIds.join(',')
+ }
+ // 鍚屾鍙告満濂栧姳琛ㄦ牸鏁版嵁鍒拌〃鍗�
+ if (this.driverRewardList.length > 0) {
+ const rewardData = this.driverRewardList[0]
+ submitForm.registerRewardAmount = rewardData.registerRewardAmount
+ submitForm.registerRewardOrderCount = rewardData.registerRewardOrderCount
+ submitForm.platformRewardAmount = rewardData.platformRewardAmount
+ submitForm.platformRewardOrderCount = rewardData.platformRewardOrderCount
+ }
+ if (submitForm.orderCouponId) {
+ submitForm.orderCouponId = String(submitForm.orderCouponId)
+ }
+ if (submitForm.registerCouponId) {
+ submitForm.registerCouponId = String(submitForm.registerCouponId)
+ }
+ // if (submitForm.registerGiftCouponIds) {
+ // submitForm.registerGiftCouponIds = submitForm.registerGiftCouponIds
+ // }
+ saveParams(submitForm).then(res => {
this.$tip.apiSuccess(res || '淇濆瓨鎴愬姛')
}).catch(e => {
this.$tip.apiFailed(e)
@@ -118,6 +289,9 @@
<style scoped>
.params-container {
padding: 20px;
+ overflow: auto;
+ display: block;
+ background-color: #fff;
}
.section {
margin-bottom: 40px;
--
Gitblit v1.9.3