From 552238172036acf08ccf36134282a06b5e21b936 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 22 五月 2026 18:07:49 +0800
Subject: [PATCH] 代码生成

---
 admin/src/views/business/sysParams.vue |  298 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 210 insertions(+), 88 deletions(-)

diff --git a/admin/src/views/business/sysParams.vue b/admin/src/views/business/sysParams.vue
index de0cddd..2d98292 100644
--- a/admin/src/views/business/sysParams.vue
+++ b/admin/src/views/business/sysParams.vue
@@ -1,84 +1,150 @@
 <template>
-  <TableLayout>
-    <template v-slot:table-wrap>
-      <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="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="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>
-
-        <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="footer">
-          <el-button type="primary" @click="handleSave" :loading="isWorking.save">淇濆瓨</el-button>
-        </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>
-    </template>
-  </TableLayout>
+      <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="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>
+
+    <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',
@@ -86,10 +152,15 @@
   data () {
     return {
       contentHeight: 600,
+      driverRewardList: [],
       form: {
-        autoCancelTime: '',
-        autoConfirmReceipt: '',
-        driverDailyCancelLimit: '',
+         autoCancelTime: '',
+         autoConfirmReceipt: '',
+         registerRewardAmount: 0,
+         registerRewardOrderCount: 0,
+         platformRewardAmount: 0,
+         platformRewardOrderCount: 0,
+         driverDailyCancelLimit: '',
         insuranceRate: '',
         orderAcceptLimit: '',
         noGrabNotifyUsers: '',
@@ -97,8 +168,17 @@
         defaultDeliveryRange: '',
         settlementDate: '',
         unpickedDiscount: '',
-        urgentCoefficient: ''
+        urgentCoefficient: '',
+        orderCouponOrderCount: '',
+        orderCouponGiftCount: '',
+        registerCouponYears: '',
+        registerCouponGiftCount: '',
+        orderCouponId: null,
+        registerCouponId: null,
+        registerGiftCouponIds: null,
+        invoiceMonthLimit: ''
       },
+      couponList: [],
       userIds: [],
       userList: [],
       isWorking: {
@@ -109,9 +189,18 @@
   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 || []
@@ -132,8 +221,27 @@
           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(',')
         }
@@ -143,11 +251,30 @@
     },
     handleSave () {
       this.isWorking.save = true
-      this.form.noGrabNotifyUsers = ''
+      // 娣辨嫹璐濊〃鍗曟暟鎹�
+      const submitForm = JSON.parse(JSON.stringify(this.form))
+      submitForm.noGrabNotifyUsers = ''
       if (this.userIds) {
-        this.form.noGrabNotifyUsers = this.userIds.join(',')
-      }
-      saveParams(this.form).then(res => {
+        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)
@@ -164,12 +291,7 @@
   padding: 20px;
   overflow: auto;
   display: block;
-}
-/deep/ .el-main{
-  width: 100%;
-//height: 100%;
-  overflow-y: auto  !important ;
-  height: calc(100% - 94px);
+  background-color: #fff;
 }
 .section {
   margin-bottom: 40px;

--
Gitblit v1.9.3