From 80ca024e9ae633df0dc9f4e8f533f33b526afb3d Mon Sep 17 00:00:00 2001
From: p-honggang.li <p-honggang.li@pcitc.com>
Date: 星期一, 08 九月 2025 16:24:38 +0800
Subject: [PATCH] 修复文件上传获取不到用户信息的BUG

---
 src/views/pointsManage/settings/index.vue |  787 +++++++++++++++++++++-----------------------------------
 1 files changed, 296 insertions(+), 491 deletions(-)

diff --git a/src/views/pointsManage/settings/index.vue b/src/views/pointsManage/settings/index.vue
index 4470b14..89bcb29 100644
--- a/src/views/pointsManage/settings/index.vue
+++ b/src/views/pointsManage/settings/index.vue
@@ -9,33 +9,41 @@
               <span class="section-title">绉垎鑾峰彇瑙勫垯</span>
             </div>
           </template>
-          
+
           <!-- 璧勬簮璐$尞 -->
-          <div class="rule-category">
-            <h4>璧勬簮璐$尞</h4>
+          <div class="rule-category" v-for="rule in rules.getPointsRuleList">
+            <h4>{{ rule.category}}</h4>
             <div class="rule-subcategory">
-              <h5>鎻愭姤鏍囨潌</h5>
+              <!-- <h5>鎻愭姤鏍囨潌</h5> -->
               <div class="rule-items">
-        
-              <div class="rule-item">
-                <span class="rule-desc">姣忔彁鎶�1涓爣鏉�,骞跺鎵瑰畬鎴�,鑾�</span>
-                <el-input 
-                  v-model="rules.benchmarkSubmission" 
+
+              <div class="rule-item" v-for="pointRuleDetial in rule.pointsRules">
+                <span class="rule-desc">{{ pointRuleDetial.ruleName }} : {{ pointRuleDetial.ruleDescription}} </span>
+                <el-input
+                  v-model="pointRuleDetial.pointsValue"
                   size="small"
-                  style="width: 80px;"
+                  style="width: 50px;"
                   placeholder="璇疯緭鍏�"
                 />
                 <span class="unit">绉垎</span>
+                <span class="unit" v-if="pointRuleDetial.isLimit === 1">,姣忔棩绉垎涓婇檺</span>
+                <el-input
+                  v-model="pointRuleDetial.dailyLimit"
+                  size="small"
+                  style="width: 50px;"
+                  placeholder="璇疯緭鍏�"
+                   v-if="pointRuleDetial.isLimit === 1"
+                />
               </div>
               </div>
             </div>
-            <div class="rule-subcategory">
+            <!-- <div class="rule-subcategory">
               <h5>鎻愭姤鐭ヨ瘑</h5>
               <div class="rule-items">
                 <div class="rule-item">
                 <span class="rule-desc">姣忔彁鎶�1涓煡璇�,骞跺鎵瑰畬鎴�,鑾�</span>
-                <el-input 
-                  v-model="rules.knowledgeSubmission" 
+                <el-input
+                  v-model="rules.knowledgeSubmission"
                   size="small"
                   style="width: 80px;"
                   placeholder="璇疯緭鍏�"
@@ -49,8 +57,8 @@
               <div class="rule-items">
               <div class="rule-item">
                 <span class="rule-desc">姣忔彁鎶�1涓骇鍝�,骞跺鎵瑰畬鎴�,鑾�</span>
-                <el-input 
-                  v-model="rules.productSubmission" 
+                <el-input
+                  v-model="rules.productSubmission"
                   size="small"
                   style="width: 80px;"
                   placeholder="璇疯緭鍏�"
@@ -58,20 +66,20 @@
                 <span class="unit">绉垎</span>
               </div>
             </div>
-            </div>
-           
+            </div> -->
+
           </div>
 
           <!-- 璧勬簮浜ゆ槗 -->
-          <div class="rule-category">
+          <!-- <div class="rule-category">
             <h4>璧勬簮浜ゆ槗</h4>
             <div class="rule-subcategory">
               <h5>浜у搧鎺ュ叆</h5>
               <div class="rule-items">
                 <div class="rule-item">
                 <span class="rule-desc">姣忔帴鍏�1涓骇鍝侊紝鑾�</span>
