Explorar el Código

Merge branch 'master' of http://47.108.172.52:3000/dayou/item-management-web

wucl hace 1 año
padre
commit
a761f5e16a

+ 4 - 0
src/api/modules/commissonDeclare.js

@@ -40,5 +40,9 @@ export default {
   // 资产提成申报待审核集合
   assetsCheckList(params){
     return request.get(`commissionDeclare/assets/check/list`, { params: params })
+  },
+  // 更新资产绩效申报提成比例与下限信息
+  updateAssetsCommissionDeclare(params){
+    return request.put(`commissionDeclare/assets/check/update`, params)
   }
 }

+ 6 - 0
src/api/modules/financeRealFund.js

@@ -41,5 +41,11 @@ export default {
   },
   majorMarketCommissionDetail(params){
     return request.get(`financeRealFund/commission/major/market/detail`, { params: params })
+  },
+  assetsEvaluatorCommission(params){
+    return request.get(`financeRealFund/commission/assets/evaluator`, { params: params })
+  },
+  assetsEvaluatorCommissionDetail(params){
+    return request.get(`financeRealFund/commission/assets/evaluator/detail`, { params: params })
   }
 }

+ 3 - 1
src/router/urlMap.js

@@ -125,6 +125,7 @@ import _views_finance_major_commission_calculate from '@/views/finance/calculate
 import _views_income_mine from '@/views/income/myIncome'
 import _views_assets_edit_order from '@/views/assets/addAssetsOrder'
 import _views_finance_assets_fund_stats from '@/views/finance/assetsRealFundStat'
+import _views_finance_assets_commission_calculate from '@/views/finance/calculateAssets'
 
 export default {
   _views_set_menu,
@@ -238,6 +239,7 @@ export default {
   _views_finance_major_commission_calculate,
   _views_income_mine,
   _views_assets_edit_order,
-  _views_finance_assets_fund_stats
+  _views_finance_assets_fund_stats,
+  _views_finance_assets_commission_calculate
 
 }

+ 1 - 1
src/views/assets/myOrderList.vue

@@ -779,7 +779,7 @@ export default {
         },
         // 打开分配弹窗
         openAllotProductionDialog(row) {
-            if (!row.shouldAmount) {
+            if (!row.realAmount) {
                 this.$notify({
                     title: '提示',
                     message: '该订单还没有认领实收款,请先认领实收款后再分配给产品。',

+ 11 - 0
src/views/commission/assets.vue

@@ -171,6 +171,16 @@ export default {
                     required: true,
                     message: '业务分类不能为空',
                     trigger: 'blur'
+                }],
+                minRatio: [{
+                    required: true,
+                    message: '最小提成比例不能为空',
+                    trigger: 'blur'
+                }],
+                lowLimitAmount: [{
+                    required: true,
+                    message: '提成下限不能为空',
+                    trigger: 'blur'
                 }]
             },
             commissionRateFormDialog: false,
@@ -270,6 +280,7 @@ export default {
                             duration: 2000
                         });
                         this.businessCateMarketerRatioList();
+                        this.businessCatekeEvaluatorRatioList();
                     }
                 })
             })

+ 463 - 0
src/views/finance/calculateAssets.vue

