Explorar el Código

1.资产禁用选择认领到订单
2.新增部门内部绩效扣分页面
3.资产详情页面tag页适配

GouGengquan hace 10 meses
padre
commit
b16f69cd19

+ 5 - 1
src/api/modules/statistical.js

@@ -89,6 +89,10 @@ export default {
     // 大中型效率详情列表查询
     getMajorEfficiencyDetailVO(params){
         return request.get(`major/statisticalStatement/evaluate/getMajorEvaEffDetailVO`, { params: params })
-    }
+    },
+    // 大众新根据部门id获取部门绩效扣分
+    getMajorPerformanceDeductionVOByDepId(params){
+        return request.get(`major/statisticalStatement/depId/getMajorPerformanceDeductionVO`, { params: params })
+    },
 
 }

+ 3 - 1
src/router/urlMap.js

@@ -143,6 +143,7 @@ import _views_statistical_personal_evaluate_efficiency from '@/views/statistical
 import _views_statistical_major_ledger from '@/views/statistical/major/ledgerList'
 import _views_statistical_major_performance_deduction from '@/views/statistical/major/performanceDeduction'
 import _views_statistical_major_evaluate_efficiency from '@/views/statistical/major/evaluateEfficiency'
+import _views_statistical_major_evaluate_efficiency_depInternal from '@/views/statistical/major/performanceDeductionDepInternal'
 
 export default {
   _views_set_menu,
@@ -274,6 +275,7 @@ export default {
   _views_statistical_personal_evaluate_efficiency,
   _views_statistical_major_ledger,
   _views_statistical_major_performance_deduction,
-  _views_statistical_major_evaluate_efficiency
+  _views_statistical_major_evaluate_efficiency,
+  _views_statistical_major_evaluate_efficiency_depInternal
 
 }

+ 34 - 9
src/views/assets/orderDetail.vue

@@ -808,7 +808,8 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="12" :lg="12" :span="3" v-if="targetForm.evaluationTypeSecId && [15,20,34,47].includes(targetForm.evaluationTypeSecId)">
+            <el-col :xs="24" :sm="12" :lg="12" :span="3"
+              v-if="targetForm.evaluationTypeSecId && [15, 20, 34, 47].includes(targetForm.evaluationTypeSecId)">
               <el-form-item prop="evaluationTypeDefinedSec" label-width="200px" class="postInfo-container-item">
                 <el-input v-model="targetForm.evaluationTypeDefinedSec" multiple style="width: 100%;">
                 </el-input>
@@ -999,7 +1000,7 @@
       </el-form>
     </el-dialog>
 
-    <el-dialog :visible.sync="productionWriteDialogVisible" @open="clearassetsProductionFormValidate(),byAssetEvaluator()"
+    <el-dialog :visible.sync="productionWriteDialogVisible" @open="clearassetsProductionFormValidate(), byAssetEvaluator()"
       @close="resetProductionForm()">
       <el-form ref="assetsProductionForm" :model="assetsProductionForm" :rules="assetsProductionFormRules"
         :disabled="productionDisabledStatus">
@@ -1376,6 +1377,32 @@ export default {
     WorkflowBoard,
     ScanEntry
   },
+  watch: {
+    $route(to, from) {
+      // 获取页面参数
+      this.pageParams.back = this.$route.query.back;
+      this.pageParams.row = JSON.parse(this.$route.query.row);
+      this.getProductionTypes(this.pageParams.row.assetsId);
+      this.nodeBusinessInfo.doWorkflow = true;
+      this.nodeBusinessInfo.mainBusiness = 'ASSET_BUSINESS';
+      this.nodeBusinessInfo.businessId = this.pageParams.row.assetsId;
+      this.nodeBusinessInfo.businessSubId = this.pageParams.row.statementNo;
+      this.nodeBusinessInfo.businessMinId = this.pageParams.row.reportNo;
+      this.nodeBusinessInfo.reportNos.push(this.pageParams.row.statementNo);
+      this.disabledStatus = this.$route.query.disabledStatus === 'true';
+      this.couldEdit = this.$route.query.couldEdit === 'true';
+      this.couldBack = this.$route.query.couldBack === 'true';
+      if (this.$route.query.activeTabName !== null && this.$route.query.activeTabName !== undefined) {
+        this.activeTabName = this.$route.query.activeTabName;
+      }
+      this.byDepartmentName();
+      this.getCurrentNodeInfo();
+      this.getAllotDepartment();
+      this.getAssetsDetailById(this.pageParams.row.assetsId);
+      this.getAETargetListByAssetsId();
+      this.getOrderFundInvoiceById();
+    }
+  },
   data() {
     var checkSignatoryLength = (rule, value, callback) => {
       if (this.assetsProductionForm.signatory !== undefined && this.assetsProductionForm.signatory !== null) {
@@ -1888,9 +1915,6 @@ export default {
       ]
     }
   },
-  watch: {
-
-  },
   created() {
     // 获取页面参数
     this.pageParams.back = this.$route.query.back;
@@ -2196,7 +2220,7 @@ export default {
       })
     },
     // 获取资产评估师用户
-    byAssetEvaluator(){
+    byAssetEvaluator() {
       this.$api.user.byAssetEvaluator().then(res => {
         if (res.code === 200) {
           this.assetEvaluator = res.data;
@@ -2204,7 +2228,7 @@ export default {
       })
     },
     // 根据部门名称获取部门及其下辖部门人员
-    byDepartmentName(){
+    byDepartmentName() {
       this.$api.user.byDepartmentName("资产评估事业部").then(res => {
         if (res.code === 200) {
           this.depUsers = res.data;
@@ -2573,10 +2597,10 @@ export default {
     getOrderFundInvoiceById() {
       this.$api.assets.getOrderFundInvoiceById(this.assetsForm.id).then(res => {
         if (res.code === 200) {
-          if (res.data != null) {
+          // if (res.data != null) {
             this.invoiceData = res.data;
             this.invoiceData.leftAmount = this.invoiceData.shouldAmount - this.invoiceData.realAmount;
-          }
+          // }
         }
       })
     },
@@ -2919,6 +2943,7 @@ export default {
       aProListSelectDTO.statementNos = this.assetsEvaluationTarget.filter(obj => obj.statementNo !== null && obj.statementNo !== '').map(obj => obj.statementNo);
       aProListSelectDTO.reportNos = this.assetsEvaluationTarget.filter(obj => obj.reportNo !== null && obj.reportNo !== '').map(obj => obj.reportNo);
       // }
+      this.assetsProductionData = null;
       if (aProListSelectDTO.statementNos.length > 0 || aProListSelectDTO.reportNos.length > 0) {
         this.$api.assets.getProductionList(aProListSelectDTO).then(res => {
           if (res.code == 200) {

+ 1 - 1
src/views/finance/fundClaim.vue

@@ -451,7 +451,7 @@
         :get-page-list="getMyAssetsOrderOrProd">
         <template slot="left">
           <el-switch style="width: 270px;float: left;margin-top: 5px;" v-model="toAssetsProd" active-color="#13ce66"
-            inactive-color="#ff4949" active-text="认领到产品" inactive-text="认领到订单">
+            inactive-color="#ff4949" active-text="认领到产品" inactive-text="认领到订单" disabled>
           </el-switch>
           <el-input v-model="assetsListQuery.name" placeholder="订单/项目名称" clearable style="width: 270px;float: left;">
           </el-input>

+ 389 - 0
src/views/statistical/major/performanceDeductionDepInternal.vue

@@ -0,0 +1,389 @@
+<template>
+    <div class="app-container organization-index">
+        <div class="title-container">
+            <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
+        </div>
+        <div>
+            <div style="width: 100%; height: 50px;">
+                <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.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="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="exportMajorPerformanceDeductionVO()"
+                    :disabled="exportStatus">导出
+                </el-button>
+            </div>
+            <el-table :data="performanceDeduction" 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="部门内部扣分">
+                    <el-table-column label="一般错误">
+                        <template slot-scope="{row}">
+                            <el-link type="danger" v-if="row.checkNormalMistakeScore > 0"
+                                @click="setListQueryParms('初审', 'normal', row.departmentId, listQuery.startTime, listQuery.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, listQuery.startTime, listQuery.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, listQuery.startTime, listQuery.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, listQuery.startTime, listQuery.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, listQuery.startTime, listQuery.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, listQuery.startTime, listQuery.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="一般错误">
+                    </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 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>
+        </div>
+        <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="70%"
+            @open="getMajorPerformanceDeductionDetailVO()">
+            <y-page-list-layout :get-page-list="getMajorPerformanceDeductionDetailVO" :page-list="pageData"
+                :page-para="listQueryDetail">
+                <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 v-if="row.financial">金融</span>
+                            <span v-else>非金融</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.evaluateAim }}</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.mistakeScore }}</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: 'majorPerformanceDeduction',
+    components: {
+        Breadcrumb,
+        YPageListLayout
+    },
+    data() {
+        return {
+            dialogVisible: false,
+            dialogTitle: null,
+            listLoading: false,
+            // 时间
+            selectDate: [],
+            listQuery: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null
+            },
+            listQueryDetail: {
+                page: 1,
+                size: 10,
+                current: 1,
+                // 审核轮次
+                checkLoop: null,
+                // 错误类型(normal、hard、fatal)
+                mistakeType: null,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null,
+                principalId: 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]);
+                    }
+                }]
+            },
+            exportStatus: true,
+            performanceDeduction: [],
+            pageData: { records: [] },
+        }
+    },
+    created() {
+        this.selectDate.push(this.getDefaultStartDate());
+        this.selectDate.push(this.getDefaultEndDate());
+        this.getMajorPerformanceDeductionVOByDepId();
+    },
+    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'
+        },
+        // 条件查询
+        searchList() {
+            this.getMajorPerformanceDeductionVOByDepId()
+        },
+        // 重置搜索条件
+        resetParams() {
+            this.exportStatus = true;
+            this.listQuery = {
+                // 重置分页
+                page: 1,
+                size: 10,
+                // 开始时间
+                startTime: null,
+                // 结束时间
+                endTime: null,
+                // 部门id
+                departmentId: null
+            };
+            this.selectDate = [];
+            this.selectDate.push(this.getDefaultStartDate());
+            this.selectDate.push(this.getDefaultEndDate());
+            this.getMajorPerformanceDeductionVOByDepId();
+        },
+        getMajorPerformanceDeductionVOByDepId() {
+            if (this.selectDate) {
+                this.listQuery.startTime = this.selectDate[0] + ' 00:00:00';
+                this.listQuery.endTime = this.selectDate[1] + ' 23:59:59';
+            }
+            this.$api.statistical.getMajorPerformanceDeductionVOByDepId(this.listQuery).then(res => {
+                if (res.code === 200) {
+                    this.performanceDeduction = res.data;
+                    if (this.listQuery.startTime !== null && this.listQuery.endTime !== null && res.data.length > 0) {
+                        this.exportStatus = false;
+                    } else {
+                        this.exportStatus = true;
+                    }
+                }
+            })
+        },
+        exportMajorPerformanceDeductionVO() {
+            this.$utils.exportUtil(
+                "major/statisticalStatement/depId/getMajorPerformanceDeductionVO/export", this.listQuery,
+                "导出"
+            );
+        },
+        setListQueryParms(checkLoop, mistakeType, departmentId, startTime, endTime, userId) {
+            this.dialogVisible = true;
+            this.listQueryDetail.page = 1;
+            this.listQueryDetail.size = 10;
+            this.listQueryDetail.current = 1;
+            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;
+            } else {
+                this.listQueryDetail.principalId = null;
+            }
+            // 设置dialog标题
+            if (mistakeType === 'normal') {
+                this.dialogTitle = checkLoop + ":一般错误列表";
+            } else if (mistakeType === 'hard') {
+                this.dialogTitle = checkLoop + ":较大错误列表";
+            } else if (mistakeType === 'fatal') {
+                this.dialogTitle = checkLoop + ":重大错误列表";
+            } else {
+                this.dialogTitle = "-";
+            }
+        },
+        // 查询错误详情列表
+        getMajorPerformanceDeductionDetailVO() {
+            this.$api.statistical.getMajorPerformanceDeductionDetailVO(this.listQueryDetail).then(res => {
+                if (res.code === 200) {
+                    this.pageData = res.data;
+                }
+            })
+        },
+        // 错误详情列表导出
+        exportPerformanceDeductionDetail() {
+            this.$utils.exportUtil(
+                "major/statisticalStatement/getMajorPerformanceDeductionDetailVO/export", this.listQueryDetail,
+                "导出"
+            );
+        }
+    }
+}
+</script>