فهرست منبع

1.资产评估人员提成申报新增填写提成比例
2.我的提成新增资产业务列表

GouGengquan 1 سال پیش
والد
کامیت
4a202708e3
4فایلهای تغییر یافته به همراه345 افزوده شده و 191 حذف شده
  1. 3 1
      src/api/modules/businessCommissionRate.js
  2. 3 0
      src/api/modules/businessIncome.js
  3. 45 8
      src/views/income/assets/evaluate.vue
  4. 294 182
      src/views/income/myIncome.vue

+ 3 - 1
src/api/modules/businessCommissionRate.js

@@ -15,9 +15,11 @@ export default {
   delete(params) {
     return request.delete(`businessCommissionRate/${params}`)
   },
-
   cateList(params1,params2){
     return request.get(`businessCommissionRate/cate/${params1}/${params2}`)
+  },
+  detail(params) {
+    return request.get(`businessCommissionRate/${params}`)
   }
  
 }

+ 3 - 0
src/api/modules/businessIncome.js

@@ -6,5 +6,8 @@ export default {
   myMajorIncome(params) {
     return request.get(`businessIncome/my/major`, { params: params })
   },
+  myAssetsIncome(params) {
+    return request.get(`businessIncome/my/assets`, { params: params })
+  }
 
 }

+ 45 - 8
src/views/income/assets/evaluate.vue

@@ -138,10 +138,18 @@
                         <el-form-item label="业务分类:" prop="commissionRateId" label-width="140px"
                             class="postInfo-container-item">
                             <el-select clearable v-model="declareForm.commissionRateId" placeholder="请选择业务分类"
-                                style="width: 100%;">
+                                style="width: 100%;" @change="getAssetsEvaluateCateDetail()">
                                 <el-option v-for="(c, id) in cates" :value="c.id" :label="c.name">{{ c.name }}</el-option>
                             </el-select>
                         </el-form-item>
+                        <el-form-item label="提成比例:" prop="ratio" label-width="140px" class="postInfo-container-item">
+                            <el-input v-model="declareForm.ratio" :placeholder="ratioPlaceholderData" type="number"
+                                :disabled="cateDetail == null || cateDetail.maxRatio == null">
+                                <template #suffix>
+                                    %
+                                </template>
+                            </el-input>
+                        </el-form-item>
                     </el-form>
                     <p style="color: red;">绩效比例&参与时长:</p>
                     <el-row style="margin-top: 10px;margin-left: 40px;" v-for="(member, index) in assetsBusinessMembers"