@@ -0,0 +1,463 @@
+<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="evaluate">
+                <div style="width: 100%; height: 50px;">
+                    <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-input v-model="listQuery1.userName" placeholder="姓名" clearable
+                        style="margin-left: 20px;width: 200px;float: left;">
+                    </el-input>
+                    <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary"
+                        @click="searchList1()" round>搜索
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch1()">重置
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="info"
+                        @click="evaluatorTotalAmountExport()">导出合计
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="info"
+                        @click="evaluatorCurUserDetailExport()">导出当前员工提成详情
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="info"
+                        @click="evaluatorAllUserDetailExport()">导出所有员工提成详情
+                    </el-button>
+                </div>
+                <div style="width: 100%;">
+                    <el-table :data="evaluatorAmount" fit stripe highlight-current-row @row-click="evaluatorAmountDetail"
+                        :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 18.1%; float: left;
+                    border-left: 1px solid #ebeced;
+                    border-right: 1px solid #ebeced;
+                    color: #333333; font-size: 14px;
+                  ">
+                        <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.commissionTotalAmount }}</span>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-table :data="evaluatorProd" fit stripe highlight-current-row
+                        :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 80.5%; float: right;
+                      border-left: 1px solid #ebeced;
+                      border-right: 1px solid #ebeced;
+                      color: #333333; font-size: 14px;
+                    ">
+                        <el-table-column label="姓名" align="center">
+                            <template slot-scope="{row}">
+                                <span>{{ row.userName }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="产品号" width="250" 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>
+                    </el-table>
+                </div>
+            </el-tab-pane>
+            <el-tab-pane label="市场人员" name="market">
+                <div style="width: 100%; height: 50px;">
+                    <el-date-picker v-model="findDate1" 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-input v-model="listQuery2.userName" placeholder="姓名" clearable
+                        style="margin-left: 20px;width: 200px;float: left;">
+                    </el-input>
+                    <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary"
+                        @click="searchList2()" round>搜索
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch2()">重置
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="info"
+                        @click="marketTotalAmountExport()">导出合计
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="info"
+                        @click="marketCurUserDetailExport()">导出当前员工提成详情
+                    </el-button>
+                    <el-button class="filter-item" style="float: left;" round type="info"
+                        @click="marketAllUserDetailExport()">导出所有员工提成详情
+                    </el-button>
+                </div>
+                <div style="width: 100%;">
+                    <el-table :data="marketAmount" fit stripe highlight-current-row @row-click="marketAmountDetail"
+                        :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 18.1%; float: left;
+                    border-left: 1px solid #ebeced;
+                    border-right: 1px solid #ebeced;
+                    color: #333333; font-size: 14px;
+                  ">
+                        <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.commissionTotalAmount }}</span>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-table :data="marketProd" fit stripe highlight-current-row
+                        :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 80.5%; float: right;
+                      border-left: 1px solid #ebeced;
+                      border-right: 1px solid #ebeced;
+                      color: #333333; font-size: 14px;
+                    ">
+                        <el-table-column label="姓名" width="120" align="center">
+                            <template slot-scope="{row}">
+                                <span>{{ row.userName }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="产品号" width="250" align="center">
+                            <template slot-scope="{row}">
+                                <el-tag type="success">{{ row.reportNo }}</el-tag>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="项目名称" width="300" 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="提成比例" width="120" align="center">
+                            <template slot-scope="{row}">
+                                <span>{{ row.ratio }}%</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="总提成额(¥)" width="120" align="center">
+                            <template slot-scope="{row}">
+                                <span>{{ row.totalAmount }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="分配比例" width="120" align="center">
+                            <template slot-scope="{row}">
+                                <span>{{ row.allotRatio * 100 }}%</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="提成额(¥)" width="120" align="center">
+                            <template slot-scope="{row}">
+                                <span style="color:red">{{ row.commissionAmount }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="出报告日期" width="120" align="center">
+                            <template slot-scope="{row}">
+                                <span>{{ row.created }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="实收款(¥)" width="120" 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>
+                    </el-table>
+                </div>
+            </el-tab-pane>
+        </el-tabs>
+    </div>
+</template>
+<script>
+import Breadcrumb from '@/components/Breadcrumb'
+import YPageListLayout from '@/components/YPageListLayout'
+
+export default {
+    name: 'calculateMajor',
+    components: {
+        Breadcrumb,
+        YPageListLayout
+    },
+
+    data() {
+        return {
+            activeName: 'evaluate',
+            listQuery1: {
+                page: 1,
+                size: 10,
+                descs: 'id',
+                startDate: '2024-05-01 00:00:00',
+                endDate: '2024-06-01 00:00:00',
+                userName: null
+            },
+            listQuery2: {
+                page: 1,
+                size: 10,
+                descs: 'id',
+                startDate: '2024-05-01 00:00:00',
+                endDate: '2024-06-01 00:00:00',
+                userName: null
+            },
+            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: [],
+            findDate1: [],
+            evaluatorAmount: [],
+            evaluatorProd: [],
+            marketAmount: [],
+            marketProd: [],
+        }
+    },
+    created() {
+        this.findDate.push(this.getDefaultStartDate());
+        this.findDate.push(this.getDefaultEndDate());
+        this.findDate1.push(this.getDefaultStartDate());
+        this.findDate1.push(this.getDefaultEndDate());
+        this.assetsEvaluatorAmount();
+    },
+    methods: {
+
+        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 === 'market') {
+                this.majorMarketEvaluatorAmount();
+            }
+            if (tab.name === 'evaluate') {
+                this.assetsEvaluatorAmount()
+            }
+        },
+
+
+        resetSearch1() {
+            this.$router.push({ query: {} });
+            this.listQuery1 = {
+                current: 1,
+                size: 10,
+                descs: 'id',
+                userName: null,
+            }
+            this.searchList1()
+        },
+
+        searchList1() {
+            // 重置分页
+            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.assetsEvaluatorAmount()
+        },
+
+        resetSearch2() {
+            this.$router.push({ query: {} });
+            this.listQuery2 = {
+                current: 1,
+                size: 10,
+                descs: 'id',
+                userName: null,
+            }
+            this.searchList2()
+        },
+
+        searchList2() {
+            // 重置分页
+            this.listQuery2.page = 1
+            this.listQuery2.size = 10
+            if (this.findDate1) {
+                this.listQuery2.startDate = this.findDate1[0] + ' 00:00:00';
+                this.listQuery2.endDate = this.findDate1[1] + ' 23:59:59';
+            }
+            this.majorMarketEvaluatorAmount()
+        },
+        assetsEvaluatorAmount() {
+            if (this.findDate) {
+                this.listQuery1.startDate = this.findDate[0] + ' 00:00:00';
+                this.listQuery1.endDate = this.findDate[1] + ' 23:59:59';
+            }
+            this.$api.financeRealFund.assetsEvaluatorCommission(this.listQuery1).then(res => {
+                if (res.code === 200) {
+                    this.evaluatorAmount = res.data;
+                    if (this.evaluatorAmount.length > 0) {
+                        this.listQuery1.userId = this.evaluatorAmount[0].id;
+                        this.$api.financeRealFund.assetsEvaluatorCommissionDetail(this.listQuery1).then(res => {
+                            if (res.code === 200) {
+                                this.evaluatorProd = res.data;
+                            }
+                        })
+                    } else {
+                        this.evaluatorProd = []
+                    }
+                }
+            })
+        },
+        evaluatorAmountDetail(row, column, event) {
+            this.listQuery1.userId = row.id;
+            this.$api.financeRealFund.assetsEvaluatorCommissionDetail(this.listQuery1).then(res => {
+                if (res.code === 200) {
+                    this.evaluatorProd = res.data;
+                }
+            })
+        },
+
+        majorMarketEvaluatorAmount() {
+            if (this.findDate1) {
+                this.listQuery2.startDate = this.findDate1[0] + ' 00:00:00';
+                this.listQuery2.endDate = this.findDate1[1] + ' 23:59:59';
+            }
+            this.$api.financeRealFund.majorMarketCommission(this.listQuery2).then(res => {
+                if (res.code === 200) {
+                    this.marketAmount = res.data;
+                    if (this.marketAmount.length > 0) {
+                        this.listQuery2.userId = this.marketAmount[0].id;
+                        this.$api.financeRealFund.majorMarketCommissionDetail(this.listQuery2).then(res => {
+                            if (res.code === 200) {
+                                this.marketProd = res.data;
+                            }
+                        })
+                    } else {
+                        this.marketProd = []
+                    }
+                }
+            })
+        },
+        marketAmountDetail(row, column, event) {
+            this.listQuery2.userId = row.id;
+            this.$api.financeRealFund.majorMarketCommissionDetail(this.listQuery2).then(res => {
+                if (res.code === 200) {
+                    this.marketProd = res.data;
+                }
+            })
+        },
+
+        evaluatorTotalAmountExport() {
+            this.$utils.exportUtil(
+                "/financeRealFund/major/evaluator/commission/total/export", this.listQuery1,
+                "导出"
+            );
+        },
+        evaluatorCurUserDetailExport() {
+            this.$utils.exportUtil(
+                "/financeRealFund/major/evaluator/commission/current/export", this.listQuery1,
+                "导出"
+            );
+        },
+        evaluatorAllUserDetailExport() {
+            this.$utils.exportUtil(
+                "/financeRealFund/major/evaluator/commission/all/export", this.listQuery1,
+                "导出"
+            );
+        },
+        marketTotalAmountExport() {
+            this.$utils.exportUtil(
+                "/financeRealFund/major/market/commission/total/export", this.listQuery2,
+                "导出"
+            );
+        },
+        marketCurUserDetailExport() {
+            this.$utils.exportUtil(
+                "/financeRealFund/major/market/commission/current/export", this.listQuery2,
+                "导出"
+            );
+        },
+        marketAllUserDetailExport() {
+            this.$utils.exportUtil(
+                "/financeRealFund/major/market/commission/all/export", this.listQuery2,
+                "导出"
+            );
+        }
+    }
+}
+</script>
+<style scoped lang="scss"></style>
+  

+ 6 - 2
src/views/finance/outWarehouseCheck.vue

@@ -280,8 +280,12 @@ export default {
         commit.state = 'REVERSE';
       }
       commit.comments = this.checkDTO.reply;
-      commit.businessMinId = this.reportNo;
-      commit.businessSubId = this.statementNo;
+      if (this.reportNo !== null && this.reportNo !== undefined && this.reportNo !== '') {
+        commit.businessMinId = this.reportNo;
+      }
+      if (this.statementNo != null && this.statementNo != undefined && this.statementNo !== '') {
+        commit.businessSubId = this.statementNo;
+      }
       this.$api.workflow.commit(commit).then(res=>{
         if (res.code === 200 && res.data){
           this.$notify({

+ 291 - 235
src/views/income/assets/declareDetail.vue

@@ -1,246 +1,302 @@
 <template>
-    <div class="app-container">
-      <div class="title-container">
-        <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
-      </div>
-      <el-collapse v-model="activeNames" style="margin-top: 30px;">
-        <el-collapse-item name="board">
-          <template slot="title">
-            <span style="font-size:15px; margin-left:15px;letter-spacing:2px; color:RGB(168,168,168)">
-              点击展开查看实时流程图
-            </span>
-          </template>
-          <WorkflowBoard ref='board' :nodeBusinessInfo="nodeBusinessInfo" />
-        </el-collapse-item>
-      </el-collapse>
-      <div class="button-area">
-        <el-button v-if="nodeBusinessInfo.currentNodePermission.commit && doWorkflow" class="y-save" type="success" round
-          @click="commit('PASS')">通过</el-button>
-        <el-button v-if="nodeBusinessInfo.currentNodePermission.terminable && doWorkflow" class="y-save" type="danger" round
-          @click="commit('TERMINATE')">拒绝</el-button>
-        <el-button class="y-save" round type="info" @click="goBack">返回</el-button>
-      </div>
-      <el-card>
-        <el-divider content-position="left">
-          <span style="color:red;font-weight: bold;">
-            【{{ this.nodeBusinessInfo.mainBusiness==='COMMISSION_DECLARE_ASSET_EVALUATE'?'评估人员':'市场人员' }}】
-          </span>资产业务提成申报详情</el-divider>
-        <el-form :model="declareForm" ref="declareForm">
-          <el-row>
-            <el-col :xs="24" :sm="12" :lg="24" :span="6">
-              <el-form-item label="项目名称:" prop="name" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.name" :step="1" :max="100" style="width: 100%;" readonly disabled></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="订单号:" prop="orderId" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.orderId" :step="1" :max="100" style="width: 100%;" readonly
-                  disabled></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="报告号:" prop="reportNo" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.reportNo" :step="1" :max="100" style="width: 100%;" readonly
-                  disabled></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="业务分类:" prop="businessCate" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.businessCate" :step="1" :max="100" style="width: 100%;" readonly
-                  disabled></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="产品类型:" prop="production" label-width="140px" class="postInfo-container-item">
-                <el-input :value="prod" :step="1" :max="100" style="width: 100%;" readonly
-                  disabled></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="申报人:" prop="declareUser" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.declareUser" style="width: 100%;" readonly disabled>
-                </el-input>
-              </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="申报日期:" prop="created" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.created" style="width: 100%;" readonly
-                  disabled></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="审核状态:" prop="declareResult" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.declareResult"  readonly disabled>
-                </el-input>
-              </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :lg="12" :span="6">
-              <el-form-item label="审核备注:" prop="remarks" label-width="140px" class="postInfo-container-item">
-                <el-input :value="declareForm.remarks+''"  style="width: 100%; color: red;" readonly
-                  disabled></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-table :data="declareForm.userShareRates" border style="width: 100%; margin-top: 10px; margin-bottom: 10px;">
-            <el-table-column prop="userId" :label="this.nodeBusinessInfo.mainBusiness==='COMMISSION_DECLARE_ASSET_EVALUATE'?'评估人员':'市场人员'" align="center">
-              <template slot-scope="{row}">
-                <span>{{ row.name }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="rate" label="提成比例" align="center">
-              <template slot-scope="{row}">
-                <span style="color: red;">{{ row.rate }}%</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="rate" label="参与时长" align="center">
-              <template slot-scope="{row}">
-                <span style="color: red;">{{ row.participationDuration }}小时</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="rate" label="成员类型" align="center">
-              <template slot-scope="{row}">
-                <span>{{ row.memberType }}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form>
-      </el-card>
+  <div class="app-container">
+    <div class="title-container">
+      <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
     </div>
-  </template>
-  <script>
-  import Breadcrumb from '@/components/Breadcrumb'
-  import WorkflowBoard from '@/components/workflowBoard'
-  
-  
-  export default {
-    name: 'declareDetail',
-    components: {
-      Breadcrumb,
-      WorkflowBoard
-    },
-    filters: {
-  
-    },
-    computed: {
-      prod(){
-        if (this.declareForm.production==='REPORT'){
-           return "评估报告";
-        }
-        if (this.declareForm.production==='LETTER'){
-           return "意见函";
-        }
-        if (this.declareForm.production==='CONSULT'){
-           return "咨询报告";
-        }
+    <el-collapse v-model="activeNames" style="margin-top: 30px;">
+      <el-collapse-item name="board">
+        <template slot="title">
+          <span style="font-size:15px; margin-left:15px;letter-spacing:2px; color:RGB(168,168,168)">
+            点击展开查看实时流程图
+          </span>
+        </template>
+        <WorkflowBoard ref='board' :nodeBusinessInfo="nodeBusinessInfo" />
+      </el-collapse-item>
+    </el-collapse>
+    <div class="button-area">
+      <el-button v-if="nodeBusinessInfo.currentNodePermission.commit && doWorkflow" class="y-save" type="success" round
+        @click="commit('PASS')">通过</el-button>
+      <el-button v-if="nodeBusinessInfo.currentNodePermission.terminable && doWorkflow" class="y-save" type="danger" round
+        @click="commit('TERMINATE')">拒绝</el-button>
+      <el-button class="y-save" round type="info" @click="goBack">返回</el-button>
+    </div>
+    <el-card>
+      <el-divider content-position="left">
+        <span style="color:red;font-weight: bold;">
+          【{{ this.nodeBusinessInfo.mainBusiness === 'COMMISSION_DECLARE_ASSET_EVALUATE' ? '评估人员' : '市场人员' }}】
+        </span>资产业务提成申报详情</el-divider>
+      <el-form :model="declareForm" ref="declareForm">
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="24" :span="6">
+            <el-form-item label="项目名称:" prop="name" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.name" :step="1" :max="100" style="width: 100%;" readonly disabled></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="订单号:" prop="orderId" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.orderId" :step="1" :max="100" style="width: 100%;" readonly
+                disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="报告号:" prop="reportNo" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.reportNo" :step="1" :max="100" style="width: 100%;" readonly
+                disabled></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="业务分类:" prop="businessCate" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.businessCate" :step="1" :max="100" style="width: 100%;" readonly
+                disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="产品类型:" prop="production" label-width="140px" class="postInfo-container-item">
+              <el-input :value="prod" :step="1" :max="100" style="width: 100%;" readonly disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6"
+            v-if="declareForm.businessType === 'COMMISSION_DECLARE_ASSET_EVALUATE'">
+            <el-form-item label="提成比例:" prop="ratio" label-width="140px" class="postInfo-container-item">
+              <el-input v-model="declareForm.ratio" type="number"
+                :disabled="declareForm.businessType !== 'COMMISSION_DECLARE_ASSET_EVALUATE' || nodeBusinessInfo.nodeCode !== 'DEPARTMENT_LEADER_CHECK'">
+                <template #suffix>
+                  %
+                </template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6"
+            v-if="declareForm.businessType === 'COMMISSION_DECLARE_ASSET_EVALUATE'">
+            <el-form-item label="提成下限:" prop="definedLowLimitAmount" label-width="180px" class="postInfo-container-item">
+              <el-input v-model="declareForm.definedLowLimitAmount" type="number"
+                :disabled="declareForm.businessType !== 'COMMISSION_DECLARE_ASSET_EVALUATE' || nodeBusinessInfo.nodeCode !== 'DEPARTMENT_LEADER_CHECK'">
+                <template #suffix>
+                  元
+                </template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="申报人:" prop="declareUser" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.declareUser" style="width: 100%;" readonly disabled>
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="申报日期:" prop="created" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.created" style="width: 100%;" readonly disabled></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="审核状态:" prop="declareResult" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.declareResult" readonly disabled>
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6">
+            <el-form-item label="审核备注:" prop="remarks" label-width="140px" class="postInfo-container-item">
+              <el-input :value="declareForm.remarks + ''" style="width: 100%; color: red;" readonly disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="12" :span="6"
+            v-if="declareForm.businessType === 'COMMISSION_DECLARE_ASSET_EVALUATE' && nodeBusinessInfo.nodeCode === 'DEPARTMENT_LEADER_CHECK'">
+            <el-button @click="updateAssetsCommissionDeclare()" style="margin-left: 30px;" type="danger" round>
+              修改提成比例与下限
+            </el-button>
+          </el-col>
+        </el-row>
+        <el-table :data="declareForm.userShareRates" border style="width: 100%; margin-top: 10px; margin-bottom: 10px;">
+          <el-table-column prop="userId"
+            :label="this.nodeBusinessInfo.mainBusiness === 'COMMISSION_DECLARE_ASSET_EVALUATE' ? '评估人员' : '市场人员'"
+            align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.name }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="rate" label="提成比例" align="center">
+            <template slot-scope="{row}">
+              <span style="color: red;">{{ row.rate }}%</span>
+            </template>
+          </el-table-column>
+          <el-table-column v-if="declareForm.businessType === 'COMMISSION_DECLARE_ASSET_EVALUATE'" prop="rate"
+            label="参与时长" align="center">
+            <template slot-scope="{row}">
+              <span style="color: red;">{{ row.participationDuration }}小时</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="rate" label="成员类型" align="center">
+            <template slot-scope="{row}">
+              <span>{{ row.memberType }}</span>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-form>
+    </el-card>
+  </div>
+</template>
+<script>
+import Breadcrumb from '@/components/Breadcrumb'
+import WorkflowBoard from '@/components/workflowBoard'
+
+
+export default {
+  name: 'declareDetail',
+  components: {
+    Breadcrumb,
+    WorkflowBoard
+  },
+  filters: {
+
+  },
+  computed: {
+    prod() {
+      if (this.declareForm.production === 'REPORT') {
+        return "评估报告";
       }
-    },
-    data() {
-      return {
-        activeNames: ['board'],
-        nodeBusinessInfo: {
-          currentNodePermission: {
-            commit: true,
-            reversible: true,
-            restartable: true,
-            terminable: true,
-            skippable: true,
-          },
-          mainBusiness: null,
-          doWorkflow: null,
-          businessSubId: null,
-          businessId: null,
-          currentInstanceNodeId: null,
-          production: []
-        },
-        doWorkflow: false,
-        declareForm: {
-          orderId: null,
-          name: null,
-          reportNo: null,
-          businessId: null,
-          productionId: null,
-          businessType: null,
-          commissionRateId: null,
-          userShareRates: [
-            {
-              userId: this.$store.getters.userInfo.id,
-              rate: 100
-            }
-          ],
-          production:null,
-          remarks:[]
-  
-        },
-        users: [],
-        cates: []
+      if (this.declareForm.production === 'LETTER') {
+        return "意见函";
       }
-    },
-    created() {
-      this.nodeBusinessInfo.businessId = this.$route.query.businessId;
-      this.nodeBusinessInfo.mainBusiness = this.$route.query.businessType;
-      this.declareForm.businessType = this.$route.query.businessType;
-      this.doWorkflow = this.$route.query.doWorkflow === 'true';
-      this.getCurrentNodeInfo();
-      this.businessId = this.$route.query.businessId;
-      this.getDeclareDetail();
-    },
-    methods: {
-  
-      getCurrentNodeInfo() {
-        if (this.nodeBusinessInfo.businessId) {
-          this.$api.workNodeInstance.currentNode({
-            "mainBusiness": this.nodeBusinessInfo.mainBusiness,
-            "businessId": this.nodeBusinessInfo.businessId
-          }).then(res => {
-            if (res.code === 200 && res.data!=null) {
-                this.nodeBusinessInfo.currentInstanceNodeId = res.data.instanceId;
-            }
-            this.$refs.board.getInstanceArray(this.nodeBusinessInfo.mainBusiness,this.nodeBusinessInfo.businessId);
-          })
-        }
-      },
-      goBack() {
-        const back = this.$route.query.back
-        if (back) {
-          this.$router.push(back)
-        }
+      if (this.declareForm.production === 'CONSULT') {
+        return "咨询报告";
+      }
+    }
+  },
+  data() {
+    return {
+      activeNames: ['board'],
+      nodeBusinessInfo: {
+        currentNodePermission: {
+          commit: true,
+          reversible: true,
+          restartable: true,
+          terminable: true,
+          skippable: true,
+        },
+        mainBusiness: null,
+        doWorkflow: null,
+        businessSubId: null,
+        businessId: null,
+        currentInstanceNodeId: null,
+        production: [],
+        nodeCode: null
       },
-      getSimpleAllUser() {
-        this.$api.user.simpleAll().then(res => {
-          if (res.code === 200) {
-            this.users = res.data;
+      doWorkflow: false,
+      declareForm: {
+        orderId: null,
+        name: null,
+        reportNo: null,
+        businessId: null,
+        productionId: null,
+        businessType: null,
+        commissionRateId: null,
+        ratio: null,
+        definedLowLimitAmount: null,
+        userShareRates: [
+          {
+            userId: this.$store.getters.userInfo.id,
+            rate: 100
           }
-        })
+        ],
+        production: null,
+        remarks: []
+
       },
-      getDeclareDetail() {
-        this.$api.commissonDeclare.detail(this.businessId).then(res => {
-          if (res.code === 200) {
-            this.declareForm = res.data;
+      users: [],
+      cates: []
+    }
+  },
+  created() {
+    this.nodeBusinessInfo.businessId = this.$route.query.businessId;
+    this.nodeBusinessInfo.mainBusiness = this.$route.query.businessType;
+    this.declareForm.businessType = this.$route.query.businessType;
+    this.doWorkflow = this.$route.query.doWorkflow === 'true';
+    this.getCurrentNodeInfo();
+    this.businessId = this.$route.query.businessId;
+    this.getDeclareDetail();
+  },
+  methods: {
+
+    getCurrentNodeInfo() {
+      if (this.nodeBusinessInfo.businessId) {
+        this.$api.workNodeInstance.currentNode({
+          "mainBusiness": this.nodeBusinessInfo.mainBusiness,
+          "businessId": this.nodeBusinessInfo.businessId
+        }).then(res => {
+          if (res.code === 200 && res.data != null) {
+            this.nodeBusinessInfo.currentInstanceNodeId = res.data.instanceId;
+            this.nodeBusinessInfo.nodeCode = res.data.nodeCode;
           }
+          this.$refs.board.getInstanceArray(this.nodeBusinessInfo.mainBusiness, this.nodeBusinessInfo.businessId);
         })
-      },
-      //提交节点
-      commit(state){
-          this.$refs.board.commit(state);
-      },
-  
+      }
+    },
+    goBack() {
+      const back = this.$route.query.back
+      if (back) {
+        this.$router.push(back)
+      }
+    },
+    getSimpleAllUser() {
+      this.$api.user.simpleAll().then(res => {
+        if (res.code === 200) {
+          this.users = res.data;
+        }
+      })
     },
-  
-  }
-  </script>
-  <style lang="scss" scoped>
-  .button-area {
-    position: absolute;
-    top: 70px;
-    right: 50px;
-  }
-  </style>
+    getDeclareDetail() {
+      this.$api.commissonDeclare.detail(this.businessId).then(res => {
+        if (res.code === 200) {
+          this.declareForm = res.data;
+          this.declareForm.businessType = res.data.declareBusinessType;
+        }
+      })
+    },
+    //提交节点
+    commit(state) {
+      this.$refs.board.commit(state);
+    },
+    updateAssetsCommissionDeclare() {
+      let declareDTO = new Object();
+      declareDTO.id = this.businessId;
+      declareDTO.ratio = this.declareForm.ratio;
+      declareDTO.definedLowLimitAmount = this.declareForm.definedLowLimitAmount;
+      this.$api.commissonDeclare.updateAssetsCommissionDeclare(declareDTO).then(res => {
+        if (res.code === 200 && res.data) {
+          this.$notify({
+            title: '成功',
+            message: '提成比例与下限信息更新成功!',
+            type: 'success',
+            duration: 3000
+          });
+          this.getAssetsDetailById(this.pageParams.row.assetsId);
+        } else {
+          this.$notify({
+            title: '失败',
+            message: '提成比例与下限信息更新失败!请稍后重试!',
+            type: 'warning',
+            duration: 3000
+          });
+        }
+      })
+    }
+  },
+
+}
+</script>
+<style lang="scss" scoped>
+.button-area {
+  position: absolute;
+  top: 70px;
+  right: 50px;
+}
+</style>
   

+ 5 - 3
src/views/income/assets/evaluate.vue

@@ -214,9 +214,9 @@ export default {
                 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 +"% 之间"));
+                    return callback(new Error('提成比例须在 ' + this.cateDetail.minRatio + "% - " + this.cateDetail.maxRatio + "% 之间"));
                 }
-            }else{
+            } else {
                 callback();
             }
         };
@@ -249,7 +249,8 @@ export default {
                 productionId: null,
                 businessType: 'COMMISSION_DECLARE_ASSET_EVALUATE',
                 commissionRateId: null,
-                ratio: null
+                ratio: null,
+                definedLowLimitAmount: null
             },
             showDistributionButton: null,
             assetsAchievementRatioDialogVisible: false,
@@ -302,6 +303,7 @@ export default {
             this.$api.businessCommissionRate.detail(this.declareForm.commissionRateId).then(res => {
                 if (res.code === 200) {
                     this.cateDetail = res.data;
+                    this.declareForm.definedLowLimitAmount = this.cateDetail.lowLimitAmount;
                     if (res.data.maxRatio == null) {
                         this.declareForm.ratio = this.cateDetail.minRatio;
                     } else {

+ 28 - 10
src/views/income/myIncome.vue

@@ -98,31 +98,32 @@
             </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 class="filter-item" style="float: left;" round type="info" @click="exportMyAssetsIncome()"
+              :disabled="exportStatus">导出
             </el-button>
           </template>
           <parentTable slot="table" :data="assetsIncome.records" style=" width: 100%;">
-            <el-table-column label="姓名" align="center">
+            <el-table-column label="姓名" width="100" align="center">
               <template slot-scope="{row}">
                 <span>{{ row.userName }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="人员类型" align="center">
+            <el-table-column label="人员类型" width="120" align="center">
               <template slot-scope="{row}">
                 <span>{{ row.userType }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="产品号" width="200" align="center">
+            <el-table-column label="产品号" width="220" 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>
+            <el-table-column label="项目名称" width="250" 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>
+            <el-table-column label="项目分类" width="150" align="center" show-overflow-tooltip>
               <template slot-scope="{row}">
                 <span>{{ row.businessCate }}</span>
               </template>
@@ -139,7 +140,7 @@
             </el-table-column>
             <el-table-column label="分配比例" align="center">
               <template slot-scope="{row}">
-                <span>{{ row.allotRatio * 100 }}%</span>
+                <span>{{ row.allotRatio }}%</span>
               </template>
             </el-table-column>
             <el-table-column label="提成额(¥)" align="center">
@@ -194,8 +195,8 @@ export default {
         page: 1,
         size: 10,
         descs: 'id',
-        startDate: '',
-        endDate: '',
+        startDate: null,
+        endDate: null,
       },
       pickerOptions: {
         shortcuts: [{
@@ -230,7 +231,8 @@ export default {
       },
       assetsIncome: {
         records: []
-      }
+      },
+      exportStatus: true
     }
   },
   created() {
@@ -274,6 +276,7 @@ export default {
 
     },
     resetSearchAssets() {
+      this.exportStatus = true;
       this.$router.push({ query: {} });
       this.listQuery2 = {
         current: 1,
@@ -310,11 +313,26 @@ export default {
       })
     },
     getMyAssetsIncome() {
+      if (this.findDate) {
+        this.listQuery2.startDate = this.findDate[0] + ' 00:00:00';
+        this.listQuery2.endDate = this.findDate[1] + ' 23:59:59';
+      }
       this.$api.businessIncome.myAssetsIncome(this.listQuery2).then(res => {
         if (res.code === 200) {
           this.assetsIncome = res.data;
+          if (this.listQuery2.startTime !== null && this.listQuery2.endTime !== null && res.data.records.length > 0) {
+            this.exportStatus = false;
+          } else {
+            this.exportStatus = true;
+          }
         }
       })
+    },
+    exportMyAssetsIncome() {
+      this.$utils.exportUtil(
+        "/businessIncome/my/assets/export", this.listQuery2,
+        "导出"
+      );
     }
 
   }