-                <el-input 
-                  v-model="rules.productAccess" 
+                <el-input
+                  v-model="rules.productAccess"
                   size="small"
                   style="width: 60px;"
                   placeholder="璇疯緭鍏�"
@@ -85,8 +93,8 @@
               <div class="rule-items">
               <div class="rule-item">
                 <span class="rule-desc">姣忎氦鏄�1涓祫婧�,鑾�</span>
-                <el-input 
-                  v-model="rules.resourceTransaction" 
+                <el-input
+                  v-model="rules.resourceTransaction"
                   size="small"
                   style="width: 60px;"
                   placeholder="璇疯緭鍏�"
@@ -95,191 +103,8 @@
               </div>
             </div>
             </div>
-          </div>
+          </div> -->
 
-          <!-- 璧勬簮浼犳挱 -->
-          <div class="rule-category">
-            <h4>璧勬簮浼犳挱</h4>
-            <div class="rule-subcategory">
-              <h5>鏁板瓧璧勬簮</h5>
-              <div class="rule-items">
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚闃�,鑾�</span>
-                <el-input 
-                  v-model="rules.productSubscribed" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                <el-input 
-                  v-model="rules.productSubscribedDailyLimit" 
-                  size="small"
-                  style="width: 80px;"
-                  placeholder="璇疯緭鍏�"
-                />
-              </div>
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚瘯鐢�,鑾�</span>
-                <el-input 
-                  v-model="rules.productTrialed" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                <el-input 
-                  v-model="rules.productTrialedDailyLimit" 
-                  size="small"
-                  style="width: 80px;"
-                  placeholder="璇疯緭鍏�"
-                />
-              </div>
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚偣璧�,鑾�</span>
-                <el-input 
-                  v-model="rules.resourceLiked" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                <el-input 
-                  v-model="rules.resourceLikedDailyLimit" 
-                  size="small"
-                  style="width: 80px;"
-                  placeholder="璇疯緭鍏�"
-                />
-              </div>
-              <!-- 鍚庣鏃犳瑙勫垯锛岀Щ闄ゆ椤癸紙濡傚悗绔悗缁敮鎸佸啀寮�鍚級 -->
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚瘯鐢�,鑾�</span>
-                <el-input 
-                  v-model="rules.productTrialed" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                <el-input 
-                  v-model="rules.productTrialedDailyLimit" 
-                  size="small"
-                  style="width: 80px;"
-                  placeholder="璇疯緭鍏�"
-                />
-              </div>
-              </div>
-            </div>
-            
-          </div>
-
-          <!-- 鐢ㄦ埛鍙備笌 -->
-          <div class="rule-category">
-            <h4>鐢ㄦ埛鍙備笌</h4>
-            <div class="rule-subcategory">
-              <h5>浜ゆ祦浜掑姩</h5>
-              <div class="rule-items">
-                <div class="rule-item">
-                  <span class="rule-desc">姣忔棩棣栨鐧诲綍,鑾�</span>
-                  <el-input 
-                    v-model="rules.dailyFirstLogin" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鍙戝竷鎻愰棶,鑾�</span>
-                  <el-input 
-                    v-model="rules.postQuestion" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                  <el-input 
-                    v-model="rules.postQuestionDailyLimit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鍙戝竷璇勮,鑾�</span>
-                  <el-input 
-                    v-model="rules.postComment" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                  <el-input 
-                    v-model="rules.postCommentDailyLimit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">璇勮琚偣璧�,鑾�</span>
-                  <el-input 
-                    v-model="rules.commentLiked" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎,姣忔棩绉垎涓婇檺</span>
-                  <el-input 
-                    v-model="rules.commentLikedDailyLimit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                </div>
-              </div>
-            </div>
-          </div>
-
-          <!-- 鍏朵粬 -->
-          <div class="rule-category">
-            <h4>鍏朵粬</h4>
-            <div class="rule-subcategory">
-              <h5>鑽h獕濂栧姳</h5>
-              <div class="rule-items">
-                <div class="rule-item">
-                  <span class="rule-desc">鎻愭姤浜у搧姣忔湀浜ゆ槗閲廡OP1,鑾�</span>
-                  <el-input 
-                    v-model="rules.monthlyTop1" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鎻愭姤浜у搧姣忔湀浜ゆ槗閲廡OP2,鑾�</span>
-                  <el-input 
-                    v-model="rules.monthlyTop2" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鎻愭姤浜у搧姣忔湀浜ゆ槗閲廡OP3,鑾�</span>
-                  <el-input 
-                    v-model="rules.monthlyTop3" 
-                    size="small"
-                    style="width: 60px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-              </div>
-            </div>
-          </div>
         </el-card>
       </div>
 
