Commit 51540a12 authored by tanyang's avatar tanyang

Merge remote-tracking branch 'origin/V20230915'

# Conflicts:
#	dsk-operate-ui/src/views/radar/components/MajorProject/index.vue
parents 1fc81db2 9087fd0b
......@@ -77,7 +77,7 @@ public class CustomerController extends BaseController {
@PostMapping("/claim")
@RepeatSubmit
public R<Map<String, Object>> claim(@RequestBody Customer customer) {
if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空");
// if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空");
boolean add = baseService.add(customer);
if (add) {
Map<String, Object> map = new HashMap<>();
......
......@@ -82,17 +82,18 @@ public class CustomerServiceImpl implements ICustomerService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(Customer customer) {
dealWithcustomerData(customer);
customer.setUipId(enterpriseCommonService.getUipIdByCompanyNameOrCompanyId(customer.getCompanyName(), customer.getCompanyId()));
Long userId = LoginHelper.getUserId();
customer.setCreateId(userId);
customer.setUpdateId(userId);
customer.setTenantId(LoginHelper.getTenantId());
//查重
Customer verifyCustomer = baseMapper.selectByCompanyNameAndUserId(customer.getCompanyName(), userId);
if (!ObjectUtils.isEmpty(verifyCustomer)) {
throw new ServiceException("当前客户信息已存在,请勿重复添加!");
}
dealWithcustomerData(customer);
customer.setUipId(enterpriseCommonService.getUipIdByCompanyNameOrCompanyId(customer.getCompanyName(), customer.getCompanyId()));
customer.setCreateId(userId);
customer.setUpdateId(userId);
customer.setTenantId(LoginHelper.getTenantId());
int i = baseMapper.insert(customer);
if (i == 0) throw new ServiceException("客户信息添加错误!");
......
......@@ -74,11 +74,25 @@ public class EnterpriseProjectController {
return enterpriseProjectService.specialDebtPage(body);
}
/***
*@Description: 招标公告 分页列表
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
@PostMapping(value = "/bidNoticePage")
public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception {
return enterpriseProjectService.bidNoticePage(body);
}
/***
*@Description: 招标招采阶段
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/10/9 14:41
*/
@PostMapping(value = "/bidNoticeTenderStage")
public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
return enterpriseProjectService.bidNoticeTenderStage(body);
......@@ -89,6 +103,19 @@ public class EnterpriseProjectController {
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")
public R bidNoticeDetail(@RequestBody @Valid EnterpriseProjectBidNoticeDetailBody body) throws Exception {
return enterpriseProjectService.bidNoticeDetail(body);
......
......@@ -25,10 +25,15 @@ public class EnterpriseProjectBidNoticePageBody extends BasePage {
private String keys;
/**
* 类型
* 招标阶段
*/
private List<String> tenderStage;
/**
* 项目类型
*/
private List<String> projectCategory;
/*
* 1金额倒序,2金额正序,3时间倒序,4时间正序
*/
......
......@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
......@@ -14,12 +15,12 @@ import javax.validation.constraints.NotNull;
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectImportantListDto extends BasePage {
private Integer companyId;
private Integer cid;
private String keys;
private String projectLevel;
private String projectType;
private List<String> projectType;
}
......@@ -4,11 +4,13 @@ import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
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.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
......@@ -90,13 +93,52 @@ public class EnterpriseProjectService {
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 {
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 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);
}
public R bidNoticeTenderStage(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
if (body.isVaildCid()) return R.ok();
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false));
......@@ -110,6 +152,20 @@ public class EnterpriseProjectService {
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 {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false));
......@@ -221,7 +277,7 @@ public class EnterpriseProjectService {
}
public TableDataInfo importantList(EnterpriseProjectImportantListDto dto) throws Exception{
if(ObjectUtil.isEmpty(dto.getCompanyId())) throw new BeanException("企业id不能为空!");
if(ObjectUtil.isEmpty(dto.getCid())) throw new BeanException("企业id不能为空!");
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/importantList", BeanUtil.beanToMap(dto, false, false));
return dskOpenApiUtil.responsePage(map);
}
......
......@@ -131,6 +131,7 @@ public class EnterpriseService {
performance.put("specialDebt", MapUtils.getInteger(projectStatisticMapData, "specialDebt", 0));
performance.put("bidPlan", MapUtils.getInteger(projectStatisticMapData, "bidPlan", 0));
business.put("historySend", MapUtils.getInteger(projectStatisticMapData, "historySend", 0));
business.put("importantBusiness", MapUtils.getInteger(projectStatisticMapData, "importantBusiness", 0));
statisticMapData.put("performance", performance);
statisticMapData.put("business", business);
......
......@@ -53,4 +53,12 @@ public class CompanySearchController {
}
return opportunityRadarService.enterprisePage(object);
}
/*
* 查业主单位
*/
@RequestMapping("/bossCompany")
public AjaxResult bossCompany(@RequestBody JSONObject object) {
return opportunityRadarService.bossCompany(object);
}
}
......@@ -163,4 +163,42 @@ public class MarketAnalysisController extends BaseController {
public AjaxResult countGroupByMonth(@RequestBody JSONObject object) {
return marketAnalysisService.countGroupByMonth(object);
}
//-----------------------------------集团概览----------------------------------
//集团概览 集团施工项目最新招标
@RequestMapping("/combine/recentlyBid")
public AjaxResult combineRecentlyBid(@RequestBody JSONObject object){
return marketAnalysisService.combineRecentlyBid(object);
}
//集团概览 集团施工项目年度招标
@RequestMapping("/combine/bidByYear")
public AjaxResult combineBidByYear(@RequestBody JSONObject object){
return marketAnalysisService.combineBidByYear(object);
}
//集团概览 集团施工项目发包金额统计
@RequestMapping("/combine/groupByMoney")
public AjaxResult combineGroupByMoney(@RequestBody JSONObject object){
return marketAnalysisService.combineGroupByMoney(object);
}
//集团概览 集团施工项目发包类型统计
@RequestMapping("/combine/groupByType")
public AjaxResult combineGroupByType(@RequestBody JSONObject object){
return marketAnalysisService.combineGroupByType(object);
}
//集团概览 施工项目下浮率统计
@RequestMapping("/combine/groupByLowerRate")
public AjaxResult combineGroupByLowerRate(@RequestBody JSONObject object){
return marketAnalysisService.combineGroupByLowerRate(object);
}
//集团概览 历史发包项目金额Top10
@RequestMapping("/combine/peojectTop")
public AjaxResult combinePeojectTop(@RequestBody JSONObject object){
return marketAnalysisService.combinePeojectTop(object);
}
}
package com.dsk.search.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.biz.domain.vo.CustomerStatusListVo;
import com.dsk.biz.service.ICustomerService;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.StringUtils;
import com.dsk.jsk.domain.vo.ImportantProjectExportVo;
import com.dsk.jsk.service.EnterpriseService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -28,6 +37,12 @@ public class BusinessOpportunityRadarService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Autowired
ICustomerService iCustomerService;
@Autowired
private EnterpriseService enterpriseService;
public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
......@@ -68,6 +83,55 @@ public class BusinessOpportunityRadarService {
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bossCompany(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/bossCompany", object);
Integer code = MapUtils.getInteger(map, "code", 300);
if (200 != code) throw new RuntimeException();
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isEmpty(list)) {
return BeanUtil.toBean(map, AjaxResult.class);
}
ArrayList<String> companyNames = new ArrayList<>();
for (Object dataMap : list) {
String name = MapUtils.getString(CommonUtils.assertAsMap(dataMap), "name");
if (ObjectUtil.isNotEmpty(name) && name.contains("font")) {
name = name.replaceAll("<font color='#FF204E'>", "");
name = name.replaceAll("</font>", "");
companyNames.add(name);
} else {
companyNames.add(name);
}
}
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusListByCompanyName(companyNames);
for (Object enterprise : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(enterprise);
String companyName = MapUtils.getString(companyMap, "name", "");
if (ObjectUtil.isNotEmpty(companyName) && companyName.contains("font")) {
companyName = companyName.replace("<font color='#FF204E'>", "");
companyName = companyName.replace("</font>", "");
}
companyMap.put("claimStatus", null);
for (CustomerStatusListVo vo : claimStatusList) {
if (companyName.equals(vo.getCompanyName())) {
companyMap.put("claimStatus", vo.getStatus());
}
}
Integer jskEid = MapUtils.getInteger(companyMap, "jskEid");
companyMap.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, jskEid));
}
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseByName(String keyword) {
Map<String, Object> params = new HashMap<>();
params.put("keyword", keyword);
......@@ -140,8 +204,8 @@ public class BusinessOpportunityRadarService {
vo.setId(i + 1);
vo.setBuildingProjectType(MapUtil.getStr(list.get(i),"buildingProjectType"));
if (null!=list.get(i).get("projectName")){
if (null!=list.get(i).get("project_level")){
vo.setProjectName(MapUtil.getStr(list.get(i),"project_level").concat("-")+StringUtils.removeRed(MapUtil.getStr(list.get(i),"projectName")));
if (null!=list.get(i).get("projectLevel")){
vo.setProjectName(MapUtil.getStr(list.get(i),"projectLevel").concat("-")+StringUtils.removeRed(MapUtil.getStr(list.get(i),"projectName")));
}else {
vo.setProjectName(StringUtils.removeRed(MapUtil.getStr(list.get(i),"projectName")));
}
......
......@@ -4,9 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.service.EnterpriseService;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
/**
......@@ -20,6 +24,9 @@ public class MarketAnalysisService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Autowired
private EnterpriseService enterpriseService;
public AjaxResult areaGroupByProvince() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/areaGroupByProvince", new JSONObject());
return BeanUtil.toBean(map, AjaxResult.class);
......@@ -114,4 +121,66 @@ public class MarketAnalysisService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRangeTenderType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult combineRecentlyBid(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/combine/recentlyBid", object);
if (!ObjectUtils.isEmpty(map.get("data"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("data");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "tendereeId");
String companyName = MapUtils.getString(res, "tenderee");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
});
}
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult combineBidByYear(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/combine/bidByYear", object);
if (!ObjectUtils.isEmpty(map.get("data"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("data");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
});
}
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult combineGroupByMoney(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/combine/groupByMoney", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult combineGroupByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/combine/groupByType", object);
if (!ObjectUtils.isEmpty(map.get("data"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("data");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
});
}
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult combineGroupByLowerRate(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/combine/groupByLowerRate", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult combinePeojectTop(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/combine/peojectTop", object);
if (!ObjectUtils.isEmpty(map.get("data"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("data");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "projectUnitId");
String companyName = MapUtils.getString(res, "projectUnit");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
});
}
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -40,12 +40,14 @@
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "^3.32.2",
"dayjs": "^1.11.10",
"echarts": "^5.0.0",
"el-table-horizontal-scroll": "^1.2.5",
"element-resize-detector": "^1.2.4",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"gsap": "^3.12.2",
"highlight.js": "9.18.5",
"jquery": "^3.7.0",
"js-beautify": "1.13.0",
......@@ -56,6 +58,7 @@
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "^1.15.0",
"uuid": "^9.0.1",
"vue": "2.6.12",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
......
......@@ -92,3 +92,52 @@ export function exportBid(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
})
}
......@@ -6,15 +6,23 @@ export function bidNoticePage(data) {
url: '/enterpriseProject/bidNoticePage',
method: 'post',
data: data
})
});
}
// 招标公告招标类别
// 招标公告招标阶段
export function bidNoticeTenderStage(data) {
return request({
url: '/enterpriseProject/bidNoticeTenderStage',
method: 'post',
data: data
});
}
// 招标公告项目类别
export function bidNoticeProjectCategory(data) {
return request({
url: '/enterpriseProject/bidNoticeProjectCategory',
method: 'post',
data: data
})
}
......@@ -24,7 +32,7 @@ export function bidNoticeArea(data) {
url: '/enterpriseProject/bidNoticeArea',
method: 'post',
data: data
})
});
}
// 土地交易列表
......@@ -33,7 +41,7 @@ export function landTransactionPage(data) {
url: '/enterpriseProject/landTransactionPage',
method: 'post',
data: data
})
});
}
// 土地交易用途
......@@ -42,7 +50,7 @@ export function landUse(data) {
url: '/enterpriseProject/landUse',
method: 'post',
data: data
})
});
}
// 拟建项目列表
......@@ -51,7 +59,7 @@ export function approvalProjectPage(data) {
url: '/enterpriseProject/approvalProjectPage',
method: 'post',
data: data
})
});
}
// 标讯PRO招标公告列表
......@@ -60,7 +68,7 @@ export function bidNoticeProPage(data) {
url: '/enterpriseProject/bidNoticeProPage',
method: 'post',
data: data
})
});
}
// 标讯PRO招标公告项目类别
......@@ -69,7 +77,7 @@ export function bidNoticeProProjectType(data) {
url: '/enterpriseProject/bidNoticeProProjectType',
method: 'post',
data: data
})
});
}
// 标讯PRO招标公告工程类别
......@@ -78,7 +86,7 @@ export function bidNoticeProProjectPurposes(data) {
url: '/enterpriseProject/bidNoticeProProjectPurposes',
method: 'post',
data: data
})
});
}
// 标讯PRO招标公告评标办法
......@@ -87,7 +95,7 @@ export function bidNoticeProAssessmentWay(data) {
url: '/enterpriseProject/bidNoticeProAssessmentWay',
method: 'post',
data: data
})
});
}
// 行政许可列表
......@@ -96,7 +104,7 @@ export function creditXzxkPage(data) {
url: '/enterpriseProject/creditXzxkPage',
method: 'post',
data: data
})
});
}
// 专项债项目列表
......@@ -105,7 +113,7 @@ export function specialDebtProjectPage(data) {
url: '/enterpriseProject/specialDebtProjectPage',
method: 'post',
data: data
})
});
}
// 招标计划列表
......@@ -114,7 +122,7 @@ export function bidPlanPage(data) {
url: '/enterpriseProject/bidPlanPage',
method: 'post',
data: data
})
});
}
// 招标计划项目类型
export function bidPlanProjectType(data) {
......@@ -122,5 +130,12 @@ export function bidPlanProjectType(data) {
url: '/enterpriseProject/bidPlanProjectType',
method: 'post',
data: data
})
});
}
// 企业重点项目列表
export const getMajorProjectListApi = (data) => request({
url: "/enterpriseProject/importantList",
method: "post",
data
});
\ No newline at end of file
import request from '@/utils/request'
import request from '@/utils/request';
// 资质json数据
let aptitudeCode= function aptitudeCode(param) {
let aptitudeCode = function aptitudeCode(param) {
return request({
url: 'https://files.jiansheku.com/file/json/common/aptitudeCode.json',
method: 'get',
})
}
});
};
// 人员json数据
let personCert= function personCert(param) {
let personCert = function personCert(param) {
return request({
url: 'https://files.jiansheku.com/file/json/common/personCert.json',
method: 'get',
})
}
});
};
// 备案网站
let searchDic= function searchDic(param) {
let searchDic = function searchDic(param) {
return request({
url: 'https://files.jiansheku.com/file/json/common/searchDic.json',
method: 'get',
})
}
});
};
// 备案网站
let regionWebList= function regionWebList(param) {
let regionWebList = function regionWebList(param) {
return request({
url: '/nationzj/enterprice/regionWebList',
method: 'get',
})
}
});
};
// 地区
let region= function region(param) {
let region = function region(param) {
return request({
url: '/system/region/list/'+param,
url: '/system/region/list/' + param,
method: 'get',
})
}
});
};
// 查甲方选项
let uipGroupData= function uipGroupData(param) {
let uipGroupData = function uipGroupData(param) {
return request({
url: '/enterprise/uipGroupData',
method: 'post',
data: param
})
}
data: param
});
};
// 查甲方列表
let uipSerach= function uipSerach(param) {
let uipSerach = function uipSerach(param) {
return request({
url: '/enterprise/uipSerach',
method: 'post',
data: param
})
}
data: param
});
};
// 认领用户
let claim= function claim(param) {
let claim = function claim(param) {
return request({
url: '/customer/claim',
method: 'post',
data: param
})
}
data: param
});
};
// 取消认领用户
let cancelClaim= function cancelClaim(data) {
let cancelClaim = function cancelClaim(data) {
return request({
url: '/customer/cancelClaim/'+data,
url: '/customer/cancelClaim/' + data,
method: 'put',
// data: data
})
}
// data: data
});
};
// 历史认领用户
let historyClaim= function historyClaim(data) {
let historyClaim = function historyClaim(data) {
return request({
url: '/customer/historyClaim/'+data,
url: '/customer/historyClaim/' + data,
method: 'put',
// data: data
})
}
// data: data
});
};
// 客户状态
let customerStatus= function customerStatus(data) {
let customerStatus = function customerStatus(data) {
return request({
url: '/customer/status/'+data,
url: '/customer/status/' + data,
method: 'get',
// data: data
})
}
// data: data
});
};
// 查建筑企业
let enterprisePage= function enterprisePage(param) {
let enterprisePage = function enterprisePage(param) {
return request({
url: '/enterprise/page',
method: 'post',
data: param
})
}
data: param
});
};
// 甲方详情-公司概要
let infoHeader= function infoHeader(param) {
let infoHeader = function infoHeader(param) {
return request({
url: '/enterprise/infoHeader',
method: 'post',
data: param
})
}
data: param
});
};
// 搜索集团户
let searchCentralEnterprse= function searchCentralEnterprse(param) {
let searchCentralEnterprse = function searchCentralEnterprse(param) {
return request({
url: '/combine/info/index',
method: 'post',
data: param
})
}
data: param
});
};
// 央企
let centralEnterprse= function centralEnterprse(param) {
let centralEnterprse = function centralEnterprse(param) {
return request({
url: '/combine/info/centralEnterprse',
method: 'post',
data: param
})
}
data: param
});
};
// 央企子集团
let centralEnterprseChild= function centralEnterprseChild(param) {
let centralEnterprseChild = function centralEnterprseChild(param) {
return request({
url: '/combine/info/centralEnterprse/child',
method: 'post',
data: param
})
}
data: param
});
};
// 央企子集团更多
let centralEnterprseChildPage= function centralEnterprseChildPage(param) {
let centralEnterprseChildPage = function centralEnterprseChildPage(param) {
return request({
url: '/combine/info/centralEnterprse/child/page',
method: 'post',
data: param
})
}
data: param
});
};
// 地方国企
let centralEnterprselocal= function centralEnterprselocal(param) {
let centralEnterprselocal = function centralEnterprselocal(param) {
return request({
url: '/combine/info/centralEnterprse/local',
method: 'post',
data: param
})
}
data: param
});
};
// 地方国企更多
let centralEnterprselocalPage= function centralEnterprselocalPage(param) {
let centralEnterprselocalPage = function centralEnterprselocalPage(param) {
return request({
url: '/combine/info/centralEnterprse/local/page',
method: 'post',
data: param
})
}
data: param
});
};
// 其他集团
let centralEnterprsesocial= function centralEnterprsesocial(param) {
let centralEnterprsesocial = function centralEnterprsesocial(param) {
return request({
url: '/combine/info/centralEnterprse/social',
method: 'post',
data: param
})
}
data: param
});
};
// 其他集团更多
let centralEnterprsesocialPage= function centralEnterprsesocialPage(param) {
let centralEnterprsesocialPage = function centralEnterprsesocialPage(param) {
return request({
url: '/combine/info/centralEnterprse/social/page',
method: 'post',
data: param
})
}
data: param
});
};
//企业标签
let label= function label(param) {
let label = function label(param) {
return request({
url: '/enterprise/label',
method: 'post',
data: param
})
}
data: param
});
};
// 查业主单位
export const searchOwnerUnitListApi = (data) => request({
url: '/enterprise/bossCompany',
method: 'post',
data
});
export default {label,centralEnterprsesocialPage,centralEnterprselocalPage,centralEnterprseChildPage,centralEnterprsesocial,centralEnterprselocal,centralEnterprseChild,searchCentralEnterprse,centralEnterprse,region,aptitudeCode,personCert,searchDic,regionWebList,uipGroupData,uipSerach,claim,cancelClaim,enterprisePage,infoHeader,historyClaim,customerStatus}
export default { label, centralEnterprsesocialPage, centralEnterprselocalPage, centralEnterprseChildPage, centralEnterprsesocial, centralEnterprselocal, centralEnterprseChild, searchCentralEnterprse, centralEnterprse, region, aptitudeCode, personCert, searchDic, regionWebList, uipGroupData, uipSerach, claim, cancelClaim, enterprisePage, infoHeader, historyClaim, customerStatus, searchOwnerUnitListApi };
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_1326_147842/1262_137253"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_1326_147842/1262_137253)"><g><path d="M10.551783125,3.9530996875C8.729353125,2.1306496875,5.774553125,2.1306496875,3.952123125,3.9530996875C2.129673125,5.7755296875,2.129673125,8.7303296875,3.952123125,10.5527596875C5.774553125,12.3752296875,8.729353125,12.3752296875,10.551783125,10.5527596875C12.374253125,8.7303296875,12.374253125,5.7755296875,10.551783125,3.9530996875C10.551783125,3.9530996875,10.551783125,3.9530996875,10.551783125,3.9530996875ZM3.0093131250000003,3.0102896875000003C5.352453125,0.6671426875,9.151453125,0.6671426875,11.494553125,3.0102896875000003C13.678353125,5.1940996875,13.826953125,8.6424596875,11.940153125,10.9982596875C11.940153125,10.9982596875,14.323053125,13.3812296875,14.323053125,13.3812296875C14.323053125,13.3812296875,13.380253125,14.3240296875,13.380253125,14.3240296875C13.380253125,14.3240296875,10.997283125,11.9411296875,10.997283125,11.9411296875C8.641483125,13.8279296875,5.193123125,13.6793296875,3.0093131250000003,11.4955296875C0.666166125,9.1524296875,0.666166125,5.3534296875,3.0093131250000003,3.0102896875000003C3.0093131250000003,3.0102896875000003,3.0093131250000003,3.0102896875000003,3.0093131250000003,3.0102896875000003Z" fill-rule="evenodd" fill="#0081FF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
......@@ -3,87 +3,87 @@
* 1、url地址,如正式环境企业详情:https://plug.jiansheku.com/enterprise/56546856314e567a69?ak=bc8e534da5ea40639b2f084919280a82&initTime=1694507179060&uid=4a3b4bfdfbca4bff9d9bd7c8fd42f533(ak:接口获得的accesToken;initTime:获得accesToken时的时间戳;uid:用户标识)
*
* */
const steerScroll = function(iframeId, navigation, footHeight, state, parentId, _this) { // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
let dom = window
const steerScroll = function (iframeId, navigation, footHeight, state, parentId, _this) { // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
let dom = window;
if (parentId) { // 默认页面可以滚动
dom = document.getElementById(parentId)
dom = document.getElementById(parentId);
if (!dom) {
return
return;
}
dom.style.overflow = 'auto'
dom.style.overflow = 'auto';
} else {
document.body.style.overflow = 'visible'
document.body.style.overflow = 'visible';
}
if (state) {
window.addEventListener('message', function(e) {
const data = e.data
const sct = parentId ? dom.scrollTop : document && document.documentElement.scrollTop || document && document.body.scrollTop
window.addEventListener('message', function (e) {
const data = e.data;
const sct = parentId ? dom.scrollTop : document && document.documentElement.scrollTop || document && document.body.scrollTop;
if (data && typeof data === 'object') {
// 动态设置iFrame高度
if (data.height) {
document.getElementById(iframeId).style.height = data.height + 'px'
scrolling(iframeId, navigation, footHeight, parentId) // 初始加载获取滚动条距离顶部高度
document.getElementById(iframeId).style.height = data.height + 'px';
scrolling(iframeId, navigation, footHeight, parentId); // 初始加载获取滚动条距离顶部高度
}
// 插件当前路由
if (_this && data.currentPath) {
_this.currentRoute = data
_this.searchFlag = data.currentName.includes('search-') ? true : false
_this.currentRoute = data;
_this.searchFlag = data.currentName.includes('search-') ? true : false;
}
// 点击企业详情页 栏目名动态设置滚动高度
if (data.scrollHeight) {
const navHeight = navigation.isFixed && !parentId ? navigation.totalHeight - navigation.fixedHeight : !parentId ? navigation.totalHeight : 0
dom.scrollTo(sct, parseInt(data.scrollHeight) + navHeight)
const navHeight = navigation.isFixed && !parentId ? navigation.totalHeight - navigation.fixedHeight : !parentId ? navigation.totalHeight : 0;
dom.scrollTo(sct, parseInt(data.scrollHeight) + navHeight);
}
// 点击企业详情页 栏目下拉子标签动态设置滚动高度
if (data.clientHeight) {
dom.scrollTo(sct, sct - parseInt(data.clientHeight))
dom.scrollTo(sct, sct - parseInt(data.clientHeight));
}
// 点击下拉子标签动态设置滚动高度
if (data.initHeight >= 0) {
dom.scrollTo(sct, data.initHeight)
dom.scrollTo(sct, data.initHeight);
}
// 根据子页面弹窗显示隐藏控制当前页面是否固定不可滚动
if (data.scrollDisabled || data.scrollDisabled === false) {
if (parentId) {
dom.style.overflow = data.scrollDisabled ? 'hidden' : 'auto'
dom.style.overflow = data.scrollDisabled ? 'hidden' : 'auto';
} else {
document.body.style.overflow = data.scrollDisabled ? 'hidden' : 'visible'
document.body.style.overflow = data.scrollDisabled ? 'hidden' : 'visible';
}
}
}
})
});
dom.addEventListener('scroll', (event) => {
scrolling(iframeId, navigation, footHeight, parentId)
})
scrolling(iframeId, navigation, footHeight, parentId);
});
} else {
dom.removeEventListener('scroll', (event) => {
scrolling(iframeId, navigation, footHeight, parentId)
})
scrolling(iframeId, navigation, footHeight, parentId);
});
}
}
};
const scrolling = function(iframeId, navigation, footHeight, parentId) {
const scrolling = function (iframeId, navigation, footHeight, parentId) {
// 滚动条距文档顶部的距离
let scrollTop = parentId ? document.getElementById(parentId).scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
let scrollTop = parentId ? document.getElementById(parentId).scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
// 将滚动距离传入子组件
const ifa = document.getElementById(iframeId)
scrollTop = scrollTop + navigation.totalHeight
let rippleHeight = 0 //插件筛选条件浮动层距离底部距离
let scrollGap = parentId ? document.getElementById(parentId).scrollTop : window.scrollTop || document.body.scrollTop || document.documentElement.scrollTop
let scrollHeight = parentId ? document.getElementById(parentId).offsetHeight : window.scrollHeight || document.body.scrollHeight || document.documentElement.scrollHeight
let domHeight = parentId ? document.getElementById(parentId).clientHeight : window.clientHeight || document.body.clientHeight || document.documentElement.clientHeight
if(parentId){ //网页内部嵌套时
rippleHeight = scrollHeight-scrollGap-domHeight
}else{ //
if(scrollHeight-scrollGap-domHeight <= footHeight){
rippleHeight = 0
}else{
rippleHeight = scrollHeight-scrollGap-domHeight - footHeight
const ifa = document.getElementById(iframeId);
scrollTop = scrollTop + navigation.totalHeight;
let rippleHeight = 0; //插件筛选条件浮动层距离底部距离
let scrollGap = parentId ? document.getElementById(parentId).scrollTop : window.scrollTop || document.body.scrollTop || document.documentElement.scrollTop;
let scrollHeight = parentId ? document.getElementById(parentId).offsetHeight : window.scrollHeight || document.body.scrollHeight || document.documentElement.scrollHeight;
let domHeight = parentId ? document.getElementById(parentId).clientHeight : window.clientHeight || document.body.clientHeight || document.documentElement.clientHeight;
if (parentId) { //网页内部嵌套时
rippleHeight = scrollHeight - scrollGap - domHeight;
} else { //
if (scrollHeight - scrollGap - domHeight <= footHeight) {
rippleHeight = 0;
} else {
rippleHeight = scrollHeight - scrollGap - domHeight - footHeight;
}
}
ifa.contentWindow.postMessage({ 'scrollTop': scrollTop, 'navHeight': navigation.totalHeight, 'rippleHeight': rippleHeight }, '*')
}
ifa ? ifa.contentWindow.postMessage({ 'scrollTop': scrollTop, 'navHeight': navigation.totalHeight, 'rippleHeight': rippleHeight }, '*') : null;
};
export {
steerScroll
}
};
.search-enter-active,
.search-leave-active {
width: 242px;
transition: width 0.5s;
}
.search-enter,
.search-leave-to {
width: 60px;
}
......@@ -228,9 +228,12 @@ ul, li {
border-color: #D9D9D9;
color: #232323;
&::placeholder {
color: rgba(35,35,35,0.5);
color: rgba(35,35,35,0.4);
}
}
.el-input__inner::placeholder{
color: rgba(35,35,35,0.8) !important;
}
.el-select .el-input .el-select__caret{
color: #232323;
}
......@@ -250,7 +253,7 @@ ul, li {
}
.query-params {
.form-content-width {
width: 160px;
//width: 160px;
}
.el-form{
&.el-form--inline .el-form-item{
......@@ -336,7 +339,7 @@ ul, li {
.el-table__header-wrapper{
th{
background: #F0F3FA;
text-align: left;
// text-align: left;
}
}
.el-table__fixed-header-wrapper{
......@@ -345,7 +348,10 @@ ul, li {
}
}
.is-scrolling-left+.el-table__fixed,.is-scrolling-middle+.el-table__fixed,.is-scrolling-right+.el-table__fixed{
box-shadow:none;
//box-shadow:none;
//-webkit-box-shadow: 2px 0px 1px -2px #C3CBD5;
box-shadow: 2px 0 8px -7px #202020;
//border-right: 1px solid #C3CBD5;
height: auto !important;
bottom: 16px !important;
}
......@@ -625,7 +631,7 @@ ul, li {
line-height: 32px;
}
&:hover{
color: #f;
color: #006AD1;
border-color: #006AD1;
}
}
......@@ -721,6 +727,29 @@ ul, li {
}
}
}
//无边框搜索框
.newSearch{
width: 238px;
height: 32px;
border-radius: 4px;
.el_input{
height: 32px !important;
}
.el-input__prefix{
left: 12px;
.el-input__icon{
img{
float: left;
margin-top: 7px;
}
}
}
.el-input__inner{
padding-left: 36px;
border-color: #fff !important;
height: 32px !important;
}
}
//导出EXCEL
.btn-export{
display: inline-block;
......@@ -766,3 +795,21 @@ ul, li {
box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12);
-webkit-box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12);
}
//下拉选项样式
.el-select-dropdown {
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
border: 0;
.el-select-dropdown__list {
padding: 0;
.el-select-dropdown__item {
padding: 0 16px;
}
}
}
.min1370{
min-width: 1370px;
}
......@@ -393,6 +393,9 @@
}
}
}
a:hover, a:visited, a:link, a:active{
color: #0081FF;
}
}
//弹出层样式
.popups{
......@@ -836,19 +839,27 @@
}
//资料文档、相关企业
.searchbtns{
display: flex;
position: absolute;
right: 16px;
left: 100px;
top: 17px;
width: calc(100% - 116px);
.searchInput, .el-select {
float: left;
}
.btn{
float: right;
}
.searchInput{
position: relative;
&.small{
border: 1px solid #d9d9d9;
border: 1px solid #fff;
width: 240px;
.el-input{
width: 180px;
//width: 180px;
}
.el-input__inner{
padding-right: 32px;
//padding-right: 32px;
}
.el-input__prefix{
left: 8px;
......@@ -868,19 +879,25 @@
border-radius: 2px;
}
.select{
width: 110px;
width: 94px;
.el-input__inner{
width: 110px;
//width: 110px;
height: 32px;
background: #FFFFFF;
border-radius: 2px;
border: 1px solid #D9D9D9;
border-radius: 4px;
border: 0;
padding:5px 28px 5px 8px;
}
.el-input--medium .el-input__icon{
line-height: 32px;
}
margin-right: 10px;
.is-focus{
.el-input__inner{
background: #F4F6F9;
}
}
}
}
.document{
......@@ -1273,3 +1290,6 @@
}
}
}
.top12{
margin-top: 12px;
}
......@@ -441,14 +441,15 @@ select {
.toolbar-right-download {
padding: 6px 18px;
padding: 6px 16px;
position: relative;
top: 1px;
margin: 0px;
cursor: pointer;
font-weight: 400;
color: #232323;
background: #FFFFFF;
border-radius: 2px;
border: 1px solid #D9D9D9;
text-align: center;
font-size: 14px;
font-weight: 400;
......
::v-deep .head-form-new {
margin-bottom: 8px;
.query-box {
.from-item {
display: flex;
align-items: center;
height: 32px;
}
// 下拉选择
.el-cascader,
.el-select {
max-width: unset !important;
//width: 64px;
padding: 0px 16px;
transition: width 0.3s;
box-sizing: border-box;
cursor: pointer;
.el-cascader__tags,
.el-select__tags {
flex-wrap: nowrap;
.el-tag:first-child {
width: auto;
}
}
.el-cascader__tags {
.el-tag {
max-width: unset !important;
}
}
.el-input {
display: flex;
align-items: center;
.el-input__inner {
padding: 0px;
border: none;
height: 30px;
line-height: 30px;
box-sizing: border-box;
&::placeholder {
color: rgba(35, 35, 35, 0.8) !important;
font-size: 14px !important;
}
}
& > .el-input__suffix {
margin-left: 8px;
position: unset;
.el-input__suffix-inner {
i {
font-size: 12px;
line-height: 30px;
width: auto;
color: rgba(35, 35, 35, 0.4);
}
}
}
}
// hover状态
&:hover {
background: #f4f6f9;
border-radius: 4px;
.el-input {
.el-input__inner {
background: #f4f6f9;
&::placeholder {
color: #232323 !important;
}
}
.el-input__suffix {
.el-input__suffix-inner {
i {
color: #232323;
}
}
}
}
}
}
// 自定义事件选择 金额选择
.custom-select {
height: 32px;
transition: width 0.3s;
cursor: pointer;
padding: 0px 16px;
.block {
& > .el-input {
display: flex;
align-items: center;
& > input {
padding: 0px;
border: none;
height: 30px;
line-height: 30px;
box-sizing: border-box;
cursor: pointer;
&::placeholder {
color: rgba(35, 35, 35, 0.8) !important;
font-size: 14px !important;
}
}
& > .el-input__suffix {
margin-left: 8px;
position: unset;
width: auto;
.el-input__suffix-inner {
span,
i {
font-size: 12px;
line-height: 30px;
width: auto;
color: rgba(35, 35, 35, 0.4);
}
}
}
}
}
.options-block {
.option {
&:hover {
color: #0381fa;
}
}
}
// hover状态
&:hover {
background: #f4f6f9;
border-radius: 4px;
.block {
& > .el-input {
.el-input__inner {
background: #f4f6f9;
&::placeholder {
color: #232323 !important;
}
}
& > .el-input__suffix {
.el-input__suffix-inner {
span,
i {
color: #232323;
}
}
}
}
}
}
}
// 时间选择器
.el-date-editor {
height: 32px;
line-height: 32px;
padding-right: 5px;
}
// 企业搜索框
.enterprise-search-container {
height: 32px;
line-height: 32px;
border-radius: 4px;
.el-input__inner {
height: 30px;
line-height: 30px;
}
& > span {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
height: 30px;
line-height: 30px;
}
&.span-ba {
& > span {
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
}
.el-input__suffix {
right: 0px;
.el-input__icon {
display: flex;
align-items: center;
}
}
}
}
}
......@@ -2,7 +2,7 @@
<div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}">
<div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
<sidebar v-if="!sidebar.hide" class="sidebar-container" @handleBar="handleSideBar" id="sidebar"/>
<div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide,EnterpriseData:$route.name=='Group',width1350:$route.name=='Radar',width1240:$route.name=='Overview'}" class="main-container">
<div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide,width1350:$route.name=='Radar'||$route.name=='Group',width1240:$route.name=='Overview'}" class="main-container">
<div :class="{'fixed-header':fixedHeader}" style="position: relative;z-index: 1000;">
<navbar :offsetWidth="offsetWidth"/>
</div>
......@@ -133,9 +133,6 @@ export default {
.mobile .fixed-header {
width: 100%;
}
.EnterpriseData{
min-width: 1710px;
}
.width1350{
min-width: 1350px;
}
......
import Vue from 'vue'
import Vue from 'vue';
import Cookies from 'js-cookie'
import Cookies from 'js-cookie';
import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import Element from 'element-ui';
import './assets/styles/element-variables.scss';
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App'
import store from './store'
import router from './router'
import directive from './directive' // directive
import plugins from './plugins' // plugins
import { download } from '@/utils/request'
import horizontalScroll from 'el-table-horizontal-scroll'
import "@/assets/styles/common.css";
import '@/assets/styles/index.scss'; // global css
import '@/assets/styles/ruoyi.scss'; // ruoyi css
import App from './App';
import store from './store';
import router from './router';
import directive from './directive'; // directive
import plugins from './plugins'; // plugins
import { download } from '@/utils/request';
import horizontalScroll from 'el-table-horizontal-scroll';
import './assets/icons' // icon
import './permission' // permission control
import './assets/icons'; // icon
import './permission'; // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 分页组件
import Pagination from "@/components/Pagination";
// 自定义表格工具组件
import RightToolbar from "@/components/RightToolbar"
import RightToolbar from "@/components/RightToolbar";
// 富文本组件
import Editor from "@/components/Editor"
import Editor from "@/components/Editor";
// 文件上传组件
import FileUpload from "@/components/FileUpload"
import FileUpload from "@/components/FileUpload";
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
import ImageUpload from "@/components/ImageUpload";
// 图片预览组件
import ImagePreview from "@/components/ImagePreview"
import ImagePreview from "@/components/ImagePreview";
// 字典标签组件
import DictTag from '@/components/DictTag'
import DictTag from '@/components/DictTag';
// 头部标签组件
import VueMeta from 'vue-meta'
import VueMeta from 'vue-meta';
// 字典数据组件
import DictData from '@/components/DictData'
import DictData from '@/components/DictData';
// 全局方法挂载
Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
Vue.prototype.getDicts = getDicts;
Vue.prototype.getConfigKey = getConfigKey;
Vue.prototype.parseTime = parseTime;
Vue.prototype.resetForm = resetForm;
Vue.prototype.addDateRange = addDateRange;
Vue.prototype.selectDictLabel = selectDictLabel;
Vue.prototype.selectDictLabels = selectDictLabels;
Vue.prototype.download = download;
Vue.prototype.handleTree = handleTree;
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
Vue.component('Editor', Editor)
Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
Vue.component('DictTag', DictTag);
Vue.component('Pagination', Pagination);
Vue.component('RightToolbar', RightToolbar);
Vue.component('Editor', Editor);
Vue.component('FileUpload', FileUpload);
Vue.component('ImageUpload', ImageUpload);
Vue.component('ImagePreview', ImagePreview);
Vue.use(horizontalScroll)
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
DictData.install()
Vue.use(horizontalScroll);
Vue.use(directive);
Vue.use(plugins);
Vue.use(VueMeta);
DictData.install();
/**
* If you don't want to use mock-server
......@@ -76,13 +77,13 @@ DictData.install()
Vue.use(Element, {
size: Cookies.get('size') || 'medium' // set element-ui default size
})
});
Vue.config.productionTip = false
Vue.config.productionTip = false;
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
});
......@@ -70,7 +70,7 @@ export const constantRoutes = [
path: 'index',
component: () => import('@/views/index'),
name: 'Index',
meta: { title: '首页', icon: 'index',noCache: true }
meta: { title: '首页', icon: 'index',noCache: false }
}
]
},
......@@ -209,7 +209,7 @@ export const constantRoutes = [
children: [
{
path: '/biddetail/:id(\\d+)',
component: () => import('@/views/detail//biddetail/index'),
component: () => import('@/views/detail/biddetail/index'),
name: 'Biddetail',
meta: { title: '中标业绩详情',icon: 'enterprise'}
}
......
This diff is collapsed.
......@@ -242,7 +242,11 @@ export default {
width: 120px;
height: 34px;
position: relative;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block {
margin: 0;
width: 100%;
......@@ -256,6 +260,9 @@ export default {
>.custom-money-input.el-input {
width: 100%;
height: 100%;
.el-input__inner{
border: 0;
}
>input {
width: 100%;
height: 100%;
......@@ -290,10 +297,9 @@ export default {
font-size: 14px;
color: #666666;
background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px;
z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
// .arrow {
......
......@@ -248,6 +248,11 @@ export default {
width: 120px;
height: 34px;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block {
width: 100%;
height: 100%;
......@@ -261,6 +266,9 @@ export default {
>.custom-time-input.el-input {
width: 100%;
height: 100%;
.el-input__inner{
border: 0;
}
>input {
width: 100%;
height: 100%;
......@@ -295,10 +303,9 @@ export default {
font-size: 14px;
color: #666666;
background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px;
z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
.option {
padding: 0 24px 0 16px;
......
......@@ -9,16 +9,17 @@
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
<div class="table_search">
<div class="searchInput">
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
<div class="newSearch">
<el-input type="text" v-model="searchParam.companyName" clearable placeholder="输入企业名称查询" @change="clearname" >
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" width="16px" @click="handleCurrentChange(1)"></i>
</el-input>
</div>
<div class="dc">
<div class="total">{{tableData.total}}</div>
</div>
</div>
<skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="hover" max-height="640"
<el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="tableData.total > 10 ? 'hover' : 'false'" max-height="640"
:data="tableData.rows"
stripe border
style="width: 100%">
......
......@@ -118,8 +118,8 @@
自定义
<el-date-picker
ref="picker"
v-if="datatype ==3"
:default-value="defaultValue"
style="position: absolute;opacity: 0;left: -12px;width: 60px;"
v-model="pickerValue"
type="daterange"
range-separator="至"
......@@ -507,10 +507,10 @@
}
this.datatype=key;
if(value == '自定义') {
// this.$refs.picker && this.$refs.picker.length && this.$refs.picker[0].focus()
// this.$nextTick(() => {
this.$refs.picker && this.$refs.picker.length && this.$refs.picker[0].focus()
this.$nextTick(() => {
// this.$refs['picker-block'].appendChild(this.$refs.picker[0].popperElm)
// })
})
}else {
this.pickerValue = []
let timeStr = []
......@@ -601,7 +601,7 @@
padding: 16px;
background: #ffffff;
height: 152px;
margin-bottom: 22px;
margin-bottom: 12px;
.item{
display: flex;
.icons{
......@@ -680,6 +680,9 @@
.el-input-group__append{
background: #F5F5F5;
color: #0081FF;
padding: 0;
width: 70px;
text-align: center;
}
.el-input__inner:focus{
border-color: #3181fa;
......@@ -856,8 +859,8 @@
.time-label{
.labels{
width: 240px;
height: 32px;
line-height: 32px;
height: 30px;
line-height: 30px;
border-radius: 4px;
>div{
height: 100%;
......@@ -885,12 +888,7 @@
}
}
}
::v-deep .el-date-editor{
width: 320px;
position: absolute;
right: 250px;
height: 32px;
}
::v-deep .picker-block {
position: relative;
......@@ -901,6 +899,14 @@
visibility:hidden;
clear:both;
}
.el-picker-panel.el-date-range-picker.el-popper {
left: -650px !important;
}
.popper__arrow {
left: 30px !important;
}
}
}
}
......
<template>
<div class="members">
<head-form
<head-form-new
ref="headForm"
title="集团成员"
:form-data="formData"
:query-params="queryParams"
......@@ -44,7 +45,7 @@
</div>
</div>
</template>
</head-form>
</head-form-new>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-if="!isSkeleton"
......@@ -101,12 +102,12 @@
{label: '企业地区', prop: 'address', minWidth: '200'},
],
formData: [
{ 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: '输入关键词查询'},
{ type: 4, fieldName: 'combineMemberLevels', value: '', placeholder: '成员层级', options:[], uid: this.getUid()},
{ type: 1, fieldName: 'businessType', value: '', placeholder: '主营业务', options:[], uid: this.getUid()},
{ type: 7, fieldName: 'province', value: '',props: {multiple: true,value: 'id',expandTrigger: 'hover'}, placeholder: '地区', options:[], uid: this.getUid()},
{ type: 6, fieldName: 'money', value: '', placeholder: '注册资本', startMoney: 'minAmount', endMoney: 'maxAmount',moneyList:[], uid: this.getUid() },
{ type: 0, fieldName: 'penalizeReasonType', value: '', placeholder: '筛选', options: [], uid: this.getUid()},
{ type: 3, fieldName: 'searchValue', value: '', placeholder: '输入关键词查询', uid: this.getUid()},
],
cycj:[
{
......@@ -395,9 +396,6 @@
provinceIds.length>0?params.provinceIds = provinceIds:''
cityIds.length>0?params.cityIds = cityIds:''
districtIds.length>0?params.districtIds = districtIds:''
// provinceIds.length>0?this.queryParams.provinceIds = provinceIds:''
// cityIds.length>0?this.queryParams.cityIds = cityIds:''
// districtIds.length>0?this.queryParams.districtIds = districtIds:''
}
return params
},
......@@ -450,8 +448,8 @@
.search-box {
display: inline-block;
border-radius: 4px;
border: 1px solid #D9D9D9;
width: 82px;
/*border: 1px solid #D9D9D9;*/
width: 70px;
/*cursor: pointer;*/
position: relative;
.search-box-t {
......@@ -461,7 +459,7 @@
color: #999999;
margin-right: 8px;
text-align: center;
width: 82px;
width: 70px;
display: inline-block;
cursor: pointer;
i {
......@@ -479,7 +477,7 @@
background: #ffffff;
box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.1);
border-radius: 4px;
width: 640px;
width: 500px;
//height: 337px;
padding: 16px;
position: absolute;
......@@ -501,7 +499,7 @@
}
.item_ckquery{
position: relative;
width: 520px;
width: 400px;
/*float: left;*/
/*flex: 1;*/
span{
......@@ -551,5 +549,6 @@
font-size: 14px;
color:#232323 !important;
}
@import "@/assets/styles/search-common.scss";
}
</style>
......@@ -12,7 +12,16 @@
<!--certificateList-->
<div class="item_ckquery" :style="height?'height:'+height+'':'height: 60px'">
<template v-for="(item,index) in certificateList">
<span :class="{'color_text':queryParams.qualificationType === item.qualificationType}" @click="changeType(item.qualificationType)">{{item.qualificationName}}{{item.companyCount}}</span>
<el-tooltip popper-class="certificateTips" placement="bottom" effect="light" :disabled="isShowTooltip" :key="index">
<span class="span" @mouseover="onMouseOver('isOverflow'+index)" :class="{'color_text':queryParams.qualificationType === item.qualificationType}">
<span :ref="`isOverflow`+index" @click="changeType(item.qualificationType)">
{{item.qualificationName}}{{item.companyCount}}
</span>
</span>
<span slot="content" :class="{'color_text':queryParams.qualificationType === item.qualificationType}">
{{item.qualificationName}}{{item.companyCount}}
</span>
</el-tooltip>
</template>
</div>
<el-divider v-if="certificateList.length > 10 && !height" @click="moreClick()">更多<span></span></el-divider>
......@@ -77,13 +86,20 @@
title:'',
rowData:'',
certificateList:[],
height:''
height:'',
isShowTooltip: false
}
},
created() {
this.getCertificateList()
},
methods: {
onMouseOver (str) { // 内容超出,显示文字提示内容
const tag = this.$refs[str]
const parentWidth = tag[0].parentNode.offsetWidth // 获取元素父级可视宽度
const contentWidth = tag[0].offsetWidth // 获取元素可视宽度
this.isShowTooltip = contentWidth <= parentWidth
},
handleQuery(params){
this.isSkeleton = true
let data = params ? params : this.queryParams;
......@@ -129,7 +145,22 @@
}
}
</script>
<style lang="scss">
.certificateTips.is-light{
/*padding: 12px;*/
/*width: 318px;*/
/*box-sizing: border-box;*/
/*font-size: 14px;*/
/*line-height: 20px;*/
color: #333333;
border-color: rgba(0, 0, 0, 0.08);
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.08);
.popper__arrow {
border-bottom-color: rgba(0, 0, 0, 0.08) !important;
border-top-color: rgba(0, 0, 0, 0.08) !important;
}
}
</style>
<style lang="scss" scoped>
.qualifications{
background: #ffffff;
......@@ -145,16 +176,25 @@
position: relative;
margin-bottom: 10px;
overflow: hidden;
span{
.span{
color: #232323;
padding: 3px 10px;
margin-bottom: 4px;
height: 25px;
line-height: 25px;
display: inline-block;
font-size: 14px;
cursor: pointer;
width: 20%;
width: 19%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
span{
padding: 0 10px;
/*display: inline-block;*/
/*padding-right: 20px;*/
}
}
span:hover{
.span:hover{
background: #F3F4F5;
border-radius: 4px;
color:#0081FF;
......
......@@ -115,6 +115,9 @@
top:0;
z-index: 9;
}
#groupBox{
height: 100%;
}
}
.part-header{
font-size: 16px;
......
......@@ -226,10 +226,19 @@ export default {
<style lang="scss">
.custom-money-select {
width: 120px;
/*width: 120px;*/
width: auto;
height: 34px;
position: relative;
.el-input__inner{
width: 100px !important;
}
.rote {
background: #F4F6F9;
.el-input__inner{
background: #F4F6F9;
}
}
.input-block {
margin: 0;
width: 100%;
......@@ -243,6 +252,9 @@ export default {
>.custom-money-input.el-input {
width: 100%;
height: 100%;
.el-input__inner{
border: 0;
}
>input {
width: 100%;
height: 100%;
......@@ -277,10 +289,10 @@ export default {
font-size: 14px;
color: #666666;
background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
/*padding: 6px 0;*/
border-radius: 4px;
z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
// .arrow {
......
......@@ -238,9 +238,15 @@ export default {
<style lang="scss">
.custom-time-select {
width: 120px;
/*width: 120px;*/
width: auto;
height: 34px;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block {
width: 100%;
height: 100%;
......@@ -254,13 +260,16 @@ export default {
>.custom-time-input.el-input {
width: 100%;
height: 100%;
.el-input__inner{
border: 0;
}
>input {
width: 100%;
height: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
border-radius: 2px;
border-radius: 4px;
}
}
}
......@@ -283,15 +292,15 @@ export default {
.options-block {
position: absolute;
margin-top: 12px;
margin-top: 6px;
min-width: 120px;
font-size: 14px;
color: #666666;
background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px;
z-index: 10;
overflow: hidden;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
.option {
padding: 0 24px 0 16px;
......
......@@ -9,7 +9,7 @@
<el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '&#45;&#45;'}}</el-breadcrumb-item>
</el-breadcrumb>
</div>-->
<div class="flex-box part-header">
<div class="flex-box part-header" style="min-width:1248px;">
<img class="header-logo" :src="companyInfo && companyInfo.logoUrl || require('@/assets/images/detail/company_logo.png')">
{{companyInfo && companyInfo.companyName || '--'}}
</div>
......
......@@ -160,7 +160,7 @@ export default {
this.$emit('sort-change',e)
},
flexWidth(tableData) {
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 55
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 59
// return currentMax.toString().length*25 + 'px'
if(currentMax.toString().length>3){
wdth = wdth + (currentMax.toString().length-3)*10
......
......@@ -158,9 +158,9 @@ export default {
{label: '项目状态', prop: 'status', width: '90', slot: true}
],
formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []},
{ type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []},
{ type: 3, fieldName: 'projectName', width:'200', value: '', placeholder: '输入项目名称关键字搜索'},
{ type: 1, fieldName: 'projectStage',width:'94', value: '', placeholder: '项目阶段', options: []},
{ type: 1, fieldName: 'status', width:'94',value: '', placeholder: '项目状态', options: []},
{ type: 3, fieldName: 'projectName', width:'240', value: '', placeholder: '输入项目名称关键字搜索'},
],
stageOptions:[],
statusOptions:[],
......
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm"
import HeadFormNew from "../component/HeadFormNew"
import Tables from "../component/Tables"
import skeleton from '@/views/project/projectList/component/skeleton'
import { v4 } from "uuid";
export default {
components: {
HeadForm,
Tables,
skeleton
skeleton,
HeadFormNew
},
data() {
return {
......@@ -18,6 +21,12 @@ export default {
},
methods: {
check(){
this.$parent.handleClick('second');
},
getUid() {
return v4();
},
// 设置下拉选项数据源
setFormData(fieldName, list) {
this.formData.forEach(item => {
......
......@@ -21,8 +21,9 @@
iframeHight: window.innerHeight, // iframe高度-当前页控制
navigation: {isFixed: true, fixedHeight: 56, totalHeight: 68}, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
domain: 'https://plug.jiansheku.com', // 插件地址
// domain: 'http://192.168.60.19:3400',
domain: 'https://plug.jiansheku.com', // 线上-插件地址
// domain: 'https://pre-plug.jiansheku.com', // 测试-插件地址
// domain: 'http://192.168.60.104:3400',
// domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912', // 需要携带的sdkId
uid: this.$store.state.user.userId, // 需要携带的uid
......@@ -31,6 +32,11 @@
}
},
created() {
if(window.location.host === 'http://szh.jiansheku.com' || window.location.host === 'szh.jiansheku.com'){
this.domain='https://plug.jiansheku.com'
}else {
this.domain='https://pre-plug.jiansheku.com'
}
this.gettokens()
},
mounted() {
......
This diff is collapsed.
......@@ -256,6 +256,11 @@ export default {
width: 120px;
height: 34px;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block {
width: 100%;
height: 100%;
......@@ -269,6 +274,9 @@ export default {
>.custom-time-input.el-input {
width: 100%;
height: 100%;
.el-input__inner{
border: 0;
}
>input {
width: 100%;
height: 100%;
......@@ -303,10 +311,9 @@ export default {
font-size: 14px;
color: #666666;
background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px;
z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
.option {
padding: 0 24px 0 16px;
......
......@@ -2,7 +2,7 @@
<div class="regionalEconomy">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">指标</span>
<!--<span class="common-title">指标</span>-->
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="year">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择">
......@@ -649,16 +649,21 @@ export default {
margin-top: 12px;
border-radius: 4px;
.el-form{
margin-left: 20px;
/*margin-left: 20px;*/
.el-form-item{
margin: 0 !important;
.form-content-width{
width: 110px;
}
::v-deep .el-input{
.el-input__inner{
border: 0;
}
}
}
}
.table-item{
margin-top: 22px;
margin-top: 16px;
position: relative;
::v-deep .el-table{
.el-table__body{
......
This diff is collapsed.
This diff is collapsed.
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