Commit 6e7ffdbe authored by Administrator's avatar Administrator

Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司

parents 0c671c5b 93895dbd
......@@ -166,6 +166,7 @@ tenant:
- sys_push_record
- d_customer
- d_project
- d_project_type
- d_subcontract
- advisory_body
- advisory_body_project
......@@ -184,7 +185,6 @@ tenant:
- d_customer_tax_certificate
- f_supplier_limited
# MyBatisPlus配置
# https://baomidou.com/config/
mybatis-plus:
......
package com.dsk.cscec.constant;
/**
* 搜索常量信息
* 咨询机构管理搜索常量信息
*
* @author sxk
* @date 2023.12.11
* @time 14:22
*/
public interface QueryConstants {
public interface AdvisoryBodyManageQueryConstants {
/**
* 筛选数据一级公司名称
*/
......
package com.dsk.cscec.constant;
/**
* 涉诉限用禁用管理搜索常量信息
*
* @author sxk
* @date 2023.12.11
* @time 14:22
*/
public interface SupplierLimitedManageQueryConstants {
/**
* 涉诉限用禁用数据区分字段
*/
String LIMITED_DATA_TYPE = "限用禁用";
/**
* 解除限用禁用数据区分字段
*/
String UNLIMITED_DATA_TYPE = "解除限禁";
}
......@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 咨询机构管理控制层
......@@ -30,7 +30,7 @@ import javax.validation.constraints.NotNull;
@RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController {
@Resource
private IDProjectService baseService;
private IDProjectService projectService;
@Resource
private AdvisoryBodyService advisoryBodyService;
@Resource
......@@ -43,7 +43,7 @@ public class AdvisoryBodyManageController extends BaseController {
*/
@GetMapping("/getProjectList")
public TableDataInfo<ProjectSearchVo> getProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery) {
return baseService.queryProjectList(projectSearchBo, pageQuery);
return projectService.queryProjectList(projectSearchBo, pageQuery);
}
/**
......@@ -54,12 +54,20 @@ public class AdvisoryBodyManageController extends BaseController {
return advisoryBodyService.queryAdvisoryBodyList(advisoryBodySearchBo, pageQuery);
}
/**
* 获取项目承接类型下拉列表
*/
@GetMapping("/getIsInvestProject")
public R<List<String>> getIsInvestProject() {
return R.ok(projectService.queryIsInvestProject());
}
/**
* 获取合作项目明细
*/
@GetMapping("/getCooperateProjectDetailList")
public TableDataInfo<CooperateProjectDetailSearchVo> getCooperateProjectDetailList(@Validated CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) {
return baseService.queryCooperateProjectDetailList(cooperateProjectDetailSearchBo, pageQuery);
return projectService.queryCooperateProjectDetailList(cooperateProjectDetailSearchBo, pageQuery);
}
/**
......@@ -67,7 +75,7 @@ public class AdvisoryBodyManageController extends BaseController {
*/
@GetMapping("/getProjectDetail")
public R<ProjectDetailVo> getProjectDetail(@Validated ProjectDetailBo projectDetailBo) {
return R.ok(baseService.queryProjectDetail(projectDetailBo));
return R.ok(projectService.queryProjectDetail(projectDetailBo));
}
/**
......@@ -79,19 +87,22 @@ public class AdvisoryBodyManageController extends BaseController {
}
/**
* 新增咨询机构
* 编辑咨询机构结算信息
* 包含:
* 新增咨询机构(advisory_body表)
* 新增/更新咨询机构与项目关联信息(advisory_body_project表)
*/
@PostMapping("/addAdvisoryBody")
public R<Void> addAdvisoryBody(@Validated AddAdvisoryBodyBo addAdvisoryBodyBo) {
return toAjax(advisoryBodyService.addAdvisoryBody(addAdvisoryBodyBo));
@PostMapping("/editAdvisoryBody")
public R<Void> editAdvisoryBody(@Validated EditAdvisoryBodyInfoBo editInfoBo) {
return toAjax(advisoryBodyService.editAdvisoryBody(editInfoBo));
}
/**
* 获取咨询机构自定义表单
*/
@GetMapping("/getAdvisoryBodyCustomForm/{projectKey}")
public R<AdvisoryBodyCustomForm> getAdvisoryBodyCustomForm(@Validated @NotNull(message = "项目主键不能为空") @PathVariable Long projectKey) {
return R.ok(advisoryBodyCustomFormService.getById(projectKey));
@GetMapping("/getAdvisoryBodyCustomForm")
public R<List<AdvisoryBodyCustomForm>> getAdvisoryBodyCustomForm() {
return R.ok(advisoryBodyCustomFormService.list());
}
/**
......@@ -108,7 +119,7 @@ public class AdvisoryBodyManageController extends BaseController {
*/
@PutMapping("/updateAdvisoryBodyCustomForm")
@Transactional(rollbackFor = Exception.class)
public R<Void> updateAdvisoryBodyCustomForm(@Validated AdvisoryBodyCustomForm advisoryBodyCustomForm) {
return toAjax(advisoryBodyCustomFormService.updateById(advisoryBodyCustomForm));
public R<Void> updateAdvisoryBodyCustomForm(@Validated EditAdvisoryBodyCustomFormBo editBo) {
return toAjax(advisoryBodyCustomFormService.updateById(editBo));
}
}
\ No newline at end of file
package com.dsk.cscec.controller;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.DProjectType;
import com.dsk.cscec.domain.TreeSelect;
import com.dsk.cscec.service.DProjectTypeService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 维表:工程类型,源于IPM(DProjectType)表控制层
......@@ -13,7 +18,7 @@ import javax.annotation.Resource;
* @since 2024-01-05 11:45:43
*/
@RestController
@RequestMapping("dProjectType")
@RequestMapping("/dProjectType")
public class DProjectTypeController {
/**
* 服务对象
......@@ -21,6 +26,24 @@ public class DProjectTypeController {
@Resource
private DProjectTypeService dProjectTypeService;
/**
* 获取所有工程类型
* @param
* @return
*/
@GetMapping("/getAll")
public R<List<TreeSelect>> selectList() {
return R.ok(dProjectTypeService.getList(new DProjectType()));
}
/**
* 根据工程类型id获取子级
* @param projectTypeId
* @return
*/
@GetMapping("/getChildren")
public R<List<DProjectType>> getChildren(String projectTypeId) {
return R.ok(dProjectTypeService.getChildren(projectTypeId));
}
}
package com.dsk.cscec.controller;
import com.dsk.cscec.service.FSupplierLimitedService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 供应商限制信息表(FSupplierLimited)表控制层
*
* @author sxk
* @since 2024-01-05 11:34:19
*/
@RestController
@RequestMapping("fSupplierLimited")
public class FSupplierLimitedController {
/**
* 服务对象
*/
@Resource
private FSupplierLimitedService fSupplierLimitedService;
}
package com.dsk.cscec.controller;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.bo.SupplierLimitedSearchBo;
import com.dsk.cscec.domain.bo.SupplierUnlimitedSearchBo;
import com.dsk.cscec.domain.vo.SupplierLimitedSearchVo;
import com.dsk.cscec.domain.vo.SupplierUnlimitedSearchVo;
import com.dsk.cscec.service.FSupplierLimitedService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 供应商限制信息表(FSupplierLimited)表控制层
*
* @author sxk
* @since 2024-01-05 11:34:19
*/
@RestController
@RequestMapping("fSupplierLimited")
public class SupplierLimitedController {
/**
* 服务对象
*/
@Resource
private FSupplierLimitedService supplierLimitedService;
/**
* 获取涉诉限用禁用名单
*/
@GetMapping("/getSupplierLimitedList")
public TableDataInfo<SupplierLimitedSearchVo> getSupplierLimitedList(SupplierLimitedSearchBo searchBo, PageQuery pageQuery) {
return supplierLimitedService.querySupplierLimitedList(searchBo, pageQuery);
}
/**
* 获取解除限用禁用名单
*/
@GetMapping("/getSupplierUnlimitedList")
public TableDataInfo<SupplierUnlimitedSearchVo> getSupplierUnlimitedList(SupplierUnlimitedSearchBo searchBo, PageQuery pageQuery) {
return supplierLimitedService.querySupplierUnlimitedList(searchBo, pageQuery);
}
}
......@@ -6,7 +6,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
......@@ -22,14 +21,8 @@ public class AdvisoryBodyCustomForm extends BaseEntity implements Serializable {
/**
* 项目主键
*/
@TableId(value = "project_key")
@NotNull(message = "项目主键不能为空")
private Long projectKey;
/**
* 咨询机构ID
*/
@NotNull(message = "咨询机构ID不能为空")
private Long advisoryBodyId;
@TableId(value = "ab_custom_form_id")
private Long abCustomFormId;
/**
* json数据
*/
......
package com.dsk.cscec.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.io.Serializable;
import java.util.List;
/**
* 维表:工程类型,源于IPM(DProjectType)实体类
......@@ -62,4 +65,7 @@ public class DProjectType implements Serializable {
* 数据加载时间
*/
private Date loadTime;
@TableField(exist = false)
private List<DProjectType> children = new ArrayList<DProjectType>();
}
......@@ -43,4 +43,10 @@ public class TreeSelect implements Serializable {
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
public TreeSelect(DProjectType type) {
this.id = type.getProjectTypeId();
this.label = type.getProjectTypeName();
this.children = type.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
}
......@@ -54,8 +54,14 @@ public class AdvisoryBodyBo extends BaseEntity {
/**
* 项目承接类型
*/
private String isinvestproject;
/**
* 工程基础大类
*/
private String projectType1;
/**
* 工程类别明细
*/
private String projectType2;
}
package com.dsk.cscec.domain.bo;
import com.dsk.cscec.domain.AdvisoryBodyCustomForm;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author sxk
* @date 2024.01.09
* @time 11:24
*/
@Data
public class EditAdvisoryBodyCustomFormBo extends AdvisoryBodyCustomForm {
/**
* 项目主键
*/
@NotNull(message = "自定义表单ID不能为空")
private Long abCustomFormId;
}
......@@ -13,7 +13,7 @@ import java.util.Date;
* @time 09:54
*/
@Data
public class AddAdvisoryBodyBo {
public class EditAdvisoryBodyInfoBo {
/**
* 是否为新资讯机构
*/
......@@ -41,6 +41,7 @@ public class AddAdvisoryBodyBo {
private String businessScope;
/**
* 合作时间
* PRD上要求以合作时间作为排序字段,但PM未给出新增合作时间的位置,暂用创建时间作为排序字段
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date cooperatorDate;
......
......@@ -19,6 +19,5 @@ public class ProjectDetailBo {
/**
* 咨询机构Cid
*/
@NotNull(message = "咨询机构Cid不能为空")
private Long advisoryBodyCid;
}
package com.dsk.cscec.domain.bo;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author sxk
* @date 2024.01.05
* @time 13:51
*/
@Data
public class SupplierLimitedSearchBo {
/**
* 供应商名称
*/
private String supplierName;
/**
* 是否为局名义被诉案件(是/否)
*/
private String isGroupCase;
/**
* 限用/禁用开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date limitedStartTime;
/**
* 限用/禁用结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date limitedEndTime;
}
package com.dsk.cscec.domain.bo;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author sxk
* @date 2024.01.08
* @time 09:07
*/
@Data
public class SupplierUnlimitedSearchBo {
/**
* 解除限用开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date unlimitedStartTime;
/**
* 解除限用结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date unlimitedEndTime;
/**
* 申请单位
*/
private String applyUnit;
}
......@@ -16,4 +16,12 @@ public class AdvisoryBodyExistVo extends AdvisoryBody {
* 是否为新资讯机构
*/
private Boolean isNewAdvisoryBody;
/**
* 法定代表人
*/
private String corporatePerson;
/**
* 注册地址
*/
private String regAddress;
}
package com.dsk.cscec.domain.vo;
import lombok.Data;
import java.util.Date;
/**
* @author sxk
* @date 2024.01.05
* @time 14:14
*/
@Data
public class SupplierLimitedSearchVo {
/**
* 主键id
*/
private String fid;
/**
* 单据编号
*/
private String frecordno;
/**
* 供应商Cid
*/
private Integer supplierCid;
/**
* 供应商名称(分供方名称)
*/
private String fsuppliername;
/**
* 供应商统一社会信用代码
*/
private String funifiedsocialcreditcode;
/**
* 限用情形
*/
private String flimitsituation;
/**
* 禁用情形
*/
private String fdisablesituation;
/**
* 子企业(限用推送单位)
*/
private String fjobunitname;
/**
* 限用/禁用状态
*/
private String fstate;
/**
* 时间戳(限用/禁用开始日期)
*/
private Date fts;
}
package com.dsk.cscec.domain.vo;
import lombok.Data;
import java.util.Date;
/**
* @author sxk
* @date 2024.01.05
* @time 17:47
*/
@Data
public class SupplierUnlimitedSearchVo {
/**
* 主键id
*/
private String fid;
/**
* 单据编号
*/
private String frecordno;
/**
* 供应商Cid
*/
private Integer supplierCid;
/**
* 供应商名称(分供方名称)
*/
private String fsuppliername;
/**
* 供应商统一社会信用代码
*/
private String funifiedsocialcreditcode;
/**
* 解除限用理由
*/
private String frelievereason;
/**
* 子企业(申请单位)
*/
private String fjobunitname;
/**
* 解除前状态(原限用/禁用)
*/
private String fbeforestate;
/**
* 限用日期
*/
private Date flimitdate;
/**
* 时间戳(解除限用/禁用开始日期)
*/
private Date fts;
}
......@@ -9,6 +9,8 @@ import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 项目维表(DProject)表数据库访问层
*
......@@ -21,9 +23,13 @@ public interface DProjectMapper extends BaseMapper<DProject> {
*/
Page<ProjectSearchVo> selectPageProjectList(@Param("page") Page<ProjectSearchVo> page, @Param(Constants.WRAPPER) Wrapper<DProject> queryWrapper);
/**
* 获取项目承接类型下拉列表
*/
List<String> queryIsInvestProject();
/**
* 获取合作项目明细
*/
Page<CooperateProjectDetailSearchVo> selectPageCooperateProjectDetailList(@Param("page") Page<CooperateProjectDetailSearchVo> page, @Param(Constants.WRAPPER) Wrapper<DProject> Wrapper);
}
}
\ No newline at end of file
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.cscec.domain.FSupplierLimited;
import com.dsk.cscec.domain.vo.SupplierLimitedSearchVo;
import com.dsk.cscec.domain.vo.SupplierUnlimitedSearchVo;
import org.apache.ibatis.annotations.Param;
/**
* 供应商限制信息表(FSupplierLimited)表数据库访问层
......@@ -10,7 +17,14 @@ import com.dsk.cscec.domain.FSupplierLimited;
* @since 2024-01-05 11:34:19
*/
public interface FSupplierLimitedMapper extends BaseMapper<FSupplierLimited> {
/**
* 获取涉诉限用禁用名单
*/
Page<SupplierLimitedSearchVo> selectPageSupplierLimitedList(@Param("page") Page<Object> build, @Param(Constants.WRAPPER) Wrapper<FSupplierLimited> wrapper);
/**
* 获取解除限用禁用名单
*/
Page<SupplierUnlimitedSearchVo> selectPageSupplierUnlimitedList(@Param("page") Page<Object> build, @Param(Constants.WRAPPER) QueryWrapper<FSupplierLimited> wrapper);
}
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AddAdvisoryBodyBo;
import com.dsk.cscec.domain.bo.EditAdvisoryBodyInfoBo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
......@@ -34,12 +34,15 @@ public interface AdvisoryBodyService extends IService<AdvisoryBody> {
AdvisoryBodyExistVo checkAdvisoryBodyExist(String advisoryBodyName);
/**
* 新增咨询机构
* 编辑咨询机构结算信息
* 包含:
* 新增咨询机构(advisory_body表)
* 新增/更新咨询机构与项目关联信息(advisory_body_project表)
*
* @param addAdvisoryBodyBo 新增信息
* @return 添加结果
* @param editInfoBo 编辑信息
* @return 编辑结果
*/
Integer addAdvisoryBody(AddAdvisoryBodyBo addAdvisoryBodyBo);
Integer editAdvisoryBody(EditAdvisoryBodyInfoBo editInfoBo);
/**
* 每小时更新一次咨询机构经营范围
......
......@@ -2,6 +2,9 @@ package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.DProjectType;
import com.dsk.cscec.domain.TreeSelect;
import java.util.List;
/**
* 维表:工程类型,源于IPM(DProjectType)表服务接口
......@@ -11,5 +14,13 @@ import com.dsk.cscec.domain.DProjectType;
*/
public interface DProjectTypeService extends IService<DProjectType> {
List<TreeSelect> getList(DProjectType type);
/**
* 根据工程类型id获取下一级
*
* @param projectTypeId
* @return
*/
List<DProjectType> getChildren(String projectTypeId);
}
package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.FSupplierLimited;
import com.dsk.cscec.domain.bo.SupplierLimitedSearchBo;
import com.dsk.cscec.domain.bo.SupplierUnlimitedSearchBo;
import com.dsk.cscec.domain.vo.SupplierLimitedSearchVo;
import com.dsk.cscec.domain.vo.SupplierUnlimitedSearchVo;
/**
* 供应商限制信息表(FSupplierLimited)表服务接口
......@@ -10,5 +16,21 @@ import com.dsk.cscec.domain.FSupplierLimited;
* @since 2024-01-05 11:34:23
*/
public interface FSupplierLimitedService extends IService<FSupplierLimited> {
/**
* 获取涉诉限用禁用名单
*
* @param searchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<SupplierLimitedSearchVo> querySupplierLimitedList(SupplierLimitedSearchBo searchBo, PageQuery pageQuery);
/**
* 获取解除限用禁用名单
*
* @param searchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<SupplierUnlimitedSearchVo> querySupplierUnlimitedList(SupplierUnlimitedSearchBo searchBo, PageQuery pageQuery);
}
......@@ -11,6 +11,8 @@ import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import java.util.List;
/**
* 项目维表(DProject)表服务接口
*
......@@ -27,6 +29,13 @@ public interface IDProjectService extends IService<DProject> {
*/
TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery);
/**
* 获取项目承接类型下拉列表
*
* @return 去重后的项目承接类型
*/
List<String> queryIsInvestProject();
/**
* 获取合作项目明细
*
......
......@@ -15,7 +15,7 @@ import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.domain.bo.AddAdvisoryBodyBo;
import com.dsk.cscec.domain.bo.EditAdvisoryBodyInfoBo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
......@@ -140,6 +140,15 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
if (ObjectUtil.isNotNull(advisoryBody)) {
//咨询机构表中有记录,则设置为非新咨询机构
AdvisoryBodyExistVo advisoryBodyExistVo = BeanUtil.toBean(advisoryBody, AdvisoryBodyExistVo.class);
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
infoHeaderBody.setCompanyId(advisoryBodyExistVo.getAdvisoryBodyCid());
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//法人信息
advisoryBodyExistVo.setCorporatePerson(MapUtils.getString(companyData,"corporatePerson"));
//注册地址
advisoryBodyExistVo.setRegAddress(MapUtils.getString(companyData, "addressDetail", ""));
//是否为新资讯机构
advisoryBodyExistVo.setIsNewAdvisoryBody(false);
return advisoryBodyExistVo;
} else {
......@@ -154,9 +163,23 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name", "NotExist"));
if (advisoryBodyName.equals(companyName)) {
AdvisoryBodyExistVo advisoryBodyExistVo = new AdvisoryBodyExistVo();
advisoryBodyExistVo.setAdvisoryBodyCid(Math.toIntExact(MapUtils.getLong(companyData, "jskEid")));
//jskEid就是cid
Long jskEid = MapUtils.getLong(companyData, "jskEid");
advisoryBodyExistVo.setAdvisoryBodyCid(Math.toIntExact(jskEid));
//企业名称
advisoryBodyExistVo.setAdvisoryBodyName(companyName);
//经营范围
advisoryBodyExistVo.setBusinessScope(MapUtils.getString(companyData, "businessScope"));
//法人信息
advisoryBodyExistVo.setCorporatePerson(MapUtils.getString(companyData,"legalPerson"));
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
infoHeaderBody.setCompanyId(Math.toIntExact(jskEid));
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData1 = MapUtils.getMap(companyMap, "data", null);
//注册地址
advisoryBodyExistVo.setRegAddress(MapUtils.getString(companyData1, "addressDetail", ""));
//是否为新资讯机构
advisoryBodyExistVo.setIsNewAdvisoryBody(true);
return advisoryBodyExistVo;
}
......@@ -164,31 +187,64 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
//查不到则抛异常
throw new ServiceException("咨询机构不存在或结果不唯一,请输入完整咨询机构企业名称");
}
throw new ServiceException("咨询机构不存在");
}
return null;
}
/**
* 新增咨询机构
* 编辑咨询机构结算信息
* 包含:
* 新增咨询机构(advisory_body表)
* 新增/更新咨询机构与项目关联信息(advisory_body_project表)
*
* @param addAdvisoryBodyBo 新增信息
* @return 添加结果
* @param editInfoBo 编辑信息
* @return 编辑结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer addAdvisoryBody(AddAdvisoryBodyBo addAdvisoryBodyBo) {
public Integer editAdvisoryBody(EditAdvisoryBodyInfoBo editInfoBo) {
long advisoryBodyId = IdUtil.getSnowflakeNextId();
;
//如果是新增咨询机构,则需要新增记录到咨询机构表
if (addAdvisoryBodyBo.getIsNewAdvisoryBody()) {
AdvisoryBody newAdvisoryBody = BeanUtil.toBean(addAdvisoryBodyBo, AdvisoryBody.class);
//如果是新增咨询机构,则新增记录到咨询机构表
if (editInfoBo.getIsNewAdvisoryBody()) {
AdvisoryBody newAdvisoryBody = BeanUtil.toBean(editInfoBo, AdvisoryBody.class);
newAdvisoryBody.setAdvisoryBodyId(advisoryBodyId);
//考虑到咨询机构经营范围是列表中的一个查询条件,因此需要单独存入表中
//但考虑到经营范围又来自建设库,进而衍生出数据一致性问题,因此在项目中做了定时任务同步数据
//故无需担心数据一致性问题
baseMapper.insert(newAdvisoryBody);
//校验咨询机构与项目关联表中是否有记录,无则新增,有则修改
return checkAdvisoryBodyProjectInfoAndEdit(editInfoBo, advisoryBodyId);
} else {
//如果不是新增咨询机构,则校验咨询机构与项目关联表中是否有记录,无则新增,有则修改
return checkAdvisoryBodyProjectInfoAndEdit(editInfoBo, advisoryBodyId);
}
}
AdvisoryBodyProject advisoryBodyProject = BeanUtil.toBean(addAdvisoryBodyBo, AdvisoryBodyProject.class);
advisoryBodyProject.setAdvisoryBodyId(advisoryBodyId);
return advisoryBodyProjectMapper.insert(advisoryBodyProject);
/**
* 校验咨询机构与项目关联表中是否有记录,无则新增,有则修改
*/
private Integer checkAdvisoryBodyProjectInfoAndEdit(EditAdvisoryBodyInfoBo editInfoBo, Long advisoryBodyId) {
AdvisoryBodyProject advisoryBodyProject = advisoryBodyProjectMapper.selectById(editInfoBo.getProjectKey());
if (ObjectUtil.isNotNull(advisoryBodyProject)) {
//修改咨询机构与项目关联信息
AdvisoryBodyProject updateAdvisoryBodyProject = BeanUtil.toBean(editInfoBo, AdvisoryBodyProject.class);
updateAdvisoryBodyProject.setProjectKey(editInfoBo.getProjectKey());
if (editInfoBo.getIsNewAdvisoryBody()) {
//新增的咨询机构不会咨询机构ID,需要到咨询机构表中查询
AdvisoryBody advisoryBody = baseMapper.selectOne(new LambdaQueryWrapper<AdvisoryBody>()
.eq(AdvisoryBody::getAdvisoryBodyCid, editInfoBo.getAdvisoryBodyCid()));
updateAdvisoryBodyProject.setAdvisoryBodyId(advisoryBody.getAdvisoryBodyId());
}else {
updateAdvisoryBodyProject.setAdvisoryBodyId(advisoryBodyProject.getAdvisoryBodyId());
}
return advisoryBodyProjectMapper.updateById(updateAdvisoryBodyProject);
} else {
//新增咨询机构与项目关联信息
AdvisoryBodyProject addAdvisoryBodyProject = BeanUtil.toBean(editInfoBo, AdvisoryBodyProject.class);
addAdvisoryBodyProject.setAdvisoryBodyId(advisoryBodyId);
return advisoryBodyProjectMapper.insert(addAdvisoryBodyProject);
}
}
/**
......
......@@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.constant.QueryConstants;
import com.dsk.cscec.constant.AdvisoryBodyManageQueryConstants;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerCooperationBo;
......@@ -98,7 +98,7 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
Assert.isTrue(false,"参数不能为空");
}
LambdaQueryWrapper<DCustomer> lqw = Wrappers.lambdaQuery();
lqw.eq(DCustomer::getRecommendOrgId,QueryConstants.LEVEL1_COMPANY_ID);
lqw.eq(DCustomer::getRecommendOrgId, AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
lqw.eq(ObjectUtil.isNotNull(bo.getCustomerKey()),DCustomer::getCustomerKey,bo.getCustomerKey());
lqw.eq(StringUtil.isNotBlank(bo.getUnifySocialCode()),DCustomer::getUnifySocialCode,bo.getUnifySocialCode());
lqw.eq(StringUtil.isNotBlank(bo.getCustomerName()),DCustomer::getCustomerName,bo.getCustomerName());
......@@ -132,7 +132,7 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
@Override
public TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query) {
bo.setContractOrgId(QueryConstants.LEVEL1_COMPANY_ID);
bo.setContractOrgId(AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
Page<AdvisoryBodyVo> page = advisoryBodyMapper.queryListByBo(query.build(),bo);
return TableDataInfo.build(page);
}
......@@ -142,7 +142,7 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
if(StringUtil.isBlank(bo.getCustomerId()) && StringUtil.isBlank(bo.getCustomerName())){
Assert.isTrue(false,"供应商不能为空");
}
bo.setSignOrgId(QueryConstants.LEVEL1_COMPANY_ID);
bo.setSignOrgId(AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
Page<CustomerCooperationVo> page = dSubcontractMapper.selectCooperationList(query.build(),bo);
return TableDataInfo.build(page);
}
......@@ -153,15 +153,15 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
return new HashMap<>();
}
AdvisoryBodyBo advisoryBodyBo = new AdvisoryBodyBo();
advisoryBodyBo.setContractOrgId(QueryConstants.LEVEL1_COMPANY_ID);
advisoryBodyBo.setContractOrgId(AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
advisoryBodyBo.setAdvisoryBodyName(companyName);
LambdaQueryWrapper<DCustomer> lqw = Wrappers.lambdaQuery();
lqw.eq(DCustomer::getRecommendOrgId,QueryConstants.LEVEL1_COMPANY_ID);
lqw.eq(DCustomer::getRecommendOrgId, AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
lqw.eq(StringUtil.isNotBlank(companyName), DCustomer::getCustomerName, companyName);
CustomerCooperationBo customerCooperationBo = new CustomerCooperationBo();
customerCooperationBo.setSignOrgId(QueryConstants.LEVEL1_COMPANY_ID);
customerCooperationBo.setSignOrgId(AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
customerCooperationBo.setCustomerName(companyName);
Map<String, Object> result = new HashMap<>();
......
package com.dsk.cscec.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.domain.DProjectType;
import com.dsk.cscec.domain.TreeSelect;
import com.dsk.cscec.mapper.DProjectTypeMapper;
import com.dsk.cscec.service.DProjectTypeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 维表:工程类型,源于IPM(DProjectType)表服务实现类
......@@ -19,4 +27,85 @@ public class DProjectTypeServiceImpl extends ServiceImpl<DProjectTypeMapper, DPr
@Resource
private DProjectTypeMapper baseMapper;
@Override
public List<TreeSelect> getList(DProjectType bo) {
return buildTree(baseMapper.selectList(buildQueryWrapper(bo))).stream().map(TreeSelect::new).collect(Collectors.toList());
}
@Override
public List<DProjectType> getChildren(String projectTypeId) {
DProjectType bo = new DProjectType();
if (StringUtils.isNotBlank(projectTypeId)) {
bo.setParentId(projectTypeId);
} else {
bo.setLevelNo(1l);
}
return baseMapper.selectList(buildQueryWrapper(bo));
}
private LambdaQueryWrapper<DProjectType> buildQueryWrapper(DProjectType bo) {
LambdaQueryWrapper<DProjectType> lqw = Wrappers.lambdaQuery();
lqw.eq(ObjectUtil.isNotNull(bo.getProjectTypeKey()), DProjectType::getProjectTypeKey, bo.getProjectTypeKey());
// lqw.like(StringUtils.isNotBlank(bo.getProjectTypeName()), DProjectType::getProjectTypeName, bo.getProjectTypeName());
lqw.eq(ObjectUtil.isNotNull(bo.getLevelNo()), DProjectType::getLevelNo, bo.getLevelNo());
lqw.eq(StringUtils.isNotBlank(bo.getProjectTypeId()), DProjectType::getProjectTypeId, bo.getProjectTypeId());
lqw.eq(StringUtils.isNotBlank(bo.getParentId()), DProjectType::getParentId, bo.getParentId());
return lqw;
}
public List<DProjectType> buildTree(List<DProjectType> types) {
List<DProjectType> returnList = new ArrayList<DProjectType>();
List<String> tempList = new ArrayList<String>();
for (DProjectType type : types) {
tempList.add(type.getProjectTypeId());
}
for (DProjectType type : types) {
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(type.getParentId())) {
recursionFn(types, type);
returnList.add(type);
}
}
if (returnList.isEmpty()) {
returnList = types;
}
return returnList;
}
/**
* 递归列表
*/
private void recursionFn(List<DProjectType> list, DProjectType t) {
// 得到子节点列表
List<DProjectType> childList = getChildList(list, t);
t.setChildren(childList);
for (DProjectType tChild : childList) {
if (hasChild(list, tChild)) {
recursionFn(list, tChild);
}
}
}
/**
* 得到子节点列表
*/
private List<DProjectType> getChildList(List<DProjectType> list, DProjectType t) {
List<DProjectType> tlist = new ArrayList<DProjectType>();
for (DProjectType n : list) {
if (ObjectUtil.isNotNull(n.getParentId()) && n.getParentId().equals(t.getProjectTypeId())) {
tlist.add(n);
}
}
return tlist;
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<DProjectType> list, DProjectType t) {
return getChildList(list, t).size() > 0;
}
}
package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.constant.SupplierLimitedManageQueryConstants;
import com.dsk.cscec.domain.FSupplierLimited;
import com.dsk.cscec.domain.bo.SupplierLimitedSearchBo;
import com.dsk.cscec.domain.bo.SupplierUnlimitedSearchBo;
import com.dsk.cscec.domain.vo.SupplierLimitedSearchVo;
import com.dsk.cscec.domain.vo.SupplierUnlimitedSearchVo;
import com.dsk.cscec.mapper.FSupplierLimitedMapper;
import com.dsk.cscec.service.FSupplierLimitedService;
import com.dsk.system.utils.DskOpenApiUtil;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 供应商限制信息表(FSupplierLimited)表服务实现类
......@@ -18,5 +35,106 @@ import javax.annotation.Resource;
public class FSupplierLimitedServiceImpl extends ServiceImpl<FSupplierLimitedMapper, FSupplierLimited> implements FSupplierLimitedService {
@Resource
private FSupplierLimitedMapper baseMapper;
@Resource
private DskOpenApiUtil dskOpenApiUtil;
/**
* 获取涉诉限用禁用名单
*
* @param searchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
@Override
public TableDataInfo<SupplierLimitedSearchVo> querySupplierLimitedList(SupplierLimitedSearchBo searchBo, PageQuery pageQuery) {
QueryWrapper<FSupplierLimited> wrapper = Wrappers.query();
wrapper
//供应商名称
.like(StringUtils.isNotBlank(searchBo.getSupplierName()), "fsl.fsuppliername", searchBo.getSupplierName())
//是否为局名义被诉案件
.eq(StringUtils.isNotBlank(searchBo.getIsGroupCase()), "fsl.fisgroupcase", searchBo.getIsGroupCase())
//限用/禁用时间
.between(ObjectUtils.isNotNull(searchBo.getLimitedStartTime()) && ObjectUtils.isNotNull(searchBo.getLimitedEndTime()),
"fsl.fts",
searchBo.getLimitedStartTime(),
searchBo.getLimitedEndTime())
//筛选涉诉限用禁用名单数据
.eq("fsl.fdatatype", SupplierLimitedManageQueryConstants.LIMITED_DATA_TYPE)
//根据限用/禁用时间倒序排序
.orderByDesc("fsl.fts");
Page<SupplierLimitedSearchVo> page = baseMapper.selectPageSupplierLimitedList(pageQuery.build(), wrapper);
for (SupplierLimitedSearchVo searchVo : page.getRecords()) {
Map<String, Object> params = new HashMap<>();
String supplierName = searchVo.getFsuppliername();
params.put("keyword", supplierName);
Map jskData = MapUtils.getMap(dskOpenApiUtil.requestBody("/nationzj/enterprice/index", params), "data", null);
//防止没有数据而导致强转错误,所以先判断下total
if (MapUtils.getInteger(jskData, "total", 0) > 0) {
List<Map<String, Object>> data = (List<Map<String, Object>>) jskData.get("list");
for (Map<String, Object> companyData : data) {
//企业名称完全匹配上,则直接返回给前端
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name", "NotExist"));
if (supplierName.equals(companyName)) {
searchVo.setSupplierCid(Math.toIntExact(MapUtils.getLong(companyData, "jskEid")));
}
}
//查不到则抛异常
//throw new ServiceException("未查询到该供应商Cid");
}
//关键字标红
if (StringUtils.isNotBlank(searchBo.getSupplierName())) {
searchVo.setFsuppliername(StringUtils.markInRed(searchVo.getFsuppliername(), searchBo.getSupplierName()));
}
}
return TableDataInfo.build(page);
}
/**
* 获取解除限用禁用名单
*
* @param searchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
@Override
public TableDataInfo<SupplierUnlimitedSearchVo> querySupplierUnlimitedList(SupplierUnlimitedSearchBo searchBo, PageQuery pageQuery) {
QueryWrapper<FSupplierLimited> wrapper = Wrappers.query();
wrapper
//申请单位
.like(StringUtils.isNotBlank(searchBo.getApplyUnit()), "fsl.fjobunitname", searchBo.getApplyUnit())
//解除限用/禁用时间
.between(ObjectUtils.isNotNull(searchBo.getUnlimitedStartTime()) && ObjectUtils.isNotNull(searchBo.getUnlimitedEndTime()),
"fsl.fts",
searchBo.getUnlimitedStartTime(),
searchBo.getUnlimitedEndTime())
//筛选解除限用禁用名单数据
.eq("fsl.fdatatype", SupplierLimitedManageQueryConstants.UNLIMITED_DATA_TYPE)
//根据解除限用/禁用时间倒序排序
.orderByDesc("fsl.fts");
Page<SupplierUnlimitedSearchVo> page = baseMapper.selectPageSupplierUnlimitedList(pageQuery.build(), wrapper);
for (SupplierUnlimitedSearchVo searchVo : page.getRecords()) {
Map<String, Object> params = new HashMap<>();
String supplierName = searchVo.getFsuppliername();
params.put("keyword", supplierName);
Map jskData = MapUtils.getMap(dskOpenApiUtil.requestBody("/nationzj/enterprice/index", params), "data", null);
//防止没有数据而导致强转错误,所以先判断下total
if (MapUtils.getInteger(jskData, "total", 0) > 0) {
List<Map<String, Object>> data = (List<Map<String, Object>>) jskData.get("list");
for (Map<String, Object> companyData : data) {
//企业名称完全匹配上,则直接返回给前端
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name", "NotExist"));
if (supplierName.equals(companyName)) {
searchVo.setSupplierCid(Math.toIntExact(MapUtils.getLong(companyData, "jskEid")));
}
}
//查不到则抛异常
//throw new ServiceException("未查询到该供应商Cid");
}
}
return TableDataInfo.build(page);
}
}
......@@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.constant.QueryConstants;
import com.dsk.cscec.constant.AdvisoryBodyManageQueryConstants;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.domain.DProject;
......@@ -101,9 +101,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
//咨询机构的项目数据取中建一局集团第二建筑有限公司和他的下级组织
wrapper
//承包单位ID
.eq("p.contract_org_id", QueryConstants.LEVEL1_COMPANY_ID)
.eq("p.contract_org_id", AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID)
//承包单位主键(字段叫主键,但并不是主键)
.eq("p.contract_org_name", QueryConstants.LEVEL1_COMPANY_NAME)
.eq("p.contract_org_name", AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_NAME)
//项目名称
.like(StringUtils.isNotBlank(projectSearchBo.getProjectName()), "p.project_name", projectSearchBo.getProjectName())
//根据咨询机构名称查出来对应的项目ID
......@@ -130,6 +130,16 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
return wrapper;
}
/**
* 获取项目承接类型下拉列表
*
* @return 去重后的项目承接类型
*/
@Override
public List<String> queryIsInvestProject() {
return baseMapper.queryIsInvestProject();
}
/**
* 根据项目主键查询咨询机构
*
......@@ -204,24 +214,27 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
*/
@Override
public ProjectDetailVo queryProjectDetail(ProjectDetailBo projectDetailBo) {
Long advisoryBodyCid = projectDetailBo.getAdvisoryBodyCid();
//查询项目明细
DProject dProject = baseMapper.selectOne(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectKey, projectDetailBo.getProjectKey()));
ProjectDetailVo projectDetailVo = BeanUtil.toBean(dProject, ProjectDetailVo.class);
//查询咨询机构信息并填充
projectDetailVo.setAdvisoryBody(advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectDetailBo.getProjectKey()));
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
infoHeaderBody.setCompanyId(Math.toIntExact(projectDetailBo.getAdvisoryBodyCid()));
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//法人
projectDetailVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
//注册地址
projectDetailVo.setRegAddress(MapUtils.getString(companyData, "addressDetail", ""));
//查询项目信息并填充
projectDetailVo.setAdvisoryBodyProject(advisoryBodyProjectMapper.selectById(projectDetailBo.getProjectKey()));
if (ObjectUtil.isNotNull(advisoryBodyCid)) {
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
infoHeaderBody.setCompanyId(Math.toIntExact(advisoryBodyCid));
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//法人
projectDetailVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
//注册地址
projectDetailVo.setRegAddress(MapUtils.getString(companyData, "addressDetail", ""));
}
return projectDetailVo;
}
}
......
......@@ -80,6 +80,7 @@ public class ExportService {
//回调函数
composeQueryDto.setExportBackUrl(EXPORT_BACK_URL);
composeQueryDto.setExportExeclName(fileName);
log.info(JSONObject.toJSONString(composeQueryDto));
dskOpenApiUtil.requestBody("/operate/export/zjyj/aptitude", BeanUtil.beanToMap(composeQueryDto,false,false));
return AjaxResult.success();
}
......
......@@ -57,6 +57,15 @@
</if>
</trim>
</if>
<if test="bo.isinvestproject != null and bo.isinvestproject != ''">
and dp.isinvestproject = #{bo.isinvestproject}
</if>
<if test="bo.projectType1 != null and bo.projectType1 != ''">
and dp.project_type1 = #{bo.projectType1}
</if>
<if test="bo.projectType2 != null and bo.projectType2 != ''">
and dp.project_type2 = #{bo.projectType2}
</if>
</where>
order by dp.contract_sign_date desc
</select>
......
......@@ -21,6 +21,12 @@
${ew.getCustomSqlSegment}
</select>
<select id="queryIsInvestProject" resultType="java.lang.String">
SELECT DISTINCT isinvestproject
FROM d_project
WHERE (isinvestproject <![CDATA[ <> ]]> '')
</select>
<select id="selectPageCooperateProjectDetailList"
resultType="com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo">
select p.project_key,
......
......@@ -2,6 +2,32 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.FSupplierLimitedMapper">
<select id="selectPageSupplierLimitedList" resultType="com.dsk.cscec.domain.vo.SupplierLimitedSearchVo">
select fsl.fid,
fsl.frecordno,
fsl.fsuppliername,
fsl.funifiedsocialcreditcode,
fsl.flimitsituation,
fsl.fdisablesituation,
fsl.fjobunitname,
fsl.fstate,
fsl.fts
from f_supplier_limited fsl
${ew.getCustomSqlSegment}
</select>
<select id="selectPageSupplierUnlimitedList" resultType="com.dsk.cscec.domain.vo.SupplierUnlimitedSearchVo">
select fsl.fid,
fsl.frecordno,
fsl.fsuppliername,
fsl.funifiedsocialcreditcode,
fsl.frelievereason,
fsl.fjobunitname,
fsl.fbeforestate,
fsl.flimitdate,
fsl.fts
from f_supplier_limited fsl
${ew.getCustomSqlSegment}
</select>
</mapper>
# 页面标题
VUE_APP_TITLE = 数字化经营履约全生命链路管理系统
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
# 开发环境配置
ENV = 'development'
......@@ -16,4 +16,4 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true
VUE_APP_SUB_SYSTEM_ADDRESS = "http://192.168.60.210:3400"
# Bi大屏系统地址
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
\ No newline at end of file
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
# 页面标题
VUE_APP_TITLE = 数字化经营履约全生命链路管理系统
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
# 生产环境配置
ENV = 'production'
......
# 页面标题
VUE_APP_TITLE = 数字化经营履约全生命链路管理系统
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
NODE_ENV = production
......
# 页面标题
VUE_APP_TITLE = 数字化经营履约全生命链路管理系统
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
NODE_ENV = "production"
......@@ -15,4 +15,4 @@ VUE_APP_BASE_API = '/prod-api'
VUE_APP_SUB_SYSTEM_ADDRESS = "https://pre-plug.jiansheku.com"
# Bi大屏系统地址
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
\ No newline at end of file
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
dsk-operate-ui/public/favicon.ico

16.6 KB | W: | H:

dsk-operate-ui/public/favicon.ico

4.19 KB | W: | H:

dsk-operate-ui/public/favicon.ico
dsk-operate-ui/public/favicon.ico
dsk-operate-ui/public/favicon.ico
dsk-operate-ui/public/favicon.ico
  • 2-up
  • Swipe
  • Onion skin
......@@ -42,4 +42,17 @@ export const getgetConsultingOrgProjectDetailApi = (params) => request({
url: "/advisory/body/getProjectDetail",
method: "get",
params
});
/**
* 查询咨询机构
* @param {*} advisoryBodyName
* @returns
*/
export const searchConsultingApi = (advisoryBodyName) => request({
url: "/advisory/body/checkAdvisoryBodyExist",
method: "get",
params: {
advisoryBodyName
}
});
\ No newline at end of file
......@@ -48,3 +48,21 @@ export function custmerInfo(param) {
method: 'get',
});
}
//涉诉限用禁用名单名单
export function getSupplierLimitedList(param) {
return request({
url: '/fSupplierLimited/getSupplierLimitedList',
params: param,
method: 'get',
});
}
//解除限用禁用名单名单
export function getSupplierUnlimitedList(param) {
return request({
url: '/fSupplierLimited/getSupplierUnlimitedList',
params: param,
method: 'get',
});
}
This source diff could not be displayed because it is too large. You can view the blob instead.
<svg xmlns="http://www.w3.org/2000/svg" fill="white" version="1.1" width="14" height="14" viewBox="0 0 14 14">
<defs>
<clipPath id="master_svg0_634_008390">
<rect x="0" y="0" width="14" height="14" rx="0"/>
</clipPath>
</defs>
<g clip-path="url(#master_svg0_634_008390)">
<g>
<path
d="M1.0104570234375,2.9374589765625L1.0104570234375,11.9582959765625Q1.0104570234375,12.3854259765625,1.3125050234375,12.6875259765625Q1.6145490234375,12.9895259765625,2.0417070234375,12.9895259765625L11.9583740234375,12.9895259765625Q12.3855740234375,12.9895259765625,12.6875740234375,12.6875259765625Q12.9895740234375,12.3854259765625,12.9895740234375,11.9582859765625L12.9895740234375,2.9374539765625Q12.9895740234375,2.3808559765625,12.5959740234375,1.9872829765625Q12.2024740234375,1.5937089765625,11.6458740234375,1.5937089765625L2.3542070234375,1.5937089765625Q1.7976080234375,1.5937089765625,1.4040326234375,1.9872845765625Q1.0104570234375,2.3808599765625,1.0104570234375,2.9374589765625ZM2.0417070234375,12.0937259765625Q1.9062910234375,12.0937259765625,1.9062910234375,11.9582959765625L1.9062910234375,2.9374589765625Q1.9062910234375,2.7519259765625,2.0374820234374997,2.6207339765624997Q2.1686740234375,2.4895429765625,2.3542070234375,2.4895429765625L11.6458740234375,2.4895429765625Q11.8313740234375,2.4895429765625,11.9625740234375,2.6207339765624997Q12.0937740234375,2.7519249765625,12.0937740234375,2.9374579765625L12.0937740234375,11.9582959765625Q12.0937740234375,12.0937259765625,11.9583740234375,12.0937259765625L2.0417070234375,12.0937259765625Z"
fill-rule="evenodd" fill="#ffffff" fill-opacity="1"/>
</g>
<g>
<path
d="M4.822917,1.3557511Q4.825,1.3341757,4.825,1.3125Q4.825,1.2681789,4.816353,1.2247094Q4.807707,1.18124,4.790746,1.140292Q4.773785,1.099345,4.749161,1.062493Q4.724538,1.025642,4.693198,0.994302Q4.661858,0.962962,4.625007,0.938339Q4.588155,0.913715,4.547208,0.896754Q4.50626,0.879793,4.4627906,0.871147Q4.4193211,0.8625,4.375,0.8625Q4.3306789,0.8625,4.2872094,0.871147Q4.24374,0.879793,4.202792,0.896754Q4.161845,0.913715,4.124993,0.938339Q4.088142,0.962962,4.056802,0.994302Q4.025462,1.025642,4.000839,1.062493Q3.976215,1.099345,3.959254,1.140292Q3.942293,1.18124,3.933647,1.2247094Q3.925,1.2681789,3.925,1.3125Q3.925,1.3341757,3.927083,1.3557511L3.927083,3.45675Q3.925,3.47832,3.925,3.5Q3.925,3.54432,3.933647,3.58779Q3.942293,3.63126,3.959254,3.67221Q3.976215,3.71315,4.000839,3.75001Q4.025462,3.78686,4.056802,3.8182Q4.088142,3.84954,4.124993,3.87416Q4.161845,3.89878,4.202792,3.91575Q4.24374,3.93271,4.2872094,3.94135Q4.3306789,3.95,4.375,3.95Q4.4193211,3.95,4.4627906,3.94135Q4.50626,3.93271,4.547208,3.91575Q4.588155,3.89878,4.625007,3.87416Q4.661858,3.84954,4.693198,3.8182Q4.724538,3.78686,4.749161,3.75001Q4.773785,3.71315,4.790746,3.67221Q4.807707,3.63126,4.816353,3.58779Q4.825,3.54432,4.825,3.5Q4.825,3.47832,4.822917,3.45675L4.822917,1.3557511Z"
fill-rule="evenodd" fill="#ffffff" fill-opacity="1"/>
</g>
<g>
<path
d="M10.072917,1.3557511Q10.075,1.3341757,10.075,1.3125Q10.075,1.2681789,10.066353,1.2247094Q10.057707,1.18124,10.040746,1.140292Q10.023785,1.099345,9.999161,1.062493Q9.974538,1.025642,9.943198,0.994302Q9.911858,0.962962,9.875007,0.938339Q9.838155,0.913715,9.797208,0.896754Q9.75626,0.879793,9.7127906,0.871147Q9.6693211,0.8625,9.625,0.8625Q9.5806789,0.8625,9.5372094,0.871147Q9.49374,0.879793,9.452792,0.896754Q9.411845,0.913715,9.374993,0.938339Q9.338142,0.962962,9.306802,0.994302Q9.275462,1.025642,9.250839,1.062493Q9.226215,1.099345,9.209254,1.140292Q9.192293,1.18124,9.183647,1.2247094Q9.175,1.2681789,9.175,1.3125Q9.175,1.3341757,9.177083,1.3557511L9.177083,3.45675Q9.175,3.47832,9.175,3.5Q9.175,3.54432,9.183647,3.58779Q9.192293,3.63126,9.209254,3.67221Q9.226215,3.71315,9.250839,3.75001Q9.275462,3.78686,9.306802,3.8182Q9.338142,3.84954,9.374993,3.87416Q9.411845,3.89878,9.452792,3.91575Q9.49374,3.93271,9.5372094,3.94135Q9.5806789,3.95,9.625,3.95Q9.6693211,3.95,9.7127906,3.94135Q9.75626,3.93271,9.797208,3.91575Q9.838155,3.89878,9.875007,3.87416Q9.911858,3.84954,9.943198,3.8182Q9.974538,3.78686,9.999161,3.75001Q10.023785,3.71315,10.040746,3.67221Q10.057707,3.63126,10.066353,3.58779Q10.075,3.54432,10.075,3.5Q10.075,3.47832,10.072917,3.45675L10.072917,1.3557511Z"
fill-rule="evenodd" fill="#ffffff" fill-opacity="1"/>
</g>
<g>
<ellipse cx="7" cy="7.875" rx="0.875" ry="0.875" fill="#ffffff" fill-opacity="1"/>
</g>
<g transform="matrix(0,1,-1,0,14.875,-4.375)">
<path
d="M12.47396,4.862093L14.74727,6.174593Q14.79834,6.204078,14.84004,6.245775Q14.88174,6.28747,14.91122,6.33854Q14.94071,6.38961,14.95597,6.4465699999999995Q14.97123,6.50353,14.97123,6.5625L14.97123,9.1875Q14.97123,9.24647,14.95597,9.303429999999999Q14.94071,9.360389999999999,14.91122,9.41146Q14.88174,9.462530000000001,14.84004,9.50422Q14.79834,9.545919999999999,14.74727,9.57541L12.47396,10.88791Q12.42289,10.917390000000001,12.36593,10.932649999999999Q12.30897,10.94792,12.25,10.94792Q12.19103,10.94792,12.13407,10.932649999999999Q12.07711,10.917390000000001,12.02604,10.88791L9.752725,9.57541Q9.701656,9.545919999999999,9.6599584,9.50422Q9.61826079,9.462530000000001,9.5887761,9.41146Q9.5592914,9.360389999999999,9.544029,9.303429999999999Q9.5287667,9.24647,9.5287667,9.1875L9.5287666,6.5625Q9.5287666,6.50353,9.544029,6.4465699999999995Q9.5592914,6.38961,9.5887761,6.33854Q9.61826075,6.28747,9.6599584,6.245775Q9.701656,6.204077,9.752725,6.174593L12.02604,4.862093Q12.07711,4.8326080000000005,12.13407,4.817346Q12.19103,4.802083,12.25,4.802083Q12.30897,4.802083,12.36593,4.817346Q12.42289,4.8326080000000005,12.47396,4.862093L12.47396,4.862093ZM12.02604,5.637907L12.25,5.25L12.47396,5.637907L10.200642,6.95041L9.976683,6.5625L10.4246,6.5625L10.4246,9.1875L9.976683,9.1875L10.200642,8.79959L12.47396,10.11209L12.25,10.5L12.02604,10.11209L14.29936,8.79959L14.52332,9.1875L14.0754,9.1875L14.0754,6.5625L14.52332,6.5625L14.29936,6.95041L12.02604,5.637907Z"
fill="#ffffff" fill-opacity="1"/>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14">
<defs>
<clipPath id="master_svg0_634_008390">
<rect x="0" y="0" width="14" height="14" rx="0"/>
</clipPath>
</defs>
<g clip-path="url(#master_svg0_634_008390)">
<g>
<path
d="M1.0104570234375,2.9374589765625L1.0104570234375,11.9582959765625Q1.0104570234375,12.3854259765625,1.3125050234375,12.6875259765625Q1.6145490234375,12.9895259765625,2.0417070234375,12.9895259765625L11.9583740234375,12.9895259765625Q12.3855740234375,12.9895259765625,12.6875740234375,12.6875259765625Q12.9895740234375,12.3854259765625,12.9895740234375,11.9582859765625L12.9895740234375,2.9374539765625Q12.9895740234375,2.3808559765625,12.5959740234375,1.9872829765625Q12.2024740234375,1.5937089765625,11.6458740234375,1.5937089765625L2.3542070234375,1.5937089765625Q1.7976080234375,1.5937089765625,1.4040326234375,1.9872845765625Q1.0104570234375,2.3808599765625,1.0104570234375,2.9374589765625ZM2.0417070234375,12.0937259765625Q1.9062910234375,12.0937259765625,1.9062910234375,11.9582959765625L1.9062910234375,2.9374589765625Q1.9062910234375,2.7519259765625,2.0374820234374997,2.6207339765624997Q2.1686740234375,2.4895429765625,2.3542070234375,2.4895429765625L11.6458740234375,2.4895429765625Q11.8313740234375,2.4895429765625,11.9625740234375,2.6207339765624997Q12.0937740234375,2.7519249765625,12.0937740234375,2.9374579765625L12.0937740234375,11.9582959765625Q12.0937740234375,12.0937259765625,11.9583740234375,12.0937259765625L2.0417070234375,12.0937259765625Z"
fill-rule="evenodd" fill="#ffffff" fill-opacity="1"/>
</g>
<g>
<path
d="M4.822917,1.3557511Q4.825,1.3341757,4.825,1.3125Q4.825,1.2681789,4.816353,1.2247094Q4.807707,1.18124,4.790746,1.140292Q4.773785,1.099345,4.749161,1.062493Q4.724538,1.025642,4.693198,0.994302Q4.661858,0.962962,4.625007,0.938339Q4.588155,0.913715,4.547208,0.896754Q4.50626,0.879793,4.4627906,0.871147Q4.4193211,0.8625,4.375,0.8625Q4.3306789,0.8625,4.2872094,0.871147Q4.24374,0.879793,4.202792,0.896754Q4.161845,0.913715,4.124993,0.938339Q4.088142,0.962962,4.056802,0.994302Q4.025462,1.025642,4.000839,1.062493Q3.976215,1.099345,3.959254,1.140292Q3.942293,1.18124,3.933647,1.2247094Q3.925,1.2681789,3.925,1.3125Q3.925,1.3341757,3.927083,1.3557511L3.927083,3.45675Q3.925,3.47832,3.925,3.5Q3.925,3.54432,3.933647,3.58779Q3.942293,3.63126,3.959254,3.67221Q3.976215,3.71315,4.000839,3.75001Q4.025462,3.78686,4.056802,3.8182Q4.088142,3.84954,4.124993,3.87416Q4.161845,3.89878,4.202792,3.91575Q4.24374,3.93271,4.2872094,3.94135Q4.3306789,3.95,4.375,3.95Q4.4193211,3.95,4.4627906,3.94135Q4.50626,3.93271,4.547208,3.91575Q4.588155,3.89878,4.625007,3.87416Q4.661858,3.84954,4.693198,3.8182Q4.724538,3.78686,4.749161,3.75001Q4.773785,3.71315,4.790746,3.67221Q4.807707,3.63126,4.816353,3.58779Q4.825,3.54432,4.825,3.5Q4.825,3.47832,4.822917,3.45675L4.822917,1.3557511Z"
fill-rule="evenodd" fill="#ffffff" fill-opacity="1"/>
</g>
<g>
<path
d="M10.072917,1.3557511Q10.075,1.3341757,10.075,1.3125Q10.075,1.2681789,10.066353,1.2247094Q10.057707,1.18124,10.040746,1.140292Q10.023785,1.099345,9.999161,1.062493Q9.974538,1.025642,9.943198,0.994302Q9.911858,0.962962,9.875007,0.938339Q9.838155,0.913715,9.797208,0.896754Q9.75626,0.879793,9.7127906,0.871147Q9.6693211,0.8625,9.625,0.8625Q9.5806789,0.8625,9.5372094,0.871147Q9.49374,0.879793,9.452792,0.896754Q9.411845,0.913715,9.374993,0.938339Q9.338142,0.962962,9.306802,0.994302Q9.275462,1.025642,9.250839,1.062493Q9.226215,1.099345,9.209254,1.140292Q9.192293,1.18124,9.183647,1.2247094Q9.175,1.2681789,9.175,1.3125Q9.175,1.3341757,9.177083,1.3557511L9.177083,3.45675Q9.175,3.47832,9.175,3.5Q9.175,3.54432,9.183647,3.58779Q9.192293,3.63126,9.209254,3.67221Q9.226215,3.71315,9.250839,3.75001Q9.275462,3.78686,9.306802,3.8182Q9.338142,3.84954,9.374993,3.87416Q9.411845,3.89878,9.452792,3.91575Q9.49374,3.93271,9.5372094,3.94135Q9.5806789,3.95,9.625,3.95Q9.6693211,3.95,9.7127906,3.94135Q9.75626,3.93271,9.797208,3.91575Q9.838155,3.89878,9.875007,3.87416Q9.911858,3.84954,9.943198,3.8182Q9.974538,3.78686,9.999161,3.75001Q10.023785,3.71315,10.040746,3.67221Q10.057707,3.63126,10.066353,3.58779Q10.075,3.54432,10.075,3.5Q10.075,3.47832,10.072917,3.45675L10.072917,1.3557511Z"
fill-rule="evenodd" fill="#ffffff" fill-opacity="1"/>
</g>
<g>
<ellipse cx="7" cy="7.875" rx="0.875" ry="0.875" fill="#ffffff" fill-opacity="1"/>
</g>
<g transform="matrix(0,1,-1,0,14.875,-4.375)">
<path
d="M12.47396,4.862093L14.74727,6.174593Q14.79834,6.204078,14.84004,6.245775Q14.88174,6.28747,14.91122,6.33854Q14.94071,6.38961,14.95597,6.4465699999999995Q14.97123,6.50353,14.97123,6.5625L14.97123,9.1875Q14.97123,9.24647,14.95597,9.303429999999999Q14.94071,9.360389999999999,14.91122,9.41146Q14.88174,9.462530000000001,14.84004,9.50422Q14.79834,9.545919999999999,14.74727,9.57541L12.47396,10.88791Q12.42289,10.917390000000001,12.36593,10.932649999999999Q12.30897,10.94792,12.25,10.94792Q12.19103,10.94792,12.13407,10.932649999999999Q12.07711,10.917390000000001,12.02604,10.88791L9.752725,9.57541Q9.701656,9.545919999999999,9.6599584,9.50422Q9.61826079,9.462530000000001,9.5887761,9.41146Q9.5592914,9.360389999999999,9.544029,9.303429999999999Q9.5287667,9.24647,9.5287667,9.1875L9.5287666,6.5625Q9.5287666,6.50353,9.544029,6.4465699999999995Q9.5592914,6.38961,9.5887761,6.33854Q9.61826075,6.28747,9.6599584,6.245775Q9.701656,6.204077,9.752725,6.174593L12.02604,4.862093Q12.07711,4.8326080000000005,12.13407,4.817346Q12.19103,4.802083,12.25,4.802083Q12.30897,4.802083,12.36593,4.817346Q12.42289,4.8326080000000005,12.47396,4.862093L12.47396,4.862093ZM12.02604,5.637907L12.25,5.25L12.47396,5.637907L10.200642,6.95041L9.976683,6.5625L10.4246,6.5625L10.4246,9.1875L9.976683,9.1875L10.200642,8.79959L12.47396,10.11209L12.25,10.5L12.02604,10.11209L14.29936,8.79959L14.52332,9.1875L14.0754,9.1875L14.0754,6.5625L14.52332,6.5625L14.29936,6.95041L12.02604,5.637907Z"
fill="#ffffff" fill-opacity="1"/>
</g>
</g>
</svg>
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -26,6 +26,16 @@
opacity: 0;
}
.edit-fade-enter-active,
.edit-fade-leave-active {
transition: opacity 0.3s ease-in-out;
}
.edit-fade-leave-to,
.edit-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
.list-enter-active,
.list-leave-active {
transition: all 0.5s ease;
......
......@@ -11,7 +11,7 @@
.el-form-item__label {
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
text-align: left;
text-align: right;
font-size: 14px;
line-height: 32px;
padding-right: 0px;
......
......@@ -330,7 +330,7 @@ li {
padding-right: 12px;
padding-left: 12px;
line-height: 21px;
font-size: 12px;
font-size: 14px;
font-weight: 400;
}
thead {
......
......@@ -233,3 +233,15 @@
.table-supplier .fixed-table .el-table__fixed-header-wrapper{
top: -16px !important;
}
.renling{
width: 280px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ellipsis{
width: 500px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
......@@ -14,12 +14,12 @@
<!-- 已选字段 -->
<div class="use-header-container" v-if="useColumn.length">
<div class="use-header-title">已选字段</div>
<vuedraggable v-model="useColumn" class="use-header-container-inner" ghostClass="dragClass">
<vuedraggable v-model="useColumn" class="use-header-container-inner" ghostClass="dragClass" handle=".use-header-item-drag-icon">
<transition-group name="fade" tag="div">
<div class="use-header-item" v-for="(item,index) of useColumn" :key="item.uid">
<el-checkbox v-model="item.use" class="use-header-item-label"
@change="flag => checkedChange(index,flag,item)">{{item.label}}</el-checkbox>
<img src="@/assets/images/consultingAgencyManagement/use-header-btn.png" alt="">
@change="flag => checkedChange(index,flag,item,false)">{{item.label}}</el-checkbox>
<img src="@/assets/images/consultingAgencyManagement/use-header-btn.png" alt="" class="use-header-item-drag-icon">
</div>
</transition-group>
</vuedraggable>
......@@ -30,7 +30,7 @@
<div class="not-use-header-title">未选字段</div>
<div class="not-use-header-item" v-for="(item,index) of notUseColumn" :key="item.uid">
<el-checkbox v-model="item.use" class="not-use-header-item-label"
@change="flag => checkedChange(index,flag,item)">{{item.label}}</el-checkbox>
@change="flag => checkedChange(index,flag,item,true)">{{item.label}}</el-checkbox>
</div>
</div>
......@@ -48,6 +48,7 @@
<script>
import vuedraggable from "vuedraggable";
import { v4 } from 'uuid';
import { elementMessageSingleton } from "@/utils";
export default {
name: "dskTableHeaderSettingBar",
components: {
......@@ -128,7 +129,17 @@ export default {
// console.log(this.notUseColumn);
}
},
checkedChange(index, flag, item) {
checkedChange(index, flag, item, isUse) {
// 至少保证一个自适应列存在
const { status, onlyColumn } = this.checkeOnlySelfAdaptation();
if (status && onlyColumn.uid == item.uid && !isUse) {
elementMessageSingleton("warning", "列表至少保证一个自适应列存在");
this.useColumn.splice(index, 1, {
...item,
use: true
});
return;
}
// 选中 往use push
if (flag) {
this.notUseColumn.splice(index, 1);
......@@ -138,6 +149,24 @@ export default {
this.useColumn.splice(index, 1);
this.notUseColumn.push(item);
},
checkeOnlySelfAdaptation() {
const _array = this.useColumn.filter(item => {
// 判断是否是自适应列
const isSelfAdaptationColumn = item.hasOwnProperty("minWidth") || item.width == "auto" || (!item.hasOwnProperty("minWidth") && !item.hasOwnProperty("width"));
return isSelfAdaptationColumn;
});
const len = _array.length;
// len等于1时仅剩一个自适应列
let status = false;
// 仅剩1个自适应列是用于判断当前取消的列是否是自适应列
let onlyColumn = null;
if (len == 1) {
onlyColumn = _array[0];
status = true;
}
return { status, onlyColumn };
},
cancel() {
this.$emit("settingClose");
},
......
......@@ -45,7 +45,7 @@ export default {
},
data() {
return {
title: '中建一局公司',
title: '中建一局集团第二建筑有限公司',
logo: logoImg
}
}
......
......@@ -26,9 +26,9 @@
<router-link v-for="(tag, index) in visitedViews" ref="tag" :key="tag.fullPath" :class="isActive(tag)?'active':''"
:to="{ path: tag.fullPath, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item"
@click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''" @contextmenu.prevent.native="openMenu(tag,$event)">
<svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true">
<use :xlink:href="iconName(tag)" />
</svg>
<!--<svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true">-->
<!--<use :xlink:href="iconName(tag)" />-->
<!--</svg>-->
<span :id="isActive(tag)?'tagTitle':''">{{ tag.title.replace(/<[^>]+>/g, '') }}</span>
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
<i
......
......@@ -324,7 +324,7 @@ export default {
/**
* @type {HTMLDivElement}
*/
const inner = document.querySelector(".basic-engineering-information-inner");
const inner = this.$el.querySelector(".basic-engineering-information-inner");
if (inner) {
const td = parseInt((inner.offsetWidth - 140 * 2) / 2);
this.tableKeyWidth = `${parseInt(parseFloat(td / inner.offsetWidth) * 100)}%`;
......
<template>
<div class="consulting-agency-container">
<el-form :model="comProjectDetailInfo" :rules="rules" :inline-message="false" class="basic-engineering-information-inner">
<!-- 基础信息 -->
<div class="project-basic-information">
<div class="info-module-title"><span>基础信息</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">咨询机构名称</td>
<td>
<transition mode="out-in" name="edit-fade">
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBody && comProjectDetailInfo.advisoryBody.advisoryBodyName ? comProjectDetailInfo.advisoryBody.advisoryBodyName : "-"}}
</div>
<el-form-item label="" v-if="comIsModify">
<el-input v-model="comProjectDetailInfo.advisoryBody.advisoryBodyName" clearable v-focus placeholder="请输入完整咨询机构名称"
@input="searchConsulting"></el-input>
</el-form-item>
</transition>
</td>
<td class="table-key">法人代表</td>
<td>
{{comProjectDetailInfo.corporatePerson ? comProjectDetailInfo.corporatePerson : "-"}}
</td>
</tr>
<tr>
<!-- <td class="table-key">法人联系电话</td>
<td>
{{comProjectDetailInfo.corporatePerson ? comProjectDetailInfo.corporatePerson : "-"}}
</td> -->
<td class="table-key">注册地址</td>
<td colspan="3">
{{comProjectDetailInfo.regAddress ? comProjectDetailInfo.regAddress : "-"}}
</td>
</tr>
</table>
</div>
<!-- 项目联系人 -->
<div class="project-contact">
<div class="info-module-title"><span>项目联系人</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">项目负责人</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeader ? comProjectDetailInfo.advisoryBodyProject.projectLeader : "-"}}
</td>
<td class="table-key">项目负责人专业</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor ? comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor : "-"}}
</td>
</tr>
<tr>
<td class="table-key">联系电话</td>
<td colspan="3">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone ? comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone : "-"}}
</td>
</tr>
</table>
</div>
<!-- 项目结算信息 -->
<div class="project-settlement-information">
<div class="info-module-title"><span>项目结算信息</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">结算开始时间</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.settleStartTime ? comProjectDetailInfo.advisoryBodyProject.settleStartTime : "-"}}
</td>
<td class="table-key">结算完成时间</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.settleFinishTime ? comProjectDetailInfo.advisoryBodyProject.settleFinishTime : "-"}}
</td>
</tr>
<tr>
<td class="table-key">是否为终审单位</td>
<td colspan="3">
{{comProjectDetailInfo.advisoryBodyProject && statusCheck(comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit) ? statusCheck(comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit) : "-"}}
</td>
</tr>
</table>
</div>
</el-form>
</div>
</template>
<script>
import { searchConsultingApi } from "@/api/consultingOrgManagement";
export default {
name: "consultingAgency",
props: {
projectDetailInfo: Object
projectDetailInfo: Object,
isModify: {
type: Boolean,
default: false
}
},
directives: {
focus: {
inserted(el) {
el.querySelector(".el-input__inner").focus();
}
}
},
watch: {
projectDetailInfo: {
handler(newValue, oldValue) {
this.comProjectDetailInfo = JSON.parse(JSON.stringify(newValue));
this.oldComProjectDetailInfo = JSON.parse(JSON.stringify(oldValue));
},
deep: true
},
isModify: {
handler(newValue) {
this.comIsModify = newValue;
}
}
},
data() {
return {
comIsModify: this.isModify,
comProjectDetailInfo: JSON.parse(JSON.stringify(this.projectDetailInfo)),
oldComProjectDetailInfo: JSON.parse(JSON.stringify(this.projectDetailInfo)),
rules: {
},
tableKeyWidth: 0,
searchTimer: null
};
},
//可访问data属性
created() {
this.setTableKeyWidth();
},
//计算集
computed: {
......@@ -24,7 +154,59 @@ export default {
},
//方法集
methods: {
statusCheck(status) {
if (status == "0") {
return "是";
}
if (status == "1") {
return "否";
}
return "";
},
async setTableKeyWidth() {
try {
await this.$nextTick();
/**
* @type {HTMLDivElement}
*/
const inner = this.$el.querySelector(".basic-engineering-information-inner");
if (inner) {
const td = parseInt((inner.offsetWidth - 140 * 2) / 2);
this.tableKeyWidth = `${parseInt(parseFloat(td / inner.offsetWidth) * 100)}%`;
}
} catch (error) {
}
},
cancelModify() {
this.comProjectDetailInfo = JSON.parse(JSON.stringify(this.oldComProjectDetailInfo));
},
async searchConsulting(keywords) {
try {
if ((keywords || keywords == "0") && keywords?.toString()?.trim() && keywords?.toString()?.trim()?.length >= 1) {
this.clearSearchTimer();
this.searchTimer = setTimeout(async () => {
await this.searchConsultingHandle(keywords.toString().trim());
}, 1000);
}
} catch (error) {
}
},
async searchConsultingHandle(keywords) {
try {
const searchResult = await searchConsultingApi(keywords);
if (searchResult.code == 200) {
console.log(searchResult);
}
} catch (error) {
console.log(error);
}
},
clearSearchTimer() {
clearTimeout(this.searchTimer);
this.searchTimer = null;
}
},
}
</script>
......@@ -38,5 +220,113 @@ export default {
padding: 16px;
box-sizing: border-box;
overflow: auto;
::v-deep .basic-engineering-information-inner {
width: 100%;
.info-module-title {
line-height: 24px;
color: #232323;
font-weight: bold;
font-size: 16px;
margin-bottom: 16px;
display: flex;
align-items: center;
& > span {
display: inline-block;
position: relative;
padding-left: 8px;
box-sizing: border-box;
&::before {
content: "";
position: absolute;
left: 0px;
top: 50%;
transform: translateY(-50%);
background: rgba(35, 35, 35, 0.8);
width: 2px;
height: 14px;
}
}
}
table {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
&,
th,
td {
border: 1px solid #e6eaf1;
box-sizing: border-box;
}
td {
padding: 9px 12px;
line-height: 22px;
color: #232323;
font-size: 12px;
position: relative;
.normal-value {
vertical-align: middle;
line-height: 22px;
}
.el-form-item {
position: absolute;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
margin-bottom: 0px;
z-index: 9;
.el-form-item__content {
height: 100%;
font-size: 12px;
line-height: unset;
.el-input {
height: 100%;
font-size: 12px;
}
.el-input__inner {
height: 40px;
line-height: 40px;
border-radius: unset;
border-color: transparent;
color: #232323;
font-size: 12px;
font-weight: 400;
padding-left: 12px;
outline: unset;
box-sizing: border-box;
&:focus {
border: 1px solid #0081ff;
}
}
}
}
}
.table-key {
background: #f0f3fa;
color: rgba(35, 35, 35, 0.8);
width: 140px;
&.lot {
height: 62px;
}
}
.data-td {
width: calc(100% - 140px);
}
}
.project-contact,
.project-settlement-information {
margin-top: 24px;
}
}
}
</style>
......@@ -17,14 +17,27 @@
<!-- tab切换部分 -->
<div class="project-consulting-agency">
<!-- tab切换栏 -->
<dsk-tab-toggle v-model="currentList" :tabs="toggleTabs"></dsk-tab-toggle>
<div class="project-consulting-tab-container">
<dsk-tab-toggle v-model="currentList" :tabs="toggleTabs"></dsk-tab-toggle>
<!-- 编辑按钮 展示咨询机构结算信息显示 -->
<transition name="fade" appear mode="out-in">
<div class="edit-project-detail-container" v-if="currentList === 'consultingAgency' && !isModify" :key="'edit-project'">
<el-button type="primary" @click="editProjectDetail">编辑信息</el-button>
</div>
<div class="save-project-detail-container" v-if="currentList === 'consultingAgency' && isModify" :key="'save-project'">
<el-button type="primary" @click="editProjectDetail">保存</el-button>
<el-button @click="cancelSave">取消</el-button>
</div>
</transition>
</div>
<!-- tab切换容器 -->
<div class="project-consulting-agency-inner">
<!-- 工程基本信息 -->
<basic-engineering-information v-if="currentList === 'project'" :projectDetailInfo="projectDetailInfo"></basic-engineering-information>
<!-- 咨询机构结算信息 -->
<consulting-agency v-if="currentList === 'consultingAgency'" :projectDetailInfo="projectDetailInfo"></consulting-agency>
<consulting-agency v-if="currentList === 'consultingAgency'" :projectDetailInfo="projectDetailInfo" :isModify="isModify"
ref="consultingAgency"></consulting-agency>
</div>
</div>
......@@ -62,7 +75,9 @@ export default {
],
projectDetailInfo: {},
projectKey: "",
advisoryBodyCid: ""
advisoryBodyCid: "",
// 咨询机构结算信息 修改
isModify: false
};
},
//可访问data属性
......@@ -91,7 +106,17 @@ export default {
} catch (error) {
}
}
},
editProjectDetail() {
this.isModify = true;
},
saveProjectDetail() {
},
cancelSave() {
this.isModify = false;
this.$refs["consultingAgency"].cancelModify();
},
},
}
</script>
......@@ -157,6 +182,45 @@ export default {
height: calc(100% - 110px);
margin-top: 16px;
.project-consulting-tab-container {
position: relative;
.edit-project-detail-container {
position: absolute;
right: 16px;
top: 50%;
transform: translateY(-50%);
& > button {
height: 32px;
line-height: 32px;
padding: 0px 16px;
box-sizing: border-box;
background-color: #0081ff;
border-color: #0081ff;
}
}
.save-project-detail-container {
position: absolute;
right: 16px;
top: 50%;
transform: translateY(-50%);
& > button {
height: 32px;
line-height: 32px;
padding: 0px 16px;
box-sizing: border-box;
&.el-button--primary {
background-color: #0081ff;
border-color: #0081ff;
}
}
}
}
.project-consulting-agency-inner {
width: 100%;
height: calc(100% - 47px);
......
......@@ -305,7 +305,7 @@ export default {
const _temp = this.sideAddUid(JSON.parse(JSON.stringify(this.sideRoute)));
this.sideRoute = _temp;
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute));
this.searchIndex = this.findNodeIndex(this.defaultRoute, "overview").index;
// this.searchIndex = this.findNodeIndex(this.defaultRoute, "overview").index;
},
// 查找菜单中的元素
findNodeIndex(tree, key, findKey = "pathName", findParent = false, parenNode = null) {
......
......@@ -130,7 +130,7 @@ export default {
async maxHeightInit() {
try {
await this.$nextTick();
/**
/**
* @type {HTMLDivElement}
*/
const container = this.$el.querySelector(".table-item");
......@@ -224,7 +224,7 @@ export default {
}
.el-table {
.cell {
font-size: 12px;
font-size: 14px;
}
.el-table__header-wrapper {
min-height: 40px;
......
......@@ -92,7 +92,7 @@ export default {
// 合作项目详情弹窗
cooperationRecordDialog: false,
dialogQueryParams: {
companyId: "",
companyId: this.companyId,
combineId: "",
pageNum: 1,
pageSize: 10,
......@@ -264,7 +264,6 @@ export default {
}
},
viewProject(row) {
this.dialogQueryParams.companyId = row.companyId;
this.dialogQueryParams.combineId = row.counterpartCompanyId;
this.cooperationRecordDialog = true;
},
......
......@@ -92,7 +92,7 @@ export default {
// 合作项目详情弹窗
cooperationRecordDialog: false,
dialogQueryParams: {
companyId: "",
companyId: this.companyId,
combineId: "",
pageNum: 1,
pageSize: 10,
......@@ -264,7 +264,6 @@ export default {
}
},
viewProject(row) {
this.dialogQueryParams.companyId = row.companyId;
this.dialogQueryParams.combineId = row.companyId;
this.cooperationRecordDialog = true;
},
......
......@@ -203,7 +203,7 @@ export default {
isCompany: false, //判断是否有建设库数据
isCustomer: false, //判断是否展示修改客户信息
currentPath: {
pathName: 'overview' //默认展示页
pathName: '' //默认展示页
},
statisticObj: {
basic: {},
......@@ -480,7 +480,7 @@ export default {
height: auto;
overflow: initial;
box-sizing: border-box;
min-width: 1200px;
/* min-width: 1200px; */
}
}
}
......
......@@ -24,7 +24,7 @@
</div>
</div>
<div class="content">
<div class="table-search">
<div class="table-search" v-if="tableDataTotal > 0 && !isSkeleton">
<div class="total">{{tableDataTotal}}</div>
<div class="right">
<span class="add" @click="addEnterprise">添加企业</span>
......@@ -58,8 +58,6 @@
label="操作"
align="left"
width="160"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span style="color:#0081FF;" @click="handleCancel(scope.row.companyId)">取消监控</span>
......@@ -70,8 +68,12 @@
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<div class="p1">您还未添加监控企业</div>
<!--<div class="p2">建议调整关键词或筛选条件,重新搜索</div>-->
<div class="empty-btn">
<span class="add" @click="addEnterprise">添加企业</span>
<span class="add1" @click="handleBatch">批量监控</span>
</div>
</div>
</div>
<div class="pagination-box" v-if="tableDataTotal>queryParams.pageSize">
......@@ -220,7 +222,6 @@
methods: {
async querySubmit() {
companyPage(this.queryParams).then(res => {
console.log(res)
this.isSkeleton = false;
this.tableData=res.rows
this.tableDataTotal=res.total
......@@ -423,6 +424,7 @@
position: relative;
::v-deep .el-radio{
margin-right:16px;
color: rgba(35,35,35,0.8);
}
::v-deep .el-date-editor{
position: absolute;
......@@ -502,7 +504,6 @@
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
......@@ -518,6 +519,29 @@
font-size: 14px;
margin-top: 8px;
}
.empty-btn{
margin-top: 24px;
span{
width: 88px;
height: 32px;
border-radius: 4px 4px 4px 4px;
line-height: 32px;
text-align: center;
display: inline-block;
font-size: 14px;
cursor: pointer;
}
.add{
color: #0081FF;
border: 1px solid #0081FF;
margin-right: 16px;
}
.add1{
color: #FFFFFF;
background: #0081FF;
border: 1px solid #0081FF;
}
}
}
}
::v-deep .dialogAdd{
......
<template>
<!--监控维度设置-->
<div class="app-container MonitorSettings">
<div class="content">
<div class="content" style="height: 100%;">
<div class="m-title">监控维度设置</div>
<div class="m-main">
<div class="main-item">
......@@ -127,7 +127,7 @@
rulesDetail({}).then(res => {
console.log(res)
if(res.data){
let dimension=res.data.dimension.split(',');
this.queryParams={
pushFrequency:res.data.pushFrequency.toString(),
receiveMode:res.data.receiveMode.toString(),
......@@ -135,11 +135,15 @@
}
this.startTime =res.data.timePeriodStart
this.endTime = res.data.timePeriodEnd
for(let item in dimension){
if (this.arr.indexOf(dimension[item]) == -1) {
this.gsfx.push(dimension[item])
} else {
this.sffx.push(dimension[item])
if(res.data.dimension){
let dimension=res.data.dimension.split(',');
for(let item in dimension){
if (this.arr.indexOf(dimension[item]) == -1) {
console.log(dimension[item])
this.gsfx.push(dimension[item])
} else {
this.sffx.push(dimension[item])
}
}
}
}
......
......@@ -65,7 +65,7 @@
</div>
<div class="content">
<div class="total">{{tableDataTotal}}</div>
<div class="total" v-if="tableDataTotal > 0 && !isSkeleton">{{tableDataTotal}}</div>
<div class="table-item">
<div v-if="tableDataTotal > 0 && !isSkeleton">
<el-table
......@@ -96,8 +96,6 @@
label="操作"
align="center"
width="150"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span style="cursor: pointer;color:#0081FF;" @click="handleDetail(scope.row)">查看详情</span>
......@@ -108,8 +106,8 @@
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<div class="p1">暂未发现企业风险动态信息</div>
<!--<div class="p2">建议调整关键词或筛选条件,重新搜索</div>-->
</div>
</div>
<div class="pagination-box" v-if="tableDataTotal>queryParams.pageSize">
......@@ -376,7 +374,6 @@
el.Array.push({key:i,value:j})
}
})
console.log(this.tableData)
})
},
getDetail(name,id) {
......@@ -718,10 +715,11 @@
top: -6px;
opacity: 0;
line-height: 22px;
.el-input {
::v-deep .el-input {
width: 100%;
line-height: 22px;
.el-input__inner {
color: rgba(35,35,35,0.8);
width: 100%;
height: 22px !important;
}
......@@ -744,6 +742,12 @@
margin-right: 24px;
}
}
::v-deep .el-radio{
color: rgba(35,35,35,0.8);
}
::v-deep .el-checkbox__label{
color: rgba(35,35,35,0.8);
}
::v-deep .el-checkbox{
margin-right: 10px;
}
......@@ -797,7 +801,6 @@
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
......
......@@ -48,8 +48,11 @@
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<div class="p1">当前暂无监控报告</div>
<!--<div class="p2">建议调整关键词或筛选条件,重新搜索</div>-->
</div>
<div class="pagination-box" v-if="tableDataTotal>queryParams.pageSize" style="background: #ffffff;margin-top: 16px;padding-right: 16px;">
<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>
</div>
......@@ -89,7 +92,6 @@
methods: {
async querySubmit() {
reportPage(this.queryParams).then(res => {
console.log(res)
this.isSkeleton = false;
this.dataList=res.rows;
this.tableDataTotal=res.total
......@@ -100,7 +102,19 @@
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.querySubmit()
}
},
// 重置页数
handleSizeChange(val) {
this.queryParams.pageNum = 1
this.queryParams.pageSize = val
this.querySubmit()
},
// 跳转指定页数
handleCurrentChange(val) {
this.queryParams.pageNum = val
this.querySubmit()
window.scrollTo(0, 0);
},
}
}
</script>
......@@ -237,7 +251,6 @@
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
background: #ffffff;
.img{
width: 108px;
......
<template>
<div class="app-container enterprise_contatiner">
<div class="header">
<div class="title_wrap">
<div class="enterprise_title">
评标助手
</div>
</div>
<el-tabs v-model="activeName" >
<el-tab-pane label="查资质" name="first"></el-tab-pane>
<el-tab-pane label="现行资质标准" name="second"></el-tab-pane>
......@@ -34,13 +39,12 @@ export default {
<style lang="scss" scoped>
.header{
justify-content: space-between;
height: 48px;
background: #FFFFFF;
border-radius: 4px 4px 0 0 ;
border-bottom: 1px solid #EEEEEE;
color: #232323;
position: sticky;
top: 0;
top: -16px;
z-index: 999;
::v-deep .el-tabs{
height: 48px;
......
......@@ -70,7 +70,7 @@
</p>
<p>
<label class="label">公司性质</label>
<span></span>
<span>{{custmerInfo.customerProperty || '--'}}</span>
<label class="label">资质等级</label>
<span>{{custmerInfo.credential || '--'}}</span>
</p>
......
......@@ -106,9 +106,19 @@
<template slot-scope="scope">
<div class="renling">
<div style="display:flex;align-items:center">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
<div slot="content">{{scope.row.customerText}}</div>
<div class="renling">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</el-tooltip>
<div class="renling" v-else>
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</div>
</div>
......@@ -138,7 +148,15 @@
</el-table-column>
<el-table-column label="专业类别" min-width="85" :resizable="false">
<template slot-scope="scope">
{{scope.row.groupSpecialty||"--"}}
<el-tooltip placement="top" v-if="scope.row.groupSpecialty.length>35">
<div slot="content">{{scope.row.groupSpecialty}}</div>
<span class="ellipsis">
{{scope.row.groupSpecialty||"--"}}
</span>
</el-tooltip>
<span class="ellipsis" v-else>
{{scope.row.groupSpecialty||"--"}}
</span>
</template>
</el-table-column>
<el-table-column label="法人代表" min-width="85" :resizable="false">
......@@ -158,7 +176,15 @@
</el-table-column>
<el-table-column label="施工承包范围" min-width="120" :resizable="false">
<template slot-scope="scope">
{{scope.row.constructJobScope||"--"}}
<el-tooltip placement="top-start" v-if="scope.row.constructJobScope.length>35">
<div slot="content">{{scope.row.constructJobScope}}</div>
<div class="ellipsis">
<span>{{scope.row.constructJobScope||"--"}}</span>
</div>
</el-tooltip>
<div class="ellipsis" v-else>
<span>{{scope.row.constructJobScope||"--"}}</span>
</div>
</template>
</el-table-column>
<el-table-column label="资质等级" min-width="85" :resizable="false">
......@@ -181,7 +207,7 @@
{{scope.row.contactPhone||"--"}}
</template>
</el-table-column>
<el-table-column label="准入时间" min-width="120" :resizable="false">
<el-table-column label="准入时间" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.approveDate2||"--"}}
</template>
......@@ -419,6 +445,9 @@
this.isSkeleton = false
this.tableData = res.rows
this.total = res.total
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
})
})
},
handleCurrentChange(val){
......
......@@ -111,9 +111,19 @@
<template slot-scope="scope">
<div class="renling">
<div style="display:flex;align-items:center">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
<div slot="content">{{scope.row.customerText}}</div>
<div class="renling">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</el-tooltip>
<div class="renling" v-else>
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</div>
</div>
......@@ -216,7 +226,7 @@
{{scope.row.serviceTeamSpeciality||"--"}}
</template>
</el-table-column>
<el-table-column label="准入时间" min-width="120" :resizable="false">
<el-table-column label="准入时间" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.approveDate2||"--"}}
</template>
......@@ -456,6 +466,9 @@
this.isSkeleton = false
this.tableData = res.rows
this.total = res.total
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
})
})
},
handleCurrentChange(val){
......
......@@ -96,10 +96,18 @@
<el-table-column label="供应商编号" prop="customerCode" :fixed="tableColumnFixed" width="120" :resizable="false">
</el-table-column>
<el-table-column label="供应商名称" :fixed="tableColumnFixed" width="380" :resizable="false">
<template slot-scope="scope">
<div class="renling">
<div style="display:flex;align-items:center">
<el-table-column label="供应商名称" :fixed="tableColumnFixed" width="305" :resizable="false">
<template slot-scope="scope">
<div style="display:flex;align-items:center">
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
<div slot="content">{{scope.row.customerText}}</div>
<div class="renling">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</el-tooltip>
<div class="renling" v-else>
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
......@@ -135,9 +143,17 @@
{{scope.row.customerClass||"--"}}
</template>
</el-table-column>
<el-table-column label="专业类别" min-width="185" :resizable="false">
<el-table-column label="专业类别" min-width="520" :resizable="false">
<template slot-scope="scope">
{{scope.row.groupSpecialty||"--"}}
<el-tooltip placement="top" v-if="scope.row.groupSpecialty.length>35">
<div slot="content">{{scope.row.groupSpecialty}}</div>
<span class="ellipsis">
{{scope.row.groupSpecialty||"--"}}
</span>
</el-tooltip>
<span class="ellipsis" v-else>
{{scope.row.groupSpecialty||"--"}}
</span>
</template>
</el-table-column>
<el-table-column label="纳税人身份" min-width="120" :resizable="false">
......@@ -183,9 +199,17 @@
{{scope.row.serviceTeamSpeciality||"--"}}
</template>
</el-table-column>
<el-table-column label="施工承包范围" min-width="200" :resizable="false">
<el-table-column label="施工承包范围" min-width="520" :resizable="false">
<template slot-scope="scope">
{{scope.row.constructJobScope||"--"}}
<el-tooltip placement="top-start" v-if="scope.row.constructJobScope.length>35">
<div slot="content">{{scope.row.constructJobScope}}</div>
<div class="ellipsis">
<span>{{scope.row.constructJobScope||"--"}}</span>
</div>
</el-tooltip>
<div class="ellipsis" v-else>
<span>{{scope.row.constructJobScope||"--"}}</span>
</div>
</template>
</el-table-column>
<el-table-column label="资质等级" min-width="120" :resizable="false">
......@@ -208,7 +232,7 @@
{{scope.row.contactPhone||"--"}}
</template>
</el-table-column>
<el-table-column label="准入时间" min-width="120" :resizable="false">
<el-table-column label="准入时间" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.approveDate2||"--"}}
</template>
......@@ -454,6 +478,9 @@
this.tableData = res.rows
this.total = res.total
this.isSkeleton = false
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
})
})
},
handleCurrentChange(val){
......
......@@ -100,7 +100,15 @@
<el-table-column label="供应商名称" :fixed="tableColumnFixed" width="380" :resizable="false">
<template slot-scope="scope">
<div class="renling">
<div style="display:flex;align-items:center">
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
<div slot="content">{{scope.row.customerText}}</div>
<div class="renling">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</el-tooltip>
<div class="renling" v-else>
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
......@@ -133,7 +141,15 @@
</el-table-column>
<el-table-column label="专业类别" min-width="85" :resizable="false">
<template slot-scope="scope">
{{scope.row.groupSpecialty||"--"}}
<el-tooltip placement="top" v-if="scope.row.groupSpecialty.length>35">
<div slot="content">{{scope.row.groupSpecialty}}</div>
<span class="ellipsis">
{{scope.row.groupSpecialty||"--"}}
</span>
</el-tooltip>
<span class="ellipsis" v-else>
{{scope.row.groupSpecialty||"--"}}
</span>
</template>
</el-table-column>
<el-table-column label="法人代表" min-width="85" :resizable="false">
......@@ -153,7 +169,15 @@
</el-table-column>
<el-table-column label="施工承包范围" min-width="120" :resizable="false">
<template slot-scope="scope">
{{scope.row.constructJobScope||"--"}}
<el-tooltip placement="top-start" v-if="scope.row.constructJobScope.length>35">
<div slot="content">{{scope.row.constructJobScope}}</div>
<div class="ellipsis">
<span>{{scope.row.constructJobScope||"--"}}</span>
</div>
</el-tooltip>
<div class="ellipsis" v-else>
<span>{{scope.row.constructJobScope||"--"}}</span>
</div>
</template>
</el-table-column>
<el-table-column label="资质等级" min-width="85" :resizable="false">
......@@ -176,7 +200,7 @@
{{scope.row.contactPhone||"--"}}
</template>
</el-table-column>
<el-table-column label="准入时间" min-width="120" :resizable="false">
<el-table-column label="准入时间" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.approveDate2||"--"}}
</template>
......@@ -415,6 +439,9 @@
this.isSkeleton = false
this.tableData = res.rows
this.total = res.total
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
})
})
},
handleCurrentChange(val){
......
......@@ -101,9 +101,19 @@
<template slot-scope="scope">
<div class="renling">
<div style="display:flex;align-items:center">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
<div slot="content">{{scope.row.customerText}}</div>
<div class="renling">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</el-tooltip>
<div class="renling" v-else>
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</div>
</div>
......@@ -133,7 +143,15 @@
</el-table-column>
<el-table-column label="专业类别" min-width="85" :resizable="false">
<template slot-scope="scope">
{{scope.row.groupSpecialty||"--"}}
<el-tooltip placement="top" v-if="scope.row.groupSpecialty.length>35">
<div slot="content">{{scope.row.groupSpecialty}}</div>
<span class="ellipsis">
{{scope.row.groupSpecialty||"--"}}
</span>
</el-tooltip>
<span class="ellipsis" v-else>
{{scope.row.groupSpecialty||"--"}}
</span>
</template>
</el-table-column>
<el-table-column label="法人代表" min-width="85" :resizable="false">
......@@ -171,7 +189,7 @@
{{scope.row.contactPhone||"--"}}
</template>
</el-table-column>
<el-table-column label="准入时间" min-width="120" :resizable="false">
<el-table-column label="准入时间" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.approveDate2||"--"}}
</template>
......@@ -409,6 +427,9 @@
this.isSkeleton = false
this.tableData = res.rows
this.total = res.total
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
})
})
},
handleCurrentChange(val){
......
......@@ -101,9 +101,19 @@
<template slot-scope="scope">
<div class="renling">
<div style="display:flex;align-items:center">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
<div slot="content">{{scope.row.customerText}}</div>
<div class="renling">
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</el-tooltip>
<div class="renling" v-else>
<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}?path=cooperationRecord&companyName=${scope.row.customerName}`" tag="a"
class="wordprimary" v-html="scope.row.customerName"></router-link>
<span v-else v-html="scope.row.customerName"></span>
</div>
</div>
</div>
......@@ -171,7 +181,7 @@
{{scope.row.contactPhone||"--"}}
</template>
</el-table-column>
<el-table-column label="准入时间" min-width="120" :resizable="false">
<el-table-column label="准入时间" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.approveDate2||"--"}}
</template>
......@@ -409,6 +419,9 @@
this.isSkeleton = false
this.tableData = res.rows
this.total = res.total
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
})
})
},
handleCurrentChange(val){
......
......@@ -18,8 +18,6 @@
<el-table-column
label="操作"
align="left"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span v-if="scope.row.status===0" style="cursor: pointer;margin-right: 16px;color: #0081FF;" @click="handleClick(scope.row,1)">停用</span>
......
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