@@ -292,228 +117,166 @@
               <span class="section-title">绉垎娑堣�楄鍒�</span>
             </div>
           </template>
-          
+
           <!-- 璧勬簮浼犳挱 -->
-          <div class="rule-category">
-            <h4>璧勬簮浼犳挱</h4>
+          <div class="rule-category" v-for="consumeRule in rules.consumePointsRuleList">
+            <h4>{{ consumeRule.category }}</h4>
             <div class="rule-subcategory">
-              <h5>鏁板瓧璧勬簮</h5>
+<!--              <h5>鏁板瓧璧勬簮</h5>-->
             <div class="rule-items">
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚彇娑堟敹钘�,鎵i櫎</span>
-                <el-input 
-                  v-model="rules.productUnfavorited" 
+              <div class="rule-item" v-for="pointRuleDetials in consumeRule.pointsRules">
+                <span class="rule-desc">{{ pointRuleDetials.ruleName }} : {{ pointRuleDetials.ruleDescription}}</span>
+                <el-input
+                  v-model="pointRuleDetials.pointsValue"
                   size="small"
-                  style="width: 60px;"
+                  style="width: 50px;"
                   placeholder="璇疯緭鍏�"
                 />
                 <span class="unit">绉垎</span>
-              </div>
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚彇娑堢偣璧�,鎵i櫎</span>
-                <el-input 
-                  v-model="rules.productUnliked" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎</span>
-              </div>
-            </div>
-            </div>
-            <div class="rule-subcategory">
-              <h5>浜у搧璁㈤槄</h5>
-            <div class="rule-items">
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚彇娑堣闃咃紝鎵i櫎</span>
-                <el-input 
-                  v-model="rules.productUnfavorited" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎</span>
-              </div>
-              <div class="rule-item">
-                <span class="rule-desc">鎻愭姤浜у搧琚彇娑堣瘯鐢紝鎵i櫎</span>
-                <el-input 
-                  v-model="rules.productUnliked" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎</span>
-              </div>
-            </div>
-            </div>
-            <div class="rule-subcategory">
-              <h5>浜ゆ祦绀惧尯</h5>
-            <div class="rule-items">
-              <div class="rule-item">
-                <span class="rule-desc">鍒犻櫎鎻愰棶锛屾墸闄�</span>
-                <el-input 
-                  v-model="rules.productUnfavorited" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎</span>
-              </div>
-              <div class="rule-item">
-                <span class="rule-desc">鍒犻櫎璇勮锛屾墸闄�</span>
-                <el-input 
-                  v-model="rules.productUnliked" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎</span>
-              </div>
-              <div class="rule-item">
-                <span class="rule-desc">璇勮琚彇娑堢偣璧烇紝鎵i櫎</span>
-                <el-input 
-                  v-model="rules.productUnliked" 
-                  size="small"
-                  style="width: 60px;"
-                  placeholder="璇疯緭鍏�"
-                />
-                <span class="unit">绉垎</span>
+                <span class="unit" v-if="pointRuleDetials.isLimit === 1">,姣忔棩绉垎涓婇檺</span>
+                  <el-input
+                          v-model="pointRuleDetials.dailyLimit"
+                          size="small"
+                          style="width: 50px;"
+                          placeholder="璇疯緭鍏�"
+                          v-if="pointRuleDetials.isLimit === 1"
+                  />
               </div>
             </div>
             </div>
           </div>
