浏览代码

Merge remote-tracking branch 'origin/dev'

GouGengquan 11 月之前
父节点
当前提交
b94700c204

+ 22 - 0
src/api/modules/statistical.js

@@ -0,0 +1,22 @@
+import request from '@/utils/request'
+
+export default {
+
+    // 获取资产台账
+    getAssetsLedger(params) {
+        return request.get(`assets/statisticalStatement/getAssetsLedgerVO`, { params: params })
+    },
+    // 评估部绩效扣分查询
+    getAssetsPerformanceDeduction(params){
+        return request.get(`assets/statisticalStatement/department/getAssetsPerformanceDeductionVO`, { params: params })
+    },
+    // 查询错误详情列表
+    getAssetsPerformanceDeductionDetail(params){
+        return request.get(`assets/statisticalStatement/department/getAssetsPerformanceDeductionDetail`, { params: params })
+    },
+    // 评估人员绩效扣分查询
+    getAssetsPerformanceDeductionVOByEvaluator(params){
+        return request.get(`assets/statisticalStatement/evaluator/getAssetsPerformanceDeductionVO`, { params: params })
+    },
+
+}

+ 5 - 1
src/router/urlMap.js

@@ -133,6 +133,8 @@ import _views_assets_department_todo_list from '@/views/assets/departmentTodoLis
 import _views_assets_department_done_list from '@/views/assets/departmentDoneList'
 import _views_assets_old_list from '@/views/assets/oldSystemAssetsOrderList'
 import _views_finance_personal_fund_stats from '@/views/finance/personalRealFundStat'
