ソースを参照

1.大中型-评估效率值新增个人产值列与个人产值详情列表;新增数据权限区分

GouGengquan 2 ヶ月 前
コミット
dfab119182

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

@@ -90,6 +90,10 @@ export default {
     getMajorEfficiencyDetailVO(params){
         return request.get(`major/statisticalStatement/evaluate/getMajorEvaEffDetailVO`, { params: params })
     },
+    // 大中型评估人员产值详情查询
+    getMajorOutputValueDetailVO(params){
+        return request.get(`major/statisticalStatement/evaluate/getMajorOutputValueDetailVO`, { params: params })
+    },
     // 大中型根据部门id获取部门绩效扣分
     getMajorPerformanceDeductionVOByDepId(params){
         return request.get(`major/statisticalStatement/depId/getMajorPerformanceDeductionVO`, { params: params })

+ 161 - 5
src/views/statistical/major/evaluateEfficiency.vue

@@ -11,7 +11,7 @@
                             :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="接单部门"
+                        <el-select v-model="listQueryByDepartment.departmentId" filterable placeholder="接单部门" :disabled="majorLeader || majorUser"
                             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>
@@ -198,11 +198,11 @@
                             :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="接单部门"
+                        <el-select v-model="listQueryByEvaluator.departmentId" filterable placeholder="接单部门" :disabled="majorLeader || majorUser"
                             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
+                        <el-input v-model="listQueryByEvaluator.userName" placeholder="姓名" clearable :disabled="majorUser"
                             style="margin-left: 20px;width: 200px;float: left;">
                         </el-input>
                         <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary"
@@ -388,6 +388,13 @@
                                 <span>{{ row.unFinancialQuoteProcessingTime }}</span>
                             </template>
                         </el-table-column>
+                        <el-table-column label="个人产值(元)">
+                        <template slot-scope="{row}">
+                            <el-link v-if="row.currentPeriodOutputValue > 0" @click="opemOutputValue(row)">
+                                {{ row.currentPeriodOutputValue }}
+                            </el-link>
+                        </template>
+                    </el-table-column>
                     </el-table>
                 </el-tab-pane>
             </el-tabs>
@@ -395,7 +402,7 @@
         <el-dialog title="大中型订单列表" :visible.sync="dialogVisible" width="70%" @open="getMajorEfficiencyDetailVO()">
             <y-page-list-layout :get-page-list="getMajorEfficiencyDetailVO" :page-list="pageData" :page-para="listQueryDetail">
                 <template slot="left">
-                    <el-button class="filter-item" round type="info" @click="exportAssetsEvaEffDetail()">导出
+                    <el-button class="filter-item" round type="info" @click="exportMajorEvaEffDetail()">导出
                     </el-button>
                 </template>
                 <parentTable ref="table" :data="pageData.records" v-loading="dialogLoading" element-loading-text="报表查询中..." slot="table" style="width: 100%;" :isBoard=800
@@ -483,12 +490,99 @@
                 </parentTable>
             </y-page-list-layout>
         </el-dialog>
+        <el-dialog title="大中型产值列表" :visible.sync="outputValueVisible" width="70%" @open="getMajorOutputValueDetailVO()">
+            <y-page-list-layout :get-page-list="getMajorOutputValueDetailVO" :page-list="pageData" :page-para="listQueryDetail">
+                <template slot="left">
+                    <el-button class="filter-item" round type="info" @click="exportMajorEvaEffDetail()">导出
+                    </el-button>
+                </template>
+                <parentTable ref="table" :data="pageData.records" v-loading="dialogLoading" element-loading-text="报表查询中..." slot="table" style="width: 100%;" :isBoard=800
+                    class="tableFull">
+                    <el-table-column label="项目编号" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.orderId }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="项目名称" align="center" show-overflow-tooltip>
+                        <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.customerSubName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="客户联系人名" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.linkmanName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="委托人" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.bailor }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="报告号" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.reportNo }}</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.clientManagerName }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="出报告时间" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.writeReportDate }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="产品应收款(元)" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.shouldAmount }}</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="绩效比例" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.ratio * 100 }}%</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="产值(元)" align="center">
+                        <template slot-scope="{row}">
+                            <span>{{ row.outputValue }}</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'
+import { mapGetters } from 'vuex';
 
 export default {
     name: 'majorEvaluateEfficiency',
@@ -496,10 +590,45 @@ export default {
         Breadcrumb,
         YPageListLayout
     },
+    computed: {
+        ...mapGetters(['userInfo']),
+    },
+    watch: {
+        userInfo: {
+            immediate: true, // immediate选项可以开启首次赋值监听
+            deep: true,
+            handler(newv) {
+                if (newv) {
+                    // 判断用户是不是评估部经理
+                    const post1 = newv.postList.find(item => item.name === '评估部经理');
+                    if (post1) {
+                        this.listQueryByDepartment.departmentId = post1.departmentId;
+                        this.listQueryByEvaluator.departmentId = post1.departmentId;
+                        this.majorLeader = true;
+                        return;
+                    }
+                    // 判断用户是不是估价师
+                    const post2 = newv.postList.find(item => item.name === '估价师' || item.name === '管培生' || item.name === '客户经理' || item.name === '估价助理');
+                    if (post2) {
+                        this.listQueryByDepartment.departmentId = post2.departmentId;
+                        this.listQueryByEvaluator.departmentId = post2.departmentId;
+                        this.listQueryByEvaluator.userName = this.$store.getters.userInfo.name;
+                        this.majorUser = true;
+                        return;
+                    }
+                }
+            },
+        },
+    },
     data() {
         return {
             activeTabName: 'department',
             dialogVisible: false,
+            outputValueVisible: false,
+            // 大中型评估部经理
+            majorLeader: false,
+            // 大中型普通用户
+            majorUser: false,
             aimLoading: false,
             // 时间
             selectDate1: [],
@@ -576,6 +705,7 @@ export default {
         }
     },
     created() {
+        console.log(this.$store.getters.userInfo)
         this.selectDate1.push(this.getDefaultStartDate());
         this.selectDate1.push(this.getDefaultEndDate());
         this.selectDate2.push(this.getDefaultStartDate());
@@ -748,11 +878,37 @@ export default {
             })
         },
         // 效率详情列表查询导出
-        exportAssetsEvaEffDetail() {
+        exportMajorEvaEffDetail() {
             this.$utils.exportUtil(
                 "major/statisticalStatement/evaluate/getMajorEvaEffDetailVO/export", this.listQueryDetail,
                 "导出"
             );
+        },
+        opemOutputValue(row) {
+            this.outputValueVisible = true;
+            this.listQueryDetail.page = 1;
+            this.listQueryDetail.size = 10;
+            this.listQueryDetail.current = 1;
+            this.listQueryDetail.userId = row.userId;
+            this.listQueryDetail.startTime = this.listQueryByEvaluator.startTime;
+            this.listQueryDetail.endTime = this.listQueryByEvaluator.endTime;
+        },
+        // 产值详情列表查询
+        getMajorOutputValueDetailVO() {
+            this.dialogLoading = true;
+            this.$api.statistical.getMajorOutputValueDetailVO(this.listQueryDetail).then(res => {
+                if (res.code === 200) {
+                    this.pageData = res.data;
+                }
+                this.dialogLoading = false;
+            })
+        },
+        // 产值详情列表查询导出
+        exportMajorEvaEffDetail() {
+            this.$utils.exportUtil(
+                "major/statisticalStatement/evaluate/getMajorOutputValueDetailVO/export", this.listQueryDetail,
+                "导出"
+            );
         }
     }
 }