-       
+
         </el-card>
 
         <!-- 绉垎杞崲瑙勫垯 -->
-        <el-card class="rule-section" shadow="never">
-          <template #header>
-            <div class="card-header">
-              <span class="section-title">绉垎杞崲瑙勫垯</span>
-            </div>
-          </template>
-          
-          <div class="rule-category">
-            <h4>绉垎杞崲</h4>
-            <div class="rule-subcategory">
-              <h5>鏁板瓧鍖栨爣鏉嗙Н鍒嗚浆鎹�</h5>
-              <div class="rule-items">
-                <div class="rule-item">
-                  <span class="rule-desc">鏁板瓧鍖栨爣鏉嗕釜浜�</span>
-                  <el-input 
-                    v-model="rules.benchmarkPersonalToUnit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栨爣鏉嗗崟浣�</span>
-                  <el-input 
-                    v-model="rules.benchmarkUnitToPersonal" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鏁板瓧鍖栨爣鏉嗗崟浣�</span>
-                  <el-input 
-                    v-model="rules.benchmarkUnitToPersonal" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栨爣鏉嗕釜浜�</span>
-                  <el-input 
-                    v-model="rules.benchmarkPersonalToUnit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-              </div>
-            </div>
-            <div class="rule-subcategory">
-              <h5>鏁板瓧鍖栫煡璇嗙Н鍒嗚浆鎹�</h5>
-              <div class="rule-items">
-                <div class="rule-item">
-                  <span class="rule-desc">鏁板瓧鍖栫煡璇嗕釜浜�</span>
-                  <el-input 
-                    v-model="rules.knowledgePersonalToUnit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栫煡璇嗗崟浣�</span>
-                  <el-input 
-                    v-model="rules.knowledgeUnitToPersonal" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鏁板瓧鍖栫煡璇嗗崟浣�</span>
-                  <el-input 
-                    v-model="rules.knowledgeUnitToPersonal" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栫煡璇嗕釜浜�</span>
-                  <el-input 
-                    v-model="rules.knowledgePersonalToUnit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-              </div>
-            </div>
-            <div class="rule-subcategory">
-              <h5>鏁板瓧鍖栦骇鍝佺Н鍒嗚浆鎹�</h5>
-              <div class="rule-items">
-                <div class="rule-item">
-                  <span class="rule-desc">鏁板瓧鍖栦骇鍝佷釜浜�</span>
-                  <el-input 
-                    v-model="rules.productPersonalToUnit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栦骇鍝佸崟浣�</span>
-                  <el-input 
-                    v-model="rules.productUnitToPersonal" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-                <div class="rule-item">
-                  <span class="rule-desc">鏁板瓧鍖栦骇鍝佸崟浣�</span>
-                  <el-input 
-                    v-model="rules.productUnitToPersonal" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栦骇鍝佷釜浜�</span>
-                  <el-input 
-                    v-model="rules.productPersonalToUnit" 
-                    size="small"
-                    style="width: 80px;"
-                    placeholder="璇疯緭鍏�"
-                  />
-                  <span class="unit">绉垎</span>
-                </div>
-              </div>
-            </div>
-          </div>
-        </el-card>
+<!--        <el-card class="rule-section" shadow="never">-->
+<!--          <template #header>-->
+<!--            <div class="card-header">-->
+<!--              <span class="section-title">绉垎杞崲瑙勫垯</span>-->
+<!--            </div>-->
+<!--          </template>-->
+
+<!--          <div class="rule-category">-->
+<!--            <h4>绉垎杞崲</h4>-->
+<!--            <div class="rule-subcategory">-->
+<!--              <h5>鏁板瓧鍖栨爣鏉嗙Н鍒嗚浆鎹�</h5>-->
+<!--              <div class="rule-items">-->
+<!--                <div class="rule-item">-->
+<!--                  <span class="rule-desc">鏁板瓧鍖栨爣鏉嗕釜浜�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.benchmarkPersonalToUnit"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栨爣鏉嗗崟浣�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.benchmarkUnitToPersonal"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎</span>-->
+<!--                </div>-->
+<!--                <div class="rule-item">-->
+<!--                  <span class="rule-desc">鏁板瓧鍖栨爣鏉嗗崟浣�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.benchmarkUnitToPersonal"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栨爣鏉嗕釜浜�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.benchmarkPersonalToUnit"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎</span>-->
+<!--                </div>-->
+<!--              </div>-->
+<!--            </div>-->
+<!--            <div class="rule-subcategory">-->
+<!--              <h5>鏁板瓧鍖栫煡璇嗙Н鍒嗚浆鎹�</h5>-->
+<!--              <div class="rule-items">-->
+<!--                <div class="rule-item">-->
+<!--                  <span class="rule-desc">鏁板瓧鍖栫煡璇嗕釜浜�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.knowledgePersonalToUnit"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栫煡璇嗗崟浣�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.knowledgeUnitToPersonal"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎</span>-->
+<!--                </div>-->
+<!--                <div class="rule-item">-->
+<!--                  <span class="rule-desc">鏁板瓧鍖栫煡璇嗗崟浣�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.knowledgeUnitToPersonal"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栫煡璇嗕釜浜�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.knowledgePersonalToUnit"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎</span>-->
+<!--                </div>-->
+<!--              </div>-->
+<!--            </div>-->
+<!--            <div class="rule-subcategory">-->
+<!--              <h5>鏁板瓧鍖栦骇鍝佺Н鍒嗚浆鎹�</h5>-->
+<!--              <div class="rule-items">-->
+<!--                <div class="rule-item">-->
+<!--                  <span class="rule-desc">鏁板瓧鍖栦骇鍝佷釜浜�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.productPersonalToUnit"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栦骇鍝佸崟浣�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.productUnitToPersonal"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎</span>-->
+<!--                </div>-->
+<!--                <div class="rule-item">-->
+<!--                  <span class="rule-desc">鏁板瓧鍖栦骇鍝佸崟浣�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.productUnitToPersonal"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎鍏戞崲鏁板瓧鍖栦骇鍝佷釜浜�</span>-->
+<!--                  <el-input-->
+<!--                    v-model="rules.productPersonalToUnit"-->
+<!--                    size="small"-->
+<!--                    style="width: 80px;"-->
+<!--                    placeholder="璇疯緭鍏�"-->
+<!--                  />-->
+<!--                  <span class="unit">绉垎</span>-->
+<!--                </div>-->
+<!--              </div>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--        </el-card>-->
       </div>
     </div>
 