+import _views_statistical_assets_ledger from '@/views/statistical/assets/ledgerList'
+import _views_statistical_assets_performance_deduction from '@/views/statistical/assets/performanceDeduction'
 
 
 export default {
@@ -255,6 +257,8 @@ export default {
   _views_administration_assets_declare_check,
   _views_income_assets_declare_detail,
   _views_assets_old_list,
-  _views_finance_personal_fund_stats
+  _views_finance_personal_fund_stats,
+  _views_statistical_assets_ledger,
+  _views_statistical_assets_performance_deduction
 
 }

+ 402 - 0
src/views/statistical/assets/ledgerList.vue

@@ -0,0 +1,402 @@
+<template>
+    <div class="app-container organization-index">
+        <div class="title-container">
+            <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
+        </div>
+        <div>
+            <y-page-list-layout :get-page-list="getAssetsLedger" :page-list="pageData" :page-para="listQuery">
+                <template slot="left">
+                    <el-date-picker style="margin-right: 20px;float: left;" v-model="selectDate" type="daterange"
+                        :picker-options="pickerOptions" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"
+                        range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
+                    </el-date-picker>
+                    <el-input v-model="listQuery.keyWord" placeholder="项目编号/项目名称" clearable
+                        style="width: 200px;margin-right: 20px;float: left;">
+                    </el-input>
+                    <el-select v-model="listQuery.principalId" placeholder="项目负责人" clearable
+                        style="width: 200px;margin-right: 20px;float: left;">
+                        <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
+                    </el-select>
+                    <el-select v-model="listQuery.clientManagerId" filterable placeholder="客户经理(可搜索)"
+                        style=" width: 200px;margin-left: 10px;float: left;">
+                        <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
+                    </el-select>
+                    <el-select v-model="listQuery.assetsBusinessGener" placeholder="资产业务类型" clearable
+                        style="width: 200px;margin-right: 20px;float: left;">
+                        <el-option v-for="(s, value) in assetsBusinessGeners" :label="s.label" :value="s.value"></el-option>
+                    </el-select>
+                    <el-select v-model="listQuery.departmentId" filterable placeholder="接单部门"
+                        style=" width: 200px;margin-left: 10px;float: left;">
+                        <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option>
+                    </el-select>
+                    <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
+                        @click="searchList()" round>搜索
+                    </el-button>
+                    <el-button class="filter-item" round type="success" @click="resetParams()">重置
+                    </el-button>
+                    <el-button class="filter-item" round type="info" @click="exportAssetsLedger()"
+                        :disabled="exportStatus">导出
+                    </el-button>
+                </template>
+                <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;" class="tableFull">
+                    <el-table-column label="项目编号" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.orderId }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="意见书号" width="240" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.statementNo }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告号" width="240" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reportNo }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告类型" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.productionType }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估基准日" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.valuationBasisDate }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告出具日期" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.createReportDate }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目名称" width="300" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.projectName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="当前节点" width="100" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.currentNodeName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否证券项目" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>
+                                <el-tag v-if="row.security" type="success">是</el-tag>
+                                <el-tag v-else type="danger">否</el-tag>
+                            </span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否资产重组项目" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>
+                                <el-tag v-if="row.significantAssetsReorganization" type="success">是</el-tag>
+                                <el-tag v-else type="danger">否</el-tag>
+                            </span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否国资项目" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>
+                                <el-tag v-if="row.stateAssets" type="success">是</el-tag>
+                                <el-tag v-else type="danger">否</el-tag>
+                            </span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否涉及境外资产" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>
+                                <el-tag v-if="row.foreignAssetsInvolved" type="success">是</el-tag>
+                                <el-tag v-else type="danger">否</el-tag>
+                            </span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否分配产值" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>
+                                <el-tag v-if="row.dispenseBenefit" type="success">是</el-tag>
+                                <el-tag v-else type="danger">否</el-tag>
+                            </span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="客户经理名" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.clientManagerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目负责人名" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.principalName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="客户名称" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.customerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="业务来源" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.customerSubName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="委托方" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.bailor }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="委托方电话" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.bailorContactTel }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估对象评估目的" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.purposeName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估对象价值类型" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.valueTypeName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估对象" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.targetTypename }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估方法" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.evaluationMethods }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="自定义其他评估方法" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.definedEvaluationMethod }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="最终选择的评估方法" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.choiceEvaluationMethods }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="最终选择的自定义其他评估方法" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.choiceDefinedEvaluationMethod }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估结论对应的评估值(万)" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.estimatedValue }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="订单应收款(元)" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.shouldAmount }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="订单实收款(元)" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.realAmount }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="签字人" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.signatory }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="出库时间" width="120" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.repertoryOutTime }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="意见书审核人" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.statementCheckerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="意见书复审人" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.statementReCheckerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告审核人" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reportCheckerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告复审人" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reportReCheckerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告四审人" width="80" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reportFourthCheckerName }}</span>
+                        </template>
+                    </el-table-column>
+                </parentTable>
+            </y-page-list-layout>
+        </div>
+    </div>
+</template>
+
+<script>
+import Breadcrumb from '@/components/Breadcrumb'
+import YPageListLayout from '@/components/YPageListLayout'
+
+export default {
+    name: 'assetsLedgerList',
+    components: {
+        Breadcrumb,
+        YPageListLayout
+    },
+    data() {
+        return {
+            evaluationMethods: null,
+            pageData: { records: [] },
+            listLoading: false,
+            // 时间
+            selectDate: '',
+            listQuery: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 关键字信息
+                keyWord: null,
+                // 客户经理id
+                clientManagerId: null,
+                // 项目负责人id
+                pricipalId: null,
+                // departmentId
+                departmentId: null,
+                // 资产业务类型
+                assetsBusinessGener: null
+            },
+            // 用户下拉列表
+            allUsers: [],
+            // 业务类型下拉列表
+            assetsBusinessGeners: [
+                {
+                    value: '单项资产',
+                    label: '单项资产'
+                }, {
+                    value: '整体资产',
+                    label: '整体资产'
+                }, {
+                    value: '无形资产',
+                    label: '无形资产'
+                }, {
+                    value: '债权',
+                    label: '债权'
+                }, {
+                    value: '其他',
+                    label: '其他'
+                }
+            ],
+            // 接单部门
+            allotDepartment: [],
+            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]);
+                    }
+                }]
+            },
+            exportStatus: true
+        }
+    },
+    created() {
+        this.getAllUser();
+        this.getAssetsLedger();
+    },
+    methods: {
+        // 获取所有用户下拉列表
+        getAllUser() {
+            this.$api.user.simpleAll().then(res => {
+                if (res.code === 200) {
+                    this.allUsers = res.data;
+                }
+            })
+        },
+        // 条件查询
+        searchList() {
+            // 重置分页
+            this.listQuery.page = 1
+            this.listQuery.size = 10
+            this.getAssetsLedger()
+        },
+        // 重置搜索条件
+        resetParams() {
+            this.exportStatus = true;
+            this.selectDate = '';
+            this.$router.push({ query: {} });
+            this.listQuery = {
+                current: 1,
+                size: 10,
+            }
+            this.getAssetsLedger();
+        },
+        getAssetsLedger() {
+            if (this.selectDate) {
+                this.listQuery.startTime = this.selectDate[0] + ' 00:00:00';
+                this.listQuery.endTime = this.selectDate[1] + ' 23:59:59';
+            }
+            this.$api.statistical.getAssetsLedger(this.listQuery).then(res => {
+                if (res.code === 200) {
+                    this.pageData = res.data;
+                    if (this.listQuery.startTime !== null && this.listQuery.endTime !== null && res.data.records.length > 0) {
+                        this.exportStatus = false;
+                    } else {
+                        this.exportStatus = true;
+                    }
+                }
+            })
+        },
+        exportAssetsLedger() {
+            this.$utils.exportUtil(
+                "assets/statisticalStatement/getAssetsLedgerVO/export", this.listQuery,
+                "导出"
+            );
+        },
+        // 获取部门下拉列表
+        getAllotDepartment() {
+            this.$api.department.allot('ASSETS_BUSINESS').then(res => {
+                if (res.code === 200) {
+                    this.allotDepartment = res.data;
+                }
+            })
+        }
+    }
+}
+</script>
+<style scoped lang="scss">
+/* el-table 列数据为空自动显示 - */
+.tableFull :empty::before{
+	content:'-';
+	color:gray;
+}
+</style>

+ 611 - 0
src/views/statistical/assets/performanceDeduction.vue

@@ -0,0 +1,611 @@
+<template>
+    <div class="app-container organization-index">
+        <div class="title-container">
+            <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
+        </div>
+        <div>
+            <el-tabs v-model="activeTabName" @tab-click="tabClick" type="border-card">
+                <el-tab-pane label="评估部绩效扣分" name="department">
+                    <div style="width: 100%; height: 50px;">
+                        <el-date-picker style="margin-right: 20px;float: left;" v-model="selectDate1" type="daterange"
+                            :picker-options="pickerOptions" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"
+                            range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
+                        </el-date-picker>
+                        <el-select v-model="listQueryByDepartment.departmentId" filterable placeholder="接单部门"
+                            style=" width: 200px;margin-left: 10px;float: left;">
+                            <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option>
+                        </el-select>
+                        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
+                            @click="searchList1()" round>搜索
+                        </el-button>
+                        <el-button class="filter-item" round type="success" @click="resetParams1()">重置
+                        </el-button>
+                        <el-button class="filter-item" round type="info" @click="exportAssetsPerformanceDeduction()"
+                            :disabled="exportStatus">导出
+                        </el-button>
+                    </div>
+                    <el-table :data="departmentPerformanceDeduction" fit stripe highlight-current-row
+                        :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 100%; float: right;
+                      border-left: 1px solid #ebeced;
+                      border-right: 1px solid #ebeced;
+                      color: #333333; font-size: 14px;">
+                        <el-table-column label="部门名称" width="150">
+                            <template slot-scope="{row}">
+                                <span>{{ row.departmentName }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="初审扣分">
+                            <el-table-column label="一般错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.checkNormalMistakeScore > 0"
+                                        @click="setListQueryParms('初审', 'normal', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.checkNormalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.checkNormalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.checkHardMistakeScore > 0"
+                                        @click="setListQueryParms('初审', 'hard', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.checkHardMistakeScore }}</el-link>
+                                    <span v-else>{{ row.checkHardMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.checkFatalMistakeScore > 0"
+                                        @click="setListQueryParms('初审', 'fatal', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.checkFatalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.checkFatalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="复审扣分">
+                            <el-table-column label="一般错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.reCheckNormalMistakeScore > 0"
+                                        @click="setListQueryParms('复审', 'normal', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.reCheckNormalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.reCheckNormalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.reCheckHardMistakeScore > 0"
+                                        @click="setListQueryParms('复审', 'hard', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.reCheckHardMistakeScore }}</el-link>
+                                    <span v-else>{{ row.reCheckHardMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.reCheckFatalMistakeScore > 0"
+                                        @click="setListQueryParms('复审', 'fatal', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.reCheckFatalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.reCheckFatalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="四审扣分">
+                            <el-table-column label="一般错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.fourthCheckNormalMistakeScore > 0"
+                                        @click="setListQueryParms('四审', 'normal', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.fourthCheckNormalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.fourthCheckNormalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.fourthCheckHardMistakeScore > 0"
+                                        @click="setListQueryParms('四审', 'hard', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.fourthCheckHardMistakeScore }}</el-link>
+                                    <span v-else>{{ row.fourthCheckHardMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.fourthCheckFatalMistakeScore > 0"
+                                        @click="setListQueryParms('四审', 'fatal', row.departmentId, listQueryByDepartment.startTime, listQueryByDepartment.endTime)">{{
+                                            row.fourthCheckFatalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.fourthCheckFatalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="外部投诉">
+                            <el-table-column label="一般错误">
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                            </el-table-column>
+                            <el-table-column label="服务态度恶劣">
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="内部投诉">
+                            <el-table-column label="一般错误">
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                            </el-table-column>
+                            <el-table-column label="服务态度恶劣">
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column prop="allMistakeScore" label="扣分合计">
+                        </el-table-column>
+                    </el-table>
+                </el-tab-pane>
+                <el-tab-pane label="评估人员绩效扣分" name="personal">
+                    <div style="width: 100%; height: 50px;">
+                        <el-date-picker style="margin-right: 20px;float: left;" v-model="selectDate2" type="daterange"
+                            :picker-options="pickerOptions" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"
+                            range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
+                        </el-date-picker>
+                        <el-select v-model="listQueryByEvaluator.departmentId" filterable placeholder="接单部门"
+                            style=" width: 200px;margin-left: 10px;float: left;">
+                            <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option>
+                        </el-select>
+                        <el-input v-model="listQueryByEvaluator.userName" placeholder="姓名" clearable
+                            style="margin-left: 20px;width: 200px;float: left;">
+                        </el-input>
+                        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
+                            @click="searchList2()" round>搜索
+                        </el-button>
+                        <el-button class="filter-item" round type="success" @click="resetParams2()">重置
+                        </el-button>
+                        <el-button class="filter-item" round type="info"
+                            @click="exportAssetsPerformanceDeductionByEvaluator()" :disabled="exportStatus">导出
+                        </el-button>
+                    </div>
+                    <el-table :data="evaluatorPerformanceDeduction" fit stripe highlight-current-row
+                        :header-row-style="{ color: '#333333', 'font-size': '14px' }" style=" width: 100%; float: right;
+                      border-left: 1px solid #ebeced;
+                      border-right: 1px solid #ebeced;
+                      color: #333333; font-size: 14px;">
+                        <el-table-column label="评估人员" width="150">
+                            <template slot-scope="{row}">
+                                <span>{{ row.userName }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="部门名称" width="150">
+                            <template slot-scope="{row}">
+                                <span>{{ row.departmentName }}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="初审扣分">
+                            <el-table-column label="一般错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.checkNormalMistakeScore > 0"
+                                        @click="setListQueryParms('初审', 'normal', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.checkNormalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.checkNormalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.checkHardMistakeScore > 0"
+                                        @click="setListQueryParms('初审', 'hard', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.checkHardMistakeScore }}</el-link>
+                                    <span v-else>{{ row.checkHardMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.checkFatalMistakeScore > 0"
+                                        @click="setListQueryParms('初审', 'fatal', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.checkFatalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.checkFatalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="复审扣分">
+                            <el-table-column label="一般错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.reCheckNormalMistakeScore > 0"
+                                        @click="setListQueryParms('复审', 'normal', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.reCheckNormalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.reCheckNormalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.reCheckHardMistakeScore > 0"
+                                        @click="setListQueryParms('复审', 'hard', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.reCheckHardMistakeScore }}</el-link>
+                                    <span v-else>{{ row.reCheckHardMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.reCheckFatalMistakeScore > 0"
+                                        @click="setListQueryParms('复审', 'fatal', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.reCheckFatalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.reCheckFatalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="四审扣分">
+                            <el-table-column label="一般错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.fourthCheckNormalMistakeScore > 0"
+                                        @click="setListQueryParms('四审', 'normal', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.fourthCheckNormalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.fourthCheckNormalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.fourthCheckHardMistakeScore > 0"
+                                        @click="setListQueryParms('四审', 'hard', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.fourthCheckHardMistakeScore }}</el-link>
+                                    <span v-else>{{ row.fourthCheckHardMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                                <template slot-scope="{row}">
+                                    <el-link type="danger" v-if="row.fourthCheckFatalMistakeScore > 0"
+                                        @click="setListQueryParms('四审', 'fatal', row.departmentId, listQueryByEvaluator.startTime, listQueryByEvaluator.endTime, row.userId)">{{
+                                            row.fourthCheckFatalMistakeScore }}</el-link>
+                                    <span v-else>{{ row.fourthCheckFatalMistakeScore }}</span>
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="外部投诉">
+                            <el-table-column label="一般错误">
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                            </el-table-column>
+                            <el-table-column label="服务态度恶劣">
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="内部投诉">
+                            <el-table-column label="一般错误">
+                            </el-table-column>
+                            <el-table-column label="较大错误">
+                            </el-table-column>
+                            <el-table-column label="重大错误">
+                            </el-table-column>
+                            <el-table-column label="服务态度恶劣">
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column prop="allMistakeScore" label="扣分合计">
+                        </el-table-column>
+                    </el-table>
+                </el-tab-pane>
+            </el-tabs>
+        </div>
+        <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="70%"
+            @open="getAssetsPerformanceDeductionDetail()">
+            <y-page-list-layout :get-page-list="getAssetsPerformanceDeductionDetail" :page-list="pageData"
+                :page-para="listQueryByEvaluator">
+                <template slot="left">
+                    <el-button class="filter-item" round type="info" @click="exportPerformanceDeductionDetail()">导出
+                    </el-button>
+                </template>
+                <parentTable ref="table" :data="pageData.records" slot="table" style="width: 100%;" :isBoard=800>
+                    <el-table-column label="项目编号" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.orderId }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目名称" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.projectName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="客户名称" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.customerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="产品类型" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.productionType }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="产品号" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.productionNo }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目负责人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.principalName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="参与人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.members }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="评估金额(万元)" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.evaluateAmount }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="扣分人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.checkerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="错误个数" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.mistakeCount }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="扣分时间" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.checkTime }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="扣分原因" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reason }}</span>
+                        </template>
+                    </el-table-column>
+                </parentTable>
+            </y-page-list-layout>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import Breadcrumb from '@/components/Breadcrumb'
+import YPageListLayout from '@/components/YPageListLayout'
+
+export default {
+    name: 'assetsPerformanceDeduction',
+    components: {
+        Breadcrumb,
+        YPageListLayout
+    },
+    data() {
+        return {
+            activeTabName: 'department',
+            dialogVisible: false,
+            dialogTitle: null,
+            listLoading: false,
+            // 时间
+            selectDate1: [],
+            selectDate2: [],
+            listQueryByDepartment: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null
+            },
+            listQueryByEvaluator: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null,
+                // 评估人员姓名
+                userName: null
+            },
+            listQueryDetail: {
+                // 审核轮次
+                checkLoop: null,
+                // 错误类型(normal、hard、fatal)
+                mistakeType: null,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null,
+                principalId: null
+            },
+            // 接单部门
+            allotDepartment: [],
+            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]);
+                    }
+                }]
+            },
+            exportStatus: true,
+            departmentPerformanceDeduction: [],
+            evaluatorPerformanceDeduction: [],
+            pageData: { records: [] },
+        }
+    },
+    created() {
+        this.selectDate1.push(this.getDefaultStartDate());
+        this.selectDate1.push(this.getDefaultEndDate());
+        this.selectDate2.push(this.getDefaultStartDate());
+        this.selectDate2.push(this.getDefaultEndDate());
+        this.getAllotDepartment();
+        this.getAssetsPerformanceDeduction();
+    },
+    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'
+        },
+        tabClick(tab, event) {
+            if (tab.name === 'department') {
+                this.getAssetsPerformanceDeduction();
+            }
+            if (tab.name === 'personal') {
+                this.getAssetsPerformanceDeductionVOByEvaluator();
+            }
+        },
+        // 条件查询
+        searchList1() {
+            this.getAssetsPerformanceDeduction()
+        },
+        // 重置搜索条件
+        resetParams1() {
+            this.exportStatus = true;
+            this.listQueryByDepartment = {
+                // 重置分页
+                page: 1,
+                size: 10,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null
+            };
+            this.selectDate1 = [];
+            this.selectDate1.push(this.getDefaultStartDate());
+            this.selectDate1.push(this.getDefaultEndDate());
+            this.getAssetsPerformanceDeduction();
+        },
+        getAssetsPerformanceDeduction() {
+            if (this.selectDate1) {
+                this.listQueryByDepartment.startTime = this.selectDate1[0] + ' 00:00:00';
+                this.listQueryByDepartment.endTime = this.selectDate1[1] + ' 23:59:59';
+            }
+            this.$api.statistical.getAssetsPerformanceDeduction(this.listQueryByDepartment).then(res => {
+                if (res.code === 200) {
+                    this.departmentPerformanceDeduction = res.data;
+                    if (this.listQueryByDepartment.startTime !== null && this.listQueryByDepartment.endTime !== null && res.data.length > 0) {
+                        this.exportStatus = false;
+                    } else {
+                        this.exportStatus = true;
+                    }
+                }
+            })
+        },
+        exportAssetsPerformanceDeduction() {
+            this.$utils.exportUtil(
+                "assets/statisticalStatement/department/getAssetsPerformanceDeductionVO/export", this.listQueryByDepartment,
+                "导出"
+            );
+        },
+        // 获取部门下拉列表
+        getAllotDepartment() {
+            this.$api.department.allot('ASSET_BUSINESS').then(res => {
+                if (res.code === 200) {
+                    this.allotDepartment = res.data;
+                }
+            })
+        },
+        setListQueryParms(checkLoop, mistakeType, departmentId, startTime, endTime, userId) {
+            this.dialogVisible = true;
+            this.listQueryDetail.checkLoop = checkLoop;
+            this.listQueryDetail.mistakeType = mistakeType;
+            this.listQueryDetail.departmentId = departmentId;
+            this.listQueryDetail.startTime = startTime;
+            this.listQueryDetail.endTime = endTime;
+            if (userId) {
+                this.listQueryDetail.principalId = userId;
+            }
+            if (mistakeType === 'normal') {
+                this.dialogTitle = checkLoop + ":一般错误列表";
+            } else if (mistakeType === 'hard') {
+                this.dialogTitle = checkLoop + ":较大错误列表";
+            } else if (mistakeType === 'fatal') {
+                this.dialogTitle = checkLoop + ":重大错误列表";
+            } else {
+                this.dialogTitle = "-";
+            }
+        },
+        // 查询错误详情列表
+        getAssetsPerformanceDeductionDetail() {
+            this.$api.statistical.getAssetsPerformanceDeductionDetail(this.listQueryDetail).then(res => {
+                if (res.code === 200) {
+                    this.pageData = res.data;
+                }
+            })
+        },
+        // 错误详情列表导出
+        exportPerformanceDeductionDetail() {
+            this.$utils.exportUtil(
+                "assets/statisticalStatement/department/getAssetsPerformanceDeductionDetail/export", this.listQueryDetail,
+                "导出"
+            );
+        },
+        // 条件查询
+        searchList2() {
+            this.getAssetsPerformanceDeductionVOByEvaluator()
+        },
+        // 重置搜索条件
+        resetParams2() {
+            this.exportStatus = true;
+            this.listQueryByEvaluator = {
+                // 重置分页
+                page: 1,
+                size: 10,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null
+            };
+            this.selectDate2 = [];
+            this.selectDate2.push(this.getDefaultStartDate());
+            this.selectDate2.push(this.getDefaultEndDate());
+            this.getAssetsPerformanceDeductionVOByEvaluator();
+        },
+        // 评估人员绩效扣分查询
+        getAssetsPerformanceDeductionVOByEvaluator() {
+            if (this.selectDate2) {
+                this.listQueryByEvaluator.startTime = this.selectDate2[0] + ' 00:00:00';
+                this.listQueryByEvaluator.endTime = this.selectDate2[1] + ' 23:59:59';
+            }
+            this.$api.statistical.getAssetsPerformanceDeductionVOByEvaluator(this.listQueryByEvaluator).then(res => {
+                if (res.code === 200) {
+                    this.evaluatorPerformanceDeduction = res.data;
+                    if (this.listQueryByEvaluator.startTime !== null && this.listQueryByEvaluator.endTime !== null && res.data.length > 0) {
+                        this.exportStatus = false;
+                    } else {
+                        this.exportStatus = true;
+                    }
+                }
+            })
+        },
+        exportAssetsPerformanceDeductionByEvaluator() {
+            this.$utils.exportUtil(
+                "assets/statisticalStatement/evaluator/getAssetsPerformanceDeductionVO/export", this.listQueryByEvaluator,
+                "导出"
+            );
+        }
+    }
+}
+</script>