Commit 8d1c0d53 authored by danfuman's avatar danfuman
parents 9ed301fd 82006770
...@@ -7,7 +7,6 @@ import com.dsk.common.annotation.Log; ...@@ -7,7 +7,6 @@ import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit; import com.dsk.common.annotation.RepeatSubmit;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult; 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.core.page.TableDataInfo;
import com.dsk.common.enums.BusinessType; import com.dsk.common.enums.BusinessType;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
...@@ -18,13 +17,11 @@ import com.dsk.system.service.ICustomerService; ...@@ -18,13 +17,11 @@ import com.dsk.system.service.ICustomerService;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService; import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
......
...@@ -47,5 +47,14 @@ public class CustomerFollowRecordController extends BaseController { ...@@ -47,5 +47,14 @@ public class CustomerFollowRecordController extends BaseController {
return AjaxResult.success(baseService.add(followRecord)); 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));
}
} }
...@@ -2,6 +2,7 @@ package com.dsk.web.controller.dsk; ...@@ -2,6 +2,7 @@ package com.dsk.web.controller.dsk;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseProjectService; import com.dsk.system.dskService.EnterpriseProjectService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.Map; import java.util.Map;
/** /**
...@@ -27,112 +29,130 @@ public class EnterpriseProjectController { ...@@ -27,112 +29,130 @@ public class EnterpriseProjectController {
EnterpriseProjectService enterpriseProjectService; EnterpriseProjectService enterpriseProjectService;
@ApiOperation(value = "土地交易列表") @ApiOperation(value = "土地交易列表")
@RequestMapping(value = "/landTransactionPage", method = RequestMethod.POST) @RequestMapping(value = "/landTransactionPage", method = RequestMethod.POST)
public TableDataInfo landTransactionPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo landTransactionPage(@RequestBody @Valid EnterpriseProjectLandTransactionPageBody body) throws Exception {
return enterpriseProjectService.landTransactionPage(paramMap); return enterpriseProjectService.landTransactionPage(body);
} }
@ApiOperation(value = "土地用途列表") @ApiOperation(value = "土地用途列表")
@RequestMapping(value = "/landUse", method = RequestMethod.POST) @RequestMapping(value = "/landUse", method = RequestMethod.POST)
public R landUse(@RequestBody Map<String, Object> paramMap) throws Exception { public R landUse(@RequestBody @Valid EnterpriseProjectLandUseBody body) throws Exception {
return enterpriseProjectService.landUse(paramMap); return enterpriseProjectService.landUse(body);
} }
@ApiOperation(value = "土地信息详情") @ApiOperation(value = "土地信息详情")
@RequestMapping(value = "/landDetail",method = RequestMethod.POST) @RequestMapping(value = "/landDetail",method = RequestMethod.POST)
public R landDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R landDetail(@RequestBody @Valid EnterpriseProjectLandDetailBody body) throws Exception {
return enterpriseProjectService.landDetail(paramMap); return enterpriseProjectService.landDetail(body);
} }
@ApiOperation(value = "拟建项目列表") @ApiOperation(value = "拟建项目列表")
@RequestMapping(value = "/approvalProjectPage",method = RequestMethod.POST) @RequestMapping(value = "/approvalProjectPage",method = RequestMethod.POST)
public TableDataInfo approvalProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo approvalProjectPage(@RequestBody @Valid EnterpriseProjectApprovalProjectPageBody body) throws Exception {
return enterpriseProjectService.approvalProjectPage(paramMap); return enterpriseProjectService.approvalProjectPage(body);
} }
@ApiOperation(value = "拟建项目详情基本信息") @ApiOperation(value = "拟建项目详情基本信息")
@RequestMapping(value = "/approvalInfoDetail",method = RequestMethod.POST) @RequestMapping(value = "/approvalInfoDetail",method = RequestMethod.POST)
public R approvalInfoDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R approvalInfoDetail(@RequestBody @Valid EnterpriseProjectApprovalInfoDetailBody body) throws Exception {
return enterpriseProjectService.approvalInfoDetail(paramMap); return enterpriseProjectService.approvalInfoDetail(body);
} }
@ApiOperation(value = "拟建项目详情立项审批列表") @ApiOperation(value = "拟建项目详情立项审批列表")
@RequestMapping(value = "/approvalExaminePage",method = RequestMethod.POST) @RequestMapping(value = "/approvalExaminePage",method = RequestMethod.POST)
public TableDataInfo approvalExaminePage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo approvalExaminePage(@RequestBody @Valid EnterpriseProjectApprovalExaminePageBody body) throws Exception {
return enterpriseProjectService.approvalExaminePage(paramMap); return enterpriseProjectService.approvalExaminePage(body);
} }
@ApiOperation(value = "拟建项目详情民间推介列表") @ApiOperation(value = "拟建项目详情民间推介列表")
@RequestMapping(value = "/approvalMarketingPage", method = RequestMethod.POST) @RequestMapping(value = "/approvalMarketingPage", method = RequestMethod.POST)
public TableDataInfo approvalMarketingPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo approvalMarketingPage(@RequestBody @Valid EnterpriseProjectApprovalMarketingPageBody body) throws Exception {
return enterpriseProjectService.approvalMarketingPage(paramMap); return enterpriseProjectService.approvalMarketingPage(body);
} }
@ApiOperation(value = "专项债项目列表") @ApiOperation(value = "专项债项目列表")
@RequestMapping(value = "/specialDebtPage", method = RequestMethod.POST) @RequestMapping(value = "/specialDebtProjectPage", method = RequestMethod.POST)
public TableDataInfo specialDebtPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo specialDebtProjectPage(@RequestBody @Valid Object body) throws Exception {
return enterpriseProjectService.specialDebtPage(paramMap); return enterpriseProjectService.specialDebtProjectPage(body);
} }
@ApiOperation(value = "专项债项目详情") @ApiOperation(value = "专项债项目详情")
@RequestMapping(value = "/specialDebtDetail", method = RequestMethod.POST) @RequestMapping(value = "/specialDebtProjectDetail", method = RequestMethod.POST)
public R specialDebtDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R specialDebtProjectDetail(@RequestBody @Valid Object body) throws Exception {
return enterpriseProjectService.specialDebtDetail(paramMap); return enterpriseProjectService.specialDebtProjectDetail(body);
} }
@ApiOperation(value = "招标公告列表") @ApiOperation(value = "招标公告列表")
@RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST) @RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST)
public TableDataInfo bidNoticePage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception {
return enterpriseProjectService.bidNoticePage(paramMap); return enterpriseProjectService.bidNoticePage(body);
} }
@ApiOperation(value = "招标公告招标类别") @ApiOperation(value = "招标公告招标类别")
@RequestMapping(value = "/bidNoticeTenderStage", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeTenderStage", method = RequestMethod.POST)
public R bidNoticeTenderStage(@RequestBody Map<String, Object> paramMap) throws Exception { public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
return enterpriseProjectService.bidNoticeTenderStage(paramMap); return enterpriseProjectService.bidNoticeTenderStage(body);
} }
@ApiOperation(value = "招标公告招标地区") @ApiOperation(value = "招标公告招标地区")
@RequestMapping(value = "/bidNoticeProvince", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeArea", method = RequestMethod.POST)
public R bidNoticeProvince(@RequestBody Map<String, Object> paramMap) throws Exception { public R bidNoticeArea(@RequestBody @Valid EnterpriseProjectBidNoticeAreaBody body) throws Exception {
return enterpriseProjectService.bidNoticeProvince(paramMap); return enterpriseProjectService.bidNoticeArea(body);
} }
@ApiOperation(value = "招标公告详情") @ApiOperation(value = "招标公告详情")
@RequestMapping(value = "/bidNoticeDetail", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeDetail", method = RequestMethod.POST)
public R bidNoticeDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R bidNoticeDetail(@RequestBody @Valid EnterpriseProjectBidNoticeDetailBody body) throws Exception {
return enterpriseProjectService.bidNoticeDetail(paramMap); return enterpriseProjectService.bidNoticeDetail(body);
} }
@ApiOperation(value = "招标计划列表") @ApiOperation(value = "招标计划列表")
@RequestMapping(value = "/bidPlanPage",method = RequestMethod.POST) @RequestMapping(value = "/bidPlanPage",method = RequestMethod.POST)
public TableDataInfo bidPlanPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo bidPlanPage(@RequestBody @Valid Object body) throws Exception {
return enterpriseProjectService.bidPlanPage(paramMap); return enterpriseProjectService.bidPlanPage(body);
} }
@ApiOperation(value = "招标计划详情") @ApiOperation(value = "招标计划详情")
@RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST) @RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST)
public R bidPlanDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R bidPlanDetail(@RequestBody @Valid Object body) throws Exception {
return enterpriseProjectService.bidPlanDetail(paramMap); return enterpriseProjectService.bidPlanDetail(body);
} }
@ApiOperation(value = "标讯pro招标公告列表") @ApiOperation(value = "标讯pro招标公告列表")
@RequestMapping(value = "/bidNoticeProPage", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProPage", method = RequestMethod.POST)
public TableDataInfo bidNoticeProPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo bidNoticeProPage(@RequestBody @Valid EnterpriseProjectBidNoticeProPageBody body) throws Exception {
return enterpriseProjectService.bidNoticeProPage(paramMap); return enterpriseProjectService.bidNoticeProPage(body);
}
@ApiOperation(value = "标讯pro招标公告项目类别")
@RequestMapping(value = "/bidNoticeProProjectType", method = RequestMethod.POST)
public R bidNoticeProProjectType(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception {
return enterpriseProjectService.bidNoticeProProjectType(body);
}
@ApiOperation(value = "标讯pro招标公告工程类别")
@RequestMapping(value = "/bidNoticeProProjectPurposes", method = RequestMethod.POST)
public R bidNoticeProProjectPurposes(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception {
return enterpriseProjectService.bidNoticeProProjectPurposes(body);
}
@ApiOperation(value = "标讯pro招标公告评标办法")
@RequestMapping(value = "/bidNoticeProAssessmentWay", method = RequestMethod.POST)
public R bidNoticeProAssessmentWay(@RequestBody @Valid EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception {
return enterpriseProjectService.bidNoticeProAssessmentWay(body);
} }
@ApiOperation(value = "标讯pro招标公告详情") @ApiOperation(value = "标讯pro招标公告详情")
@RequestMapping(value = "/bidNoticeProDetail", method = RequestMethod.POST) @RequestMapping(value = "/bidNoticeProDetail", method = RequestMethod.POST)
public R bidNoticeProDetail(@RequestBody Map<String, Object> paramMap) throws Exception { public R bidNoticeProDetail(@RequestBody @Valid EnterpriseProjectBidNoticeProDetailBody body) throws Exception {
return enterpriseProjectService.bidNoticeProDetail(paramMap); return enterpriseProjectService.bidNoticeProDetail(body);
} }
@ApiOperation(value = "行政许可列表") @ApiOperation(value = "行政许可列表")
@RequestMapping(value = "/creditXzxkPage", method = RequestMethod.POST) @RequestMapping(value = "/creditXzxkPage", method = RequestMethod.POST)
public TableDataInfo creditXzxkPage(@RequestBody Map<String, Object> paramMap) throws Exception { public TableDataInfo creditXzxkPage(@RequestBody @Valid EnterpriseProjectCreditXzxkPageBody body) throws Exception {
return enterpriseProjectService.creditXzxkPage(paramMap); return enterpriseProjectService.creditXzxkPage(body);
} }
} }
package com.dsk.web.controller.search.macroMarket; package com.dsk.web.controller.search.macroMarket;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto; import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.system.domain.OpRegionalEconomicDataV1;
import com.dsk.system.service.EconomicService; import com.dsk.system.service.EconomicService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* @ClassName EconomicController * @ClassName RegionalEconomicDataController
* @Description 经济大全 * @Description 区域经济大全
* @Author Dgm * @Author Dgm
* @Date 2023/5/18 10:09 * @Date 2023/5/18 10:09
* @Version 1.0.0 * @Version 1.0.0
*/ */
@RestController @RestController
@RequestMapping(value ="/economic") @RequestMapping(value ="/economic")
public class EconomicController { public class RegionalEconomicDataController {
@Autowired @Autowired
private EconomicService economicService; private EconomicService economicService;
...@@ -35,10 +28,9 @@ public class EconomicController { ...@@ -35,10 +28,9 @@ public class EconomicController {
*@Author: Dgm *@Author: Dgm
*@date: 2023/5/18 10:29 *@date: 2023/5/18 10:29
*/ */
@PostMapping("/national/list") @PostMapping("/national/nationalPage")
public AjaxResult nationalList(@RequestBody OpRegionalEconomicDataV1Dto dto) { public AjaxResult nationalPage(@RequestBody OpRegionalEconomicDataV1Dto dto) {
// return economicService.nationalList(dto); return economicService.nationalPage(dto);
return new AjaxResult(HttpStatus.OK.value(), "", new OpRegionalEconomicDataV1());
} }
/*** /***
...@@ -50,8 +42,7 @@ public class EconomicController { ...@@ -50,8 +42,7 @@ public class EconomicController {
*/ */
@GetMapping("/details/{id}") @GetMapping("/details/{id}")
public AjaxResult details(@PathVariable("id") Integer id) { public AjaxResult details(@PathVariable("id") Integer id) {
// return economicService.details(id); return economicService.details(id);
return new AjaxResult(HttpStatus.OK.value(), "", new OpRegionalEconomicDataV1());
} }
...@@ -64,17 +55,7 @@ public class EconomicController { ...@@ -64,17 +55,7 @@ public class EconomicController {
*/ */
@PostMapping("/statistics/regional") @PostMapping("/statistics/regional")
public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataV1Dto dto) { public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataV1Dto dto) {
// return economicService.regional(dto); return economicService.statisticsRegional(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);
} }
/*** /***
...@@ -86,32 +67,7 @@ public class EconomicController { ...@@ -86,32 +67,7 @@ public class EconomicController {
*/ */
@PostMapping("/regional/list") @PostMapping("/regional/list")
public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataV1Dto dto) { public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataV1Dto dto) {
// return economicService.regionalList(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);
} }
......
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; package com.dsk.web.controller.search.macroMarket;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto; import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
import com.dsk.system.domain.OpUipFinancialData;
import com.dsk.system.service.UrbanInvestmentPlatformService; import com.dsk.system.service.UrbanInvestmentPlatformService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Map;
/** /**
* @ClassName UrbanInvestmentPlatformController * @ClassName UrbanInvestmentPlatformController
* @Description 城投平台 * @Description 城投平台
...@@ -35,15 +29,7 @@ public class UrbanInvestmentPlatformController { ...@@ -35,15 +29,7 @@ public class UrbanInvestmentPlatformController {
*/ */
@PostMapping("/page") @PostMapping("/page")
public AjaxResult page(@RequestBody UrbanInvestmentPlatformDto dto) { public AjaxResult page(@RequestBody UrbanInvestmentPlatformDto dto) {
// return urbanInvestmentPlatformService.page(); return urbanInvestmentPlatformService.page(dto);
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);
} }
/*** /***
...@@ -57,4 +43,17 @@ public class UrbanInvestmentPlatformController { ...@@ -57,4 +43,17 @@ public class UrbanInvestmentPlatformController {
public AjaxResult details(@PathVariable("id") String id) { public AjaxResult details(@PathVariable("id") String id) {
return urbanInvestmentPlatformService.details(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);
}
} }
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; package com.dsk.common.dtos;
import com.dsk.common.core.domain.model.BasePage;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.event.SpringApplicationEvent;
/** /**
* @ClassName OpRegionalEconomicDataV1Dto * @ClassName OpRegionalEconomicDataV1Dto
...@@ -11,7 +11,7 @@ import org.springframework.boot.context.event.SpringApplicationEvent; ...@@ -11,7 +11,7 @@ import org.springframework.boot.context.event.SpringApplicationEvent;
* @Version * @Version
*/ */
@Data @Data
public class OpRegionalEconomicDataV1Dto { public class OpRegionalEconomicDataV1Dto extends BasePage {
/** /**
* 年份 * 年份
...@@ -20,15 +20,15 @@ public class OpRegionalEconomicDataV1Dto { ...@@ -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 * 全国宏观经济: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 {
}
...@@ -15,7 +15,7 @@ public class SpecialPurposeBondsDto { ...@@ -15,7 +15,7 @@ public class SpecialPurposeBondsDto {
/** /**
* 项目类型 * 项目类型
*/ */
private String projectType; private String specialBondProjectType;
/** /**
* 项目个数 * 项目个数
*/ */
...@@ -23,7 +23,7 @@ public class SpecialPurposeBondsDto { ...@@ -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 {
}
import request from '@/utils/request' import request from '@/utils/request'
// 导入客户列表
export function importData(param) {
return request({
url: '/customer/importData',
method: 'POST',
data: param
})
}
// 客户列表 // 客户列表
export function getCustomerList(param) { export function getCustomerList(param) {
...@@ -16,3 +24,35 @@ export function addCustomer(param) { ...@@ -16,3 +24,35 @@ export function addCustomer(param) {
data: param data: param
}) })
} }
//查询跟进记录
export function getFollowList(param) {
return request({
url: '/customer/follow/record/list',
method: 'get',
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 penalizePage(data) {
return request({
url: '/enterpriseCredit/penalizePage',
method: 'post',
data:data
})
}
// 行政处罚类型
export function penalizeReasonType(data) {
return request({
url: '/enterpriseCredit/penalizeReasonType',
method: 'post',
data:data
})
}
...@@ -658,3 +658,8 @@ ul, li { ...@@ -658,3 +658,8 @@ ul, li {
.flex{ .flex{
display: flex; display: flex;
} }
//消息提示框
.el-message{
border-radius: 0;
padding: 10px;
}
...@@ -358,18 +358,36 @@ ...@@ -358,18 +358,36 @@
.popform{ .popform{
padding-top: 24px; padding-top: 24px;
.row{ .row{
padding-bottom: 16px; margin-bottom: 16px;
.left{ position: relative;
width: 137px; .resultlist{
display: inline-block; position: absolute;
text-align: right; width: 100%;
opacity: 0.8; max-height: 218px;
i{ background: #FFFFFF;
color: #FF3C3C; box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.1);
font-style: initial; overflow: auto;
padding-right: 2px; z-index: 2;
text-indent: 13px;
cursor: pointer;
>div{
font-size: 14px;
color: #333;
height: 32px;
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&:hover{
background: #F1F6FB;
}
} }
} }
.el-form-item__label{
font-weight: 400;
opacity: 0.8;
padding: 0;
}
.el-input{ .el-input{
display: inline-block; display: inline-block;
width: 240px; width: 240px;
...@@ -398,6 +416,9 @@ ...@@ -398,6 +416,9 @@
color: #232323; color: #232323;
} }
} }
.el-form-item__error{
padding-top: 2px;
}
} }
.popbot{ .popbot{
text-align: right; text-align: right;
...@@ -410,17 +431,11 @@ ...@@ -410,17 +431,11 @@
} }
} }
.popform.i{ .popform.i{
.left{
width: 85px;
}
.el-input{ .el-input{
width: 335px; width: 335px;
} }
} }
.popform.j{ .popform.j{
.left{
width: 130px;
}
.el-input{ .el-input{
width: 364px; width: 364px;
} }
...@@ -995,3 +1010,9 @@ ...@@ -995,3 +1010,9 @@
} }
} }
} }
.el-input__inner{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 10px;
}
...@@ -37,6 +37,7 @@ input { ...@@ -37,6 +37,7 @@ input {
background: none; background: none;
outline: none; outline: none;
} }
html { html {
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
...@@ -112,6 +113,7 @@ select { ...@@ -112,6 +113,7 @@ select {
.float_right { .float_right {
float: right; float: right;
} }
.el-input { .el-input {
width: 100%; width: 100%;
} }
...@@ -130,6 +132,11 @@ select { ...@@ -130,6 +132,11 @@ select {
line-height: 34px; line-height: 34px;
} }
.el-dropdown-link {
cursor: pointer;
color: #333333;
}
.el-dropdown-link .el-input { .el-dropdown-link .el-input {
width: 100%; width: 100%;
} }
...@@ -141,6 +148,7 @@ select { ...@@ -141,6 +148,7 @@ select {
.el-input--suffix .el-input__inner { .el-input--suffix .el-input__inner {
padding-right: 15px; padding-right: 15px;
} }
.el-select .el-input.is-focus .el-input__inner, .el-select .el-input.is-focus .el-input__inner,
.el-input.is-active .el-input__inner, .el-input.is-active .el-input__inner,
.el-input__inner:focus, .el-input__inner:focus,
...@@ -148,9 +156,15 @@ select { ...@@ -148,9 +156,15 @@ select {
.el-range-editor.is-active:focus-within { .el-range-editor.is-active:focus-within {
border-color: #3181fa; border-color: #3181fa;
} }
.el-popper[x-placement^=top] { .el-popper[x-placement^=top] {
margin-bottom: 12px; margin-bottom: 12px;
} }
.el-popper[x-placement^=bottom] {
margin-top: 12px;
}
.el-select-dropdown .popper__arrow { .el-select-dropdown .popper__arrow {
display: none; display: none;
} }
...@@ -158,6 +172,7 @@ select { ...@@ -158,6 +172,7 @@ select {
.el-popper .popper__arrow { .el-popper .popper__arrow {
display: none; display: none;
} }
.select-popper { .select-popper {
text-align: center; text-align: center;
display: inline-block; display: inline-block;
...@@ -217,6 +232,7 @@ select { ...@@ -217,6 +232,7 @@ select {
.select-popper::-webkit-scrollbar-corner { .select-popper::-webkit-scrollbar-corner {
background: #fff; background: #fff;
} }
.select-popper .el-select { .select-popper .el-select {
width: 100%; width: 100%;
} }
...@@ -255,11 +271,103 @@ select { ...@@ -255,11 +271,103 @@ select {
.content_item .select-popper:hover .select-caret { .content_item .select-popper:hover .select-caret {
color: #0074E5; color: #0074E5;
} }
.content_item .select-caret:focus { .content_item .select-caret:focus {
border: none; border: none;
outline: 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: 4px;
}
.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%; width: 100%;
height: 0px; height: 0px;
opacity: 1; opacity: 1;
...@@ -306,3 +414,97 @@ select { ...@@ -306,3 +414,97 @@ select {
color: #0081FF; color: #0081FF;
border-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' ...@@ -4,6 +4,8 @@ import dialogDrag from './dialog/drag'
import dialogDragWidth from './dialog/dragWidth' import dialogDragWidth from './dialog/dragWidth'
import dialogDragHeight from './dialog/dragHeight' import dialogDragHeight from './dialog/dragHeight'
import clipboard from './module/clipboard' import clipboard from './module/clipboard'
import limitNum from './limitNum/limitNum'
const install = function(Vue) { const install = function(Vue) {
Vue.directive('hasRole', hasRole) Vue.directive('hasRole', hasRole)
...@@ -12,6 +14,7 @@ const install = function(Vue) { ...@@ -12,6 +14,7 @@ const install = function(Vue) {
Vue.directive('dialogDrag', dialogDrag) Vue.directive('dialogDrag', dialogDrag)
Vue.directive('dialogDragWidth', dialogDragWidth) Vue.directive('dialogDragWidth', dialogDragWidth)
Vue.directive('dialogDragHeight', dialogDragHeight) Vue.directive('dialogDragHeight', dialogDragHeight)
Vue.directive('limitNum', limitNum)
} }
if (window.Vue) { 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 ...@@ -14,6 +14,7 @@ import directive from './directive' // directive
import plugins from './plugins' // plugins import plugins from './plugins' // plugins
import { download } from '@/utils/request' import { download } from '@/utils/request'
import './assets/icons' // icon import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
......
...@@ -136,6 +136,20 @@ export const constantRoutes = [ ...@@ -136,6 +136,20 @@ export const constantRoutes = [
meta: { title: '企业专项债详情', icon: 'radar' } 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' }
}
]
} }
] ]
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="app-container"> <div class="app-container">
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="tables"> <div class="tables">
<div class="empty" v-if="tableData.total==0"> <div class="empty" v-if="tableData.total==0 && isNew == true">
<img src="@/assets/images/project/empty.png"> <img src="@/assets/images/project/empty.png">
<div class="p1">添加你的第一位客户吧</div> <div class="p1">添加你的第一位客户吧</div>
<div class="p2">抱歉,你还未添加客户,快去添加吧</div> <div class="p2">抱歉,你还未添加客户,快去添加吧</div>
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
</div> </div>
<div class="table_search"> <div class="table_search">
<div class="searchInput"> <div class="searchInput">
<el-input type="text" v-model="serchParam.companyName" placeholder="输入企业名称查询"></el-input> <el-input type="text" v-model="searchParam.companyName" placeholder="输入企业名称查询"></el-input>
<div class="btn">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div> </div>
<div class="dc"> <div class="dc">
<div class="total">共126条</div> <div class="total">共126条</div>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<div class="btn btn_primary h32 p10" @click="opennew"><div class="img img1"></div>添加客户</div> <div class="btn btn_primary h32 p10" @click="opennew"><div class="img img1"></div>添加客户</div>
</div> </div>
</div> </div>
<el-table v-if="tableData.total>0" <el-table v-if="isNew != true || tableData.total > 0"
:data="tableData.rows" :data="tableData.rows"
stripe border stripe border
style="width: 100%" style="width: 100%"
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
label="序号" label="序号"
width="47"> width="47">
<template slot-scope='scope'> <template slot-scope='scope'>
<span>{{ (serchParam.pageNum - 1) * serchParam.pageSize + scope.$index + 1 }}</span> <span>{{ (searchParam.pageNum - 1) * searchParam.pageSize + scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -58,35 +58,56 @@ ...@@ -58,35 +58,56 @@
prop="cooperationProject" prop="cooperationProject"
label="合作项目" label="合作项目"
width="76"> width="76">
<template slot-scope="scope">
{{scope.row.cooperationProject || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="followProject" prop="followProject"
label="跟进项目" label="跟进项目"
width="76"> width="76">
<template slot-scope="scope">
{{scope.row.followProject || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="reserveProject" prop="reserveProject"
label="储备项目" label="储备项目"
width="76"> width="76">
<template slot-scope="scope">
{{scope.row.reserveProject || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="legalPerson" prop="legalPerson"
label="法定代表人" label="法定代表人"
width="110"> width="110">
<template slot-scope="scope">
{{scope.row.legalPerson || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="registerAddress"
label="注册地区" label="注册地区"
width="160"> width="160">
<template slot-scope="scope">
{{scope.row.registerAddress || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="registerCapitalStr" prop="registerCapitalStr"
label="注册资本金(万元)" label="注册资本金(万元)"
width="140"> width="140">
<template slot-scope="scope">
{{scope.row.registerCapitalStr || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="creditLevel" prop="creditLevel"
label="企业主体评级" width="100"> label="企业主体评级" width="100">
<template slot-scope="scope">
{{scope.row.creditLevel || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="isOn" prop="isOn"
...@@ -105,40 +126,58 @@ ...@@ -105,40 +126,58 @@
<el-table-column <el-table-column
prop="customerLevel" prop="customerLevel"
label="客户等级" width="76"> label="客户等级" width="76">
<template slot-scope="scope">
{{scope.row.customerLevel || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="companyNature" prop="companyNature"
label="客户性质" width="76"> label="客户性质" width="76">
<template slot-scope="scope">
{{scope.row.companyNature || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="companyLevel" prop="companyLevel"
label="客户级别" width="76"> label="客户级别" width="76">
<template slot-scope="scope">
{{scope.row.companyLevel || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
label="企业母公司" width="268"> label="企业母公司" width="268">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="wordprimary">{{scope.row.superCompany}}</div> <div class="wordprimary">{{scope.row.superCompany || '--'}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="mainBusiness" prop="mainBusiness"
label="主营业务" width="120"> label="主营业务" width="120">
<template slot-scope="scope">
{{scope.row.mainBusiness || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="companyAttribute" prop="companyAttribute"
label="发包属性" width="120"> label="发包属性" width="120">
<template slot-scope="scope">
{{scope.row.companyAttribute || '--'}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="followUser" prop="followUser"
label="跟进人" width="110"> label="跟进人" width="110">
<template slot-scope="scope">
{{scope.row.followUser || '--'}}
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="bottems" v-if="tableData.total>0"> <div class="bottems" v-if="tableData.total>0">
<el-pagination <el-pagination
background background
:page-size="serchParam.pageSize" :page-size="searchParam.pageSize"
:current-page="1" :current-page="searchParam.pageNum"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
layout="prev, pager, next" layout="prev, pager, next"
:total="tableData.total"> :total="tableData.total">
...@@ -148,44 +187,43 @@ ...@@ -148,44 +187,43 @@
<el-dialog <el-dialog
class="popups" class="popups"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="534px"> width="534px"
@close="resetForm('ruleForm')"
>
<div class="poptitle"> <div class="poptitle">
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>添加客户</span> <span>添加客户</span>
</div> </div>
<div class="popform j"> <el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<div class="row"> <el-form-item label="企业名称:" class="row" prop="companyName">
<span class="left"><i>*</i>企业名称:</span> <el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany"></el-input>
<el-input type="text" placeholder="请输入"></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> </div>
<div class="row"> </el-form-item>
<span class="left">客户等级:</span> <el-form-item label="客户等级:" class="row">
<el-select placeholder="请选择"> <el-select placeholder="请选择" v-model="queryParam.customerLevel">
<el-option v-for="(item,index) in customerLevel" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in customerLevel" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </el-form-item>
<div class="row"> <el-form-item label="法定代表人:" class="row">
<span class="left">法定代表人:</span> <el-input type="text" placeholder="请输入" v-model="queryParam.legalPerson"></el-input>
<el-input type="text" placeholder="请输入"></el-input> </el-form-item>
</div> <el-form-item label="注册资本(万):" class="row">
<div class="row"> <el-input type="text" placeholder="请输入" v-model="queryParam.registerCapital" @input='number'></el-input>
<span class="left">注册资本(万):</span> </el-form-item>
<el-input type="text" placeholder="请输入"></el-input> <el-form-item label="企业注册地:" class="row">
</div> <el-cascader :props="props" @change="getAddr($event)" ref="address" v-model="queryParam.address" :options="addressList" clearable></el-cascader>
<div class="row"> </el-form-item>
<span class="left">企业注册地:</span> <el-form-item label="统一社会信用代码:" class="row">
<el-cascader :options="addressList" clearable></el-cascader> <el-input type="text" placeholder="请输入" v-model="queryParam.creditCode"></el-input>
</div> </el-form-item>
<div class="row">
<span class="left">统一社会信用代码:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="popbot"> <div class="popbot">
<div class="wordprimary">前往城投平台寻找客户线索></div> <div class="wordprimary">前往城投平台寻找客户线索></div>
<div class="btn btn_cancel h32" @click="cancel">返回</div> <div class="btn btn_cancel h32" @click="resetForm('ruleForm')">返回</div>
<div class="btn btn_primary h32">添加</div> <div class="btn btn_primary h32" @click="submitForm('ruleForm')">添加</div>
</div>
</div> </div>
</el-form>
</el-dialog> </el-dialog>
</el-card> </el-card>
</div> </div>
...@@ -193,25 +231,32 @@ ...@@ -193,25 +231,32 @@
<div class="upload" v-if="addfile==false"> <div class="upload" v-if="addfile==false">
<div class="up_title">批量导入客户</div> <div class="up_title">批量导入客户</div>
<div class="up_box"> <div class="up_box">
<el-upload v-if="isUpload == false" <el-upload :class="{'none':isUpload == true}"
class="upload-demo" class="upload-demo"
:action="action"
:multiple="false"
accept=".xls,.xlsx"
drag drag
action="https://jsonplaceholder.typicode.com/posts/" ref="upload"
multiple> :auto-upload="false"
:file-list="fileList"
:on-change="handleFileListChange"
:headers="headers"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/project/upload.png"> <img class="up_img" src="@/assets/images/project/upload.png">
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div> <div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div>
<div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div> <div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div>
<div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div> <div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div>
<div class="up_tip">导入已存在的客户将自动跳过</div> <div class="up_tip">导入已存在的客户将自动跳过</div>
</el-upload> </el-upload>
<div class="up_success" v-else> <div class="up_success" v-if="isUpload == true">
<img src="@/assets/images/project/success.png">上传成功 <img src="@/assets/images/project/success.png">上传成功
</div> </div>
<div class="btn_download" v-if="isUpload == true"><div class="img"></div>点击下载</div> <div class="btn_download" v-if="isUpload == false" @click="downloadClick"><div class="img"></div>点击下载</div>
</div> </div>
<div class="btns"> <div class="btns">
<div class="btn btn_primary btn_disabled h34" v-if="isUpload==false">确定导入</div> <div class="btn btn_primary btn_disabled h34" v-if="isUpload==false">确定导入</div>
<div class="btn btn_primary h34" @click="qddr" v-else>确定导入</div> <div class="btn btn_primary h34" @click="importConfirmClick" v-else>确定导入</div>
<div class="btn btn_default h34">取消</div> <div class="btn btn_default h34">取消</div>
</div> </div>
</div> </div>
...@@ -225,9 +270,9 @@ ...@@ -225,9 +270,9 @@
<div class="p3"> <div class="p3">
<img src="@/assets/images/project/success.png">查询成功 <img src="@/assets/images/project/success.png">查询成功
</div> </div>
<div class="p2">成功导入32家客户信息</div> <div class="p2">成功导入客户信息</div>
<div class="btns"> <div class="btns">
<div class="btn btn_primary h32">查看</div> <div class="btn btn_primary h32" @click="handleCurrentChange(1)">查看</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -236,8 +281,9 @@ ...@@ -236,8 +281,9 @@
</template> </template>
<script> <script>
import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss" import "@/assets/styles/project.scss"
import {getCustomerList} from '@/api/custom/custom' import {getCustomerList,importData} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main' import {getEnterprise,getDictType,} from '@/api/main'
import prvinceTree from '@/assets/json/provinceTree' import prvinceTree from '@/assets/json/provinceTree'
import axios from 'axios' import axios from 'axios'
...@@ -246,43 +292,50 @@ export default { ...@@ -246,43 +292,50 @@ export default {
data() { data() {
return{ return{
pldr: false, pldr: false,
serchParam:{ searchParam:{
companyName:'', companyName:'',
pageNum:1, pageNum:1,
pageSize:20 pageSize:20
}, },
props:{ checkStrictly: true, expandTrigger: 'hover' },
dialogVisible:false, dialogVisible:false,
textarea:"", textarea:"",
nowedit:-1,//当前正在编辑的文本 nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签 tipslit:[],//项目标签
tipsvalue:"",//标签填写内容 tipsvalue:"",//标签填写内容
tableData: [ tableData: [],//列表
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
],
isUpload:false,//有上传的文件 isUpload:false,//有上传的文件
addfile:true,//已上传文件 addfile:false,//已上传文件
addsuccess:true,//已成功加入数据 addsuccess:false,//已成功加入数据
companData:[],//联想企业列表
customerLevel:[],//客户等级 customerLevel:[],//客户等级
addressList:[],//地区 addressList:[],//地区
//添加客户
queryParam:{
companyId:'',//jsk企业id
companyName:'',//客户名称(企业名称
customerLevel:'',//客户等级
legalPerson:'',//法定代表人
registerCapital:'',//注册资本
registerAddress:'',//企业注册地址
creditCode:'',//社会统一信用代码
address:'',//选择的地址
provinceId:'',
cityId:'',
districtId:'',
},
rules:{
companyName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },]
},
//批量导入
action: process.env.VUE_APP_BASE_API + "/customer/importData",
fileList: [],
headers: {
Authorization: "Bearer " + getToken(),
},
isNew:true,
showlist:false,
} }
}, },
created() { created() {
...@@ -303,14 +356,10 @@ export default { ...@@ -303,14 +356,10 @@ export default {
this.isUpload = false this.isUpload = false
this.addsuccess = false this.addsuccess = false
}, },
qddr(){
this.addfile = true
this.addsuccess = false
},
//获取客户列表 //获取客户列表
getCustomerList(){ getCustomerList(){
getCustomerList(this.serchParam).then(result=>{ getCustomerList(this.searchParam).then(result=>{
this.tableData =result this.tableData = result
}) })
}, },
//跳转到客户详情 //跳转到客户详情
...@@ -323,16 +372,126 @@ export default { ...@@ -323,16 +372,126 @@ export default {
}, },
//翻页 //翻页
handleCurrentChange(val) { handleCurrentChange(val) {
this.serchParam.pageNum=val this.isNew = false
console.log(`当前页: ${val}`); this.searchParam.pageNum=val
}, this.getCustomerList()
cancel(){
this.dialogVisible = false
}, },
//打开新建窗口 //打开新建窗口
opennew(){ opennew(){
this.dialogVisible = true this.dialogVisible = true
}, },
getAddr(obj){
if(obj.length == 0){
this.queryParam.provinceId = ''
this.queryParam.cityId = ''
this.queryParam.districtId = ''
return false
}
let labelString = this.$refs.address.getCheckedNodes()[0].pathLabels.join("-");
this.queryParam.registerAddress = labelString
this.queryParam.provinceId = obj[0]
this.queryParam.cityId = obj.length>=1 ? obj[1]:''
this.queryParam.districtId = obj.length>=2 ? obj[2]:''
},
//获取建设库客户
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){
console.log(item)
this.queryParam.companyId = item.jskEid
this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
this.queryParam.legalPerson = item.legalPerson
this.queryParam.registerCapital = item.registeredCapitalStr
this.queryParam.creditCode = item.creditCode
this.queryParam.provinceId = item.provinceId
this.queryParam.cityId = item.cityId
this.queryParam.districtId = item.cityId
let list = []
if(item.provinceId != null && item.provinceId != "")
list.push(item.provinceId)
if(item.cityId != null && item.cityId != "")
list.push(item.cityId)
if(item.districtId != null && item.districtId != "")
list.push(item.districtId)
this.address = list
this.queryParam.registerAddress = item.registerAddress
this.showlist = false
},
//添加客户
submitForm(formName) {
if(this.queryParam.companyId=="" || this.queryParam.companyId == null){
this.$message.error({message:'请选择企业!',showClose:true})
return;
}
this.$refs[formName].validate((valid) => {
if (valid) {
} else {
}
});
},
resetForm(formName) {
this.queryParam = {
companyId:'',//jsk企业id
companyName:'',//客户名称(企业名称
customerLevel:'',//客户等级
legalPerson:'',//法定代表人
registerCapital:'',//注册资本
registerAddress:'',//企业注册地址
creditCode:'',//社会统一信用代码
address:'',//选择的地址
provinceId:'',
cityId:'',
districtId:'',
},
this.dialogVisible = false
this.showlist = false
},
// 批量导入
importConfirmClick() {
if (this.fileList.length > 0) {
this.$refs["upload"].submit();
this.getCustomerList();
this.addfile = true
} else {
this.$message("请先选择文件");
}
},
downloadClick() {
let a = document.createElement("a");
a.setAttribute("href", "/file/Template.xlsx");
a.setAttribute("download", "批量导入模版.xlsx");
document.body.appendChild(a);
a.click();
},
handleFileListChange(file, fileList) {
if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]];
this.isUpload = true
}
},
onSuccess(res, file, fileList) {
if(res.code == 200 )
this.addsuccess = true
else
this.$message.error({message:res.msg,showClose:true})
},
//地区 //地区
async prvinceTree() { async prvinceTree() {
...@@ -349,6 +508,7 @@ export default { ...@@ -349,6 +508,7 @@ export default {
this.addressList = prvinceTree; this.addressList = prvinceTree;
this.getadd(this.addressList) this.getadd(this.addressList)
}, },
//处理注册地数据
getadd(row) { getadd(row) {
this.addrcallback(row,this.getadd) this.addrcallback(row,this.getadd)
}, },
...@@ -360,6 +520,10 @@ export default { ...@@ -360,6 +520,10 @@ export default {
}) })
} }
}, },
//输入数字
number(value){
this.queryParam.registerCapital = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
}
} }
} }
</script> </script>
...@@ -444,4 +608,5 @@ export default { ...@@ -444,4 +608,5 @@ export default {
padding-right: 26px; padding-right: 26px;
} }
} }
.none{display: none}
</style> </style>
<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>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<i slot="prefix" class="el-input__icon el-icon-search" @click="handleSearch"></i> <i slot="prefix" class="el-input__icon el-icon-search" @click="handleSearch"></i>
</el-input> </el-input>
<el-menu <el-menu
default-active="1" :default-active="routeIndex"
class="detail-menu" class="detail-menu"
@open="handleOpen"> @open="handleOpen">
<template v-for="(item, index) in sideRoute"> <template v-for="(item, index) in sideRoute">
...@@ -31,6 +31,10 @@ export default { ...@@ -31,6 +31,10 @@ export default {
type: Number, type: Number,
default: null default: null
}, },
pathName: {
type: String,
default: null
},
}, },
data() { data() {
return { return {
...@@ -62,18 +66,18 @@ export default { ...@@ -62,18 +66,18 @@ export default {
{title: '开标记录', pathName: ''} {title: '开标记录', pathName: ''}
]}, ]},
{title: '城投分析', pathName: '', children: [ {title: '城投分析', pathName: '', children: [
{title: '区域经济', pathName: ''}, {title: '区域经济', pathName: 'regionalEconomies'},
{title: '城投那地', pathName: ''}, {title: '城投那地', pathName: 'landAcquisition'},
{title: '同地区城投', pathName: ''} {title: '同地区城投', pathName: 'sameRegion'}
]}, ]},
{title: '风险信息', pathName: '', children: [ {title: '风险信息', pathName: '', children: [
{title: '行政处罚', pathName: ''}, {title: '行政处罚', pathName: 'punish'},
{title: '经营异常', pathName: ''}, {title: '经营异常', pathName: 'businessAnomaly'},
{title: '被执行人', pathName: ''}, {title: '被执行人', pathName: 'ifThePerson'},
{title: '失信被执行人', pathName: ''}, {title: '失信被执行人', pathName: 'dishonesty'},
{title: '裁判文书', pathName: ''}, {title: '裁判文书', pathName: 'judgment'},
{title: '法院公告', pathName: ''}, {title: '法院公告', pathName: 'courtNotice'},
{title: '开庭公告', pathName: ''}, {title: '开庭公告', pathName: 'openacourtsessionNotice'},
{title: '信用中国', pathName: ''} {title: '信用中国', pathName: ''}
]}, ]},
{title: '商务信息', pathName: 'business'}, {title: '商务信息', pathName: 'business'},
...@@ -93,6 +97,23 @@ export default { ...@@ -93,6 +97,23 @@ export default {
sideHeight = null sideHeight = null
} }
return sideHeight return sideHeight
},
routeIndex(){
let idx = '0-0', sideArr = this.sideRoute
for(let i=0; i < sideArr.length; i++){
if(sideArr[i].pathName == this.pathName){
idx = i.toString()
break
}else if(sideArr[i].children){
for(let j=0; j< sideArr[i].children.length ; j++){
if(sideArr[i].children.pathName == this.pathName){
idx = i+'-'+j
break
}
}
}
}
return idx
} }
}, },
created() { created() {
......
<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,31 @@ ...@@ -2,50 +2,31 @@
<div class="cooperate"> <div class="cooperate">
<template v-if="ifEmpty"> <template v-if="ifEmpty">
<div class="flex-box query-box">
<div class="flex-box query-params"> <head-form
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> :form-data="formData"
<el-form-item prop="stage"> :query-params="queryParams"
<el-select v-model="queryParams.stage" clearable class="form-content-width" placeholder="请选择项目阶段"> :total="tableDataTotal"
<el-option v-for="(item, index) in stageOptions" :key="index" :label="item.name" :value="item.value" /> :isExcel="true"
</el-select> :slots="true"
</el-form-item> @handle-search="handleSearch"
<el-form-item prop="status"> >
<el-select v-model="queryParams.status" clearable class="form-content-width" placeholder="请选择项目状态"> <template slot="slot">
<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"> <div class="flex-box query-add">
<el-button type="primary" icon="el-icon-plus" @click="drawer = true">添加商务信息</el-button> <el-button type="primary" icon="el-icon-plus" @click="drawer = true">添加商务信息</el-button>
</div> </div>
</div> </template>
<div class="table-item"> </head-form>
<el-table
v-loading="tableLoading" <tables
:data="tableData" :tableLoading="tableLoading"
element-loading-text="Loading" :tableData="tableData"
border :forData="forData"
fit :tableDataTotal="tableDataTotal"
highlight-current-row :queryParams="queryParams"
> @handle-current-change="handleCurrentChange"
<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>
</template> </template>
<template v-else> <template v-else>
<div class="cooperate_empty"> <div class="cooperate_empty">
...@@ -154,17 +135,46 @@ ...@@ -154,17 +135,46 @@
</template> </template>
<script> <script>
import mixin from '../mixins/mixin'
export default { export default {
name: 'Cooperate', name: 'Cooperate',
mixins: [mixin],
components: { components: {
}, },
data() { data() {
return { return {
ifEmpty:true, ifEmpty:true,
queryParams:{ queryParams: {
cid: 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: 'penalizeReasonType', value: '', placeholder: '项目阶段',
options: [
{ name: '项目阶段', value: '1' },
{ name: '项目阶段', value: '2' },
{ name: '项目阶段', value: '3' },
{ name: '项目阶段', value: '4' }
]
},
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '项目状态',
options: [
{ name: '项目状态', value: '1' },
{ name: '项目状态', value: '2' },
{ name: '项目状态', value: '3' },
{ name: '项目状态', value: '4' }
]
}, },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
],
stageOptions:[], stageOptions:[],
statusOptions:[], statusOptions:[],
//列表 //列表
......
...@@ -8,30 +8,19 @@ ...@@ -8,30 +8,19 @@
<el-button type="primary" icon="el-icon-plus" @click="opennew">新增决策链条</el-button> <el-button type="primary" icon="el-icon-plus" @click="opennew">新增决策链条</el-button>
</div> </div>
</div> </div>
<div class="table-item"> <div class="table-item">
<el-table <tables
v-loading="tableLoading" :indexFixed="true"
:data="tableData" :tableLoading="tableLoading"
element-loading-text="Loading" :tableData="tableData"
border :forData="forData"
fit :tableDataTotal="tableDataTotal"
highlight-current-row :queryParams="queryParams"
> @handle-current-change="handleCurrentChange"
<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" />
</div> </div>
</template> </template>
<template v-else> <template v-else>
<div class="cooperate_empty"> <div class="cooperate_empty">
...@@ -51,7 +40,7 @@ ...@@ -51,7 +40,7 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>重庆市轨道交通3号线二期工程4标段施工总承包</span> <span>重庆市轨道交通3号线二期工程4标段施工总承包</span>
</div> </div>
<div class="popform"> <el-form class="popform" label-width="137px">
<div class="row"> <div class="row">
<span class="left">联系人姓名:</span> <span class="left">联系人姓名:</span>
<el-input type="text" placeholder="请输入"></el-input> <el-input type="text" placeholder="请输入"></el-input>
...@@ -83,7 +72,7 @@ ...@@ -83,7 +72,7 @@
<div class="btn btn_cancel h32" @click="cancel">返回</div> <div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">保存</div> <div class="btn btn_primary h32">保存</div>
</div> </div>
</div> </el-form>
</el-dialog> </el-dialog>
</div> </div>
...@@ -94,10 +83,11 @@ import { ...@@ -94,10 +83,11 @@ import {
getList, getList,
addChain addChain
} from '@/api/decisionMaking/decisionMaking' } from '@/api/decisionMaking/decisionMaking'
import Tables from "../component/Tables"
export default { export default {
name: 'DecisionMaking', name: 'DecisionMaking',
components: { components: {
Tables
}, },
data() { data() {
return { return {
...@@ -107,6 +97,15 @@ export default { ...@@ -107,6 +97,15 @@ export default {
pageNum:1, pageNum:1,
pageSize:10, 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'},
],
stageOptions:[], stageOptions:[],
statusOptions:[], statusOptions:[],
//列表 //列表
...@@ -114,7 +113,7 @@ export default { ...@@ -114,7 +113,7 @@ export default {
tableData:[], tableData:[],
pageIndex:1, pageIndex:1,
pageSize:10, pageSize:10,
tableDataTotal:0, tableDataTotal:50,
//弹窗 //弹窗
dialogVisible: false, dialogVisible: false,
} }
...@@ -136,7 +135,7 @@ export default { ...@@ -136,7 +135,7 @@ export default {
}, },
//分页 //分页
handleCurrentChange(e){ handleCurrentChange(e){
console.log(e)
}, },
handleSizeChange(e){ handleSizeChange(e){
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<Header :company-id="companyId" v-if="companyId" /> <Header :company-id="companyId" v-if="companyId" />
<div class="flex-box part-main"> <div class="flex-box part-main">
<div class="part-left"> <div class="part-left">
<side-bar @currentPath="showPartPage" :partBoxHeight="partBoxHeight" /> <side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" />
</div> </div>
<div class="part-right"> <div class="part-right">
<div id="partBox" v-if="companyId"> <div id="partBox" v-if="companyId">
...@@ -15,6 +15,18 @@ ...@@ -15,6 +15,18 @@
<Branch v-if="currentPath.pathName=='branch'" /> <Branch v-if="currentPath.pathName=='branch'" />
<Financial v-if="currentPath.pathName=='financial'" :company-id="companyId" /> <Financial v-if="currentPath.pathName=='financial'" :company-id="companyId" />
<Business v-if="currentPath.pathName=='business'" /> <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'" /> <Preference v-if="currentPath.pathName=='preference'" />
<!-- 合作情况 --> <!-- 合作情况 -->
...@@ -42,6 +54,16 @@ import Overseas from "./overview/overseas" //企业概览-对外投资 ...@@ -42,6 +54,16 @@ import Overseas from "./overview/overseas" //企业概览-对外投资
import Branch from "./overview/branch" //企业概览-分支机构 import Branch from "./overview/branch" //企业概览-分支机构
import Financial from "./financial" //财务简析 import Financial from "./financial" //财务简析
import Business from "./business" //商务信息 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 Preference from "./preference" //招标偏好
import Cooperate from "./cooperate" //合作情况 import Cooperate from "./cooperate" //合作情况
import DecisionMaking from "./decisionMaking" //决策链条 import DecisionMaking from "./decisionMaking" //决策链条
...@@ -59,6 +81,16 @@ export default { ...@@ -59,6 +81,16 @@ export default {
Branch, Branch,
Financial, Financial,
Business, Business,
LandAcquisition,
RegionalEconomies,
SameRegion,
Punish,
BusinessAnomaly,
IfThePerson,
Dishonesty,
Judgment,
CourtNotice,
OpenacourtsessionNotice,
Preference, Preference,
Cooperate, Cooperate,
DecisionMaking, 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 @@ ...@@ -7,17 +7,26 @@
</div> </div>
</div> </div>
<div class="query-params"> <div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <div class="params-item">
<el-form-item> <div class="flex-box item-flex">
<el-input v-model="queryParams.key" <el-input
v-model="queryParams.key"
@focus="nowedit = 1"
placeholder="请输入商务条件特点"
class="textarea"
type="textarea" type="textarea"
:autosize="{ minRows: 8, maxRows: 8}" :autosize="autosize"
maxlength="500" maxlength="500"
show-word-limit :show-word-limit="true">
placeholder="请输入商务条件特点">
</el-input> </el-input>
</el-form-item> <div class="flex btns" v-if="nowedit === 1">
</el-form> <div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
<div class="preference-item"> <div class="preference-item">
...@@ -27,17 +36,26 @@ ...@@ -27,17 +36,26 @@
</div> </div>
</div> </div>
<div class="query-params"> <div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <div class="params-item">
<el-form-item> <div class="flex-box item-flex">
<el-input v-model="queryParams.key" <el-input
v-model="queryParams.key"
@focus="nowedit = 2"
placeholder="请输入决策链条"
class="textarea"
type="textarea" type="textarea"
:autosize="{ minRows: 8, maxRows: 8}" :autosize="autosize"
maxlength="500" maxlength="500"
show-word-limit :show-word-limit="true" >
placeholder="请输入决策链条">
</el-input> </el-input>
</el-form-item> <div class="flex btns" v-if="nowedit === 2">
</el-form> <div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
<div class="preference-item"> <div class="preference-item">
...@@ -47,17 +65,26 @@ ...@@ -47,17 +65,26 @@
</div> </div>
</div> </div>
<div class="query-params"> <div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <div class="params-item">
<el-form-item> <div class="flex-box item-flex">
<el-input v-model="queryParams.key" <el-input
v-model="queryParams.key"
@focus="nowedit = 3"
placeholder="请输入招投标流程特点"
class="textarea"
type="textarea" type="textarea"
:autosize="{ minRows: 8, maxRows: 8}" :autosize="autosize"
maxlength="500" maxlength="500"
show-word-limit :show-word-limit="true">
placeholder="请输入招投标流程特点">
</el-input> </el-input>
</el-form-item> <div class="flex btns" v-if="nowedit === 3">
</el-form> <div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
<div class="preference-item"> <div class="preference-item">
...@@ -67,17 +94,26 @@ ...@@ -67,17 +94,26 @@
</div> </div>
</div> </div>
<div class="query-params"> <div class="query-params">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <div class="params-item">
<el-form-item> <div class="flex-box item-flex">
<el-input v-model="queryParams.key" <el-input
v-model="queryParams.key"
@focus="nowedit = 4"
placeholder="请输入履约阶段特点"
class="textarea"
type="textarea" type="textarea"
:autosize="{ minRows: 8, maxRows: 8}" :autosize="autosize"
maxlength="500" maxlength="500"
show-word-limit :show-word-limit="true">
placeholder="请输入履约阶段特点">
</el-input> </el-input>
</el-form-item> <div class="flex btns" v-if="nowedit === 4">
</el-form> <div class="flex">
<div class="btnsmall btn_primary">确定</div>
<div class="cancels " @click="nowedit = 0" style="">取消</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
...@@ -93,9 +129,15 @@ export default { ...@@ -93,9 +129,15 @@ export default {
}, },
data() { data() {
return { return {
autosize: {
minRows: 8,
maxRows: 8
},
queryParams:{ queryParams:{
} },
key:'',
nowedit: 0
} }
}, },
created() { created() {
...@@ -116,12 +158,34 @@ export default { ...@@ -116,12 +158,34 @@ export default {
padding: 16px; padding: 16px;
.query-params{ .query-params{
margin-top:20px; margin-top:20px;
::v-deep .el-form-item{ .params-item{
width: 100%; 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;
} }
::v-deep .el-form-item__content{
width: 80%;
} }
.item-flex{
align-items: flex-end;
.btns{
.btnsmall{
width: 56px;
height: 28px;
line-height: 28px;
margin-left: 12px;
}
.cancels{
line-height: 28px;
}
}
}
}
} }
} }
</style> </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>
...@@ -11,87 +11,77 @@ ...@@ -11,87 +11,77 @@
<div class="writting" v-if="isEdit == true"> <div class="writting" v-if="isEdit == true">
<div class="wri_top"> <div class="wri_top">
<img src="@/assets/images/project/add_3.png"> <img src="@/assets/images/project/add_3.png">
<el-input placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input> <el-input v-model="addParam.content" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div> </div>
<div class="wr_bot"> <div class="wr_bot">
<el-select v-model="value" class="w128" placeholder="拜访方式"> <el-select v-model="addParam.visitMode" class="w128" placeholder="拜访方式">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i>
<el-option label="cccc" value="11"></el-option> <el-option v-for="(item,index) in bffslist" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select> </el-select>
<el-select v-if="showtype == 'gjdt'" v-model="value" class="w128" placeholder="关联企业"> <el-select v-if="showtype == 'gjdt'" v-model="addParam.customerId" class="w128" placeholder="关联企业">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i>
<el-option label="cccc" value="11"></el-option> <el-option v-for="(item,index) in glqylist" :key="index" :label="item.companyName" :value="item.customerId"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select> </el-select>
<el-input v-model="value" placeholder="拜访对象" style="width: 100px;"> <el-input v-model="addParam.name" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input> </el-input>
<el-input v-model="value" placeholder="客户职位" style="width: 100px;"> <el-input v-model="addParam.position" placeholder="客户职位" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_3.png"></i> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_3.png"></i>
</el-input> </el-input>
<div class="times"><img src="@/assets/images/project/ico_4.png"> <div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker class="w128" <el-date-picker class="w128"
v-model="value" v-model="addParam.nextVisitTime"
type="date" type="date"
placeholder="下次拜访时间"> placeholder="下次拜访时间">
</el-date-picker> </el-date-picker>
</div> </div>
<div class="btn btn_primary h32 wc" :class="{'btn_disabled':value == ''}">完成</div> <div class="btn btn_primary h32 wc" @click="addFollow" :class="{'btn_disabled':addParam.content == ''}">完成</div>
</div> </div>
</div> </div>
</div> </div>
<div class="recordlist"> <div class="recordlist">
<div class="rec_detail"> <div class="rec_detail" v-for="(item,index) in recordlist.rows">
<div class="rec_time"> <div class="rec_time">
<i class="el-icon-time"></i> <i class="el-icon-time"></i>
<div>2018-04-03 10:20</div> <div>{{item.createTime && item.createTime.slice(0, 16)}}</div>
<div class="operate"> <div class="operate">
<!--<img src="@/assets/images/edit.png">第一期不做编辑--> <!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img src="@/assets/images/delete.png"> <img @click="delRecord(item.id)" src="@/assets/images/delete.png">
</div> </div>
</div> </div>
<div class="rec_con"> <div class="rec_con">
<div><strong>李力</strong> <span>(线下拜访)</span></div> <div><strong>{{name}}</strong> <span v-if="item.visitMode">({{item.visitMode}})</span></div>
<div><span>上门拜访了交通局杨科长,客户对公司认可度很高,希望做进一步的高层对话。</span></div> <div><span>{{item.content}}</span></div>
<div class="rec_text"> <div class="rec_text">
<span>拜访对象:杨洋</span> <span>拜访对象:{{item.name||'--'}}</span>
<span>职位:科长</span> <span>职位:{{item.position||'--'}}</span>
<span>拜访时间:2008-12-08</span> <span>拜访时间:{{item.createTime && item.createTime.slice(0, 10)}}</span>
<span>下次拜访时间:2008-12-08</span> <span>下次拜访时间:{{item.nextVisitTime == null?'--': item.createTime.slice(0, 10)}}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="rec_detail">
<div class="rec_time">
<i class="el-icon-time"></i>
<div>2018-04-03 10:20</div>
<div class="operate">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img src="@/assets/images/delete.png">
</div>
</div>
<div class="rec_con">
<div><strong>李力</strong> <span>(线下拜访)</span></div>
<div><span>上门拜访了交通局杨科长,客户对公司认可度很高,希望做进一步的高层对话。</span></div>
<div class="rec_text">
<span>拜访对象:杨洋</span>
<span>职位:科长</span>
<span>拜访时间:2008-12-08</span>
<span>下次拜访时间:2008-12-08</span>
</div>
</div> </div>
<div class="tables" v-if="recordlist.total>0">
<div class="bottems">
<el-pagination
background
:page-size="pageSize"
:current-page="pageNum"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="recordlist.total">
</el-pagination>
</div> </div>
</div> </div>
</div> </div>
<div class="delform"> <div class="delform" v-if="isdel">
<div class="words">是否删除该条记录</div> <div class="words">是否删除该条记录</div>
<div> <div>
<div class="btnsmall btn_primary h28">确定</div> <div class="btnsmall btn_primary h28" @click="delele">确定</div>
<div class="btnsmall btn_cancel h28">取消</div> <div class="btnsmall btn_cancel h28" @click="isdel=false">取消</div>
</div> </div>
</div> </div>
</el-card> </el-card>
...@@ -99,7 +89,10 @@ ...@@ -99,7 +89,10 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
import "@/assets/styles/project.scss" import "@/assets/styles/project.scss"
import {getFollowList,addFollowRecord,getUserList,delFollowRecord} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main'
export default { export default {
props:{ props:{
types: { //当前组件展示类型 types: { //当前组件展示类型
...@@ -113,18 +106,123 @@ ...@@ -113,18 +106,123 @@
return{ return{
showtype:'', showtype:'',
isEdit:false, isEdit:false,
value:'' value:'',
pageNum:1,//页码
pageSize:20,
bffslist:[],//拜访方式
glqylist:[],//关联企业
addParam:{
customerId:'', //客户id
visitMode:'',//拜访方式
nextVisitTime:'',//下次拜访时间
name:'',//拜访对象姓名
position:'',//拜访对象职务
content:'',//拜访内容
},
recordlist:[],//列表数据源
isdel:false,
delID:'',//删除记录的ID
} }
}, },
computed: {
...mapGetters([
'name'
])
},
created(){ created(){
//获取拜访方式
getDictType('visit_mode_type').then(result=>{
this.bffslist = result.code == 200 ? result.data:[]
})
this.showtype = this.types this.showtype = this.types
//客户管理跟进动态
if(this.showtype == 'gjdt'){
getUserList().then(result=>{
this.glqylist = result.data
})
this.getGJDTlist()
}
console.log(this.types) console.log(this.types)
}, },
methods:{ methods:{
//添加跟进动态
addFollow(){
if(this.types == 'gjdt'){
addFollowRecord(this.addParam).then(result=>{
if(result.code == 200){
this.$message.success(result.msg)
this.handleCurrentChange(1)
this.isEdit = false
}else{
this.$message.error(result.msg)
}
})
}
},
//删除跟进动态
delRecord(id){
this.isdel = true
this.delID = id
},
delele(){
if(this.types == 'gjdt') {
delFollowRecord(this.delID).then(result => {
if (result.code == 200) {
this.handleCurrentChange(1)
this.$message.success('删除成功')
this.isdel = false
}
})
}
},
//跟进动态列表
getGJDTlist(){
let param = {
pageNum:this.pageNum,//页码
pageSize:this.pageSize,
}
getFollowList(param).then(result=>{
this.recordlist = result.code == 200?result:[]
this.recordlist.rows.forEach(item=>{
item.createTime = this.gettime(item.createTime)
item.nextVisitTime = this.gettime(item.nextVisitTime)
console.log(item.nextVisitTime )
})
})
},
handleCurrentChange(val){
this.pageNum = val
if(this.showtype == 'gjdt'){
this.getGJDTlist()
}
},
getEdit(){ getEdit(){
this.isEdit = true; this.isEdit = true;
this.value = "" this.value = ""
this.addParam={
customerId:'', //客户id
visitMode:'',//拜访方式
nextVisitTime:'',//下次拜访时间
name:'',//拜访对象姓名
position:'',//拜访对象职务
content:'',//拜访内容
}
}, },
gettime(time){
if(time == null || time == "")
return null
let times = new Date(time)
let year = times.getFullYear()
let month = times.getMonth()+1
month = month<10?"0"+month:month
let day = times.getDate()
day = day<10?"0"+day:day
let hour = times.getHours()
let minute = times.getMinutes()
let second = times.getSeconds()
return year+'-'+month+'-'+day+' '+hour+":"+minute+":"+second
}
} }
} }
</script> </script>
...@@ -138,4 +236,8 @@ ...@@ -138,4 +236,8 @@
.delform{ .delform{
position: fixed; left:50%; top:50%; transform:translate(-50%,-50%) position: fixed; left:50%; top:50%; transform:translate(-50%,-50%)
} }
.tables{
margin-top: -26px;
padding-right: 0;
}
</style> </style>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>重庆市轨道交通3号线二期工程4标段施工总承包</span> <span>重庆市轨道交通3号线二期工程4标段施工总承包</span>
</div> </div>
<div class="popform"> <el-form class="popform" label-width="137px">
<div class="row"> <div class="row">
<span class="left">联系人姓名:</span> <span class="left">联系人姓名:</span>
<el-input type="text" placeholder="请输入"></el-input> <el-input type="text" placeholder="请输入"></el-input>
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
<div class="btn btn_cancel h32" @click="cancel">返回</div> <div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">保存</div> <div class="btn btn_primary h32">保存</div>
</div> </div>
</div> </el-form>
</el-dialog> </el-dialog>
</el-card> </el-card>
</div> </div>
......
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>新建相关企业-{{types==1?"业主单位":""}}{{types==2?"合作伙伴":""}}{{types==3?"竞争对手":""}}</span> <span>新建相关企业-{{types==1?"业主单位":""}}{{types==2?"合作伙伴":""}}{{types==3?"竞争对手":""}}</span>
</div> </div>
<div class="popform i"> <el-form class="popform i" label-width="85px">
<div class="row"> <div class="row">
<span class="left"><i>*</i>企业名称:</span> <span class="left"><i>*</i>企业名称:</span>
<el-input type="text" placeholder="请输入"></el-input> <el-input type="text" placeholder="请输入"></el-input>
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
<div class="btn btn_cancel h32" @click="cancel">返回</div> <div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">添加</div> <div class="btn btn_primary h32">添加</div>
</div> </div>
</div> </el-form>
</el-dialog> </el-dialog>
</el-card> </el-card>
</div> </div>
......
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>新建商机</span> <span>新建商机</span>
</div> </div>
<div class="popform i"> <el-form class="popform i" label-width="85px">
<div class="row"> <div class="row">
<span class="left"><i>*</i>项目名称:</span> <span class="left"><i>*</i>项目名称:</span>
<el-input type="text" placeholder="请输入"></el-input> <el-input type="text" placeholder="请输入"></el-input>
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
<div class="btn btn_cancel h32" @click="cancel">取消</div> <div class="btn btn_cancel h32" @click="cancel">取消</div>
<div class="btn btn_primary h32">新建商机</div> <div class="btn btn_primary h32">新建商机</div>
</div> </div>
</div> </el-form>
</el-dialog> </el-dialog>
</el-card> </el-card>
</div> </div>
......
<template>
<div class="app-container qyzx-details">
<div class="bottomlist">
<ul class="bottomlist-content">
<li class="bottomlist-list">
<p class="list-titel">
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</p>
<div class="list-content">
<p class="list-content-text">
<span>受让人:</span>
<span class="blue">芜湖旭日机械制造有限公司</span>
</p>
<p class="list-content-text">
<span>成交金额:</span>
<span>12345.62万元</span>
</p>
<p class="list-content-text">
<span>总面积:</span>
<span>12345.62万</span>
</p>
<p class="list-content-text">
<span>合同签订:</span>
<span>2014-05-12</span>
</p>
</div>
<div class="list-content">
<p class="list-content-text">
<span>土地用途:</span>
<span>城镇村道路用地</span>
</p>
<p class="list-content-text">
<span>供应方式:</span>
<span>挂牌出让</span>
</p>
</div>
</li>
</ul>
</div>
<div class="content main3">
<div class="common-title">项目保障</div>
<div class="main3-box">
<p>
<label class="label">行政区</label>
<span>1.36倍</span>
<label class="label">电子监督号</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">项目名称</label>
<span class="span-one">1.36倍</span>
</p>
<p>
<label class="label">项目位置</label>
<span class="span-one">1.36倍</span>
</p>
<p>
<label class="label">面积</label>
<span>1.36倍</span>
<label class="label">土地来源</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">土地用途</label>
<span>1.36倍</span>
<label class="label">供地方式</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">土地使用年限</label>
<span>1.36倍</span>
<label class="label">行业分类</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">土地级别</label>
<span>1.36倍</span>
<label class="label">成交价格(万元)</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">土地使用权人</label>
<span class="span-one">1.36倍</span>
</p>
<p>
<label class="label">约定容积率</label>
<span>1.36倍</span>
<label class="label">批准单位</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">约定交地日起</label>
<span>1.36倍</span>
<label class="label">合同签订日期</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">约定开工时间</label>
<span>1.36倍</span>
<label class="label">约定竣工时间</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">实际开工时间</label>
<span>1.36倍</span>
<label class="label">实际峻工时间</label>
<span>1.36倍</span>
</p>
</div>
</div>
<div class="content main3">
<div class="common-title">地块基本信息</div>
<div class="main3-box">
<p>
<label class="label">地块名称</label>
<span>1.36倍</span>
<label class="label">建筑面积</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">容积率</label>
<span>1.36倍</span>
<label class="label">绿化率</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">建筑密度</label>
<span>1.36倍</span>
<label class="label">建筑限高</label>
<span>1.36倍</span>
</p>
</div>
</div>
<div class="content main3">
<div class="common-title">土地交易信息</div>
<div class="main3-box">
<p>
<label class="label">招拍挂起始时间</label>
<span>1.36倍</span>
<label class="label">招拍挂截止时间</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">报名起始时间</label>
<span>1.36倍</span>
<label class="label">报名截止日期</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">起始价</label>
<span>1.36倍</span>
<label class="label">竞买保证金</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">加价幅度</label>
<span>1.36倍</span>
<label class="label">投资强度</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">成交价</label>
<span>1.36倍</span>
<label class="label">受让人</label>
<span>1.36倍</span>
</p>
<p>
<label class="label">成交公示日期</label>
<span>1.36倍</span>
<label class="label">合同编号</label>
<span>1.36倍</span>
</p>
</div>
</div>
</div>
</template>
<script>
import "@/assets/styles/public.css";
export default {
name: 'LandDetails',
data() {
return {
id: '',
tableData: [{
id: 0,
name: '20重庆债14(2005938)',
time: '2020-09-18',
gm: '285.24',
zj: '否',
}]
}
},
created() {
console.log(this.$route.params)
this.id = this.$route.params.id
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.bottomlist {
width: 100%;
background-color: #FFFFFF;
border-radius: 4px 4px 4px 4px;
.bottomlist-title {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 12px;
padding: 16px;
border-bottom: 1px solid #EFEFEF;
.title-right {
display: flex;
align-items: center;
p:first-child {
font-size: 12px;
font-weight: 400;
color: #3D3D3D;
margin-right: 10px;
}
p:last-child {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
}
img {
width: 18px;
height: 18px;
}
}
}
.bottomlist-content {
padding-bottom: 0px;
}
.bottomlist-list {
padding: 16px;
font-size: 14px;
border-bottom: 1px solid #EFEFEF;
padding-bottom: 14px;
.list-titel {
font-size: 16px;
font-weight: 700;
color: #3D3D3D;
line-height: 19px;
.list-titel-a {
text-decoration: none;
color: #3D3D3D;
}
a:hover,
a:visited,
a:link,
a:active {
color: #3D3D3D;
}
}
.content-label {
margin-top: 7px;
.list-label {
background: #F3F3FF;
color: #8491E8;
border-radius: 1px 1px 1px 1px;
padding: 3px 7px;
font-size: 12px;
}
}
.list-content {
margin-top: 3px;
display: flex;
justify-content: start;
align-items: center;
.list-content-text {
margin-top: 7px;
display: flex;
justify-content: start;
align-items: center;
margin-right: 27px;
font-size: 14px;
span:first-child {
font-weight: 400;
color: rgba(35, 35, 35, 0.4);
line-height: 15px
}
span:last-child {
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
line-height: 15px
}
.blue {
color: #0081FF !important;
cursor: pointer;
}
}
}
.list-addree {
width: auto;
background: #F3F4F5;
display: inline-flex;
margin-top: 7px;
.list-content-text {
margin-top: 0px;
span {
line-height: 30px !important;
}
}
img {
width: 14px;
margin: 0 8px;
}
}
}
.bottomlist-list:hover {
background: #F6F9FC;
cursor: pointer;
}
.pagination {
padding: 14px;
.el-pagination {
float: right;
}
}
}
.app-container {
padding: 0;
}
.qyzx-details {
.tab {
font-size: 12px;
color: #A1A1A1;
span {
color: #232323;
}
}
.content {
margin-top: 16px;
background: #FFFFFF;
padding: 16px;
border-radius: 4px;
}
.common-title {
margin-bottom: 8px;
}
.main1 {
.title {
color: #232323;
font-size: 16px;
line-height: 28px;
font-weight: bold;
margin-bottom: 8px;
text-align: left;
img {
width: 28px;
height: 28px;
margin-bottom: -9px;
margin-right: 17px;
}
}
p {
color: #3D3D3D;
font-size: 14px;
margin: 0;
}
}
.main2 {
.list {
display: flex;
margin: 16px 0;
}
.item {
width: 24.5%;
margin-right: 16px;
height: 100px;
display: flex;
justify-content: space-between;
border-radius: 8px;
.item-left {
margin-left: 16px;
margin-top: 24px;
h4 {
color: #232323;
font-size: 22px;
line-height: 22px;
font-weight: bold;
margin: 0;
span {
font-weight: 400;
margin-left: 4px;
font-size: 18px;
}
}
p {
margin: 0;
color: #3D3D3D;
font-size: 14px;
padding-top: 8px;
}
}
.img {
width: 56px;
height: 56px;
margin-top: 22px;
margin-right: 12px;
}
}
.color1 {
background: rgba(246, 190, 59, 0.08);
border: 1px solid rgba(246, 190, 59, 0.2);
}
.color2 {
background: rgba(148, 216, 196, 0.102);
border: 1px solid rgba(73, 187, 154, 0.1);
}
.color3 {
background: rgba(57, 100, 199, 0.06);
border: 1px solid rgba(57, 100, 199, 0.1);
}
.color4 {
background: rgba(0, 129, 255, 0.04);
border: 1px solid rgba(0, 129, 255, 0.1);
}
}
.main3 {
.main3-box {
margin-top: 22px;
border-top: 1px solid #E6E9F0;
p {
display: flex;
align-items: center;
margin: 0;
border-left: 1px solid #E6E9F0;
border-bottom: 1px solid #E6E9F0;
.label {
width: 10%;
font-weight: 400;
line-height: 40px;
font-size: 12px;
height: 40px;
background: #F0F3FA;
padding-left: 12px;
}
span {
width: 40%;
color: #000;
height: 40px;
line-height: 40px;
padding-left: 12px;
font-size: 12px;
}
.span-one{
width: 90%;
}
}
}
}
.main4 {
.main4-box {
margin-top: 22px;
.label {
width: 14%;
background: #F0F3FA;
border: 1px solid #E6E9F0;
display: inline-block;
height: 40px;
line-height: 40px;
font-size: 12px;
color: rgba(35, 35, 35, 0.8);
padding-left: 12px;
}
span {
width: 19%;
display: inline-block;
height: 40px;
line-height: 40px;
border-top: 1px solid #E6E9F0;
border-bottom: 1px solid #E6E9F0;
padding-left: 12px;
font-size: 12px;
}
span:last-child {
width: 20%;
border-right: 1px solid #E6E9F0;
}
}
}
.main5 {
.table-item {
margin-top: 22px;
}
}
}
</style>
\ No newline at end of file
<template>
<div>
<div id="bidRecord_wrap">
<div>
<div class="content_li">
<div class="content_item content_item_nopadding">
<div class="include-keywords">
<span class="lefttltel" style=" border-radius: 1px 0px 0px 1px;">项目包含</span>
<el-input class="commonly-input" v-model="keyword" style="width: 607px;" placeholder="请输入项目名称、文章关键词,多关键词用空格隔开,如:房建 地基"></el-input>
</div>
</div>
</div>
<div class="land_content_wrap " style="margin-bottom:8px;">
<div class="land_content_wrap_label" >投标报价</div>
<el-input class="other_ipt" placeholder="请输入最低金额" style="margin-left:12px;" @change="changeMoney('start')" clearable v-model="jskBidQueryDto.startBidMoney"></el-input>
<span style="margin:0 8px;"></span>
<el-input style="position:relative;top:2px;" placeholder="请输入最高金额" @change="changeMoney('end')" v-model="jskBidQueryDto.endBidMoney" clearable class="other_ipt other_ipt1">
<el-button slot="append" type="primary">万元</el-button>
</el-input>
<el-checkbox style="margin-left:24px;" v-model="jskBidQueryDto.hasMoney" true-label="yes" false-label="">包含投标报价未公示
</el-checkbox>
</div>
<div class="land_content_wrap">
<span class="land_content_wrap_label">相关条件</span>
<div class="select-popper" style="margin-bottom:8px;">
<span :class="{color_text:jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length,}">
行政区划
{{
jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length? jskBidQueryDto.province.length + jskBidQueryDto.city.length +jskBidQueryDto.county.length +"项": ""
}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-cascader
ref="address"
class="cascader-region"
v-model="addressType"
:options="addressList"
:props="props"
@change="domicileChange"
collapse-tags
clearable
></el-cascader>
</div>
<el-dropdown @command="punishDatehandleCommand" trigger="click" ref="punishDateShowPopper" :hide-on-click="false" >
<span class="el-dropdown-link" :class="punishDateValue ? 'color_text' : ''" >
发布时间{{ punishDateValue ? " 1项" : ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in punishDateOptions" :class=" punishDateValue && punishDateValue == item.value ? 'color_text': '' " :key="i" :command="item.value">
<div @mouseenter="hidePoper">{{ item.label }}</div>
</el-dropdown-item>
<el-dropdown-item command="自定义" style="padding: 0; text-indent: 20px">
<div @mouseenter="mouseenter">
<span :class="punishDateValue == '自定义' ? 'color_text' : ''">
自定义<i class="el-icon-arrow-right"></i>
</span>
<el-date-picker
v-if="punishDateShowPopper"
@change="changepunishDate"
class="land_date_picker"
v-model="punishDate"
ref="datePicker"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
<el-dropdown @command="tenderDatehandleCommand" trigger="click" ref="tenderDateShowPopper" :hide-on-click="false" >
<span class="el-dropdown-link" :class="tenderDateValue ? 'color_text' : ''" >开标时间{{ tenderDateValue ? " 1项" : ""}}<i class="el-icon-caret-bottom"></i>
</span>
<div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in punishDateOptions" :class=" tenderDateValue && tenderDateValue == item.value ? 'color_text' : ''" :key="i" :command="item.value">
<div @mouseenter="hidePoper('bid')">{{ item.label }}</div>
</el-dropdown-item>
<el-dropdown-item command="自定义" style="padding: 0; text-indent: 20px">
<div @mouseenter="mouseenter('bid')">
<span :class="tenderDateValue == '自定义' ? 'color_text' : ''">自定义<i class="el-icon-arrow-right"></i></span>
<el-date-picker
v-if="tenderDateShowPopper"
@change="changepunishDate('bid')"
class="land_date_picker"
v-model="tenderDate"
ref="tenderDatePicker"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
</div>
<div class="land_content_wrap">
<span class="land_content_wrap_label" style="line-height:34px;">参投单位</span>
<el-input style="margin-left:12px;" v-model="jskBidQueryDto.companyName" clearable placeholder="请输入参投单位名称关键词"> </el-input>
</div>
<div class="search-new" style="padding: 16px 0px 16px 76px">
<span @click="search()">查询</span>
<span @click="reset">重置</span>
</div>
<div class="data_list" v-if="showList">
<div style="height: 16px;width: 1200px;background: #F7F9FC;margin-left: -16px;"></div>
<div class="data_list_head">
共为您找到<span class="data_list_count"> {{ total }} </span>条相关结果
<div class="bottom-toolbar-right float_right" style="padding-top: 1px;">
<el-popover v-model="fieldshow" placement="bottom-end" trigger="click" popper-class="viewlist-el-popover">
<ul class="pup_list">
<li v-for="(itme,i) in fieldOptions" :class="itme.status?'active':''" @click="handsequencingList(i)" :key="i">
{{itme.value}}
</li>
</ul>
<span slot="reference" class="toolbar-right-download" style="width: auto;padding: 0px 8px;margin-right:4px;" >
{{fieldText}}<i class="el-icon-caret-bottom" :style="{transform:fieldshow?'rotate(180deg)':''}"></i>
</span>
</el-popover>
<span size="small" class="toolbar-right-download toolbar-right-download1" @click="search('','','isExport')">
导出数据
</span>
</div>
</div>
<div style="border-top:1px solid #efefef;padding-bottom:1px;width: 1200px;margin-left: -16px;" v-if="total<1" >
<div class="search_empty_wrap">
<ul>
<li class="search_empty_wrap_li search_empty_wrap_li1">没有找到相关数据,您可尝试:</li>
<li class="search_empty_wrap_li"><i class="disc"></i>输入更准确的关键词,重新搜索</li>
<li class="search_empty_wrap_li"><i class="disc"></i>尝试减少输入的关键词,增加搜索范围</li>
<li class="search_empty_wrap_li"><i class="disc"></i>更换筛选条件,重新搜索</li>
<li class="search_empty_wrap_li"><i class="disc"></i>联系客服进行反馈<span>400-023-5755</span>(工作日09:00-18:00)或<span><nuxt-link title="意见反馈" :to="`/feedback/`" target="_blank">意见反馈</nuxt-link></span></li>
</ul>
</div>
</div>
<div v-else>
<div v-for="(item, index) in tableData"class="data_list_item":key="index">
<nuxt-link class="data_list_h1 data_list_h1_1" :to="`/biz/tbjl/${item.id}.html`" target="_blank" :title="item.projectName.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" v-if="item.id" v-html="item.projectName"></nuxt-link>
<div class="data_list_h1" v-else v-html="item.projectName"></div>
<div class="label_box" v-if="item.domicile">
<span class="label_span label_span2">{{ item.domicile}}</span>
</div>
<div class="label_wrap">
<template v-if="item.source">
<span class="label_item">来源网站:</span>
<span class="label_con" v-html="item.source"></span>
</template>
<template v-if="item.tenderTime">
<span class="label_item" >开标时间:</span><span class="label_con">{{ item.tenderTime }}</span>
</template>
<template v-if="item.punishDate">
<span class="label_item" >发布时间:</span>
<span class="label_con">{{ item.punishDate }}</span>
</template>
</div>
</div>
</div>
</div>
</div>
<div class="performance_pagination_wrap" v-if="showList&&total>0">
<Pagination
v-if="pageFlag"
ref="page"
:page='permissions.page'
@handle-current-change="handleCurrentChange"
@handle-size-change="handleSizeChange"
:total="total"
/>
</div>
</div>
</div>
</template>
<script>
import jsk_data from '../../../../../public/jsk.json';
export default {
name: 'BidRecord',
data() {
return {
addressList: [],
addressType: [],
props: {
multiple: true,
expandTrigger: "hover",
value: "id",
},
keyword:"",
keywordNot:"",
fieldshow: false,
fieldText: '默认排序',
field: '', //查询结果排序方式
fieldOptions: [
{
key: "",
value: "默认排序",
status: true,
},
{
key: "publishDate",
value: "发布日期从晚到早",
status: false,
},
],
page: 1,
limit: 20,
punishDateOptions: [
{
label: "不限",
value: "",
},
{
label: "今天",
value: "今天",
},
{
label: "近3日",
value: "近3日",
},
{
label: "近7日",
value: "近7日",
},
{
label: "近1个月",
value: "近1个月",
},
{
label: "近3个月",
value: "近3个月",
},
{
label: "近半年",
value: "近半年",
},
{
label: "近1年",
value: "近1年",
},
],
punishDateValue: "",
jskBidQueryDto: {
hasMoney:"",
province: [],
city: [],
county: []
},
domicile: [],
provinceText:[],
provinceList:[],
punishDate: "",
punishDateShowPopper: false,
tenderDateValue: "",
tenderDate: "",
tenderDateShowPopper: false,
pageFlag: true,
conditionsArr: [],
showList:true,
total:0,
tableData:[],
};
},
computed: {
checkJskBidQueryDto() {
let arr = [];
let flag = false;
let data = {};
if(this.keyword){
data = {
title: "项目包含:",
keyid: "keyword",
value: this.keyword,
key: "keyword"
}
flag = true;
arr.push(data)
}
if(this.keywordNot){
data = {
title: "项目排除:",
keyid: "keywordNot",
value: this.keywordNot,
key: "keywordNot"
}
flag = true;
arr.push(data)
}
if(this.jskBidQueryDto.companyName){
data = {
title: "参投单位:",
keyid: "companyName",
value: this.jskBidQueryDto.companyName,
key: "companyName"
}
flag = true;
arr.push(data)
}
if(this.jskBidQueryDto.startBidMoney){
data = {
title: "最低金额:",
keyid: "startBidMoney",
value: this.jskBidQueryDto.startBidMoney,
key: "startBidMoney"
}
flag = true;
arr.push(data)
}
if(this.jskBidQueryDto.endBidMoney){
data = {
title: "最高金额:",
keyid: "endBidMoney",
value: this.jskBidQueryDto.endBidMoney,
key: "endBidMoney"
}
flag = true;
arr.push(data)
}
if(this.jskBidQueryDto.hasMoney){
data = {
title: "包含投标报价未公示",
keyid: "hasMoney",
value: this.jskBidQueryDto.hasMoney,
key: "hasMoney"
}
flag = true;
arr.push(data)
}
if (this.domicile.length > 0) {
data = {
title: "行政区划:",
keyid: "domicile",
value: this.domicile.join(","),
key: "domicile"
}
flag = true;
arr.push(data)
}
if(this.punishDateValue=="自定义"){
data = {
title: "发布时间:",
keyid: "punishDate",
value: this.jskBidQueryDto.startPunishDate +"~" +this.jskBidQueryDto.endPunishDate,
key: "punishDate"
}
flag = true;
arr.push(data)
}
if(this.punishDateValue&&this.punishDateValue!="自定义"){
data = {
title: "发布时间:",
keyid: "punishDate",
value: this.punishDateValue,
key: "punishDate"
}
flag = true;
arr.push(data)
}
if(this.tenderDateValue=="自定义"){
data = {
title: "开标时间:",
keyid: "tenderDate",
value: this.jskBidQueryDto.startTenderTime +"~" +this.jskBidQueryDto.endTenderTime,
key: "tenderDate"
}
flag = true;
arr.push(data)
}
if(this.tenderDateValue&&this.tenderDateValue!="自定义"){
data = {
title: "开标时间:",
keyid: "tenderDate",
value: this.tenderDateValue,
key: "tenderDate"
}
flag = true;
arr.push(data)
}
this.conditionsArr = arr
return flag;
},
},
mounted() {
if (this.$route.query.keyword) {
this.keyword = this.$route.query.keyword;
}
this.addressListfn();
},
methods: {
// 关键词推荐
cliclikeywoder() {
this.$refs.keyword.show();
},
keywordClick(val) {
this.keyword = val
},
refresh(value) {
if(value) {
this.$router.go(0)
}
},
search(page, limit,exportFlag) {
if (!page) {
this.page = 1;
}
if (!limit) {
this.limit = 20;
}
if (!page && !limit) {
this.reloadPage();
}
var data = JSON.parse(JSON.stringify(this.jskBidQueryDto));
data.province = data.province.join(",");
data.city = data.city.join(",");
data.county = data.county.join(",");
let params = {
page: {
page: this.page,
limit: this.limit,
field: this.field,
},
jskBidQueryDto: data,
};
if(this.keyword){
params.keyword = this.keyword
}else{
delete params.keyword
}
if(this.keywordNot){
params.keywordNot = this.keywordNot
}else{
delete params.keywordNot
}
this.$emit("search",params)
},
//关闭支付弹窗
resolve(value) {
if (value) {
this.$router.go(0)
}
},
provinceChange(arr){
this.provinceText = [];
if(arr.length>0){
arr.map(item=>{
this.provinceText.push(item.label);
})
}
},
changeMoney(text) {
if (
this.jskBidQueryDto.startBidMoney &&
this.jskBidQueryDto.endBidMoney &&
Number(this.jskBidQueryDto.startBidMoney) >
Number(this.jskBidQueryDto.endBidMoney)
) {
this.$message.warning("最低金额不能大于最高金额!");
text == "start" ?
(this.jskBidQueryDto.startBidMoney = "") :
(this.jskBidQueryDto.endBidMoney = "");
}
},
reloadPage() {
this.pageFlag = false;
this.$nextTick(() => {
this.pageFlag = true;
});
},
handleCurrentChange(page) {
this.page = page;
this.search(page, this.limit);
},
handleSizeChange(limit) {
this.limit = limit;
this.search(this.page, limit);
},
deleteDomicile() {
this.$refs.address.handleClear();
},
domicileChange() {
let arr = this.$refs.address.getCheckedNodes();
let province = [],
city = [],
county = [];
this.domicile = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && city.push(arr[i].value);
arr[i].hasChildren && this.domicile.push(arr[i].label);
!arr[i].hasChildren && county.push(arr[i].value);
!arr[i].hasChildren && this.domicile.push(arr[i].label);
}
} else {
province.push(arr[i].value);
this.domicile.push(arr[i].label);
}
}
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
obj.province = province;
obj.city = city;
obj.county = county;
this.jskBidQueryDto = obj;
},
punishDatehandleCommand(command) {
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
if (command && command != "自定义") {
this.punishDateValue = command;
this.$refs.punishDateShowPopper.hide();
const datetime = new Date();
var startTime, endTime, Year, Month, Day;
Year = datetime.getFullYear();
Month = datetime.getMonth() + 1;
Day = datetime.getDate();
switch (command) {
case "今天":
startTime = Year + "-" + Month +"-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "近3日":
endTime = Year + "-" + Month + "-" + Day;
if (Day > 3) {
startTime = Year + "-" + Month + "-" +(Day-3);
} else {
let newTime = datetime.getTime()-3*24*60*60*1000
Year = new Date(newTime).getFullYear();
Month = new Date(newTime).getMonth() + 1;
Day = new Date(newTime).getDate();
startTime = Year + "-" + Month +"-" + Day;
}
break;
case "近7日":
endTime = Year + "-" + Month + "-" + Day;
if (Day > 7) {
startTime = Year + "-" + Month + "-" +(Day-7);
} else {
let newTime = datetime.getTime()-7*24*60*60*1000
Year = new Date(newTime).getFullYear();
Month = new Date(newTime).getMonth() + 1;
Day = new Date(newTime).getDate();
startTime = Year + "-" + Month +"-" + Day;
}
break;
case "近1个月":
endTime = Year + "-" + Month + "-" + Day;
if (Month > 1) {
startTime = Year + "-" + (Month - 1) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 1) + "-1";
}
break;
case "近3个月":
endTime = Year + "-" + Month + "-" + Day;
if (Month > 3) {
startTime = Year + "-" + (Month - 3) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 3) + "-1";
}
break;
case "近半年":
endTime = Year + "-" + Month + "-" + Day;
if (Month > 6) {
startTime = Year + "-" + (Month - 6) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 6) + "-1";
}
break;
case "近1年":
startTime = Year - 1 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "自定义":
if (!this.punishDate) {
this.punishDateValue = "";
}
break;
}
if(startTime){
var start=startTime.split('-');
startTime=start.map((item)=>{
if(item.length==1){
return '0'+item
}else{
return item
}
})
startTime=startTime.join('-')
}
if(endTime){
var end=endTime.split('-');
endTime=end.map((item)=>{
if(item.length==1){
return '0'+item
}else{
return item
}
})
endTime=endTime.join('-')
}
obj.startPunishDate = startTime;
obj.endPunishDate = endTime;
} else if (command == "自定义") {
this.$refs.datePicker.pickerVisible = true;
} else {
this.$refs.punishDateShowPopper.hide();
this.punishDateValue = "";
this.punishDate = "";
obj.startPunishDate = "";
obj.endPunishDate = "";
}
this.jskBidQueryDto = obj;
},
tenderDatehandleCommand(command) {
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
if (command && command != "自定义") {
this.tenderDateValue = command;
this.$refs.tenderDateShowPopper.hide();
const datetime = new Date();
var startTime, endTime, Year, Month, Day;
Year = datetime.getFullYear();
Month = datetime.getMonth() + 1;
Day = datetime.getDate();
switch (command) {
case "今天":
startTime = Year + "-" + Month +"-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "近3日":
endTime = Year + "-" + Month + "-" + Day;
if (Day > 3) {
startTime = Year + "-" + Month + "-" +(Day-3);
} else {
let newTime = datetime.getTime()-3*24*60*60*1000
Year = new Date(newTime).getFullYear();
Month = new Date(newTime).getMonth() + 1;
Day = new Date(newTime).getDate();
startTime = Year + "-" + Month +"-" + Day;
}
break;
case "近7日":
endTime = Year + "-" + Month + "-" + Day;
if (Day > 7) {
startTime = Year + "-" + Month + "-" +(Day-7);
} else {
let newTime = datetime.getTime()-7*24*60*60*1000
Year = new Date(newTime).getFullYear();
Month = new Date(newTime).getMonth() + 1;
Day = new Date(newTime).getDate();
startTime = Year + "-" + Month +"-" + Day;
}
break;
case "近1个月":
endTime = Year + "-" + Month + "-" + Day;
if (Month > 1) {
startTime = Year + "-" + (Month - 1) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 1) + "-1";
}
break;
case "近3个月":
endTime = Year + "-" + Month + "-" + Day;
if (Month > 3) {
startTime = Year + "-" + (Month - 3) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 3) + "-1";
}
break;
case "近半年":
endTime = Year + "-" + Month + "-" + Day;
if (Month > 6) {
startTime = Year + "-" + (Month - 6) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 6) + "-1";
}
break;
case "近1年":
startTime = Year - 1 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "自定义":
if (!this.tenderDate) {
this.tenderDateValue = "";
}
break;
}
if(startTime){
var start=startTime.split('-');
startTime=start.map((item)=>{
if(item.length==1){
return '0'+item
}else{
return item
}
})
startTime=startTime.join('-')
}
if(endTime){
var end=endTime.split('-');
endTime=end.map((item)=>{
if(item.length==1){
return '0'+item
}else{
return item
}
})
endTime=endTime.join('-')
}
obj.startTenderTime = startTime;
obj.endTenderTime = endTime;
} else if (command == "自定义") {
this.$refs.tenderDatePicker.pickerVisible = true;
} else {
this.$refs.tenderDateShowPopper.hide();
this.tenderDateValue = "";
this.tenderDate = "";
obj.startTenderTime = "";
obj.endTenderTime = "";
}
this.jskBidQueryDto = obj;
},
changepunishDate(type) {
if(type=='bid'&&this.tenderDate){
this.tenderDateValue = "自定义";
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
obj.startTenderTime = this.tenderDate[0];
obj.endTenderTime = this.tenderDate[1];
this.jskBidQueryDto = obj;
}else if(this.punishDate) {
this.punishDateValue = "自定义";
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
obj.startPunishDate = this.punishDate[0];
obj.endPunishDate = this.punishDate[1];
this.jskBidQueryDto = obj;
}
},
addressListfn() {
var str = [];
for (let x = 0; x < 3; x++) {
for (let i = 0; i < jsk_data.length; i++) {
if (jsk_data[i].regionLevel == x + 1 && x + 1 == 1) {
str.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children:jsk_data[i].id==900000?undefined:[],
});
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 2&&str) {
for (let j = 0; j < str.length; j++) {
if (str[j].id == jsk_data[i].parentId) {
str[j].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: [],
});
}
}
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 3) {
for (let j = 0; j < str.length; j++) {
if(str[j].children){
for (let k = 0; k < str[j].children.length; k++) {
if (str[j].children[k].id == jsk_data[i].parentId) {
str[j].children[k].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
});
}
}
}
}
}
}
}
this.addressList = str;
},
hidePoper(type) {
if(type=='bid'&&this.$refs.tenderDatePicker){
this.$refs.tenderDatePicker.pickerVisible = false;
}else if(this.$refs.datePicker){
this.$refs.datePicker.pickerVisible = false;
}
},
mouseenter(type) {
if(type=='bid'){
this.tenderDateShowPopper = true;
if(this.tenderDateValue=="自定义"){
this.$nextTick(() => {
this.$refs.tenderDatePicker.pickerVisible = true;
});
}
}else{
this.punishDateShowPopper = true;
if(this.punishDateValue=="自定义"){
this.$nextTick(() => {
this.$refs.datePicker.pickerVisible = true;
});
}
}
},
clearpunishDate(type) {
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
if(type=='bid'){
this.tenderDate = "";
this.tenderDateValue = "";
obj.startTenderTime = "";
obj.endTenderTime = "";
}else{
this.punishDate = "";
this.punishDateValue = "";
obj.startPunishDate = "";
obj.endPunishDate = "";
}
this.jskBidQueryDto = obj;
},
reset() {
Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init();
this.$emit("reset");
},
init(){
this.search();
this.addressListfn();
},
handsequencingList(index) {
this.fieldshow = false;
this.field = this.fieldOptions[index].key;
for (let i = 0; i < this.fieldOptions.length; i++) {
this.fieldOptions[i].status = false;
}
this.fieldText = this.fieldOptions[index].value;
this.fieldOptions[index].status = true;
this.search();
},
},
};
</script>
<style lang="scss">
#bidRecord_wrap{
.other_ipt {
width: 174px;
height: 34px;
.el-input__inner {
width: 174px;
}
}
.other_ipt1 {
width: 187px;
.el-input-group__append {
padding: 0 8px;
}
}
}
</style>
<style lang="scss" scoped>
#bidRecord_wrap {
padding: 0 16px;
font-size: 14px;
.land_content_wrap {
display: flex;
line-height: 34px;
.land_content_wrap_label {
color: #666666;
margin-right: 4px;
}
}
.data_list {
width: 1184px;
margin: 0 auto;
.data_list_head {
height: 50px;
line-height: 50px;
color: #666666;
.data_list_count {
color: #ff2a00;
font-weight: bold;
}
}
.data_list_item {
border-top: 1px solid #efefef;
padding: 24px 16px;
padding-left: 16px;
margin-left: -16px;
&:hover {
background: #f5faff;
}
.data_list_h1 {
width: 1168px;
font-size: 18px;
font-weight: bold;
color: #333333;
line-height: 24px;
margin-bottom: 10px;
text-decoration:none;
word-break: break-all;
display: inline-block;
}
.data_list_h1_1 {
cursor: pointer;
}
.label_box {
padding-bottom: 6px;
display: flex;
.label_span {
padding: 0 8px;
display: inline-block;
height: 22px;
line-height: 22px;
border-radius: 2px 2px 2px 2px;
margin-right: 8px;
font-size: 12px;
}
.label_span1 {
background: #e4f3fd;
color: #0081ff;
}
.label_span2 {
background: #f3f3ff;
color: #8491e8;
}
.label_span3 {
background: #e3f6f8;
color: #44bcc4;
}
.label_span4 {
background: #e3f6f8;
color: #44bcc4;
}
}
.label_wrap {
font-size: 14px;
margin-top: 10px;
line-height: 18px;
display: flex;
.label_item {
color: #999999;
}
.label_item1{
position: relative;
top: -3px;
}
.company {
color: #0081ff;
cursor: pointer;
margin-right: 20px;
}
.label_con {
color: #333333;
margin-right: 20px;
max-width: 900px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.label_con1 {
width: 1042px;
display: inline-block;
margin: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
.content_li {
padding: 16px 0;
display: flex;
align-items: center;
position: relative;
.content_item {
.include-keywords {
display: flex;
align-items: center;
position: relative;
.lefttltel {
display: inline-block;
background: #f5f5f5;
color: #333;
border: 1px solid #efefef;
border-right: none;
opacity: 1;
width: 71px;
height: 40px;
text-align: center;
line-height: 40px;
}
.el-input {
line-height: 40px;
border-radius: 0;
::v-deep .el-input__inner {
width: 100%;
height: 40px;
line-height: 40px;
border-radius: 0;
}
}
.commonly-input {
::v-deep .el-input__inner {
padding-right: 100px;
}
}
.commonly {
position: absolute;
top: 10px;
right: 16px;
font-size: 14px;
font-weight: 400;
color: #0081ff;
cursor: pointer;
}
}
}
}
}
</style>
<template>
<div>
<div class="content">
<div class="content_item">
<div class="label">项目名称</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入项目名称关键字" v-model="landMarketDto.keyword" ></el-input>
</div>
</div>
<div class="content_item">
<div class="label">土地信息</div>
<div class="content_right">
<div class="select-popper">
<span :class="{ color_text:landMarketDto.province.length ||landMarketDto.city.length ||landMarketDto.area.length,}">
行政区划{{landMarketDto.province.length ||landMarketDto.city.length ||landMarketDto.area.length? landMarketDto.province.length +landMarketDto.city.length +landMarketDto.area.length +"项": ""
}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-cascader ref="address" class="cascader-region select-location" @change="domicileChange" v-model="addressType"
:options="addressList" :props="props" collapse-tags clearable></el-cascader>
</div>
<div class="select-popper">
<span :class="{ color_text: landMarketDto.landUse.length }">
土地用途{{landMarketDto.landUse.length? landMarketDto.landUse.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="landMarketDto.landUse" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in landUseOptions" :key="i" :label="item" :value="item">
</el-option>
</el-select>
</div>
<div class="select-popper">
<span :class="{ color_text: landMarketDto.industry.length }">
土地行业分类{{landMarketDto.industry.length? landMarketDto.industry.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="landMarketDto.industry" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in landMarketIndustryList" :key="i" :label="item" :value="item">
</el-option>
</el-select>
</div>
<div class="select-popper">
<span :class="{ color_text: landMarketDto.supplyLandWay.length }">
供应方式{{landMarketDto.supplyLandWay.length? landMarketDto.supplyLandWay.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="landMarketDto.supplyLandWay" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in supplyLandWayOptions" :key="i" :label="item" :value="item">
</el-option>
</el-select>
</div>
<el-dropdown @command="handleCommand" class="el-dropdown-land" trigger="click" ref="popper" :hide-on-click="false">
<span class="el-dropdown-link" :class="landMarketDto.startAcreage || landMarketDto.endAcreage? 'color_text': ''">
出让面积{{landMarketDto.startAcreage || landMarketDto.endAcreage? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in acreageOptions" :class="landMarketDto.startAcreage == item.value[0] &&landMarketDto.endAcreage == item.value[1] &&
!startAcreage && !endAcreage? 'color_text': ''" :key="i" :command="item.value">{{ item.label }}</el-dropdown-item>
<el-dropdown-item command="" style="padding: 0; text-indent: 20px">
<div @mouseenter="showPopper = true" @mouseleave="showPopper = false">
<span :class="(startAcreage || endAcreage) &&landMarketDto.startAcreage == startAcreage &&landMarketDto.endAcreage == endAcreage
? 'color_text': '' ">
自定义<i class="el-icon-arrow-right"></i>
</span>
<div class="jabph_popper_box jabph_popper_box3" style="position: absolute" v-if="showPopper">
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="startAcreage"></el-input>
</div>
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="endAcreage"></el-input>
</div>
<div style="">
<el-button size="mini" @click="cancel">取消</el-button>
<el-button type="primary" size="mini" @click="popperConfirm">确定</el-button>
</div>
</div>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="select-popper">
<el-popover placement="bottom" v-model="showIpt" trigger="click">
<div class="jabph_popper_box jabph_popper_box1" style="position: relative">
<div class="jabph_popper_wrap">
最小
<el-input class="jabph_popper_input" v-limit-num clearable v-model="volumeRateLow">
</el-input>
</div>
<div class="jabph_popper_wrap">
最大
<el-input class="jabph_popper_input" v-limit-num clearable v-model="volumeRateHigh">
</el-input>
</div>
<div style="">
<el-button size="mini" @click="showIpt = false">取消</el-button>
<el-button type="primary" size="mini" @click="volumeRateConfirm">确定</el-button>
</div>
</div>
<span slot="reference" :class="{color_text:landMarketDto.volumeRateHigh || landMarketDto.volumeRateLow,}">
约定容积率{{landMarketDto.volumeRateHigh || landMarketDto.volumeRateLow? "1项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
</el-popover>
</div>
</div>
</div>
<div class="content_item">
<div class="label">成交信息</div>
<div class="content_right">
<el-dropdown @command="transactionPricehandleCommand" class="el-dropdown-land" trigger="click" ref="transactionPriceShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class="landMarketDto.startTransactionPrice ||landMarketDto.endTransactionPrice ? 'color_text': ''">
成交金额{{landMarketDto.startTransactionPrice ||landMarketDto.endTransactionPrice? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in transactionPriceOptions" :class="landMarketDto.startTransactionPrice == item.value[0] &&landMarketDto.endTransactionPrice == item.value[1] &&
!startTransactionPrice &&!endTransactionPrice? 'color_text': '' " :key="i" :command="item.value">{{ item.label }}</el-dropdown-item>
<el-dropdown-item command="" style="padding: 0; text-indent: 20px">
<div @mouseenter="transactionPriceShowPopper = true" @mouseleave="transactionPriceShowPopper = false">
<span :class="(startTransactionPrice || endTransactionPrice) &&landMarketDto.startTransactionPrice ==startTransactionPrice &&
landMarketDto.endTransactionPrice == endTransactionPrice? 'color_text': '' ">
自定义<i class="el-icon-arrow-right"></i>
</span>
<div class="jabph_popper_box" style="position: absolute"v-if="transactionPriceShowPopper">
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="startTransactionPrice"></el-input>
</div>
<div class="jabph_popper_wrap">
<el-input class="jabph_popper_input" v-limit-num clearable v-model="endTransactionPrice"></el-input>
</div>
<div style="">
<el-button size="mini" @click="transactionPriceCancel">取消</el-button>
<el-button type="primary" size="mini" @click="transactionPricePopperConfirm">确定</el-button>
</div>
</div>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown @command="contractSignTimehandleCommand" class="el-dropdown-land" trigger="click" ref="contractSignTimeShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class="contractSignTimeValue ? 'color_text' : ''">
签订日期{{ contractSignTimeValue ? " 1项" : ""}}<i class="el-icon-caret-bottom"></i>
</span>
<div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in contractSignTimeOptions" :class="contractSignTimeValue && contractSignTimeValue == item.value? 'color_text': ''" :key="i" :command="item.value">
<div @mouseenter="hidePoper">{{ item.label }}</div>
</el-dropdown-item>
<el-dropdown-item command="自定义" style="padding: 0; text-indent: 20px">
<div @mouseenter="mouseenter">
<span :class=" contractSignTimeValue == '自定义' ? 'color_text' : ''">
自定义<i class="el-icon-arrow-right"></i>
</span>
<el-date-picker v-if="contractSignTimeShowPopper"@change="changeContractSignTime" class="land_date_picker"v-model="contractSignTime"
ref="datePicker" value-format="yyyy-MM-dd" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
</div>
</div>
<div class="content_item">
<div class="label">土地坐落</div>
<div class="content_right">
<el-input v-model="landMarketDto.landAddr" clearable class="land_ipt_470"
placeholder="请输入土地坐落位置,如两江新区"></el-input>
</div>
</div>
<div class="content_item">
<div class="label">受让人</div>
<div class="content_right">
<el-input v-model="landMarketDto.companyName" clearable class="land_ipt_470"
placeholder="请输入受让人或土地使用权人名称,如重庆城投"></el-input>
</div>
</div>
<div class="content_item content_item_padding0">
<div class="geduan">
</div>
</div>
<div class="content_item content_item_padding0">
<div class="search-new">
<span @click="search()">查询</span>
<span @click="reset">重置</span>
</div>
</div>
</div>
<div class="bottomlist">
<div class="bottomlist-title">
<el-popover v-model="fieldshow" placement="bottom-start" trigger="click"
popper-class="viewlist-el-popover">
<ul class="pup_list">
<li v-for="(itme,i) in fieldOptions" :class="itme.status?'active':''"
@click="handsequencingList(i)" :key="i">
{{itme.value}}
</li>
</ul>
<span slot="reference" class="toolbar-right-download" >
{{fieldText}}<i class="el-icon-arrow-down"
:style="{transform:fieldshow?'rotate(180deg)':''}"></i>
</span>
</el-popover>
<div class="title-right">
<p>共有{{total}}</p>
<p>
<img src="@/assets/images/EXCEL.png" alt="">
<span>导出EXCEL</span>
</p>
</div>
</div>
<ul class="bottomlist-content">
<li class="bottomlist-list">
<p class="list-titel">
<router-link :to="'/radar/Land/details/'+ 1" tag="a" class="list-titel-a">绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)</router-link>
</p>
<div class="list-content">
<p class="list-content-text">
<span>受让人:</span>
<span class="blue">芜湖旭日机械制造有限公司</span>
</p>
<p class="list-content-text">
<span>成交金额:</span>
<span>12345.62万元</span>
</p>
<p class="list-content-text">
<span>总面积:</span>
<span>12345.62万</span>
</p>
<p class="list-content-text">
<span>合同签订:</span>
<span>2014-05-12</span>
</p>
</div>
<div class="list-content">
<p class="list-content-text">
<span>土地用途:</span>
<span >城镇村道路用地</span>
</p>
<p class="list-content-text">
<span>供应方式:</span>
<span >挂牌出让</span>
</p>
</div>
<div class="list-content list-addree">
<img src="@/assets/images/addree.png" alt="">
<p class="list-content-text">
<span>土地用途:</span>
<span >城镇村道路用地</span>
</p>
<p class="list-content-text">
<span>土地坐落:</span>
<span >锡山区云林街道春雷路东南、许巷路西</span>
</p>
</div>
</li>
</ul>
<div class="pagination clearfix" v-show="total>0">
<el-pagination
background
:page-size="pageSize"
:current-page="page"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import jsk_data from '../../../../../public/jsk.json';
export default {
name: 'Land',
data() {
return {
conditionTitles: {
keyword: "关键词:",
landAddr: "土地坐落:",
companyName: "受让人:",
},
conditionsArr: [],
addressList: [],
addressType: [],
props: {
multiple: true,
expandTrigger: "hover",
value: "id",
},
fieldshow: false,
fieldText: '默认排序',
field: '', //查询结果排序方式
fieldOptions: [{
key: "contractSignTime",
value: "默认排序",
status: true,
},
{
key: "transactionPrice",
value: "成交金额从大到小",
status: false,
},
{
key: "acreage",
value: "出让面积从大到小",
status: false,
},
],
page: 1,
limit: 20,
acreageOptions: [{
value: "不限",
label: "不限",
},
{
value: [0, 500],
label: "500平以下",
},
{
value: [500, 1000],
label: "500-1000平",
},
{
value: [1000, 5000],
label: "1000-5000平",
},
{
value: [5000, 20000],
label: "5000-2万平",
},
{
value: [20000, 50000],
label: "2万-5万平",
},
{
value: [50000, 100000],
label: "5万-10万平",
},
{
value: [100000, ""],
label: "10万平以上",
},
],
transactionPriceOptions: [{
value: "不限",
label: "不限",
},
{
value: [0, 100],
label: "100万元以下",
},
{
value: [100, 1000],
label: "100万-1000万元",
},
{
value: [1000, 5000],
label: "1000万-5000万元",
},
{
value: [5000, 20000],
label: "5000万-2亿元",
},
{
value: [20000, ""],
label: "2亿元以上",
},
],
contractSignTimeOptions: [{
label: "不限",
value: "",
},
{
label: "近1个月",
value: "近1个月",
},
{
label: "近半年",
value: "近半年",
},
{
label: "近1年",
value: "近1年",
},
{
label: "近3年",
value: "近3年",
},
],
contractSignTimeValue: "",
landUseOptions: [],
landMarketIndustryList: [],
supplyLandWayOptions: [
"划拨供地",
"协议出让",
"国有租赁",
"拍卖出让",
"招标出让",
"挂牌出让",
],
landMarketDto: {
landUse: [],
province: [],
city: [],
area: [],
supplyLandWay: [],
industry: [],
},
domicile: [],
startAcreage: "",
endAcreage: "",
showPopper: false,
showIpt: false,
volumeRateHigh: "",
volumeRateLow: "",
startTransactionPrice: "",
endTransactionPrice: "",
transactionPriceShowPopper: false,
contractSignTime: "",
contractSignTimeShowPopper: false,
pageFlag: true,
showList:true,
fieldshow: false,
fieldText: '默认排序',
field: '', //查询结果排序方式
fieldOptions: [
{
key: "contractSignTime",
value: "默认排序",
status: true,
},
{
key: "transactionPrice",
value: "成交金额从大到小",
status: false,
},
{
key: "acreage",
value: "出让面积从大到小",
status: false,
},
],
tableData:[],
total:6000,
page:1,
pageSize:20
};
},
computed: {
checkLandMarketDto() {
let arr = [];
let flag = false;
let data = {};
let keyid, value, title;
if (this.domicile.length > 0) {
data = {
title: "行政区划:",
keyid: "domicile",
value: this.domicile.join(","),
key: "domicile"
}
arr.push(data)
}
if (this.contractSignTimeValue == "自定义") {
data = {
title: "签订日期:",
value: this.landMarketDto.contractSignTimeStart + "~" + this.landMarketDto.contractSignTimeEnd,
}
arr.push(data)
}
if (this.contractSignTimeValue && this.contractSignTimeValue != "自定义") {
data = {
title: "签订日期:",
value: this.contractSignTimeValue,
}
arr.push(data)
}
for (var i in this.landMarketDto) {
if (this.landMarketDto[i]) {
keyid = i;
value = this.landMarketDto[i];
if (
Object.prototype.toString.call(this.landMarketDto[i]) ===
"[object Array]"
) {
if (this.landMarketDto[i].length > 0) {
flag = true;
switch (i) {
case 'landUse':
title = "土地用途:";
break;
case 'supplyLandWay':
title = "供应方式:";
break;
case 'industry':
title = "行业分类:";
break;
default:
title = "";
break;
}
} else {
title = ""
}
} else {
title = this.conditionTitles[i];
flag = true;
}
if (title) {
data = {
keyid: keyid,
value: value,
title: title,
key: value
}
arr.push(data)
}
}
}
this.conditionsArr = arr
return flag;
},
},
mounted() {
if (this.$route.query.keyword) {
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.keyword = this.$route.query.keyword;
this.landMarketDto = obj;
}
this.addressListfn();
// this.$axios.get('https://files.jiansheku.com/file/json/common/searchDic.json').then(res => {
// if (res && res.status == 200) {
// this.landMarketIndustryList = res.data.landMarketIndustry;
// this.landUseOptions = res.data.landUse
// }
// }).catch(error => {
// });
// if (this.landUseOptions.length == 0 || this.landMarketIndustryList.length == 0) {
// this.$axios.post("/nationzj/project/recently/typeList", {
// timeout: "49999",
// headers: {
// "Content-Type": "application/json;charset=UTF-8",
// },
// })
// .then((res) => {
// if (res.data.code == 200) {
// this.landUseOptions = res.data.data.landUseList;
// this.landMarketIndustryList = res.data.data.landMarketIndustryList;
// }
// })
// .catch((err) => {});
// }
},
methods: {
refresh(value) {
if (value) {
this.$router.go(0)
}
},
search(page, limit, exportFlag) {
if (!page) {
this.page = 1;
}
if (!limit) {
this.limit = 20;
}
if (!page && !limit) {
this.reloadPage();
}
var data = JSON.parse(JSON.stringify(this.landMarketDto));
data.landUse = data.landUse.join(",");
data.province = data.province.join(",");
data.city = data.city.join(",");
data.area = data.area.join(",");
data.supplyLandWay = data.supplyLandWay.join(",");
data.industry = data.industry.join(",");
let params = {
page: {
page: this.page,
limit: this.limit,
field: this.field,
},
landMarketDto: data,
};
this.$emit("search", params)
},
//关闭支付弹窗
resolve(value) {
if (value) {
this.$router.go(0)
}
},
reloadPage() {
this.pageFlag = false;
this.$nextTick(() => {
this.pageFlag = true;
});
},
handleCurrentChange(page) {
this.page = page;
this.search(page, this.limit);
},
handleSizeChange(limit) {
this.limit = limit;
this.search(this.page, limit);
},
deleteDomicile() {
this.$refs.address.handleClear();
},
domicileChange() {
let arr = this.$refs.address.getCheckedNodes();
let province = [],
city = [],
area = [];
this.domicile = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && city.push(arr[i].value);
arr[i].hasChildren && this.domicile.push(arr[i].label);
!arr[i].hasChildren && area.push(arr[i].value);
!arr[i].hasChildren && this.domicile.push(arr[i].label);
}
} else {
province.push(arr[i].value);
this.domicile.push(arr[i].label);
}
}
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.province = province;
obj.city = city;
obj.area = area;
this.landMarketDto = obj;
},
popperConfirm() {
if (
this.startAcreage &&
this.endAcreage &&
!(Number(this.endAcreage) > Number(this.startAcreage))
) {
return this.$message.warning("最小值必须小于最大值,请重新输入!");
}
this.showPopper = false;
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.startAcreage = this.startAcreage;
obj.endAcreage = this.endAcreage;
this.landMarketDto = obj;
this.$refs.popper.hide();
},
cancel() {
this.showPopper = false;
this.$refs.popper.hide();
},
transactionPricePopperConfirm() {
if (
this.startTransactionPrice &&
this.endTransactionPrice &&
!(Number(this.endTransactionPrice) > Number(this.startTransactionPrice))
) {
return this.$message.warning("最小值必须小于最大值,请重新输入!");
}
this.transactionPriceShowPopper = false;
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.startTransactionPrice = this.startTransactionPrice;
obj.endTransactionPrice = this.endTransactionPrice;
this.landMarketDto = obj;
this.$refs.transactionPriceShowPopper.hide();
},
transactionPriceCancel() {
this.transactionPriceShowPopper = false;
this.$refs.transactionPriceShowPopper.hide();
},
handleCommand(command) {
if (command) {
this.$refs.popper.hide();
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
this.startAcreage = "";
this.endAcreage = "";
if (command == "不限") {
obj.startAcreage = "";
obj.endAcreage = "";
} else {
obj.startAcreage = command[0];
obj.endAcreage = command[1];
}
this.landMarketDto = obj;
}
},
transactionPricehandleCommand(command) {
if (command) {
this.$refs.transactionPriceShowPopper.hide();
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
this.startTransactionPrice = "";
this.endTransactionPrice = "";
if (command == "不限") {
obj.startTransactionPrice = "";
obj.endTransactionPrice = "";
} else {
obj.startTransactionPrice = command[0];
obj.endTransactionPrice = command[1];
}
this.landMarketDto = obj;
}
},
contractSignTimehandleCommand(command) {
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
if (command && command != "自定义") {
this.contractSignTimeValue = command;
this.$refs.contractSignTimeShowPopper.hide();
const datetime = new Date();
var startTime, endTime, Year, Month, Day;
Year = datetime.getFullYear();
Month = datetime.getMonth() + 1;
Day = datetime.getDate();
switch (command) {
case "近1个月":
if (Month > 1) {
startTime = Year + "-" + (Month - 1) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 1) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近半年":
if (Month > 6) {
startTime = Year + "-" + (Month - 6) + "-1";
} else {
startTime = Year - 1 + "-" + (12 + Month - 6) + "-1";
}
endTime = Year + "-" + Month + "-" + Day;
break;
case "近1年":
startTime = Year - 1 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "近3年":
startTime = Year - 3 + "-" + Month + "-" + Day;
endTime = Year + "-" + Month + "-" + Day;
break;
case "自定义":
if (!this.contractSignTime) {
this.contractSignTimeValue = "";
}
break;
}
if (startTime) {
var start = startTime.split('-');
startTime = start.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
startTime = startTime.join('-')
}
if (endTime) {
var end = endTime.split('-');
endTime = end.map((item) => {
if (item.length == 1) {
return '0' + item
} else {
return item
}
})
endTime = endTime.join('-')
}
obj.contractSignTimeStart = startTime;
obj.contractSignTimeEnd = endTime;
} else if (command == "自定义") {
this.$refs.datePicker.pickerVisible = true;
} else {
this.$refs.contractSignTimeShowPopper.hide();
this.contractSignTimeValue = "";
this.contractSignTime = "";
obj.contractSignTimeStart = "";
obj.contractSignTimeEnd = "";
}
this.landMarketDto = obj;
},
changeContractSignTime() {
if (this.contractSignTime) {
this.contractSignTimeValue = "自定义";
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.contractSignTimeStart = this.contractSignTime[0];
obj.contractSignTimeEnd = this.contractSignTime[1];
this.landMarketDto = obj;
}
},
addressListfn() {
var str = [];
for (let x = 0; x < 3; x++) {
for (let i = 0; i < jsk_data.length; i++) {
if (jsk_data[i].regionLevel == x + 1 && x + 1 == 1) {
str.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: jsk_data[i].id == 900000 ? undefined : [],
});
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 2 && str) {
for (let j = 0; j < str.length; j++) {
if (str[j].id == jsk_data[i].parentId) {
str[j].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: [],
});
}
}
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 3) {
for (let j = 0; j < str.length; j++) {
if (str[j].children) {
for (let k = 0; k < str[j].children.length; k++) {
if (str[j].children[k].id == jsk_data[i].parentId) {
str[j].children[k].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
});
}
}
}
}
}
}
}
this.addressList = str;
},
hidePoper() {
if (this.$refs.datePicker) {
this.$refs.datePicker.pickerVisible = false;
}
},
mouseenter() {
this.contractSignTimeShowPopper = true;
if (this.contractSignTimeValue == "自定义") {
this.$nextTick(() => {
this.$refs.datePicker.pickerVisible = true;
});
}
},
handsequencingList(index) {
this.fieldshow = false;
this.field = this.fieldOptions[index].key;
for (let i = 0; i < this.fieldOptions.length; i++) {
this.fieldOptions[i].status = false;
}
this.fieldText = this.fieldOptions[index].value;
this.fieldOptions[index].status = true;
this.search();
},
volumeRateConfirm() {
if (
this.volumeRateLow &&
this.volumeRateHigh &&
!(Number(this.volumeRateHigh) > Number(this.volumeRateLow))
) {
return this.$message.warning("最小值必须小于最大值,请重新输入!");
}
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.volumeRateHigh = this.volumeRateHigh;
obj.volumeRateLow = this.volumeRateLow;
this.landMarketDto = obj;
this.showIpt = false;
},
clearContractSignTime() {
this.contractSignTime = "";
this.contractSignTimeValue = "";
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
obj.contractSignTimeStart = "";
obj.contractSignTimeEnd = "";
this.landMarketDto = obj;
},
reset() {
Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init();
this.$emit("reset");
},
init() {
this.search();
this.addressListfn();
this.$axios.get('https://files.jiansheku.com/file/json/common/searchDic.json').then(res => {
if (res && res.status == 200) {
this.landMarketIndustryList = res.data.landMarketIndustry;
this.landUseOptions = res.data.landUse
}
}).catch(error => {
});
if (this.landUseOptions.length == 0 || this.landMarketIndustryList.length == 0) {
this.$axios.post("/nationzj/project/recently/typeList", {
timeout: "49999",
headers: {
"Content-Type": "application/json;charset=UTF-8",
},
})
.then((res) => {
if (res.data.code == 200) {
this.landUseOptions = res.data.data.landUseList;
this.landMarketIndustryList = res.data.data.landMarketIndustryList;
}
})
.catch((err) => {});
}
},
},
};
</script>
<style lang="scss" scoped>
.content{
padding: 0px 16px;
border-radius: 4px 4px 4px 4px;
background: #FFFFFF;
.content_item{
padding-top: 12px;
display: flex;
align-items: center;
.label{
width: 84px;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
.content_right{
.ename_input{
width: 640px;
margin-right: 20px;
}
.land_ipt_470 {
width: 640px;
}
}
.item_ckquery_list {
display: flex;
}
.item_ckquery_list .el-input__icon {
position: relative;
top: 1px;
}
.ckquery_list_right {
width: 640px;
}
.register_count_ipt{
margin-left: 0px;
}
.register_count_ipt .el-input__inner{
width: 174px;
}
::v-deep .el-input-group__prepend{
padding: 0 8px;
}
.content-projecttype{
display: flex;
align-items: center;
justify-content: center;
.projecttype{
font-weight: 400;
color: #232323;
padding: 1px 5px;
margin-right: 4px;
cursor: pointer;
border-radius: 3px 3px 3px 3px;
font-size: 14px;
}
.projecttype:first-child{
padding-left: 0px;
}
.projecttype:hover{
background: #F3F4F5;
padding: 1px 5px;
}
.activetype{
background: #F3F4F5;
padding: 1px 5px !important;
}
}
}
.content_item_padding0{
padding: 0;
}
}
.bottomlist{
width: 100%;
background-color: #FFFFFF;
border-radius: 4px 4px 4px 4px;
.bottomlist-title{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 12px;
padding: 16px ;
border-bottom: 1px solid #EFEFEF;
.title-right{
display: flex;
align-items: center;
p:first-child{
font-size: 12px;
font-weight: 400;
color: #3D3D3D;
margin-right: 10px;
}
p:last-child{
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
img{
width: 18px;
height: 18px;
}
}
}
.bottomlist-content{
padding-bottom: 0px;
}
.bottomlist-list{
padding: 16px;
font-size: 14px;
border-bottom: 1px solid #EFEFEF;
padding-bottom: 14px;
.list-titel{
font-size: 16px;
font-weight: 700;
color: #3D3D3D;
line-height: 19px;
.list-titel-a{
text-decoration: none;
color:#3D3D3D;
}
a:hover, a:visited, a:link, a:active{
color:#3D3D3D;
}
}
.content-label{
margin-top: 7px;
.list-label{
background: #F3F3FF;
color: #8491E8;
border-radius: 1px 1px 1px 1px;
padding: 3px 7px;
font-size: 12px;
}
}
.list-content{
margin-top: 3px;
display: flex;
justify-content: start;
align-items: center;
.list-content-text{
margin-top: 7px;
display: flex;
justify-content: start;
align-items: center;
margin-right: 27px;
font-size: 14px;
span:first-child{
font-weight: 400;
color: rgba(35,35,35,0.4);
line-height: 15px
}
span:last-child{
font-weight: 400;
color: rgba(35,35,35,0.8);
line-height: 15px
}
.blue{
color: #0081FF !important;
cursor: pointer;
}
}
}
.list-addree{
width: auto;
background: #F3F4F5;
display: inline-flex;
margin-top: 7px;
.list-content-text{
margin-top: 0px;
span{
line-height: 30px!important;
}
}
img{
width: 14px;
margin: 0 8px;
}
}
}
.bottomlist-list:hover{
background: #F6F9FC;
cursor: pointer;
}
.pagination{
padding: 14px ;
.el-pagination{
float: right;
}
}
}
</style>
\ No newline at end of file
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
</div> </div>
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<p>共有{{total}}条</p> <p>共有{{total}}条</p>
...@@ -455,7 +456,6 @@ ...@@ -455,7 +456,6 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.content{ .content{
padding: 0px 16px; padding: 0px 16px;
border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px;
background: #FFFFFF; background: #FFFFFF;
.content_item{ .content_item{
...@@ -563,10 +563,11 @@ ...@@ -563,10 +563,11 @@
} }
} }
.bottomlist-content{ .bottomlist-content{
padding: 14px;
padding-bottom: 0px; padding-bottom: 0px;
} }
.bottomlist-list{ .bottomlist-list{
padding: 14px;
font-size: 14px; font-size: 14px;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
padding-bottom: 14px; padding-bottom: 14px;
......
...@@ -14,28 +14,30 @@ ...@@ -14,28 +14,30 @@
</div> </div>
</div> </div>
<debtProject v-if="personnelHerf=='debtProject'" /> <debtProject v-if="personnelHerf=='debtProject'" />
<Land v-if="personnelHerf=='Land'" />
</div> </div>
</template> </template>
<script> <script>
import debtProject from "./components/debtProject/index.vue"; import debtProject from "./components/debtProject/index.vue";
import Land from "./components/Land/index.vue";
import "@/assets/styles/public.css"; import "@/assets/styles/public.css";
export default { export default {
name: 'radar', name: 'radar',
components: { debtProject }, components: { debtProject,Land },
data() { data() {
return { return {
// tablist // tablist
personnelList: [{ personnelList: [{
key: 'debtProject', key: 'debtProject',
status: true, status: false,
value: '企业专项债项目', value: '企业专项债项目',
}, },
{ {
key: 'Builder', key: 'Land',
status: false, status: true,
value: '土地交易', value: '土地交易',
}, },
...@@ -71,7 +73,7 @@ ...@@ -71,7 +73,7 @@
}, },
], ],
personnelHerf:'debtProject' personnelHerf:'Land'
} }
}, },
created() {}, created() {},
...@@ -81,7 +83,7 @@ ...@@ -81,7 +83,7 @@
this.personnelList[i].status = false; this.personnelList[i].status = false;
} }
this.personnelList[index].status = true; this.personnelList[index].status = true;
this.personnelHerf=this.personnelList[index].key;
}, },
} }
} }
......
package com.dsk.system.domain.customer.vo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 客户跟进记录列表
*
* @author makejava
* @since 2023-05-18 15:07:59
*/
@Data
public class CustomerFollowRecordListVo implements Serializable {
private static final long serialVersionUID = -17639570424991398L;
private Long id;
/**
* 客户id
*/
private String customerId;
/**
* 客户名称
*/
private String companyName;
/**
* 用户id
*/
private Long userId;
/**
* 用户昵称
*/
private String nickName;
/**
* 拜访方式(visit_mode_type)
*/
private String visitMode;
/**
* 下次拜访时间
*/
private Date nextVisitTime;
/**
* 拜访对象姓名
*/
private String name;
/**
* 拜访对象职务
*/
private String position;
/**
* 拜访内容
*/
private String content;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
}
...@@ -2,6 +2,7 @@ package com.dsk.system.dskService; ...@@ -2,6 +2,7 @@ package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -20,110 +21,125 @@ public class EnterpriseProjectService { ...@@ -20,110 +21,125 @@ public class EnterpriseProjectService {
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
public TableDataInfo landTransactionPage(Map<String, Object> body) throws Exception { public TableDataInfo landTransactionPage(EnterpriseProjectLandTransactionPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landTransactionPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/landTransactionPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R landUse(Map<String, Object> body) throws Exception { public R landUse(EnterpriseProjectLandUseBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landUse", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/landUse", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R landDetail(Map<String, Object> body) throws Exception { public R landDetail(EnterpriseProjectLandDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/landDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo approvalProjectPage(Map<String, Object> body) throws Exception { public TableDataInfo approvalProjectPage(EnterpriseProjectApprovalProjectPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R approvalInfoDetail(Map<String, Object> body) throws Exception { public R approvalInfoDetail(EnterpriseProjectApprovalInfoDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalInfoDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalInfoDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo approvalExaminePage(Map<String, Object> body) throws Exception { public TableDataInfo approvalExaminePage(EnterpriseProjectApprovalExaminePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalExaminePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalExaminePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo approvalMarketingPage(Map<String, Object> body) throws Exception { public TableDataInfo approvalMarketingPage(EnterpriseProjectApprovalMarketingPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalMarketingPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/approvalMarketingPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo specialDebtPage(Map<String, Object> body) throws Exception { public TableDataInfo specialDebtProjectPage(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/specialDebtProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R specialDebtDetail(Map<String, Object> body) throws Exception { public R specialDebtProjectDetail(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/specialDebtProjectDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo bidNoticePage(Map<String, Object> body) throws Exception { public TableDataInfo bidNoticePage(EnterpriseProjectBidNoticePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R bidNoticeTenderStage(Map<String, Object> body) throws Exception { public R bidNoticeTenderStage(EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeProvince(Map<String, Object> body) throws Exception { public R bidNoticeArea(EnterpriseProjectBidNoticeAreaBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProvince", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeArea", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R bidNoticeDetail(Map<String, Object> body) throws Exception { public R bidNoticeDetail(EnterpriseProjectBidNoticeDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo bidPlanPage(Map<String, Object> body) throws Exception { public TableDataInfo bidPlanPage(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidPlanPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidPlanPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R bidPlanDetail(Map<String, Object> body) throws Exception { public R bidPlanDetail(Object body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidPlanDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidPlanDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo bidNoticeProPage(Map<String, Object> body) throws Exception { public TableDataInfo bidNoticeProPage(EnterpriseProjectBidNoticeProPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public R bidNoticeProProjectType(EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProProjectType", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R bidNoticeProProjectPurposes(EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProProjectPurposes", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R bidNoticeProAssessmentWay(EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProAssessmentWay", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R bidNoticeProDetail(Map<String, Object> body) throws Exception { public R bidNoticeProDetail(EnterpriseProjectBidNoticeProDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProDetail", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/bidNoticeProDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo creditXzxkPage(Map<String, Object> body) throws Exception { public TableDataInfo creditXzxkPage(EnterpriseProjectCreditXzxkPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/creditXzxkPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseProject/creditXzxkPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
} }
...@@ -57,17 +57,17 @@ public class EnterpriseService { ...@@ -57,17 +57,17 @@ public class EnterpriseService {
//todo 新数据,待入库 //todo 新数据,待入库
public TableDataInfo partners(EnterprisePartnersBody body) throws Exception { public TableDataInfo partners(EnterprisePartnersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/partners", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/partners", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo investment(EnterpriseInvestmentBody body) throws Exception { public TableDataInfo investment(EnterpriseInvestmentBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo affiliates(EnterpriseAffiliatesBody body) throws Exception { public TableDataInfo affiliates(EnterpriseAffiliatesBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/affiliates", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/affiliates", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
...@@ -105,22 +105,22 @@ public class EnterpriseService { ...@@ -105,22 +105,22 @@ public class EnterpriseService {
} }
public R icInfo(EnterpriseIcInfoBody body) throws Exception { public R icInfo(EnterpriseIcInfoBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/icInfo", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/icInfo", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public TableDataInfo changeInfo(EnterpriseChangeInfoBody body) throws Exception { public TableDataInfo changeInfo(EnterpriseChangeInfoBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/changeInfo", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/changeInfo", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo keymembers(EnterpriseKeymembersBody body) throws Exception { public TableDataInfo keymembers(EnterpriseKeymembersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/keymembers", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/keymembers", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo bestStockPage(EnterpriseKeymembersBody body) throws Exception { public TableDataInfo bestStockPage(EnterpriseKeymembersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
} }
...@@ -3,6 +3,7 @@ package com.dsk.system.mapper; ...@@ -3,6 +3,7 @@ package com.dsk.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.system.domain.customer.CustomerFollowRecord; import com.dsk.system.domain.customer.CustomerFollowRecord;
import com.dsk.system.domain.customer.dto.CustomerFollowRecordSearchDto; import com.dsk.system.domain.customer.dto.CustomerFollowRecordSearchDto;
import com.dsk.system.domain.customer.vo.CustomerFollowRecordListVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -18,7 +19,7 @@ import java.util.List; ...@@ -18,7 +19,7 @@ import java.util.List;
@Mapper @Mapper
public interface CustomerFollowRecordMapper extends BaseMapper<CustomerFollowRecord> { public interface CustomerFollowRecordMapper extends BaseMapper<CustomerFollowRecord> {
List<CustomerFollowRecord> selectList(@Param("dto") CustomerFollowRecordSearchDto dto); List<CustomerFollowRecordListVo> selectAuthList(@Param("dto") CustomerFollowRecordSearchDto dto);
} }
...@@ -19,7 +19,7 @@ public interface EconomicService { ...@@ -19,7 +19,7 @@ public interface EconomicService {
*@Author: Dgm *@Author: Dgm
*@date: 2023/5/18 10:25 *@date: 2023/5/18 10:25
*/ */
AjaxResult nationalList(OpRegionalEconomicDataV1Dto dto); AjaxResult nationalPage(OpRegionalEconomicDataV1Dto dto);
/*** /***
*@Description: 全国经济大全详情 *@Description: 全国经济大全详情
......
...@@ -3,6 +3,7 @@ package com.dsk.system.service; ...@@ -3,6 +3,7 @@ package com.dsk.system.service;
import com.dsk.system.domain.customer.CustomerFollowRecord; import com.dsk.system.domain.customer.CustomerFollowRecord;
import com.dsk.system.domain.customer.dto.CustomerFollowRecordSearchDto; import com.dsk.system.domain.customer.dto.CustomerFollowRecordSearchDto;
import com.dsk.system.domain.customer.vo.CustomerFollowRecordListVo;
import java.util.List; import java.util.List;
...@@ -14,8 +15,10 @@ import java.util.List; ...@@ -14,8 +15,10 @@ import java.util.List;
*/ */
public interface ICustomerFollowRecordService { public interface ICustomerFollowRecordService {
List<CustomerFollowRecord> selectList(CustomerFollowRecordSearchDto dto); List<CustomerFollowRecordListVo> selectList(CustomerFollowRecordSearchDto dto);
boolean add(CustomerFollowRecord followRecord); boolean add(CustomerFollowRecord followRecord);
boolean del(Long id);
} }
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.SpecialBondInformationPageDto;
import com.dsk.common.dtos.SpecialPurposeBondsDto; import com.dsk.common.dtos.SpecialPurposeBondsDto;
import com.dsk.common.dtos.SpecialPurposeBondsPageDto;
/** /**
* @ClassName EconomicService * @ClassName EconomicService
...@@ -19,7 +21,7 @@ public interface SpecialPurposeBondsService { ...@@ -19,7 +21,7 @@ public interface SpecialPurposeBondsService {
*@Author: Dgm *@Author: Dgm
*@date: 2023/5/18 10:25 *@date: 2023/5/18 10:25
*/ */
AjaxResult page(SpecialPurposeBondsDto dto); AjaxResult page(SpecialPurposeBondsPageDto dto);
/*** /***
*@Description: 专项债项目详情 *@Description: 专项债项目详情
...@@ -39,4 +41,13 @@ public interface SpecialPurposeBondsService { ...@@ -39,4 +41,13 @@ public interface SpecialPurposeBondsService {
*/ */
AjaxResult bondStatistics(SpecialPurposeBondsDto dto); AjaxResult bondStatistics(SpecialPurposeBondsDto dto);
/***
*@Description: 专项债分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
AjaxResult bondPage(SpecialBondInformationPageDto pageDto);
} }
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
/** /**
* @ClassName EconomicService * @ClassName EconomicService
...@@ -18,7 +19,7 @@ public interface UrbanInvestmentPlatformService { ...@@ -18,7 +19,7 @@ public interface UrbanInvestmentPlatformService {
*@Author: Dgm *@Author: Dgm
*@date: 2023/5/18 10:25 *@date: 2023/5/18 10:25
*/ */
AjaxResult page(); AjaxResult page(UrbanInvestmentPlatformDto dto);
/*** /***
*@Description: 城投平台详情 *@Description: 城投平台详情
...@@ -28,4 +29,13 @@ public interface UrbanInvestmentPlatformService { ...@@ -28,4 +29,13 @@ public interface UrbanInvestmentPlatformService {
*@date: 2023/5/18 10:25 *@date: 2023/5/18 10:25
*/ */
AjaxResult details(String id); AjaxResult details(String id);
/***
*@Description: 城投平台统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
AjaxResult statistics(UrbanInvestmentPlatformDto pageDto);
} }
...@@ -7,6 +7,7 @@ import com.dsk.common.annotation.DataScope; ...@@ -7,6 +7,7 @@ import com.dsk.common.annotation.DataScope;
import com.dsk.common.utils.SecurityUtils; import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.domain.customer.CustomerFollowRecord; import com.dsk.system.domain.customer.CustomerFollowRecord;
import com.dsk.system.domain.customer.dto.CustomerFollowRecordSearchDto; import com.dsk.system.domain.customer.dto.CustomerFollowRecordSearchDto;
import com.dsk.system.domain.customer.vo.CustomerFollowRecordListVo;
import com.dsk.system.mapper.CustomerFollowRecordMapper; import com.dsk.system.mapper.CustomerFollowRecordMapper;
import com.dsk.system.service.ICustomerFollowRecordService; import com.dsk.system.service.ICustomerFollowRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -30,18 +31,13 @@ public class CustomerFollowRecordServiceImpl implements ICustomerFollowRecordSer ...@@ -30,18 +31,13 @@ public class CustomerFollowRecordServiceImpl implements ICustomerFollowRecordSer
private CustomerFollowRecordMapper baseMapper; private CustomerFollowRecordMapper baseMapper;
@Override @Override
// @DataScope(deptAlias = "d",userAlias = "u") @DataScope(deptAlias = "d",userAlias = "u")
public List<CustomerFollowRecord> selectList(CustomerFollowRecordSearchDto dto) { public List<CustomerFollowRecordListVo> selectList(CustomerFollowRecordSearchDto dto) {
LambdaQueryWrapper<CustomerFollowRecord> wrapper = Wrappers.lambdaQuery(); if (ObjectUtils.isEmpty(dto.getCustomerId())) {
if (!ObjectUtils.isEmpty(dto.getCustomerId())) { dto.setUserId(SecurityUtils.getUserId());
wrapper.eq(CustomerFollowRecord::getCustomerId, dto.getCustomerId());
} }
wrapper.eq(CustomerFollowRecord::getUserId, SecurityUtils.getUserId()) // log.debug("dto.params.dataScope{}",dto.getParams().get("dataScope"));
.orderByDesc(CustomerFollowRecord::getCreateTime); return baseMapper.selectAuthList(dto);
return baseMapper.selectList(wrapper);
// dto.setUserId(SecurityUtils.getUserId());
// return baseMapper.selectList(dto);
} }
@Override @Override
...@@ -51,4 +47,9 @@ public class CustomerFollowRecordServiceImpl implements ICustomerFollowRecordSer ...@@ -51,4 +47,9 @@ public class CustomerFollowRecordServiceImpl implements ICustomerFollowRecordSer
followRecord.setUserId(SecurityUtils.getUserId()); followRecord.setUserId(SecurityUtils.getUserId());
return baseMapper.insert(followRecord) != 0; return baseMapper.insert(followRecord) != 0;
} }
@Override
public boolean del(Long id) {
return baseMapper.deleteById(id) != 0;
}
} }
...@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto; import com.dsk.common.dtos.OpRegionalEconomicDataV1Dto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.mapper.OpRegionalEconomicDataV1Mapper;
import com.dsk.system.service.EconomicService; import com.dsk.system.service.EconomicService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -25,60 +24,9 @@ public class EconomicServiceImpl implements EconomicService { ...@@ -25,60 +24,9 @@ public class EconomicServiceImpl implements EconomicService {
@Autowired @Autowired
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
@Autowired
private OpRegionalEconomicDataV1Mapper mapper;
@Override @Override
public AjaxResult nationalList(OpRegionalEconomicDataV1Dto dto) { public AjaxResult nationalPage(OpRegionalEconomicDataV1Dto dto) {
// SELECT Map<String, Object> map = dskOpenApiUtil.requestBody("/api/economic/national/nationalPage", BeanUtil.beanToMap(dto, false, false));
// id,
// `year`,
// province,
// city,
// area,
// gdp,
// gdp_add_value,
// gdp_growth,
// gdp_per_capita,
// pi_add_value,
// si_add_value,
// ti_add_value,
// population,
// population_growth_rate,
// population_add_value,
// industry_add_value,
// industry_total_value,
// fixed_investment,
// real_estate_investment,
// exim_total_value,
// trscg,
// urban_pcdi,
// gbr,
// gbr_growth,
// tax_income,
// transfer_income,
// superior_subsidy_income,
// gbe,
// gov_fund_income,
// land_transfer_income,
// gov_fund_expenditure,
// soecoi,
// soecoe,
// gov_debt_balance,
// general_debt_balance,
// special_debt_balance,
// gov_debt_limit,
// uip_interest_bearing_debt,
// fiscal_self_sufficiency_rate,
// gov_debt_to_gdp_rate,
// gov_debt_to_gdp_rate_wild,
// gov_debt_rate,
// gov_debt_rate_wild,
// is_deal,
// is_statua
//FROM
// `op_regional_economic_data_v1`;
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
...@@ -86,25 +34,25 @@ public class EconomicServiceImpl implements EconomicService { ...@@ -86,25 +34,25 @@ public class EconomicServiceImpl implements EconomicService {
public AjaxResult details(Integer id) { public AjaxResult details(Integer id) {
Map<String, Object> bodyMap = new HashMap<>(1); Map<String, Object> bodyMap = new HashMap<>(1);
bodyMap.put("id", id); bodyMap.put("id", id);
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", bodyMap); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/economic/details", bodyMap);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override @Override
public AjaxResult statisticsRegional(OpRegionalEconomicDataV1Dto dto) { public AjaxResult statisticsRegional(OpRegionalEconomicDataV1Dto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/economic/statistics/regional", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override @Override
public AjaxResult regionalList(OpRegionalEconomicDataV1Dto dto) { public AjaxResult regionalList(OpRegionalEconomicDataV1Dto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/economic/regional/list", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override @Override
public AjaxResult regionalComparison(OpRegionalEconomicDataV1Dto dto) { public AjaxResult regionalComparison(OpRegionalEconomicDataV1Dto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/economic/xx", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
......
...@@ -2,9 +2,10 @@ package com.dsk.system.service.impl; ...@@ -2,9 +2,10 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.SpecialBondInformationPageDto;
import com.dsk.common.dtos.SpecialPurposeBondsDto; import com.dsk.common.dtos.SpecialPurposeBondsDto;
import com.dsk.common.dtos.SpecialPurposeBondsPageDto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.EconomicService;
import com.dsk.system.service.SpecialPurposeBondsService; import com.dsk.system.service.SpecialPurposeBondsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -26,8 +27,8 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic ...@@ -26,8 +27,8 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
@Override @Override
public AjaxResult page(SpecialPurposeBondsDto dto) { public AjaxResult page(SpecialPurposeBondsPageDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/specialPurposeBonds/projects/page", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
...@@ -35,13 +36,19 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic ...@@ -35,13 +36,19 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic
public AjaxResult details(String id) { public AjaxResult details(String id) {
Map<String, Object> bodyMap = new HashMap<>(1); Map<String, Object> bodyMap = new HashMap<>(1);
bodyMap.put("id", id); bodyMap.put("id", id);
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", bodyMap); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/specialPurposeBonds/details", bodyMap);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override @Override
public AjaxResult bondStatistics(SpecialPurposeBondsDto dto) { public AjaxResult bondStatistics(SpecialPurposeBondsDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/specialPurposeBonds/bond/statistics", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bondPage(SpecialBondInformationPageDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/specialPurposeBonds/bond/page", BeanUtil.beanToMap(pageDto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
} }
...@@ -2,12 +2,13 @@ package com.dsk.system.service.impl; ...@@ -2,12 +2,13 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.EconomicService;
import com.dsk.system.service.UrbanInvestmentPlatformService; import com.dsk.system.service.UrbanInvestmentPlatformService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
...@@ -24,14 +25,22 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -24,14 +25,22 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
@Override @Override
public AjaxResult page() { public AjaxResult page(UrbanInvestmentPlatformDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", null); Map<String, Object> map = dskOpenApiUtil.requestBody("/api/urbanInvestment/page", BeanUtil.beanToMap(pageDto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override @Override
public AjaxResult details(String id) { public AjaxResult details(String id) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/xx", null); Map<String, Object> bodyMap = new HashMap<>(1);
bodyMap.put("id", id);
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/urbanInvestment/details", bodyMap);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult statistics(UrbanInvestmentPlatformDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/urbanInvestment/statistics", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
} }
...@@ -7,16 +7,20 @@ ...@@ -7,16 +7,20 @@
cfr.content, cfr.create_time cfr.content, cfr.create_time
</sql> </sql>
<select id="selectList" resultType="com.dsk.system.domain.customer.CustomerFollowRecord"> <select id="selectAuthList" resultType="com.dsk.system.domain.customer.vo.CustomerFollowRecordListVo">
select select
ct.company_name, u.nick_name,
<include refid="Base_Bean"></include> <include refid="Base_Bean"></include>
from customer_follow_record cfr from customer_follow_record cfr
join customer ct on ct.customer_id = cfr.customer_id
join sys_user u on u.user_id = cfr.user_id join sys_user u on u.user_id = cfr.user_id
join sys_dept d on d.dept_id = u.dept_id left join sys_dept d on d.dept_id = u.dept_id
where cfr.user_id = #{dto.userId} <where>
<if test="dto.userId != null "> and cfr.user_id = #{dto.userId} </if>
<if test="dto.customerId != null and dto.customerId != '' "> and cfr.customer_id = #{dto.customerId} </if> <if test="dto.customerId != null and dto.customerId != '' "> and cfr.customer_id = #{dto.customerId} </if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} <if test="dto.params.dataScope != null and dto.params.dataScope != '' "> ${dto.params.dataScope} </if>
</where>
order by cfr.create_time desc order by cfr.create_time desc
</select> </select>
......
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