@@ -526,86 +289,106 @@
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, watch } from 'vue'
 import { useRoute } from 'vue-router'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ArrowLeft } from '@element-plus/icons-vue'
 import pointsApi from '../../../api/pointsApi'
+import qs from 'qs'
 
-// 鑾峰彇璺敱瀹炰緥
-const route = useRoute()
-// 鑾峰彇璺敱鍙傛暟涓殑瑙勫垯id
-const ruleId = route.query.ruleId as string
+// 瀹氫箟props
+interface Props {
+  ruleId?: string
+}
+
+const props = withDefaults(defineProps<Props>(), {
+  ruleId: ''
+})
+
+// 瀹氫箟emits
+const emit = defineEmits<{
+  goBack: []
+  saveSuccess: []
+}>()
+
+interface PointRule {
+  category: string,
+  pointsRules: PointRuleDetial[]
+}
+interface PointRuleDetial {
+  category: string,
+  id: number,
+  ruleDescription: string,
+  ruleName: string,
+  createdAt: string,
+  ruleType: number,
+  pointsWinner: number,
+  isLimit: number,
+  pointsValue: number,
+  dailyLimit: number
+}
 
 // 绉垎瑙勫垯閰嶇疆
-const rules = ref({
-  // 绉垎鑾峰彇瑙勫垯
-  benchmarkSubmission: 100,
-  knowledgeSubmission: 100,
-  productSubmission: 200,
-  productAccess: 1000,
-  resourceTransaction: 50,
-  resourceFavorited: 1,
-  resourceFavoritedDailyLimit: 100,
-  resourceLiked: 1,
-  resourceLikedDailyLimit: 100,
-  resourceViewThreshold: 100,
-  resourceViewed: 1,
-  resourceVideoPlayed: 5,
-  resourceDocumentViewed: 2,
-  productSubscribed: 10,
-  productSubscribedDailyLimit: 500,
-  productTrialed: 5,
-  productTrialedDailyLimit: 200,
-  dailyFirstLogin: 1,
-  postQuestion: 1,
-  postQuestionDailyLimit: 50,
-  postComment: 1,
-  postCommentDailyLimit: 100,
-  commentLiked: 1,
-  commentLikedDailyLimit: 50,
-  // 鍏朵粬婕旂ず瀛楁锛堝悗绔湭淇濆瓨杩欎簺椤规椂浼氬拷鐣ワ級
-  monthlyTop1: 1000,
-  monthlyTop2: 500,
-  monthlyTop3: 300,
+interface PointsRules {
+  getPointsRuleList: PointRule[],
+  consumePointsRuleList: PointRule[]
+}
 
-  // 绉垎娑堣�楄鍒�
-  resourceUnfavorited: 1,
-  resourceUnliked: 1,
-  productUnsubscribed: 10,
-  productUntrialed: 5,
-  deleteQuestion: 1,
-  deleteComment: 1,
-  commentUnliked: 1,
-  productUnfavorited: 2,
-  productUnliked: 1,
-
-  // 绉垎杞崲瑙勫垯
-  benchmarkPersonalToUnit: 100,
-  benchmarkUnitToPersonal: 100,
-  knowledgePersonalToUnit: 100,
-  knowledgeUnitToPersonal: 100,
-  productPersonalToUnit: 100,
-  productUnitToPersonal: 100,
+const rules = ref<PointsRules>({
+  consumePointsRuleList: [],
+  getPointsRuleList: []
 })
 
 // 鑾峰彇绉垎瑙勫垯閰嶇疆
 const getPointsRules = async () => {
   try {
-    if (ruleId) {
+    if (props.ruleId) {
       // 濡傛灉鏈塺uleId鍙傛暟锛屽垯鑾峰彇鐗瑰畾瑙勫垯
-      const res = await pointsApi.getPointsRuleById(ruleId)
+      const formData = new URLSearchParams();
+      formData.append('ruleId', props.ruleId);
+
+      const res = await pointsApi.getPointsRuleById(formData)
       if (res.code === 200 && res.data) {
+        res.data.getPointsRuleList.map(item => {
+          item.pointsRules.map(iitem => {
+            if(iitem.ruleDescription.indexOf('琚�') > -1){
+              iitem.descSort = 0
+            }else{
+              iitem.descSort = 1
+            }
+            return iitem
+          })
+          item.pointsRules.sort((a,b) => {
+            if(a.ruleName === b.ruleName){
+             return  a.descSort - b.descSort
+            }else {
+              return  a.ruleName.localeCompare(b.ruleName)
+            }
+          })
+        })
+        res.data.consumePointsRuleList.map(item => {
+          item.pointsRules.map(iitem => {
+            if(iitem.ruleDescription.indexOf('琚�') > -1){
+              iitem.descSort = 0
+            }else{
+              iitem.descSort = 1
+            }
+            return iitem
+          })
+          item.pointsRules.sort((a,b) => {
+            if(a.ruleName === b.ruleName){
+              return  a.descSort - b.descSort
+            }else {
+              return  a.ruleName.localeCompare(b.ruleName)
+            }
+          })
+        })
         // 灏嗗悗绔暟鎹槧灏勫埌鍓嶇瑙勫垯瀵硅薄
         Object.assign(rules.value, res.data)
+        console.log(rules.value)
       }
-    } else {
-      // 濡傛灉娌℃湁ruleId鍙傛暟锛屽垯鑾峰彇鎵�鏈夎鍒�
-      const res = await pointsApi.getPointsRules()
-      if (res.code === 200 && res.data) {
-        // 灏嗗悗绔暟鎹槧灏勫埌鍓嶇瑙勫垯瀵硅薄
-        Object.assign(rules.value, res.data)
-      }
+    }else{
+      ElMessage.error('瀵瑰簲瑙勫垯璁剧疆涓嶅瓨鍦�')
     }
   } catch (error) {
     console.error('鑾峰彇绉垎瑙勫垯澶辫触:', error)
@@ -620,10 +403,16 @@
       cancelButtonText: '鍙栨秷',
       type: 'warning',
     })
-    
-    const res = await pointsApi.savePointsRules(rules.value)
+    let pointRuleDetials: PointRuleDetial[] = []
+    rules.value.getPointsRuleList.forEach(k => {
+        pointRuleDetials.push(...k.pointsRules)
+    })
+    rules.value.consumePointsRuleList.forEach(k =>  pointRuleDetials.push(...k.pointsRules))
+    const res = await pointsApi.savePointsRules(pointRuleDetials)
     if (res.code === 200) {
       ElMessage.success('淇濆瓨鎴愬姛')
+      // 鍙戝嚭淇濆瓨鎴愬姛浜嬩欢
+      emit('saveSuccess')
     } else {
       ElMessage.error(res.msg || '淇濆瓨澶辫触')
     }
@@ -643,7 +432,7 @@
       cancelButtonText: '鍙栨秷',
       type: 'warning',
     })
-    
+
     await getPointsRules()
     ElMessage.success('閲嶇疆鎴愬姛')
   } catch (error) {
@@ -656,11 +445,27 @@
 
 // 杩斿洖涓婁竴椤�
 const goBack = () => {
-  history.back()
+  // 濡傛灉鏄粠缁勪欢璋冪敤锛屽彂鍑篻oBack浜嬩欢
+  if (props.ruleId) {
+    emit('goBack')
+  } else {
+    // 鍚﹀垯浣跨敤鍘熸湁鐨勮繑鍥為�昏緫
+    history.back()
+  }
 }
 
+// 鐩戝惉ruleId鍙樺寲
+watch(() => props.ruleId, (newRuleId) => {
+  if (newRuleId) {
+    getPointsRules()
+  }
+}, { immediate: true })
+
 onMounted(() => {
-  getPointsRules()
+  // 鍙湁鍦ㄦ病鏈塸rops.ruleId鏃舵墠鎵ц鍘熸湁鐨勯�昏緫
+  if (!props.ruleId) {
+    getPointsRules()
+  }
 })
 </script>
 
@@ -690,7 +495,7 @@
         cursor: pointer;
         color: #409eff;
         font-size: 18px;
-        
+
         &:hover {
           color: #66b1ff;
         }
@@ -715,7 +520,7 @@
     max-width: 1665px;
     margin: 0 auto;
     margin-bottom: 40px;
-    
+
     @media (max-width: 768px) {
       flex-direction: column;
       gap: 16px;
@@ -727,7 +532,7 @@
     justify-content: center;
     gap: 20px;
     padding: 20px 0;
-    
+
     .el-button {
       min-width: 120px;
       height: 40px;
@@ -738,7 +543,7 @@
   .left-column {
     flex: 1;
     max-width: 50%;
-    
+
     @media (max-width: 768px) {
       max-width: 100%;
     }
@@ -750,7 +555,7 @@
     display: flex;
     flex-direction: column;
     gap: 20px;
-    
+
     @media (max-width: 768px) {
       max-width: 100%;
       gap: 16px;
@@ -760,13 +565,13 @@
   .rule-section {
     border-radius: 8px;
     border: 1px solid #e4e7ed;
-    
+
     .card-header {
       // background-color: #fafafa;
       // background-color: rgba(221, 230, 244, 1);
-      
+
       // border-bottom: 1px solid #e4e7ed;
-      
+
       .section-title {
         font-size: 16px;
         font-weight: 600;
@@ -839,11 +644,11 @@
       :deep(.el-input) {
         .el-input__wrapper {
           box-shadow: 0 0 0 1px #dcdfe6 inset;
-          
+
           &:hover {
             box-shadow: 0 0 0 1px #c0c4cc inset;
           }
-          
+
           &.is-focus {
             box-shadow: 0 0 0 1px #409eff inset;
           }

--
Gitblit v1.8.0