Commit 958190ba authored by danfuman's avatar danfuman

修改

parent f02d9b80
......@@ -98,9 +98,9 @@
{label: '企业地区', prop: 'address', minWidth: '150'},
],
formData: [
{ type: 4, fieldName: 'combineMemberLevel', value: '', placeholder: '成员层级', options:[]},
{ type: 4, fieldName: 'businessType', value: '', placeholder: '主营业务', options:[]},
{ type: 7, fieldName: 'province', value: '',props: {multiple: true}, placeholder: '地区', options:[]},
{ type: 4, fieldName: 'combineMemberLevels', value: '', placeholder: '成员层级', options:[]},
{ type: 1, fieldName: 'businessType', value: '', placeholder: '主营业务', options:[]},
{ type: 7, fieldName: 'province', value: '',props: {multiple: true,value: 'id',expandTrigger: 'hover'}, placeholder: '地区', options:[]},
{ type: 6, fieldName: 'money', value: '', placeholder: '注册资本', startMoney: 'minAmount', endMoney: 'maxAmount',moneyList:[] },
{ type: 0, fieldName: 'penalizeReasonType', value: '', placeholder: '筛选', options: []},
{ type: 3, fieldName: 'searchValue', value: '', placeholder: '输入关键词查询'},
......@@ -115,16 +115,20 @@
value:'集团本身'
},
{
name:'一级公司',
value:'一级公司'
name:'一级公司',
value:'一级公司'
},
{
name:'二级公司',
value:'二级公司'
name:'二级公司',
value:'二级公司'
},
{
name:'三级子公司',
value:'三级子公司'
name:'三级公司',
value:'三级公司'
},
{
name:'其他公司',
value:'其他公司'
},
],
kjxqy:[
......@@ -223,9 +227,13 @@
handleQuery(params){
let data = this.getAreaList(params || this.queryParams)
memberList(data).then(res=>{
this.tableData = res.rows
this.tableDataTotal = res.total
this.isSkeleton = false
if(res.code === 200){
this.tableData = res.rows
this.tableDataTotal = res.total
}else {
this.tableData = []
}
})
},
//地区
......@@ -328,14 +336,14 @@
getAreaList(params){
if(params.province&&params.province.length>0){
let arr = this.$children[0].$refs.cascader[0].getCheckedNodes()
let provinceIds = [], cityIds = [], areaIds = []
let provinceIds = [], cityIds = [], districtIds = []
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
if(arr[i].hasChildren || arr[i].level==2){
cityIds.push(arr[i].data.id)
}else{
areaIds.push(arr[i].data.id)
districtIds.push(arr[i].data.id)
}
}
} else {
......@@ -345,19 +353,19 @@
delete params.province
provinceIds.length>0?params.provinceIds = provinceIds:''
cityIds.length>0?params.cityIds = cityIds:''
areaIds.length>0?params.areaIds = areaIds:''
districtIds.length>0?params.districtIds = districtIds:''
}
return params
},
sortChange({ column, prop, order }){
this.queryParams.field = prop
this.queryParams.orderName = prop
if(column.order === "ascending"){
this.queryParams.order = 'asc'
this.queryParams.orderType = 'asc'
}else if(column.order === "descending"){
this.queryParams.order = 'desc'
this.queryParams.orderType = 'desc'
}else {
this.queryParams.order=''
this.queryParams.field=''
this.queryParams.orderType=''
this.queryParams.orderName=''
}
this.pageIndex = 1;
this.handleQuery()
......
......@@ -77,7 +77,7 @@
{label: '业主单位', prop: 'projectUnit', slot: true,minWidth: '200'},
],
formData: [
{ type: 7, fieldName: 'combineMemberLevel', value: '',props: {multiple: true}, placeholder: '项目地区', options:[]},
{ type: 7, fieldName: 'province', value: '',props: {multiple: true,value: 'id',expandTrigger: 'hover'}, placeholder: '项目地区', options:[]},
{ type: 5, fieldName: 'time', value: '', placeholder: '中标时间', startTime: 'startBidTime', endTime: 'endBidTime',timeList:[] },
{ type: 6, fieldName: 'money', value: '', placeholder: '中标金额', startMoney: 'minAmount', endMoney: 'maxAmount',moneyList:[] },
{ type: 4, fieldName: 'boundTypes', value: '', placeholder: '业绩类型', options: []},
......@@ -136,7 +136,7 @@
methods: {
handleQuery(params){
this.isSkeleton = true
let data = params ? params : this.queryParams;
let data = this.getAreaList(params || this.queryParams)
if(data.cgbl){
if(data.cgbl === '100%'){
data.minStockPercent=1
......@@ -214,6 +214,30 @@
this.addressList = str;
this.formData[0].options=str;
},
getAreaList(params){
if(params.province&&params.province.length>0){
let arr = this.$children[0].$refs.cascader[0].getCheckedNodes()
let provinceIds = [], cityIds = [], districtIds = []
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
if(arr[i].hasChildren || arr[i].level==2){
cityIds.push(arr[i].data.id)
}else{
districtIds.push(arr[i].data.id)
}
}
} else {
provinceIds.push(arr[i].data.id)
}
}
delete params.province
provinceIds.length>0?params.provinceIds = provinceIds:''
cityIds.length>0?params.cityIds = cityIds:''
districtIds.length>0?params.districtIds = districtIds:''
}
return params
},
}
}
</script>
......
......@@ -53,7 +53,7 @@
queryParams: {
combineId:'54355f88a5b16d3e52f74931f5567853',
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '资质名称', prop: 'qualificationName'},
......@@ -77,9 +77,13 @@
this.isSkeleton = true
let data = params ? params : this.queryParams
certificateList(data).then(res=>{
this.tableData = res.rows
this.tableDataTotal = res.total
this.isSkeleton = false
if(res.code === 200){
this.tableData = res.rows
this.tableDataTotal = res.total
}else {
this.tableData = []
}
})
},
getCertificateList(){
......
......@@ -6,7 +6,9 @@
custom-class="client-drawer"
:with-header="false"
@closed="cancel">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-if="!isSkeleton"
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -39,6 +41,7 @@ export default {
data() {
return {
drawer: false,
isSkeleton:true,
queryParams: {
id: this.data.id,
pageNum: 1,
......@@ -64,10 +67,10 @@ export default {
},
methods: {
async handleQuery(params) {
this.tableLoading = true
this.isSkeleton = true
let param = params?params:this.queryParams
let res = await memberCertificateList(param)
this.tableLoading = false
this.isSkeleton = false
if(res.code==200){
this.tableData = res.rows
}
......
......@@ -151,6 +151,9 @@ export default {
case '一亿以上':
moneyStr = [10000]
break;
case '5亿-10亿':
moneyStr = [50000, 100000]
break;
case '1亿-10亿':
moneyStr = [10000, 100000]
break;
......
......@@ -14,7 +14,7 @@
:style="form.width?'width:'+form.width+'px':'max-width: 110px'"
:placeholder="form.placeholder"
@change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" :disabled="item.disabled"/>
</el-select>
</template>
<!-- 年月日 -->
......@@ -51,7 +51,7 @@
style="max-width: 170px"
:placeholder="form.placeholder"
@change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" :disabled="item.disabled"/>
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value"/>
</el-select>
</template>
<!-- 时间、自定义 -->
......
......@@ -59,7 +59,16 @@ export default {
handleSearch(){
let params = this.formParams()
params.pageNum = 1
this.queryParams.pageNum = 1
this.queryParams.pageNum = 1;
if(params.companyTypes){
if(params.companyTypes.length === 0){
delete params.companyTypes
}
}
if(!params.companyType){
delete params.companyType
}
this.handleQuery(params)
},
//分页
......
......@@ -73,9 +73,7 @@
<div class="box-right">
<el-table
:data="jtList"
element-loading-text="Loading"
border
show-summary
max-height="250"
fit
highlight-current-row
......@@ -95,14 +93,62 @@
</div>
</div>
<el-row>
<el-col :span="12">
<el-col :span="14">
<div id="zbph-echarts" style="height: 500px;"></div>
</el-col>
<el-col :span="12">
<el-col :span="10">
<div class="search">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="address">
<el-select v-model="queryParams.address" placeholder="项目地区">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="type">
<el-select v-model="queryParams.type" placeholder="项目类型">
<el-option v-for="(item,index) in typeList" :key="index" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="time">
<custom-time-select
:timeList="timeList"
placeholder="中标日期"
@handle-search="changeSelect"/>
</el-form-item>
</el-form>
</div>
<div class="box-right">
<el-table
:data="jtList"
border
max-height="400"
fit
highlight-current-row
>
<el-table-column prop="name" label="企业名称" width="120"/>
<el-table-column prop="count" label="中标数量(个)" align="right" sortable/>
<el-table-column prop="amount" label="中标金额(万元)" align="right" sortable/>
</el-table>
</div>
</el-col>
</el-row>
</div>
<!--<div class="content content_wap3">-->
<!--<div class="head"></div>-->
<!--<div class="list">-->
<!--<div class="item" v-for="(item,index) in projectList" :key="index">-->
<!--<h3>{{item.projectName}}</h3>-->
<!--<p>-->
<!--<span>中标企业:</span>-->
<!--<span>{{item.enterprise}}</span>-->
<!--</p>-->
<!--<p>-->
<!--<span>中标金额:</span>-->
<!--<span>{{item.amount}}</span>-->
<!--</p>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
</div>
<!--员工视角-->
<div class="staff" v-if="user === 2">
......@@ -372,30 +418,55 @@ export default {
],
pmData:[
{
name:'朱博',
name:'中治建工集团有限公司',
value:334,
value1:164,
},
{
name:'陈伟',
name:'中机中联工程有限公司',
value:230,
value1:130,
},
{
name:'张天翼',
name:'中铁五局集团第六公司',
value:156,
value1:150,
},
{
name:'李晨旭',
name:'中铁长江交通设计公司',
value:112,
value1:130,
},
{
name:'徐阳',
name:'重庆设计院有限公公司',
value:110,
value1:90,
},
{
name:'中铁五局集团第六公司',
value:100,
value1:91,
},
{
name:'中铁五局集团第六公司',
value:99,
value1:102,
},
{
name:'重庆设计院有限公公司',
value:80,
value1:90,
},
{
name:'中铁五局集团第六公司',
value:100,
value1:91,
},
{
name:'中铁五局集团第六公司',
value:99,
value1:102,
},
],
rankIconsSize:'24',
rankIcons:[// 排序图标
......@@ -404,6 +475,11 @@ export default {
require('@/assets/images/index/3.png'),
require('@/assets/images/index/4.png'),
require('@/assets/images/index/5.png'),
require('@/assets/images/index/6.png'),
require('@/assets/images/index/7.png'),
require('@/assets/images/index/8.png'),
require('@/assets/images/index/9.png'),
require('@/assets/images/index/10.png'),
],
user:1,
activeName:'first',
......@@ -508,6 +584,36 @@ export default {
type:''
},
timeList: ['近三天', '近七天', '近半月', '自定义'],
projectList:[
{
projectName:'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2',
enterprise:'平庆渝西保税产业发展有限公司',
amount:'33333万元',
time:'2022-03-05',
zbr:'重庆渝西保税产业发展有限公司'
},
{
projectName:'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2',
enterprise:'平庆渝西保税产业发展有限公司',
amount:'33333万元',
time:'2022-03-05',
zbr:'重庆渝西保税产业发展有限公司'
},
{
projectName:'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2',
enterprise:'平庆渝西保税产业发展有限公司',
amount:'33333万元',
time:'2022-03-05',
zbr:'重庆渝西保税产业发展有限公司'
},
{
projectName:'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2',
enterprise:'平庆渝西保税产业发展有限公司',
amount:'33333万元',
time:'2022-03-05',
zbr:'重庆渝西保税产业发展有限公司'
},
]
};
},
......@@ -654,15 +760,20 @@ export default {
require('@/assets/images/index/3.png'),
require('@/assets/images/index/4.png'),
require('@/assets/images/index/5.png'),
require('@/assets/images/index/6.png'),
require('@/assets/images/index/7.png'),
require('@/assets/images/index/8.png'),
require('@/assets/images/index/9.png'),
require('@/assets/images/index/10.png'),
]
let myChart = echarts.init(document.getElementById("zbph-echarts"))
let option ={
legend: {
show: true,
x:'center',
y:'bottom',
padding:[0,0,10,0],
x:'right',
y:'top',
padding:[10,0,10,0],
itemWidth: 24,
itemHeight: 10,
textStyle:{
......@@ -686,7 +797,7 @@ export default {
}
},
axisLabel: {
margin: 80,
margin: 200,
textStyle: {
align: 'left',
},
......@@ -698,6 +809,7 @@ export default {
1: {
height: 24,
width: 24,
// marginBottom:-15,
align: 'center',
backgroundColor: {
image: rankPic[0]
......@@ -735,6 +847,46 @@ export default {
image: rankPic[4]
}
},
6: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[5]
}
},
7: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[6]
}
},
8: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[7]
}
},
9: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[8]
}
},
10: {
height: 24,
width: 24,
align: 'center',
backgroundColor: {
image: rankPic[9]
}
},
}
},
},
......@@ -743,7 +895,7 @@ export default {
},
grid: {
left: '20%',
top: 20,
top: 40,
right: 20,
bottom: 60,
},
......@@ -762,10 +914,6 @@ export default {
data: this.pmData.map(item => item.value),
barGap: 0,
type: 'bar',
// stack: 'total',
// emphasis: {
// focus: 'series'
// },
itemStyle:{
color: '#14C9C9',
barBorderRadius:[0, 20, 20, 0]
......@@ -773,15 +921,10 @@ export default {
barWidth: 8,
},
{
// realtimeSort: true,
name:'目标产值',
data: this.pmData.map(item => item.value1),
barGap: 0,
type: 'bar',
// stack: 'total',
// emphasis: {
// focus: 'series'
// },
itemStyle:{
color: '#92C9FF',
barBorderRadius:[0, 20, 20, 0]
......@@ -931,8 +1074,6 @@ export default {
}
}
.box-right{
width: 90%;
float: right;
......@@ -1039,6 +1180,12 @@ export default {
}
}
}
.content_wap3{
.head{
height: 56px;
border-bottom: 1px solid #EFEFEF;
}
}
}
......
......@@ -75,7 +75,7 @@
<el-table-column prop="count" label="中标数量 (个)" align="right" :formatter="formatStatus" sortable width="130"/>
<el-table-column prop="countRate" label="数量占比(%)" align="right" :formatter="formatStatus" sortable width="150"/>
<el-table-column prop="sumMoney" label="中标总金额 (万元)" align="right" :formatter="formatStatus" width="140"/>
<el-table-column prop="moneyRate" label="金额占比(%)" align="right" :formatter="formatStatus" width="120"/>
<el-table-column prop="moneyRate" label="金额占比(%)" align="right" :formatter="formatStatus"/>
</el-table>
</div>
</div>
......@@ -130,7 +130,7 @@
</div>
</div>
<div class="content_box">
<div class="box-left" style="width: 60%;">
<div class="box-left">
<div id="echarts4" style="height: 300px"></div>
</div>
<div class="box-right">
......@@ -175,7 +175,7 @@
border
show-summary
max-height="280"
:summary-method="getSummaries"
:summary-method="getSummaries1"
fit
highlight-current-row
:default-sort = "{prop: 'count', order: 'descending'}"
......@@ -208,7 +208,7 @@
</div>
</div>
<div class="content_box" v-if="topList.length > 0 && !isSkeleton">
<div class="box-left" style="width: 60%;">
<div class="box-left">
<div id="echarts6" style="height: 300px"></div>
</div>
<div class="box-right">
......@@ -218,7 +218,7 @@
border
show-summary
max-height="280"
:summary-method="getSummaries1"
:summary-method="getSummaries2"
fit
highlight-current-row
:default-sort = "{prop: 'count', order: 'descending'}"
......@@ -227,9 +227,9 @@
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="month" label="时间" :formatter="formatStatus" width="120"/>
<el-table-column prop="sgRate" label="施工类项目下浮率(%)" align="right" :formatter="formatStatus" width="170"/>
<el-table-column prop="kcsjRate" label="勘察设计类项目下浮率(%)" align="right" :formatter="formatStatus" width="200"/>
<el-table-column prop="jlRate" label="监理类项目下浮率(%)" align="right" :formatter="formatStatus" width="170"/>
<el-table-column prop="sgRate" label="施工类下浮率(%)" align="right" :formatter="formatStatus" width="160"/>
<el-table-column prop="kcsjRate" label="勘察设计类下浮率(%)" align="right" :formatter="formatStatus"/>
<el-table-column prop="jlRate" label="监理类下浮率(%)" align="right" :formatter="formatStatus" width="160"/>
</el-table>
</div>
</div>
......@@ -306,9 +306,13 @@
this.xmtjList.forEach(item =>{
item.money=Number(item.money)
})
var list=[];
for(var i=0;i<10;i++){
list.push(res.data.date[i])
}
if(res.data){
this.$nextTick(() => {
this.initChart1(res.data.date)
this.initChart1(list)
})
}
})
......@@ -406,11 +410,6 @@
initChart1(data) {
this.$nextTick(() => {
let myChart = echarts.init(document.getElementById("echarts1"))
let list1=[],list2=[]
for(var i=0; i<data.length; i++) {
list1.push(data[i].count)
list2.push(data[i].money)
}
let option ={
tooltip: {
trigger: 'axis',
......@@ -421,7 +420,7 @@
xAxis: {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
margin: 10, //刻度标签与轴线之间的距离
color:"#666666",
show: true,
interval: 0
......@@ -474,8 +473,8 @@
],
grid: {
top:30,
left:80,
right:90,
left:70,
right:100,
bottom:30,
},
series: [
......@@ -483,7 +482,7 @@
name:'中标金额(万元)',
smooth: false, //平滑
type:"line",
symbolSize: 6,
symbolSize: 5,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
......@@ -694,7 +693,7 @@
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
color:"#666666",
},
axisTick: false, //坐标轴刻度
axisPointer: {
......@@ -801,8 +800,10 @@
xAxis: {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
margin: 10, //刻度标签与轴线之间的距离
color:"#666666",
// show: true,
// interval: 0
},
axisTick: false, //坐标轴刻度
axisPointer: {
......@@ -845,8 +846,8 @@
],
grid: {
top:30,
left:80,
right:90,
left:70,
right:70,
bottom:30,
},
series: [
......@@ -854,7 +855,7 @@
name:'下浮率',
smooth: false, //平滑
type:"line",
symbolSize: 6,
symbolSize: 5,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
......@@ -869,7 +870,7 @@
{
name:'统计项目数量',
type: 'bar',
barWidth: 20,
barWidth: 18,
tooltip: {
valueFormatter: function (value) {
return value + '个';
......@@ -1060,6 +1061,37 @@
return sums;
},
getSummaries1(param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 1) {
sums[index] = '平均下浮率';
return;
}
if (index === 0 ||index === 3) {
sums[index] = '-';
return;
}
const values = data.map(item => Number(item[column.property]));
let length=0
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
length=values.length
return Number(prev) + Number(curr)
} else {
return prev;
}
}, 0);
if (index === 2) {
sums[index] = (Number(sums[index])/length).toFixed(2);
return;
}
});
return sums;
},
getSummaries2(param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
......@@ -1150,10 +1182,10 @@
display: flex;
justify-content: space-between;
.box-left{
width: 60%;
width: 50%;
}
.box-right{
width: 33%;
width: 43%;
float: right;
::v-deep .el-table{
.sort-caret.ascending{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment