xiaohaizhao пре 6 месеци
родитељ
комит
906dc8d41b
2 измењених фајлова са 75 додато и 224 уклоњено
  1. 57 206
      packageA/targetBoard/index.js
  2. 18 18
      packageA/targetBoard/index.wxml

+ 57 - 206
packageA/targetBoard/index.js

@@ -21,7 +21,9 @@ Page({
     this.getAreaList()
     _Http.basic({
       "id": "2025103010165903",
-      "content": {}
+      "content": {
+        date: Date.now(),
+      }
     }).then(res => {
       if (res.code != 1) return wx.showToast({
         title: res.msg,
@@ -86,6 +88,7 @@ Page({
         "pageNumber": 1,
         "pageSize": 20,
         "year": 2025,
+        date: Date.now(),
         "where": {
           "areaname2": "",
           "areaname3": this.data.currentUser.areaname,
@@ -94,7 +97,7 @@ Page({
         }
       }
     }).then(res => {
-      console.log("回款明细", res)
+      // console.log("回款明细", res)
       if (res.code != 1) return wx.showToast({
         title: res.msg,
         icon: "none"
@@ -189,8 +192,8 @@ Page({
       })
       this.setData({
         paymentDetails,
-        totalWidth: this.getTotalWidth(paymentDetails[0].cols),
-        headerRow
+        totalWidth: paymentDetails.length ? this.getTotalWidth(paymentDetails[0].cols) : this.data.totalWidth,
+        headerRow: paymentDetails.length ? headerRow : []
       })
     })
   },
@@ -210,7 +213,8 @@ Page({
     _Http.basic({
       "id": "2025103009445603",
       "content": {
-        pageSize: 9999
+        pageSize: 9999,
+        date: Date.now(),
       }
     }).then(res => {
       if (res.code != 1) return wx.showToast({
@@ -225,103 +229,50 @@ Page({
       })
     })
   },
+
   // 查询业务员月度目标
   queryMonthlyTarget() {
-    let that = this;
     _Http.basic({
       "id": "2025103010192003",
       "content": {
         "sa_saleareaid": this.data.currentUser.sa_saleareaid,
         "year": this.data.currentYear,
-        "month": this.data.currentMonth
+        "month": this.data.currentMonth,
+        date: Date.now(),
       }
     }).then(res => {
-      console.log("业务员月度目标", res)
-      if (res.code != 1) return wx.showToast({
-        title: res.msg,
-        icon: "none"
-      });
+      console.log("业务员月度目标", res);
+      if (res.code != 1) {
+        return wx.showToast({
+          title: res.msg,
+          icon: "none"
+        });
+      }
+      let monthlyMetrics = {};
+      for (const key in res.data) {
+        if (key != 'actualcompletedpercentage') {
+          monthlyMetrics[key] = this.CNY(res.data[key] || 0)
+        } else {
+          monthlyMetrics[key] = (res.data[key] || 0).toFixed(2)
+        }
+      }
       this.setData({
-        monthlyMetrics: calculateMonthlyMetrics(res)
-      })
-    })
-
-    function calculateMonthlyMetrics(res) {
-      const data = res?.data || {};
-
-      // ===============================
-      // 🔹 基础字段(接口已提供)
-      // ===============================
-      const rw_month = data.rw_month || 0; // 月度任务(万)
-      const previousexceed = data.previousexceed || 0; // 上月完成额超出部分(1月为0)
-      const gccompletedamount = data.gccompletedamount || 0; // GC工程完成额
-      const gccompletedamountexceed = data.gccompletedamountexceed || 0; // GC工程超出部分
-      const zzcompletedamount = data.zzcompletedamount || 0; // 整装工程完成额
-      const zzcompletedamountexceed = data.zzcompletedamountexceed || 0; // 整装工程超出部分
-
-      // ===============================
-      // ⚠️ 缺失字段(需要后端或其他接口提供)
-      // ===============================
-      const cashbackamount = data.cashbackamount || 0; // ⚠️ 现金账户回款(缺少)
-      const advancepaymentamount = data.advancepaymentamount || 0; // ⚠️ 活动预存账户回款(缺少)
-      const rebateamount = data.rebateamount || 0; // ⚠️ 返利(缺少)
-
-      // ===============================
-      // 🔹 中间计算项
-      // ===============================
-      // 回款完成额
-      const paymentCompleted = cashbackamount + advancepaymentamount + rebateamount;
-
-      // 实际完成额
-      const actualcompletedamount =
-        paymentCompleted + gccompletedamount + zzcompletedamount;
-
-      // 实际完成百分比
-      const actualcompletedpercentage =
-        rw_month > 0 ? (actualcompletedamount / rw_month) * 100 : 0;
-
-      // 完成额超出100%部分
-      const completedamountexceed100 =
-        paymentCompleted + previousexceed + gccompletedamount + zzcompletedamount - rw_month;
-
-      // 若为负则取0
-      const completedamountexceed100_fixed =
-        completedamountexceed100 > 0 ? completedamountexceed100 : 0;
-
-      // ===============================
-      // 🔹 返回完整结果(金额类统一格式化)
-      // ===============================
-      return {
-        // ---- 原始字段 ----
-        rw_month: that.CNY(rw_month), // 月度任务额(万)
-        previousexceed: that.CNY(previousexceed), // 上月超出额
-        gccompletedamount: that.CNY(gccompletedamount), // GC工程完成额
-        gccompletedamountexceed: that.CNY(gccompletedamountexceed), // GC工程超出部分
-        zzcompletedamount: that.CNY(zzcompletedamount), // 整装工程完成额
-        zzcompletedamountexceed: that.CNY(zzcompletedamountexceed), // 整装工程超出部分
-
-        // ---- 缺少但定义字段 ----
-        cashbackamount: that.CNY(cashbackamount), // ⚠️ 现金账户回款
-        advancepaymentamount: that.CNY(advancepaymentamount), // ⚠️ 活动预存账户回款
-        rebateamount: that.CNY(rebateamount), // ⚠️ 返利
+        monthlyMetrics
+      });
+    });
 
-        // ---- 计算结果 ----
-        paymentCompleted: that.CNY(paymentCompleted), // 回款完成额
-        actualcompletedamount: that.CNY(actualcompletedamount), // 实际完成额
-        actualcompletedpercentage: actualcompletedpercentage.toFixed(2) + '%', // 实际完成百分比(保留两位小数)
-        completedamountexceed100: that.CNY(completedamountexceed100_fixed), // 完成额超出100%部分
-      };
-    }
   },
+
   // 查询业务员季度目标
   queryQuarterlyTarget() {
-    let that = this;
     _Http.basic({
       "id": "2025103010193903",
       "version": 1,
       "content": {
         "sa_saleareaid": this.data.currentUser.sa_saleareaid,
-        "year": this.data.currentYear
+        "year": this.data.currentYear,
+        "month": this.data.currentMonth,
+        date: Date.now(),
       }
     }).then(res => {
       console.log("业务员季度目标", res);
@@ -329,79 +280,30 @@ Page({
         title: res.msg,
         icon: "none"
       });
+
+      let quarterlyMetrics = {};
+      for (const key in res.data) {
+        if (key != 'actualcompletedpercentage') {
+          quarterlyMetrics[key] = this.CNY(res.data[key] || 0)
+        } else {
+          quarterlyMetrics[key] = (res.data[key] || 0).toFixed(2)
+        }
+      }
       this.setData({
-        quarterlyMetrics: calculateQuarterlyMetrics(res)
+        quarterlyMetrics
       });
-      console.log("季度", this.data.quarterlyMetrics)
     });
-
-    /**
-     * 季度指标计算函数
-     * 根据接口返回的 res.data 自动计算核心指标,并格式化金额
-     */
-    function calculateQuarterlyMetrics(res) {
-      const data = res?.data || {};
-
-      // ===============================
-      // 🔹 基础字段(接口已提供)
-      // ===============================
-      const rw_quarter = data.rw_quarter || 0; // 季度任务额(万)= 当季各月度任务额总计
-      const previousexceed = data.previousexceed || 0; // 上季完成额超出部分
-      const gccompletedamount = data.gccompletedamount || 0; // GC工程完成额(季度累计)
-      const zzcompletedamount = data.zzcompletedamount || 0; // 整装工程完成额(季度累计)
-      const actualcompletedamount = data.actualcompletedamount || 0; // 实际完成额(季度实际回款+GC+整装)
-      const actualcompletedpercentage = data.actualcompletedpercentage || 0; // 实际完成百分比(季度原始值)
-      const completedamount = data.completedamount || 0; // 完成额(未超出部分)
-
-      // ===============================
-      // ⚠️ 缺失字段(需后端补充)
-      // ===============================
-      const paymentCompleted = data.paymentCompleted || 0; // ⚠️ 季度回款完成额(当季各月度回款完成额总计)
-      // 若后端没提供,可暂用 actualcompletedamount - gc - zz 近似估算:
-      const estimatedPaymentCompleted = paymentCompleted || (actualcompletedamount - gccompletedamount - zzcompletedamount);
-
-      // ===============================
-      // 🔹 计算逻辑
-      // ===============================
-      // 季度完成额 = 回款完成额 + 上季超出额 + GC + 整装
-      const quarterCompletedAmount =
-        estimatedPaymentCompleted + previousexceed + gccompletedamount + zzcompletedamount;
-
-      // 季度百分比 = 季度完成额 / 季度任务额 * 100
-      const quarterPercentage =
-        rw_quarter > 0 ? (quarterCompletedAmount / rw_quarter) * 100 : 0;
-
-      // ===============================
-      // 🔹 返回完整结果(金额格式化)
-      // ===============================
-      return {
-        // ---- 原始字段 ----
-        rw_quarter: that.CNY(rw_quarter), // 季度任务额(万)
-        previousexceed: that.CNY(previousexceed), // 上季完成额超出部分
-        gccompletedamount: that.CNY(gccompletedamount), // GC工程完成额
-        zzcompletedamount: that.CNY(zzcompletedamount), // 整装工程完成额
-        actualcompletedamount: that.CNY(actualcompletedamount), // 实际完成额
-        completedamount: that.CNY(completedamount), // 完成额(未超出部分)
-
-        // ---- 缺失但定义字段 ----
-        paymentCompleted: that.CNY(estimatedPaymentCompleted), // ⚠️ 季度回款完成额(若后端未返回则估算)
-
-        // ---- 计算结果 ----
-        quarterCompletedAmount: that.CNY(quarterCompletedAmount), // 季度完成额
-        quarterPercentage: quarterPercentage.toFixed(2) + '%', // 季度完成百分比
-      };
-    }
   },
   // 查询业务员总指标
   queryOverallTarget() {
-    let that = this;
     _Http.basic({
       "id": "2025103010195403",
       "version": 1,
       "content": {
         "sa_saleareaid": this.data.currentUser.sa_saleareaid,
         "year": this.data.currentYear,
-        "months": this.data.months // 默认或用户选择的月份区间
+        "months": this.data.months, // 默认或用户选择的月份区间
+        date: Date.now(),
       }
     }).then(res => {
       console.log("业务员总指标", res);
@@ -409,70 +311,19 @@ Page({
         title: res.msg,
         icon: "none"
       });
+
+      let overallMetrics = {};
+      for (const key in res.data) {
+        if (key != 'actualcompletedpercentage') {
+          overallMetrics[key] = this.CNY(res.data[key] || 0)
+        } else {
+          overallMetrics[key] = (res.data[key] || 0).toFixed(2)
+        }
+      }
       this.setData({
-        overallMetrics: calculateOverallMetrics(res)
-      })
+        overallMetrics
+      });
     });
-
-    /**
-     * 总指标计算函数
-     * 根据接口返回 res.data 计算核心指标并格式化金额
-     */
-    function calculateOverallMetrics(res) {
-      const data = res?.data || {};
-
-      // ===============================
-      // 🔹 基础字段(接口已提供)
-      // ===============================
-      const rw_all = data.rw_all || 0; // 总任务额(万)
-      const gccompletedamount = data.gccompletedamount || 0; // GC工程完成额(所选区间累计)
-      const zzcompletedamount = data.zzcompletedamount || 0; // 整装工程完成额(所选区间累计)
-      const actualcompletedamount = data.actualcompletedamount || 0; // 实际完成额
-      const actualcompletedpercentage = data.actualcompletedpercentage || 0; // 实际完成百分比
-      const completedamount = data.completedamount || 0; // 完成额(未超出部分)
-      const differenceamount = data.differenceamount || 0; // 差额(目标与实际差距)
-
-      // ===============================
-      // ⚠️ 缺失字段(需后端补充)
-      // ===============================
-      const paymentCompleted = data.paymentCompleted || 0; // ⚠️ 回款完成额(区间累计)
-      // 若后端暂未提供,则用“实际完成额 - GC - 整装”估算
-      const estimatedPaymentCompleted = paymentCompleted || (actualcompletedamount - gccompletedamount - zzcompletedamount);
-
-      // ===============================
-      // 🔹 计算逻辑
-      // ===============================
-      // 总完成额 = 回款完成额 + GC + 整装
-      const totalCompletedAmount = estimatedPaymentCompleted + gccompletedamount + zzcompletedamount;
-
-      // 百分比 = 总完成额 / 总任务额 * 100
-      const totalPercentage = rw_all > 0 ? (totalCompletedAmount / rw_all) * 100 : 0;
-
-      // 距70%差额 = (任务额 * 70%) - 实际完成额(若小于0取0)
-      const target70 = rw_all * 0.7;
-      const differenceTo70 = Math.max(target70 - totalCompletedAmount, 0);
-
-      // ===============================
-      // 🔹 返回结果(金额格式化)
-      // ===============================
-      return {
-        // ---- 原始字段 ----
-        rw_all: that.CNY(rw_all), // 总任务额(万)
-        gccompletedamount: that.CNY(gccompletedamount), // GC工程完成额
-        zzcompletedamount: that.CNY(zzcompletedamount), // 整装工程完成额
-        actualcompletedamount: that.CNY(actualcompletedamount), // 实际完成额
-        completedamount: that.CNY(completedamount), // 完成额(未超出部分)
-        differenceamount: that.CNY(differenceamount), // 差额
-
-        // ---- 缺失但定义字段 ----
-        paymentCompleted: that.CNY(estimatedPaymentCompleted), // ⚠️ 回款完成额(若缺失则估算)
-
-        // ---- 计算结果 ----
-        totalCompletedAmount: that.CNY(totalCompletedAmount), // 总完成额
-        totalPercentage: totalPercentage.toFixed(2) + '%', // 总完成百分比
-        differenceTo70: that.CNY(differenceTo70), // 距70%差额
-      };
-    }
   },
   CNY(value) {
     if (value === null || value === undefined || isNaN(value)) return '0';

+ 18 - 18
packageA/targetBoard/index.wxml

@@ -24,11 +24,11 @@
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>回款完成额</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.paymentCompleted}}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.completedamount  }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>上月完成额超出部分</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.previousexceed }}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.previousexceed  }}</view>
 			</view>
 		</view>
 		<view class="grid-container" style="border: 1px solid #306BFD;">
@@ -38,11 +38,11 @@
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>当月完成额</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.gccompletedamount}}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.gccompletedamount }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>超出部分</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.gccompletedamountexceed }}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.gccompletedamountexceed  }}</view>
 			</view>
 		</view>
 		<view class="grid-container" style="border: 1px solid #306BFD;">
@@ -52,26 +52,26 @@
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>当月完成额</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.zzcompletedamount}}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.zzcompletedamount }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>超出部分</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.zzcompletedamountexceed }}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.zzcompletedamountexceed  }}</view>
 			</view>
 		</view>
 		<view class="grid-container">
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>完成额超出100%的部分</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.completedamountexceed100}}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.completedamountexceed100 }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>实际完成额</view>
-				<view class='grid-container-item-value'>{{ monthlyMetrics.actualcompletedamount}}</view>
+				<view class='grid-container-item-value'>{{ monthlyMetrics.actualcompletedamount }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>当月实际完成\n百分比</view>
 				<view class='grid-container-item-value' style="color: #D9001B;">{{
-					monthlyMetrics.actualcompletedpercentage }}</view>
+					monthlyMetrics.actualcompletedpercentage  }}</view>
 			</view>
 		</view>
 	</view>
@@ -82,11 +82,11 @@
 		<view class="grid-container">
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>季度任务(万)</view>
-				<view class='grid-container-item-value'>{{ quarterlyMetrics.rw_quarter}}</view>
+				<view class='grid-container-item-value'>{{ quarterlyMetrics.rw_quarter }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>回款完成额</view>
-				<view class='grid-container-item-value'>{{ quarterlyMetrics.paymentCompleted}}</view>
+				<view class='grid-container-item-value'>{{ quarterlyMetrics.completedamount }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>上季度完成额超出部分</view>
@@ -94,7 +94,7 @@
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>GC工程</view>
-				<view class='grid-container-item-value'>{{ quarterlyMetrics.gccompletedamount}}</view>
+				<view class='grid-container-item-value'>{{ quarterlyMetrics.gccompletedamount }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>整装工程</view>
@@ -102,12 +102,12 @@
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>季度完成总额</view>
-				<view class='grid-container-item-value'>{{ quarterlyMetrics.quarterCompletedAmount}}</view>
+				<view class='grid-container-item-value'>{{ quarterlyMetrics.actualcompletedamount}}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>季度百分比</view>
 				<view class='grid-container-item-value' style="color: #D9001B;">{{
-					quarterlyMetrics.quarterPercentage }}</view>
+					quarterlyMetrics.actualcompletedpercentage }}</view>
 			</view>
 		</view>
 	</view>
@@ -127,7 +127,7 @@
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>回款完成额</view>
-				<view class='grid-container-item-value'>{{ overallMetrics.paymentCompleted}}</view>
+				<view class='grid-container-item-value'>{{ overallMetrics.completedamount}}</view>
 			</view>
 		</view>
 		<view class="grid-container">
@@ -146,12 +146,12 @@
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>百分比</view>
 				<view class='grid-container-item-value' style="color: #D9001B;">{{
-					overallMetrics.totalPercentage }}</view>
+					overallMetrics.actualcompletedpercentage }}</view>
 			</view>
 			<view class="grid-container-item">
 				<view class='grid-container-item-label'>距70%差额</view>
 				<view class='grid-container-item-value' style="color: #D9001B;">{{
-					overallMetrics.differenceTo70 }}</view>
+					overallMetrics.differenceamount }}</view>
 			</view>
 		</view>
 	</view>
@@ -165,7 +165,7 @@
 	<view class="label">
 		回款明细
 	</view>
-	<Yl_Empty wx:if="{{!paymentDetails}}" />
+	<Yl_Empty wx:if="{{!paymentDetails.length}}" />
 	<scroll-view scroll-x>
 		<view class="table" style="width: {{totalWidth}}rpx;">
 			<view class="row">