|
|
@@ -17,6 +17,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
ref="selectdep"
|
|
|
+ placement="bottom"
|
|
|
size="small"
|
|
|
v-model="depment"
|
|
|
:options="deplist"
|
|
|
@@ -26,7 +27,7 @@
|
|
|
></el-cascader>
|
|
|
</div>
|
|
|
<div class="data-all">
|
|
|
- <div style="margin-bottom:20px">项目</div>
|
|
|
+ <div style="margin-bottom:20px">项目数据概况</div>
|
|
|
<div class="data-all-wrapper">
|
|
|
<div class="data-left">
|
|
|
<div class="data-item">
|
|
|
@@ -43,7 +44,7 @@
|
|
|
</p>
|
|
|
</div>
|
|
|
<div class="data-item">
|
|
|
- <p>{{ tool.formatAmount(dataAll.startproject) }}</p>
|
|
|
+ <p>{{ dataAll.startproject?tool.formatAmount(dataAll.startproject):0 }}</p>
|
|
|
<p>
|
|
|
进行中项目数
|
|
|
<el-tooltip class="item" effect="dark" content="参与项目客户数:参与有下订单的项目的关联客户数" placement="top">
|
|
|
@@ -106,12 +107,14 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="typeTableParam.content.dataid"
|
|
|
:options="deplist"
|
|
|
:props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
|
|
|
- @change="$event => {if($event.length) {typeMapParam.content.type=1;typeMapParam.content.dataid=$event[$event.length - 1];typeTableParam.content.type=1;typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()} else {typeMapParam.content.type='';typeMapParam.content.dataid='';typeTableParam.content.dataid='';typeTableParam.content.type='';typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()}}"></el-cascader>
|
|
|
+ @change="$event => {if($event.length) {typeMapParam.content.type=1;typeMapParam.content.dataid=$event[$event.length - 1];typeTableParam.content.type=1;typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()} else {typeMapParam.content.type='';typeMapParam.content.dataid='';typeTableParam.content.dataid='';typeTableParam.content.type='';typeTableParam.content.username='';typeTableParam.content.pageNumber = 1;$refs.typeTable.listData();typeInit()}}">
|
|
|
+ </el-cascader>
|
|
|
</div>
|
|
|
<div class="mt-10 inline-16">
|
|
|
<label class="search__label" >业务员:</label>
|
|
|
@@ -136,8 +139,10 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="panel-content">
|
|
|
- <div ref="typeEl" style="width:30%"></div>
|
|
|
- <div class="panel-table" style="width:70%">
|
|
|
+ <div ref="typeEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
|
|
|
+<!-- <div ref="typeEl" style="width:30%"></div>-->
|
|
|
+ <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
|
|
|
+<!-- <div class="panel-table" style="width:70%">-->
|
|
|
<pageTable
|
|
|
ref="typeTable"
|
|
|
:tablecols="tool.tabelCol($route.name).projectTable.tablecols"
|
|
|
@@ -147,7 +152,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
|
|
|
@@ -156,7 +161,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -191,6 +196,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="gradTableParam.content.dataid"
|
|
|
@@ -221,8 +227,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="panel-content">
|
|
|
- <div ref="gradEl" style="width:30%"></div>
|
|
|
- <div class="panel-table" style="width:70%">
|
|
|
+ <div ref="gradEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
|
|
|
+ <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
|
|
|
<pageTable
|
|
|
ref="gradTable"
|
|
|
:tablecols="tool.tabelCol($route.name).projectTable.tablecols"
|
|
|
@@ -232,7 +238,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
|
|
|
@@ -241,7 +247,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -287,6 +293,8 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
ref="selectdep"
|
|
|
+ placement="bottom"
|
|
|
+ :append-to-body="false"
|
|
|
size="small"
|
|
|
v-model="scoreTableParam1.content.dataid"
|
|
|
:options="deplist"
|
|
|
@@ -352,7 +360,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)">详情</el-button>
|
|
|
@@ -364,7 +372,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.dealamount,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -400,6 +408,7 @@
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
v-model="addParam.content.dataid"
|
|
|
:options="deplist"
|
|
|
:props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
|
|
|
@@ -450,6 +459,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="baobeiParam.content.dataid"
|
|
|
@@ -502,6 +512,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="baojiaParam.content.dataid"
|
|
|
@@ -554,6 +565,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="fllowParam.content.dataid"
|
|
|
@@ -606,6 +618,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="fllowTableParam.content.dataid"
|
|
|
@@ -636,8 +649,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="panel-content">
|
|
|
- <div ref="projectFllowEl" style="width:30%"></div>
|
|
|
- <div class="panel-table" style="width:70%">
|
|
|
+ <div ref="projectFllowEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
|
|
|
+ <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
|
|
|
<pageTable
|
|
|
ref="projectFllowTable"
|
|
|
:tablecols="tool.tabelCol($route.name).projectTable.tablecols"
|
|
|
@@ -647,7 +660,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
|
|
|
@@ -656,7 +669,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -691,6 +704,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="contactTableParam.content.dataid"
|
|
|
@@ -721,8 +735,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="panel-content">
|
|
|
- <div ref="projectContactEl" style="width:30%"></div>
|
|
|
- <div class="panel-table" style="width:70%">
|
|
|
+ <div ref="projectContactEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
|
|
|
+ <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
|
|
|
<pageTable
|
|
|
ref="projectContactTable"
|
|
|
:tablecols="tool.tabelCol($route.name).projectTable.tablecols"
|
|
|
@@ -732,7 +746,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
|
|
|
@@ -741,7 +755,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -776,6 +790,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="customerTableParam.content.dataid"
|
|
|
@@ -806,8 +821,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="panel-content">
|
|
|
- <div ref="projectCustomerEl" style="width:30%"></div>
|
|
|
- <div class="panel-table" style="width:70%">
|
|
|
+ <div ref="projectCustomerEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
|
|
|
+ <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
|
|
|
<pageTable
|
|
|
ref="projectCustomerTable"
|
|
|
:tablecols="tool.tabelCol($route.name).projectTable.tablecols"
|
|
|
@@ -817,7 +832,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
|
|
|
@@ -826,7 +841,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -861,6 +876,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="scoreTableParam.content.dataid"
|
|
|
@@ -891,8 +907,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="panel-content">
|
|
|
- <div ref="projectScoreEl" style="width:30%"></div>
|
|
|
- <div class="panel-table" style="width:70%">
|
|
|
+ <div ref="projectScoreEl" :style="windowWidth<1505?'width:54%':windowWidth<1805?'width:54%':windowWidth<2500?'width:45%':'width:30%'"></div>
|
|
|
+ <div class="panel-table" :style="windowWidth<1505?'width:46%':windowWidth<1805?'width:46%':windowWidth<2500?'width:55%':'width:70%'">
|
|
|
<pageTable
|
|
|
ref="projectScoreTable"
|
|
|
:tablecols="tool.tabelCol($route.name).projectTable.tablecols"
|
|
|
@@ -902,7 +918,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)" :disabled="isFull">详情</el-button>
|
|
|
@@ -911,7 +927,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -945,6 +961,7 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
:append-to-body="false"
|
|
|
+ placement="bottom"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
v-model="unfllowTableParam.content.dataid"
|
|
|
@@ -1020,7 +1037,7 @@
|
|
|
>
|
|
|
<template v-slot:custom="scope">
|
|
|
<div v-if="scope.data.columnname == 'sys_tag'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname == 'operation'">
|
|
|
<el-button type="text" size="small" @click="goDetail(scope.data.data)">详情</el-button>
|
|
|
@@ -1029,7 +1046,7 @@
|
|
|
{{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'industry'">
|
|
|
- <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index">{{ item }}</el-tag>
|
|
|
+ <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ item }}</el-tag>
|
|
|
</div>
|
|
|
<div v-else-if="scope.data.columnname === 'tradingstatus'">
|
|
|
<span style="color:#3874f6" v-if="scope.data.data[[scope.data.columnname]] == '未成交'">{{scope.data.data[[scope.data.columnname]]}}</span>
|
|
|
@@ -1089,8 +1106,10 @@
|
|
|
<label class="search__label" >部门:</label>
|
|
|
<el-cascader
|
|
|
clearable
|
|
|
+ :append-to-body="false"
|
|
|
ref="selectdep"
|
|
|
size="small"
|
|
|
+ placement="bottom"
|
|
|
v-model="dateParam.content.dataid"
|
|
|
:options="deplist"
|
|
|
:props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"
|
|
|
@@ -1192,6 +1211,7 @@ export default {
|
|
|
data () {
|
|
|
return {
|
|
|
isFull:false,
|
|
|
+ isAppend:true,
|
|
|
colorArr:['#3874f6','#00b32b','#ffae02','#f53f3f','#f2f2f2'],
|
|
|
windowWidth: document.documentElement.clientWidth, //实时屏幕宽度
|
|
|
deplist:[],
|
|
|
@@ -1509,7 +1529,15 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- dateList:{}
|
|
|
+ dateList:{},
|
|
|
+ dataAllParam:{
|
|
|
+ "id": 20231018110404,
|
|
|
+ "content" :{
|
|
|
+ "dataid": '',
|
|
|
+ "type":"",
|
|
|
+ "username":JSON.parse(sessionStorage.getItem('accountinfo')).name,
|
|
|
+ }
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
methods:{
|
|
|
@@ -1524,10 +1552,7 @@ export default {
|
|
|
},
|
|
|
//获取数据总览
|
|
|
async getdataAll () {
|
|
|
- let res = await this.$api.requested({
|
|
|
- id:20231018110404,
|
|
|
- content:{}
|
|
|
- })
|
|
|
+ let res = await this.$api.requested(this.dataAllParam)
|
|
|
this.dataAll = res.data
|
|
|
console.log(this.dataAll,'数据总览');
|
|
|
},
|
|
|
@@ -1579,6 +1604,12 @@ export default {
|
|
|
radius: 1,
|
|
|
innerRadius: 0.64,
|
|
|
label:{
|
|
|
+ /*type: 'inner',
|
|
|
+ offset: '-50%',
|
|
|
+ style: {
|
|
|
+ textAlign: 'center',
|
|
|
+ },
|
|
|
+ autoRotate: false,*/
|
|
|
formatter: (datum) => `${datum.ratio}%`
|
|
|
},
|
|
|
tooltip:{
|
|
|
@@ -1609,7 +1640,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- position:'left'
|
|
|
+ position:'bottom'
|
|
|
},
|
|
|
// 添加 中心统计文本 交互
|
|
|
interactions: [{ type: 'element-single-selected' },{ type: 'element-active' }],
|
|
|
@@ -1675,7 +1706,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- position:'left'
|
|
|
+ position:'bottom'
|
|
|
},
|
|
|
// 添加 中心统计文本 交互
|
|
|
interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
|
|
|
@@ -1709,6 +1740,9 @@ export default {
|
|
|
seriesField: 'key',
|
|
|
minBarWidth: 20,
|
|
|
maxBarWidth: 40,
|
|
|
+ label:{
|
|
|
+ position:top
|
|
|
+ },
|
|
|
legend: {
|
|
|
position: 'top-left',
|
|
|
},
|
|
|
@@ -1740,7 +1774,24 @@ export default {
|
|
|
param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
|
|
|
}
|
|
|
let res = await this.$api.requested(param)
|
|
|
- this.addData.arr1 = res.data.histogram
|
|
|
+ /*this.addData.arr1 = res.data.histogram*/
|
|
|
+ let lastYear = []
|
|
|
+ let nowYear = []
|
|
|
+ let k=0
|
|
|
+ for (var i=0;i<res.data.histogram.length;i++){
|
|
|
+ if (res.data.histogram[i].key === '去年同期新增'){
|
|
|
+ lastYear[k]=res.data.histogram[i]
|
|
|
+ k++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let x=0
|
|
|
+ for (var i=0;i<res.data.histogram.length;i++){
|
|
|
+ if (res.data.histogram[i].key === '本期新增'){
|
|
|
+ nowYear[x]=res.data.histogram[i]
|
|
|
+ x++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.addData.arr1 = lastYear.concat(nowYear)
|
|
|
res.data.lineChart.forEach(item => item[`同比增长率`] = item.value)
|
|
|
this.addData.arr2 = res.data.lineChart
|
|
|
if (init) {
|
|
|
@@ -1753,12 +1804,24 @@ export default {
|
|
|
geometry: 'column',
|
|
|
isGroup: true,
|
|
|
seriesField: 'key',
|
|
|
+ color:['#62daab','#6395fa'],
|
|
|
+ label:{
|
|
|
+ position:top
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
geometry: 'line',
|
|
|
lineStyle: {
|
|
|
lineWidth: 2,
|
|
|
},
|
|
|
+ color: '#F6903D',
|
|
|
+ smooth: true,
|
|
|
+ label:{
|
|
|
+ position:top,
|
|
|
+ formatter: (datum) =>{
|
|
|
+ return datum.value + '%'
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
],
|
|
|
tooltip: {
|
|
|
@@ -1779,7 +1842,24 @@ export default {
|
|
|
param.content.dataid = param.content.dataid[param.content.dataid.length - 1]
|
|
|
}
|
|
|
let res = await this.$api.requested(param)
|
|
|
- this.baobeiData.arr1 = res.data.histogram
|
|
|
+ /*this.baobeiData.arr1 = res.data.histogram*/
|
|
|
+ let lastYear = []
|
|
|
+ let nowYear = []
|
|
|
+ let k=0
|
|
|
+ for (var i=0;i<res.data.histogram.length;i++){
|
|
|
+ if (res.data.histogram[i].key === '去年同期报备'){
|
|
|
+ lastYear[k]=res.data.histogram[i]
|
|
|
+ k++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let x=0
|
|
|
+ for (var i=0;i<res.data.histogram.length;i++){
|
|
|
+ if (res.data.histogram[i].key === '本期报备'){
|
|
|
+ nowYear[x]=res.data.histogram[i]
|
|
|
+ x++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.baobeiData.arr1 = lastYear.concat(nowYear)
|
|
|
res.data.lineChart.forEach(item => item[`同比增长率`] = item.value)
|
|
|
this.baobeiData.arr2 = res.data.lineChart
|
|
|
if (init) {
|
|
|
@@ -1792,12 +1872,24 @@ export default {
|
|
|
geometry: 'column',
|
|
|
isGroup: true,
|
|
|
seriesField: 'key',
|
|
|
+ color:['#62daab','#6395fa'],
|
|
|
+ label:{
|
|
|
+ position:top
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
geometry: 'line',
|
|
|
lineStyle: {
|
|
|
lineWidth: 2,
|
|
|
},
|
|
|
+ color: '#F6903D',
|
|
|
+ smooth: true,
|
|
|
+ label:{
|
|
|
+ position:top,
|
|
|
+ formatter: (datum) =>{
|
|
|
+ return datum.value + '%'
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
],
|
|
|
tooltip: {
|
|
|
@@ -1819,6 +1911,23 @@ export default {
|
|
|
}
|
|
|
let res = await this.$api.requested(param)
|
|
|
this.fllowData = res.data
|
|
|
+ let lastYear = []
|
|
|
+ let nowYear = []
|
|
|
+ let k=0
|
|
|
+ for (var i=0;i<res.data.followup.length;i++){
|
|
|
+ if (res.data.followup[i].key === '去年同期跟进'){
|
|
|
+ lastYear[k]=res.data.followup[i]
|
|
|
+ k++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let x=0
|
|
|
+ for (var i=0;i<res.data.followup.length;i++){
|
|
|
+ if (res.data.followup[i].key === '本期跟进'){
|
|
|
+ nowYear[x]=res.data.followup[i]
|
|
|
+ x++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.fllowData.followup = lastYear.concat(nowYear)
|
|
|
this.fllowData.tbzzl.forEach(item => item.key = '同比增长率')
|
|
|
console.log(res.data,'跟进数据');
|
|
|
if (init) {
|
|
|
@@ -1831,12 +1940,21 @@ export default {
|
|
|
geometry: 'column',
|
|
|
seriesField:'key',
|
|
|
isGroup: 'true',
|
|
|
- color:['#6395fa','#62daab'],
|
|
|
+ color:['#62daab','#6395fa'],
|
|
|
+ label:{
|
|
|
+ position:top
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
geometry: 'line',
|
|
|
seriesField:'key',
|
|
|
- color:['#657798'],
|
|
|
+ color: '#F6903D',
|
|
|
+ smooth: true,
|
|
|
+ label:{
|
|
|
+ formatter: (datum) =>{
|
|
|
+ return datum.value + '%'
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
],
|
|
|
tooltip: {
|
|
|
@@ -1858,15 +1976,18 @@ export default {
|
|
|
}
|
|
|
let res = await this.$api.requested(param)
|
|
|
this.baojiaData = res.data
|
|
|
- console.log(res.data,'报价数据');
|
|
|
+
|
|
|
if (init) {
|
|
|
this.baojiaMap = new Line(this.$refs.baojiaEl, {
|
|
|
data:this.baojiaData,
|
|
|
xField: 'date',
|
|
|
yField: 'value',
|
|
|
seriesField: 'key',
|
|
|
+ label:{
|
|
|
+ layout: [],
|
|
|
+ },
|
|
|
xAxis: {
|
|
|
- type: 'time',
|
|
|
+ /*type: 'time',*/
|
|
|
},
|
|
|
yAxis: {
|
|
|
// label: {
|
|
|
@@ -1874,6 +1995,7 @@ export default {
|
|
|
// formatter: (v) => `${v}`.replace(/\d{1,3}(?=(\d{3})+$)/g, (s) => `${s},`),
|
|
|
// },
|
|
|
},
|
|
|
+ smooth: true,
|
|
|
})
|
|
|
this.baojiaMap.render()
|
|
|
} else {
|
|
|
@@ -1924,7 +2046,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- position:'left'
|
|
|
+ position:'bottom'
|
|
|
},
|
|
|
// 添加 中心统计文本 交互
|
|
|
interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
|
|
|
@@ -1990,7 +2112,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- position:'left'
|
|
|
+ position:'bottom'
|
|
|
},
|
|
|
// 添加 中心统计文本 交互
|
|
|
interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
|
|
|
@@ -2056,7 +2178,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- position:'left'
|
|
|
+ position:'bottom'
|
|
|
},
|
|
|
// 添加 中心统计文本 交互
|
|
|
interactions: [{ type: 'element-selected' },{ type: 'element-active' }],
|
|
|
@@ -2122,7 +2244,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- position:'left'
|
|
|
+ position:'bottom'
|
|
|
},
|
|
|
// 添加 中心统计文本 交互
|
|
|
interactions: [{ type: 'element-highlight-by-x ' },{ type: 'element-active' }],
|
|
|
@@ -2166,13 +2288,17 @@ export default {
|
|
|
xField: 'datetype',
|
|
|
yField: 'value',
|
|
|
seriesField: 'key',
|
|
|
+ label:{
|
|
|
+ position:top
|
|
|
+ },
|
|
|
/** 设置颜色 */
|
|
|
//color: ['#1ca9e6', '#f88c24'],
|
|
|
/** 设置间距 */
|
|
|
+
|
|
|
// marginRatio: 0.1,
|
|
|
- label: {
|
|
|
+ /*label: {
|
|
|
// 可手动配置 label 数据标签位置
|
|
|
- position: 'middle', // 'top', 'middle', 'bottom'
|
|
|
+ position: 'top', // 'top', 'middle', 'bottom'
|
|
|
// 可配置附加的布局方法
|
|
|
layout: [
|
|
|
// 柱形图数据标签位置自动调整
|
|
|
@@ -2182,7 +2308,7 @@ export default {
|
|
|
// 数据标签文颜色自动调整
|
|
|
{ type: 'adjust-color' },
|
|
|
],
|
|
|
- },
|
|
|
+ },*/
|
|
|
interactions: [{ type: 'element-highlight-by-x' }],
|
|
|
});
|
|
|
this.customerUnfllowMap.on('element:click',(v) => {
|
|
|
@@ -2280,6 +2406,13 @@ export default {
|
|
|
selectDep (val) {
|
|
|
let id = val[val.length - 1]
|
|
|
if (val.length) {
|
|
|
+ /*数据总览*/
|
|
|
+ this.dataAllParam.content.dataid = id
|
|
|
+ this.dataAllParam.content.type = 1
|
|
|
+ this.dataAllParam.content.username = ''
|
|
|
+ this.getdataAll()
|
|
|
+
|
|
|
+ /*项目类型分析*/
|
|
|
this.typeMapParam.content.dataid = id
|
|
|
this.typeMapParam.content.type = 1
|
|
|
this.typeInit()
|
|
|
@@ -2288,6 +2421,7 @@ export default {
|
|
|
this.typeTableParam.content.username = ''
|
|
|
this.$refs.typeTable.listData()
|
|
|
|
|
|
+ /*项目等级分析*/
|
|
|
this.gradMapParam.content.dataid = id
|
|
|
this.gradMapParam.content.type = 1
|
|
|
this.gradInit()
|
|
|
@@ -2296,6 +2430,7 @@ export default {
|
|
|
this.gradTableParam.content.username = ''
|
|
|
this.$refs.gradTable.listData()
|
|
|
|
|
|
+ /*项目评估分析*/
|
|
|
this.scoreMapParam1.content.dataid = id
|
|
|
this.scoreMapParam1.content.type = 1
|
|
|
this.scoreInit()
|
|
|
@@ -2304,26 +2439,31 @@ export default {
|
|
|
this.scoreTableParam1.content.username = ''
|
|
|
this.$refs.scoreTable.listData()
|
|
|
|
|
|
+ /*近12月项目新增分析*/
|
|
|
this.addParam.content.dataid = id
|
|
|
this.addParam.content.type = 1
|
|
|
this.addParam.content.username = ''
|
|
|
this.addFun()
|
|
|
|
|
|
+ /*近12月项目报备分析*/
|
|
|
this.baobeiParam.content.dataid = id
|
|
|
this.baobeiParam.content.type = 1
|
|
|
this.baobeiParam.content.username = ''
|
|
|
- this.baojiaFun()
|
|
|
+ this.baobeiFun()
|
|
|
|
|
|
+ /*近12月项目跟进分析*/
|
|
|
this.fllowParam.content.dataid = id
|
|
|
this.fllowParam.content.type = 1
|
|
|
this.fllowParam.content.username = ''
|
|
|
this.fllowFun()
|
|
|
|
|
|
+ /*近12月项目报价分析*/
|
|
|
this.baojiaParam.content.dataid = id
|
|
|
this.baojiaParam.content.type = 1
|
|
|
this.baojiaParam.content.username = ''
|
|
|
this.baojiaFun()
|
|
|
|
|
|
+ /*近12月项目跟进分析*/
|
|
|
this.fllowMapParam.content.dataid = id
|
|
|
this.fllowMapParam.content.type = 1
|
|
|
this.fllowInit()
|
|
|
@@ -2332,6 +2472,7 @@ export default {
|
|
|
this.fllowTableParam.content.username = ''
|
|
|
this.$refs.projectFllowTable.listData()
|
|
|
|
|
|
+ /*项目联系人情况统计*/
|
|
|
this.contactMapParam.content.dataid = id
|
|
|
this.contactMapParam.content.type = 1
|
|
|
this.contactInit()
|
|
|
@@ -2340,6 +2481,7 @@ export default {
|
|
|
this.contactTableParam.content.username = ''
|
|
|
this.$refs.projectContactTable.listData()
|
|
|
|
|
|
+ /*项目关联客户情况统计*/
|
|
|
this.customerMapParam.content.dataid = id
|
|
|
this.customerMapParam.content.type = 1
|
|
|
this.customerInit()
|
|
|
@@ -2348,6 +2490,7 @@ export default {
|
|
|
this.customerTableParam.content.username = ''
|
|
|
this.$refs.projectCustomerTable.listData()
|
|
|
|
|
|
+ /*项目评估情况统计*/
|
|
|
this.scoreMapParam.content.dataid = id
|
|
|
this.scoreMapParam.content.type = 1
|
|
|
this.projectScoreInit()
|
|
|
@@ -2356,6 +2499,7 @@ export default {
|
|
|
this.scoreTableParam.content.username = ''
|
|
|
this.$refs.projectScoreTable.listData()
|
|
|
|
|
|
+ /*有效项目未跟进天数分析*/
|
|
|
this.unfllowMapParam.content.dataid = id
|
|
|
this.unfllowMapParam.content.type = 1
|
|
|
this.customerUnfllowInit()
|
|
|
@@ -2364,13 +2508,21 @@ export default {
|
|
|
this.unfllowTableParam.content.username = ''
|
|
|
this.$refs.customerUnfllowTable.listData()
|
|
|
|
|
|
+ /*项目生命周期分析*/
|
|
|
this.dateParam.content.dataid = id
|
|
|
this.dateParam.content.type = 1
|
|
|
this.dateParam.content.username = ''
|
|
|
this.getDate()
|
|
|
|
|
|
} else {
|
|
|
+ /*项目类型分析*/
|
|
|
let name = JSON.parse(sessionStorage.getItem('accountinfo')).name
|
|
|
+ /*数据总览*/
|
|
|
+ this.dataAllParam.content.dataid = ''
|
|
|
+ this.dataAllParam.content.type = ''
|
|
|
+ this.dataAllParam.content.username = name
|
|
|
+ this.getdataAll()
|
|
|
+
|
|
|
this.typeMapParam.content.dataid = ''
|
|
|
this.typeMapParam.content.type = ''
|
|
|
this.typeInit()
|
|
|
@@ -2379,6 +2531,7 @@ export default {
|
|
|
this.typeTableParam.content.username = name
|
|
|
this.$refs.typeTable.listData()
|
|
|
|
|
|
+ /*项目等级分析*/
|
|
|
this.gradMapParam.content.dataid = ''
|
|
|
this.gradMapParam.content.type = ''
|
|
|
this.gradInit()
|
|
|
@@ -2387,6 +2540,7 @@ export default {
|
|
|
this.gradTableParam.content.username = name
|
|
|
this.$refs.gradTable.listData()
|
|
|
|
|
|
+ /*项目评估分析*/
|
|
|
this.scoreMapParam1.content.dataid = ''
|
|
|
this.scoreMapParam1.content.type = ''
|
|
|
this.scoreInit()
|
|
|
@@ -2395,26 +2549,31 @@ export default {
|
|
|
this.scoreTableParam1.content.username = name
|
|
|
this.$refs.scoreTable.listData()
|
|
|
|
|
|
+ /*近12月项目新增分析*/
|
|
|
this.addParam.content.dataid = ''
|
|
|
this.addParam.content.type = ''
|
|
|
this.addParam.content.username = name
|
|
|
this.addFun()
|
|
|
|
|
|
+ /*近12月项目报备分析*/
|
|
|
this.baobeiParam.content.dataid = ''
|
|
|
this.baobeiParam.content.type = ''
|
|
|
this.baobeiParam.content.username = name
|
|
|
- this.baojiaFun()
|
|
|
+ this.baobeiFun()
|
|
|
|
|
|
+ /*近12月项目跟进分析*/
|
|
|
this.fllowParam.content.dataid = ''
|
|
|
this.fllowParam.content.type = ''
|
|
|
this.fllowParam.content.username = name
|
|
|
this.fllowFun()
|
|
|
|
|
|
+ /*近12月项目报价分析*/
|
|
|
this.baojiaParam.content.dataid = ''
|
|
|
this.baojiaParam.content.type = ''
|
|
|
this.baojiaParam.content.username = name
|
|
|
this.baojiaFun()
|
|
|
|
|
|
+ /*近12月项目跟进分析*/
|
|
|
this.fllowMapParam.content.dataid = ''
|
|
|
this.fllowMapParam.content.type = ''
|
|
|
this.fllowInit()
|
|
|
@@ -2423,6 +2582,7 @@ export default {
|
|
|
this.fllowTableParam.content.username = name
|
|
|
this.$refs.projectFllowTable.listData()
|
|
|
|
|
|
+ /*项目联系人情况统计*/
|
|
|
this.contactMapParam.content.dataid = ''
|
|
|
this.contactMapParam.content.type = ''
|
|
|
this.contactInit()
|
|
|
@@ -2431,6 +2591,7 @@ export default {
|
|
|
this.contactTableParam.content.username = name
|
|
|
this.$refs.projectContactTable.listData()
|
|
|
|
|
|
+ /*项目关联客户情况统计*/
|
|
|
this.customerMapParam.content.dataid = ''
|
|
|
this.customerMapParam.content.type = ''
|
|
|
this.customerInit()
|
|
|
@@ -2439,6 +2600,7 @@ export default {
|
|
|
this.customerTableParam.content.username = name
|
|
|
this.$refs.projectCustomerTable.listData()
|
|
|
|
|
|
+ /*项目评估情况统计*/
|
|
|
this.scoreMapParam.content.dataid = ''
|
|
|
this.scoreMapParam.content.type = ''
|
|
|
this.projectScoreInit()
|
|
|
@@ -2447,6 +2609,7 @@ export default {
|
|
|
this.scoreTableParam.content.username = name
|
|
|
this.$refs.projectScoreTable.listData()
|
|
|
|
|
|
+ /*有效项目未跟进天数分析*/
|
|
|
this.unfllowMapParam.content.dataid = ''
|
|
|
this.unfllowMapParam.content.type = ''
|
|
|
this.customerUnfllowInit()
|
|
|
@@ -2455,6 +2618,7 @@ export default {
|
|
|
this.unfllowTableParam.content.username = name
|
|
|
this.$refs.customerUnfllowTable.listData()
|
|
|
|
|
|
+ /*项目生命周期分析*/
|
|
|
this.dateParam.content.dataid = ''
|
|
|
this.dateParam.content.type = ''
|
|
|
this.dateParam.content.username = name
|
|
|
@@ -2485,11 +2649,19 @@ export default {
|
|
|
/*全屏*/
|
|
|
onFull(){
|
|
|
this.isFull = true
|
|
|
+ this.isAppend = false
|
|
|
},
|
|
|
/*退出全屏*/
|
|
|
backFull(){
|
|
|
this.isFull = false
|
|
|
+ this.isAppend = true
|
|
|
+ },
|
|
|
+ /*级联*/
|
|
|
+ format (labels, selectedData) {
|
|
|
+ const index = labels.length - 1;
|
|
|
+ return labels[index];
|
|
|
}
|
|
|
+
|
|
|
},
|
|
|
async mounted () {
|
|
|
this.getProjectScoreDescript()
|
|
|
@@ -2688,4 +2860,6 @@ export default {
|
|
|
.panel-table {
|
|
|
height: 100%;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
</style>
|