Commit 04fc3eda authored by tianhongyang's avatar tianhongyang

Merge branch 'V20230915' of http://192.168.60.201/root/dsk-operate-sys into V20230915

parents b9024ca7 97c9208c
...@@ -74,11 +74,25 @@ public class EnterpriseProjectController { ...@@ -74,11 +74,25 @@ public class EnterpriseProjectController {
return enterpriseProjectService.specialDebtPage(body); return enterpriseProjectService.specialDebtPage(body);
} }
/***
*@Description: 招标公告 分页列表
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
@PostMapping(value = "/bidNoticePage") @PostMapping(value = "/bidNoticePage")
public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception { public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception {
return enterpriseProjectService.bidNoticePage(body); return enterpriseProjectService.bidNoticePage(body);
} }
/***
*@Description: 招标招采阶段
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
@PostMapping(value = "/bidNoticeTenderStage") @PostMapping(value = "/bidNoticeTenderStage")
public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseProjectBidNoticeTenderStageBody body) throws Exception { public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
return enterpriseProjectService.bidNoticeTenderStage(body); return enterpriseProjectService.bidNoticeTenderStage(body);
...@@ -89,6 +103,19 @@ public class EnterpriseProjectController { ...@@ -89,6 +103,19 @@ public class EnterpriseProjectController {
return enterpriseProjectService.bidNoticeArea(body); return enterpriseProjectService.bidNoticeArea(body);
} }
/***
*@Description: 招标项目类别
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
@PostMapping(value = "/bidNoticeProjectCategory")
public R bidNoticeProjectCategory(@RequestBody @Valid EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
return enterpriseProjectService.bidNoticeProjectCategory(body);
}
@PostMapping(value = "/bidNoticeDetail") @PostMapping(value = "/bidNoticeDetail")
public R bidNoticeDetail(@RequestBody @Valid EnterpriseProjectBidNoticeDetailBody body) throws Exception { public R bidNoticeDetail(@RequestBody @Valid EnterpriseProjectBidNoticeDetailBody body) throws Exception {
return enterpriseProjectService.bidNoticeDetail(body); return enterpriseProjectService.bidNoticeDetail(body);
......
...@@ -25,10 +25,15 @@ public class EnterpriseProjectBidNoticePageBody extends BasePage { ...@@ -25,10 +25,15 @@ public class EnterpriseProjectBidNoticePageBody extends BasePage {
private String keys; private String keys;
/** /**
* 类型 * 招标阶段
*/ */
private List<String> tenderStage; private List<String> tenderStage;
/**
* 项目类型
*/
private List<String> projectCategory;
/* /*
* 1金额倒序,2金额正序,3时间倒序,4时间正序 * 1金额倒序,2金额正序,3时间倒序,4时间正序
*/ */
......
...@@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull; ...@@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectImportantListDto extends BasePage { public class EnterpriseProjectImportantListDto extends BasePage {
private Integer companyId; private Integer cid;
private String keys; private String keys;
......
...@@ -4,11 +4,13 @@ import cn.hutool.core.bean.BeanException; ...@@ -4,11 +4,13 @@ import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.*; import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto; import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service; ...@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@Service @Service
...@@ -90,13 +93,52 @@ public class EnterpriseProjectService { ...@@ -90,13 +93,52 @@ public class EnterpriseProjectService {
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
/***
*@Description: 招标公告 分页列表
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
public TableDataInfo bidNoticePage(EnterpriseProjectBidNoticePageBody body) throws Exception { public TableDataInfo bidNoticePage(EnterpriseProjectBidNoticePageBody body) throws Exception {
if (body.isVaildCid()) return new TableDataInfo(new ArrayList<>(), 0); if (body.isVaildCid()) {
return new TableDataInfo(new ArrayList<>(), 0);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false));
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isEmpty(list)) {
return new TableDataInfo(list, 0);
}
ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) {
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "agencyId"));
}
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("ids", cIds);
Map<String, Object> uipIdMap = dskOpenApiUtil.requestBody("/operate/enterprise/getUipIdByCid", paramMap);
Object uipIdData = uipIdMap.get("data");
List<Map<String, Object>> mapList = new ArrayList<>();
if (ObjectUtil.isNotEmpty(uipIdData)) {
mapList = (List<Map<String, Object>>)uipIdData;
}
for (Object dataMap : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(dataMap);
Long agencyId = MapUtils.getLong(companyMap, "agencyId", 0L);
companyMap.put("uipId", null);
for (Map<String, Object> m : mapList) {
String uipId = MapUtils.getString(m, "uipId", null);
Long companyId = MapUtils.getLong(m, "companyId", 0L);
if (agencyId.equals(companyId)) {
companyMap.put("uipId", uipId);
}
}
}
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R bidNoticeTenderStage(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception { public R bidNoticeTenderStage(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
if (body.isVaildCid()) return R.ok(); if (body.isVaildCid()) return R.ok();
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false));
...@@ -110,6 +152,20 @@ public class EnterpriseProjectService { ...@@ -110,6 +152,20 @@ public class EnterpriseProjectService {
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
/***
*@Description: 招标项目类别
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
public R bidNoticeProjectCategory(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
if (body.isVaildCid()) {
return R.ok();
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProjectCategory", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R bidNoticeDetail(EnterpriseProjectBidNoticeDetailBody body) throws Exception { public R bidNoticeDetail(EnterpriseProjectBidNoticeDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false));
......
...@@ -92,3 +92,52 @@ export function exportBid(data) { ...@@ -92,3 +92,52 @@ export function exportBid(data) {
data: data data: data
}) })
} }
// 集团施工项目最新招标
export function recentlyBid(data) {
return request({
url: '/marketAnalysis/combine/recentlyBid',
method: 'post',
data: data
})
}
// 集团施工项目年度招标
export function bidByYear(data) {
return request({
url: '/marketAnalysis/combine/bidByYear',
method: 'post',
data: data
})
}
// 集团施工项目发包金额统计
export function groupByMoney(data) {
return request({
url: '/marketAnalysis/combine/groupByMoney',
method: 'post',
data: data
})
}
// 集团施工项目发包类型统计
export function groupByType(data) {
return request({
url: '/marketAnalysis/combine/groupByType',
method: 'post',
data: data
})
}
// 施工项目下浮率统计
export function groupByLowerRate(data) {
return request({
url: '/marketAnalysis/combine/groupByLowerRate',
method: 'post',
data: data
})
}
// 历史发包项目金额Top10
export function peojectTop(data) {
return request({
url: '/marketAnalysis/combine/peojectTop',
method: 'post',
data: data
})
}
...@@ -9,7 +9,7 @@ export function bidNoticePage(data) { ...@@ -9,7 +9,7 @@ export function bidNoticePage(data) {
}); });
} }
// 招标公告招标类别 // 招标公告招标阶段
export function bidNoticeTenderStage(data) { export function bidNoticeTenderStage(data) {
return request({ return request({
url: '/enterpriseProject/bidNoticeTenderStage', url: '/enterpriseProject/bidNoticeTenderStage',
...@@ -17,6 +17,14 @@ export function bidNoticeTenderStage(data) { ...@@ -17,6 +17,14 @@ export function bidNoticeTenderStage(data) {
data: data data: data
}); });
} }
// 招标公告项目类别
export function bidNoticeProjectCategory(data) {
return request({
url: '/enterpriseProject/bidNoticeProjectCategory',
method: 'post',
data: data
})
}
// 招标公告地区 // 招标公告地区
export function bidNoticeArea(data) { export function bidNoticeArea(data) {
......
...@@ -348,7 +348,7 @@ ul, li { ...@@ -348,7 +348,7 @@ ul, li {
//box-shadow:none; //box-shadow:none;
//-webkit-box-shadow: 2px 0px 1px -2px #C3CBD5; //-webkit-box-shadow: 2px 0px 1px -2px #C3CBD5;
box-shadow: 2px 0 8px -7px #202020; box-shadow: 2px 0 8px -7px #202020;
border-right: 1px solid #C3CBD5; //border-right: 1px solid #C3CBD5;
height: auto !important; height: auto !important;
bottom: 16px !important; bottom: 16px !important;
} }
......
...@@ -209,7 +209,7 @@ export const constantRoutes = [ ...@@ -209,7 +209,7 @@ export const constantRoutes = [
children: [ children: [
{ {
path: '/biddetail/:id(\\d+)', path: '/biddetail/:id(\\d+)',
component: () => import('@/views/detail//biddetail/index'), component: () => import('@/views/detail/biddetail/index'),
name: 'Biddetail', name: 'Biddetail',
meta: { title: '中标业绩详情',icon: 'enterprise'} meta: { title: '中标业绩详情',icon: 'enterprise'}
} }
......
...@@ -5,70 +5,279 @@ ...@@ -5,70 +5,279 @@
title="集团施工项目最新招标" title="集团施工项目最新招标"
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
@handle-search="handleSearch"
:slots="true" :slots="true"
:isExcel="false" :isExcel="false"
></head-form> ></head-form>
<span class="check">查看集团招标<i class="el-icon-arrow-right"></i></span>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="table-item" v-if="!isSkeleton">
<el-table class="fixed-table" :data="tableData" border max-height="235">
<el-table-column label="项目名称" prop="title" min-width="350">
<template slot-scope="scope">
<router-link :to="`/radar/Notice/details/${scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid" v-html="scope.row.title"></router-link>
<div v-else v-html="scope.row.title || '--'"></div>
</template>
</el-table-column>
<el-table-column label="发布日期" prop="issueTime" width="100"></el-table-column>
<el-table-column label="招标成员" prop="tenderee" min-width="220">
<template slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.tendereeId)}`:`/company/${encodeStr(scope.row.tendereeId)}`" tag="a" class="a-link" v-if="scope.row.tendereeId&&scope.row.tenderee" v-html="scope.row.tenderee"></router-link>
<div v-else v-html="scope.row.tenderee || '--'"></div>
</template>
</el-table-column>
<el-table-column label="招标金额" prop="projectAmount" width="110">
<template slot-scope="scope">
{{scope.row.projectAmount ? scope.row.projectAmount : '0.00'}}{{scope.row.projectAmount ? '万元':''}}
</template>
</el-table-column>
<el-table-column label="项目类型" prop="projectCategory" width="110"></el-table-column>
<el-table-column label="代理单位" prop="agency" min-width="220">
<template slot-scope="scope">
<router-link :to="`/company/${encodeStr(scope.row.agencyId)}`" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="empty" v-if="tableData.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div class="content"> <div class="content">
<head-form <head-form
title="集团年度发包统计" title="集团施工项目年度招标"
:form-data="[]"
:query-params="{}"
:slots="true" :slots="true"
:isExcel="false" :isExcel="false"
></head-form> ></head-form>
<el-row>
<el-col :span="12">
<div id="ndzb-echarts" style="height: 300px;"></div>
</el-col>
<el-col :span="12">
<div class="box-right">
<div class="table-item">
<el-table class="fixed-table" :data="ndzbList" border max-height="270">
<el-table-column label="年度" prop="type" min-width="70"></el-table-column>
<el-table-column label="历史发包数量" prop="count" width="120">
<template slot-scope="scope">
{{scope.row.count}}{{scope.row.count ? '个':''}}
</template>
</el-table-column>
<el-table-column label="历史发包总金额" prop="sum" width="140">
<template slot-scope="scope">
{{scope.row.sum ? scope.row.sum : '0.00'}}{{scope.row.sum ? '万元':''}}
</template>
</el-table-column>
<el-table-column label="发包金额最高成员" prop="companyName" min-width="200">
<template slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
</div> </div>
<div class="content"> <div class="content">
<head-form <head-form
title="集团施工项目发包金额区间" title="集团施工项目发包金额区间"
:form-data="[]"
:query-params="{}"
:slots="true" :slots="true"
:isExcel="false" :isExcel="false"
></head-form> ></head-form>
<div class="year">
<el-select
v-model="year1"
clearable
class="form-content-width"
style="width: 80px">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.name" :value="item.value"/>
</el-select>
</div>
<el-row>
<el-col :span="12">
<div id="fbje-echarts" style="height: 280px;"></div>
</el-col>
<el-col :span="12">
<div class="box-right">
<div class="table-item">
<el-table class="fixed-table" :data="jeqjList" border max-height="270">
<el-table-column label="历史发包金额" prop="rangeName" min-width="120"></el-table-column>
<el-table-column label="历史发包数量" prop="count">
<template slot-scope="scope">
{{scope.row.count}}{{scope.row.count ? '个':''}}
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
</div> </div>
<div class="content"> <div class="content">
<head-form <head-form
title="集团施工项目发包类型统计" title="集团施工项目发包类型统计"
:form-data="[]"
:query-params="{}"
:slots="true" :slots="true"
:isExcel="false" :isExcel="false"
></head-form> ></head-form>
<div class="year">
<el-select
v-model="year2"
clearable
class="form-content-width"
style="width: 80px">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.name" :value="item.value"/>
</el-select>
</div>
<el-row>
<el-col :span="12">
<div id="lxtj-echarts" style="height: 280px;"></div>
</el-col>
<el-col :span="12">
<div class="box-right">
<div class="table-item">
<el-table class="fixed-table" :data="lxtjList" border max-height="270">
<el-table-column label="项目类型" prop="type" min-width="70"></el-table-column>
<el-table-column label="发包数量" prop="count" width="120">
<template slot-scope="scope">
{{scope.row.count}}{{scope.row.count ? '个':''}}
</template>
</el-table-column>
<el-table-column label="发包总金额" prop="sum" width="140">
<template slot-scope="scope">
{{scope.row.sum ? scope.row.sum : '0.00'}}{{scope.row.sum ? '万元':''}}
</template>
</el-table-column>
<el-table-column label="发包金额最大成员" prop="companyName" min-width="200">
<template slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
</div> </div>
<div class="content"> <div class="content">
<head-form <head-form
title="施工项目下浮率统计" title="施工项目下浮率统计"
:form-data="[]"
:query-params="{}"
:slots="true" :slots="true"
:isExcel="false" :isExcel="false"
></head-form> ></head-form>
<div class="year">
<el-select
v-model="year3"
clearable
class="form-content-width"
style="width: 80px">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.name" :value="item.value"/>
</el-select>
</div>
<el-row>
<el-col :span="12">
<div id="xfl-echarts" style="height: 280px;"></div>
</el-col>
<el-col :span="12">
<div class="box-right">
<div class="table-item">
<el-table class="fixed-table" :data="xflList" border max-height="270">
<el-table-column label="项目类型" prop="type" min-width="120"></el-table-column>
<el-table-column label="下浮率区间" prop="lowerRate"></el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
</div> </div>
<div class="content"> <div class="content">
<head-form <head-form
title="历史发包项目金额TOP10" title="历史发包项目金额TOP10"
:form-data="formData" :form-data="formData"
:query-params="queryParams1" :query-params="queryParams1"
@handle-search="handleSearch1"
:slots="true" :slots="true"
:isExcel="false" :isExcel="false"
></head-form> ></head-form>
<skeleton v-if="isSkeleton6" style="padding: 16px"></skeleton>
<div class="table-item" v-if="!isSkeleton6">
<el-table class="fixed-table" :data="peojectTopData" border max-height="235">
<el-table-column label="项目名称" prop="projectName" min-width="350">
<template slot-scope="scope">
<router-link :to="`/biddetail/${item.id}`" tag="a" class="a-link" v-if="scope.row.bid" v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</el-table-column>
<el-table-column label="中标日期" prop="winBidTime" width="100"></el-table-column>
<el-table-column label="中标金额" prop="winBidAmount" width="130">
<template slot-scope="scope">
{{scope.row.winBidAmount ? scope.row.winBidAmount : '0.00'}}{{scope.row.winBidAmount ? '万元':''}}
</template>
</el-table-column>
<el-table-column label="项目类型" prop="projectTypeNew" width="100"></el-table-column>
<el-table-column label="招标成员" prop="projectUnit" min-width="250">
<template slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.projectUnit" v-html="scope.row.projectUnit"></router-link>
<div v-else v-html="scope.row.projectUnit || '--'"></div>
</template>
</el-table-column>
<el-table-column label="中标单位" prop="companyName" min-width="250">
<template slot-scope="scope">
<router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
</el-table-column>
<el-table-column label="代理单位" prop="agency" min-width="250">
<template slot-scope="scope">
<router-link :to="`/company/${encodeStr(scope.row.agencyId)}`" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="empty" v-if="peojectTopData.length === 0 && !isSkeleton6">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import * as echarts from 'echarts';
import mixin from '../../party-a/mixins/mixin' import mixin from '../../party-a/mixins/mixin'
import {recentlyBid,bidByYear,groupByMoney,groupByType,groupByLowerRate,peojectTop} from '@/api/detail/groupAccount/groupAccount'
import { getDictType } from '@/api/main' import { getDictType } from '@/api/main'
export default { export default {
name: 'qualifications', name: 'qualifications',
props: ['customerId','combineName'], props: ['customerId'],
mixins: [mixin], mixins: [mixin],
components:{}, components:{},
data(){ data(){
return{ return{
queryParams: {}, queryParams: {
queryParams1: {}, combineId: this.customerId,
forData: [ },
{label: '项目类型', prop: 'projectType',minWidth: '80',slot: true}, queryParams1: {
{label: '持股比例', prop: 'stockPercent',slot: true,minWidth: '80'}, combineId: this.customerId,
], },
formData: [ formData: [
{ type: 4, fieldName: 'projectTypes', value: '', placeholder: '项目类型', options: [],width:150}, { type: 4, fieldName: 'type', value: '', placeholder: '项目类型', options: [],width:150},
{ type: 1, fieldName: 'cgbl', value: '', placeholder: '持股比例', options: [],width:110}, { type: 1, fieldName: 'cgbl', value: '', placeholder: '持股比例', options: [],width:110},
{ type: 1, fieldName: 'year', value: '', placeholder: '年份', options: [],width:80},
], ],
cgblList: [ cgblList: [
{name:'100%',value:'100%'}, {name:'100%',value:'100%'},
...@@ -77,10 +286,27 @@ ...@@ -77,10 +286,27 @@
{name:'5%以上',value:'5%以上'}, {name:'5%以上',value:'5%以上'},
{name:'1%-5%',value:'1%-5%'}, {name:'1%-5%',value:'1%-5%'},
], ],
tableData:[],
lxtjList:[],
jeqjList:[],
xflList:[],
peojectTopData:[],
ndzbList:[],
yearOptions:[],
year1:'2023',
year2:'2023',
year3:'2023',
isSkeleton:true,
isSkeleton2:true,
isSkeleton3:true,
isSkeleton4:true,
isSkeleton5:true,
isSkeleton6:true,
} }
}, },
created() { created() {
this.formData[1].options=this.cgblList; this.formData[1].options=this.cgblList;
this.yearsData()
//项目类型 //项目类型
getDictType('project_type_new').then(result=>{ getDictType('project_type_new').then(result=>{
let data = result.code == 200 ? result.data:[]; let data = result.code == 200 ? result.data:[];
...@@ -93,21 +319,625 @@ ...@@ -93,21 +319,625 @@
} }
} }
}) })
this.handleQuery()
this.getBidByYear()
this.getGroupByMoney()
this.getGroupByType()
this.getGroupByLowerRate()
this.getPeojectTop()
}, },
methods: { methods: {
yearsData(){
let mydate=new Date();
let Year = mydate.getFullYear();
let startyear=mydate.getFullYear()-4;
let Years=[];
for(var i=startyear;i<=Year;i++){
Years.push({
name: i,
value: i,
})
}
this.yearOptions=Years.reverse()
this.formData[2].options=Years
},
handleQuery(params){
let data = params || this.queryParams;
if(data.cgbl){
if(data.cgbl === '100%'){
data.minStockPercent=1
}
if(data.cgbl === '50%以上'){
data.minStockPercent=0.5
}
if(data.cgbl === '20%以上'){
data.minStockPercent=0.2
}
if(data.cgbl === '5%以上'){
data.minStockPercent=0.05
}
if(data.cgbl === '1%-5%'){
data.minStockPercent=0.01
data.maxStockPercent=0.05
}
delete data.cgbl
}
if(data.year){
data.year=[data.year.toString()]
}
delete data.pageNum
recentlyBid(data).then(res=>{
this.isSkeleton = false
if(res.code === 200){
this.tableData = res.data;
}else {
this.tableData = []
}
})
},
getBidByYear(){
bidByYear({combineId:this.customerId}).then(res=>{
// this.isSkeleton = false
if(res.code === 200){
this.ndzbList=res.data;
if(res.data.length > 0){
this.initChart(res.data)
}
}
})
},
getGroupByMoney(){
let year=[this.year1.toString()]
groupByMoney({combineId:this.customerId,year:year}).then(res=>{
// this.isSkeleton = false
if(res.code === 200){
this.jeqjList=res.data;
var list=[];
for(var i=0;i<res.data.length;i++){
var obj={};
obj.name=res.data[i].rangeName;
obj.value=res.data[i].count;
list.push(obj)
}
if(res.data.length > 0){
this.initChart2(list)
}
}
})
},
getGroupByType(){
let year=[this.year2.toString()]
groupByType({combineId:this.customerId,year:year}).then(res=>{
// this.isSkeleton = false
if(res.code === 200){
this.lxtjList=res.data;
if(res.data.length > 0){
this.initChart3(res.data)
}
}
})
},
getGroupByLowerRate(){
let year=[this.year3.toString()]
groupByLowerRate({combineId:this.customerId,year:year}).then(res=>{
// this.isSkeleton = false
if(res.code === 200){
this.xflList=res.data;
if(res.data.length > 0){
this.initChart4(res.data)
}
}
})
},
getPeojectTop(params){
let data = params || this.queryParams1;
if(data.cgbl){
if(data.cgbl === '100%'){
data.minStockPercent=1
}
if(data.cgbl === '50%以上'){
data.minStockPercent=0.5
}
if(data.cgbl === '20%以上'){
data.minStockPercent=0.2
}
if(data.cgbl === '5%以上'){
data.minStockPercent=0.05
}
if(data.cgbl === '1%-5%'){
data.minStockPercent=0.01
data.maxStockPercent=0.05
}
delete data.cgbl
}
if(data.year){
data.year=[data.year.toString()]
}
delete data.pageNum
peojectTop(data).then(res=>{
this.isSkeleton6 = false
if(res.code === 200){
this.peojectTopData = res.data;
}else {
this.peojectTopData = []
}
})
},
handleSearch1(){
let params = this.formParams()
this.getPeojectTop(params)
},
changeSelect(){
},
initChart(data) {
this.$nextTick(()=>{
let myChart = echarts.init(document.getElementById("ndzb-echarts"))
let option ={
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
xAxis: {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
},
axisTick: false, //坐标轴刻度
axisPointer: {
type: 'shadow'
},
data: data.map(item => item.type),
},
yAxis: [
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
nameLocation: 'end',
nameTextStyle: {
padding: [0, 10, 0, -60], // 四个数字分别为上右下左与原位置距离
color: '#666666',
}
},
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
nameLocation: 'end',
nameTextStyle: {
padding: [0, 0, 0, 100], // 四个数字分别为上右下左与原位置距离
color: '#666666',
},
splitLine: {
show: true,
lineStyle: {
type: 'dashed',
color: ['#FFFFFF']
}
}
}
],
grid: {
top:30,
left:80,
right:130,
bottom:30,
},
series: [
{
name:'招标金额(万元)',
smooth: false, //平滑
type:"line",
symbolSize: 6,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '万元'
}
},
itemStyle: {
normal:{
color: '#14C9C9',
lineStyle: {
width:2
},
}
},
data:data.map(item => item.sum),
},
{
name:'招标数量',
type: 'bar',
barWidth: 20,
tooltip: {
valueFormatter: function (value) {
return value + '个';
}
},
itemStyle: {
normal:{
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#56A5FF'
}, {
offset: 1,
color: '#1B8EFF'
}]),
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
}
]
}
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
})
},
initChart2(data) {
this.$nextTick(() => {
let myChart = echarts.init(document.getElementById("fbje-echarts"))
let option ={
tooltip: {
trigger: 'item',
borderWidth:0,
backgroundColor:"rgba(255, 255, 255, 0.8)",
formatter: function (params) {
var result = ''
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.name +'</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.value +'个</p>'
return result;
},
extraCssText:'width:96px!important;',
},
legend: {
type: 'scroll',
orient: 'horizontal',
bottom: 0,
data: data,
itemHeight:8,
itemWidth:12,
pageButtonPosition: 'end',
},
color:['#6395F9', '#6ADCAE', '#6D7E9C','#F7C42D','#F78F2D'],
series: [
{
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
data: data,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
})
},
initChart3(data) {
this.$nextTick(()=>{
let myChart = echarts.init(document.getElementById("lxtj-echarts"))
let option ={
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
xAxis: {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
},
axisTick: false, //坐标轴刻度
axisPointer: {
type: 'shadow'
},
data: data.map(item => item.type),
},
yAxis: [
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
nameLocation: 'end',
nameTextStyle: {
padding: [0, 10, 0, -60], // 四个数字分别为上右下左与原位置距离
color: '#666666',
}
},
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
nameLocation: 'end',
nameTextStyle: {
padding: [0, 0, 0, 100], // 四个数字分别为上右下左与原位置距离
color: '#666666',
},
splitLine: {
show: true,
lineStyle: {
type: 'dashed',
color: ['#FFFFFF']
}
}
}
],
grid: {
top:30,
left:80,
right:130,
bottom:30,
},
series: [
{
name:'招标金额(万元)',
smooth: false, //平滑
type:"line",
symbolSize: 6,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '万元'
}
},
itemStyle: {
normal:{
color: '#14C9C9',
lineStyle: {
width:2
},
}
},
data:data.map(item => item.sum),
},
{
name:'招标数量',
type: 'bar',
barWidth: 20,
tooltip: {
valueFormatter: function (value) {
return value + '个';
}
},
itemStyle: {
normal:{
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#56A5FF'
}, {
offset: 1,
color: '#1B8EFF'
}]),
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
}
]
}
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
})
},
initChart4(data) {
this.$nextTick(()=>{
let myChart = echarts.init(document.getElementById("xfl-echarts"))
let option ={
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
xAxis: {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
},
axisTick: false, //坐标轴刻度
axisPointer: {
type: 'shadow'
},
data: data.map(item => item.type),
},
yAxis: [
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
nameLocation: 'end',
nameTextStyle: {
padding: [0, 10, 0, -60], // 四个数字分别为上右下左与原位置距离
color: '#666666',
}
},
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
},
nameLocation: 'end',
nameTextStyle: {
padding: [0, 0, 0, 100], // 四个数字分别为上右下左与原位置距离
color: '#666666',
},
splitLine: {
show: true,
lineStyle: {
type: 'dashed',
color: ['#FFFFFF']
}
}
}
],
grid: {
top:30,
left:80,
right:130,
bottom:30,
},
series: [
{
name:'下浮率区间',
smooth: false, //平滑
type:"line",
symbolSize: 6,
yAxisIndex: 1,
// tooltip: {
// valueFormatter: function (value) {
// return value + '万元'
// }
// },
itemStyle: {
normal:{
color: '#14C9C9',
lineStyle: {
width:2
},
}
},
data:data.map(item => item.lowerRate),
},
{
name:'招标数量',
type: 'bar',
barWidth: 20,
tooltip: {
valueFormatter: function (value) {
return value + '个';
}
},
itemStyle: {
normal:{
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#56A5FF'
}, {
offset: 1,
color: '#1B8EFF'
}]),
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
}
]
}
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
})
},
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.performance{ .performance{
height: calc(100% - 64px); /*height: calc(100% - 64px);*/
.content{ .content{
background: #ffffff; background: #ffffff;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
margin-bottom: 16px; margin-bottom: 16px;
min-height: 360px;
position: relative;
.check{
position: absolute;
right: 16px;
top:53px;
color: #0081FF;
font-size: 12px;
cursor: pointer;
i{
margin-left: 4px;
}
}
.year{
position: absolute;
right: 16px;
top:8px;
::v-deep .form-content-width{
.el-input__inner{
border: 0;
height: 30px;
line-height: 30px;
padding:5px 28px 5px 8px;
}
.el-input__icon{
line-height: 30px;
}
}
}
.table-item{
::v-deep .el-table{
.has-gutter{
tr{
th:nth-last-child(2){
border-right:0;
}
td:nth-last-child(2){
border-right:0;
}
}
}
.el-table__cell.gutter{
background: #F0F3FA;
}
.el-table__row{
td:last-child{
.cell{
padding-right: 12px !important;
}
}
}
}
}
.empty{
margin: 0 auto;
height: 300px;
text-align: center;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 70px;
}
.p1{
color: #333333;
font-size: 16px;
}
}
} }
} }
</style> </style>
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
import { getDictType } from '@/api/main' import { getDictType } from '@/api/main'
export default { export default {
name: 'qualifications', name: 'qualifications',
props: ['customerId','combineName'], props: ['customerId'],
mixins: [mixin], mixins: [mixin],
components:{CustomTimeSelect,CustomMoneySelect}, components:{CustomTimeSelect,CustomMoneySelect},
data(){ data(){
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
</el-tabs> </el-tabs>
</div> </div>
</div> </div>
<Zbxmfx v-if="activeName === 'first'"></Zbxmfx> <Zbxmfx v-if="activeName === 'first'" :customer-id="id"></Zbxmfx>
<Zbxmmx v-if="activeName === 'second'"></Zbxmmx> <Zbxmmx v-if="activeName === 'second'" :customer-id="id"></Zbxmmx>
</div> </div>
</template> </template>
...@@ -18,10 +18,12 @@ ...@@ -18,10 +18,12 @@
import Zbxmmx from './zbxmmx' import Zbxmmx from './zbxmmx'
export default { export default {
name: 'qualifications', name: 'qualifications',
props: ['customerId'],
components:{Zbxmfx,Zbxmmx}, components:{Zbxmfx,Zbxmmx},
data(){ data(){
return{ return{
activeName: 'first' activeName: 'first',
id:this.customerId
} }
}, },
created() { created() {
...@@ -37,7 +39,7 @@ ...@@ -37,7 +39,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.zhaobiao{ .zhaobiao{
height: 100%; /*height: 100%;*/
background: #F5F5F5; background: #F5F5F5;
.header{ .header{
justify-content: space-between; justify-content: space-between;
......
...@@ -279,10 +279,12 @@ export default { ...@@ -279,10 +279,12 @@ export default {
cityIds: [this.companyInfo.cityId], cityIds: [this.companyInfo.cityId],
}; };
urbanInvestmentPage(data).then(res => { urbanInvestmentPage(data).then(res => {
if (res.data.totalCount < 1) { if(res.code==200){
let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute)); if(res.data.totalCount<1){
arr[4].children[2].disabled = true; let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute))
this.$refs.sidebar.sideRoute = arr; arr[4].children[2].disabled = true;
this.$refs.sidebar.sideRoute = arr
}
} }
}); });
if (this.companyInfo && this.companyInfo.companyName) { if (this.companyInfo && this.companyInfo.companyName) {
......
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
</template> </template>
<script> <script>
import mixin from '../mixins/mixin'; import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'; import skeleton from '@/views/project/projectList/component/skeleton'
import { bidNoticeArea, bidNoticeTenderStage, bidNoticePage } from '@/api/detail/party-a/opport'; import {bidNoticeArea, bidNoticeTenderStage,bidNoticeProjectCategory, bidNoticePage} from '@/api/detail/party-a/opport'
export default { export default {
name: 'Announcement', name: 'Announcement',
props: ['companyId'], props: ['companyId'],
...@@ -43,6 +43,7 @@ export default { ...@@ -43,6 +43,7 @@ export default {
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true, fixed: true}, {label: '项目名称', prop: 'projectName', minWidth: '300', slot: true, fixed: true},
{label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120'}, {label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120'},
{label: '预算金额(万元)', prop: 'projectAmount', sortable: 'custom', descending: '1', ascending: '2', width: '140'}, {label: '预算金额(万元)', prop: 'projectAmount', sortable: 'custom', descending: '1', ascending: '2', width: '140'},
{label: '项目类型', prop: 'projectCategory', width: '110'},
{label: '项目地区', prop: 'province', width: '120', slot: true}, {label: '项目地区', prop: 'province', width: '120', slot: true},
{label: '招标阶段', prop: 'tenderStage', width: '90'}, {label: '招标阶段', prop: 'tenderStage', width: '90'},
{label: '招采单位联系人', prop: 'contact', width: '120'}, {label: '招采单位联系人', prop: 'contact', width: '120'},
...@@ -53,9 +54,10 @@ export default { ...@@ -53,9 +54,10 @@ export default {
{label: '报名截止日期', prop: 'overTime', width: '110'} {label: '报名截止日期', prop: 'overTime', width: '110'}
], ],
formData: [ formData: [
{ type: 7, fieldName: 'province', value: '', props: { multiple: true }, placeholder: '项目地区', options: [], uid: this.getUid() }, { type: 7, fieldName: 'province', value: '',props: {multiple: true}, placeholder: '项目地区', options: []},
{ type: 4, fieldName: 'tenderStage', value: '', placeholder: '项目类型', options: [], uid: this.getUid() }, { type: 4, fieldName: 'projectCategory', value: '', placeholder: '项目类型', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: [], uid: this.getUid() } { type: 4, fieldName: 'tenderStage', value: '', placeholder: '招标阶段', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []}
], ],
//列表 //列表
tableLoading: false, tableLoading: false,
...@@ -70,82 +72,90 @@ export default { ...@@ -70,82 +72,90 @@ export default {
this.handleQuery(); this.handleQuery();
}, },
methods: { methods: {
async handleOption() { async handleOption(){
let [area, tender] = await Promise.all([ let [area, tender,project] = await Promise.all([
bidNoticeArea({ cid: this.companyId }), bidNoticeArea({cid: this.companyId}),
bidNoticeTenderStage({ cid: this.companyId }) bidNoticeTenderStage({cid: this.companyId}),
]); bidNoticeProjectCategory({cid: this.companyId}),
if (area.code == 200) { ])
if(area.code==200){
let region = area.data.map(item => { let region = area.data.map(item => {
let province = { label: item.province + '(' + item.count + ')', value: item.provinceId }; let province = {label:item.province+'('+item.count+')',value:item.provinceId}
if (item.citys && item.citys.length > 0) { if(item.citys&&item.citys.length>0){
let city = [], citem = {}; let city = [], citem = {}
for (let i = 0; i < item.citys.length; i++) { for(let i=0;i<item.citys.length;i++){
citem = { label: item.citys[i].city, value: item.citys[i].cityId }; citem = {label:item.citys[i].city, value:item.citys[i].cityId}
if (item.citys[i].areas && item.citys[i].areas.length > 0) { if(item.citys[i].areas&&item.citys[i].areas.length>0){
let area = [], aitem = {}; let area = [], aitem = {}
for (let j = 0; j < item.citys[i].areas.length; j++) { for(let j=0;j<item.citys[i].areas.length;j++){
aitem = { label: item.citys[i].areas[j].area, value: item.citys[i].areas[j].areaId }; aitem = {label:item.citys[i].areas[j].area, value:item.citys[i].areas[j].areaId}
area.push(aitem); area.push(aitem)
citem.children = area; citem.children = area
} }
} }
city.push(citem); city.push(citem)
} }
city.length > 0 ? province.children = city : ''; city.length>0 ? province.children = city : ''
} }
return province; return province
}); })
this.setFormData('province', region); this.setFormData('province', region)
} }
if (tender.code == 200) { if(tender.code==200){
let tenderStage = tender.data.map(item => { let tenderStage = tender.data.map(item => {
let it = { name: item.tenderStage + '(' + item.count + ')', value: item.tenderStage }; let it = {name:item.tenderStage+'('+item.count+')',value:item.tenderStage}
return it; return it
}); })
this.setFormData('tenderStage', tenderStage); this.setFormData('tenderStage', tenderStage)
}
if(project.code==200){
let projectCategory = project.data.map(item => {
let it = {name:item.projectCategory+'('+item.count+')',value:item.projectCategory}
return it
})
this.setFormData('projectCategory', projectCategory)
} }
}, },
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true; this.tableLoading = true
let param = this.getAreaList(params || this.queryParams); let param = this.getAreaList(params || this.queryParams)
let res = await bidNoticePage(param); let res = await bidNoticePage(param)
this.tableLoading = false; this.tableLoading = false
if (res.code == 200) { if(res.code==200){
this.isSkeleton = false; this.isSkeleton = false;
this.tableData = res.rows; this.tableData = res.rows
} }
this.tableDataTotal = res.total; this.tableDataTotal = res.total
}, },
getAreaList(params) { getAreaList(params){
if (params.province && params.province.length > 0) { if(params.province&&params.province.length>0){
let arr = this.$refs.headForm.$refs.cascader[0].getCheckedNodes(); let arr = this.$refs.headForm.$refs.cascader[0].getCheckedNodes()
let provinceIds = [], cityIds = [], areaIds = []; let provinceIds = [], cityIds = [], areaIds = []
for (var i in arr) { for (var i in arr) {
if (arr[i].parent) { if (arr[i].parent) {
if (!arr[i].parent.checked) { if (!arr[i].parent.checked) {
if (arr[i].hasChildren || arr[i].level == 2) { if(arr[i].hasChildren || arr[i].level==2){
cityIds.push(arr[i].value); cityIds.push(arr[i].value)
} else { }else{
areaIds.push(arr[i].value); areaIds.push(arr[i].value)
} }
} }
} else { } else {
provinceIds.push(arr[i].value); provinceIds.push(arr[i].value)
} }
} }
delete params.province; delete params.province
provinceIds.length > 0 ? params.provinceIds = provinceIds : ''; provinceIds.length>0?params.provinceIds = provinceIds:''
cityIds.length > 0 ? params.cityIds = cityIds : ''; cityIds.length>0?params.cityIds = cityIds:''
areaIds.length > 0 ? params.areaIds = areaIds : ''; areaIds.length>0?params.areaIds = areaIds:''
} }
return params; return params
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.detail-container { .detail-container{
background: #ffffff; background: #ffffff;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
......
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