Commit 105b9a6f authored by caixingbing's avatar caixingbing
parents 2cd214d1 16fb72f8
......@@ -7,7 +7,6 @@ import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.SysRole;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.utils.poi.ExcelUtil;
......@@ -18,13 +17,11 @@ import com.dsk.system.service.ICustomerService;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......
......@@ -47,5 +47,14 @@ public class CustomerFollowRecordController extends BaseController {
return AjaxResult.success(baseService.add(followRecord));
}
/**
* 删除客户跟进记录
*/
// @PreAuthorize("@ss.hasPermi('customer:follow:record:del')")
@DeleteMapping("/{id}")
@RepeatSubmit
public AjaxResult del(@PathVariable("id") Long id){
return AjaxResult.success(baseService.del(id));
}
}
......@@ -45,12 +45,6 @@ public class EnterpriseController {
return enterpriseService.bidDataGroup(vo);
}
@ApiOperation(value = "供应商列表(建设库)")
@PostMapping(value = "supplierPage")
public R supplierPage(@RequestBody @Valid EnterpriseSupplierPageBody vo) throws Exception {
return enterpriseService.supplierPage(vo);
}
@ApiOperation(value = "甲方业绩数据(openApi)")
@PostMapping(value = "projectTenderDataGroup")
public R projectTenderDataGroup(@RequestBody @Valid EnterpriseProjectTenderDataGroupBody vo) throws Exception {
......@@ -75,30 +69,6 @@ public class EnterpriseController {
return enterpriseService.affiliates(vo);
}
@ApiOperation(value = "招标公告列表(建设库)")
@PostMapping(value = "bidNoticePage")
public R bidNoticePage(@RequestBody @Valid EnterpriseBidNoticePageBody vo) throws Exception {
return enterpriseService.bidNoticePage(vo);
}
@ApiOperation(value = "招标公告省份(建设库)")
@PostMapping(value = "bidNoticeProvince")
public R bidNoticeProvince(@RequestBody @Valid EnterpriseBidNoticePageBody vo) throws Exception {
return enterpriseService.bidNoticeProvince(vo);
}
@ApiOperation(value = "招标公告信息类型(建设库)")
@PostMapping(value = "bidNoticeTenderStage")
public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseBidNoticePageBody vo) throws Exception {
return enterpriseService.bidNoticeTenderStage(vo);
}
@ApiOperation(value = "招标公告详情(建设库)")
@PostMapping(value = "bidNoticeDeatil")
public R bidNoticeDeatil(@RequestBody @Valid EnterpriseBidNoticeDetailBody vo) throws Exception {
return enterpriseService.bidNoticeDeatil(vo);
}
@ApiOperation(value = "企业动态列表(建设库)")
@PostMapping(value = "dynamicPage")
public TableDataInfo dynamicPage(@RequestBody @Valid EnterpriseDynamicPageBody vo) throws Exception {
......@@ -129,4 +99,10 @@ public class EnterpriseController {
return enterpriseService.bestStockPage(vo);
}
@ApiOperation(value = "财务简析(openApi)")
@PostMapping(value = "financial")
public R financial(@RequestBody @Valid EnterpriseFinancialBody vo) throws Exception {
return enterpriseService.financial(vo);
}
}
......@@ -26,7 +26,7 @@ public class CompanySearchController {
*/
@RequestMapping("/index")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterprisePage(compose);
return opportunityRadarService.enterpriseIndex(compose);
}
/*
......@@ -36,4 +36,12 @@ public class CompanySearchController {
public AjaxResult findByName(@PathVariable String keyword) {
return opportunityRadarService.enterpriseByName(keyword);
}
/*
* 完全匹配企业名称
*/
@GetMapping("/page")
public AjaxResult page(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterprisePage(compose);
}
}
package com.dsk.web.controller.search.macroMarket;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.system.domain.OpRegionalEconomicDataV1;
import com.dsk.system.service.EconomicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @ClassName EconomicController
* @Description 经济大全
* @ClassName RegionalEconomicDataController
* @Description 区域经济大全
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@RestController
@RequestMapping(value ="/economic")
public class EconomicController {
public class RegionalEconomicDataController {
@Autowired
private EconomicService economicService;
......@@ -35,10 +28,9 @@ public class EconomicController {
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/national/list")
public AjaxResult nationalList(@RequestBody OpRegionalEconomicDataV1Dto dto) {
// return economicService.nationalList(dto);
return new AjaxResult(HttpStatus.OK.value(), "", new OpRegionalEconomicDataV1());
@PostMapping("/national/nationalPage")
public AjaxResult nationalPage(@RequestBody OpRegionalEconomicDataV1Dto dto) {
return economicService.nationalPage(dto);
}
/***
......@@ -50,8 +42,7 @@ public class EconomicController {
*/
@GetMapping("/details/{id}")
public AjaxResult details(@PathVariable("id") Integer id) {
// return economicService.details(id);
return new AjaxResult(HttpStatus.OK.value(), "", new OpRegionalEconomicDataV1());
return economicService.details(id);
}
......@@ -64,17 +55,7 @@ public class EconomicController {
*/
@PostMapping("/statistics/regional")
public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataV1Dto dto) {
// return economicService.regional(dto);
Map<String, Object> map = BeanUtil.beanToMap(new OpRegionalEconomicDataV1(), false, false);
// 下属辖区
map.put("subordinateJurisdiction", 38);
// 城投平台
map.put("urbanInvestmentPlatform", 365);
// 城投平台授信余额
map.put("creditBalance", 666.66);
// 城投平台营收账款
map.put("accountsReceivable", 888.88);
return new AjaxResult(HttpStatus.OK.value(), "", map);
return economicService.statisticsRegional(dto);
}
/***
......@@ -86,32 +67,7 @@ public class EconomicController {
*/
@PostMapping("/regional/list")
public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataV1Dto dto) {
// return economicService.regionalList(dto);
List<OpRegionalEconomicDataV1> opRegionalEconomicDataV1List= new ArrayList<>(5);
OpRegionalEconomicDataV1 dataV1 = new OpRegionalEconomicDataV1();
dataV1.setProvince("重庆");
dataV1.setYear(2022);
OpRegionalEconomicDataV1 dataV2 = new OpRegionalEconomicDataV1();
dataV2.setProvince("重庆");
dataV2.setYear(2021);
OpRegionalEconomicDataV1 dataV3 = new OpRegionalEconomicDataV1();
dataV3.setProvince("重庆");
dataV3.setYear(2020);
OpRegionalEconomicDataV1 dataV4 = new OpRegionalEconomicDataV1();
dataV4.setProvince("重庆");
dataV4.setYear(2019);
OpRegionalEconomicDataV1 dataV5 = new OpRegionalEconomicDataV1();
dataV5.setProvince("重庆");
dataV5.setYear(2018);
opRegionalEconomicDataV1List.add(dataV1);
opRegionalEconomicDataV1List.add(dataV2);
opRegionalEconomicDataV1List.add(dataV3);
opRegionalEconomicDataV1List.add(dataV4);
opRegionalEconomicDataV1List.add(dataV5);
return new AjaxResult(HttpStatus.OK.value(), "", opRegionalEconomicDataV1List);
return economicService.regionalList(dto);
}
......
package com.dsk.web.controller.search.macroMarket;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.SpecialBondInformationPageDto;
import com.dsk.common.dtos.SpecialPurposeBondsDto;
import com.dsk.common.dtos.SpecialPurposeBondsPageDto;
import com.dsk.system.service.SpecialPurposeBondsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @ClassName SpecialBondProjectsController
* @Description 专项债项目
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@RestController
@RequestMapping(value ="/specialPurposeBonds")
public class SpecialBondProjectsController {
@Autowired
private SpecialPurposeBondsService specialPurposeBondsService;
/***
*@Description: 专项债项目分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/projects/page")
public AjaxResult page(@RequestBody SpecialPurposeBondsPageDto pageDto) {
return specialPurposeBondsService.page(pageDto);
}
/***
*@Description: 专项债项目详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@GetMapping("/details/{id}")
public AjaxResult details(@PathVariable("id") String id) {
return specialPurposeBondsService.details(id);
}
/***
*@Description: 专项债-项目类别统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/bond/statistics")
public AjaxResult bondStatistics(@RequestBody SpecialPurposeBondsDto dto) {
return specialPurposeBondsService.bondStatistics(dto);
}
/***
*@Description: 专项债分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/bond/page")
public AjaxResult bondPage(@RequestBody SpecialBondInformationPageDto dto) {
return specialPurposeBondsService.bondPage(dto);
}
}
package com.dsk.web.controller.search.macroMarket;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.SpecialPurposeBondsDto;
import com.dsk.system.domain.SpecialBondInformationV1;
import com.dsk.system.domain.SpecialBondProjectsV1;
import com.dsk.system.service.SpecialPurposeBondsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName SpecialPurposeBondsController
* @Description 专项债项目
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@RestController
@RequestMapping(value ="/specialPurposeBonds")
public class SpecialPurposeBondsController {
@Autowired
private SpecialPurposeBondsService specialPurposeBondsService;
/***
*@Description: 专项债项目分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/projects/page")
public AjaxResult page() {
// return specialPurposeBondsService.page();
Map<String, Object> map = BeanUtil.beanToMap(new SpecialBondProjectsV1(), false, false);
return new AjaxResult(HttpStatus.OK.value(), "", map);
}
/***
*@Description: 专项债项目详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@GetMapping("/details/{id}")
public AjaxResult details(@PathVariable("id") String id) {
return specialPurposeBondsService.details(id);
}
/***
*@Description: 专项债-项目类别统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/bond/statistics")
public AjaxResult bondStatistics(@RequestBody SpecialPurposeBondsDto dto) {
// return specialPurposeBondsService.bondStatistics();
Map<String, Object> map = BeanUtil.beanToMap(new SpecialPurposeBondsDto(), false, false);
List<SpecialPurposeBondsDto> list = new ArrayList<>(4);
SpecialPurposeBondsDto one = new SpecialPurposeBondsDto();
one.setCount(3);
one.setProportion(55.55);
SpecialPurposeBondsDto two = new SpecialPurposeBondsDto();
two.setCount(8);
two.setProportion(0.12);
SpecialPurposeBondsDto three = new SpecialPurposeBondsDto();
three.setCount(1);
three.setProportion(33.33);
SpecialPurposeBondsDto four = new SpecialPurposeBondsDto();
four.setCount(5);
four.setProportion(11.11);
list.add(one);
list.add(two);
list.add(three);
list.add(four);
switch (dto.getField()) {
case "count": list = sortedCount(list, dto);
break;
case "totalInvestment": list = sortedTotalInvestment(list, dto);
break;
case "proportion": list = sortedProportion(list, dto);
break;
default:
break;
}
return new AjaxResult(HttpStatus.OK.value(), "", list);
}
/***
*@Description: 专项债分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/bond/page")
public AjaxResult bondPage() {
// return specialPurposeBondsService.bondPage();
Map<String, Object> map = BeanUtil.beanToMap(new SpecialBondInformationV1(), false, false);
return new AjaxResult(HttpStatus.OK.value(), "", map);
}
/***
*@Description: 项目数量
*@Param:
*@return: void
*@Author: Dgm
*@date: 2023/5/25 11:26
*/
public List<SpecialPurposeBondsDto> sortedCount(List<SpecialPurposeBondsDto> list, SpecialPurposeBondsDto dto) {
if ("desc".equals(dto.getOrder())) {
list = list.stream().sorted(Comparator.comparing(SpecialPurposeBondsDto::getCount).reversed()).collect(Collectors.toList());
} else {
list = list.stream().sorted(Comparator.comparing(SpecialPurposeBondsDto::getCount)).collect(Collectors.toList());
}
return list;
}
/***
*@Description: 金额
*@Param:
*@return: void
*@Author: Dgm
*@date: 2023/5/25 11:26
*/
public List<SpecialPurposeBondsDto> sortedTotalInvestment(List<SpecialPurposeBondsDto> list, SpecialPurposeBondsDto dto) {
if ("desc".equals(dto.getOrder())) {
list = list.stream().sorted(Comparator.comparing(SpecialPurposeBondsDto::getTotalInvestment).reversed()).collect(Collectors.toList());
} else {
list = list.stream().sorted(Comparator.comparing(SpecialPurposeBondsDto::getTotalInvestment)).collect(Collectors.toList());
}
return list;
}
/***
*@Description: 比例
*@Param:
*@return: void
*@Author: Dgm
*@date: 2023/5/25 11:26
*/
public List<SpecialPurposeBondsDto> sortedProportion(List<SpecialPurposeBondsDto> list, SpecialPurposeBondsDto dto) {
if ("desc".equals(dto.getOrder())) {
list = list.stream().sorted(Comparator.comparing(SpecialPurposeBondsDto::getProportion).reversed()).collect(Collectors.toList());
} else {
list = list.stream().sorted(Comparator.comparing(SpecialPurposeBondsDto::getProportion)).collect(Collectors.toList());
}
return list;
}
}
package com.dsk.web.controller.search.macroMarket;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
import com.dsk.system.domain.OpUipFinancialData;
import com.dsk.system.service.UrbanInvestmentPlatformService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* @ClassName UrbanInvestmentPlatformController
* @Description 城投平台
......@@ -35,15 +29,7 @@ public class UrbanInvestmentPlatformController {
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody UrbanInvestmentPlatformDto dto) {
// return urbanInvestmentPlatformService.page();
Map<String, Object> map = BeanUtil.beanToMap(new OpUipFinancialData(), false, false);
// 招标
map.put("biddingAnnouncement", 11);
// 供应商
map.put("supplier", 33);
// 土地
map.put("landInfo", 66);
return new AjaxResult(HttpStatus.OK.value(), "", map);
return urbanInvestmentPlatformService.page(dto);
}
/***
......@@ -57,4 +43,17 @@ public class UrbanInvestmentPlatformController {
public AjaxResult details(@PathVariable("id") String id) {
return urbanInvestmentPlatformService.details(id);
}
/***
*@Description: 城投平台统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics")
public AjaxResult statistics(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.statistics(dto);
}
}
......@@ -18,10 +18,12 @@ public interface BusinessOpportunityRadarService {
AjaxResult landMarketPage(ComposeQueryDto compose);
AjaxResult establishmentPage(ComposeQueryDto compose);
AjaxResult enterprisePage(ComposeQueryDto compose);
AjaxResult enterpriseIndex(ComposeQueryDto compose);
AjaxResult enterpriseByName(String keyword);
AjaxResult enterprisePage(ComposeQueryDto compose);
AjaxResult bondProjectPage(ComposeQueryDto compose);
AjaxResult jskBidPlanPage(ComposeQueryDto compose);
......
......@@ -51,11 +51,18 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
}
@Override
public AjaxResult enterprisePage(ComposeQueryDto compose) {
public AjaxResult enterpriseIndex(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterprisePage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterpriseByName(String keyword){
Map<String,Object> params = new HashMap<>();
......
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseFinancialBody
{
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectApprovalExaminePageBody extends BasePage {
/**
* id
*/
@NotNull(message = "id不能为空")
private String id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectApprovalInfoDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private String id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectApprovalMarketingPageBody extends BasePage {
/**
* id
*/
@NotNull(message = "id不能为空")
private String id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectApprovalProjectPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/*
* 1金额倒序,2金额正序,3计划开工时间倒序,4计划开工时间正序,13计划完工时间倒序,14计划完工时间正序
*/
@NotNull(message = "排序条件不能为空")
private Integer sort;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeAreaBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private String id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticePageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/**
* 类型
*/
private String tenderStage;
/*
* 1金额倒序,2金额正序,3时间倒序,4时间正序
*/
@NotNull(message = "排序条件不能为空")
private Integer sort;
/**
* 省份
*/
private List<Integer> provinceIds;
/**
* 市份
*/
private List<Integer> cityIds;
/**
* 县
*/
private List<Integer> areaIds;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeProAssessmentWayBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeProDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private String id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeProPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/**
* 项目类别
*/
private String projectType;
/**
* 工程用途
*/
private String projectPurposes;
/**
* 评标办法
*/
private String bidAssessmentWay;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeProProjectPurposesBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeProProjectTypeBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectBidNoticeTenderStageBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectCreditXzxkPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectLandDetailBody {
/**
* 企业id
*/
@NotNull(message = "id不能为空")
private Integer id;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectLandTransactionPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 土地用途
*/
private List<String> landUse;
/**
* 查询关键字
*/
private String keys;
/*
* 1金额倒序,2金额正序,3时间倒序,4时间正序,11面积倒序,12面积正序
*/
@NotNull(message = "排序条件不能为空")
private Integer sort;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectLandUseBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.dtos;
import com.dsk.common.core.domain.model.BasePage;
import lombok.Data;
import org.springframework.boot.context.event.SpringApplicationEvent;
/**
* @ClassName OpRegionalEconomicDataV1Dto
......@@ -11,7 +11,7 @@ import org.springframework.boot.context.event.SpringApplicationEvent;
* @Version
*/
@Data
public class OpRegionalEconomicDataV1Dto {
public class OpRegionalEconomicDataV1Dto extends BasePage {
/**
* 年份
......@@ -20,15 +20,15 @@ public class OpRegionalEconomicDataV1Dto {
/**
* 省
*/
private Integer provinceId;
private String provinceId;
/**
* 市
*/
private Integer cityId;
private String cityId;
/**
* 区
*/
private Integer areaId;
private String areaId;
/**
* 全国宏观经济:1 / 辖区经济:2 / 地区对比:3
......
package com.dsk.common.dtos;
import com.dsk.common.core.domain.model.BasePage;
import lombok.Data;
/**
* @ClassName SpecialBondInformationPageDto
* @Description 专项债-详情分页
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class SpecialBondInformationPageDto extends BasePage {
/**
* 专项债券唯一标识
*/
private String specialBondUuid;
}
......@@ -15,7 +15,7 @@ public class SpecialPurposeBondsDto {
/**
* 项目类型
*/
private String projectType;
private String specialBondProjectType;
/**
* 项目个数
*/
......@@ -23,7 +23,7 @@ public class SpecialPurposeBondsDto {
/**
* 投资金额
*/
private Double totalInvestment;
private Double projectTotalInvestment;
/**
* 比例(%)
*/
......
package com.dsk.common.dtos;
import com.dsk.common.core.domain.model.BasePage;
import lombok.Data;
/**
* @ClassName SpecialPurposeBonds
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class SpecialPurposeBondsPageDto extends BasePage {
}
......@@ -56,4 +56,18 @@ public class UrbanInvestmentPlatformDto extends BasePage {
* 区
*/
private Integer areaId;
/**
* 关键词
*/
private String keyword;
/**
* 排序字段
*/
private String field;
/**
* 字段 desc asc
*/
private String order;
}
......@@ -32,7 +32,8 @@ public class DskOpenApiUtil {
}
public Map<String,Object> requestBodyLocal(String path, Map<String, Object> bodyMap){
return JSONUtil.toBean(HttpUtil.post("http://127.0.0.1:8766"+path, JSONUtil.toJsonStr(bodyMap)), JSONConfig.create().setIgnoreNullValue(true), Map.class);
String post = HttpUtil.post("http://127.0.0.1:8766" + path, JSONUtil.toJsonStr(bodyMap));
return CommonUtils.assertAsMap(CommonUtils.parseJSON(post));
}
public Map<String,Object> requestBodyWithHeader(String path, Map<String, Object> bodyMap, Map<String, String> headerMap){
......
......@@ -34,3 +34,25 @@ export function getFollowList(param) {
params: param
})
}
//新增跟进记录
export function addFollowRecord(param) {
return request({
url: '/customer/follow/record/',
method: 'POST',
data: param
})
}
//获取个人客户(关联客户)
export function getUserList() {
return request({
url: '/customer/user/list',
method: 'get',
})
}
//删除跟进记录
export function delFollowRecord(param) {
return request({
url: '/customer/follow/record/'+param,
method: 'delete',
})
}
import request from '@/utils/request'
// 合作情况列表
export function getList(data) {
return request({
url: '/customer/business/list',
method: 'get',
params:data
})
}
import request from '@/utils/request'
//新增项目
export function addProject(param) {
return request({
url: '/business/info/add',
method: 'POST',
data: param
})
}
//商机列表
export function getProjectlist(param) {
return request({
url: '/business/info/list',
method: 'GET',
params: param
})
}
import request from '@/utils/request'
// 行政处罚列表
export function penalizePage(data) {
return request({
url: '/enterpriseCredit/penalizePage',
method: 'post',
data:data
})
}
// 行政处罚类型
export function penalizeReasonType(data) {
return request({
url: '/enterpriseCredit/penalizeReasonType',
method: 'post',
data:data
})
}
......@@ -82,12 +82,6 @@
&:hover{
background: #F3F4F5;
}
.txt{
padding-left: 8px;
opacity: 0.4;
display: inline-block;
width: 100%;
}
.el-input{
margin-right: 8px;
.el-input__inner{
......@@ -100,67 +94,100 @@
text-indent: 8px;
}
}
.el-date-editor--date{
.el-input__prefix{
display: none;
}
}
&.i{
.el-input{
.el-input__inner{
width: 100px;
}
}
}
}
.txt{
padding-left: 8px;
color: rgba(35,35,35,0.4);
display: inline-block;
width: 100%;
}
width: 438px;
&.i{
width: auto;
}
.tipinput{
.inputime{
display: inline-block;
margin-top: 1px;
width: calc(100% - 116px);
.el-input{
float: left;
margin-right: 8px;
width: 70px;
margin-bottom: 10px;
.el-input__inner{
width: 70px;
height: 24px;
background: #F3F4F5;
border-radius: 2px;
padding: 0;
text-indent: 14px;
border: 0;
}
width: 184px;
height: 28px;
border-radius: 2px;
line-height: 28px;
cursor: pointer;
>span{
padding-left: 8px;
}
.addbtn{
float: left;
width: 20px;
height: 20px;
background: url("../../assets/images/project/add.png") no-repeat center center;
background-size: 100%;
display: inline-block;
margin-left: 8px;
margin-top: 2px;
&:hover{
background: url("../../assets/images/project/add_1.png") no-repeat center center;
}
.el-icon-caret-bottom{
color: rgba(35,35,32,0.4);
margin-left: 4px;
}
.tips{
float: left;
height: 24px;
line-height: 24px;
padding: 0 14px;
font-size: 14px;
color: #0081FF;
background: #E4F3FD;
margin-right: 8px;
margin-bottom: 5px;
img{
margin-left: 8px;
margin-top: 4px;
float: right;
width: 16px;
display: none;
cursor: pointer;
}
&:hover{
background: #DCEAF3;
img{
display: block;
}
}
}
}
}
.tipinput{
display: inline-block;
margin-top: 1px;
width: calc(100% - 116px);
.el-input{
float: left;
margin-right: 8px;
width: 70px;
margin-bottom: 10px;
.el-input__inner{
width: 70px;
height: 24px;
background: #F3F4F5;
border-radius: 2px;
padding: 0;
text-indent: 14px;
border: 0;
}
}
.addbtn{
float: left;
width: 20px;
height: 20px;
background: url("../../assets/images/project/add.png") no-repeat center center;
background-size: 100%;
display: inline-block;
margin-left: 8px;
margin-top: 2px;
&:hover{
background: url("../../assets/images/project/add_1.png") no-repeat center center;
}
}
.tips{
float: left;
height: 24px;
line-height: 24px;
padding: 0 14px;
font-size: 14px;
color: #0081FF;
background: #E4F3FD;
margin-right: 8px;
margin-bottom: 5px;
img{
margin-left: 8px;
margin-top: 4px;
float: right;
width: 16px;
display: none;
cursor: pointer;
}
&:hover{
background: #DCEAF3;
img{
display: block;
}
}
}
......@@ -543,7 +570,7 @@
.el-input__prefix{
left: 8px;
top: 4px;
top: -2px;
}
.el-input__suffix{
height: 32px;
......@@ -673,6 +700,15 @@
text-align: center;
display: inline-block;
margin-left: 10px;
&.on{
background: #FF3C3C;
color: #FF3C3C;
}
&:hover{
border: 1px solid #FF3C3C;
color: #FF3C3C;
background: #FFEBEB;
}
}
}
.tasklist{
......@@ -701,6 +737,21 @@
border-radius: 4px;
right: 16px;
top: 30px;
padding: 8px 12px;
line-height: 16px;
box-sizing: border-box;
&.on{
background: #D3F0E8;
.color_text{
color: #0CBC6D;
}
}
.select-popper{
margin: 0;
}
.el-icon-caret-bottom{
color:rgba(35,35,35,0.4) ;
}
}
}
}
......@@ -1010,3 +1061,9 @@
}
}
}
.el-input__inner{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 10px;
}
......@@ -37,17 +37,18 @@ input {
background: none;
outline: none;
}
html {
height: 100%;
box-sizing: border-box;
height: 100%;
box-sizing: border-box;
}
body {
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
}
ul,
......@@ -112,6 +113,7 @@ select {
.float_right {
float: right;
}
.el-input {
width: 100%;
}
......@@ -130,6 +132,11 @@ select {
line-height: 34px;
}
.el-dropdown-link {
cursor: pointer;
color: #333333;
}
.el-dropdown-link .el-input {
width: 100%;
}
......@@ -141,6 +148,7 @@ select {
.el-input--suffix .el-input__inner {
padding-right: 15px;
}
.el-select .el-input.is-focus .el-input__inner,
.el-input.is-active .el-input__inner,
.el-input__inner:focus,
......@@ -148,9 +156,15 @@ select {
.el-range-editor.is-active:focus-within {
border-color: #3181fa;
}
.el-popper[x-placement^=top] {
margin-bottom: 12px;
margin-bottom: 12px;
}
.el-popper[x-placement^=bottom] {
margin-top: 12px;
}
.el-select-dropdown .popper__arrow {
display: none;
}
......@@ -158,6 +172,7 @@ select {
.el-popper .popper__arrow {
display: none;
}
.select-popper {
text-align: center;
display: inline-block;
......@@ -217,6 +232,7 @@ select {
.select-popper::-webkit-scrollbar-corner {
background: #fff;
}
.select-popper .el-select {
width: 100%;
}
......@@ -255,11 +271,103 @@ select {
.content_item .select-popper:hover .select-caret {
color: #0074E5;
}
.content_item .select-caret:focus {
border: none;
outline: none;
}
.content_item .geduan{
.select-multiple {
position: absolute;
left: 0;
top: 0px;
opacity: 0;
line-height: 16px;
}
.select-multiple .el-input {
width: 100%;
line-height: 16px;
}
.select-multiple .el-input .el-input__inner {
width: 100%;
height: 16px !important;
}
.select-multiple .el-tag__close.el-icon-close {
display: none;
}
.el-dropdown-land {
margin-right: 24px;
}
.el-dropdown-land .el-icon-caret-bottom {
color: #333333;
margin-left: 2px;
}
.land_date_picker {
position: absolute !important;
visibility: hidden;
left: 100px;
top: 206px;
}
.jabph_popper_box {
position: absolute;
left: 146px;
bottom: -1px;
background: #ffffff;
width: 186px;
color: #606266;
text-indent: 0;
padding: 16px;
padding-top: 0px;
border: 1px solid #e0e0e0;
}
.jabph_popper_box .jabph_popper_wrap {
margin-top: 16px;
display: inline-block;
}
.jabph_popper_box .jabph_popper_wrap .jabph_popper_input {
width: 100px;
display: inline-block;
margin: 0px 8px;
.el-input__inner {
width: 100px;
}
}
.jabph_popper_box div:last-child {
display: flex;
justify-content: center;
margin-top: 16px;
}
.jabph_popper_box1 {
left: 0;
border: none;
}
.jabph_popper_box2 {
left: 101px;
}
.jabph_popper_box3 {
left: 115px;
}
.content_item .geduan {
width: 100%;
height: 0px;
opacity: 1;
......@@ -306,3 +414,97 @@ select {
color: #0081FF;
border-color: #0081FF;
}
.toolbar-right-download {
padding: 8px 21px;
margin: 0px;
cursor: pointer;
font-weight: 400;
color: #232323;
background: #FFFFFF;
border-radius: 5px 5px 5px 5px;
border: 1px solid #D9D9D9;
text-align: center;
}
.toolbar-right-download .el-icon-arrow-down{
margin-left: 8px;
}
.viewlist-el-popover {
min-width: 130px;
padding: 0px;
}
.viewlist-el-popover .pup_list {
line-height: 36px;
text-align: left;
margin: 5px 0;
cursor: pointer;
}
.viewlist-el-popover .pup_list li {
padding: 0 16px;
}
.viewlist-el-popover .pup_list li span {
position: relative;
display: inline-block;
}
.viewlist-el-popover .pup_list li .VIP {
width: 24px;
height: 12px;
top: 0px;
right: -8px;
position: absolute;
}
.viewlist-el-popover .pup_list li .SVIP {
width: 24px;
height: 12px;
top: 0px;
right: -10px;
position: absolute;
}
.viewlist-el-popover .pup_list li:hover {
color: #0081FF;
background: #F4F6F9;
}
.viewlist-el-popover .pup_list .activefield {
color: #0081FF;
background: #F4F6F9;
}
.viewlist-el-popover .pup_list_export li {
display: flex;
align-items: center;
padding-right: 0px;
}
.viewlist-el-popover .pup_list_export li img {
width: auto;
height: 12px;
margin-left: 4px;
}
.viewlist-el-popover .pup_zhclist .active {
color: #0081FF;
background: #F4F6F9;
}
.viewlist-el-popover .pup_zhclist li span:hover {
color: #0081FF;
font-weight: 400;
}
.viewlist-el-popover .pup_zhclist .active span {
color: #0081FF;
font-weight: 400;
}
.viewlist-el-popover .pup_list_export li .lowerRate_imgzhc {
width: 39px;
height: 14px;
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import dialogDrag from './dialog/drag'
import dialogDragWidth from './dialog/dragWidth'
import dialogDragHeight from './dialog/dragHeight'
import clipboard from './module/clipboard'
import limitNum from './limitNum/limitNum'
const install = function(Vue) {
Vue.directive('hasRole', hasRole)
......@@ -12,6 +14,7 @@ const install = function(Vue) {
Vue.directive('dialogDrag', dialogDrag)
Vue.directive('dialogDragWidth', dialogDragWidth)
Vue.directive('dialogDragHeight', dialogDragHeight)
Vue.directive('limitNum', limitNum)
}
if (window.Vue) {
......
export default {
bind(el) {
el.oninput = () => {
el.children[0].value = el.children[0].value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
el.children[0].value = el.children[0].value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
el.children[0].value = el.children[0].value.replace(/^\./g,""); //必须保证第一个为数字而不是.
el.children[0].value = el.children[0].value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
if(el.children[0].value.indexOf(".")< 0 && el.children[0].value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
el.children[0].value= parseFloat(el.children[0].value);
}
};
},
}
\ No newline at end of file
......@@ -14,6 +14,7 @@ import directive from './directive' // directive
import plugins from './plugins' // plugins
import { download } from '@/utils/request'
import './assets/icons' // icon
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
......
......@@ -136,6 +136,34 @@ export const constantRoutes = [
meta: { title: '企业专项债详情', icon: 'radar' }
}
]
},
{
path: '/Land',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/radar/Land/details/:id(\\d+)',
component: () => import('@/views/radar/Land/details'),
name: 'LandDetails',
meta: { title: '土地交易详情', icon: 'radar' }
}
]
},
{
path: '/Establishment',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/radar/Establishment/details/:id(\\d+)',
component: () => import('@/views/radar/Establishment/details'),
name: 'EstablishmentDetails',
meta: { title: '拟建项目详情', icon: 'radar' }
}
]
}
]
......
......@@ -7,7 +7,8 @@ const user = {
name: '',
avatar: '',
roles: [],
permissions: []
permissions: [],
userId:'',
},
mutations: {
......@@ -25,6 +26,9 @@ const user = {
},
SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions
},
SET_USERID: (state, userId) => {
state.userId = userId
}
},
......@@ -60,6 +64,7 @@ const user = {
}
commit('SET_NAME', user.userName)
commit('SET_AVATAR', avatar)
commit('SET_USERID', user.userId)
resolve(res)
}).catch(error => {
reject(error)
......
......@@ -283,7 +283,7 @@
<script>
import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss"
import {getCustomerList,importData} from '@/api/custom/custom'
import {getCustomerList,importData,addCustomer} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main'
import prvinceTree from '@/assets/json/provinceTree'
import axios from 'axios'
......@@ -428,7 +428,7 @@ export default {
list.push(item.cityId)
if(item.districtId != null && item.districtId != "")
list.push(item.districtId)
this.address = list
this.queryParam.address = list
this.queryParam.registerAddress = item.registerAddress
this.showlist = false
},
......@@ -441,24 +441,33 @@ export default {
}
this.$refs[formName].validate((valid) => {
if (valid) {
addCustomer(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('添加成功!')
this.dialogVisible = false
this.handleCurrentChange(1)
this.resetForm('ruleForm')
}else{
this.$message.error(result.msg)
}
})
} else {
}
});
},
resetForm(formName) {
this.queryParam = {
companyId:'',//jsk企业id
companyName:'',//客户名称(企业名称
customerLevel:'',//客户等级
legalPerson:'',//法定代表人
registerCapital:'',//注册资本
registerAddress:'',//企业注册地址
creditCode:'',//社会统一信用代码
address:'',//选择的地址
provinceId:'',
cityId:'',
districtId:'',
companyId:'',//jsk企业id
companyName:'',//客户名称(企业名称
customerLevel:'',//客户等级
legalPerson:'',//法定代表人
registerCapital:'',//注册资本
registerAddress:'',//企业注册地址
creditCode:'',//社会统一信用代码
address:'',//选择的地址
provinceId:'',
cityId:'',
districtId:'',
},
this.dialogVisible = false
this.showlist = false
......
......@@ -149,8 +149,6 @@ export default {
{name:'其他单位',sum:'44',point:'21%'},
],
datatype:'1',//切换类型
dtdata:[],//数据
dttime:[],//坐标
datalist:[
{name:'重庆市江北区国有资本投资运营管理集团有限公司',time:'2023-05-30',text:'新增招标公告:【江北房地产综合开发公司名下不动产鲤鱼池片区资产评估项目】 公开选取【资产评估】机构的公告',tip1:'正向',tip2:'招标公告'},
{name:'上海城投(集团)有限公司',time:'2023-05-29',text:'新增招标公告:北横通道新建工程——机电、装饰工程Ⅱ标段',tip1:'正向',tip2:'招标公告'},
......@@ -404,8 +402,6 @@ export default {
default:
break;
}
this.dtdata = datas
this.dttime = labels
this.initDT(datas,labels)
},
handleCurrentChange(val) {
......
<template>
<div class="headForm">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title" v-if="title">{{ title }}</span>
<div class="headForm-from">
<div class="from-item" :key="i" v-for="(form, i) in formData">
<!-- 单选 -->
<template v-if="form.type==1">
<el-select
v-model="form.value"
clearable
class="form-content-width"
style="max-width: 110px"
:placeholder="form.placeholder"
@change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
<!-- 年月日 -->
<template v-if="form.type==2">
<el-date-picker
@change="changeSelect"
class="fromTime"
style="width: 210px"
v-model="form.value"
type="daterange"
prefix-icon="fromTime-icon"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
</template>
<!-- 输入框 -->
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input v-model="form.value" placeholder="请输入关键词"></el-input>
<span @click="changeSelect">搜索</span>
</div>
</template>
<!-- 多选 -->
<template v-if="form.type==4">
<el-select
class="form-content-width"
v-model="form.value"
multiple
collapse-tags
clearable
style="max-width: 170px"
:placeholder="form.placeholder"
@change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
</div>
</div>
</div>
<template v-if="slots">
<slot name="slot"></slot>
</template>
<div v-else class="flex-box">
<span class="flex-box ability-total" v-if="isTotal">共{{ total }}条</span>
<span class="flex-box ability-excel" v-if="isExcel" @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
</div>
</template>
<script>
export default {
name: "HeadForm",
props: {
title: {
type: String,
default: ''
},
queryParams: {
type: Object,
default: {}
},
formData: {
type: Array,
default: []
},
isTotal: {
type: Boolean,
default: true
},
total: {
type: Number,
default: 0
},
isExcel: {
type: Boolean,
default: false
},
slots: {
type: Boolean,
default: false
}
},
data() {
return {
}
},
methods: {
changeSelect(){
console.log(this.formData)
this.$emit('handle-search')
},
clickEXCEL() {
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
}
}
</script>
<style lang="scss" scoped>
.headForm{
margin-bottom: 14px;
.common-title{
margin-right: 19px;
}
::v-deep .el-input__inner{
border: 1px solid #EFEFEF;
height: 32px;
line-height: 32px;
}
::v-deep .el-form-item{
margin-right: 8px !important;
}
::v-deep .el-input--medium .el-input__icon{
line-height: 32px;
}
.headForm-from {
display: flex;
.from-item{
margin-right: 8px;
&:last-child{
margin-right: 0;
}
.cooperate-name {
display: flex;
span {
width: 60px;
height: 32px;
line-height: 32px;
font-size: 14px;
background: #F5F5F5;
text-align: center;
color: #0081FF;
border: 1px solid #EFEFEF;
border-left: 0;
cursor: pointer;
}
::v-deep .el-input{
flex: 1;
}
::v-deep .el-input__inner {
border-right: 0;
border-radius: 2px 0 2px 0;
width: 259px;
}
}
.fromTime{
::v-deep .el-range-input{
width: 100%;
}
::v-deep .el-range-separator, ::v-deep .el-range__close-icon{
line-height: 24px;
width: 20px;
}
}
.fromTime-icon {
display: none;
}
}
::v-deep .form-content-width{
width: 170px;
}
}
.ability-total{
font-size: 12px;
color: #3D3D3D;
position: relative;
&:before{
content: '';
display: inline-block;
width: 2px;
height: 2px;
background: rgba(35,35,35,0.4);
margin-right: 4px;
}
}
.ability-excel{
font-size: 14px;
color: rgba(35,35,35,0.8);
margin-left: 16px;
cursor: pointer;
img{
width: 18px;
height: 18px;
margin-right: 4px;
}
}
}
</style>
......@@ -66,18 +66,18 @@ export default {
{title: '开标记录', pathName: ''}
]},
{title: '城投分析', pathName: '', children: [
{title: '区域经济', pathName: ''},
{title: '城投那地', pathName: ''},
{title: '同地区城投', pathName: ''}
{title: '区域经济', pathName: 'regionalEconomies'},
{title: '城投那地', pathName: 'landAcquisition'},
{title: '同地区城投', pathName: 'sameRegion'}
]},
{title: '风险信息', pathName: '', children: [
{title: '行政处罚', pathName: ''},
{title: '经营异常', pathName: ''},
{title: '被执行人', pathName: ''},
{title: '失信被执行人', pathName: ''},
{title: '裁判文书', pathName: ''},
{title: '法院公告', pathName: ''},
{title: '开庭公告', pathName: ''},
{title: '行政处罚', pathName: 'punish'},
{title: '经营异常', pathName: 'businessAnomaly'},
{title: '被执行人', pathName: 'ifThePerson'},
{title: '失信被执行人', pathName: 'dishonesty'},
{title: '裁判文书', pathName: 'judgment'},
{title: '法院公告', pathName: 'courtNotice'},
{title: '开庭公告', pathName: 'openacourtsessionNotice'},
{title: '信用中国', pathName: ''}
]},
{title: '商务信息', pathName: 'business'},
......
<template>
<div class="Tables">
<div class="table-item">
<el-table
v-loading="tableLoading"
:data="tableData"
element-loading-text="Loading"
border
fit
highlight-current-row
@sort-change="sortChange"
>
<el-table-column
v-if="isIndex"
label="序号"
width="50"
align="left"
:fixed="indexFixed"
:resizable="false">
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<template v-for="item in forData">
<el-table-column
v-if="item.slot"
:label="item.label"
:prop="item.prop"
:width="item.width"
align="left"
:fixed="item.fixed"
:sortable="item.sortable"
:resizable="false">
<template slot-scope="scope">
<slot :name="item.prop" :row="item" :index="scope.$index" :data="scope.row.punishReason"></slot>
</template>
</el-table-column>
<el-table-column
v-else
:label="item.label"
:prop="item.prop"
:width="item.width"
align="left"
:fixed="item.fixed"
:sortable="item.sortable"
:resizable="false" />
</template>
</el-table>
</div>
<div class="pagination-box">
<el-pagination background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</div>
</template>
<script>
export default {
name: "Tables",
props: {
isIndex: {
type: Boolean,
default: true
},
indexFixed: {
type: Boolean,
default: false
},
tableLoading: {
type: Boolean,
default: false
},
tableData: {
type: Array,
default: []
},
forData: {
type: Array,
default: []
},
tableDataTotal: {
type: Number,
default: 0
},
queryParams: {
type: Object,
default: {}
},
},
data() {
return {
}
},
methods:{
handleCurrentChange(e){
this.$emit('handle-current-change',e)
},
handleSizeChange(e){
this.$emit('handle-current-change',e)
},
sortChange(e){
this.$emit('sort-change',e)
}
}
}
</script>
<style lang="scss" scoped>
</style>
......@@ -2,50 +2,30 @@
<div class="cooperate">
<template v-if="ifEmpty">
<div class="flex-box query-box">
<div class="flex-box query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="stage">
<el-select v-model="queryParams.stage" clearable class="form-content-width" placeholder="请选择项目阶段">
<el-option v-for="(item, index) in stageOptions" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item prop="status">
<el-select v-model="queryParams.status" clearable class="form-content-width" placeholder="请选择项目状态">
<el-option v-for="(item, index) in statusOptions" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item class="cooperate-name">
<el-input v-model="queryParams.name" placeholder="输入企业名称查询"></el-input>
<span>搜索</span>
</el-form-item>
</el-form>
</div>
<div class="flex-box query-add">
<el-button type="primary" icon="el-icon-plus" @click="drawer = true">添加商务信息</el-button>
</div>
</div>
<div class="table-item">
<el-table
v-loading="tableLoading"
:data="tableData"
element-loading-text="Loading"
border
fit
highlight-current-row
>
<el-table-column label="序号" width="50" align="left">
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="项目名称" prop="enterpriseName" min-width="70" align="left" />
<el-table-column label="项目阶段" prop="level" min-width="70" align="left" />
<el-table-column label="投资金额(万元)" prop="legalPerson" min-width="70" align="left" />
<el-table-column label="项目状态" prop="capital" min-width="115" align="right" />
</el-table>
</div>
<div class="pagination-box">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
<head-form
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
:slots="true"
@handle-search="handleSearch"
>
<template slot="slot">
<div class="flex-box query-add">
<el-button type="primary" icon="el-icon-plus" @click="drawer = true">添加商务信息</el-button>
</div>
</template>
</head-form>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</template>
<template v-else>
<div class="cooperate_empty">
......@@ -154,17 +134,36 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {getDictType,} from '@/api/main'
import {
getList
} from '@/api/detail/party-a/cooperate'
export default {
name: 'Cooperate',
mixins: [mixin],
components: {
},
data() {
return {
ifEmpty:true,
queryParams:{
queryParams: {
customerId: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'punishReason'},
{label: '项目阶段', prop: 'punishBegin', width: '120'},
{label: '投资金额(万元)', prop: 'punishResult', width: '140'},
{label: '项目状态', prop: 'fileNum', width: '90'}
],
formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []},
{ type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询'},
],
stageOptions:[],
statusOptions:[],
//列表
......@@ -179,25 +178,40 @@ export default {
}
},
created() {
this.list()
//项目阶段
this.handleOptions('project_stage_type',0)
//项目状态
this.handleOptions('project_status_type',1)
},
computed: {
},
methods: {
resetQuery() {
},
//分页
handleCurrentChange(e){
handleQuery(params) {
this.list(params)
},
handleSizeChange(e){
list(params){
let data = params ? params : this.queryParams
getList(data).then(res=>{
console.log(res)
})
},
//弹窗
handleClose(done) {
this.drawer = false
},
handleOptions(name,index){
getDictType(name).then(res=>{
if(res.code == 200 && res.data){
for(var i=0;i<res.data.length;i++){
this.formData[index].options.push({
name:res.data[i].dictLabel,
value:res.data[i].dictValue
})
}
}
})
}
}
}
......
......@@ -8,30 +8,19 @@
<el-button type="primary" icon="el-icon-plus" @click="opennew">新增决策链条</el-button>
</div>
</div>
<div class="table-item">
<el-table
v-loading="tableLoading"
:data="tableData"
element-loading-text="Loading"
border
fit
highlight-current-row
>
<el-table-column label="序号" width="50" align="left">
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="姓名" prop="enterpriseName" min-width="70" align="left" />
<el-table-column label="角色" prop="level" min-width="70" align="left" />
<el-table-column label="公司/机关" prop="legalPerson" min-width="70" align="left" />
<el-table-column label="职位" prop="capital" min-width="115" align="left" />
<el-table-column label="联系方式" prop="capital" min-width="115" align="left" />
<el-table-column label="内部维护人" prop="capital" min-width="115" align="left" />
<el-table-column label="备注" prop="capital" min-width="115" align="left" />
</el-table>
</div>
<div class="pagination-box">
<el-pagination background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<template v-else>
<div class="cooperate_empty">
......@@ -44,44 +33,35 @@
<!-- 弹窗添加联系人 -->
<el-dialog
class="popups"
class="popups1"
:visible.sync="dialogVisible"
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>重庆市轨道交通3号线二期工程4标段施工总承包</span>
</div>
<el-form class="popform" label-width="137px">
<div class="row">
<span class="left">联系人姓名:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系人角色:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">联系人职位:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系人公司/机关:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">内部维护人:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系方式:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="75px">
<el-form-item label="姓名:" prop="name">
<el-input v-model="addRorm.name" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="角色:" prop="role">
<el-input v-model="addRorm.role" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="职位:" prop="workUnit">
<el-input v-model="addRorm.workUnit" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="公司/机关:" prop="position">
<el-input v-model="addRorm.position" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系方式:" prop="contactInformation">
<el-input v-model="addRorm.contactInformation" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input v-model="addRorm.remark" placeholder="请输入"></el-input>
</el-form-item>
<div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">保存</div>
<div class="btn btn_cancel h32" @click="cancel('addRorm')">返回</div>
<div class="btn btn_primary h32" @click="add('addRorm')">保存</div>
</div>
</el-form>
</el-dialog>
......@@ -90,23 +70,47 @@
</template>
<script>
import Tables from "../component/Tables"
import {
getList,
addChain
} from '@/api/decisionMaking/decisionMaking'
} from '@/api/detail/party-a/decisionMaking'
export default {
name: 'DecisionMaking',
components: {
Tables
},
data() {
return {
ifEmpty:true,
queryParams:{
customerId:null,
customerId:6034,
pageNum:1,
pageSize:10,
},
forData: [
{label: '姓名', prop: 'punishReason', width: '124'},
{label: '角色', prop: 'punishBegin', width: '110'},
{label: '公司/机关', prop: 'punishResult', width: '268'},
{label: '职位', prop: 'fileNum', width: '110'},
{label: '联系方式', prop: 'cgrdm', width: '105'},
{label: '内部维护人', prop: 'office', width: '88'},
{label: '备注', prop: 'dataId'},
],
addRorm: {
customerId:'',
name:'',
role:'',
workUnit:'',
position:'',
contactInformation:'',
remark:'',
},
addRules:{
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
],
},
stageOptions:[],
statusOptions:[],
//列表
......@@ -114,7 +118,7 @@ export default {
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
tableDataTotal:50,
//弹窗
dialogVisible: false,
}
......@@ -130,18 +134,23 @@ export default {
getList(this.queryParams).then((res) => {
console.log(res)
})
},
resetQuery() {
},
//分页
handleCurrentChange(e){
console.log(e)
},
handleSizeChange(e){
add(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.addRorm.customerId = 11
addChain(this.addRorm).then((res) => {
console.log(res)
})
}
});
},
cancel(){
cancel(formName){
this.$refs[formName].resetFields();
this.dialogVisible = false
},
//打开新建窗口
......@@ -160,7 +169,12 @@ export default {
border: 1px solid #EFEFEF;
}
::v-deep .el-form-item{
margin-right: 8px !important;
margin-bottom: 16px;
}
::v-deep .el-input__inner{
border-radius: 2px 0 2px 0;
height: 32px;
line-height: 32px;
}
.cooperate-name{
::v-deep .el-form-item__content{
......@@ -176,10 +190,7 @@ export default {
cursor: pointer;
}
}
::v-deep .el-input__inner{
border-right: 0;
border-radius: 2px 0 2px 0;
}
}
.query-add{
button{
......@@ -232,7 +243,7 @@ export default {
margin-top: 10px;
}
// 弹窗
.popups{
.popups1{
.poptitle {
line-height: 48px;
border-bottom: 1px solid #E1E1E1;
......@@ -258,8 +269,14 @@ export default {
text-overflow: ellipsis;
}
}
::v-deep .el-dialog__body{
padding: 24px 24px 18px;
}
.popform {
padding-top: 24px;
padding-top: 14px;
::v-deep .el-form-item__label{
padding:0;
}
.row {
padding-bottom: 16px;
.left {
......
......@@ -15,6 +15,18 @@
<Branch v-if="currentPath.pathName=='branch'" />
<Financial v-if="currentPath.pathName=='financial'" :company-id="companyId" />
<Business v-if="currentPath.pathName=='business'" />
<!-- 投诚分析 -->
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" />
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" />
<SameRegion v-if="currentPath.pathName=='sameRegion'" />
<!-- 风险信息 -->
<Punish v-if="currentPath.pathName=='punish'" />
<BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" />
<IfThePerson v-if="currentPath.pathName=='ifThePerson'" />
<Dishonesty v-if="currentPath.pathName=='dishonesty'" />
<Judgment v-if="currentPath.pathName=='judgment'" />
<CourtNotice v-if="currentPath.pathName=='courtNotice'" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" />
<!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" />
<!-- 合作情况 -->
......@@ -22,7 +34,7 @@
<!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" />
<!-- 跟进记录 -->
<Gjjl v-if="currentPath.pathName=='gjjl'" />
<Gjjl v-if="currentPath.pathName=='gjjl'" types="gjdt" />
</div>
</div>
</div>
......@@ -42,6 +54,16 @@ import Overseas from "./overview/overseas" //企业概览-对外投资
import Branch from "./overview/branch" //企业概览-分支机构
import Financial from "./financial" //财务简析
import Business from "./business" //商务信息
import LandAcquisition from "./urbanLnvestment/landAcquisition" //投诚分析-城投拿地
import RegionalEconomies from "./urbanLnvestment/regionalEconomies" //投诚分析-区域经济
import SameRegion from "./urbanLnvestment/sameRegion" //投诚分析-同地区城投
import Punish from "./riskInformation/punish" //风险信息-行政处罚
import BusinessAnomaly from "./riskInformation/businessAnomaly" //风险信息-经营异常
import IfThePerson from "./riskInformation/ifThePerson" //风险信息-被执行人
import Dishonesty from "./riskInformation/dishonesty" //风险信息-失信被执行
import Judgment from "./riskInformation/judgment" //风险信息-判决文书
import CourtNotice from "./riskInformation/courtNotice" //风险信息-法院公告
import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice" //风险信息-开庭公告
import Preference from "./preference" //招标偏好
import Cooperate from "./cooperate" //合作情况
import DecisionMaking from "./decisionMaking" //决策链条
......@@ -59,6 +81,16 @@ export default {
Branch,
Financial,
Business,
LandAcquisition,
RegionalEconomies,
SameRegion,
Punish,
BusinessAnomaly,
IfThePerson,
Dishonesty,
Judgment,
CourtNotice,
OpenacourtsessionNotice,
Preference,
Cooperate,
DecisionMaking,
......
import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables"
export default {
components: {
HeadForm,
Tables
},
data() {
return {
}
},
mounted() {
},
methods: {
formParams(){
let condtion = {}
let reqData = {}
this.formData.forEach(item => {
if(item.value || (item.value && item.value.length)) {
if(item.fieldName == 'time') {
condtion[item.startTime] = item.value[0];
condtion[item.endTime] = item.value[1];
return
}
condtion[item.fieldName] = item.value
}
})
Object.keys(condtion).forEach(key => {
if(condtion[key]) {
reqData[key] = condtion[key]
}
})
if(this.queryParams && Object.keys(this.queryParams)) {
reqData = Object.assign(reqData, this.queryParams)
}
return reqData
},
//条件
handleSearch(){
let params = this.formParams()
params.pageNum = 1
this.handleQuery(params)
},
//分页
handleCurrentChange(e){
console.log(e)
let params = this.formParams()
params.pageNum = e
this.handleQuery(params)
},
handleSizeChange(e){
},
//排序
sortChange(e){
console.log(e)
}
}
}
......@@ -7,17 +7,26 @@
</div>
</div>
<div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item>
<el-input v-model="queryParams.key"
type="textarea"
:autosize="{ minRows: 8, maxRows: 8}"
maxlength="500"
show-word-limit
placeholder="请输入商务条件特点">
<div class="params-item">
<div class="flex-box item-flex">
<el-input
v-model="queryParams.key"
@focus="nowedit = 1"
placeholder="请输入商务条件特点"
class="textarea"
type="textarea"
:autosize="autosize"
maxlength="500"
:show-word-limit="true">
</el-input>
</el-form-item>
</el-form>
<div class="flex btns" v-if="nowedit === 1">
<div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="preference-item">
......@@ -27,17 +36,26 @@
</div>
</div>
<div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item>
<el-input v-model="queryParams.key"
type="textarea"
:autosize="{ minRows: 8, maxRows: 8}"
maxlength="500"
show-word-limit
placeholder="请输入决策链条">
<div class="params-item">
<div class="flex-box item-flex">
<el-input
v-model="queryParams.key"
@focus="nowedit = 2"
placeholder="请输入决策链条"
class="textarea"
type="textarea"
:autosize="autosize"
maxlength="500"
:show-word-limit="true" >
</el-input>
</el-form-item>
</el-form>
<div class="flex btns" v-if="nowedit === 2">
<div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="preference-item">
......@@ -47,17 +65,26 @@
</div>
</div>
<div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item>
<el-input v-model="queryParams.key"
type="textarea"
:autosize="{ minRows: 8, maxRows: 8}"
maxlength="500"
show-word-limit
placeholder="请输入招投标流程特点">
<div class="params-item">
<div class="flex-box item-flex">
<el-input
v-model="queryParams.key"
@focus="nowedit = 3"
placeholder="请输入招投标流程特点"
class="textarea"
type="textarea"
:autosize="autosize"
maxlength="500"
:show-word-limit="true">
</el-input>
</el-form-item>
</el-form>
<div class="flex btns" v-if="nowedit === 3">
<div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="preference-item">
......@@ -67,17 +94,26 @@
</div>
</div>
<div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item>
<el-input v-model="queryParams.key"
type="textarea"
:autosize="{ minRows: 8, maxRows: 8}"
maxlength="500"
show-word-limit
placeholder="请输入履约阶段特点">
<div class="params-item">
<div class="flex-box item-flex">
<el-input
v-model="queryParams.key"
@focus="nowedit = 4"
placeholder="请输入履约阶段特点"
class="textarea"
type="textarea"
:autosize="autosize"
maxlength="500"
:show-word-limit="true">
</el-input>
</el-form-item>
</el-form>
<div class="flex btns" v-if="nowedit === 4">
<div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div>
</div>
......@@ -93,9 +129,15 @@ export default {
},
data() {
return {
autosize: {
minRows: 8,
maxRows: 8
},
queryParams:{
}
},
key:'',
nowedit: 0
}
},
created() {
......@@ -116,12 +158,34 @@ export default {
padding: 16px;
.query-params{
margin-top:20px;
::v-deep .el-form-item{
.params-item{
width: 100%;
.el-textarea{
width: 800px;
textarea{
color: rgb(35, 35, 35);
border-radius: 2px;
border: 1px solid rgb(217, 217, 217);
font-size: 14px;
padding: 10px;
}
}
.item-flex{
align-items: flex-end;
.btns{
.btnsmall{
width: 56px;
height: 28px;
line-height: 28px;
margin-left: 12px;
}
.cancels{
line-height: 28px;
}
}
}
}
::v-deep .el-form-item__content{
width: 80%;
}
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="经营异常"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'BusinessAnomaly',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '列入原因', prop: 'inReason', width: '508'},
{label: '列入日期', prop: 'inDate', width: '95'},
{label: '做出决定机关(移入)', prop: 'department', width: '264'},
{label: '移出经营异常名录原因', prop: 'outReason', width: '320'},
{label: '移除日期', prop: 'outDate', width: '95'},
{label: '做出决定机关(移除)', prop: 'outDepartment', width: '264'}
],
formData: [
{ type: 1, fieldName: 'years', value: '', placeholder: '列入时间',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
}
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="法院公告"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'CourtNotice',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '案由', prop: 'enterpriseName'},
{label: '公告时间', prop: 'level', width: '95'},
{label: '当事人', prop: 'capital', width: '240'},
{label: '案号', prop: 'cgrdm', width: '210'},
{label: '公告类型', prop: 'cgrssqy', width: '210'},
{label: '公告法院', prop: 'dataId', width: '280'}
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '公告类型',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '案由',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '身份',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="失信被执行人"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'Dishonesty',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '失信被执行人行为具体情形', prop: 'executionDesc', width: '508'},
{label: '立案日期', prop: 'date', width: '95'},
{label: '履行情况', prop: 'executionStatus', width: '120'},
{label: '立案文号', prop: 'caseNumber', width: '210'},
{label: '执行依据文号', prop: 'docNumber', width: '360'},
{label: '执行法院', prop: 'court', width: '280'}
],
formData: [
{ type: 2, fieldName: 'time', value: '', placeholder: '执行时间',startTime: 'dateFrom',endTime: 'dateTo', options: []}
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="被执行人"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'IfThePerson',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '执行标的(元)', prop: 'amount', width: '140'},
{label: '案号', prop: 'caseNumber', width: '320'},
{label: '执行法院', prop: 'court'},
{label: '立案日期', prop: 'caseDate', width: '95'}
],
formData: [
{ type: 2, fieldName: 'time', value: '', placeholder: '执行时间',startTime: 'dateFrom',endTime: 'dateTo', options: []}
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="判决文书"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'Judgment',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '案由', prop: 'causeAction', width: '240'},
{label: '执行案号', prop: 'causeNo', width: '210'},
{label: '身份', prop: 'role', width: '120'},
{label: '当事人', prop: 'relatedCompanies', width: '240'},
{label: '案件金额(元)', prop: 'subAmount', width: '140'},
{label: '判决结果', prop: 'judgeresult', width: '508'},
{label: '判决日期', prop: 'date', width: '95'},
],
formData: [
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'role', value: '', placeholder: '身份',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 2, fieldName: 'tiem', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索关键字', options: []}
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="开庭公告"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'OpenacourtsessionNotice',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '案由', prop: 'causeAction', width: '240'},
{label: '开庭日期', prop: 'hearingDate', width: '95'},
{label: '当事人', prop: 'relatedCompanies', width: '428'},
{label: '身份', prop: 'pureRole', width: '120'},
{label: '公告内容', prop: 'cgrssqy', width: '508'},
{label: '案号', prop: 'caseNo', width: '210'},
{label: '法院', prop: 'dataId', width: '280'},
{label: '法庭', prop: 'dataId', width: '180'},
{label: '承办部门', prop: 'dataId', width: '280'},
{label: '审判长/主判人', prop: 'dataId', width: '106'}
],
formData: [
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'pureRole', value: '', placeholder: '身份',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
toDetail(){
let Id = '111'
this.$router.push({ path: '/project/projectList/detail', query: Id });
},
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="行政处罚"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="punishReason" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.row.width, showList, scope.index, 0, scope.data)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}">
{{ scope.data }}
<span v-if="isOverHiddenFlag(scope.row.width, showList, scope.index, 0, scope.data)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">更多</span></span>
</span>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import {
penalizePage,
penalizeReasonType
} from '@/api/riskInformation/punish'
export default {
name: 'Punish',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '处罚原因', prop: 'punishReason', width: '508', slot: true, fixed: true},
{label: '决定日期', prop: 'punishBegin', width: '95'},
{label: '处罚结果', prop: 'punishResult', width: '264'},
{label: '处罚文书号', prop: 'fileNum', width: '200'},
{label: '相关人员', prop: 'cgrdm', width: '88'},
{label: '处罚机关', prop: 'office', width: '264'},
{label: '处罚结束日期', prop: 'dataId', width: '100'},
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '处罚类别',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
],
//列表
tableLoading:false,
tableData:[
{
punishReason:'根据成都市住房和城乡建设局《关于持续开展建设工地扬尘治理专项攻坚行动的通知》(成住建发(2021]178号),对你单位参建的项目住宅、商业及配套设施(2020-510107-47-03-506368) (金茂府三期)(安监备案编号:WH-CJ-AJ-2021-001)监督检查中发现未湿法作业(现场存在露天切割石材,未采取降尘防尘措施)。)的违规行为,予以记录并扣分,预扣减施工企业现场信用信息得分0.05分,预扣减监理企业现场信用信息得分...预扣减施工企业现场信用信息得分0.05分,预扣减监理企业现场信用信息得分',
punishBegin:'2015-08-06',
punishResult:'列入全省3-6月份拖欠农民工工资预警项目,现予以限期整改通报。',
fileNum:'铜城建罚决字【2021)】18-5号',
cgrdm:'测试1',
office:'江苏省住房和城乡建设厅',
dataId:'2015-08-06',
}
],
tableDataTotal:200,
showList:[],
}
},
created() {
this.dataRegion()
this.penalizeReasonTypeData()
},
computed: {
},
methods: {
async dataRegion() {
penalizePage(this.queryParams).then((res) => {
console.log(res)
})
},
penalizeReasonTypeData(){
penalizeReasonType({cid:6034}).then((res) => {
console.log(res)
})
},
handleQuery(params) {
console.log(params)
},
changeShowAll(row, column) {
this.showList.push({
row: row,
column: column
})
},
isOverHiddenFlag(data, showList, row, column, value) {
if(value && String(value).length > this.getLenth(data)) {
return !showList.some(item => item.row==row&&item.column==column)
}else {
return false
}
},
getLenth(data) {
return Math.floor(data / 12) * 5
},
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
input{
border: 1px solid #EFEFEF;
}
::v-deep .el-form-item{
margin-right: 8px !important;
}
::v-deep .el-table__body tr.current-row > td.el-table__cell{
background-color: #ffffff;
}
.query-box{
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
>span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="城投拿地"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'landAcquisition',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'punishReason', width: '508'},
{label: '土地用途', prop: 'punishBegin', width: '120'},
{label: '行业分类', prop: 'punishResult', width: '120'},
{label: '供地方式', prop: 'fileNum', width: '120'},
{label: '土地坐落', prop: 'cgrdm', width: '120'},
{label: '成交金额(万元)', prop: 'office', width: '130'},
{label: '总面积(㎡)', prop: 'dataId', width: '120'},
{label: '批准单位', prop: 'dataId', width: '120'},
{label: '签订日期', prop: 'dataId', width: '120'}
],
formData: [
{ type: 4, fieldName: 'penalizeReasonType', value: [], placeholder: '土地用途',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery() {
},
resetQuery() {
},
//分页
handleCurrentChange(e){
},
handleSizeChange(e){
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="regionalEconomies">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">区域经济</span>
</div>
</div>
<div class="table-item">
<el-table
:data="getValues"
:show-header="false"
border
>
<el-table-column
v-for="(item, index) in getHeaders"
:key="index"
:prop="item"
>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
name: 'regionalEconomies',
components: {
},
data() {
return {
tableData: [
{
zb:"2023年",
gdp:'129,118.58',
gdpzs:'124,369.67',
rjgdp:'134,369.67',
},
{
zb:"2022年",
gdp:'129,118.58',
gdpzs:'124,369.67',
rjgdp:'134,369.67',
},
{
zb:"2021年",
gdp:'129,118.58',
gdpzs:'124,369.67',
rjgdp:'134,369.67',
},
{
zb:"2020年",
gdp:'129,118.58',
gdpzs:'124,369.67',
rjgdp:'134,369.67',
},
{
zb:"2019年",
gdp:'129,118.58',
gdpzs:'124,369.67',
rjgdp:'134,369.67',
},
{
zb:"2018年",
gdp:'129,118.58',
gdpzs:'124,369.67',
rjgdp:'134,369.67',
},
],
headers: [
{
prop: 'zb',
label: '指标',
},
{
prop: 'name',
label: '经济',
},
{
prop: 'gdp',
label: 'GDP(亿元)',
},
{
prop: 'gdpzs',
label: 'GDP增速',
},
{
prop: 'rjgdp',
label: '人均GDP(元)',
},
{
prop: 'rjgdp',
label: '第一产业增加值(亿元)',
},
{
prop: 'rjgdp',
label: '第二产业增加值(亿元)',
},
{
prop: 'rjgdp',
label: '第三产业增加值(亿元)',
},
{
prop: 'rjgdp',
label: '人口(万人)',
},
{
prop: 'rjgdp',
label: '工业增加值(亿元)',
},
{
prop: 'rjgdp',
label: '工业总产值(亿元)',
},
{
prop: 'rjgdp',
label: '房地产开发投资(亿元)',
},
{
prop: 'rjgdp',
label: '进出口总额(亿美元)',
},
{
prop: 'rjgdp',
label: '社会消费品零售总额(亿元)',
},
{
prop: 'rjgdp',
label: '城镇居民人均可支配收入(元)',
},
{
prop: 'cz',
label: '财政',
},
{
prop: 'rjgdp',
label: '一般公共预算收入(亿元)',
},
{
prop: 'rjgdp',
label: '般公共预算收入增速',
},
{
prop: 'rjgdp',
label: '税收收入(亿元)',
},
{
prop: 'rjgdp',
label: '转移性收入(亿元)',
},
{
prop: 'rjgdp',
label: '上级补助收入(亿元)',
},
{
prop: 'rjgdp',
label: '一般公共预算支出(亿元)',
},
{
prop: 'rjgdp',
label: '政府性基金收入(亿元)',
},
{
prop: 'rjgdp',
label: '土地出让收入(亿元)',
},
{
prop: 'rjgdp',
label: '政府性基金支出(亿元)',
},
{
prop: 'rjgdp',
label: '国有资本经营收入(亿元)',
},
{
prop: 'rjgdp',
label: '国有资本经营支出(亿元)',
},
{
prop: 'zw',
label: '债务',
},
{
prop: 'rjgdp',
label: '地方政府债务余额(亿元)',
},
{
prop: 'rjgdp',
label: '一般债余额(亿元)',
},
{
prop: 'rjgdp',
label: '专项债余额(亿元)',
},
{
prop: 'rjgdp',
label: '地方政府债务限额(亿元)',
},
{
prop: 'rjgdp',
label: '城投平台有息债务(亿元)',
},
{
prop: 'rjgdp',
label: '财政自给率',
},
{
prop: 'rjgdp',
label: '负债率',
},
{
prop: 'rjgdp',
label: '负债率-宽口径',
},
{
prop: 'rjgdp',
label: '债务率',
},
{
prop: 'rjgdp',
label: '债务率-宽口径',
},
],
}
},
created() {
this.dataRegion()
},
computed: {
getHeaders() {
return this.tableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
},
getValues() {
return this.headers.map(item => {
return this.tableData.reduce((pre, cur, index) => Object.assign(pre, {['value' + index]: cur[item.prop]}), {'title': item.label,});
});
}
},
methods: {
//地区
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
}
}
</script>
<style lang="scss" scoped>
.regionalEconomies{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="同地区城投"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
/>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import dataRegion from '@/assets/json/dataRegion'
export default {
name: 'SameRegion',
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: 6034,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '企业名称', prop: 'punishReason'},
{label: '成员层级', prop: 'punishBegin', width: '120'},
{label: '法定代表人', prop: 'punishResult', width: '120'},
{label: '注册资本', prop: 'fileNum', width: '120', sortable:true},
{label: '成立日期', prop: 'cgrdm', width: '120', sortable:true},
{label: '实控人控股', prop: 'office', width: '130', sortable:true},
{label: '行业类型', prop: 'dataId', width: '120'},
{label: '所属省', prop: 'dataId', width: '120'},
{label: '所属市', prop: 'dataId', width: '120'},
{label: '所属区/县', prop: 'dataId', width: '120'}
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '筛选',
options: []
},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
],
props: {
value: 'id',
multiple: true,
},
addressList: [],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
}
},
created() {
this.dataRegion()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
var str = [];
for (let x = 0; x < 3; x++) {
for (let i = 0; i < dataRegion.length; i++) {
if (dataRegion[i].regionLevel == x + 1 && x + 1 == 1) {
str.push({
'id': dataRegion[i].id,
"label": dataRegion[i].regionName,
"short": dataRegion[i].short,
"value": dataRegion[i].parentId,
"children": []
});
} else if (dataRegion[i].regionLevel == x + 1 && x + 1 == 2) {
for (let j = 0; j < str.length; j++) {
if (str[j].id == dataRegion[i].parentId) {
str[j].children.push({
'id': dataRegion[i].id,
"label": dataRegion[i].regionName,
"short": dataRegion[i].short,
"value": dataRegion[i].parentId,
"children": []
});
}
}
} else if (dataRegion[i].regionLevel == x + 1 && x + 1 == 3) {
for (let j = 0; j < str.length; j++) {
for (let k = 0; k < str[j].children.length; k++) {
if (str[j].children[k].id == dataRegion[i].parentId) {
str[j].children[k].children.push({
'id': dataRegion[i].id,
"label": dataRegion[i].regionName,
"short": dataRegion[i].short,
"value": dataRegion[i].parentId
// "children":[]
});
}
}
}
}
}
}
this.addressList = str;
},
handleQuery() {
},
resetQuery() {
},
//分页
handleCurrentChange(e){
},
handleSizeChange(e){
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
margin: 10px 0 20px;
}
}
</style>
......@@ -35,14 +35,14 @@ export default {
}
},
created() {
let name = sessionStorage.getItem('currentTab')
if (name != "undefined" && name){
this.activeName = name;
}
// let name = sessionStorage.getItem('currentTab')
// if (name != "undefined" && name){
// this.activeName = name;
// }
},
methods: {
handleClick() {
sessionStorage.setItem('currentTab', this.activeName)
// sessionStorage.setItem('currentTab', this.activeName)
}
}
}
......
<template>
<el-dialog
class="popups"
width="534px"
:visible.sync="isshow"
@close="resetForm('ruleForm')"
>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加客户</span>
</div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="项目名称:" class="row" prop="projectName">
<el-input type="text" placeholder="请输入" v-model="queryParam.projectName"></el-input>
</el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input>
<div class="resultlist" v-if="showlist">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div>
</el-form-item>
<el-form-item label="项目阶段:" class="row">
<el-select placeholder="请选择" v-model="queryParam.projectStage">
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目类型:" class="row">
<el-select placeholder="请选择" v-model="queryParam.projectType">
<el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目类别:" class="row">
<el-select placeholder="请选择" v-model="queryParam.projectCategory">
<el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="投资估算:" class="row">
<el-input type="text" placeholder="请输入金额" @input="number" v-model="queryParam.investmentAmount"></el-input>
</el-form-item>
<el-form-item label="可见范围:" class="row">
<el-select placeholder="请选择" v-model="queryParam.isPrivate">
<el-option v-for="(item,index) in Privatelist" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<div class="popbot">
<div class="wordprimary">前往商机雷达寻找项目线索></div>
<div class="btn btn_cancel h32" @click="resetForm('ruleForm')">返回</div>
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div>
</div>
</el-form>
</el-dialog>
</template>
<script>
import {getEnterprise,getDictType,} from '@/api/main'
import {addProject} from '@/api/project/project'
export default {
name: 'addProject',
data(){
return{
Privatelist:[
{
value:0,
label:'仅自己可见'
},{
value:1,
label:'他人可见'
}
],//可见范围
isshow:true,
queryParam:{
userId:'',//用户id
projectName:'',// 项目名称
companyId:'',//企业id
ownerCompany:'',//业主单位
projectStage:'',//项目阶段
projectType:'',//项目类型
projectCategory:'',//项目类别
investmentAmount:'',//投资估算
isPrivate:0,//可见范围(0 仅自己可见,1 他人可见)
},
rules:{
projectName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
ownerCompany:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
},
showlist:false,
companData:[],//联想企业列表
projectStage:[],//项目阶段
projectType:[],//项目类型
projectCategory:[],//项目类别
}
},
mounted(){
},
created(){
//项目阶段
getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[]
})
//项目类型
getDictType('project_type').then(result=>{
this.projectType = result.code == 200 ? result.data:[]
})
//项目类别
getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[]
})
},
methods:{
//获取建设库客户
getCompany(value){
if (value.length>=2){
let param = {
keyword:value,
page:{
limit:20,
page:1
}
}
getEnterprise(JSON.stringify(param)).then(result=>{
if(result.code != 200)
return
this.showlist = true
this.companData = result.data.list
})
}
},
selCompany(item){
this.queryParam.companyId = item.jskEid
this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '')
this.showlist = false
},
//添加客户
submitForm(formName) {
this.queryParam.userId = this.$store.state.user.userId
this.$refs[formName].validate((valid) => {
if (valid) {
addProject(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('添加成功!')
this.resetForm('ruleForm')
this.$emit('addproject')
}else{
this.$message.error(result.msg)
}
})
} else {
}
});
},
resetForm(formName) {
this.queryParam = {
projectName:'',// 项目名称
companyId:'',//企业id
ownerCompany:'',//业主单位
projectStage:'',//项目阶段
projectType:'',//项目类型
projectCategory:'',//项目类别
investmentAmount:'',//投资估算
isPrivate:0,//可见范围(0 仅自己可见,1 他人可见)
},
this.showlist = false
this.$emit("cancel",false)
},
//输入数字
number(value){
this.queryParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')//输入2位小数
}
}
}
</script>
<style scoped>
.wordprimary{
display: inline;
padding-right: 26px;
}
.btn_primary{
padding: 0;
}
</style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment