Эх сурвалжийг харах

目标管理-更改界面样式加入(元)单位和两位小数点。

DongZ 1 жил өмнө
parent
commit
60862e5eae

+ 44 - 17
src/views/business/spd/target/AnnualSaleGoal.vue

@@ -109,7 +109,7 @@
     <el-table v-loading="loading" :data="annualSaleGoalList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" width="180" />
-      <el-table-column label="目标名称" align="center" prop="goalName" width="180" />
+      <el-table-column label="目标名称" align="center" prop="goalName" width="240" />
       <el-table-column label="单据日期" align="center" prop="documentDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.documentDate, '{y}-{m}-{d}') }}</span>
@@ -120,7 +120,7 @@
       <el-table-column label="销售区域" align="center" prop="saleZone" width="180" />
       <el-table-column label="制单人" align="center" prop="creator" />
       <el-table-column label="部门" align="center" prop="dept" width="180" />
-      <el-table-column label="目标合计" align="center" prop="goalTotal" />
+      <el-table-column label="目标合计(元)" align="center" prop="goalTotal" />
       <el-table-column label="备注" align="center" prop="notes" width="180" />
       <el-table-column show-overflow-tooltip label="状态" align="center" width="200" prop="status">
         <template slot-scope="scope">
@@ -204,7 +204,7 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="6">
-            <el-form-item label="目标合计" prop="goalTotal">
+            <el-form-item label="目标合计(元)" prop="goalTotal">
               <el-input v-model="form.goalTotal" placeholder="目标合计自动计算" clearable disabled />
             </el-form-item>
           </el-col>
@@ -309,89 +309,89 @@
                     </el-popover-select-v2>
                   </template>
                 </el-table-column>
-                <el-table-column label="合计" align="center" prop="totalGoal" width="180">
+                <el-table-column label="合计(元)" align="center" prop="totalGoal" width="180">
                   <template slot-scope="scope">
                     <el-input v-model="annualSaleGoalDetailsList[scope.$index].totalGoal" disabled></el-input>
                   </template>
                 </el-table-column>
-                <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
+                <el-table-column label="一月(元)" align="center" prop="januaryGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].januaryGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
+                <el-table-column label="二月(元)" align="center" prop="februaryGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].februaryGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="三月" align="center" prop="marchGoal" width="220">
+                <el-table-column label="三月(元)" align="center" prop="marchGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].marchGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
+                <el-table-column label="四月(元)" align="center" prop="aprilGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].aprilGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="五月" align="center" prop="mayGoal" width="220">
+                <el-table-column label="五月(元)" align="center" prop="mayGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].mayGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="六月" align="center" prop="juneGoal" width="220">
+                <el-table-column label="六月(元)" align="center" prop="juneGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].juneGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="七月" align="center" prop="julyGoal" width="220">
+                <el-table-column label="七月(元)" align="center" prop="julyGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].julyGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="八月" align="center" prop="augustGoal" width="220">
+                <el-table-column label="八月(元)" align="center" prop="augustGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].augustGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
+                <el-table-column label="九月(元)" align="center" prop="septemberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].septemberGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
+                <el-table-column label="十月(元)" align="center" prop="octoberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].octoberGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
+                <el-table-column label="十一月(元)" align="center" prop="novemberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].novemberGoal" :precision="2" :step="0.1" :min="0">
                     </el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
+                <el-table-column label="十二月(元)" align="center" prop="decemberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
                       v-model="annualSaleGoalDetailsList[scope.$index].decemberGoal" :precision="2" :step="0.1" :min="0">
@@ -693,6 +693,9 @@
           this.annualSaleGoalList = response.rows;
           this.total = response.total;
           this.loading = false;
+          this.annualSaleGoalList.forEach(item => {
+            item.goalTotal = item.goalTotal.toFixed(2);
+          })
           console.log(this.annualSaleGoalList);
         });
       },
@@ -989,7 +992,31 @@
         this.form.goalTotal = sum.toFixed(2)
       },
       getSummaries(param) {
-        return getSummary(param)
+        console.log(param, 'param')
+        const { columns, data } = param;
+        console.log(columns, 'columns')
+        const sums = [];
+        columns.forEach((column, index) => {
+          if (index === 0) {
+            sums[index] = '小计';
+            return;
+          }
+          const values = data.map(item => Number(item[column.property]));
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0);
+            sums[index] = sums[index].toFixed(2);
+          } else {
+            sums[index] = ' ';
+          }
+        });
+        return sums;
       },
       // 给table添加必填项
       addRedStar(h, {

+ 43 - 16
src/views/business/spd/target/AnnualSaleGoalMerge.vue

@@ -127,7 +127,7 @@
     <el-table v-loading="loading" :data="annualSaleGoalMergeList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" width="180" />
-      <el-table-column label="目标名称" align="center" prop="goalName" width="180" />
+      <el-table-column label="目标名称" align="center" prop="goalName" width="240" />
       <el-table-column label="单据日期" align="center" prop="documentDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.documentDate, '{y}-{m}-{d}') }}</span>
@@ -142,7 +142,7 @@
       <el-table-column label="制单人" align="center" prop="creator" width="180" />
       <el-table-column label="部门" align="center" prop="dept" width="180" />
       <el-table-column label="目标类型" align="center" prop="goalCategory" width="180" />
-      <el-table-column label="目标值汇总" align="center" prop="goalTotal" width="180" />
+      <el-table-column label="目标值汇总(元)" align="center" prop="goalTotal" width="180" />
       <el-table-column label="销售区域" align="center" prop="saleZone" width="220" />
       <el-table-column label="一级分类" align="center" prop="oneLevelClassify" width="180" />
       <el-table-column label="二级分类" align="center" prop="twoLevelClassify" width="180" />
@@ -451,78 +451,78 @@
                     </el-popover-select-v2>
                   </template>
                 </el-table-column>
-                <el-table-column label="合计" align="center" prop="totalGoal" width="180">
+                <el-table-column label="合计(元)" align="center" prop="totalGoal" width="180">
                   <template slot-scope="scope">
                     <el-input v-model="areaDetailList[scope.$index].totalGoal" disabled></el-input>
                   </template>
                 </el-table-column>
-                <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
+                <el-table-column label="一月(元)" align="center" prop="januaryGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].januaryGoal" :precision="2"
                       :step="0.1" :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
+                <el-table-column label="二月(元)" align="center" prop="februaryGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].februaryGoal" :precision="2"
                       :step="0.1" :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="三月" align="center" prop="marchGoal" width="220">
+                <el-table-column label="三月(元)" align="center" prop="marchGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].marchGoal" :precision="2" :step="0.1"
                       :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
+                <el-table-column label="四月(元)" align="center" prop="aprilGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].aprilGoal" :precision="2" :step="0.1"
                       :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="五月" align="center" prop="mayGoal" width="220">
+                <el-table-column label="五月(元)" align="center" prop="mayGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].mayGoal" :precision="2" :step="0.1"
                       :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="六月" align="center" prop="juneGoal" width="220">
+                <el-table-column label="六月(元)" align="center" prop="juneGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].juneGoal" :precision="2" :step="0.1"
                       :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="七月" align="center" prop="julyGoal" width="220">
+                <el-table-column label="七月(元)" align="center" prop="julyGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].julyGoal" :precision="2" :step="0.1"
                       :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="八月" align="center" prop="augustGoal" width="220">
+                <el-table-column label="八月(元)" align="center" prop="augustGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].augustGoal" :precision="2" :step="0.1"
                       :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
+                <el-table-column label="九月(元)" align="center" prop="septemberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].septemberGoal" :precision="2"
                       :step="0.1" :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
+                <el-table-column label="十月(元)" align="center" prop="octoberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].octoberGoal" :precision="2"
                       :step="0.1" :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
+                <el-table-column label="十一月(元)" align="center" prop="novemberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].novemberGoal" :precision="2"
                       :step="0.1" :min="0"></el-input-number>
                   </template>
                 </el-table-column>
-                <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
+                <el-table-column label="十二月(元)" align="center" prop="decemberGoal" width="220">
                   <template slot-scope="scope">
                     <el-input-number disabled v-model="areaDetailList[scope.$index].decemberGoal" :precision="2"
                       :step="0.1" :min="0"></el-input-number>
@@ -923,6 +923,9 @@
           this.annualSaleGoalMergeList = response.rows;
           this.total = response.total;
           this.loading = false;
+          this.annualSaleGoalMergeList.forEach(item => {
+            item.goalTotal = item.goalTotal.toFixed(2);
+          })
         });
       },
       getListDetails() {
@@ -1392,7 +1395,31 @@
         this.form.goalTotal = sum.toFixed(2)
       },
       getSummaries(param) {
-        return getSummary(param)
+        console.log(param, 'param')
+        const { columns, data } = param;
+        console.log(columns, 'columns')
+        const sums = [];
+        columns.forEach((column, index) => {
+          if (index === 0) {
+            sums[index] = '小计';
+            return;
+          }
+          const values = data.map(item => Number(item[column.property]));
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0);
+            sums[index] = sums[index].toFixed(2);
+          } else {
+            sums[index] = ' ';
+          }
+        });
+        return sums;
       },
       // 合并数据
       clickMerge() {

+ 4 - 4
src/views/business/spd/target/MonthSaleGoal.vue

@@ -107,16 +107,16 @@
 
     <el-table v-loading="loading" :data="monthSaleGoalList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
-      <el-table-column label="编码" align="center" prop="code" />
-      <el-table-column label="目标名称" align="center" prop="goalName" />
+      <el-table-column label="编码" align="center" prop="code" width="180" />
+      <el-table-column label="目标名称" align="center" prop="goalName" width="240" />
       <el-table-column label="单据日期" align="center" prop="documentDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.documentDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
       <el-table-column label="年度" align="center" prop="annual" />
-      <el-table-column label="客户" align="center" prop="custom" />
-      <el-table-column label="销售区域" align="center" prop="saleZone" />
+      <el-table-column label="客户" align="center" prop="custom" width="180" />
+      <el-table-column label="销售区域" align="center" prop="saleZone" width="180" />
       <el-table-column label="制单人" align="center" prop="creator" />
       <el-table-column label="部门" align="center" prop="dept" />
       <el-table-column label="目标合计" align="center" prop="goalSum" />