@@ -201,14 +209,28 @@ export default {
 
     },
     data() {
+        var checkRatioValue = (rule, value, callback) => {
+            if (this.cateDetail.maxRatio !== undefined && this.cateDetail.maxRatio !== null) {
+                if (this.declareForm.ratio >= this.cateDetail.minRatio && this.declareForm.ratio <= this.cateDetail.maxRatio) {
+                    callback();
+                } else {
+                    return callback(new Error('提成比例须在 ' + this.cateDetail.minRatio +"% - " + this.cateDetail.maxRatio +"% 之间"));
+                }
+            }else{
+                callback();
+            }
+        };
         return {
             rules: {
-                commissionRateId: [{
-                    required: true,
-                    message: '业务分类不能为空',
-                    trigger: 'blur'
-                }],
+                commissionRateId: [
+                    { required: true, message: '业务分类不能为空', trigger: 'blur' }
+                ],
+                ratio: [
+                    { required: true, message: '提成比例不能为空', trigger: 'blur' },
+                    { required: true, validator: checkRatioValue, trigger: 'blur' }
+                ]
             },
+            ratioPlaceholderData: "请输入提成比例",
             pageData: { records: [] },
             listQuery: {
                 page: 1,
@@ -217,6 +239,7 @@ export default {
             },// 项目所有参与人信息
             assetsBusinessMembers: [],
             cates: [],
+            cateDetail: null,
             declareDialog: false,
             declareForm: {
                 orderId: null,
@@ -225,7 +248,8 @@ export default {
                 businessId: null,
                 productionId: null,
                 businessType: 'COMMISSION_DECLARE_ASSET_EVALUATE',
-                commissionRateId: null
+                commissionRateId: null,
+                ratio: null
             },
             showDistributionButton: null,
             assetsAchievementRatioDialogVisible: false,
@@ -274,6 +298,19 @@ export default {
                 }
             })
         },
+        getAssetsEvaluateCateDetail() {
+            this.$api.businessCommissionRate.detail(this.declareForm.commissionRateId).then(res => {
+                if (res.code === 200) {
+                    this.cateDetail = res.data;
+                    if (res.data.maxRatio == null) {
+                        this.declareForm.ratio = this.cateDetail.minRatio;
+                    } else {
+                        this.declareForm.ratio = null;
+                        this.ratioPlaceholderData = "请输入提成比例 " + this.cateDetail.minRatio + "%" + " - " + this.cateDetail.maxRatio + "%";
+                    }
+                }
+            })
+        },
         checkDetail(id) {
             this.$router.push(`/income/assets/declare/detail?businessId=${id}&businessType=COMMISSION_DECLARE_ASSET_EVALUATE&doWorkflow=${false}&back=${'/income/assets/declare/evaluate'}`)
         },
@@ -319,7 +356,7 @@ export default {
                     if (state) {
                         this.businessPerformanceDistributionForm.distributionList = [];
                         for (let i = 0; i < this.assetsBusinessMembers.length; i++) {
-                            let memberInfo = { memberId: this.assetsBusinessMembers[i].memberId, performanceDistribution: 0, participationDuration: 0,memberType: this.assetsBusinessMembers[i].memberType }
+                            let memberInfo = { memberId: this.assetsBusinessMembers[i].memberId, performanceDistribution: 0, participationDuration: 0, memberType: this.assetsBusinessMembers[i].memberType }
                             this.businessPerformanceDistributionForm.distributionList.push(memberInfo)
                         }
                     }

+ 294 - 182
src/views/income/myIncome.vue

@@ -1,24 +1,25 @@
 <template>
   <div class="app-container organization-index">
     <div class="title-container">
-      <breadcrumb id="breadcrumb-container" class="breadcrumb-container"/>
-      </div>
-      <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card" style="margin-top: 10px;">
-        <el-tab-pane label="大中型业务" name="major">
-          <y-page-list-layout :page-list="majorIncome" :page-para="listQuery1" :get-page-list="getMyMajorIncome">
-            <template slot="left">
-              <el-date-picker  v-model="findDate" type="daterange" align="center" unlink-panels
-                            range-separator="至" start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
-                            value-format="yyyy-MM-dd" style="float: left; width: 300px;">
-              </el-date-picker>
-              <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList()" round>搜索
-              </el-button>
-              <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
-              </el-button>
-              <el-button class="filter-item" style="float: left;" round type="info" @click="exportDetail()">导出
-              </el-button>
-            </template>
-            <parentTable slot="table" :data="majorIncome.records" style=" width: 100%;">
+      <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
+    </div>
+    <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card" style="margin-top: 10px;">
+      <el-tab-pane label="大中型业务" name="major">
+        <y-page-list-layout :page-list="majorIncome" :page-para="listQuery1" :get-page-list="getMyMajorIncome">
+          <template slot="left">
+            <el-date-picker v-model="findDate" type="daterange" align="center" unlink-panels range-separator="至"
+              start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
+              value-format="yyyy-MM-dd" style="float: left; width: 300px;">
+            </el-date-picker>
+            <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList()"
+              round>搜索
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="info" @click="exportDetail()">导出
+            </el-button>
+          </template>
+          <parentTable slot="table" :data="majorIncome.records" style=" width: 100%;">
             <el-table-column label="姓名" align="center">
               <template slot-scope="{row}">
                 <span>{{ row.userName }}</span>
@@ -29,183 +30,294 @@
                 <span>{{ row.userType }}</span>
               </template>
             </el-table-column>
-              <el-table-column label="产品号" width="200" align="center">
-                <template slot-scope="{row}">
-                  <el-tag type="success">{{ row.reportNo }}</el-tag>
-                </template>
-              </el-table-column>
-              <el-table-column label="项目名称"  width="200" align="center"  show-overflow-tooltip>
-                <template slot-scope="{row}">
-                  <span>{{ row.name }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="项目分类"  width="100" align="center" show-overflow-tooltip>
-                <template slot-scope="{row}">
-                  <span>{{ row.businessCate }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="提成比例" align="center">
-                <template slot-scope="{row}">
-                  <span>{{ row.ratio}}%</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="总提成额(¥)"   align="center">
-                <template slot-scope="{row}">
-                  <span>{{ row.totalAmount }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="分配比例"   align="center">
-                <template slot-scope="{row}">
-                  <span>{{ row.allotRatio*100 }}%</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="提成额(¥)"   align="center">
-                <template slot-scope="{row}">
-                  <span style="color:red">{{ row.commissionAmount }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="出报告日期"   align="center">
-                <template slot-scope="{row}">
-                  <span>{{ row.created }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="实收款(¥)"   align="center">
-                <template slot-scope="{row}">
-                  <span>{{ row.realAmount }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="提成日期"  width="100" align="center">
-                <template slot-scope="{row}">
-                  <span>{{ row.settleDate }}</span>
-                </template>
-              </el-table-column>
-            </parentTable>
-          </y-page-list-layout>
-        </el-tab-pane>
-        <el-tab-pane label="个贷业务" name="personal">
+            <el-table-column label="产品号" width="200" align="center">
+              <template slot-scope="{row}">
+                <el-tag type="success">{{ row.reportNo }}</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
+              <template slot-scope="{row}">
+                <span>{{ row.name }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="项目分类" width="100" align="center" show-overflow-tooltip>
+              <template slot-scope="{row}">
+                <span>{{ row.businessCate }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="提成比例" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.ratio }}%</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="总提成额(¥)" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.totalAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="分配比例" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.allotRatio * 100 }}%</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="提成额(¥)" align="center">
+              <template slot-scope="{row}">
+                <span style="color:red">{{ row.commissionAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="出报告日期" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.created }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="实收款(¥)" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.realAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="提成日期" width="100" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.settleDate }}</span>
+              </template>
+            </el-table-column>
+          </parentTable>
+        </y-page-list-layout>
+      </el-tab-pane>
+      <el-tab-pane label="个贷业务" name="personal">
+
+      </el-tab-pane>
+      <el-tab-pane label="资产业务" name="assets">
+        <y-page-list-layout :page-list="assetsIncome" :page-para="listQuery2" :get-page-list="getMyAssetsIncome">
+          <template slot="left">
+            <el-date-picker v-model="findDate" type="daterange" align="center" unlink-panels range-separator="至"
+              start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
+              value-format="yyyy-MM-dd" style="float: left; width: 300px;">
+            </el-date-picker>
+            <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary"
+              @click="searchListAssets()" round>搜索
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearchAssets()">重置
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="info" @click="exportDetail()">导出
+            </el-button>
+          </template>
+          <parentTable slot="table" :data="assetsIncome.records" style=" width: 100%;">
+            <el-table-column label="姓名" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.userName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="人员类型" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.userType }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="产品号" width="200" align="center">
+              <template slot-scope="{row}">
+                <el-tag type="success">{{ row.reportNo }}</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
+              <template slot-scope="{row}">
+                <span>{{ row.name }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="项目分类" width="100" align="center" show-overflow-tooltip>
+              <template slot-scope="{row}">
+                <span>{{ row.businessCate }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="提成比例" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.ratio }}%</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="总提成额(¥)" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.totalAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="分配比例" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.allotRatio * 100 }}%</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="提成额(¥)" align="center">
+              <template slot-scope="{row}">
+                <span style="color:red">{{ row.commissionAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="出报告日期" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.created }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="实收款(¥)" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.realAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="提成日期" width="100" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.settleDate }}</span>
+              </template>
+            </el-table-column>
+          </parentTable>
+        </y-page-list-layout>
+      </el-tab-pane>
+    </el-tabs>
 
-        </el-tab-pane>
-        <el-tab-pane label="资产业务" name="assets">
-          
-        </el-tab-pane>
-      </el-tabs>
-  
   </div>
 </template>
 <script>
-  import Breadcrumb from '@/components/Breadcrumb'
-  import YPageListLayout from '@/components/YPageListLayout'
+import Breadcrumb from '@/components/Breadcrumb'
+import YPageListLayout from '@/components/YPageListLayout'
 
-  export default {
-    name: 'myIncome',
-    components: {
-      Breadcrumb,
-      YPageListLayout
-    },
+export default {
+  name: 'myIncome',
+  components: {
+    Breadcrumb,
+    YPageListLayout
+  },
 
-    data() {
-      return {
-        activeName:'major',
-        listQuery1: {
-          page: 1,
-          size: 10,
-          descs: 'id',
-          startDate:'2024-05-01 00:00:00',
-          endDate:'2024-06-01 00:00:00',
-        },
-        pickerOptions: {
-                shortcuts: [{
-                    text: '最近一周',
-                    onClick(picker) {
-                        const end = new Date();
-                        const start = new Date();
-                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-                        picker.$emit('pick', [start, end]);
-                    }
-                }, {
-                    text: '最近一个月',
-                    onClick(picker) {
-                        const end = new Date();
-                        const start = new Date();
-                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-                        picker.$emit('pick', [start, end]);
-                    }
-                }, {
-                    text: '最近三个月',
-                    onClick(picker) {
-                        const end = new Date();
-                        const start = new Date();
-                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-                        picker.$emit('pick', [start, end]);
-                    }
-                }]
-        },
-        findDate: [],
-        majorIncome:{
-          records:[]
-        }
-      }
-    },
-    created() {
-      this.findDate.push(this.getDefaultStartDate());
-      this.findDate.push(this.getDefaultEndDate());
-      this.getMyMajorIncome();
-    },
-    methods: {
-
-      getDefaultStartDate(){
-        const currentDate = new Date();
-        const currentYear = currentDate.getFullYear();
-        var currentMonth = String(currentDate.getMonth()).padStart(2,"0");
-        return currentYear+'-'+currentMonth+'-'+'23'
+  data() {
+    return {
+      activeName: 'major',
+      listQuery1: {
+        page: 1,
+        size: 10,
+        descs: 'id',
+        startDate: '2024-05-01 00:00:00',
+        endDate: '2024-06-01 00:00:00',
       },
-
-      getDefaultEndDate(){
-        const currentDate = new Date();
-        const currentYear = currentDate.getFullYear();
-        var currentMonth = String(currentDate.getMonth() + 1).padStart(2,"0");
-        return currentYear+'-'+currentMonth+'-'+'22'
+      listQuery2: {
+        page: 1,
+        size: 10,
+        descs: 'id',
+        startDate: '',
+        endDate: '',
       },
-   
-      handleClick(tab, event) {
-          if (tab.name==='major'){
-              this.getMyMajorIncome();
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
           }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
       },
-        
-      resetSearch() {
-        this.$router.push({ query: {} });
-        this.listQuery1 = {
-          current: 1,
-          size: 10,
-          descs: 'id',
-        }
-        this.getMyMajorIncome()
-      },
-    
-      searchList() {
-        // 重置分页
-        this.listQuery1.page = 1
-        this.listQuery1.size = 10
-        if (this.findDate){
-          this.listQuery1.startDate = this.findDate[0]+' 00:00:00';
-          this.listQuery1.endDate = this.findDate[1]+ ' 23:59:59';
-        }
-        this.getMyMajorIncome()
+      findDate: [],
+      majorIncome: {
+        records: []
       },
+      assetsIncome: {
+        records: []
+      }
+    }
+  },
+  created() {
+    this.findDate.push(this.getDefaultStartDate());
+    this.findDate.push(this.getDefaultEndDate());
+    this.getMyMajorIncome();
+  },
+  methods: {
 
-      getMyMajorIncome(){
-        this.$api.businessIncome.myMajorIncome(this.listQuery1).then(res=>{
-          if (res.code === 200){
-              this.majorIncome = res.data;
-          }
-        })
+    getDefaultStartDate() {
+      const currentDate = new Date();
+      const currentYear = currentDate.getFullYear();
+      var currentMonth = String(currentDate.getMonth()).padStart(2, "0");
+      return currentYear + '-' + currentMonth + '-' + '23'
+    },
+
+    getDefaultEndDate() {
+      const currentDate = new Date();
+      const currentYear = currentDate.getFullYear();
+      var currentMonth = String(currentDate.getMonth() + 1).padStart(2, "0");
+      return currentYear + '-' + currentMonth + '-' + '22'
+    },
+
+    handleClick(tab, event) {
+      if (tab.name === 'major') {
+        this.getMyMajorIncome();
+      }
+      if (tab.name === 'assets') {
+        this.getMyAssetsIncome();
       }
-  
+    },
+
+    resetSearch() {
+      this.$router.push({ query: {} });
+      this.listQuery1 = {
+        current: 1,
+        size: 10,
+        descs: 'id',
+      }
+      this.getMyMajorIncome()
+
+    },
+    resetSearchAssets() {
+      this.$router.push({ query: {} });
+      this.listQuery2 = {
+        current: 1,
+        size: 10,
+        descs: 'id',
+      }
+      this.getMyAssetsIncome();
+    },
+    searchList() {
+      // 重置分页
+      this.listQuery1.page = 1
+      this.listQuery1.size = 10
+      if (this.findDate) {
+        this.listQuery1.startDate = this.findDate[0] + ' 00:00:00';
+        this.listQuery1.endDate = this.findDate[1] + ' 23:59:59';
+      }
+      this.getMyMajorIncome()
+
+    },
+    searchListAssets() {
+      this.listQuery2.page = 1
+      this.listQuery2.size = 10
+      if (this.findDate) {
+        this.listQuery2.startDate = this.findDate[0] + ' 00:00:00';
+        this.listQuery2.endDate = this.findDate[1] + ' 23:59:59';
+      }
+      this.getMyAssetsIncome();
+    },
+    getMyMajorIncome() {
+      this.$api.businessIncome.myMajorIncome(this.listQuery1).then(res => {
+        if (res.code === 200) {
+          this.majorIncome = res.data;
+        }
+      })
+    },
+    getMyAssetsIncome() {
+      this.$api.businessIncome.myAssetsIncome(this.listQuery2).then(res => {
+        if (res.code === 200) {
+          this.assetsIncome = res.data;
+        }
+      })
     }
+
   }
+}
 </script>
-<style scoped lang="scss">
-
-
-</style>
+<style scoped lang="scss"></style>