Commit 6f061c83 authored by 远方不远's avatar 远方不远
parents bc4cb2a2 e05d11cd
...@@ -26,67 +26,67 @@ public class EnterpriseBussinessController { ...@@ -26,67 +26,67 @@ public class EnterpriseBussinessController {
@Autowired @Autowired
EnterpriseBussinessService enterpriseBussinessService; EnterpriseBussinessService enterpriseBussinessService;
@ApiOperation(value = "客户信息列表") @ApiOperation(value = "客户信息列表(openApi)")
@RequestMapping(value = "/clientPage", method = RequestMethod.POST) @RequestMapping(value = "/clientPage", method = RequestMethod.POST)
public TableDataInfo clientPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo clientPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.clientPage(paramMap); return enterpriseBussinessService.clientPage(paramMap);
} }
@ApiOperation(value = "客户项目列表") @ApiOperation(value = "客户项目列表(openApi)")
@RequestMapping(value = "/clientProjectPage", method = RequestMethod.POST) @RequestMapping(value = "/clientProjectPage", method = RequestMethod.POST)
public TableDataInfo clientProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo clientProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.clientProjectPage(paramMap); return enterpriseBussinessService.clientProjectPage(paramMap);
} }
@ApiOperation(value = "投标记录列表(开标记录)") @ApiOperation(value = "投标记录列表(开标记录)(openApi)")
@RequestMapping(value = "/tenderPage",method = RequestMethod.POST) @RequestMapping(value = "/tenderPage",method = RequestMethod.POST)
public TableDataInfo tenderPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo tenderPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.tenderPage(paramMap); return enterpriseBussinessService.tenderPage(paramMap);
} }
@ApiOperation(value = "投标记录详情(开标记录)") @ApiOperation(value = "投标记录详情(开标记录)(openApi)")
@RequestMapping(value = "/tenderDetail",method = RequestMethod.POST) @RequestMapping(value = "/tenderDetail",method = RequestMethod.POST)
public R tenderDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R tenderDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.tenderDetail(paramMap); return enterpriseBussinessService.tenderDetail(paramMap);
} }
@ApiOperation(value = "供应商列表") @ApiOperation(value = "供应商列表(openApi)")
@RequestMapping(value = "/supplierPage",method = RequestMethod.POST) @RequestMapping(value = "/supplierPage",method = RequestMethod.POST)
public TableDataInfo supplierPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo supplierPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.supplierPage(paramMap); return enterpriseBussinessService.supplierPage(paramMap);
} }
@ApiOperation(value = "供应商项目列表") @ApiOperation(value = "供应商项目列表(openApi)")
@RequestMapping(value = "/supplierProjectPage",method = RequestMethod.POST) @RequestMapping(value = "/supplierProjectPage",method = RequestMethod.POST)
public TableDataInfo supplierProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo supplierProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.supplierProjectPage(paramMap); return enterpriseBussinessService.supplierProjectPage(paramMap);
} }
@ApiOperation(value = "中标项目详情") @ApiOperation(value = "中标项目详情(openApi)")
@RequestMapping(value = "/projectDetail", method = RequestMethod.POST) @RequestMapping(value = "/projectDetail", method = RequestMethod.POST)
public R projectDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R projectDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.projectDetail(paramMap); return enterpriseBussinessService.projectDetail(paramMap);
} }
@ApiOperation(value = "招标代理常合作代理机构列表") @ApiOperation(value = "招标代理常合作代理机构列表(openApi)")
@RequestMapping(value = "/oftenAgencyPage",method = RequestMethod.POST) @RequestMapping(value = "/oftenAgencyPage",method = RequestMethod.POST)
public TableDataInfo oftenAgencyPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo oftenAgencyPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.oftenAgencyPage(paramMap); return enterpriseBussinessService.oftenAgencyPage(paramMap);
} }
@ApiOperation(value = "招标合作明细列表") @ApiOperation(value = "招标合作明细列表(openApi)")
@RequestMapping(value = "/bidCooperatePage", method = RequestMethod.POST) @RequestMapping(value = "/bidCooperatePage", method = RequestMethod.POST)
public TableDataInfo bidCooperatePage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo bidCooperatePage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.bidCooperatePage(paramMap); return enterpriseBussinessService.bidCooperatePage(paramMap);
} }
@ApiOperation(value = "历史发包列表") @ApiOperation(value = "历史发包列表(openApi)")
@RequestMapping(value = "/historySendPage", method = RequestMethod.POST) @RequestMapping(value = "/historySendPage", method = RequestMethod.POST)
public TableDataInfo historySendPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo historySendPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.historySendPage(paramMap); return enterpriseBussinessService.historySendPage(paramMap);
} }
@ApiOperation(value = "历史发包省份") @ApiOperation(value = "历史发包省份(openApi)")
@RequestMapping(value = "/historySendProvince", method = RequestMethod.POST) @RequestMapping(value = "/historySendProvince", method = RequestMethod.POST)
public R historySendProvince(@RequestBody Map<String, Object> paramMap) throws Exception { public R historySendProvince(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.historySendProvince(paramMap); return enterpriseBussinessService.historySendProvince(paramMap);
......
...@@ -95,7 +95,7 @@ public class EnterpriseController { ...@@ -95,7 +95,7 @@ public class EnterpriseController {
@ApiOperation(value = "工商股东信息(openApi)") @ApiOperation(value = "工商股东信息(openApi)")
@PostMapping(value = "bestStockPage") @PostMapping(value = "bestStockPage")
public TableDataInfo bestStockPage(@RequestBody @Valid EnterpriseKeymembersBody vo) throws Exception { public TableDataInfo bestStockPage(@RequestBody @Valid EnterpriseBestStockPageBody vo) throws Exception {
return enterpriseService.bestStockPage(vo); return enterpriseService.bestStockPage(vo);
} }
......
...@@ -29,97 +29,97 @@ public class EnterpriseCreditController { ...@@ -29,97 +29,97 @@ public class EnterpriseCreditController {
EnterpriseCreditService enterpriseCreditService; EnterpriseCreditService enterpriseCreditService;
@RequestMapping(value = "/penalizePage", method = RequestMethod.POST) @RequestMapping(value = "/penalizePage", method = RequestMethod.POST)
@ApiOperation(value = "行政处罚列表") @ApiOperation(value = "行政处罚列表(openApi)")
public TableDataInfo penalizePage(@RequestBody @Valid EnterpriseCreditPenalizePageBody body) throws Exception { public TableDataInfo penalizePage(@RequestBody @Valid EnterpriseCreditPenalizePageBody body) throws Exception {
return enterpriseCreditService.penalizePage(body); return enterpriseCreditService.penalizePage(body);
} }
@RequestMapping(value = "/penalizeReasonType", method = RequestMethod.POST) @RequestMapping(value = "/penalizeReasonType", method = RequestMethod.POST)
@ApiOperation(value = "行政处罚类型") @ApiOperation(value = "行政处罚类型(openApi)")
public R penalizeReasonType(@RequestBody @Valid EnterpriseCreditPenalizeReasonTypeBody body) throws Exception { public R penalizeReasonType(@RequestBody @Valid EnterpriseCreditPenalizeReasonTypeBody body) throws Exception {
return enterpriseCreditService.penalizeReasonType(body); return enterpriseCreditService.penalizeReasonType(body);
} }
@RequestMapping(value = "/abnormalPage", method = RequestMethod.POST) @RequestMapping(value = "/abnormalPage", method = RequestMethod.POST)
@ApiOperation(value = "经营异常列表") @ApiOperation(value = "经营异常列表(openApi)")
public TableDataInfo abnormalPage(@RequestBody @Valid EnterpriseCreditAbnormalPageBody body) throws Exception { public TableDataInfo abnormalPage(@RequestBody @Valid EnterpriseCreditAbnormalPageBody body) throws Exception {
return enterpriseCreditService.abnormalPage(body); return enterpriseCreditService.abnormalPage(body);
} }
@RequestMapping(value = "/abnormalYears", method = RequestMethod.POST) @RequestMapping(value = "/abnormalYears", method = RequestMethod.POST)
@ApiOperation(value = "经营异常年份") @ApiOperation(value = "经营异常年份(openApi)")
public R abnormalYears(@RequestBody @Valid EnterpriseCreditAbnormalYearsBody body) throws Exception { public R abnormalYears(@RequestBody @Valid EnterpriseCreditAbnormalYearsBody body) throws Exception {
return enterpriseCreditService.abnormalYears(body); return enterpriseCreditService.abnormalYears(body);
} }
@RequestMapping(value = "/executedPersonsPage", method = RequestMethod.POST) @RequestMapping(value = "/executedPersonsPage", method = RequestMethod.POST)
@ApiOperation(value = "被执行人列表") @ApiOperation(value = "被执行人列表(openApi)")
public TableDataInfo executedPersonsPage(@RequestBody @Valid EnterpriseCreditExecutedPersonsPageBody body) throws Exception { public TableDataInfo executedPersonsPage(@RequestBody @Valid EnterpriseCreditExecutedPersonsPageBody body) throws Exception {
return enterpriseCreditService.executedPersonsPage(body); return enterpriseCreditService.executedPersonsPage(body);
} }
@RequestMapping(value = "/executedPage", method = RequestMethod.POST) @RequestMapping(value = "/executedPage", method = RequestMethod.POST)
@ApiOperation(value = "失信被执行人列表") @ApiOperation(value = "失信被执行人列表(openApi)")
public TableDataInfo executedPage(@RequestBody @Valid EnterpriseCreditExecutedPageBody body) throws Exception { public TableDataInfo executedPage(@RequestBody @Valid EnterpriseCreditExecutedPageBody body) throws Exception {
return enterpriseCreditService.executedPage(body); return enterpriseCreditService.executedPage(body);
} }
@RequestMapping(value = "/lawsuitsPage", method = RequestMethod.POST) @RequestMapping(value = "/lawsuitsPage", method = RequestMethod.POST)
@ApiOperation(value = "裁判文书列表") @ApiOperation(value = "裁判文书列表(openApi)")
public TableDataInfo lawsuitsPage(@RequestBody @Valid EnterpriseCreditLawsuitsPageBody body) throws Exception { public TableDataInfo lawsuitsPage(@RequestBody @Valid EnterpriseCreditLawsuitsPageBody body) throws Exception {
return enterpriseCreditService.lawsuitsPage(body); return enterpriseCreditService.lawsuitsPage(body);
} }
@RequestMapping(value = "/lawsuitsCauseAction", method = RequestMethod.POST) @RequestMapping(value = "/lawsuitsCauseAction", method = RequestMethod.POST)
@ApiOperation(value = "裁判文书案由") @ApiOperation(value = "裁判文书案由(openApi)")
public R lawsuitsCauseAction(@RequestBody @Valid EnterpriseCreditLawsuitsCauseActionBody body) throws Exception { public R lawsuitsCauseAction(@RequestBody @Valid EnterpriseCreditLawsuitsCauseActionBody body) throws Exception {
return enterpriseCreditService.lawsuitsCauseAction(body); return enterpriseCreditService.lawsuitsCauseAction(body);
} }
@RequestMapping(value = "/lawsuitsRole", method = RequestMethod.POST) @RequestMapping(value = "/lawsuitsRole", method = RequestMethod.POST)
@ApiOperation(value = "裁判文书身份") @ApiOperation(value = "裁判文书身份(openApi)")
public R lawsuitsRole(@RequestBody @Valid EnterpriseCreditLawsuitsRoleBody body) throws Exception { public R lawsuitsRole(@RequestBody @Valid EnterpriseCreditLawsuitsRoleBody body) throws Exception {
return enterpriseCreditService.lawsuitsRole(body); return enterpriseCreditService.lawsuitsRole(body);
} }
@RequestMapping(value = "/noticesPage", method = RequestMethod.POST) @RequestMapping(value = "/noticesPage", method = RequestMethod.POST)
@ApiOperation(value = "法院公告列表") @ApiOperation(value = "法院公告列表(openApi)")
public TableDataInfo noticesPage(@RequestBody @Valid EnterpriseCreditNoticePageBody body) throws Exception { public TableDataInfo noticesPage(@RequestBody @Valid EnterpriseCreditNoticePageBody body) throws Exception {
return enterpriseCreditService.noticesPage(body); return enterpriseCreditService.noticesPage(body);
} }
@RequestMapping(value = "/noticesType", method = RequestMethod.POST) @RequestMapping(value = "/noticesType", method = RequestMethod.POST)
@ApiOperation(value = "法院公告类型") @ApiOperation(value = "法院公告类型(openApi)")
public R noticesType(@RequestBody @Valid EnterpriseCreditNoticeTypeBody body) throws Exception { public R noticesType(@RequestBody @Valid EnterpriseCreditNoticeTypeBody body) throws Exception {
return enterpriseCreditService.noticesType(body); return enterpriseCreditService.noticesType(body);
} }
@RequestMapping(value = "/noticesRole", method = RequestMethod.POST) @RequestMapping(value = "/noticesRole", method = RequestMethod.POST)
@ApiOperation(value = "法院公告身份") @ApiOperation(value = "法院公告身份(openApi)")
public R noticesRole(@RequestBody @Valid EnterpriseCreditNoticeRoleBody body) throws Exception { public R noticesRole(@RequestBody @Valid EnterpriseCreditNoticeRoleBody body) throws Exception {
return enterpriseCreditService.noticesRole(body); return enterpriseCreditService.noticesRole(body);
} }
@RequestMapping(value = "/noticesCaseReason", method = RequestMethod.POST) @RequestMapping(value = "/noticesCaseReason", method = RequestMethod.POST)
@ApiOperation(value = "法院公告案由") @ApiOperation(value = "法院公告案由(openApi)")
public R noticesCaseReason(@RequestBody @Valid EnterpriseCreditNoticeCaseReasonBody body) throws Exception { public R noticesCaseReason(@RequestBody @Valid EnterpriseCreditNoticeCaseReasonBody body) throws Exception {
return enterpriseCreditService.noticesCaseReason(body); return enterpriseCreditService.noticesCaseReason(body);
} }
@RequestMapping(value = "/kaitingPage", method = RequestMethod.POST) @RequestMapping(value = "/kaitingPage", method = RequestMethod.POST)
@ApiOperation(value = "开庭公告列表") @ApiOperation(value = "开庭公告列表(openApi)")
public TableDataInfo kaitingPage(@RequestBody @Valid EnterpriseCreditKaitingPageBody body) throws Exception { public TableDataInfo kaitingPage(@RequestBody @Valid EnterpriseCreditKaitingPageBody body) throws Exception {
return enterpriseCreditService.kaitingPage(body); return enterpriseCreditService.kaitingPage(body);
} }
@RequestMapping(value = "/kaitingCauseAction", method = RequestMethod.POST) @RequestMapping(value = "/kaitingCauseAction", method = RequestMethod.POST)
@ApiOperation(value = "开庭公告案由") @ApiOperation(value = "开庭公告案由(openApi)")
public R kaitingCauseAction(@RequestBody @Valid EnterpriseCreditKaitingCauseActionBody body) throws Exception { public R kaitingCauseAction(@RequestBody @Valid EnterpriseCreditKaitingCauseActionBody body) throws Exception {
return enterpriseCreditService.kaitingCauseAction(body); return enterpriseCreditService.kaitingCauseAction(body);
} }
@RequestMapping(value = "/kaitingPureRole", method = RequestMethod.POST) @RequestMapping(value = "/kaitingPureRole", method = RequestMethod.POST)
@ApiOperation(value = "开庭公告当事人身份") @ApiOperation(value = "开庭公告当事人身份(openApi)")
public R kaitingPureRole(@RequestBody @Valid EnterpriseCreditKaitingPureRoleBody body) throws Exception { public R kaitingPureRole(@RequestBody @Valid EnterpriseCreditKaitingPureRoleBody body) throws Exception {
return enterpriseCreditService.kaitingPureRole(body); return enterpriseCreditService.kaitingPureRole(body);
} }
......
...@@ -29,133 +29,133 @@ public class EnterpriseProjectController { ...@@ -29,133 +29,133 @@ public class EnterpriseProjectController {
EnterpriseProjectService enterpriseProjectService; EnterpriseProjectService enterpriseProjectService;
@ApiOperation(value = "土地交易列表") @ApiOperation(value = "土地交易列表(openApi)")
@RequestMapping(value = "/landTransactionPage", method = RequestMethod.POST) @RequestMapping(value = "/landTransactionPage", method = RequestMethod.POST)
public TableDataInfo landTransactionPage(@RequestBody @Valid EnterpriseProjectLandTransactionPageBody body) throws Exception { public TableDataInfo landTransactionPage(@RequestBody @Valid EnterpriseProjectLandTransactionPageBody body) throws Exception {
return enterpriseProjectService.landTransactionPage(body); return enterpriseProjectService.landTransactionPage(body);
} }
@ApiOperation(value = "土地用途列表") @ApiOperation(value = "土地用途列表(openApi)")
@RequestMapping(value = "/landUse", method = RequestMethod.POST) @RequestMapping(value = "/landUse", method = RequestMethod.POST)
public R landUse(@RequestBody @Valid EnterpriseProjectLandUseBody body) throws Exception { public R landUse(@RequestBody @Valid EnterpriseProjectLandUseBody body) throws Exception {
return enterpriseProjectService.landUse(body); return enterpriseProjectService.landUse(body);
} }
@ApiOperation(value = "土地信息详情") @ApiOperation(value = "土地信息详情(openApi)")
@RequestMapping(value = "/landDetail",method = RequestMethod.POST) @RequestMapping(value = "/landDetail",method = RequestMethod.POST)
public R landDetail(@RequestBody @Valid EnterpriseProjectLandDetailBody body) throws Exception { public R landDetail(@RequestBody @Valid EnterpriseProjectLandDetailBody body) throws Exception {
return enterpriseProjectService.landDetail(body); return enterpriseProjectService.landDetail(body);
} }
@ApiOperation(value = "拟建项目列表") @ApiOperation(value = "拟建项目列表(openApi)")
@RequestMapping(value = "/approvalProjectPage",method = RequestMethod.POST) @RequestMapping(value = "/approvalProjectPage",method = RequestMethod.POST)
public TableDataInfo approvalProjectPage(@RequestBody @Valid EnterpriseProjectApprovalProjectPageBody body) throws Exception { public TableDataInfo approvalProjectPage(@RequestBody @Valid EnterpriseProjectApprovalProjectPageBody body) throws Exception {
return enterpriseProjectService.approvalProjectPage(body); return enterpriseProjectService.approvalProjectPage(body);
} }
@ApiOperation(value = "拟建项目详情基本信息") @ApiOperation(value = "拟建项目详情基本信息(openApi)")
@RequestMapping(value = "/approvalInfoDetail",method = RequestMethod.POST) @RequestMapping(value = "/approvalInfoDetail",method = RequestMethod.POST)
public R approvalInfoDetail(@RequestBody @Valid EnterpriseProjectApprovalInfoDetailBody body) throws Exception { public R approvalInfoDetail(@RequestBody @Valid EnterpriseProjectApprovalInfoDetailBody body) throws Exception {
return enterpriseProjectService.approvalInfoDetail(body); return enterpriseProjectService.approvalInfoDetail(body);
} }
@ApiOperation(value = "拟建项目详情立项审批列表") @ApiOperation(value = "拟建项目详情立项审批列表(openApi)")
@RequestMapping(value = "/approvalExaminePage",method = RequestMethod.POST) @RequestMapping(value = "/approvalExaminePage",method = RequestMethod.POST)
public TableDataInfo approvalExaminePage(@RequestBody @Valid EnterpriseProjectApprovalExaminePageBody body) throws Exception { public TableDataInfo approvalExaminePage(@RequestBody @Valid EnterpriseProjectApprovalExaminePageBody body) throws Exception {
return enterpriseProjectService.approvalExaminePage(body); return enterpriseProjectService.approvalExaminePage(body);
} }
@ApiOperation(value = "拟建项目详情民间推介列表") @ApiOperation(value = "拟建项目详情民间推介列表(openApi)")
@RequestMapping(value = "/approvalMarketingPage", method = RequestMethod.POST) @RequestMapping(value = "/approvalMarketingPage", method = RequestMethod.POST)
public TableDataInfo approvalMarketingPage(@RequestBody @Valid EnterpriseProjectApprovalMarketingPageBody body) throws Exception { public TableDataInfo approvalMarketingPage(@RequestBody @Valid EnterpriseProjectApprovalMarketingPageBody body) throws Exception {
return enterpriseProjectService.approvalMarketingPage(body); return enterpriseProjectService.approvalMarketingPage(body);
} }
@ApiOperation(value = "专项债项目列表") @ApiOperation(value = "专项债项目列表(openApi)")
@RequestMapping(value = "/specialDebtProjectPage", method = RequestMethod.POST) @RequestMapping(value = "/specialDebtProjectPage", method = RequestMethod.POST)
public TableDataInfo specialDebtProjectPage(@RequestBody @Valid EnterpriseProjectSpecialDebtProjectPageBody body) throws Exception { public TableDataInfo specialDebtProjectPage(@RequestBody @Valid EnterpriseProjectSpecialDebtProjectPageBody body) throws Exception {
return enterpriseProjectService.specialDebtProjectPage(body); return enterpriseProjectService.specialDebtProjectPage(body);
} }
@ApiOperation(value = "专项债项目详情") @ApiOperation(value = "专项债项目详情(openApi)")
@RequestMapping(value = "/specialDebtProjectDetail", method = RequestMethod.POST) @RequestMapping(value = "/specialDebtProjectDetail", method = RequestMethod.POST)
public R specialDebtProjectDetail(@RequestBody @Valid EnterpriseProjectSpecialDebtProjectDetailBody body) throws Exception { public R specialDebtProjectDetail(@RequestBody @Valid EnterpriseProjectSpecialDebtProjectDetailBody body) throws Exception {
return enterpriseProjectService.specialDebtProjectDetail(body); return enterpriseProjectService.specialDebtProjectDetail(body);
} }
@ApiOperation(value = "专项债列表") @ApiOperation(value = "专项债列表(openApi)")
@RequestMapping(value = "/specialDebtPage", method = RequestMethod.POST) @RequestMapping(value = "/specialDebtPage", method = RequestMethod.POST)
public TableDataInfo specialDebtPage(@RequestBody @Valid EnterpriseProjectSpecialDebtPageBody body) throws Exception { public TableDataInfo specialDebtPage(@RequestBody @Valid EnterpriseProjectSpecialDebtPageBody body) throws Exception {
return enterpriseProjectService.specialDebtPage(body); return enterpriseProjectService.specialDebtPage(body);
} }
@ApiOperation(value = "招标公告列表") @ApiOperation(value = "招标公告列表(openApi)")
@RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST) @RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST)
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);
} }
@ApiOperation(value = "招标公告招标类别") @ApiOperation(value = "招标公告招标类别(openApi)")
@RequestMapping(value = "/bidNoticeTenderStage", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeTenderStage", method = RequestMethod.POST)
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);
} }
@ApiOperation(value = "招标公告招标地区") @ApiOperation(value = "招标公告招标地区(openApi)")
@RequestMapping(value = "/bidNoticeArea", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeArea", method = RequestMethod.POST)
public R bidNoticeArea(@RequestBody @Valid EnterpriseProjectBidNoticeAreaBody body) throws Exception { public R bidNoticeArea(@RequestBody @Valid EnterpriseProjectBidNoticeAreaBody body) throws Exception {
return enterpriseProjectService.bidNoticeArea(body); return enterpriseProjectService.bidNoticeArea(body);
} }
@ApiOperation(value = "招标公告详情") @ApiOperation(value = "招标公告详情(openApi)")
@RequestMapping(value = "/bidNoticeDetail", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeDetail", method = RequestMethod.POST)
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);
} }
@ApiOperation(value = "招标计划列表") @ApiOperation(value = "招标计划列表(openApi)")
@RequestMapping(value = "/bidPlanPage",method = RequestMethod.POST) @RequestMapping(value = "/bidPlanPage",method = RequestMethod.POST)
public TableDataInfo bidPlanPage(@RequestBody @Valid EnterpriseProjectBidPlanPageBody body) throws Exception { public TableDataInfo bidPlanPage(@RequestBody @Valid EnterpriseProjectBidPlanPageBody body) throws Exception {
return enterpriseProjectService.bidPlanPage(body); return enterpriseProjectService.bidPlanPage(body);
} }
@ApiOperation(value = "招标计划详情") @ApiOperation(value = "招标计划详情(openApi)")
@RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST) @RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST)
public R bidPlanDetail(@RequestBody @Valid EnterpriseProjectBidPlanDetailBody body) throws Exception { public R bidPlanDetail(@RequestBody @Valid EnterpriseProjectBidPlanDetailBody body) throws Exception {
return enterpriseProjectService.bidPlanDetail(body); return enterpriseProjectService.bidPlanDetail(body);
} }
@ApiOperation(value = "标讯pro招标公告列表") @ApiOperation(value = "标讯pro招标公告列表(openApi)")
@RequestMapping(value = "/bidNoticeProPage", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProPage", method = RequestMethod.POST)
public TableDataInfo bidNoticeProPage(@RequestBody @Valid EnterpriseProjectBidNoticeProPageBody body) throws Exception { public TableDataInfo bidNoticeProPage(@RequestBody @Valid EnterpriseProjectBidNoticeProPageBody body) throws Exception {
return enterpriseProjectService.bidNoticeProPage(body); return enterpriseProjectService.bidNoticeProPage(body);
} }
@ApiOperation(value = "标讯pro招标公告项目类别") @ApiOperation(value = "标讯pro招标公告项目类别(openApi)")
@RequestMapping(value = "/bidNoticeProProjectType", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProProjectType", method = RequestMethod.POST)
public R bidNoticeProProjectType(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception { public R bidNoticeProProjectType(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception {
return enterpriseProjectService.bidNoticeProProjectType(body); return enterpriseProjectService.bidNoticeProProjectType(body);
} }
@ApiOperation(value = "标讯pro招标公告工程类别") @ApiOperation(value = "标讯pro招标公告工程类别(openApi)")
@RequestMapping(value = "/bidNoticeProProjectPurposes", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProProjectPurposes", method = RequestMethod.POST)
public R bidNoticeProProjectPurposes(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception { public R bidNoticeProProjectPurposes(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception {
return enterpriseProjectService.bidNoticeProProjectPurposes(body); return enterpriseProjectService.bidNoticeProProjectPurposes(body);
} }
@ApiOperation(value = "标讯pro招标公告评标办法") @ApiOperation(value = "标讯pro招标公告评标办法(openApi)")
@RequestMapping(value = "/bidNoticeProAssessmentWay", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProAssessmentWay", method = RequestMethod.POST)
public R bidNoticeProAssessmentWay(@RequestBody @Valid EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception { public R bidNoticeProAssessmentWay(@RequestBody @Valid EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception {
return enterpriseProjectService.bidNoticeProAssessmentWay(body); return enterpriseProjectService.bidNoticeProAssessmentWay(body);
} }
@ApiOperation(value = "标讯pro招标公告详情") @ApiOperation(value = "标讯pro招标公告详情(openApi)")
@RequestMapping(value = "/bidNoticeProDetail", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProDetail", method = RequestMethod.POST)
public R bidNoticeProDetail(@RequestBody @Valid EnterpriseProjectBidNoticeProDetailBody body) throws Exception { public R bidNoticeProDetail(@RequestBody @Valid EnterpriseProjectBidNoticeProDetailBody body) throws Exception {
return enterpriseProjectService.bidNoticeProDetail(body); return enterpriseProjectService.bidNoticeProDetail(body);
} }
@ApiOperation(value = "行政许可列表") @ApiOperation(value = "行政许可列表(openApi)")
@RequestMapping(value = "/creditXzxkPage", method = RequestMethod.POST) @RequestMapping(value = "/creditXzxkPage", method = RequestMethod.POST)
public TableDataInfo creditXzxkPage(@RequestBody @Valid EnterpriseProjectCreditXzxkPageBody body) throws Exception { public TableDataInfo creditXzxkPage(@RequestBody @Valid EnterpriseProjectCreditXzxkPageBody body) throws Exception {
return enterpriseProjectService.creditXzxkPage(body); return enterpriseProjectService.creditXzxkPage(body);
......
...@@ -74,4 +74,12 @@ public class BusinessOpportunityRadarController { ...@@ -74,4 +74,12 @@ public class BusinessOpportunityRadarController {
public AjaxResult jskBidPlanPage(@RequestBody ComposeQueryDto compose) { public AjaxResult jskBidPlanPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidPlanPage(compose); return opportunityRadarService.jskBidPlanPage(compose);
} }
/*
* 投标计划查询
*/
@RequestMapping("/jskBidPlan/getCapitalSourceSelect")
public AjaxResult getCapitalSourceSelect() {
return opportunityRadarService.getCapitalSourceSelect();
}
} }
...@@ -27,4 +27,7 @@ public interface BusinessOpportunityRadarService { ...@@ -27,4 +27,7 @@ public interface BusinessOpportunityRadarService {
AjaxResult bondProjectPage(ComposeQueryDto compose); AjaxResult bondProjectPage(ComposeQueryDto compose);
AjaxResult jskBidPlanPage(ComposeQueryDto compose); AjaxResult jskBidPlanPage(ComposeQueryDto compose);
AjaxResult getCapitalSourceSelect();
} }
...@@ -82,4 +82,10 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR ...@@ -82,4 +82,10 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", BeanUtil.beanToMap(compose, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override
public AjaxResult getCapitalSourceSelect() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
} }
...@@ -20,14 +20,14 @@ ...@@ -20,14 +20,14 @@
<!-- 日志文件名格式 --> <!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/operate-sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/operate-sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 --> <!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory> <maxHistory>10</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
</encoder> </encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter"> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 --> <!-- 过滤的级别 -->
<level>INFO</level> <level>DEBUG</level>
<!-- 匹配时的操作:接收(记录) --> <!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) --> <!-- 不匹配时的操作:拒绝(不记录) -->
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<!-- 日志文件名格式 --> <!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/operate-sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/operate-sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 --> <!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory> <maxHistory>10</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
<!-- 按天回滚 daily --> <!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/operate-sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> <fileNamePattern>${log.path}/operate-sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 --> <!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory> <maxHistory>10</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${log.pattern}</pattern> <pattern>${log.pattern}</pattern>
......
...@@ -18,5 +18,7 @@ public class EnterpriseAffiliatesBody extends BasePage { ...@@ -18,5 +18,7 @@ public class EnterpriseAffiliatesBody extends BasePage {
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer cid; private Integer cid;
private Integer hasBid;
} }
...@@ -17,6 +17,9 @@ public class EnterpriseInvestmentBody extends BasePage { ...@@ -17,6 +17,9 @@ public class EnterpriseInvestmentBody extends BasePage {
//企业Id //企业Id
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer cid; private Integer cid;
private Integer hasBid;
private double stockPercentageMin;
private double stockPercentageMax;
} }
...@@ -3,7 +3,7 @@ import request from "@/utils/request"; ...@@ -3,7 +3,7 @@ import request from "@/utils/request";
// 企业数据统计 // 企业数据统计
export function statistic(data) { export function statistic(data) {
return request({ return request({
url: '/enterprise/statistic(建设库)', url: '/enterprise/statistic',
method: 'post', method: 'post',
data: data data: data
}) })
......
...@@ -174,6 +174,31 @@ export function enterprise(param) { ...@@ -174,6 +174,31 @@ export function enterprise(param) {
}) })
} }
//城投平台-企业查询选项
export function uipGroupData() {
return request({
url: '/enterprise/uipGroupData',
method: 'POST'
})
}
//城投平台-分页列表
export function urbanInvestmentPage(param) {
return request({
url: '/urbanInvestment/page',
method: 'POST',
data: param
})
}
//城投平台-城投平台统计
export function urbanInvestmentStatistics(param) {
return request({
url: '/urbanInvestment/statistics',
method: 'POST',
data: param
})
}
......
dsk-operate-ui/src/assets/images/EXCEL.png

381 Bytes | W: | H:

dsk-operate-ui/src/assets/images/EXCEL.png

434 Bytes | W: | H:

dsk-operate-ui/src/assets/images/EXCEL.png
dsk-operate-ui/src/assets/images/EXCEL.png
dsk-operate-ui/src/assets/images/EXCEL.png
dsk-operate-ui/src/assets/images/EXCEL.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/add.png

148 Bytes | W: | H:

dsk-operate-ui/src/assets/images/add.png

140 Bytes | W: | H:

dsk-operate-ui/src/assets/images/add.png
dsk-operate-ui/src/assets/images/add.png
dsk-operate-ui/src/assets/images/add.png
dsk-operate-ui/src/assets/images/add.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/delete.png

327 Bytes | W: | H:

dsk-operate-ui/src/assets/images/delete.png

531 Bytes | W: | H:

dsk-operate-ui/src/assets/images/delete.png
dsk-operate-ui/src/assets/images/delete.png
dsk-operate-ui/src/assets/images/delete.png
dsk-operate-ui/src/assets/images/delete.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/edit.png

245 Bytes | W: | H:

dsk-operate-ui/src/assets/images/edit.png

488 Bytes | W: | H:

dsk-operate-ui/src/assets/images/edit.png
dsk-operate-ui/src/assets/images/edit.png
dsk-operate-ui/src/assets/images/edit.png
dsk-operate-ui/src/assets/images/edit.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/excel_1.png

446 Bytes | W: | H:

dsk-operate-ui/src/assets/images/excel_1.png

566 Bytes | W: | H:

dsk-operate-ui/src/assets/images/excel_1.png
dsk-operate-ui/src/assets/images/excel_1.png
dsk-operate-ui/src/assets/images/excel_1.png
dsk-operate-ui/src/assets/images/excel_1.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/folder.png

298 Bytes | W: | H:

dsk-operate-ui/src/assets/images/folder.png

518 Bytes | W: | H:

dsk-operate-ui/src/assets/images/folder.png
dsk-operate-ui/src/assets/images/folder.png
dsk-operate-ui/src/assets/images/folder.png
dsk-operate-ui/src/assets/images/folder.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/follow.png

260 Bytes | W: | H:

dsk-operate-ui/src/assets/images/follow.png

312 Bytes | W: | H:

dsk-operate-ui/src/assets/images/follow.png
dsk-operate-ui/src/assets/images/follow.png
dsk-operate-ui/src/assets/images/follow.png
dsk-operate-ui/src/assets/images/follow.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/pdf.png

422 Bytes | W: | H:

dsk-operate-ui/src/assets/images/pdf.png

578 Bytes | W: | H:

dsk-operate-ui/src/assets/images/pdf.png
dsk-operate-ui/src/assets/images/pdf.png
dsk-operate-ui/src/assets/images/pdf.png
dsk-operate-ui/src/assets/images/pdf.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/word.png

474 Bytes | W: | H:

dsk-operate-ui/src/assets/images/word.png

615 Bytes | W: | H:

dsk-operate-ui/src/assets/images/word.png
dsk-operate-ui/src/assets/images/word.png
dsk-operate-ui/src/assets/images/word.png
dsk-operate-ui/src/assets/images/word.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -49,7 +49,13 @@ function changePath(that, pathName){ ...@@ -49,7 +49,13 @@ function changePath(that, pathName){
} }
} }
//保留小数N位
function saveFixed(field, num=2){
return parseFloat(field.toFixed(num))
}
export { export {
encodeStr, encodeStr,
changePath changePath,
saveFixed
} }
...@@ -181,6 +181,7 @@ ...@@ -181,6 +181,7 @@
margin-top: 2px; margin-top: 2px;
&:hover{ &:hover{
background: url("../../assets/images/project/add_1.png") no-repeat center center; background: url("../../assets/images/project/add_1.png") no-repeat center center;
background-size: 100%;
} }
} }
.tips{ .tips{
...@@ -244,6 +245,7 @@ ...@@ -244,6 +245,7 @@
>img{ >img{
float: left; float: left;
margin-right: 8px; margin-right: 8px;
width: 56px;
} }
.i{ .i{
font-size: 18px; font-size: 18px;
...@@ -337,6 +339,7 @@ ...@@ -337,6 +339,7 @@
>img{ >img{
float:left; float:left;
margin: 2px 4px 0 0; margin: 2px 4px 0 0;
width: 16px;
} }
} }
.bottems{ .bottems{
...@@ -572,6 +575,16 @@ ...@@ -572,6 +575,16 @@
position: relative; position: relative;
padding-top: 25px; padding-top: 25px;
display: flex; display: flex;
.sels{
position: relative;
>img{
position: absolute;
left: 10px;
z-index: 1;
top: 8px;
width: 16px;
}
}
.el-input{ .el-input{
display: inline-block; display: inline-block;
margin-right: 12px; margin-right: 12px;
...@@ -610,6 +623,7 @@ ...@@ -610,6 +623,7 @@
position: absolute; position: absolute;
left: 8px; left: 8px;
top: 8px; top: 8px;
width: 16px;
z-index: 1; z-index: 1;
} }
.el-input{ .el-input{
...@@ -877,6 +891,7 @@ ...@@ -877,6 +891,7 @@
float: left; float: left;
margin-right: 8px; margin-right: 8px;
margin-top: -2px; margin-top: -2px;
width: 24px;
} }
} }
} }
...@@ -960,6 +975,7 @@ ...@@ -960,6 +975,7 @@
} }
.up_img{ .up_img{
margin: 56px auto 13px; margin: 56px auto 13px;
width: 50px;
} }
.up_text{ .up_text{
color: #666; color: #666;
......
...@@ -237,7 +237,7 @@ export const constantRoutes = [ ...@@ -237,7 +237,7 @@ export const constantRoutes = [
redirect: 'noredirect', redirect: 'noredirect',
children: [ children: [
{ {
path: '/radar/Bidding/details/:id(\\d+)', path: '/radar/Bidding/details/:id',
component: () => import('@/views/radar/Bidding/details'), component: () => import('@/views/radar/Bidding/details'),
name: 'BiddingDetails', name: 'BiddingDetails',
meta: { title: '招标计划详情', icon: 'radar' } meta: { title: '招标计划详情', icon: 'radar' }
......
...@@ -492,6 +492,7 @@ export default { ...@@ -492,6 +492,7 @@ export default {
.img.img1{ .img.img1{
margin-right: 2px; margin-right: 2px;
background: url('../../../../src/assets/images/project/add_2.png')no-repeat center center; background: url('../../../../src/assets/images/project/add_2.png')no-repeat center center;
background-size: 100%;
} }
.w88{ .w88{
width: 88px; width: 88px;
...@@ -528,7 +529,8 @@ export default { ...@@ -528,7 +529,8 @@ export default {
} }
>img{ >img{
float: right; float: right;
margin: 3px 0 0 4px margin: 3px 0 0 4px;
width: 14px;
} }
} }
} }
......
...@@ -45,8 +45,8 @@ ...@@ -45,8 +45,8 @@
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name"> <div class="cooperate-name">
<el-input v-model="form.value" :placeholder="form.placeholder"></el-input> <el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<span @click="changeSelect">搜索</span> <span :id="'detailFocus'+i" @click="changeSelect">搜索</span>
</div> </div>
</template> </template>
<!-- 多选 --> <!-- 多选 -->
...@@ -117,6 +117,9 @@ export default { ...@@ -117,6 +117,9 @@ export default {
methods: { methods: {
changeSelect(){ changeSelect(){
this.$emit('handle-search') this.$emit('handle-search')
},
clickFocus(e){
document.getElementById(e).classList.toggle('span-ba')
} }
} }
} }
...@@ -183,13 +186,18 @@ export default { ...@@ -183,13 +186,18 @@ export default {
border-left: 0; border-left: 0;
cursor: pointer; cursor: pointer;
} }
.span-ba{
color: #ffffff;
background: #0081FF;
border: 1px solid #0081FF;
}
::v-deep .el-input{ ::v-deep .el-input{
flex: 1; flex: 1;
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
border-right: 0; border-right: 0;
border-radius: 2px 0 2px 0; border-radius: 2px 0 2px 0;
width: 259px; width: 180px;
} }
} }
.fromTime{ .fromTime{
...@@ -208,6 +216,22 @@ export default { ...@@ -208,6 +216,22 @@ export default {
::v-deep .form-content-width{ ::v-deep .form-content-width{
width: 170px; width: 170px;
} }
::v-deep .selectTag{
.el-select__tags{
.el-tag{
&:first-child{
width: 90px;
}
}
}
}
::v-deep .el-select__tags{
.el-tag{
&:first-child{
width: 100%;
}
}
}
} }
} }
</style> </style>
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
<template v-if="form.type==4"> <template v-if="form.type==4">
<el-select <el-select
class="form-content-width" class="form-content-width"
:class="form.value.length > 1 ? 'selectTag' : ''"
v-model="form.value" v-model="form.value"
multiple multiple
collapse-tags collapse-tags
...@@ -247,6 +248,22 @@ export default { ...@@ -247,6 +248,22 @@ export default {
::v-deep .form-content-width{ ::v-deep .form-content-width{
width: 170px; width: 170px;
} }
::v-deep .selectTag{
.el-select__tags{
.el-tag{
&:first-child{
width: 90px;
}
}
}
}
::v-deep .el-select__tags{
.el-tag{
&:first-child{
width: 100%;
}
}
}
} }
.ability-total{ .ability-total{
font-size: 12px; font-size: 12px;
......
<template>
<div class="no-data">
<div class="no-data-box">
<img :src="noData" alt="暂时没有找到相关数据" />
<span>暂时没有找到相关数据</span>
</div>
</div>
</template>
<script>
export default {
name: "NoData",
props: {
},
data() {
return {
noData: require("@/assets/images/detail/noData.png")
}
},
methods:{
}
}
</script>
<style lang="scss" scoped>
.no-data {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #999999;
text-shadow: 0px 0px 10px rgba(0, 37, 106, 0.10000000149011612);
width: 100%;
height: 100%;
min-height: 140px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
border-radius: 0px 0px 0px 0px;
opacity: 1;
border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 54px;
height: 69px;
margin-bottom: 16px;
}
}
}
</style>
...@@ -143,12 +143,7 @@ export default { ...@@ -143,12 +143,7 @@ export default {
components: { components: {
Detail Detail
}, },
props: { props: ['customerIds'],
customerIds: {
type: String,
default: ''
}
},
data() { data() {
return { return {
ifEmpty:false, ifEmpty:false,
...@@ -522,7 +517,7 @@ export default { ...@@ -522,7 +517,7 @@ export default {
::v-deep .cooperate-detail{ ::v-deep .cooperate-detail{
.miantitle, .app-container{ .miantitle, .app-container{
margin: 12px 0; //margin: 12px 0;
} }
} }
......
...@@ -21,11 +21,11 @@ ...@@ -21,11 +21,11 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="agency" slot-scope="scope"> <template slot="agency" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link> <router-link :to="`/enterprise/${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> <div v-else v-html="scope.row.agency || '--'"></div>
</template> </template>
<template slot="projectInfo" slot-scope="scope"> <template slot="projectInfo" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link> <router-link :to="`/radar/Tender/details/${scope.row.projectInfo.bid}`" tag="a" class="a-link" v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link>
<div v-else v-html="scope.row.projectInfo.dealTitle || '--'"></div> <div v-else v-html="scope.row.projectInfo.dealTitle || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="name" slot-scope="scope"> <template slot="name" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name" v-html="scope.row.name"></router-link> <router-link :to="`/radar/BidRecord/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name" v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div> <div v-else v-html="scope.row.name || '--'"></div>
</template> </template>
<template slot="source" slot-scope="scope"> <template slot="source" slot-scope="scope">
...@@ -80,9 +80,11 @@ export default { ...@@ -80,9 +80,11 @@ export default {
this.tableDataTotal = res.total this.tableDataTotal = res.total
}, },
handlePic(url){ handlePic(url){
if(url){
window.open(url, "_blank") window.open(url, "_blank")
} }
} }
}
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<template slot="dealTitle" slot-scope="scope"> <template slot="dealTitle" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.fileUrlL" @click="handlePic(scope.row.fileUrlL)"/> <img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.fileUrlL" @click="handlePic(scope.row.fileUrlL)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle"></router-link> <router-link :to="`/radar/Tender/details/${scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle"></router-link>
<span v-else v-html="scope.row.dealTitle || '--'"></span> <span v-else v-html="scope.row.dealTitle || '--'"></span>
</div> </div>
</template> </template>
...@@ -45,20 +45,10 @@ import {bidCooperatePage} from '@/api/detail/party-a/dealings' ...@@ -45,20 +45,10 @@ import {bidCooperatePage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
props: { props: [
'data': { 'data',
type: Object, 'title'
default: () => { ],
return {}
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: { components: {
HeadDetailForm HeadDetailForm
}, },
...@@ -106,7 +96,9 @@ export default { ...@@ -106,7 +96,9 @@ export default {
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
handlePic(url){ handlePic(url){
if(url){
window.open(url, "_blank") window.open(url, "_blank")
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/> <img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link> <div class="a-link" @click="handlePic(scope.row.sourceUrl)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>-->
<span v-else v-html="scope.row.projectAllName || '--'"></span> <span v-else v-html="scope.row.projectAllName || '--'"></span>
</div> </div>
</template> </template>
...@@ -45,26 +46,11 @@ import {clientProjectPage} from '@/api/detail/party-a/dealings' ...@@ -45,26 +46,11 @@ import {clientProjectPage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
props: { props: [
'data': { 'data',
type: Object, 'company-id',
default: () => { 'title'
return {} ],
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: { components: {
HeadDetailForm HeadDetailForm
}, },
...@@ -114,7 +100,9 @@ export default { ...@@ -114,7 +100,9 @@ export default {
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
handlePic(url){ handlePic(url){
if(url){
window.open(url, "_blank") window.open(url, "_blank")
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/> <img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link> <div class="a-link" @click="handlePic(scope.row.sourceUrl)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>-->
<span v-else v-html="scope.row.projectAllName || '--'"></span> <span v-else v-html="scope.row.projectAllName || '--'"></span>
</div> </div>
</template> </template>
...@@ -45,26 +46,11 @@ import { supplierProjectPage } from '@/api/detail/party-a/dealings' ...@@ -45,26 +46,11 @@ import { supplierProjectPage } from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
props: { props: [
'data': { 'data',
type: Object, 'company-id',
default: () => { 'title'
return {} ],
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: { components: {
HeadDetailForm HeadDetailForm
}, },
...@@ -114,7 +100,9 @@ export default { ...@@ -114,7 +100,9 @@ export default {
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
handlePic(url){ handlePic(url){
if(url){
window.open(url, "_blank") window.open(url, "_blank")
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
......
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="companyName" slot-scope="scope"> <template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectId&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link> <div class="a-link" @click="handleDetail(scope.row.projectInfo)" v-if="scope.row.projectInfo&&scope.row.projectInfo.sourceUrl&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName" style="cursor: pointer"></div>
<div v-else v-html="scope.row.projectAllName || '--'"></div> <!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName"></router-link>-->
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
</tables> </tables>
...@@ -95,6 +96,11 @@ export default { ...@@ -95,6 +96,11 @@ export default {
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
} }
} }
} }
......
...@@ -21,11 +21,12 @@ ...@@ -21,11 +21,12 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName " v-html="scope.row.projectAllName"></router-link> <div class="a-link" @click="handleDetail(scope.row)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName " v-html="scope.row.projectAllName"></router-link>-->
<div v-else v-html="scope.row.projectAllName || '--'"></div> <div v-else v-html="scope.row.projectAllName || '--'"></div>
</template> </template>
<template slot="companyName" slot-scope="scope"> <template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName">{{ scope.row.companyName }}</router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName">{{ scope.row.companyName }}</router-link>
<div v-else>{{ scope.row.companyName || '--' }}</div> <div v-else>{{ scope.row.companyName || '--' }}</div>
</template> </template>
</tables> </tables>
...@@ -101,6 +102,11 @@ export default { ...@@ -101,6 +102,11 @@ export default {
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
} }
} }
} }
......
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="companyName" slot-scope="scope"> <template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link> <router-link :to="`/enterprise/${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> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectId&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link> <div class="a-link" @click="handleDetail(scope.row.projectInfo)" v-if="scope.row.projectInfo&&scope.row.projectInfo.sourceUrl&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName" style="cursor: pointer"></div>
<div v-else v-html="scope.row.projectAllName || '--'"></div> <!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName"></router-link>-->
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
</tables> </tables>
...@@ -95,6 +96,11 @@ export default { ...@@ -95,6 +96,11 @@ export default {
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
} }
} }
} }
......
...@@ -81,12 +81,7 @@ export default { ...@@ -81,12 +81,7 @@ export default {
components: { components: {
Tables Tables
}, },
props: { props: ['customerIds'],
customerIds: {
type: String,
default: ''
}
},
data() { data() {
return { return {
ifEmpty:false, ifEmpty:false,
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
<div class="financial-header"> <div class="financial-header">
<div class="common-title">财务简析</div> <div class="common-title">财务简析</div>
<div class="flex-box header-box"> <div class="flex-box header-box">
<div class="header-item">总资产<div class="header-item-amount" v-if="financialDetail.totalAssets"><span>{{financialDetail.totalAssets || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div> <div class="header-item">总资产<div class="header-item-amount"><template v-if="financialDetail.totalAssets"><span>{{saveFixed(financialDetail.totalAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount" v-if="financialDetail.belongNetAssets"><span>{{financialDetail.belongNetAssets || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div> <div class="header-item">净资产<div class="header-item-amount"><template v-if="financialDetail.belongNetAssets"><span>{{saveFixed(financialDetail.belongNetAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount" v-if="financialDetail.operatingIncome"><span>{{financialDetail.operatingIncome || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div> <div class="header-item">营业收入<div class="header-item-amount"><template v-if="financialDetail.operatingIncome"><span>{{saveFixed(financialDetail.operatingIncome)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
<div class="header-item">授信余额<div class="header-item-amount" v-if="financialDetail.creditBalance"><span>{{financialDetail.creditBalance || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header04_ico.png"></div> <div class="header-item">授信余额<div class="header-item-amount"><template v-if="financialDetail.creditBalance"><span>{{saveFixed(financialDetail.creditBalance)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header04_ico.png"></div>
</div> </div>
</div> </div>
<div class="financial-zcqk"> <div class="financial-zcqk">
...@@ -14,27 +14,39 @@ ...@@ -14,27 +14,39 @@
<ul class="zcqk-list"> <ul class="zcqk-list">
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''"> <li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''"> <div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{item.amount}}</i>亿元</span></div> <div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span><span v-else>--</span></div>
<div class="zcqk-list-intro">{{item.intro}}</div> <div class="zcqk-list-intro">{{item.intro}}</div>
</div> </div>
</li> </li>
</ul> </ul>
</div> </div>
<div class="financial-ylnl">
<div class="common-title">盈利能力</div>
<ul class="flex-box ylnl-list">
<li v-for="(item, index) in ylnlList" :key="index" :style="index===0?'border-left: 0;':''">
<div class="ylnl-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="ylnl-title">{{item.name}}</div>
</li>
</ul>
</div>
<div class="financial-zwqk"> <div class="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div> <div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box"> <div class="flex-box zwqk-box">
<div class="zwqk-info"> <div class="zwqk-info">
<div class="zwqk-title">总负债</div> <div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><span>{{financialDetail.totalLiabilities || '0'}}</span>亿元</div> <div class="zwqk-amount"><span>{{financialDetail.totalLiabilities?saveFixed(financialDetail.totalLiabilities):'0'}}</span>亿元</div>
<div class="zwqk-pro">资产负债率 {{financialDetail.tdr+'%' || '--'}}</div> <div class="zwqk-pro">资产负债率 {{financialDetail.tdr?saveFixed(financialDetail.tdr)+'%':'--'}}</div>
<img src="@/assets/images/detail/financial/zwqk_bg_ico.png"> <img src="@/assets/images/detail/financial/zwqk_bg_ico.png">
</div> </div>
<div id="myEcharts" style="width: 444px;height:250px; margin: 0 auto;"></div> <div id="myEcharts" style="width: 444px;height:250px; margin: 0 auto;" v-if="echartsData.length>0"></div>
<div class="fin-no-data" v-else>
<no-data />
</div>
</div> </div>
<div class="flex-box zwqk-list"> <div class="flex-box zwqk-list">
<div class="list-item" v-for="(item, index) in zwqkList" :key="index"> <div class="list-item" v-for="(item, index) in zwqkList" :key="index">
<div class="flex-box list-item-all">{{item.name}}<img :src="item.ico"></div> <div class="flex-box list-item-all">{{item.name}}<img :src="item.ico"></div>
<div class="list-item-amount"><template v-if="item.amount"><span>{{item.amount}}</span>{{item.unit}}</template><template v-else>--</template></div> <div class="list-item-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="list-item-pro">{{item.intro}}<span>{{item.introPro || '--'}}</span></div> <div class="list-item-pro">{{item.intro}}<span>{{item.introPro || '--'}}</span></div>
</div> </div>
</div> </div>
...@@ -44,7 +56,7 @@ ...@@ -44,7 +56,7 @@
<ul class="zcqk-list"> <ul class="zcqk-list">
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''"> <li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''"> <div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{item.amount}}</i>{{item.unit}}</span></div> <div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span></div>
<div class="zcqk-list-intro">{{item.intro}}</div> <div class="zcqk-list-intro">{{item.intro}}</div>
</div> </div>
</li> </li>
...@@ -54,13 +66,19 @@ ...@@ -54,13 +66,19 @@
</template> </template>
<script> <script>
import {saveFixed} from "@/assets/js/common"
import { financial } from '@/api/detail/party-a/financial' import { financial } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import NoData from '../component/noData'
export default { export default {
name: 'Financial', name: 'Financial',
props: ['companyId'], props: ['companyId'],
components: {
NoData
},
data() { data() {
return { return {
saveFixed,
financialDetail: {}, financialDetail: {},
// 资产情况 // 资产情况
zcqkList: [ zcqkList: [
...@@ -82,6 +100,12 @@ export default { ...@@ -82,6 +100,12 @@ export default {
{ name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '', amount: '', unit: '亿元'} { name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '', amount: '', unit: '亿元'}
], ],
echartsData: [], echartsData: [],
ylnlList: [
{ name: '营业收入', amount: '', unit: '亿元'},
{ name: '净资产收益率', amount: '', unit: '%'},
{ name: '归母净利润', amount: '', unit: '亿元'},
{ name: '公益性&准公益性主营占比', amount: '', unit: '%'},
],
// 资金情况 // 资金情况
zjqkList: [ zjqkList: [
{ name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '', unit: '亿元'}, { name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '', unit: '亿元'},
...@@ -117,7 +141,7 @@ export default { ...@@ -117,7 +141,7 @@ export default {
this.tableLoading = true this.tableLoading = true
let res = await financial({cid:this.companyId}) let res = await financial({cid:this.companyId})
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200 && res.data){
this.financialDetail = res.data this.financialDetail = res.data
//资产情况 //资产情况
let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail
...@@ -131,7 +155,13 @@ export default { ...@@ -131,7 +155,13 @@ export default {
let zwPercentObj = { econData_006, econData_005, nonStandardRatio, guaranteeRatio } let zwPercentObj = { econData_006, econData_005, nonStandardRatio, guaranteeRatio }
this.zwqkList.forEach((item, index) => { this.zwqkList.forEach((item, index) => {
item.amount = zwAmountObj[Object.keys(zwAmountObj)[index]] item.amount = zwAmountObj[Object.keys(zwAmountObj)[index]]
item.introPro = zwPercentObj[Object.keys(zwPercentObj)[index]]?zwPercentObj[Object.keys(zwPercentObj)[index]]+'%':'' item.introPro = zwPercentObj[Object.keys(zwPercentObj)[index]]?saveFixed(zwPercentObj[Object.keys(zwPercentObj)[index]])+'%':''
})
//盈利能力
let { operatingIncome, roe, belongNetProfit, econData_001 } = this.financialDetail
let ylnlObj = { operatingIncome, roe, belongNetProfit, econData_001 }
this.ylnlList.forEach((item, index) => {
item.amount = ylnlObj[Object.keys(ylnlObj)[index]]
}) })
//资金情况 //资金情况
let { netOperatingCashFlow, cashRatio, netFinancingCashFlow, cashFlowRatio, netInvestmentCashFlow, cashDebtRatio } = this.financialDetail let { netOperatingCashFlow, cashRatio, netFinancingCashFlow, cashFlowRatio, netInvestmentCashFlow, cashDebtRatio } = this.financialDetail
...@@ -285,7 +315,7 @@ export default { ...@@ -285,7 +315,7 @@ export default {
img{ img{
width: 84px; width: 84px;
height: 115px; height: 115px;
right: -10px; right: -4px;
bottom: -18px; bottom: -18px;
} }
} }
...@@ -367,6 +397,33 @@ export default { ...@@ -367,6 +397,33 @@ export default {
} }
} }
} }
.financial-ylnl{
background: #FFFFFF;
padding: 24px 16px;
margin-top: 12px;
border-radius: 4px;
.ylnl-list{
justify-content: space-between;
li{
color: #232323;
width: 25%;
height: 72px;
padding-top: 18px;
font-size: 16px;
text-align: center;
border-left: 1px solid #EEEEEE;
.ylnl-amount{
font-size: 14px;
font-weight: bold;
padding-bottom: 4px;
span{
font-size: 18px;
margin-right: 4px;
}
}
}
}
}
.financial-zwqk{ .financial-zwqk{
background: #FFFFFF; background: #FFFFFF;
padding: 24px 16px; padding: 24px 16px;
...@@ -376,7 +433,8 @@ export default { ...@@ -376,7 +433,8 @@ export default {
padding-top: 20px; padding-top: 20px;
justify-content: normal; justify-content: normal;
.zwqk-info{ .zwqk-info{
width: 50%; width: calc(50% - 11px);
margin-right: 11px;
height: 248px; height: 248px;
padding: 54px 24px 10px 24px; padding: 54px 24px 10px 24px;
color: #4D4C4B; color: #4D4C4B;
...@@ -421,6 +479,11 @@ export default { ...@@ -421,6 +479,11 @@ export default {
margin-top: 33px; margin-top: 33px;
} }
} }
.fin-no-data{
width: calc(50% - 11px);
height: 250px;
margin-left: 11px;
}
} }
.zwqk-list{ .zwqk-list{
justify-content: space-between; justify-content: space-between;
...@@ -435,6 +498,10 @@ export default { ...@@ -435,6 +498,10 @@ export default {
.list-item-all{ .list-item-all{
align-items: normal; align-items: normal;
justify-content: space-between; justify-content: space-between;
img{
width: 30px;
height: 30px;
}
} }
.list-item-amount{ .list-item-amount{
height: 39px; height: 39px;
......
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm" import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables" import Tables from "../component/Tables"
export default { export default {
...@@ -7,7 +8,7 @@ export default { ...@@ -7,7 +8,7 @@ export default {
}, },
data() { data() {
return { return {
encodeStr
} }
}, },
mounted() { mounted() {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/Tender/details/${scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="province" slot-scope="scope"> <template slot="province" slot-scope="scope">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/Bidding/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="province" slot-scope="scope"> <template slot="province" slot-scope="scope">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/debtProject/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
</tables> </tables>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
</tables> </tables>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/Establishment/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="isProjcet" slot-scope="scope"> <template slot="isProjcet" slot-scope="scope">
......
...@@ -19,15 +19,15 @@ ...@@ -19,15 +19,15 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="projectName" slot-scope="scope"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link> <router-link :to="`/radar/bxprozbgg/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="tenderee" slot-scope="scope"> <template slot="tenderee" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.tendereeId&&scope.row.tenderee " v-html="scope.row.tenderee"></router-link> <router-link :to="`/enterprise/${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> <div v-else v-html="scope.row.tenderee || '--'"></div>
</template> </template>
<template slot="agency" slot-scope="scope"> <template slot="agency" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency " v-html="scope.row.agency"></router-link> <router-link :to="`/enterprise/${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> <div v-else v-html="scope.row.agency || '--'"></div>
</template> </template>
<template slot="province" slot-scope="scope"> <template slot="province" slot-scope="scope">
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="name" slot-scope="scope"> <template slot="name" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name " v-html="scope.row.name"></router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name " v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div> <div v-else v-html="scope.row.name || '--'"></div>
<div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement"> <div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span> <span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span>
......
...@@ -2,31 +2,32 @@ ...@@ -2,31 +2,32 @@
<div class="flex-box app-container part-container"> <div class="flex-box app-container part-container">
<div class="bid-zbph"> <div class="bid-zbph">
<div class="common-title">招标偏好</div> <div class="common-title">招标偏好</div>
<template v-if="dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0">
<div class="flex-box zbph-item"> <div class="flex-box zbph-item">
<div>历史招标总数 <div>历史招标总数
<el-popover <el-popover
placement="top-start" placement="top-start"
trigger="hover" trigger="hover"
content="历史招标总数"> content="统计企业历年来公开招标总数">
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference"> <img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
</el-popover> </el-popover>
<span class="zbph-item-num">{{dataAll.bidAmount || '--'}}</span></div> <span class="zbph-item-num">{{dataAll.totalCount || '--'}}</span></div>
<div>近一年招标总数 <div>近一年招标总数
<el-popover <el-popover
placement="top-start" placement="top-start"
trigger="hover" trigger="hover"
content="近一年招标总数"> content="统计企业近一年公开招标总数">
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference"> <img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
</el-popover> </el-popover>
<span class="zbph-item-num">{{dataAll.lastYearCount || '--'}}</span></div> <span class="zbph-item-num">{{dataAll.lastYearCount || '--'}}</span></div>
<div>历史招标总额 <div>历史招标总额(万元)
<el-popover <el-popover
placement="top-start" placement="top-start"
trigger="hover" trigger="hover"
content="历史招标总额"> content="统计企业历年来公开招标项目总金额">
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference"> <img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
</el-popover> </el-popover>
<span class="zbph-item-num">{{dataAll.bidAmount || '--'}}</span></div> <span class="zbph-item-num">{{dataAll.bidAmount?parseFloat(dataAll.bidAmount.toFixed(6)):'--'}}</span></div>
</div> </div>
<div class="zbph-account">招标动态 <div class="zbph-account">招标动态
<div class="labels"> <div class="labels">
...@@ -36,6 +37,10 @@ ...@@ -36,6 +37,10 @@
</div> </div>
</div> </div>
<div id="myEcharts" style="width: 100%;height:250px; margin: 0 auto;"></div> <div id="myEcharts" style="width: 100%;height:250px; margin: 0 auto;"></div>
</template>
<div class="bid-no-data" v-else>
<no-data />
</div>
</div> </div>
<div class="bid-ywwl"> <div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div> <div class="common-title">业务往来供应商TOP5</div>
...@@ -56,7 +61,7 @@ ...@@ -56,7 +61,7 @@
prop="companyName" prop="companyName"
label="公司名称"> label="公司名称">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.companyName }}</router-link> <router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link">{{ scope.row.companyName }}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -76,13 +81,19 @@ ...@@ -76,13 +81,19 @@
</template> </template>
<script> <script>
import {encodeStr} from "@/assets/js/common"
import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview' import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import NoData from '../../component/noData'
export default { export default {
name: 'Bidding', name: 'Bidding',
props: ['companyId'], props: ['companyId'],
components: {
NoData
},
data() { data() {
return { return {
encodeStr,
datatype:'3',//切换类型 datatype:'3',//切换类型
dataAll: {}, dataAll: {},
dtdata:[],//数据 dtdata:[],//数据
...@@ -96,9 +107,6 @@ export default { ...@@ -96,9 +107,6 @@ export default {
this.handleSupplier() this.handleSupplier()
}, },
mounted() { mounted() {
this.$nextTick(()=>{
this.getDT(3)
})
}, },
methods: { methods: {
async handleBid(){ async handleBid(){
...@@ -106,6 +114,17 @@ export default { ...@@ -106,6 +114,17 @@ export default {
if(res.code==200){ if(res.code==200){
let {totalCount, lastYearCount, bidAmount} = res.data let {totalCount, lastYearCount, bidAmount} = res.data
this.dataAll = {totalCount, lastYearCount, bidAmount} this.dataAll = {totalCount, lastYearCount, bidAmount}
this.dtdata=res.data.groupCount.map(item=>{
return item.count
})
this.dttime=res.data.groupCount.map(item=>{
return item.span
})
if(this.dtdata.length>0&&this.dttime.length>0){
this.$nextTick(() => {
this.initDT(this.dtdata,this.dttime)
})
}
} }
}, },
async handleSupplier() { async handleSupplier() {
...@@ -113,6 +132,7 @@ export default { ...@@ -113,6 +132,7 @@ export default {
if(res.code==200){ if(res.code==200){
this.tableData = res.rows this.tableData = res.rows
this.tableData.forEach((item, index) => { this.tableData.forEach((item, index) => {
item.amount = item.amount?parseFloat(item.amount.toFixed(6)):0
item.ico = require(`@/assets/images/detail/overview/ywwl_top${index+1}.png`) item.ico = require(`@/assets/images/detail/overview/ywwl_top${index+1}.png`)
}) })
} }
...@@ -180,55 +200,7 @@ export default { ...@@ -180,55 +200,7 @@ export default {
}, },
getDT(type){ getDT(type){
this.datatype = type this.datatype = type
let time = new Date() this.handleBid()
let week = ['周一','周二','周三','周四','周五','周六','周日']
let weekdata = [200,150,300,240,400,380,460]
let monthdata = [400,200,350,170,190,280,260,308,406,387,458,695,125,360,512,546,298,365,458,536,345,200,150,300,240,400,380,460,472,365,547]
let yeardata = [1908,1500,2300,1456,2354,2564,1254,1236,4561,4521,1236,4561,3521]
let datas = []
let labels = []
switch (type) {
case 3:
time = time.getDay()
// week.length = time
weekdata.length = time
for(var i=0;i<7;i++){
if(i > time){
weekdata.push('')
}
}
labels = week
datas = weekdata
break;
case 2:
let days = new Date(time.getFullYear(),time.getMonth()+1,0).getDate()//获取到本月天数
time = time.getDate()
monthdata.length = time
for(var i=1;i<=days;i++){
labels.push(i+'日')
if(i > time){
monthdata.push("")
}
}
datas = monthdata
break;
case 1:
time = time.getMonth()+1
yeardata.length = time
for(var i=1;i<=12;i++){
labels.push(i+'月')
if(i>time){
yeardata.push('')
}
}
datas = yeardata
break;
default:
break;
}
this.dtdata = datas
this.dttime = labels
this.initDT(datas,labels)
} }
} }
} }
...@@ -269,6 +241,9 @@ export default { ...@@ -269,6 +241,9 @@ export default {
} }
} }
} }
.bid-no-data{
margin-top: 16px;
}
.zbph-account{ .zbph-account{
position: relative; position: relative;
font-weight: bold; font-weight: bold;
...@@ -315,6 +290,8 @@ export default { ...@@ -315,6 +290,8 @@ export default {
.table-item{ .table-item{
margin-top:15px; margin-top:15px;
.ywwl-ico{ .ywwl-ico{
width: 36px;
height: 36px;
margin-left: -6px; margin-left: -6px;
} }
::v-deep .el-table .el-table__body-wrapper tr:nth-child(2n){ ::v-deep .el-table .el-table__body-wrapper tr:nth-child(2n){
......
...@@ -6,7 +6,10 @@ ...@@ -6,7 +6,10 @@
<el-tab-pane label="按项目" name="1"></el-tab-pane> <el-tab-pane label="按项目" name="1"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="flex-box clue-box"> <div class="flex-box clue-box">
<div class="clue-echarts"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div> <div class="clue-echarts" v-if="viewData.length>0"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="busc-no-data" v-else>
<no-data />
</div>
<div class="table-item"> <div class="table-item">
<el-table <el-table
:data="viewData" :data="viewData"
...@@ -38,9 +41,13 @@ ...@@ -38,9 +41,13 @@
import {projectTenderDataGroup} from '@/api/detail/party-a/overview' import {projectTenderDataGroup} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import {changePath} from "@/assets/js/common" import {changePath} from "@/assets/js/common"
import NoData from '../../component/noData'
export default { export default {
name: 'Busclue', name: 'Busclue',
props: ['companyId', 'statistic'], props: ['companyId', 'statistic'],
components: {
NoData
},
data() { data() {
return { return {
viewData:[], viewData:[],
...@@ -57,7 +64,6 @@ export default { ...@@ -57,7 +64,6 @@ export default {
} }
}, },
created() { created() {
this.handleStatistic()
this.handleQuery() this.handleQuery()
}, },
mounted() { mounted() {
...@@ -65,13 +71,17 @@ export default { ...@@ -65,13 +71,17 @@ export default {
methods: { methods: {
async handleQuery(){ async handleQuery(){
let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex}) let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex})
if(res.code==200){ if(res.code==200 && res.data.length>0){
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur) let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
this.viewData = data.map(item => { this.viewData = data.map(item => {
let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))+'%'} let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))+'%'}
return it return it
}) })
if(this.viewData.length>0){
this.$nextTick(() => {
this.getDT() this.getDT()
})
}
} }
}, },
getDT(val){ getDT(val){
...@@ -120,6 +130,11 @@ export default { ...@@ -120,6 +130,11 @@ export default {
changePath(this, it.pathName) changePath(this, it.pathName)
} }
} }
},
watch: {
statistic(newVal, oldVal) {
this.handleStatistic()
}
} }
} }
</script> </script>
...@@ -145,10 +160,13 @@ export default { ...@@ -145,10 +160,13 @@ export default {
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
align-items: normal; align-items: normal;
margin-top: 4px; margin-top: 8px;
.clue-echarts{ .clue-echarts{
width: calc(50% - 8px); width: calc(50% - 8px);
} }
.busc-no-data{
width: calc(50% - 8px);
}
.table-item{ .table-item{
width: calc(50% - 8px); width: calc(50% - 8px);
::v-deep .el-table--border .el-table__cell{ ::v-deep .el-table--border .el-table__cell{
......
...@@ -133,19 +133,20 @@ export default { ...@@ -133,19 +133,20 @@ export default {
props: ['companyId', 'companyInfo', 'statistic'], props: ['companyId', 'companyInfo', 'statistic'],
data() { data() {
return { return {
newStatic: null,
labelList: [], //企业标签 labelList: [], //企业标签
claimLoading: false, claimLoading: false,
ifClaim: false, //是否认领 ifClaim: false, //是否认领
showMore: false, showMore: false,
showState: false, showState: false,
graphList: [ graphList: [
{id: 1, name:'业务往来', intro:[{id: 101, name:'客户', val:0, category:'global', field:'customer'},{id: 102, name:'供应商', val:0, category:'global', field:'supplier'}], ico:require('@/assets/images/detail/overview/company_ywwl.png')}, {id: 1, name:'业务往来', isShow:true, intro:[{id: 101, name:'客户', val:0, category:'global', field:'customer'},{id: 102, name:'供应商', val:0, category:'global', field:'supplier'}], ico:require('@/assets/images/detail/overview/company_ywwl.png')},
{id: 2, name:'商机线索', intro:[{id: 201, name:'专项债项目', val:0, category:'xxx', field:'yy'},{id: 202, name:'招标计划', val:0, category:'xxx', field:'zz'}], ico:require('@/assets/images/detail/overview/company_sjxs.png')}, {id: 2, name:'商机线索', isShow:true, intro:[{id: 201, name:'专项债项目', val:0, category:'xxx', field:'yy'},{id: 202, name:'招标计划', val:0, category:'xxx', field:'zz'}], ico:require('@/assets/images/detail/overview/company_sjxs.png')},
{id: 3, name:'城投拿地', intro:[{id: 301, name:'土地交易', val:0, category:'global', field:'landInfo'},{id: 302, name:'行政许可', val:0, category:'business', field:'adminLicensing'}], ico:require('@/assets/images/detail/overview/company_ctnd.png')}, {id: 3, name:'城投拿地', isShow:true, intro:[{id: 301, name:'土地交易', val:0, category:'global', field:'landInfo'},{id: 302, name:'行政许可', val:0, category:'business', field:'adminLicensing'}], ico:require('@/assets/images/detail/overview/company_ctnd.png')},
{id: 4, name:'对外投资', intro:[{id: 401, name:'企业经营实力展现'}], ico:require('@/assets/images/detail/overview/company_dwtz.png')}, {id: 4, name:'对外投资', isShow:true, intro:[{id: 401, name:'企业经营实力展现'}], ico:require('@/assets/images/detail/overview/company_dwtz.png')},
{id: 5, name:'股权穿透', intro:[{id: 501, name:'瞬息掌握企业关系'}], ico:require('@/assets/images/detail/overview/company_gqct.png')}, {id: 5, name:'股权穿透', isShow:true, intro:[{id: 501, name:'瞬息掌握企业关系'}], ico:require('@/assets/images/detail/overview/company_gqct.png')},
{id: 6, name:'企业架构', intro:[{id: 601, name:'企业架构关联图'}], ico:require('@/assets/images/detail/overview/company_qyjg.png')}, {id: 6, name:'企业架构', isShow:true, intro:[{id: 601, name:'企业架构关联图'}], ico:require('@/assets/images/detail/overview/company_qyjg.png')},
{id: 7, name:'工商信息', intro:[{id: 701, name:'企业基础工商登记信息'}], ico:require('@/assets/images/detail/overview/company_gsxx.png')} {id: 7, name:'工商信息', isShow:true, intro:[{id: 701, name:'企业基础工商登记信息'}], ico:require('@/assets/images/detail/overview/company_gsxx.png')}
], //企业链图 ], //企业链图
//风险扫描 //风险扫描
labelArr:['失信联合惩戒企业','司法纠纷','注销'], //负向经营状态 labelArr:['失信联合惩戒企业','司法纠纷','注销'], //负向经营状态
...@@ -153,13 +154,11 @@ export default { ...@@ -153,13 +154,11 @@ export default {
} }
}, },
created() { created() {
this.handleStatistic()
this.getCompanyInfo() //处理曾用名
}, },
mounted() { mounted() {
this.getClaimStatus() //获取企业认领状态 this.getClaimStatus() //获取企业认领状态
this.companySwiper() //swiper滚动板块
this.handleWidth() //企业背景是否收起 this.handleWidth() //企业背景是否收起
this.companySwiper() //swiper滚动板块
}, },
methods: { methods: {
//认领 //认领
...@@ -186,20 +185,27 @@ export default { ...@@ -186,20 +185,27 @@ export default {
}) })
}, },
getCompanyInfo(){ getCompanyInfo(){
if(this.companyInfo.historyNames && typeof this.companyInfo.historyNames=='string'){ //曾用名 if(this.companyInfo.historyNames && typeof this.companyInfo.historyNames=='string'){ //曾用名)
this.companyInfo.historyNames = JSON.parse(this.companyInfo.historyNames) this.companyInfo.historyNames = JSON.parse(this.companyInfo.historyNames)
} }
}, },
handleStatistic() { handleStatistic() {
this.graphList.forEach((item, index) => { this.graphList.forEach((item, index) => {
let number = null
if(item.intro){ if(item.intro){
item.intro.forEach((it, idx) => { item.intro.forEach((it, idx) => {
if(it.category || it.field){ if(it.category || it.field){
it.val = this.statistic[it.category]?this.statistic[it.category][it.field]:0 it.val = this.statistic[it.category]?this.statistic[it.category][it.field]:0
number +=it.val
} }
}) })
} }
if(number===0){
item.isShow = false
}
}) })
this.graphList = this.graphList.filter(item => item.isShow)
this.companySwiper() //swiper滚动板块
}, },
//获取认领状态 //获取认领状态
async getClaimStatus(){ async getClaimStatus(){
...@@ -259,7 +265,11 @@ export default { ...@@ -259,7 +265,11 @@ export default {
}, },
watch: { watch: {
companyInfo(newVal, oldVal) { companyInfo(newVal, oldVal) {
this.getCompanyInfo() //处理曾用名
this.handleWidth() this.handleWidth()
},
statistic(newVal, oldVal) {
this.handleStatistic()
} }
} }
} }
......
<template> <template>
<div class="app-container operations-container"> <div class="app-container operations-container">
<div class="common-title">公司经营</div> <div class="common-title">公司经营</div>
<div class="part-swiper"> <div class="part-swiper" v-if="operList.length>0">
<div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''"> <div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''">
<ul class="swiper-wrapper"> <ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index"> <li class="swiper-slide" v-for="(item, index) in operList" :key="index">
<div class="swiper-div"> <div class="swiper-div">
<div class="operations-title">{{item.bratingSubjectLevel}}-<span>{{item.ratingDate}}</span></div> <div class="operations-title">{{item.bratingSubjectLevel}}-<span>{{item.ratingDate}}</span></div>
<div class="flex-box text-cl1 operations-info"> <div class="flex-box operations-info">
{{item.bondType}} <div>{{item.bondType || '--'}}</div>
<span><img src="@/assets/images/detail/overview/oper_source.png">{{item.creditRatingAgency}}</span> <span class="text-cl1"><img src="@/assets/images/detail/overview/oper_source.png">{{item.creditRatingAgency || '--'}}</span>
</div> </div>
</div> </div>
</li> </li>
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
<div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div> <div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div>
<div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div> <div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div> </div>
<div class="part-swiper" v-else>
<no-data />
</div>
<div class="flex-box operations-list"> <div class="flex-box operations-list">
<div class="list-item" v-for="(item, index) in gsjyList" :key="index"> <div class="list-item" v-for="(item, index) in gsjyList" :key="index">
<div class="flex-box list-item-all"><img :src="item.ico">{{item.name}}</div> <div class="flex-box list-item-all"><img :src="item.ico">{{item.name}}</div>
...@@ -31,9 +34,13 @@ ...@@ -31,9 +34,13 @@
import {bondCreditRating} from '@/api/detail/party-a/overview' import {bondCreditRating} from '@/api/detail/party-a/overview'
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js') var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import "@/assets/lib/swiper/swiper-bundle.css" import "@/assets/lib/swiper/swiper-bundle.css"
import NoData from '../../component/noData'
export default { export default {
name: 'Overview', name: 'Overview',
props: ['companyId', 'financial'], props: ['companyId', 'financial'],
components: {
NoData
},
data() { data() {
return { return {
operList: [], operList: [],
...@@ -48,7 +55,6 @@ export default { ...@@ -48,7 +55,6 @@ export default {
}, },
created() { created() {
this.handleQuery() this.handleQuery()
this.handleFinancial()
}, },
mounted() { mounted() {
this.companySwiper() this.companySwiper()
...@@ -68,6 +74,9 @@ export default { ...@@ -68,6 +74,9 @@ export default {
let res = await bondCreditRating({cid: this.companyId}) let res = await bondCreditRating({cid: this.companyId})
if(res.code==200){ if(res.code==200){
this.operList = res.data this.operList = res.data
this.$nextTick(() => {
this.companySwiper()
})
} }
}, },
handleFinancial(){ handleFinancial(){
...@@ -75,10 +84,15 @@ export default { ...@@ -75,10 +84,15 @@ export default {
let { totalAssets, belongNetAssets, creditBalance, operatingIncome, totalLiabilities } = this.financial let { totalAssets, belongNetAssets, creditBalance, operatingIncome, totalLiabilities } = this.financial
let jyqkObj = { totalAssets, belongNetAssets, creditBalance, operatingIncome, totalLiabilities } let jyqkObj = { totalAssets, belongNetAssets, creditBalance, operatingIncome, totalLiabilities }
this.gsjyList.forEach((item, index) => { this.gsjyList.forEach((item, index) => {
item.amount = jyqkObj[Object.keys(jyqkObj)[index]] item.amount = jyqkObj[Object.keys(jyqkObj)[index]]?parseFloat(jyqkObj[Object.keys(jyqkObj)[index]].toFixed(2)):0
}) })
} }
} }
},
watch: {
financial(newVal, oldVal) {
this.handleFinancial()
}
} }
} }
</script> </script>
...@@ -119,8 +133,12 @@ export default { ...@@ -119,8 +133,12 @@ export default {
justify-content: space-between; justify-content: space-between;
font-size: 14px; font-size: 14px;
color: #416587; color: #416587;
div{
flex-shrink: 0;
}
span{ span{
font-size: 12px; font-size: 12px;
margin-left: 6px;
img{ img{
width: 10px; width: 10px;
height: 10px; height: 10px;
......
...@@ -6,24 +6,36 @@ ...@@ -6,24 +6,36 @@
<el-tab-pane label="对外投资" name="second"></el-tab-pane> <el-tab-pane label="对外投资" name="second"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="table-item"> <div class="table-item">
<div class="rela-person" v-if="activeName=='first'">实际控制人:<router-link to="" tag="a" class="a-link">{{financial&&financial.actualController || '--'}}</router-link></div> <div class="rela-person" v-if="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
<el-table :data="holderData" border style="width: 100%" v-if="activeName=='first'"> <el-table :data="holderData" border style="width: 100%" v-show="activeName=='first'">
<el-table-column label="序号" width="55" align="left" fixed> <el-table-column label="序号" width="55" align="left" fixed>
<template slot-scope="scope">{{ holderParams.pageNum * holderParams.pageSize - holderParams.pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ holderParams.pageNum * holderParams.pageSize - holderParams.pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="stockName" min-width="140" label="股东名称"></el-table-column> <el-table-column prop="stockName" min-width="140" label="股东名称"></el-table-column>
<el-table-column prop="xxx" label="持股数量(亿)"></el-table-column> <el-table-column prop="shouldCapiConv" label="持股数量(亿)"></el-table-column>
<el-table-column prop="xxx" label="持股比例"></el-table-column> <el-table-column label="持股比例">
<el-table-column prop="xxx" label="法定代表人"></el-table-column> <template slot-scope="scope">
<el-table-column prop="xxx" label="成立日期"></el-table-column> <span>{{scope.row.stockPercent?parseFloat(Number(scope.row.stockPercent*100).toFixed(4))+'%':'--'}}</span>
</template>
</el-table-column>
<el-table-column label="法定代表人">
<template slot-scope="scope">
<span>{{scope.row.corporatePerson || '--'}}</span>
</template>
</el-table-column>
<el-table-column label="成立日期">
<template slot-scope="scope">
<span>{{scope.row.registeredDate || '--'}}</span>
</template>
</el-table-column>
</el-table> </el-table>
<el-table :data="shipData" border style="width: 100%" v-else> <el-table :data="shipData" border style="width: 100%" v-show="activeName=='second'">
<el-table-column label="序号" width="55" align="left" fixed> <el-table-column label="序号" width="55" align="left" fixed>
<template slot-scope="scope">{{ shipParams.pageNum * shipParams.pageSize - shipParams.pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ shipParams.pageNum * shipParams.pageSize - shipParams.pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="investName" min-width="140" label="被投资企业名称"> <el-table-column min-width="140" label="被投资企业名称">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName" v-html="scope.row.investName"></router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName" v-html="scope.row.investName"></router-link>
<div v-else v-html="scope.row.investName || '--'"></div> <div v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement"> <div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span> <span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
...@@ -41,18 +53,20 @@ ...@@ -41,18 +53,20 @@
</el-table-column> </el-table-column>
<el-table-column prop="shouldCapi" label="认缴出资额(万元)"></el-table-column> <el-table-column prop="shouldCapi" label="认缴出资额(万元)"></el-table-column>
</el-table> </el-table>
<div class="rela-more" v-if="activeName=='second'&& shipTotal>shipParams.pageSize"><router-link to="" tag="a" class="a-link">查看更多数据 ></router-link></div> <div class="rela-more" v-if="activeName=='second'&& shipTotal>shipParams.pageSize"><span class="a-link" @click="handlePath">查看更多数据 ></span></div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {encodeStr, changePath} from "@/assets/js/common"
import {bestStockPage, investment} from '@/api/detail/party-a/overview' import {bestStockPage, investment} from '@/api/detail/party-a/overview'
export default { export default {
name: 'Relationship', name: 'Relationship',
props: ['companyId', 'financial'], props: ['companyId', 'financial'],
data() { data() {
return { return {
encodeStr,
activeName:'first', activeName:'first',
//表格数据 //表格数据
holderData:[], holderData:[],
...@@ -60,13 +74,13 @@ export default { ...@@ -60,13 +74,13 @@ export default {
cid: this.companyId, cid: this.companyId,
isHistory: 0, isHistory: 0,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 100
}, },
shipData:[], shipData:[],
shipParams: { shipParams: {
cid: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 5
}, },
shipTotal: 0 shipTotal: 0
} }
...@@ -83,6 +97,9 @@ export default { ...@@ -83,6 +97,9 @@ export default {
this.activeName=='first'?this.holderData = res.rows:this.shipData = res.rows this.activeName=='first'?this.holderData = res.rows:this.shipData = res.rows
} }
this.activeName=='second'?this.shipTotal = res.total:'' this.activeName=='second'?this.shipTotal = res.total:''
},
handlePath(){
changePath(this, 'overseas')
} }
} }
} }
...@@ -135,6 +152,9 @@ export default { ...@@ -135,6 +152,9 @@ export default {
.rela-more{ .rela-more{
padding-top: 16px; padding-top: 16px;
text-align: center; text-align: center;
span{
cursor: pointer;
}
} }
} }
</style> </style>
...@@ -48,7 +48,7 @@ export default { ...@@ -48,7 +48,7 @@ export default {
tz:'', tz:'',
bl:'' bl:''
}, },
{ /*{
name:'企业公告', name:'企业公告',
value:'', value:'',
category:'xxx', category:'xxx',
...@@ -67,11 +67,11 @@ export default { ...@@ -67,11 +67,11 @@ export default {
{ {
name:'对外投资变更', name:'对外投资变更',
value:'', value:'',
category:'basic', category:'xxx',
field:'outboundInvestment', field:'yy',
tz:'', tz:'',
bl:'' bl:''
}, },*/
{ {
name:'法院公告', name:'法院公告',
value:'', value:'',
...@@ -80,14 +80,14 @@ export default { ...@@ -80,14 +80,14 @@ export default {
tz:'', tz:'',
bl:'' bl:''
}, },
{ /*{
name:'立案信息', name:'立案信息',
value:'', value:'',
category:'xxx', category:'xxx',
field:'zz', field:'zz',
tz:'', tz:'',
bl:'' bl:''
}, },*/
{ {
name:'被执行人', name:'被执行人',
value:'', value:'',
...@@ -108,12 +108,8 @@ export default { ...@@ -108,12 +108,8 @@ export default {
} }
}, },
created() { created() {
this.handView()
}, },
mounted() { mounted() {
this.$nextTick(()=>{
this.getDT()
})
}, },
methods: { methods: {
handView(){ handView(){
...@@ -126,6 +122,10 @@ export default { ...@@ -126,6 +122,10 @@ export default {
let it = {name:item.name, value:number, tz: '', bl:parseFloat(Number(Number(number)/Number(totalVal)*100).toFixed(2))+'%'} let it = {name:item.name, value:number, tz: '', bl:parseFloat(Number(Number(number)/Number(totalVal)*100).toFixed(2))+'%'}
return it return it
}) })
this.viewData.sort((a, b) => {
return a.value < b.value ? 1 : -1;
})
this.getDT()
}, },
getDT(){ getDT(){
let myChart = echarts.init(document.getElementById("echartsRisk")) let myChart = echarts.init(document.getElementById("echartsRisk"))
...@@ -172,6 +172,11 @@ export default { ...@@ -172,6 +172,11 @@ export default {
} }
myChart.setOption(option) myChart.setOption(option)
} }
},
watch: {
statistic(newVal, oldVal) {
this.handView()
}
} }
} }
</script> </script>
...@@ -185,7 +190,6 @@ export default { ...@@ -185,7 +190,6 @@ export default {
.clue-box{ .clue-box{
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
align-items: normal;
margin-top: 20px; margin-top: 20px;
.clue-echarts{ .clue-echarts{
width: calc(50% - 8px); width: calc(50% - 8px);
......
...@@ -33,7 +33,7 @@ export default { ...@@ -33,7 +33,7 @@ export default {
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 100
}, },
//表格数据 //表格数据
tableData:[] tableData:[]
......
...@@ -2,27 +2,40 @@ ...@@ -2,27 +2,40 @@
<div class="flex-box app-container part-container"> <div class="flex-box app-container part-container">
<div class="tender-list"> <div class="tender-list">
<div class="common-title">招标公告</div> <div class="common-title">招标公告</div>
<template v-if="zbggList.length>0">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index"> <div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title">{{item.projectName}}<span :class="item.tenderStage=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'">{{item.tenderStage}}</span></div> <div class="flex-box tender-title"><div class="text-cl1" :title="item.projectName"><router-link :to="'/radar/Bidding/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.tenderStage=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'">{{item.tenderStage}}</span></div>
<span class="tender-time">{{item.contact}} {{item.issueTime}}</span> <span class="tender-time">{{item.contact}} {{item.issueTime}}</span>
</div> </div>
</template>
<div class="tender-no-data" v-else>
<no-data />
</div>
</div> </div>
<div class="tender-list"> <div class="tender-list">
<div class="common-title">企业动态</div> <div class="common-title">企业动态</div>
<template v-if="trendList.length>0">
<div class="tender-item" v-for="(item, index) in trendList" :key="index"> <div class="tender-item" v-for="(item, index) in trendList" :key="index">
<div class="flex-box tender-title">{{item.xxx}}<span :class="item.tag=='新增分支机构'?'style2':item.tag=='新增施工工法'?'style3':'style1'">{{item.tag}}</span></div> <div class="flex-box tender-title"><div class="text-cl1" :title="tendTitle(item.details)">{{tendTitle(item.details)}}</div><span :class="item.parentDimension=='新增分支机构'?'style2':item.parentDimension=='新增施工工法'?'style3':'style1'">{{item.parentDimension}}</span></div>
<span class="tender-time">{{item.createTime}}</span> <span class="tender-time">{{item.createTime}}</span>
</div> </div>
</template>
<div class="tender-no-data" v-else>
<no-data />
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview" import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
export default { export default {
name: 'Tender', name: 'Tender',
props: ['companyId'], props: ['companyId'],
components: {
NoData
},
data() { data() {
return { return {
zbggParams: { zbggParams: {
...@@ -39,13 +52,23 @@ export default { ...@@ -39,13 +52,23 @@ export default {
pageSize: 5 pageSize: 5
}, },
//企业动态数据 //企业动态数据
trendList:[ trendList:[]
{name: '深圳北站片区正建超大型商场,预计2026年建成', tag: '对外投资变更', time: '03-21'}, }
{name: '深圳北站片区正建超大型商场,预计2026年建成', tag: '新增分支机构', time: '03-21'}, },
{name: '深圳北站片区正建超大型商场,预计2026年建成', tag: '新增分支机构', time: '03-21'}, computed: {
{name: '深圳北站片区正建超大型商场,预计2026年建成', tag: '新增施工工法', time: '03-21'}, tendTitle() {
{name: '深圳北站片区正建超大型商场,预计2026年建成', tag: '新增施工工法', time: '03-21'} return function(val) {
] let str = ''
if(val){
for(let key in val){
str += key+':'+ val[key]+';'
}
str = str.substring(0, str.lastIndexOf(';'))
}else{
str = '--'
}
return str
}
} }
}, },
created() { created() {
...@@ -92,6 +115,9 @@ export default { ...@@ -92,6 +115,9 @@ export default {
color: #232323; color: #232323;
justify-content: space-between; justify-content: space-between;
align-items: normal; align-items: normal;
div{
width: calc(100% - 120px);
}
span{ span{
height: 22px; height: 22px;
line-height: 22px; line-height: 22px;
...@@ -123,11 +149,16 @@ export default { ...@@ -123,11 +149,16 @@ export default {
} }
} }
.tender-time{ .tender-time{
height: 28px;
display: block; display: block;
padding-top: 8px; padding-top: 8px;
color: rgba(35,35,35,0.4); color: rgba(35,35,35,0.4);
} }
} }
} }
.tender-no-data{
height: 420px;
margin-top: 20px;
}
} }
</style> </style>
...@@ -29,7 +29,7 @@ export default { ...@@ -29,7 +29,7 @@ export default {
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 100
}, },
forData: [ forData: [
{label: '姓名', prop: 'name'}, {label: '姓名', prop: 'name'},
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="stockName" slot-scope="scope"> <template slot="stockName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.stockId&&scope.row.stockName " v-html="scope.row.stockName"></router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.stockId)}`" tag="a" class="a-link" v-if="scope.row.stockId&&scope.row.stockName " v-html="scope.row.stockName"></router-link>
<div v-else v-html="scope.row.stockName || '--'"></div> <div v-else v-html="scope.row.stockName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus"> <div class="tags" v-if="scope.row.businessStatus">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span> <span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="investName" slot-scope="scope"> <template slot="investName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName " v-html="scope.row.investName"></router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName " v-html="scope.row.investName"></router-link>
<div v-else v-html="scope.row.investName || '--'"></div> <div v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement"> <div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span> <span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
......
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<div class="view-content"><Infoheader :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" v-if="isShow" /></div><!-- 企业信息 --> <div class="view-content"><Infoheader :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 -->
<div class="view-content"><Operations :companyId="companyId" :financial="financial" v-if="isShow" /></div><!-- 公司经营 --> <div class="view-content"><Operations :companyId="companyId" :financial="financial" /></div><!-- 公司经营 -->
<div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来--> <div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" v-if="statistic" /></div><!--商机线索--> <div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" /></div><!--商机线索-->
<div class="view-content"><Relationship :companyId="companyId" :financial="financial" v-if="isShow" /></div><!--关系企业--> <div class="view-content"><Relationship :companyId="companyId" :financial="financial" /></div><!--关系企业-->
<div class="view-content"><Senior :companyId="companyId" /></div><!--高管--> <div class="view-content"><Senior :companyId="companyId" /></div><!--高管-->
<div class="view-content"><Risk :companyId="companyId" :statistic="statistic" v-if="isShow" /></div><!--风险概览--> <div class="view-content"><Risk :companyId="companyId" :statistic="statistic" /></div><!--风险概览-->
<div class="view-content"><Tender :companyId="companyId" /></div><!--招标公告、企业动态--> <div class="view-content"><Tender :companyId="companyId" /></div><!--招标公告、企业动态-->
</div> </div>
</template> </template>
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
margin: 0; margin: 0;
padding: 0; padding: 0;
.view-content{ .view-content{
//margin-top: 12px; margin-top: 12px;
} }
} }
</style> </style>
...@@ -160,12 +160,7 @@ export default { ...@@ -160,12 +160,7 @@ export default {
components: { components: {
}, },
props: { props: ['customerIds'],
customerIds: {
type: String,
default: ''
}
},
data() { data() {
return { return {
autosize: { autosize: {
......
...@@ -33,12 +33,7 @@ export default { ...@@ -33,12 +33,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -35,12 +35,7 @@ export default { ...@@ -35,12 +35,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -33,12 +33,7 @@ export default { ...@@ -33,12 +33,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -32,12 +32,7 @@ export default { ...@@ -32,12 +32,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -41,12 +41,7 @@ export default { ...@@ -41,12 +41,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -41,12 +41,7 @@ export default { ...@@ -41,12 +41,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -41,12 +41,7 @@ export default { ...@@ -41,12 +41,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -37,12 +37,7 @@ export default { ...@@ -37,12 +37,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId'],
companyId: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -35,16 +35,7 @@ export default { ...@@ -35,16 +35,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId','companyInfo'],
companyId: {
type: Number,
default: 0
},
companyInfo: {
type: Object,
default: {}
}
},
data() { data() {
return { return {
addressList:'', addressList:'',
......
...@@ -118,16 +118,7 @@ export default { ...@@ -118,16 +118,7 @@ export default {
components: { components: {
}, },
props: { props: ['companyId', 'companyInfo'],
companyId: {
type: Number,
default: 0
},
companyInfo: {
type: Object,
default: {}
}
},
data() { data() {
return { return {
queryParams: { queryParams: {
......
...@@ -24,7 +24,11 @@ ...@@ -24,7 +24,11 @@
highlight-current-row highlight-current-row
@sort-change="sortChange" @sort-change="sortChange"
> >
<el-table-column prop="province" label="下辖区" width="100" :formatter="formatStatus"/> <el-table-column prop="province" label="下辖区" width="170" :formatter="formatStatus">
<template slot-scope="scope">
{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}
</template>
</el-table-column>
<el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="gdpGrowth" label="GDP增速" sortable width="100" :formatter="formatStatus"/> <el-table-column prop="gdpGrowth" label="GDP增速" sortable width="100" :formatter="formatStatus"/>
<el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/> <el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/>
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="公司名称" align="left" width="300"> <el-table-column label="公司名称" align="left" width="300" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-html="scope.row.name"></router-link> <router-link to="" tag="a" class="a-link" v-html="scope.row.name"></router-link>
</template> </template>
...@@ -148,12 +148,7 @@ export default { ...@@ -148,12 +148,7 @@ export default {
}) })
params.aptitudeQueryDto.aptitudeDtoList=aptitudeType params.aptitudeQueryDto.aptitudeDtoList=aptitudeType
} }
if(this.aptitudeType || this.queryParams.ename){
}
console.log(params)
enterprise(params).then(res => { enterprise(params).then(res => {
console.log(res.data)
this.tableData=res.data.list; this.tableData=res.data.list;
this.tableDataTotal=res.data.total; this.tableDataTotal=res.data.total;
}) })
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</div> </div>
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4>{{details.specialCapital || '-'}}<span>{{details.specialCapital ? '亿' : ''}}</span></h4> <h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '亿' : ''}}</span></h4>
<p>专项债用作资本金</p> <p>专项债用作资本金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon4.png" /> <img class="img" src="@/assets/images/financing/icon4.png" />
...@@ -182,10 +182,11 @@ export default { ...@@ -182,10 +182,11 @@ export default {
var year = date.getFullYear() var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() // var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() // var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds // return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
return year + '-' + month + '-' + day
} }
} }
} }
......
...@@ -51,12 +51,12 @@ ...@@ -51,12 +51,12 @@
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link> <router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable="custom" width="155" /> <el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" :formatter="formatStatus" sortable="custom" width="155" />
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable="custom" width="155" /> <el-table-column prop="projectCapital" label="项目资本金(亿)" :formatter="formatStatus" sortable="custom" width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" sortable="custom" width="150" /> <el-table-column prop="econData007" label="项目收益倍数(倍)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" sortable="custom" width="150" /> <el-table-column prop="zxz" label="专项债金额(亿)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="specialBondCapital" label="专项债用作资本金(亿)" width="170" /> <el-table-column prop="specialBondCapital" label="专项债用作资本金(亿)" :formatter="formatStatus" width="170" />
<el-table-column prop="projectEntity" label="项目主体"> <el-table-column prop="projectEntity" :formatter="formatStatus" label="项目主体">
<!--<template slot-scope="scope">--> <!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>--> <!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
<!--</template>--> <!--</template>-->
...@@ -139,6 +139,7 @@ export default { ...@@ -139,6 +139,7 @@ export default {
let arr=this.tableData.sort((old,New)=>{ let arr=this.tableData.sort((old,New)=>{
return New.value - old.value return New.value - old.value
}) })
console.log(arr)
let data=[] let data=[]
for(let i=0; i<10; i++){ for(let i=0; i<10; i++){
data.push(arr[i]) data.push(arr[i])
...@@ -189,6 +190,9 @@ export default { ...@@ -189,6 +190,9 @@ export default {
} }
myChart.setOption(option); myChart.setOption(option);
}, },
formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-'
},
sortChange({ column, prop, order }){ sortChange({ column, prop, order }){
if(prop === 'number'){ if(prop === 'number'){
this.queryParams.field = 'count' this.queryParams.field = 'count'
...@@ -215,13 +219,12 @@ export default { ...@@ -215,13 +219,12 @@ export default {
for(var i=0;i<res.data.length;i++){ for(var i=0;i<res.data.length;i++){
var obj={}; var obj={};
obj.name=res.data[i].projectType; obj.name=res.data[i].projectType;
obj.value=res.data[i].count; obj.value=res.data[i].totalInvestment;
obj.totalInvestment=res.data[i].totalInvestment; obj.number=res.data[i].count;
obj.proportion=res.data[i].proportion; obj.proportion=res.data[i].proportion;
list.push(obj) list.push(obj)
} }
this.tableData=list; this.tableData=list;
}) })
}, },
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="common-title">全国经济大全</span> <span class="common-title">全国经济大全</span>
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="year"> <el-form-item prop="year">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度" @change="querySubmit"> <el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度" @change="handleSearch">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" /> <el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
:options="addressList" :options="addressList"
:props="props" :props="props"
v-model="queryParams.address" v-model="queryParams.address"
@change="querySubmit" @change="handleSearch"
placeholder="地区选择" placeholder="地区选择"
collapse-tags collapse-tags
clearable></el-cascader> clearable></el-cascader>
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="地区" min-width="70" align="left" fixed> <el-table-column label="地区" min-width="150" align="left" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="{path:'/macro/economies',query:{id:scope.row.id,provinceId:scope.row.provinceId}}" tag="a" class="a-link">{{ scope.row.province}}</router-link> <router-link :to="{path:'/macro/economies',query:{id:scope.row.id,provinceId:scope.row.provinceId}}" tag="a" class="a-link">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="年度明细" prop="id" width="90" align="center" fixed> <el-table-column label="年度明细" prop="id" width="90" align="center" fixed>
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
<img src="@/assets/images/icon_detailed.png" class="icon-detailed" @click="handleDetail(scope.row)"> <img src="@/assets/images/icon_detailed.png" class="icon-detailed" @click="handleDetail(scope.row)">
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="GDP(元)" prop="gdp" :formatter="formatStatus" sortable="custom" min-width="115" align="right"></el-table-column> <el-table-column label="GDP(亿元)" prop="gdp" :formatter="formatStatus" sortable="custom" min-width="115" align="right"></el-table-column>
<el-table-column label="GDP增速" prop="gdpGrowth" :formatter="formatStatus" sortable="custom" min-width="100" align="right"></el-table-column> <el-table-column label="GDP增速(%)" prop="gdpGrowth" :formatter="formatStatus" sortable="custom" min-width="100" align="right"></el-table-column>
<el-table-column label="人均GDP(元)" prop="gdpPerCapita" :formatter="formatStatus" sortable="custom" width="125" align="right"></el-table-column> <el-table-column label="人均GDP(元)" prop="gdpPerCapita" :formatter="formatStatus" sortable="custom" width="125" align="right"></el-table-column>
<el-table-column label="人口(万人)" prop="population" :formatter="formatStatus" sortable="custom" width="120" align="right"></el-table-column> <el-table-column label="人口(万人)" prop="population" :formatter="formatStatus" sortable="custom" width="120" align="right"></el-table-column>
<el-table-column label="一般公共预算收入 (亿元)" prop="gbr" sortable="custom" width="170" align="right"></el-table-column> <el-table-column label="一般公共预算收入 (亿元)" prop="gbr" sortable="custom" width="170" align="right"></el-table-column>
...@@ -62,8 +62,8 @@ ...@@ -62,8 +62,8 @@
<el-table-column label="政府性基金收入(亿元)" width="140" prop="govFundIncome" :formatter="formatStatus" sortable="custom" align="left"></el-table-column> <el-table-column label="政府性基金收入(亿元)" width="140" prop="govFundIncome" :formatter="formatStatus" sortable="custom" align="left"></el-table-column>
<el-table-column label="政府性基金收入:土地出让收入(亿元)" prop="landTransferIncome" sortable="custom" width="150" align="left"></el-table-column> <el-table-column label="政府性基金收入:土地出让收入(亿元)" prop="landTransferIncome" sortable="custom" width="150" align="left"></el-table-column>
<el-table-column label="政府性基金支出(亿元)" prop="govFundExpenditure" :formatter="formatStatus" width="170" sortable="custom" align="left"></el-table-column> <el-table-column label="政府性基金支出(亿元)" prop="govFundExpenditure" :formatter="formatStatus" width="170" sortable="custom" align="left"></el-table-column>
<el-table-column label="国有资经营收入(亿元)" prop="soecoi" width="160" :formatter="formatStatus" align="left"></el-table-column> <el-table-column label="国有资经营收入(亿元)" prop="soecoi" width="160" :formatter="formatStatus" align="left"></el-table-column>
<el-table-column label="国有资经营支出(亿元)" prop="soecoe" width="160" :formatter="formatStatus" align="left"></el-table-column> <el-table-column label="国有资经营支出(亿元)" prop="soecoe" width="160" :formatter="formatStatus" align="left"></el-table-column>
<el-table-column label="固定资产投资(亿元)" prop="fixedInvestment" :formatter="formatStatus" width="160" align="left"></el-table-column> <el-table-column label="固定资产投资(亿元)" prop="fixedInvestment" :formatter="formatStatus" width="160" align="left"></el-table-column>
<el-table-column label="财政自给率(%)" prop="fiscalSelfSufficiencyRate" :formatter="formatStatus" width="160" align="left"></el-table-column> <el-table-column label="财政自给率(%)" prop="fiscalSelfSufficiencyRate" :formatter="formatStatus" width="160" align="left"></el-table-column>
<el-table-column label="地方政府债务余额(亿元)" prop="govDebtBalance" :formatter="formatStatus" width="160" align="left"></el-table-column> <el-table-column label="地方政府债务余额(亿元)" prop="govDebtBalance" :formatter="formatStatus" width="160" align="left"></el-table-column>
...@@ -275,6 +275,10 @@ ...@@ -275,6 +275,10 @@
this.pageIndex = 1; this.pageIndex = 1;
this.querySubmit() this.querySubmit()
}, },
handleSearch(){
this.pageIndex = 1
this.querySubmit()
},
} }
} }
</script> </script>
......
...@@ -80,10 +80,10 @@ ...@@ -80,10 +80,10 @@
<span class="common-title">全国招标项目概览</span> <span class="common-title">全国招标项目概览</span>
</div> </div>
</div> </div>
<div class="text">通过对近年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div> <div class="text">通过对近年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div>
<div class="main1"> <div class="main1">
<div id="gl-echarts" style="height: 250px"></div> <div id="gl-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为近年全国公开的招标项目,未公开的不含在内</p> <p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为近年全国公开的招标项目,未公开的不含在内</p>
</div> </div>
<div class="main2"> <div class="main2">
<div class="selectYear"> <div class="selectYear">
...@@ -125,63 +125,26 @@ export default { ...@@ -125,63 +125,26 @@ export default {
{ label: '近三年', value: '近三年' }, { label: '近三年', value: '近三年' },
{ label: '近一年', value: '近一年' }, { label: '近一年', value: '近一年' },
], ],
zbData:['广东','江苏','山东','浙江','河南','安徽','河北','四川','湖北','江西','甘肃','重庆','福建','云南','北京','湖南','山西'],
zbData1:[123,156,236,426,412,231,96,105,210,420,213,86,120,230,150,132,196],
tableData:[ tableData:[
{ {
area:'广东', type:'',
number:'123', count:'',
zb:'0.19%'
}, },
{ {
area:'江苏', type:'',
number:'156', count:'',
zb:'0.29%'
}, },
{ {
area:'山东', type:'',
number:'236', count:'',
zb:'0.34%'
}, },
{ {
area:'浙江', type:'',
number:'426', count:'',
zb:'0.34%'
}, },
{ {
area:'河南', type:'',
number:'412', count:'',
zb:'0.34%'
},
{
area:'安徽',
number:'231',
zb:'0.34%'
},
{
area:'河北',
number:'96',
zb:'0.34%'
},
{
area:'四川',
number:'105',
zb:'0.34%'
},
{
area:'湖北',
number:'210',
zb:'0.34%'
},
{
area:'江西',
number:'420',
zb:'0.34%'
},
{
area:'甘肃',
number:'213',
zb:'0.34%'
}, },
], ],
tableData1:[], tableData1:[],
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="common-title">全国建筑企业概览</span> <span class="common-title">全国建筑企业概览</span>
</div> </div>
</div> </div>
<div class="text">截止2022年8月1日,全国共有建筑工程施工总承包资质的企业197572家,其中特级资质企业118家,占比0.06%;一级资质企业3879家,占比1.96%;二级资质企业22235家,占比11.25%;三级资质企业171340家,占比86.73%</div> <div class="text">截止{{currentdate}},全国共有建筑工程施工总承包资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="main1"> <div class="main1">
<div style="height: 300px;"> <div style="height: 300px;">
<div class="left"> <div class="left">
...@@ -107,7 +107,8 @@ ...@@ -107,7 +107,8 @@
<span class="common-title">全国建筑企业备案分布</span> <span class="common-title">全国建筑企业备案分布</span>
</div> </div>
</div> </div>
<div class="text">通过对全国建筑工程总承包一级及以上资质企业的备案数据分析,我们发现这些优质企业主要去了广东、安徽、江西、福建、湖北、浙江等地开展经营。</div> <div class="text">
通过对全国建筑工程总承包一级及以上资质企业的备案数据分析,我们发现这些优质企业主要去了<span v-for="(item,index) in rankList">{{item.province}}{{ rankList.length === index+1 ? '':'、'}}</span>等地开展经营。</div>
<div class="main1"> <div class="main1">
<div id="ba-echarts" style="height: 250px"></div> <div id="ba-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为公开企业备案地数据。</p> <p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为公开企业备案地数据。</p>
...@@ -124,7 +125,7 @@ ...@@ -124,7 +125,7 @@
<template slot-scope="scope">{{ scope.$index + 1 }}</template> <template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="province" label="地区"/> <el-table-column prop="province" label="地区"/>
<el-table-column prop="count" label="企业异地备案数量(个)"/> <el-table-column prop="count" label="企业异地备案数量(个)" sortable/>
<!--<el-table-column prop="zb" label="占比"/>--> <!--<el-table-column prop="zb" label="占比"/>-->
</el-table> </el-table>
</div> </div>
...@@ -208,22 +209,28 @@ export default { ...@@ -208,22 +209,28 @@ export default {
dqData:[], dqData:[],
qydqIndex:0, qydqIndex:0,
zbData:[], zbData:[],
jzdqData:[] rankList:[],
jzdqData:[],
currentdate:'',
total:'',
glDetail:{},
} }
}, },
created() { created() {
this.getData() this.getData()
var date = new Date()
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()+ 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
this.currentdate=year + '-' +month + '-' + day;
}, },
methods: { methods: {
getData(){ getData(){
//全国建筑企业概览 //全国建筑企业概览
certGroupByMajorAndLevel().then(res => { certGroupByMajorAndLevel().then(res => {
this.glData=res.data;
this.jzglData=this.glData[0].levelList.reverse();
let list=[]; let list=[];
for (let i=0; i<res.data.length; i++){ for (let i=0; i<res.data.length; i++){
res.data[i].levelList=res.data[i].levelList.reverse();
let item={}; let item={};
item.major=res.data[i].major; item.major=res.data[i].major;
for (let j=0; j<res.data[i].levelList.length; j++){ for (let j=0; j<res.data[i].levelList.length; j++){
...@@ -247,7 +254,16 @@ export default { ...@@ -247,7 +254,16 @@ export default {
// item.levelList=res.data[i].levelList.reverse(); // item.levelList=res.data[i].levelList.reverse();
list.push(item) list.push(item)
} }
this.zzTableData=list this.zzTableData=list;
this.glData=res.data;
this.jzglData=this.glData[0].levelList;
this.glDetail=list[0]
let total=0;
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.initChart() this.initChart()
}) })
certGroupByMajorProvinceLevel().then(res => { certGroupByMajorProvinceLevel().then(res => {
...@@ -282,6 +298,15 @@ export default { ...@@ -282,6 +298,15 @@ export default {
}) })
areaGroupByProvince().then(res => { areaGroupByProvince().then(res => {
this.zbData=res.data; this.zbData=res.data;
let arr=this.zbData.sort((old,New)=>{
return New.count - old.count
})
let data=[]
for(let i=0; i<5; i++){
data.push(arr[i])
}
this.rankList=data;
this.initChart2() this.initChart2()
}) })
}, },
...@@ -338,6 +363,7 @@ export default { ...@@ -338,6 +363,7 @@ export default {
} }
] ]
} }
myChart.clear();
myChart.setOption(option); myChart.setOption(option);
}, },
initChart1() { initChart1() {
...@@ -563,7 +589,13 @@ export default { ...@@ -563,7 +589,13 @@ export default {
handleClick(type,index){ handleClick(type,index){
if(type === 1){ if(type === 1){
this.typeIndex=index; this.typeIndex=index;
this.jzglData=this.glData[index].levelList.reverse(); this.jzglData=this.glData[index].levelList;
let total=0
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.glDetail=this.zzTableData[index]
this.initChart() this.initChart()
} }
if(type === 2){ if(type === 2){
......
...@@ -7,121 +7,123 @@ ...@@ -7,121 +7,123 @@
</div> </div>
</div> </div>
<div class="search"> <div class="search">
<el-radio v-model="radio" label="1">含下属辖区</el-radio> <el-radio-group v-model="queryParams.radio" @change="changeRadio">
<el-radio v-model="radio" label="2">本级</el-radio> <el-radio label="1">含下属辖区</el-radio>
<el-radio label="2">本级</el-radio>
</el-radio-group>
<div class="search-box"> <div class="search-box">
<span style="cursor: pointer;" @click="handleSearch">筛选<i class="el-icon-caret-bottom" style="color:rgba(35,35,35,0.4);margin-left: 5px"></i></span> <span style="cursor: pointer;" @click="handleSearch">筛选<i class="el-icon-caret-bottom" style="color:rgba(35,35,35,0.4);margin-left: 5px"></i></span>
<div v-show="searchState" ref="showContent" class="search-main"> <div v-show="searchState" ref="showContent" class="search-main">
<div class="item"> <div class="item">
<span class="wrap_label">行政等级</span> <span class="wrap_label">行政等级</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span :class="{color_text:xzdjCalss == ''}" @click="changeXZDJ('')">全部</span> <span :class="{color_text:xzdjCalss == ''}" @click="changeXZDJ('','')">全部</span>
<template v-for="(item,index) in xzdj"> <template v-for="(item,index) in typeList.uipExecutiveLevel">
<span :class="{color_text:index+1 === xzdjCalss}" @click="changeXZDJ(index+1)">{{item.name}}</span> <span :class="{color_text:index+1 === xzdjCalss}" @click="changeXZDJ(index+1,item)">{{item}}</span>
</template> </template>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<span class="wrap_label">城投业务类型</span> <span class="wrap_label">城投业务类型</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span>全部</span> <span :class="{'color_text':queryParams.uipBusinessType.length === 0}" @click="changeType('',1)">全部</span>
<template v-for="(item,index) in typeList"> <template v-for="(item,index) in typeList.uipBusinessType">
<span>{{item}}</span> <span :class="{'color_text':queryParams.uipBusinessType.indexOf(item)!=-1}" @click="changeType(item,1)">{{item}}</span>
</template> </template>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<span class="wrap_label">主体评级</span> <span class="wrap_label">主体评级</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span>全部</span> <span :class="{'color_text':queryParams.bratingSubjectLevel.length === 0}" @click="changeType('',2)">全部</span>
<template v-for="(item,index) in ztpj"> <template v-for="(item,index) in typeList.bratingSubjectLevel">
<span>{{item}}</span> <span :class="{'color_text':queryParams.bratingSubjectLevel.indexOf(item)!=-1}" @click="changeType(item,2)">{{item}}</span>
</template> </template>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<span class="wrap_label">股东背景</span> <span class="wrap_label">股东背景</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span>全部</span> <span :class="{'color_text':queryParams.shareholderBg.length === 0}" @click="changeType('',3)">全部</span>
<template v-for="(item,index) in gdbj"> <template v-for="(item,index) in typeList.shareholderBg">
<span>{{item}}</span> <span :class="{'color_text':queryParams.shareholderBg.indexOf(item)!=-1}" @click="changeType(item,3)">{{item}}</span>
</template> </template>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<span class="wrap_label">股权关系</span> <span class="wrap_label">股权关系</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span>全部</span> <span :class="{'color_text':queryParams.equityRelationship.length === 0}" @click="changeType('',4)">全部</span>
<template v-for="(item,index) in gqgx"> <template v-for="(item,index) in typeList.equityRelationship">
<span>{{item}}</span> <span :class="{'color_text':queryParams.equityRelationship.indexOf(item)!=-1}" @click="changeType(item,4)">{{item}}</span>
</template> </template>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<span class="wrap_label">平台重要性</span> <span class="wrap_label">平台重要性</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span>全部</span> <span :class="{'color_text':queryParams.platformImportance.length === 0}" @click="changeType('',5)">全部</span>
<template v-for="(item,index) in pt"> <template v-for="(item,index) in typeList.platformImportance">
<span>{{item}}</span> <span :class="{'color_text':queryParams.platformImportance.indexOf(item)!=-1}" @click="changeType(item,5)">{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label" style="width: 78px;">开发区类别</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in lfqType">
<span>{{item}}</span>
</template> </template>
</div> </div>
</div> </div>
<!--<div class="item">-->
<!--<span class="wrap_label" style="width: 78px;">开发区类别</span>-->
<!--<div class="item_ckquery">-->
<!--<span>全部</span>-->
<!--<template v-for="(item,index) in lfqType">-->
<!--<span>{{item}}</span>-->
<!--</template>-->
<!--</div>-->
<!--</div>-->
<div class="item"> <div class="item">
<span class="wrap_label">更多筛选</span> <span class="wrap_label">更多筛选</span>
<div class="item_ckquery"> <div class="item_ckquery">
<span :class="addresslength>0?'select-active':''">注册地区{{addresslength>0?(addresslength+'项'):''}}</span> <span :class="addresslength>0?'select-active':''">注册地区{{addresslength>0?(addresslength+'项'):''}}</span>
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd' <el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd'
@input="addressListbtn" v-model="addressType" :options="addressList" :props="props" collapse-tags></el-cascader> @input="addressListbtn" v-model="queryParams.address" :options="addressList" :props="props" collapse-tags></el-cascader>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<el-input class="search-input" placeholder="输入企业名称关键词" v-model="queryParams.key"> <el-input class="search-input" placeholder="输入企业名称关键词" v-model="queryParams.keyword">
<template slot="prepend"><i class="el-icon-search"></i></template> <template slot="prepend"><i class="el-icon-search"></i></template>
<el-button slot="append">搜索</el-button> <el-button slot="append" @click="handleKeyword">搜索</el-button>
</el-input> </el-input>
</div> </div>
<div class="list-box"> <div class="list-box">
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>115<span></span></p> <p>{{statistics.count}}<span></span></p>
<span>平台家数</span> <span>平台家数</span>
</div> </div>
<img src="@/assets/images/urban/img1.png"> <img src="@/assets/images/urban/img1.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>18,737.90<span>亿元</span></p> <p>{{statistics.creditBalance}}<span>亿元</span></p>
<span>授信余额</span> <span>授信余额</span>
</div> </div>
<img src="@/assets/images/urban/img2.png"> <img src="@/assets/images/urban/img2.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>18,737.90<span>亿元</span></p> <p>{{statistics.totalAssets}}<span>亿元</span></p>
<span>资产总额</span> <span>资产总额</span>
</div> </div>
<img src="@/assets/images/urban/img3.png"> <img src="@/assets/images/urban/img3.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>18,737.90<span>亿元</span></p> <p>{{statistics.accountsReceivable}}<span>亿元</span></p>
<span>营收账款</span> <span>营收账款</span>
</div> </div>
<img src="@/assets/images/urban/img4.png"> <img src="@/assets/images/urban/img4.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>18,737.90<span>亿元</span></p> <p>{{statistics.nonStandardBalance}}<span>亿元</span></p>
<span>非标余额</span> <span>非标余额</span>
</div> </div>
<img src="@/assets/images/urban/img5.png"> <img src="@/assets/images/urban/img5.png">
...@@ -142,6 +144,7 @@ ...@@ -142,6 +144,7 @@
v-loading="tableLoading" v-loading="tableLoading"
:data="tableData" :data="tableData"
element-loading-text="Loading" element-loading-text="Loading"
@sort-change="sortChange"
border border
fit fit
highlight-current-row highlight-current-row
...@@ -149,23 +152,28 @@ ...@@ -149,23 +152,28 @@
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="name" label="公司名称" width="250" fixed> <el-table-column prop="companyName" label="公司名称" width="300" fixed>
<template slot-scope="scope">{{ scope.row.name }} <template slot-scope="scope">
<span class="table-span" style="color: #3D3D3D;" v-if="scope.row.state === 0"><img src="@/assets/images/urban/rl_icon1.png"/>认领</span> <p class="companyName">{{ scope.row.companyName }}</p>
<span class="table-span" style="color: rgba(35,35,35,0.4);" v-if="scope.row.state === 1"><img src="@/assets/images/urban/rl_icon2.png"/>已认领</span> <span class="table-span" style="color: #3D3D3D;" v-if="scope.row.claimStatus === 0"><img src="@/assets/images/urban/rl_icon1.png"/>认领</span>
<span class="table-span" style="color: rgba(35,35,35,0.4);" v-if="scope.row.claimStatus === 1"><img src="@/assets/images/urban/rl_icon2.png"/>已认领</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="value" label="区域" width="100" /> <el-table-column prop="city" label="区域" :formatter="formatStatus" width="100">
<el-table-column prop="pm" label="招标数量" sortable width="120" /> <!--<template slot-scope="scope">-->
<el-table-column prop="bl" label="城投拿地" sortable width="140" /> <!--{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}-->
<el-table-column prop="bl" label="供应商" sortable width="170" /> <!--</template>-->
<el-table-column prop="bl" label="主体评级" sortable width="140" /> </el-table-column>
<el-table-column prop="bl" label="债券余额(亿元)" sortable width="140" /> <el-table-column prop="biddingCount" label="招标数量" :formatter="formatStatus" sortable="custom" width="120" />
<el-table-column prop="bl" label="行政级别" width="140" /> <el-table-column prop="landInfoCount" label="城投拿地" :formatter="formatStatus" sortable="custom" width="100" />
<el-table-column prop="bl" label="股东背景" width="140" /> <el-table-column prop="supplierCount" label="供应商" :formatter="formatStatus" sortable="custom" width="100" />
<el-table-column prop="bl" label="股权关系" width="140" /> <el-table-column prop="bratingSubjectLevel" label="主体评级" :formatter="formatStatus" sortable="custom" width="140" />
<el-table-column prop="bl" label="平台重要性" width="140" /> <el-table-column prop="bondBalance" label="债券余额(亿元)" :formatter="formatStatus" sortable="custom" width="140" />
<el-table-column prop="bl" label="城投业务类型" width="140" > <el-table-column prop="uipExecutiveLevel" label="行政级别" :formatter="formatStatus" width="110" />
<el-table-column prop="shareholderBg" label="股东背景" :formatter="formatStatus" width="110" />
<el-table-column prop="equityRelationship" label="股权关系" :formatter="formatStatus" width="110" />
<el-table-column prop="platformImportance" label="平台重要性" :formatter="formatStatus" width="110" />
<el-table-column prop="uipBusinessType" label="城投业务类型" :formatter="formatStatus" width="140" >
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<span>城投业务类型 <span>城投业务类型
<el-tooltip popper-class="tips" effect="light" content=" 根据主营业务构成划分为土地开发整理、基础设施建设、交通建设运营、棚改保障房建设、公用事业等8大类型。" placement="top"> <el-tooltip popper-class="tips" effect="light" content=" 根据主营业务构成划分为土地开发整理、基础设施建设、交通建设运营、棚改保障房建设、公用事业等8大类型。" placement="top">
...@@ -174,46 +182,47 @@ ...@@ -174,46 +182,47 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bl" label="实控人" width="200" /> <el-table-column prop="actualController" label="实控人" :formatter="formatStatus" width="250" />
<el-table-column prop="bl" label="最新报告期" width="120" /> <el-table-column prop="latestReportPeriod" label="最新报告期" :formatter="formatStatus" width="120" />
<el-table-column prop="bl" label="总资产(亿元)" sortable width="120" /> <el-table-column prop="totalAssets" label="总资产(亿元)" :formatter="formatStatus" sortable="custom" width="120" />
<el-table-column prop="bl" label="归母净资产(亿元)" sortable width="160" /> <el-table-column prop="belongNetAssets" label="归母净资产(亿元)" :formatter="formatStatus" sortable="custom" width="160" />
<el-table-column prop="bl" label="货币资金(亿元)" sortable width="160" /> <el-table-column prop="monetaryFunds" label="货币资金(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="bl" label="土地资产(亿元)" sortable width="160" /> <el-table-column prop="landAssets" label="土地资产(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="bl" label="受限资产(亿元)" sortable width="160" /> <el-table-column prop="restrictedAssets" label="受限资产(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="bl" label="应收账款(亿元)" sortable width="160" /> <el-table-column prop="accountsReceivable" label="应收账款(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="bl" label="其他应收款(亿元)" sortable width="160" /> <el-table-column prop="otherReceivable" label="其他应收款(亿元)" :formatter="formatStatus" sortable="custom" width="160" />
<el-table-column prop="bl" label="公益性&准公益性主营占比(%)" width="160" /> <el-table-column prop="econData001" label="公益性&准公益性主营占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="应收类款项来自政府占比(%)" width="160" /> <el-table-column prop="receivableFromGovRatio" label="应收类款项来自政府占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="政府补助(亿元)" width="120" /> <el-table-column prop="govSubsidy" label="政府补助(亿元)" :formatter="formatStatus" width="130" />
<el-table-column prop="bl" label="专项应付款(亿元)" width="140" /> <el-table-column prop="specialPayable" label="专项应付款(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="营业收入(亿元)" width="140" /> <el-table-column prop="operatingIncome" label="营业收入(亿元)" :formatter="formatStatus" width="130" />
<el-table-column prop="bl" label="归母净利润(亿元)" width="140" /> <el-table-column prop="belongNetProfit" label="归母净利润(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="净资产收益率(%)" width="140" /> <el-table-column prop="roe" label="净资产收益率(%)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="经营现金流量净额(亿元)" width="160" /> <el-table-column prop="netOperatingCashFlow" label="经营现金流量净额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="筹资现金流量净额(亿元)" width="160" /> <el-table-column prop="netFinancingCashFlow" label="筹资现金流量净额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="投资现金流量净额(亿元)" width="160" /> <el-table-column prop="netInvestmentCashFlow" label="投资现金流量净额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="总负债(亿元)" width="160" /> <el-table-column prop="totalLiabilities" label="总负债(亿元)" :formatter="formatStatus" width="120" />
<el-table-column prop="bl" label="有息债务(亿元)" width="160" /> <el-table-column prop="uipInterestBearingDebt" label="有息债务(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="有息债务/总负债(%)" width="160" /> <el-table-column prop="econData002" label="有息债务/总负债(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="资产负债率(%)" width="160" /> <el-table-column prop="tdr" label="资产负债率(%)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="综合融资成本(%)" width="160" /> <el-table-column prop="ofcb" label="综合融资成本(%)" :formatter="formatStatus" width="150" />
<el-table-column prop="bl" label="现金比率" width="160" /> <el-table-column prop="cashRatio" label="现金比率" :formatter="formatStatus" width="110" />
<el-table-column prop="bl" label="现金流量比率" width="160" /> <el-table-column prop="cashFlowRatio" label="现金流量比率" :formatter="formatStatus" width="120" />
<el-table-column prop="bl" label="现金到期债务比" width="160" /> <el-table-column prop="cashDebtRatio" label="现金到期债务比" :formatter="formatStatus" width="120" />
<el-table-column prop="bl" label="授信余额/全部债务(%)" width="160" /> <el-table-column prop="creditBalance" label="授信余额(亿元)" :formatter="formatStatus" width="130" />
<el-table-column prop="bl" label="EBITDA保障倍数" width="160" /> <el-table-column prop="econData003" label="授信余额/全部债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="私募债余额占比(%)" width="160" /> <el-table-column prop="ebitdaIcr" label="EBITDA保障倍数" :formatter="formatStatus" width="150" />
<el-table-column prop="bl" label="一年内到期债权占比(%)" width="160" /> <el-table-column prop="ppnBalanceProp" label="私募债余额占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="债券余额/有息债务(%)" width="160" /> <el-table-column prop="econData004" label="一年内到期债权占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="借款余额(亿元)" width="160" /> <el-table-column prop="econData005" label="债券余额/有息债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="借款/有息债务(%)" width="160" /> <el-table-column prop="loan" label="借款余额(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="非标余额(亿元)" width="160" /> <el-table-column prop="econData006" label="借款/有息债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="非标余额/有息债务(%)" width="160" /> <el-table-column prop="nonStandardBalance" label="非标余额(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="bl" label="对外担保金额(亿元)" width="160" /> <el-table-column prop="nonStandardRatio" label="非标余额/有息债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="对外担保比例(%)" width="160" /> <el-table-column prop="guaranteeAmount" label="对外担保金额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="所属开发区" width="160" /> <el-table-column prop="guaranteeRatio" label="对外担保比例(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="bl" label="开发区类别" width="160" /> <el-table-column prop="developmentZone" label="所属开发区" :formatter="formatStatus" width="160" />
<!--<el-table-column prop="bl" label="开发区类别" width="160" />-->
</el-table> </el-table>
</div> </div>
<div class="pagination-box"> <div class="pagination-box">
...@@ -225,64 +234,38 @@ ...@@ -225,64 +234,38 @@
<script> <script>
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
import { uipGroupData,urbanInvestmentPage,urbanInvestmentStatistics } from '@/api/macro/macro'
export default { export default {
name: 'Urban', name: 'Urban',
data() { data() {
return { return {
queryParams:{ queryParams:{
key:'' keyword:'',
}, uipExecutiveLevel:'', //行政级别
tableData:[ uipBusinessType:[], //城投业务类型
{ bratingSubjectLevel:[], //主体评级
name:'重庆市江北区国有资本投资运营管理集团有限公司', shareholderBg:[], //股东背景
pm:'1/306', equityRelationship:[], //股权关系
value:'江北区', platformImportance:[], //平台重要性
bl:'129.386', address:[],
state:1 radio:'1',
}, },
{ tableData:[],
name:'重庆市江北区国有资本投资运营管理集团有限公司',
pm:'1/306',
value:'江北区',
bl:'129.386',
state:0
},
],
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
tableDataTotal: 120, tableDataTotal: 120,
radio:'2',
xzdj:[
{
name:'省级',
key:1,
},
{
name:'地级市',
key:2,
},
{
name:'区县级',
key:3,
}
],
selected:[], selected:[],
xzdjCalss:'', xzdjCalss:'',
typeList:['土地开发整理','基础设施建设','棚改保障房建设','公用事业','文化旅游','交通建设运营','产投平台'],
ztpj:['AAA','AA+','AA','A+','A','A-','BBB+','其他'],
gdbj:['政府','财政','国资委','其他'],
gqgx:['直接控股','间接控股'],
pt:['重要平台','主要平台','一般平台'],
lfqType:['国家级经开','国家级高新区','国家海关监管区域','国家级新区','国家边和区','其他国家级','省级新区','省级开发区'],
props: { props: {
value: 'id', value: 'id',
multiple: true, multiple: true,
}, },
addressList: [], addressList: [],
addressType: [],
addresslength: 0, addresslength: 0,
searchState:false, searchState:false,
typeList:[],
statistics:{}
} }
}, },
watch:{ watch:{
...@@ -300,8 +283,88 @@ export default { ...@@ -300,8 +283,88 @@ export default {
}, },
created() { created() {
this.dataRegion() this.dataRegion()
this.getType()
this.querySubmit()
}, },
methods: { methods: {
getType(){
uipGroupData().then(res => {
this.typeList=res.data;
})
},
// 查询提交
async querySubmit() {
this.tableLoading = true
const params = { pageNum: this.pageIndex, pageSize: this.pageSize,type:Number(this.queryParams.radio)}
const param={}
if(this.queryParams.address.length > 0){
let arr = this.$refs.address.getCheckedNodes();
let provinceCode = [],cityCode = [],countyCode = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
}
}
if(provinceCode.length > 0){
params.provinceIds=provinceCode
param.provinceIds=provinceCode
}
if(cityCode.length > 0){
params.cityIds=cityCode
param.cityIds=cityCode
}
if(countyCode.length > 0){
params.areaIds=countyCode
param.areaIds=countyCode
}
}
if(this.queryParams.uipExecutiveLevel){
params.uipExecutiveLevel=this.queryParams.uipExecutiveLevel;
param.uipExecutiveLevel=this.queryParams.uipExecutiveLevel;
}
if(this.queryParams.uipBusinessType.length > 0){
params.uipBusinessType=this.queryParams.uipBusinessType;
param.uipBusinessType=this.queryParams.uipBusinessType;
}
if(this.queryParams.bratingSubjectLevel.length > 0){
params.bratingSubjectLevel=this.queryParams.bratingSubjectLevel;
param.bratingSubjectLevel=this.queryParams.bratingSubjectLevel;
}
if(this.queryParams.shareholderBg.length > 0){
params.shareholderBg=this.queryParams.shareholderBg;
param.shareholderBg=this.queryParams.shareholderBg;
}
if(this.queryParams.equityRelationship.length > 0){
params.equityRelationship=this.queryParams.equityRelationship;
param.equityRelationship=this.queryParams.equityRelationship;
}
if(this.queryParams.platformImportance.length > 0){
params.platformImportance=this.queryParams.platformImportance;
param.platformImportance=this.queryParams.platformImportance;
}
if(this.queryParams.field){
params.field=this.queryParams.field
}
if(this.queryParams.order){
params.order=this.queryParams.order
}
urbanInvestmentPage(params).then(res => {
this.tableLoading = false
this.tableData = res.data.list;
this.tableDataTotal = res.data.totalCount
})
urbanInvestmentStatistics(param).then(res => {
this.statistics=res.data;
})
},
//地区 //地区
async dataRegion() { async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, { // await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
...@@ -359,12 +422,12 @@ export default { ...@@ -359,12 +422,12 @@ export default {
handleSizeChange(val) { handleSizeChange(val) {
this.pageIndex = 1 this.pageIndex = 1
this.pageSize = val this.pageSize = val
// this.querySubmit() this.querySubmit()
}, },
// 跳转指定页数 // 跳转指定页数
handleCurrentChange(val) { handleCurrentChange(val) {
this.pageIndex = val this.pageIndex = val
// this.querySubmit() this.querySubmit()
}, },
handleSearch(event){ handleSearch(event){
// this.searchState=!this.searchState; // this.searchState=!this.searchState;
...@@ -374,19 +437,10 @@ export default { ...@@ -374,19 +437,10 @@ export default {
document.removeEventListener('click', this.handleSearch); document.removeEventListener('click', this.handleSearch);
} }
}, },
active(index, item) { changeXZDJ(index,name) {
// this.selected.indexOf(item) 判断item下标是否为-1,
// 是-1则数组中匹配不到该数据,添加
// 不是-1则说明匹配到了,抹除
if (this.selected.indexOf(item) !== -1) {
this.selected.splice(this.selected.indexOf(item), 1); //取消
} else {
this.selected.push(item);//选中添加到数组里
}
console.log(JSON.parse(JSON.stringify(this.selected)));
},
changeXZDJ(index) {
this.xzdjCalss = index; this.xzdjCalss = index;
this.queryParams.uipExecutiveLevel=name;
this.querySubmit()
}, },
addressListbtn() { addressListbtn() {
let arr = this.$refs.address.getCheckedNodes(); let arr = this.$refs.address.getCheckedNodes();
...@@ -406,6 +460,72 @@ export default { ...@@ -406,6 +460,72 @@ export default {
} else { } else {
this.addresslength = 0; this.addresslength = 0;
} }
this.querySubmit()
},
changeType(item,index){
switch (index) {
case 1:
if (this.queryParams.uipBusinessType.indexOf(item) !== -1) {
this.queryParams.uipBusinessType.splice(this.queryParams.uipBusinessType.indexOf(item), 1);
} else {
this.queryParams.uipBusinessType.push(item);
}
break;
case 2:
if (this.queryParams.bratingSubjectLevel.indexOf(item) !== -1) {
this.queryParams.bratingSubjectLevel.splice(this.queryParams.bratingSubjectLevel.indexOf(item), 1);
} else {
this.queryParams.bratingSubjectLevel.push(item);
}
break;
case 3:
if (this.queryParams.shareholderBg.indexOf(item) !== -1) {
this.queryParams.shareholderBg.splice(this.queryParams.shareholderBg.indexOf(item), 1);
} else {
this.queryParams.shareholderBg.push(item);
}
break;
case 4:
if (this.queryParams.equityRelationship.indexOf(item) !== -1) {
this.queryParams.equityRelationship.splice(this.queryParams.equityRelationship.indexOf(item), 1);
} else {
this.queryParams.equityRelationship.push(item);
}
break;
case 5:
if (this.queryParams.platformImportance.indexOf(item) !== -1) {
this.queryParams.platformImportance.splice(this.queryParams.platformImportance.indexOf(item), 1);
} else {
this.queryParams.platformImportance.push(item);
}
break;
}
this.pageIndex = 1;
this.querySubmit()
},
formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-'
},
sortChange({ column, prop, order }){
this.queryParams.field = prop
if(column.order === "ascending"){
this.queryParams.order = 'asc'
}else if(column.order === "descending"){
this.queryParams.order = 'desc'
}else {
this.queryParams.order=''
this.queryParams.field=''
}
this.pageIndex = 1;
this.querySubmit()
},
handleKeyword(){
this.pageIndex = 1;
this.querySubmit()
},
changeRadio(){
this.pageIndex = 1;
this.querySubmit()
}, },
}, },
} }
...@@ -434,21 +554,22 @@ export default { ...@@ -434,21 +554,22 @@ export default {
box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.1); box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.1);
border-radius: 4px; border-radius: 4px;
width: 880px; width: 880px;
height: 337px; /*height: 337px;*/
padding: 16px; padding: 16px;
position: absolute; position: absolute;
top: 25px; top: 25px;
left: 0; left: 0;
z-index: 99; z-index: 9999;
.item{ .item{
margin-bottom: 5px; margin-bottom: 5px;
display: flex; /*display: flex;*/
/*align-items: center;*/ /*align-items: center;*/
font-size: 14px; font-size: 14px;
.wrap_label{ .wrap_label{
color: rgba(35,35,35,0.8); color: rgba(35,35,35,0.8);
margin-right: 12px; margin-right: 12px;
line-height: 30px; line-height: 30px;
float: left;
} }
.item_ckquery{ .item_ckquery{
position: relative; position: relative;
...@@ -457,6 +578,7 @@ export default { ...@@ -457,6 +578,7 @@ export default {
padding: 5px 12px; padding: 5px 12px;
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
margin-right: 8px;
} }
.color_text{ .color_text{
background: #F3F4F5; background: #F3F4F5;
...@@ -511,13 +633,19 @@ export default { ...@@ -511,13 +633,19 @@ export default {
.table-item{ .table-item{
margin-top: 22px; margin-top: 22px;
} }
.companyName{
width: 200px;
display: inline-block;
margin: 0;
}
.table-span{ .table-span{
float: right;
img{ img{
width: 16px; width: 16px;
height: 16px; height: 16px;
margin-bottom: -4px; margin-bottom: -4px;
margin-right: 5px; margin-right: 5px;
margin-left: 20px; /*margin-left: 20px;*/
} }
} }
.list-box{ .list-box{
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
<div class="top-icons"> <div class="top-icons">
<img class="top-img" src="@/assets/images/project/icon_8.png"> <img class="top-img" src="@/assets/images/project/icon_8.png">
<div class="name">即将开项目</div> <div class="name">即将开项目</div>
<div class="number">39</div> <div class="number">39</div>
<div class="compare">较上月<span class="ss">+3 <img src="@/assets/images/project/ss.png"></span></div> <div class="compare">较上月<span class="ss">+3 <img src="@/assets/images/project/ss.png"></span></div>
</div> </div>
...@@ -504,10 +504,18 @@ export default { ...@@ -504,10 +504,18 @@ export default {
.ss{ .ss{
color: #0CBC6D; color: #0CBC6D;
padding-left: 3px; padding-left: 3px;
>img{
width: 8px;
margin-top: -3px;
}
} }
.xj{ .xj{
color: #FF3C3C; color: #FF3C3C;
padding-left: 3px; padding-left: 3px;
>img{
width: 8px;
margin-top: -3px;
}
} }
} }
} }
...@@ -642,6 +650,9 @@ export default { ...@@ -642,6 +650,9 @@ export default {
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
padding-top: 16px; padding-top: 16px;
>img{
height: 48px;
}
>div{ >div{
line-height: 14px; line-height: 14px;
} }
...@@ -675,7 +686,7 @@ export default { ...@@ -675,7 +686,7 @@ export default {
color: #FFFFFF; color: #FFFFFF;
.img{ .img{
background: url("../../../assets/images/project/add_2.png") no-repeat center center; background: url("../../../assets/images/project/add_2.png") no-repeat center center;
background-size: 100%;
} }
} }
} }
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<div class="p3"> <div class="p3">
<img src="@/assets/images/project/success.png">查询成功 <img src="@/assets/images/project/success.png">查询成功
</div> </div>
<div class="p2">成功导入{{titletext}}信息</div> <div class="p2">成功导入{{successCount}}{{titletext}}信息</div>
<div class="btns"> <div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div> <div class="btn btn_primary h32" @click="getmsg">查看</div>
</div> </div>
...@@ -73,10 +73,10 @@ ...@@ -73,10 +73,10 @@
}, },
downloadhref:'',//样例地址 downloadhref:'',//样例地址
titletext:'', titletext:'',
successCount:0,//成功条数
} }
}, },
created(){ created(){
console.log(this.importtype )
if(this.importtype == 'project'){//项目管理 if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx' this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '商机' this.titletext = '商机'
...@@ -93,15 +93,35 @@ ...@@ -93,15 +93,35 @@
this.$emit('getdatas') this.$emit('getdatas')
}, },
handleFileListChange(file, fileList) { handleFileListChange(file, fileList) {
var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
const extension = testmsg === "xlsx";
const extension1 = testmsg === "xls";
if (!extension && !extension1 ) {
this.$message({
message: "上传文件只能是.xls,.xlsx格式!",
type: "warning",
});
return false;
}
const isLt2M = file.size / 1024 / 1024 < 2
if (!isLt2M) {
this.$refs.upload.clearFiles()
this.$message({
message: '上传文件大小不能超过 2MB!',
type: 'warning'
})
return false
}
if (fileList.length > 0) { if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]]; this.fileList = [fileList[fileList.length - 1]];
this.isUpload = true this.isUpload = true
} }
}, },
onSuccess(res, file, fileList) { onSuccess(res, file, fileList) {
if(res.code == 200 ) if (res.code == 200) {
this.successCount = res.successCount
this.addsuccess = true this.addsuccess = true
else { }else {
this.importCancel() this.importCancel()
this.$message.error({ message: res.msg, showClose: true }) this.$message.error({ message: res.msg, showClose: true })
} }
......
...@@ -15,26 +15,34 @@ ...@@ -15,26 +15,34 @@
<el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input> <el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div> </div>
<div class="wr_bot"> <div class="wr_bot">
<el-select v-model="addParam.visitMode" class="w128" placeholder="拜访方式"> <div class="sels" v-model="addParam.visitMode">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <img src="@/assets/images/project/ico_1.png">
<el-select class="w128" placeholder="拜访方式">
<el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
<template v-if="!customerIds"> </div>
<el-select v-if="showtype == 'gjdt'" v-model="addParam.customerId" class="w128" placeholder="关联企业"> <div class="sels" v-if="!customerIds && showtype == 'gjdt'">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <img src="@/assets/images/project/ico_1.png">
<el-select v-model="addParam.customerId" class="w128" placeholder="关联企业">
<el-option v-for="(item,index) in glqylist" :key="index" :label="item.companyName" :value="item.customerId"></el-option> <el-option v-for="(item,index) in glqylist" :key="index" :label="item.companyName" :value="item.customerId"></el-option>
</el-select> </el-select>
</template> </div>
<el-select v-if="showtype == 'projectgjdt'" v-model="projectId" class="w128" placeholder="关联项目"> <div class="sels" v-if="showtype == 'projectgjdt'">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <img src="@/assets/images/project/ico_1.png">
<el-select v-model="projectId" class="w128" placeholder="关联项目">
<el-option v-for="(item,index) in projectList" :key="index" :label="item.projectName" :value="item.id"></el-option> <el-option v-for="(item,index) in projectList" :key="index" :label="item.projectName" :value="item.id"></el-option>
</el-select> </el-select>
</div>
<div class="sels">
<img src="@/assets/images/project/ico_2.png">
<el-input v-model="addParam.name" placeholder="拜访对象" style="width: 100px;"> <el-input v-model="addParam.name" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input> </el-input>
</div>
<div class="sels">
<img src="@/assets/images/project/ico_3.png">
<el-input v-model="addParam.position" placeholder="客户职位" style="width: 100px;"> <el-input v-model="addParam.position" placeholder="客户职位" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_3.png"></i>
</el-input> </el-input>
</div>
<div class="times"><img src="@/assets/images/project/ico_4.png"> <div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker class="w128" <el-date-picker class="w128"
v-model="addParam.nextVisitTime" v-model="addParam.nextVisitTime"
......
...@@ -209,5 +209,6 @@ ...@@ -209,5 +209,6 @@
.img.img1{ .img.img1{
margin-right: 8px; margin-right: 8px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center; background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
background-size: 100%;
} }
</style> </style>
...@@ -286,10 +286,12 @@ ...@@ -286,10 +286,12 @@
.img.img1{ .img.img1{
margin-right: 4px; margin-right: 4px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center; background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
background-size: 100%;
} }
.img.img2{ .img.img2{
margin-right: 4px; margin-right: 4px;
background: url('../../../../../src/assets/images/upload.png')no-repeat center center; background: url('../../../../../src/assets/images/upload.png')no-repeat center center;
background-size: 100%;
} }
.box-card{ .box-card{
position: relative; position: relative;
......
...@@ -276,6 +276,8 @@ ...@@ -276,6 +276,8 @@
} }
</script> </script>
<style scoped> <style scoped lang="scss">
.select-popper{
top: 3px;
}
</style> </style>
...@@ -301,6 +301,7 @@ ...@@ -301,6 +301,7 @@
margin-right: 4px; margin-right: 4px;
transform: rotateX(180deg); transform: rotateX(180deg);
background: url('../../../../../src/assets/images/import.png')no-repeat center center; background: url('../../../../../src/assets/images/import.png')no-repeat center center;
background-size: 100%;
} }
.box-card{ .box-card{
position: relative; position: relative;
......
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
} }
}, },
created(){ created(){
this.thistag = this.$route.query.tag this.thistag = this.$route.query.tag ? this.$route.query.tag : this.thistag
this.prvinceTree() this.prvinceTree()
this.id = this.detailId ? this.detailId : this.$route.query.id this.id = this.detailId ? this.detailId : this.$route.query.id
//项目阶段 //项目阶段
...@@ -347,6 +347,9 @@ ...@@ -347,6 +347,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.select-popper{
top: 0;
}
.head{ .head{
.titles{ .titles{
line-height: 31px; line-height: 31px;
...@@ -376,7 +379,7 @@ ...@@ -376,7 +379,7 @@
&:hover{ &:hover{
background-color: #DFE0E2; background-color: #DFE0E2;
} }
>img{ img{
float: left; float: left;
width: 16px; width: 16px;
margin-top: 3px; margin-top: 3px;
...@@ -417,6 +420,7 @@ ...@@ -417,6 +420,7 @@
width: 10px; width: 10px;
height: 32px; height: 32px;
background: url("../../../assets/images/project/icol1.png") no-repeat top center #fff; background: url("../../../assets/images/project/icol1.png") no-repeat top center #fff;
background-size: 100%;
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
...@@ -428,14 +432,17 @@ ...@@ -428,14 +432,17 @@
width: 10px; width: 10px;
height: 32px; height: 32px;
background: url("../../../assets/images/project/icor1.png") no-repeat top center #fff; background: url("../../../assets/images/project/icor1.png") no-repeat top center #fff;
background-size: 100%;
} }
&:hover{ &:hover{
background: #E3E6EA; background: #E3E6EA;
.left{ .left{
background: url("../../../assets/images/project/icol2.png") no-repeat top center #fff; background: url("../../../assets/images/project/icol2.png") no-repeat top center #fff;
background-size: 100%;
} }
.right{ .right{
background: url("../../../assets/images/project/icor2.png") no-repeat top center #fff; background: url("../../../assets/images/project/icor2.png") no-repeat top center #fff;
background-size: 100%;
} }
} }
...@@ -444,9 +451,11 @@ ...@@ -444,9 +451,11 @@
color: #fff; color: #fff;
.left{ .left{
background: url("../../../assets/images/project/icol3.png") no-repeat top center #fff; background: url("../../../assets/images/project/icol3.png") no-repeat top center #fff;
background-size: 100%;
} }
.right{ .right{
background: url("../../../assets/images/project/icor3.png") no-repeat top center #fff; background: url("../../../assets/images/project/icor3.png") no-repeat top center #fff;
background-size: 100%;
} }
} }
} }
......
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<el-divider v-if="index != datalist.length-1"></el-divider> <el-divider v-if="index != datalist.length-1"></el-divider>
<div class="operates" v-if="activeName=='first'"> <div class="operates" v-if="activeName=='first'">
<div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div> <div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div>
<div class="i2"><img src="@/assets/images/edit.png" @click="toDetail(item.id,'xmsl')">编辑</div> <div class="i2"><img src="@/assets/images/edit1.png" @click="toDetail(item.id,'xmsl')">编辑</div>
<div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div> <div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div>
</div> </div>
<div class="delform" v-if="activeName=='first' && ondel == index"> <div class="delform" v-if="activeName=='first' && ondel == index">
...@@ -447,14 +447,17 @@ export default { ...@@ -447,14 +447,17 @@ export default {
z-index: 2; z-index: 2;
.img.img1{ .img.img1{
background: url('../../../../src/assets/images/add.png')no-repeat center center; background: url('../../../../src/assets/images/add.png')no-repeat center center;
background-size: 100%;
} }
.btn_default:hover{ .btn_default:hover{
.img1{ .img1{
background: url('../../../../src/assets/images/add_1.png')no-repeat center center; background: url('../../../../src/assets/images/add_1.png')no-repeat center center;
background-size: 100%;
} }
} }
.img.img2{ .img.img2{
background: url('../../../../src/assets/images/import.png')no-repeat center center; background: url('../../../../src/assets/images/import.png')no-repeat center center;
background-size: 100%;
} }
} }
.scbtns{ .scbtns{
...@@ -536,6 +539,7 @@ export default { ...@@ -536,6 +539,7 @@ export default {
>img{ >img{
float: left; float: left;
margin-right: 5px; margin-right: 5px;
width: 16px;
} }
} }
.i1:hover{ .i1:hover{
......
...@@ -61,6 +61,6 @@ public class BusinessAddDto { ...@@ -61,6 +61,6 @@ public class BusinessAddDto {
private String customerId; private String customerId;
public Double getInvestmentAmount() { public Double getInvestmentAmount() {
return StringUtils.isEmpty(investmentAmount) ? 0 :Double.parseDouble(investmentAmount); return StringUtils.isEmpty(investmentAmount) ? null :Double.parseDouble(investmentAmount);
} }
} }
...@@ -132,7 +132,7 @@ public class EnterpriseService { ...@@ -132,7 +132,7 @@ public class EnterpriseService {
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo bestStockPage(EnterpriseKeymembersBody body) throws Exception { public TableDataInfo bestStockPage(EnterpriseBestStockPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
......
...@@ -126,7 +126,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -126,7 +126,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
Integer errorCount = 0;//失败条数 Integer errorCount = 0;//失败条数
List<String> result = new LinkedList();//导入结果汇总 List<String> result = new LinkedList();//导入结果汇总
List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file); List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file);
if(CollectionUtil.isEmpty(businessInfoList))return AjaxResult.error("文档中无项目信息!"); if(CollectionUtil.isEmpty(businessInfoList))return AjaxResult.error("文档中无项目信息,请按照模板文档格式上传");
for (BusinessExcelDto businessInfo : businessInfoList) { for (BusinessExcelDto businessInfo : businessInfoList) {
//查询已有的项目名称 //查询已有的项目名称
Integer count = businessInfoMapper.isRepetitionProjectName(businessInfo.getProjectName(), userId.intValue()); Integer count = businessInfoMapper.isRepetitionProjectName(businessInfo.getProjectName(), userId.intValue());
...@@ -147,7 +147,9 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -147,7 +147,9 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
} }
result.add("导入项目成功条数" + rowSuccess); result.add("导入项目成功条数" + rowSuccess);
result.add("导入项目失败条数" + errorCount); result.add("导入项目失败条数" + errorCount);
return errorCount == businessInfoList.size() ? AjaxResult.error(String.join(",", result)) : AjaxResult.success(String.join(",", result)); AjaxResult success = AjaxResult.success(String.join(",", result));
success.put("successCount",rowSuccess);
return success;
} }
/** /**
......
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