|
|
<template> |
|
|
<div> |
|
|
<topSidebar :title="flowPathTopSidebar" :pitchOn="flowPathTopVal" @getSidebarVal="getFlowPathTopSidebar"> |
|
|
</topSidebar> |
|
|
<!-- 团队效率 --> |
|
|
<div v-if="flowPathTopVal==='1'" class="mgt20 bgw shadow radius10 list-box"> |
|
|
<div class="mglr20 "> |
|
|
<div class="df-between pdt20 date"> |
|
|
<div class="flex-align-center"> |
|
|
<p class="fz-16 mgr10 font-blue not-zoom">审批时间</p> |
|
|
<el-select @focus="setMinWidth" v-model="parameter.createFixedTime" placeholder="请选择" clearable @change="efficiencyChart"> |
|
|
<el-option :style="{ 'min-width': minWidth + 2 + 'px' }" v-for="item in searchDays" :key="item.value" :label="item.label" :value="item.value"> |
|
|
</el-option> |
|
|
</el-select> |
|
|
<el-date-picker |
|
|
class="ht40 mgl10" |
|
|
v-model="flowDatesSelect" |
|
|
@change="getDates($event,parameter.startTime,parameter.endTime,'flowTeam')" |
|
|
type="daterange" |
|
|
range-separator="至" |
|
|
start-placeholder="开始日期" |
|
|
end-placeholder="结束日期" |
|
|
format="yyyy-MM-dd" |
|
|
value-format="timestamp" |
|
|
> |
|
|
</el-date-picker> |
|
|
</div> |
|
|
<div class="flex-align-center mgr30"> |
|
|
<p class="fz-16 mgl20 mgr10 font-blue not-zoom">部门</p> |
|
|
<el-select @focus="setMinWidth" v-model="parameter.departmentId" placeholder="请选择部门" clearable @change="efficiencyChart"> |
|
|
<el-option :style="{ 'min-width': minWidth + 2 + 'px' }" v-for="item in depData" :key="item.value" :label="item.name" :value="item.id"> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</div> |
|
|
<!-- <el-date-picker class="mgl10" v-model="value" type="date" placeholder="选择日期"> </el-date-picker> --> |
|
|
</div> |
|
|
|
|
|
<div class="flex-center mgt20"> |
|
|
<p class="font-blue fz-16 mgr10 not-zoom">流程状态</p> |
|
|
<!-- 流程状态旁边的字,写定死的值,根据返回的数组某个id,进行show以及切换显示 --> |
|
|
<el-radio-group class="flow round-radio" v-model="parameter.flowStatus" @change="efficiencyChart"> |
|
|
<!-- span再根据某数据变更即可 --> |
|
|
<!-- |
|
|
2021-5-28 去掉括号内容 |
|
|
<span >{{'('+teamStatus[0]?teamStatus[0]:0+')'}}</span> |
|
|
<span >{{'('+teamStatus[1]?teamStatus[1]:0+')'}}</span> |
|
|
<span >{{'('+teamStatus[2]?teamStatus[2]:0+')'}}</span> |
|
|
<span >{{'('+teamStatus[3]?teamStatus[3]:0+')'}}</span> |
|
|
--> |
|
|
<el-radio-button label="">不限</el-radio-button> |
|
|
<el-radio-button :label="0">已撤销</el-radio-button> |
|
|
<el-radio-button :label="1">进行中</el-radio-button> |
|
|
<el-radio-button :label="2">已完成</el-radio-button> |
|
|
<el-radio-button :label="3">已否决</el-radio-button> |
|
|
</el-radio-group> |
|
|
</div> |
|
|
</div> |
|
|
<div> |
|
|
<div v-for="(item,index) in chartsName" :key="index"> |
|
|
<GuaranteeChart :title="item" :data="chartsData[index]"></GuaranteeChart> |
|
|
</div> |
|
|
<div v-if="!chartsName||chartsName.length===0" class="blank"> |
|
|
<h2>暂无数据</h2> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<!-- 个人效率 --> |
|
|
<div v-if="flowPathTopVal==='2'" class="mgt20 bgw shadow radius10 list-box mgb10"> |
|
|
<div class="mglr20 "> |
|
|
<div class="flex-align-center pdt20 date"> |
|
|
<p class="fz-16 mgr10 font-blue not-zoom">申请时间</p> |
|
|
<!-- 非抄送的查询时间 --> |
|
|
<el-select v-if="listParameter.operatingStatus!==3" @focus="setMinWidth" v-model="listParameter.createFixedTime" placeholder="请选择" @change="personalEfficiencyList"> |
|
|
<el-option :style="{ 'min-width': minWidth + 2 + 'px' }" v-for="item in searchDays" :key="item.value" :label="item.label" :value="item.value"> |
|
|
</el-option> |
|
|
</el-select> |
|
|
<!-- 抄送的查询时间 --> |
|
|
<el-select v-if="listParameter.operatingStatus===3" @focus="setMinWidth" v-model="copyParam.createFixedTime" placeholder="请选择" @change="queryCopyForMe('search')"> |
|
|
<el-option :style="{ 'min-width': minWidth + 2 + 'px' }" v-for="item in searchDays" :key="item.value" :label="item.label" :value="item.value"> |
|
|
</el-option> |
|
|
</el-select> |
|
|
<el-date-picker |
|
|
class="ht40 mgl10" |
|
|
v-model="flowDatesSelect" |
|
|
@change="getDates($event,thisval,thisval1,'man')" |
|
|
type="daterange" |
|
|
range-separator="至" |
|
|
start-placeholder="开始日期" |
|
|
end-placeholder="结束日期" |
|
|
format="yyyy-MM-dd" |
|
|
value-format="timestamp" |
|
|
> |
|
|
</el-date-picker> |
|
|
<!-- <el-date-picker class="mgl10" v-model="value" type="date" placeholder="选择日期"> </el-date-picker> --> |
|
|
</div> |
|
|
<div class="flex-center mgt20"> |
|
|
<p class="font-blue fz-16 mgr10 not-zoom">流程状态</p> |
|
|
<!-- 流程状态旁边的字,写定死的值,根据返回的数组某个id,进行show以及切换显示 --> |
|
|
<el-radio-group class="flow round-radio" v-model="listParameter.operatingStatus" @change="personalEfficiencyList"> |
|
|
<el-radio-button label="">不限</el-radio-button> |
|
|
<el-radio-button :label="0">我发起 <span >({{initiateNum}})</span></el-radio-button> |
|
|
<el-radio-button :label="1">待处理 <span >({{pendingNum}})</span></el-radio-button> |
|
|
<el-radio-button :label="2">已处理 <span >({{processedNum}})</span></el-radio-button> |
|
|
<el-radio-button :label="3">抄送我 <span >({{copySendNum}})</span></el-radio-button> |
|
|
</el-radio-group> |
|
|
</div> |
|
|
</div> |
|
|
<div v-if="listParameter.operatingStatus!==3" class="mglr10 df-between"> |
|
|
<el-button round class="white-btn ht40 btn-pdt mgt20 mgb20 box-sizing" @click="ExportFile"> |
|
|
<svg class="text-icon font-blue" aria-hidden="true"> |
|
|
<use xlink:href="#icon-tubiao05"></use> |
|
|
</svg> |
|
|
<p class="font-blue dib mgl10">导出</p> |
|
|
</el-button> |
|
|
<div class="flex-align-center wd40 mgt20 mgb20"> |
|
|
<p class="fz-16 mglr10 font-blue not-zoom">通用查询</p> |
|
|
<el-input class="ht40" v-model="search" @keyup.enter.native="personageSearch" placeholder="提单人/客户名称" clearable ></el-input> |
|
|
<el-button class="ht40 btn-pdt mgl10" @click="personageSearch" type="primary" round>查询</el-button> |
|
|
</div> |
|
|
</div> |
|
|
<!-- 抄送的查询导出 --> |
|
|
<div v-if="listParameter.operatingStatus===3" class="mglr10 df-between"> |
|
|
<el-button round class="white-btn ht40 btn-pdt mgt20 mgb20 box-sizing" @click="ExportFileCopy"> |
|
|
<svg class="text-icon font-blue" aria-hidden="true"> |
|
|
<use xlink:href="#icon-tubiao05"></use> |
|
|
</svg> |
|
|
<p class="font-blue dib mgl10">抄送导出</p> |
|
|
</el-button> |
|
|
<div class="flex-align-center wd40 mgt20 mgb20"> |
|
|
<p class="fz-16 mglr10 font-blue not-zoom">通用查询</p> |
|
|
<el-input class="ht40" @keyup.enter.native="queryCopyForMe('search')" v-model="copyParam.clientName" placeholder="提单人/客户名称" clearable ></el-input> |
|
|
<el-button @click="queryCopyForMe('search')" class="ht40 btn-pdt mgl10" type="primary" round>查询</el-button> |
|
|
</div> |
|
|
</div> |
|
|
<!-- 非抄送的其他状态列表-需要进行处理和查看处理 --> |
|
|
<!--这是手动搜索,预防后续又要。 |
|
|
.filter(data => |
|
|
!search|| data.clientName.toLowerCase().includes(search.toLowerCase()) || data.applicant.toLowerCase().includes(search.toLowerCase())) --> |
|
|
<el-table v-if="listParameter.operatingStatus!==3" :data="tableView" |
|
|
v-loading="Loading" stripe tooltip-effect="dark" style="width: 100%" class="pdlr10" |
|
|
> |
|
|
<el-table-column label="序号" width="36" type="index"></el-table-column> |
|
|
<el-table-column prop="applicant" label="提单人" min-width="100"></el-table-column> |
|
|
<el-table-column prop="clientName" label="客户名称" min-width="80" show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="applicationDate" label="申请日期" min-width="70"></el-table-column> |
|
|
<el-table-column prop="timeConsuming" label="累计耗时" min-width="80"></el-table-column> |
|
|
<el-table-column prop="taskNode" label="任务节点" min-width="80"></el-table-column> |
|
|
<el-table-column prop="completeTime" label="完成时间" min-width="80"></el-table-column> |
|
|
<el-table-column prop="approveStatus" label="审批状态" min-width="80"> |
|
|
<template slot-scope="scope"> |
|
|
<p v-show="scope.row.approveStatus == 0" class="c-refuse">待指派</p> |
|
|
<p v-show="scope.row.approveStatus == 1" class="c-refuse">审核中</p> |
|
|
<p v-show="scope.row.approveStatus == 2" class="c-green">已审核</p> |
|
|
<p v-show="scope.row.approveStatus == 3" class="c-refuse">已拒绝</p> |
|
|
<p v-show="scope.row.approveStatus == 4" class="c-refuse">已驳回</p> |
|
|
<p v-show="scope.row.approveStatus == 5" class="c-refuse">已撤销</p> |
|
|
<p v-show="scope.row.approveStatus == 6" class="c-refuse">草稿</p> |
|
|
</template> |
|
|
</el-table-column> |
|
|
<el-table-column prop="businessStatus" label="业务状态" min-width="80"> |
|
|
<template slot-scope="scope"> |
|
|
<p v-show="scope.row.businessStatus == 0" class="c-refuse">已撤销</p> |
|
|
<p v-show="scope.row.businessStatus == 1" class="c-refuse">进行中</p> |
|
|
<p v-show="scope.row.businessStatus == 2" class="c-green">已完成</p> |
|
|
<p v-show="scope.row.businessStatus == 3" class="c-refuse">已否决</p> |
|
|
</template> |
|
|
</el-table-column> |
|
|
<el-table-column prop="operatingStatus" label="操作状态" min-width="80"> |
|
|
<template slot-scope="scope"> |
|
|
<p v-show="scope.row.operatingStatus == 0" class="c-green">已发起</p> |
|
|
<p v-show="scope.row.operatingStatus == 1" class="c-refuse">待处理</p> |
|
|
<p v-show="scope.row.operatingStatus == 2" class="c-green">已处理</p> |
|
|
<p v-show="scope.row.operatingStatus == 3" class="c-refuse">待提交</p> |
|
|
<p v-show="scope.row.operatingStatus == 4" class="c-refuse">未定义</p> |
|
|
</template> |
|
|
</el-table-column> |
|
|
<el-table-column prop="name" label="操作" width="130"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button |
|
|
v-if="scope.row.operatingStatus===1&&scope.row.businessStatus !== 3" |
|
|
type="text" |
|
|
class="mgl0" |
|
|
@click="decide(scope.row)" |
|
|
>{{scope.row.btn}}</el-button |
|
|
> |
|
|
<!-- 这里的查看和抄送的查看差不多,需要微调部分数据+重新写部分接口 --> |
|
|
<el-button |
|
|
v-if="scope.row.operatingStatus!==1||scope.row.businessStatus === 3" |
|
|
type="text" |
|
|
class="mgl0" |
|
|
@click="seeDetail(scope.row,'查看')" |
|
|
>查看</el-button |
|
|
> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
<!-- 抄送的列表-单独接口不一样 --> |
|
|
<el-table v-if="listParameter.operatingStatus===3" :data="copyData" v-loading="Loading" stripe tooltip-effect="dark" style="width: 100%" class="pdlr10"> |
|
|
<el-table-column label="序号" width="36" type="index"></el-table-column> |
|
|
<el-table-column prop="applicant" label="提单人" min-width="100"></el-table-column> |
|
|
<el-table-column prop="clientName" label="客户名称" min-width="80" show-overflow-tooltip></el-table-column> |
|
|
<el-table-column prop="applicationDate" label="申请日期" min-width="70"></el-table-column> |
|
|
<el-table-column prop="taskNode" label="任务节点" min-width="80"></el-table-column> |
|
|
<el-table-column prop="approveDate" label="完成时间" min-width="80"></el-table-column> |
|
|
<el-table-column prop="businessStatus" label="业务状态" min-width="80"> |
|
|
<template slot-scope="scope"> |
|
|
<p v-show="scope.row.businessStatus == 0" class="c-refuse">已撤销</p> |
|
|
<p v-show="scope.row.businessStatus == 1" class="c-refuse">进行中</p> |
|
|
<p v-show="scope.row.businessStatus == 2" class="c-green">已完成</p> |
|
|
<p v-show="scope.row.businessStatus == 3" class="c-refuse">已否决</p> |
|
|
</template> |
|
|
</el-table-column> |
|
|
<el-table-column prop="name" label="操作" width="230"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button |
|
|
type="text" |
|
|
class="mgl0" |
|
|
@click="seeDetail(scope.row)" |
|
|
>查看</el-button |
|
|
> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
<div class="fj-end df mgr20 mgt20" v-if="listParameter.operatingStatus!=3"> |
|
|
<el-pagination |
|
|
:hide-on-single-page="tableView.length===0" |
|
|
class="fj-end" |
|
|
layout="prev, pager, next" |
|
|
:total="TotalPage" |
|
|
:current-page="flowPage" |
|
|
@current-change="handleCurrentChange" |
|
|
> |
|
|
</el-pagination> |
|
|
</div> |
|
|
<!-- 抄送的分页器 --> |
|
|
<div class="fj-end df mgr20 mgt20" v-if="listParameter.operatingStatus===3"> |
|
|
<el-pagination |
|
|
:hide-on-single-page="copyData.length===0" |
|
|
class="fj-end" |
|
|
layout="prev, pager, next" |
|
|
:total="copyTotalPage" |
|
|
:current-page="copyPage" |
|
|
@current-change="handleCurrentCopy" |
|
|
> |
|
|
</el-pagination> |
|
|
</div> |
|
|
</div> |
|
|
<el-dialog :visible.sync="showPreviewImg" width="95%" style="margin-top:-7vh"> |
|
|
<div class=" tx-center"> |
|
|
<img :src="previewImg" class="el-image-viewer__img" style="transform: scale(1) rotate(0deg);margin-top: -1px; max-height: 100%; max-width: 100%;"> |
|
|
</div> |
|
|
</el-dialog> |
|
|
</div> |
|
|
</template> |
|
|
<script> |
|
|
import topSidebar from '../common/top_sidebar'; |
|
|
import list from '../common/background-list'; |
|
|
import {efficiencyChart,listDepartment,businessCount,personalEfficiencyList,personalEfficiencyListExport, queryCopyForMe , exportCopyForMe } from '../../utils/api' |
|
|
import axios from 'axios'; |
|
|
|
|
|
export default { |
|
|
components: { |
|
|
list, |
|
|
topSidebar, |
|
|
}, |
|
|
props: {}, |
|
|
data() { |
|
|
return { |
|
|
exportCopyForMe:exportCopyForMe,//抄送导出 |
|
|
personalEfficiencyListExport:personalEfficiencyListExport,//个人导出 |
|
|
// 流程效率顶部选项栏 |
|
|
flowPathTopSidebar: [ |
|
|
{ name: '团队效率', index: '1' }, |
|
|
{ name: '个人效率', index: '2' } |
|
|
], |
|
|
flowPathTopVal: '1', //业务统计顶部栏的值 |
|
|
minWidth: '', //解决select下拉框宽度问题 |
|
|
selectValue:'', |
|
|
|
|
|
value:'', |
|
|
// 查询时间 |
|
|
searchDays:[ |
|
|
{ value: '', label: '不限' }, |
|
|
{ value: 0, label: '今天' }, |
|
|
{ value: 1, label: '昨天' }, |
|
|
{ value: 2, label: '本周' }, |
|
|
{ value: 3, label: '本月' }, |
|
|
{ value: 4, label: '本年' }, |
|
|
], |
|
|
flowPage:1, |
|
|
copyPage:1, |
|
|
flowDatesSelect:[], |
|
|
btnVal:'', |
|
|
input: '', //绑定搜索框,待删除 |
|
|
tableData:[], |
|
|
Loading:false, |
|
|
NowPage:1, |
|
|
TotalPage:1, |
|
|
TotalCount:10, |
|
|
copyTotalPage:1,// 抄送页码 |
|
|
listParameter:{ |
|
|
createFixedTime:'', |
|
|
operatingStatus :'', |
|
|
// startTime:'', |
|
|
// endTime:'' |
|
|
}, |
|
|
|
|
|
// 担保部 |
|
|
guaranteeData: [{name: '1天4小时0分钟 (20)',value:1.16},{name: '2天8小时0分钟',value:2.32},{},{},{},{},{},{},{name: '3天4小时0分钟',value:3.16},{name: '1天4小时0分钟',value:1.16}], |
|
|
// 资产部 |
|
|
propertyData: [{name: '1天4小时0分钟',value:1.16},{name: '2天8小时0分钟',value:2.32},{},{name: '3天4小时0分钟',value:3.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16}], |
|
|
// 信息部 |
|
|
messageData: [{},{name: '2天8小时0分钟',value:2.32},{name: '5天4小时0分钟',value:5.16},{name: '3天4小时0分钟',value:3.16},{},{},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16}], |
|
|
// 法规部 |
|
|
complianceData: [{name: '1天4小时0分钟',value:1.16},{name: '2天8小时0分钟',value:2.32},{name: '5天4小时0分钟',value:5.16},{name: '3天4小时0分钟',value:3.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16}], |
|
|
// 财务部 |
|
|
financeData: [{},{},{name: '5天4小时0分钟',value:5.16},{name: '3天4小时0分钟',value:3.16},{name: '1天4小时0分钟',value:1.16},{},{},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16},{name: '1天4小时0分钟',value:1.16}], |
|
|
thisval:'', |
|
|
thisval1:'', |
|
|
parameter:{ |
|
|
createFixedTime:'', |
|
|
departmentId:'', |
|
|
startTime:'', |
|
|
endTime:'', |
|
|
flowStatus:'' |
|
|
}, |
|
|
|
|
|
chartsData:[],//循环出待处理的表的数据 |
|
|
chartsName:[],//表的名称对应的id |
|
|
depMatching:{},// 匹配部门名称数据 |
|
|
depData:[],// 部门选择数据 |
|
|
teamStatus:[],//状态栏 |
|
|
search:'', |
|
|
|
|
|
startTime:'', |
|
|
endTime:'', |
|
|
toDay:'', |
|
|
tableView:[], |
|
|
|
|
|
initiateNum:1,// 发起数目 |
|
|
pendingNum:1,// 待处理 |
|
|
processedNum:1,// 已处理数目 |
|
|
copySendNum:1,//抄送我的值 |
|
|
|
|
|
// 抄送后端查不了客户,判断条件进行分页+查询 |
|
|
copyClient:[],// 查询客户保存 |
|
|
searchClient:false,// 判断查询客户否 |
|
|
|
|
|
copyData:[],// 抄送的列表 |
|
|
copyParam:{// 抄送列表传值 |
|
|
clientName:'', |
|
|
createFixedTime:"", |
|
|
endTime :"", |
|
|
startTime :"", |
|
|
userId :"", |
|
|
page:1, |
|
|
size:10 |
|
|
}, |
|
|
showPreviewImg:false,//查看图片弹框 |
|
|
previewImg:'',//url |
|
|
dispose:'',// 处理绑定值 |
|
|
|
|
|
cloneTable:'',// 搜索用的深拷贝备份 |
|
|
cloneTotal:'',// 拷贝页数 |
|
|
}; |
|
|
}, |
|
|
watch:{ |
|
|
flowPathTopVal:function(val){ |
|
|
if(val==='1'){ |
|
|
this.efficiencyChart() |
|
|
}else{ |
|
|
this.personalEfficiencyList() |
|
|
} |
|
|
}, |
|
|
"listParameter.operatingStatus":function(now){ |
|
|
if(now===3){// 抄送接口 |
|
|
this.$set(this.listParameter,'createFixedTime','') |
|
|
this.queryCopyForMe() |
|
|
}else{ |
|
|
this.$set(this.copyParam,'createFixedTime','') |
|
|
// this.personalEfficiencyList() |
|
|
} |
|
|
}, |
|
|
tableView:function(val){ |
|
|
if(val.length===0){ |
|
|
this.TotalPage = 0 |
|
|
} |
|
|
} |
|
|
}, |
|
|
async created(){ |
|
|
// 读取角色,判断是否有权限查看团队流程---仅经理级别以上 |
|
|
if(!['58','61','62','64','65','67','68','70','73','1'].find(item=>sessionStorage.getItem("now-roleBtn").split(',').includes(item))){ |
|
|
this.flowPathTopSidebar = [{ name: '个人效率', index: '2' }] |
|
|
this.flowPathTopVal = '2' |
|
|
} |
|
|
// 读取待办事项的快捷跳转 |
|
|
if(sessionStorage.getItem('homeJump')){ |
|
|
this.flowPathTopVal = '2' |
|
|
switch (sessionStorage.getItem('homeJump')) { |
|
|
case '0'://'我发起的' |
|
|
this.$set(this.listParameter,'operatingStatus',0) |
|
|
break; |
|
|
case '1'://'待审核' |
|
|
this.$set(this.listParameter,'operatingStatus',1) |
|
|
break; |
|
|
case '2'://'已处理' |
|
|
this.$set(this.listParameter,'operatingStatus',2) |
|
|
break; |
|
|
case '3'://'抄送我的' |
|
|
this.$set(this.listParameter,'operatingStatus',3) |
|
|
break; |
|
|
} |
|
|
sessionStorage.removeItem('homeJump') |
|
|
} |
|
|
// await this.businessCount() |
|
|
await this.listDepartment() |
|
|
if(this.flowPathTopSidebar.length!==1){ |
|
|
await this.efficiencyChart() |
|
|
} |
|
|
// 读取流程效率的顶部状态 |
|
|
if (sessionStorage.getItem('flowPath-topsidebar')) { |
|
|
this.flowPathTopVal = sessionStorage.getItem('flowPath-topsidebar'); |
|
|
if(this.flowPathTopVal==='1'){ |
|
|
this.efficiencyChart() |
|
|
}else{ |
|
|
this.personalEfficiencyList() |
|
|
} |
|
|
// sessionStorage.removeItem('flowPath-topsidebar') |
|
|
} |
|
|
var twoSum = function(nums, target) { |
|
|
let len = nums.length; |
|
|
// 创建 MAP |
|
|
const MAP = new Map(); |
|
|
// 由于第一个元素在它之前一定没有元素与之匹配,所以先存入哈希表 |
|
|
MAP.set(nums[0], 0); |
|
|
for (let i = 1; i < len; i++) { |
|
|
// 提取共用 |
|
|
let other = target - nums[i]; |
|
|
// 判断是否符合条件,返回对应的下标 |
|
|
if (MAP.get(other) !== undefined) return [MAP.get(other), i]; |
|
|
// 不符合的存入hash表 |
|
|
MAP.set(nums[i], i) |
|
|
} |
|
|
} |
|
|
function ListNode(val, next) { |
|
|
this.val = (val===undefined ? 0 : val) |
|
|
this.next = (next===undefined ? null : next) |
|
|
} |
|
|
let listNode = new ListNode('0') |
|
|
let sum = new ListNode('0') |
|
|
listNode.next = new ListNode('next') |
|
|
|
|
|
}, |
|
|
methods: { |
|
|
personageSearch(){ |
|
|
// 如果为空,还原 |
|
|
if(!this.search){ |
|
|
this.tableData = this.cloneTable |
|
|
this.TotalPage = this.tableData.length |
|
|
this.handleCurrentChange(1) |
|
|
}else{ |
|
|
// 在当前的table基础上进行查询 |
|
|
// 每次查询都还原当前状态 |
|
|
this.tableData = JSON.parse(JSON.stringify(this.cloneTable)) |
|
|
console.log(this.tableData,'当前列表总值',this.search,'搜索值'); |
|
|
this.tableData = this.tableData.filter(data=>{ |
|
|
return data.clientName.toLowerCase().includes(this.search.toLowerCase()) || data.applicant.toLowerCase().includes(this.search.toLowerCase()) |
|
|
}) |
|
|
this.TotalPage = this.tableData.length |
|
|
this.handleCurrentChange(1) |
|
|
// this.$forceUpdate(); |
|
|
console.log(this.tableData,'筛选后的值'); |
|
|
} |
|
|
}, |
|
|
// 判断函数,判断节点,判断操作状态,进行跳转处理 |
|
|
// 区分我发起,待处理,已处理--在不限状态下的判断 |
|
|
decide(item){ |
|
|
if(item.operatingStatus===1){// 二次验证是否为处理 |
|
|
sessionStorage.setItem('decideJump',JSON.stringify(item)) |
|
|
this.jumpToFrom(item.taskNode) |
|
|
// switch (item.taskNode) { |
|
|
// // 拥有十套不同的按钮判断逻辑,按钮根据取得的状态进行判断操作 |
|
|
// case '业务申请': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '担保部调查': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '资产部调查': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '信息部调查': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '合规调查': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '工作会': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '贷审会': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '担保函': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '财务确认': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// case '放款通知': |
|
|
// this.jumpToFrom(item.taskNode) |
|
|
// break; |
|
|
// } |
|
|
// 当处于指派的时候,取消其他判断,仅做跳转和弹出指派弹框 |
|
|
// if(item.approveStatus == 0){ |
|
|
|
|
|
// } |
|
|
} |
|
|
}, |
|
|
// 审批状态 approveStatus |
|
|
// 业务状态 businessStatus |
|
|
// 操作状态 operatingStatus |
|
|
// 处理,仅有一个操作,仅需判断出一个操作即可,比如业务员仅修改,经理是审核,指派,一个操作处理 |
|
|
// 业务申请的按钮展示判断 |
|
|
|
|
|
// 别问,问就是不按规范来 |
|
|
// 按钮的名字业务申请 |
|
|
btn1(data){ |
|
|
// 两个操作,需要进行两个操作的判定,多个操作,则需要多个判断 |
|
|
let survey = 0, |
|
|
audit = 0 |
|
|
// 判断调查员 |
|
|
if(data.approveStatus===4||data.approveStatus===5||data.approveStatus == 6&&data.operatingStatus == 3&&data.businessStatus !== 2){ |
|
|
survey+1 |
|
|
} |
|
|
if([57].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
survey+1 // 判定为调查员,就return出去,无其他操作 |
|
|
if(survey==2) return '修改' |
|
|
} |
|
|
// 判断审核 |
|
|
if(data.approveStatus===1){ |
|
|
audit++ |
|
|
} |
|
|
if([58].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
audit++ |
|
|
if(audit==2)return '审核' |
|
|
} |
|
|
// if(survey!==2&&audit!==2){ |
|
|
// return '查看' |
|
|
// } |
|
|
}, |
|
|
// 担保部调查 |
|
|
btn2(data){ |
|
|
let survey = 0, |
|
|
audit = 0 |
|
|
// 先判断指派 |
|
|
if(data.approveStatus == 0) return '指派' |
|
|
// 判断调查 |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
survey++ |
|
|
} |
|
|
if([59,60].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
survey++ |
|
|
if(survey==2)return '调查' |
|
|
} |
|
|
// 判断审核 |
|
|
if([58,61].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
audit++ |
|
|
} |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
audit++ |
|
|
if(audit==2)return '审核' |
|
|
} |
|
|
|
|
|
}, |
|
|
// 资产部调查 |
|
|
btn3(data){ |
|
|
let survey = 0, |
|
|
audit = 0 |
|
|
// 先判断指派 |
|
|
if(data.approveStatus == 0) return '指派' |
|
|
// 判断调查 |
|
|
if([63].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
survey++ |
|
|
} |
|
|
if((data.approveStatus===1&&data.operatingStatus == 1)||(data.approveStatus===4&&data.operatingStatus == 1)){ |
|
|
survey++ |
|
|
if(survey==2)return '调查' |
|
|
} |
|
|
// 判断审核 |
|
|
if([62,64].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
audit++ |
|
|
} |
|
|
if((data.approveStatus===1&&data.operatingStatus == 1)||(data.approveStatus===4&&data.operatingStatus == 1)){ |
|
|
audit++ |
|
|
if(audit==2)return '审核' |
|
|
} |
|
|
|
|
|
}, |
|
|
// 信息部调查 |
|
|
btn4(data){ |
|
|
let survey = 0, |
|
|
audit = 0 |
|
|
// 先判断指派 |
|
|
if(data.approveStatus == 0) return '指派' |
|
|
// 判断调查 |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
survey++ |
|
|
} |
|
|
if([66].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
survey++ |
|
|
if(survey==2)return '调查' |
|
|
} |
|
|
// 判断审核 |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
audit++ |
|
|
} |
|
|
if([65,67].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
audit++ |
|
|
if(audit==2)return '审核' |
|
|
} |
|
|
}, |
|
|
// 合规部调查 |
|
|
btn5(data){ |
|
|
let survey = 0, |
|
|
audit = 0 |
|
|
// 先判断指派 |
|
|
if(data.approveStatus == 0) return '指派' |
|
|
// 判断调查 |
|
|
if([69].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
survey++ |
|
|
} |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
survey++ |
|
|
if(survey==2)return '调查' |
|
|
} |
|
|
// 判断审核 |
|
|
if([68,70].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
audit++ |
|
|
} |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
audit++ |
|
|
if(audit==2)return '审核' |
|
|
} |
|
|
}, |
|
|
// 工作调查 |
|
|
btn6(data){ |
|
|
let deliberation = 0,// 审议 |
|
|
extract = 0// 抽取评委 |
|
|
// 判断审议 |
|
|
if([71].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
deliberation++ |
|
|
} |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
deliberation++ |
|
|
if(deliberation==2)return '审议' |
|
|
} |
|
|
// 判断抽取评委 |
|
|
if([71].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
extract++ |
|
|
} |
|
|
if(data.approveStatus===2&&data.operatingStatus == 1){ |
|
|
extract++ |
|
|
if(extract==2)return '抽取评委' |
|
|
} |
|
|
}, |
|
|
// 贷审会 |
|
|
btn7(data){ |
|
|
let deliberation = 0// 审议 |
|
|
// 判断审议 |
|
|
if(data.approveStatus===1&&data.operatingStatus == 1||data.approveStatus===4&&data.operatingStatus == 1){ |
|
|
deliberation++ |
|
|
} |
|
|
if([72,59,60].includes(data.roleId)&&data.businessStatus !== 3){ |
|
|
deliberation++ |
|
|
if(deliberation==2)return '审议' |
|
|
} |
|
|
}, |
|
|
// 担保函调查 |
|
|
btn8(data){ |
|
|
// 判断审议 |
|
|
if(data.isFgJl == 1 && data.operatingStatus !== 2&&data.businessStatus !== 3){ |
|
|
return '担保函' |
|
|
} |
|
|
if(data.isFgJl != 1 && data.operatingStatus !== 2&&data.businessStatus !== 3){ |
|
|
return '确认' |
|
|
} |
|
|
}, |
|
|
// 财务确认 |
|
|
btn9(data){ |
|
|
return '确认' |
|
|
}, |
|
|
// 放款通知 |
|
|
btn10(data){ |
|
|
return '确认' |
|
|
}, |
|
|
|
|
|
// 读取流程效率顶部栏 |
|
|
getFlowPathTopSidebar(index) { |
|
|
if(this.flowPathTopSidebar.length===1){ |
|
|
this.flowPathTopVal = '2'; |
|
|
}else if (index) { |
|
|
this.flowPathTopVal = index; |
|
|
} |
|
|
// 状态保存 |
|
|
sessionStorage.setItem('flowPath-topsidebar',this.flowPathTopVal); |
|
|
}, |
|
|
//select选择宽度匹配 |
|
|
setMinWidth(val) { |
|
|
this.minWidth = val.srcElement.clientWidth; |
|
|
}, |
|
|
// 按钮组切换 |
|
|
itemRadio(val){ |
|
|
}, |
|
|
// 开始时间和结束时间的处理--同一天+1 |
|
|
getDates(date,val,val1,str){ |
|
|
// val,开始时间,val1,结束时间 |
|
|
let num = 3600*24*1000 |
|
|
if(date!==null){ |
|
|
// if(date[0]===date[1]){ |
|
|
// val = this.formatDayTime(date[0]) |
|
|
// val1 = this.formatDayTime(date[1]+num) |
|
|
// }else{ |
|
|
val = this.formatDayTime(date[0]) |
|
|
val1 = this.formatDayTime(date[1]) |
|
|
// } |
|
|
}else{ |
|
|
val = null |
|
|
val1 = null |
|
|
} |
|
|
if(str==='flowTeam'){// 团队查询 |
|
|
this.parameter.startTime = val |
|
|
this.parameter.endTime = val1 |
|
|
this.efficiencyChart() |
|
|
}else{// 个人查询 |
|
|
if(this.listParameter.operatingStatus===3){// 查询抄送 |
|
|
this.copyParam.startTime = val |
|
|
this.copyParam.endTime = val1 |
|
|
this.queryCopyForMe() |
|
|
return |
|
|
} |
|
|
this.personalEfficiencyList() |
|
|
this.listParameter.startTime = val |
|
|
this.listParameter.endTime = val1 |
|
|
} |
|
|
}, |
|
|
// 转时间戳格式 |
|
|
formatDayTime(val) { |
|
|
if(val) { |
|
|
let date = new Date(val) |
|
|
let Y = date.getFullYear(); |
|
|
let M = date.getMonth() + 1; |
|
|
let D = date.getDate(); |
|
|
if(M < 10) { |
|
|
M = '0' + M; |
|
|
} |
|
|
if(D < 10) { |
|
|
D = '0' + D; |
|
|
} |
|
|
return Y + '-' + M + '-' + D ; |
|
|
} else { |
|
|
return ''; |
|
|
} |
|
|
}, |
|
|
// 读取子组件列表的勾选框----统一,等删除 |
|
|
getCheck(val) { |
|
|
}, |
|
|
// 部门数据 |
|
|
async listDepartment(){ |
|
|
let res= await listDepartment() |
|
|
this.depData = res.data |
|
|
this.depData.map(e=>{ |
|
|
this.depMatching[e.id] = e.name |
|
|
}) |
|
|
}, |
|
|
// 树状图结构 |
|
|
async efficiencyChart(){ |
|
|
this.businessCount()// 每次调接口,调一次状态栏 |
|
|
this.chartsData = [] |
|
|
this.chartsName = [] |
|
|
let res = await efficiencyChart(this.parameter) |
|
|
if(res.success){ |
|
|
for(let i in res.data){ |
|
|
if(res.data.length===0) return |
|
|
let arr = [] |
|
|
for(let i=0;i<10;i++){ |
|
|
arr.push({}) |
|
|
} |
|
|
// 分离出来第几个数组有数据 |
|
|
// 循环子级,分离数据 |
|
|
for(let e in res.data[i]){ |
|
|
// 时间的处理 |
|
|
arr[e-1].name = this.getDuration(res.data[i][e].slice(0,res.data[i][e].indexOf(','))) + "(" + res.data[i][e].slice(res.data[i][e].indexOf(',')+1,res.data[i][e].length) + ")" |
|
|
arr[e-1].value = this.getTimeNum(res.data[i][e].slice(0,res.data[i][e].indexOf(','))) |
|
|
} |
|
|
this.chartsData.push(arr) |
|
|
if(i==0) this.chartsName.push('未知部门') |
|
|
else this.chartsName.push(this.depMatching[+i]) |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
getDuration(my_time) { |
|
|
let days = my_time / 1000 / 60 / 60 / 24; |
|
|
let daysRound = Math.floor(days); |
|
|
let hours = my_time / 1000 / 60 / 60 - (24 * daysRound); |
|
|
let hoursRound = Math.floor(hours); |
|
|
let minutes = my_time / 1000 / 60 - (24 * 60 * daysRound) - (60 * hoursRound); |
|
|
let minutesRound = Math.floor(minutes); |
|
|
let seconds = my_time / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound); |
|
|
let timeStr = daysRound + '天'+ hoursRound + '时'+ minutesRound + '分' |
|
|
// let time = hoursRound + ':' + minutesRound + ':' + seconds // 生成 标准时间格式 |
|
|
return timeStr; |
|
|
}, |
|
|
getTimeNum(my_time){ |
|
|
let days = my_time / 1000 / 60 / 60 / 24; |
|
|
let daysRound = Math.floor(days); |
|
|
let hours = my_time / 1000 / 60 / 60 - (24 * daysRound); |
|
|
let hoursRound = Math.floor(hours); |
|
|
let minutes = my_time / 1000 / 60 - (24 * 60 * daysRound) - (60 * hoursRound); |
|
|
let minutesRound = Math.floor(minutes); |
|
|
let time = daysRound+(hoursRound / 24)+(minutesRound/60/24) |
|
|
time.toFixed(2) |
|
|
// if(time === 0) time = 0.1 |
|
|
return time |
|
|
}, |
|
|
async businessCount(){// 团队状态栏 |
|
|
let res = await businessCount() |
|
|
this.teamStatus = [] |
|
|
if(res.data&&res.data.length!==0){ |
|
|
this.teamStatus = res.data |
|
|
} |
|
|
|
|
|
}, |
|
|
// 个人列表 |
|
|
async personalEfficiencyList(){ |
|
|
try{ |
|
|
this.tableData = [] |
|
|
this.tableView = [] |
|
|
this.Loading = true |
|
|
let res = await personalEfficiencyList(this.listParameter) |
|
|
if(res.success){ |
|
|
this.Loading = false |
|
|
if(res.data.responseList&&res.data.responseList.length!==0){ |
|
|
let data = JSON.parse(JSON.stringify(res.data.responseList)) |
|
|
data.map(e=>{ |
|
|
// e.btn = '查看' |
|
|
if(e.operatingStatus===1){ |
|
|
switch (e.taskNode) { |
|
|
// 拥有十套不同的按钮判断逻辑,按钮根据取得的状态进行判断操作 |
|
|
case '业务申请': |
|
|
e.btn = this.btn1(e) |
|
|
break; |
|
|
case '担保部调查': |
|
|
e.btn = this.btn2(e) |
|
|
break; |
|
|
case '资产部调查': |
|
|
e.btn = this.btn3(e) |
|
|
break; |
|
|
case '信息部调查': |
|
|
e.btn = this.btn4(e) |
|
|
break; |
|
|
case '合规调查': |
|
|
e.btn = this.btn5(e) |
|
|
break; |
|
|
case '工作会': |
|
|
e.btn = this.btn6(e) |
|
|
break; |
|
|
case '贷审会': |
|
|
e.btn = this.btn7(e) |
|
|
break; |
|
|
case '担保函': |
|
|
e.btn = this.btn8(e) |
|
|
break; |
|
|
case '财务确认': |
|
|
e.btn = this.btn9(e) |
|
|
break; |
|
|
case '放款通知': |
|
|
e.btn = this.btn10(e) |
|
|
break; |
|
|
default: |
|
|
break; |
|
|
} |
|
|
} |
|
|
}) |
|
|
this.tableData = data |
|
|
this.cloneTable = JSON.parse(JSON.stringify(data)) |
|
|
this.tableView = this.tableData.slice(0, 10) |
|
|
this.TotalPage = res.data.responseList.length |
|
|
} |
|
|
this.initiateNum = res.data.statistics.initiateNum |
|
|
this.pendingNum = res.data.statistics.pendingNum |
|
|
this.processedNum = res.data.statistics.processedNum |
|
|
this.copySendNum = res.data.statistics.copySendNum |
|
|
|
|
|
} |
|
|
}catch(err){ |
|
|
this.Loading = false |
|
|
} |
|
|
}, |
|
|
ExportFile() { |
|
|
let that = this |
|
|
axios({ |
|
|
method: 'get', |
|
|
url: personalEfficiencyListExport, |
|
|
headers: { |
|
|
token: sessionStorage.getItem('token')||localStorage.getItem('token'), |
|
|
}, |
|
|
responseType: "blob", |
|
|
}) |
|
|
.then(res=>{}) |
|
|
.catch(err=>{ |
|
|
// if(!err.success){ |
|
|
// return that.$message.error('导出失败!请稍后重试!') |
|
|
// } |
|
|
this.downloadFile(err.data,'个人效率导出') |
|
|
}) |
|
|
}, |
|
|
ExportFileCopy() { |
|
|
let that = this |
|
|
axios({ |
|
|
method: 'get', |
|
|
url: exportCopyForMe, |
|
|
headers: { |
|
|
token: sessionStorage.getItem('token')||localStorage.getItem('token'), |
|
|
}, |
|
|
responseType: "blob", |
|
|
}) |
|
|
.then(res=>{}) |
|
|
.catch(err=>{ |
|
|
this.downloadFile(err.data,'我的抄送列表') |
|
|
}) |
|
|
}, |
|
|
downloadFile (file, filename = '') { |
|
|
let blob = new Blob( |
|
|
[file], |
|
|
{ |
|
|
// type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' |
|
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' |
|
|
} |
|
|
); |
|
|
let downloadElement = document.createElement('a'); |
|
|
let href = window.URL.createObjectURL(blob); //创建下载的链接 |
|
|
downloadElement.href = href; |
|
|
downloadElement.download = filename; //下载后文件名 |
|
|
document.body.appendChild(downloadElement); |
|
|
downloadElement.click(); //点击下载 |
|
|
document.body.removeChild(downloadElement); //下载完成移除元素 |
|
|
window.URL.revokeObjectURL(href); //释放掉blob对象 |
|
|
}, |
|
|
handleCurrentChange(val){ // 前端分页 |
|
|
this.flowPage = val |
|
|
if (val != 1) val =(val-1) * 10 // 需要size改这里 |
|
|
// let number = this.tableData.length |
|
|
this.tableView = this.tableData.slice(val-1, val+9)// 修改size,10也改 |
|
|
}, |
|
|
copymeCurrentChange(val){ // 抄送-前端分页 |
|
|
this.copyPage = val |
|
|
console.log(this.copyPage,val,'当前val',); |
|
|
if (val != 1) val =(val-1) * 10 // 需要size改这里 |
|
|
this.copyData = this.copyClient.slice(val-1, val+9)// 修改size,10也改 |
|
|
}, |
|
|
// 抄送分页 |
|
|
handleCurrentCopy(val){ |
|
|
console.log(val,'抄送分页器',this.copyPage,'copyPage'); |
|
|
// 需要判断是否查询客户,进行前端分页处理--后端查询不了 |
|
|
if(this.searchClient){ |
|
|
console.log('前端分页'); |
|
|
// 前端查询 |
|
|
this.copymeCurrentChange(val) |
|
|
}else{ |
|
|
// 正常后端查询 |
|
|
console.log('后端分页'); |
|
|
this.copyParam.page = val |
|
|
this.queryCopyForMe() |
|
|
this.copyPage = val |
|
|
} |
|
|
}, |
|
|
// 抄送列表 |
|
|
queryCopyForMe(val){ |
|
|
if(val === "search"){ |
|
|
this.copyParam.page = 1 |
|
|
this.copyParam.size = 10 |
|
|
this.copyPage = 1 |
|
|
} |
|
|
if(this.copyParam.clientName==='客户'){ |
|
|
this.searchClient = true |
|
|
console.log('查询客户'); |
|
|
let obj = JSON.parse(JSON.stringify(this.copyParam)) |
|
|
obj.size = 99999 |
|
|
obj.page = 1 |
|
|
obj.clientName = '' |
|
|
queryCopyForMe(obj).then(res=>{ |
|
|
if(res.data.copyForMeList){ |
|
|
// 记录筛选的数据 |
|
|
this.copyClient = res.data.copyForMeList.filter(e=>{ |
|
|
return e.applicant === '客户' |
|
|
}) |
|
|
console.log(this.copyData,'this.copyData'); |
|
|
this.copyTotalPage = this.copyClient.length |
|
|
this.handleCurrentCopy(1) |
|
|
} |
|
|
}) |
|
|
}else{ |
|
|
this.searchClient = false |
|
|
queryCopyForMe(this.copyParam).then(res=>{ |
|
|
this.copyTotalPage = res.data.total |
|
|
if(res.data.copyForMeList)this.copyData = res.data.copyForMeList |
|
|
// this.copyPage = 1 |
|
|
}) |
|
|
} |
|
|
}, |
|
|
seeCopyImg(img){ |
|
|
this.showPreviewImg = true |
|
|
this.previewImg = img |
|
|
}, |
|
|
jumpToFrom(node){ |
|
|
let nodeCode |
|
|
switch (node) { |
|
|
case '业务申请': |
|
|
nodeCode = 1 |
|
|
break; |
|
|
case '担保部调查': |
|
|
nodeCode = 2 |
|
|
break; |
|
|
case '资产部调查': |
|
|
nodeCode = 3 |
|
|
break; |
|
|
case '信息部调查': |
|
|
nodeCode = 4 |
|
|
break; |
|
|
case '合规调查': |
|
|
nodeCode = 5 |
|
|
break; |
|
|
case '工作会': |
|
|
nodeCode = 6 |
|
|
break; |
|
|
case '贷审会': |
|
|
nodeCode = 7 |
|
|
break; |
|
|
case '担保函': |
|
|
nodeCode = 8 |
|
|
break; |
|
|
case '财务确认': |
|
|
nodeCode = 9 |
|
|
// 最后三部都记录对应的消息应用 |
|
|
break; |
|
|
case '放款通知': |
|
|
nodeCode = 10 |
|
|
// 最后三部都记录对应的消息应用 |
|
|
break; |
|
|
default: |
|
|
break; |
|
|
} |
|
|
// 跳转方法,在工作台文件做了监听 |
|
|
this.$store.commit('messageData',{messageData:{modelId:nodeCode}}) |
|
|
}, |
|
|
// 处理抄送到对应业务详情 |
|
|
// val区分抄送列表或者是其他状态列表操作 |
|
|
seeDetail(data,val){ |
|
|
// 根据VAL区分查看还是抄送的跳转,流程的最后三个模块的处理方式不同 |
|
|
// 抄送列表接口 和 其他状态的接口不同,而其他状态的接口只有一个id用于查询业务详情. |
|
|
// 抄送列表有最后三个模块的详情,所以携带参数传递即可 |
|
|
if(val==='查看'){ |
|
|
// 根据该记录去判断,执行哪个查看详情操作 |
|
|
sessionStorage.setItem('private','查看') |
|
|
} |
|
|
let letterValue = { |
|
|
businessId: data.businessId,//业务id |
|
|
id:data.detailId,//rowID |
|
|
} |
|
|
this.$store.commit("letterData", { letterValue: letterValue }); |
|
|
// 记录数据,模块根据数据进行判断是否抄送的跳转 |
|
|
sessionStorage.setItem('fromCopyTo',JSON.stringify(data)) |
|
|
this.jumpToFrom(data.taskNode)// 跳转到对应模块 |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
}; |
|
|
</script> |
|
|
<style lang='scss' scoped> |
|
|
.blank{ |
|
|
line-height:500px; |
|
|
height: 500px; |
|
|
width: 100%; |
|
|
text-align: center; |
|
|
} |
|
|
/deep/.el-table .cell { |
|
|
padding: 0; |
|
|
} |
|
|
/deep/ .el-table-column--selection .cell { |
|
|
padding-left: 0; |
|
|
padding-right: 0; |
|
|
} |
|
|
/deep/ .el-checkbox__inner { |
|
|
background: transparent; |
|
|
border: 0; |
|
|
background-image: url('../../assets/img/btn_per_un.png'); |
|
|
background-size: cover; |
|
|
width: 20px; |
|
|
height: 20px; |
|
|
} |
|
|
/deep/ .cell .el-checkbox__input .el-checkbox__inner { |
|
|
background-color: transparent; |
|
|
background-image: url('../../assets/img/btn_per_un.png'); |
|
|
background-size: cover; |
|
|
width: 20px; |
|
|
height: 20px; |
|
|
border: 0; |
|
|
transition: none; |
|
|
} |
|
|
/deep/ .el-checkbox { |
|
|
width: 20px; |
|
|
height: 20px; |
|
|
transition: none; |
|
|
} |
|
|
/deep/ .el-checkbox__input.is-checked + .el-checkbox__label { |
|
|
transition: none; |
|
|
width: 20px; |
|
|
height: 20px; |
|
|
} |
|
|
/deep/ .el-checkbox__input .el-checkbox__inner::after { |
|
|
background: transparent; |
|
|
content: ''; |
|
|
height: 20px; |
|
|
width: 20px; |
|
|
border-radius: 50%; |
|
|
transition: none; |
|
|
} |
|
|
|
|
|
// 选中后 |
|
|
|
|
|
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner { |
|
|
background-color: transparent; |
|
|
transition: none; |
|
|
width: 20px; |
|
|
height: 20px; |
|
|
} |
|
|
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner::after { |
|
|
content: ''; |
|
|
background: transparent; |
|
|
background-image: url('../../assets/img/btn_pre.png'); |
|
|
|
|
|
width: 20px; |
|
|
border: 0; |
|
|
background-size: cover; |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: 0; |
|
|
transition: none; |
|
|
} |
|
|
/deep/ .el-table .cell { |
|
|
text-align: center; |
|
|
text-overflow: clip; |
|
|
} |
|
|
|
|
|
/deep/ .el-pager li { |
|
|
border-radius: 50% !important; |
|
|
height: 30px; |
|
|
width: 30px; |
|
|
min-height: 25px !important; |
|
|
min-width: 25px !important; |
|
|
background: #f2f2f2; |
|
|
line-height: 30px; |
|
|
text-align: center; |
|
|
padding: 0; |
|
|
} |
|
|
/deep/ .el-form-item { |
|
|
margin-bottom: 0; |
|
|
} |
|
|
/deep/ .el-pagination.is-background .btn-prev { |
|
|
background-color: transparent; |
|
|
} |
|
|
/deep/ .el-form-item__label { |
|
|
color: #00b9ff; |
|
|
padding: 0; |
|
|
} |
|
|
/deep/ .el-input__inner { |
|
|
border-radius: 20px; |
|
|
// background: #fafafa; |
|
|
} |
|
|
/deep/ .el-pagination .btn-next .el-icon { |
|
|
color: #00b9ff; |
|
|
font-size: 20px; |
|
|
} |
|
|
/deep/ .el-pagination .btn-prev .el-icon { |
|
|
color: #00b9ff; |
|
|
font-size: 20px; |
|
|
} |
|
|
|
|
|
/deep/ .el-table td { |
|
|
padding: 0px; |
|
|
padding: 8px 0; |
|
|
} |
|
|
/deep/ .el-table th > .cell { |
|
|
padding: 0; |
|
|
} |
|
|
/deep/ .el-pagination.is-background .btn-next { |
|
|
background-color: transparent; |
|
|
} |
|
|
.sorter /deep/ .el-input__inner{ |
|
|
padding: 0 5px!important; |
|
|
|
|
|
} |
|
|
</style> |