Commit 988b7892 authored by Administrator's avatar Administrator

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

parents 72b37200 fae78afc
...@@ -71,6 +71,16 @@ public class SysConfigController extends BaseController { ...@@ -71,6 +71,16 @@ public class SysConfigController extends BaseController {
*/ */
@GetMapping(value = "/configKey/{configKey}") @GetMapping(value = "/configKey/{configKey}")
public R<Void> getConfigKey(@PathVariable String configKey) { public R<Void> getConfigKey(@PathVariable String configKey) {
return R.ok(configService.selectConfigValueByKey(configKey));
}
/**
* 根据参数键名查询参数值
*
* @param configKey 参数Key
*/
@GetMapping(value = "/key/{configKey}")
public R<SysConfig> getConfig(@PathVariable String configKey) {
return R.ok(configService.selectConfigByKey(configKey)); return R.ok(configService.selectConfigByKey(configKey));
} }
...@@ -161,4 +171,13 @@ public class SysConfigController extends BaseController { ...@@ -161,4 +171,13 @@ public class SysConfigController extends BaseController {
DskAccessTokenVO dskAccessTokenVO = configService.getDskAccessToken(); DskAccessTokenVO dskAccessTokenVO = configService.getDskAccessToken();
return R.ok(dskAccessTokenVO); return R.ok(dskAccessTokenVO);
} }
/**
* 根据键修改值
*/
@PutMapping(value = "/updateValue")
public R<Void> updateByConfigKey(@RequestBody SysConfig config) {
configService.updateByConfigKey(config);
return R.ok();
}
} }
package com.dsk.web.controller.system;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.SysPush;
import com.dsk.system.service.ISysPushService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 系统推送(SysPush)表控制层
*
* @author lcl
* @since 2023-12-14 10:09:24
*/
@RestController
@RequestMapping("sysPush")
public class SysPushController extends BaseController {
/**
* 服务对象
*/
@Autowired
private ISysPushService baseService;
/**
* 推送分页列表
*/
@GetMapping("/pageList")
public TableDataInfo<SysPush> pageList(SysPush bean, PageQuery query) {
return baseService.pageList(bean, query);
}
/**
* 添加推送人
*/
@PostMapping
public R<Void> add(@RequestBody SysPush bean) {
return toAjax(baseService.save(bean));
}
/**
* 修改推送状态
*/
@PutMapping("/updateStatus")
public R<Void> updateStatus(@RequestBody SysPush bean) {
return toAjax(baseService.update(Wrappers.<SysPush>lambdaUpdate()
.set(SysPush::getStatus, bean.getStatus()).eq(SysPush::getId, bean.getId())));
}
/**
* 删除推送人
*/
@DeleteMapping("/{id}")
public R<Void> del(@PathVariable Long id) {
return toAjax(baseService.removeById(id));
}
}
...@@ -163,6 +163,12 @@ tenant: ...@@ -163,6 +163,12 @@ tenant:
- sys_user_file_record - sys_user_file_record
- sys_oss_config - sys_oss_config
- sys_region - sys_region
- d_customer
- d_project
- d_subcontract
- sys_advisory_body
- dim_area
- biz_dict_data
# MyBatisPlus配置 # MyBatisPlus配置
......
...@@ -82,5 +82,7 @@ public interface Constants { ...@@ -82,5 +82,7 @@ public interface Constants {
String CONTENT_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; String CONTENT_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
String STATUTORY_HOLIDAY_ADDR = "https://timor.tech/api/holiday/year/";
} }
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import com.dsk.cscec.service.IDProjectService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
/**
* 咨询机构管理控制层
*
* @author sxk
* @since 2023-12-10 15:34:46
*/
@RestController
@RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController {
/**
* 服务对象
*/
@Resource
private IDProjectService baseService;
/**
* 获取所有项目列表数据
*/
@GetMapping("/getProjectList")
public TableDataInfo<ProjectSearchVo> getProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery) {
return baseService.queryProjectList(projectSearchBo, pageQuery);
}
/**
* 获取所有企业列表(咨询机构)数据
*/
@GetMapping("/getAdvisoryBodyList")
public TableDataInfo<AdvisoryBodySearchVo> getAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery) {
return baseService.queryAdvisoryBodyList(advisoryBodySearchBo, pageQuery);
}
/**
* 获取合作项目明细
*/
@GetMapping("/getCooperateProjectDetailList")
public TableDataInfo<CooperateProjectDetailSearchVo> getCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) {
return baseService.queryCooperateProjectDetailList(cooperateProjectDetailSearchBo, pageQuery);
}
/**
* 根据项目主键查询项目详情
*/
@GetMapping("/getProjectDetail/{projectKey}")
public R<ProjectDetailVo> getProjectDetail(@NotNull(message = "项目主键不能为空") @PathVariable Long projectKey) {
return R.ok(baseService.queryProjectDetail(projectKey));
}
}
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.TreeSelect;
import com.dsk.cscec.domain.bo.BizDictDataBo;
import com.dsk.cscec.service.IBizDictDataService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 字典相关
*
* @author
* @since 2023-12-10
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("/bizDictData")
public class BizDictDataController extends BaseController {
/**
* 服务对象
*/
private final IBizDictDataService iBizDictDataService;
/**
* 查询业务数据字典树形列表
*
* @return
*/
@GetMapping("/tree")
public R<List<TreeSelect>> tree(@Validated BizDictDataBo bo) {
return R.ok(iBizDictDataService.buildDeptTreeSelect(bo));
}
}
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.service.ICustomerInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
/**
* 供应商相关
*
* @author
* @since 2023-12-10
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("/customerInfo")
public class CustomerInfoController extends BaseController {
/**
* 服务对象
*/
private final ICustomerInfoService iCustomerInfoService;
/**
* 供应商分类列表
*/
@PostMapping("/list")
public TableDataInfo<CustomerInfoVo> list(@Validated @RequestBody CustomerInfoBo bo,@RequestBody PageQuery query) {
return iCustomerInfoService.queryPageList(bo, query);
}
/**
* 合作记录-供应商准入情况
*/
@GetMapping("/getByName/{name}")
public R<DCustomer> list(@NotEmpty(message = "企业名称不能为空") @PathVariable String name) {
return R.ok(iCustomerInfoService.queryByName(name));
}
}
package com.dsk.cscec.controller; package com.dsk.cscec.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
...@@ -10,14 +8,9 @@ import com.dsk.common.core.page.TableDataInfo; ...@@ -10,14 +8,9 @@ import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer; import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo; import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.service.IDCustomerService; import com.dsk.cscec.service.IDCustomerService;
import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.vo.SysDeptVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/** /**
* 组织维表(DCustomer)表控制层 * 组织维表(DCustomer)表控制层
* *
...@@ -37,7 +30,7 @@ public class DCustomerController extends BaseController { ...@@ -37,7 +30,7 @@ public class DCustomerController extends BaseController {
* 供应商总台账筛选 * 供应商总台账筛选
*/ */
@PostMapping("/all/searchList") @PostMapping("/all/searchList")
public TableDataInfo<DCustomer> allSearchList(@RequestBody DCustomerSearchBo bo, PageQuery query) { public TableDataInfo<DCustomer> allSearchList(@RequestBody DCustomerSearchBo bo,@RequestBody PageQuery query) {
return baseService.allSearchList(bo,query); return baseService.allSearchList(bo,query);
} }
......
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.cscec.service.IDProjectService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 项目维表(DProject)表控制层
*
* @author makejava
* @since 2023-12-10 15:34:46
*/
@RestController
@RequestMapping("dProject")
public class DProjectController extends BaseController {
/**
* 服务对象
*/
@Resource
private IDProjectService IDProjectService;
///**
// * 分页查询所有数据
// *
// * @param page 分页对象
// * @param dProject 查询实体
// * @return 所有数据
// */
//@GetMapping
//public R selectAll(Page<DProject> page, DProject dProject) {
// return success(this.dProjectService.page(page, new QueryWrapper<>(dProject)));
//}
//
///**
// * 通过主键查询单条数据
// *
// * @param id 主键
// * @return 单条数据
// */
//@GetMapping("{id}")
//public R selectOne(@PathVariable Serializable id) {
// return success(this.dProjectService.getById(id));
//}
//
///**
// * 新增数据
// *
// * @param dProject 实体对象
// * @return 新增结果
// */
//@PostMapping
//public R insert(@RequestBody DProject dProject) {
// return success(this.dProjectService.save(dProject));
//}
//
///**
// * 修改数据
// *
// * @param dProject 实体对象
// * @return 修改结果
// */
//@PutMapping
//public R update(@RequestBody DProject dProject) {
// return success(this.dProjectService.updateById(dProject));
//}
//
///**
// * 删除数据
// *
// * @param idList 主键结合
// * @return 删除结果
// */
//@DeleteMapping
//public R delete(@RequestParam("idList") List<Long> idList) {
// return success(this.dProjectService.removeByIds(idList));
//}
}
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.vo.RegionVo;
import com.dsk.cscec.service.IDimAreaService;
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;
/**
* (DimArea)表控制层
*
* @author lcl
* @since 2023-12-13 13:45:22
*/
@RestController
@RequestMapping("/area")
public class DimAreaController extends BaseController {
/**
* 服务对象
*/
@Resource
private IDimAreaService baseService;
/**
* 获取地区树
*/
@GetMapping("/all")
public R<List<RegionVo>> allArea(){
return R.ok(baseService.allArea());
}
/**
* 获取地区树(不含区域)
*/
@GetMapping("/all/withoutRegion")
public R<List<RegionVo>> allAreaWithoutRegion(){
return R.ok(baseService.allAreaWithoutRegion());
}
}
package com.dsk.cscec.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 咨询机构(SysAdvisoryBody)表实体类
*
* @author sxk
* @since 2023-12-12 10:12:06
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AdvisoryBody implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 咨询机构ID
*/
@TableId(value = "advisory_body_id")
private Long advisoryBodyId;
/**
* 咨询机构cid(用于查询建设库数据)
*/
private Integer advisoryBodyCid;
/**
* 项目主键(用作关联d_project)
*/
private Long projectKey;
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 法人代表
*/
private String legalPerson;
/**
* 法人联系电话
*/
private String legalPersonPhone;
/**
* 注册地址
*/
private String regAddress;
/**
* 项目负责人
*/
private String projectLeader;
/**
* 项目负责人专业
*/
private String projectLeaderMajor;
/**
* 项目负责人联系电话
*/
private String projectLeaderPhone;
/**
* 结算金额(万元)
*/
private BigDecimal settleAmount;
/**
* 结算开始时间
*/
private Date settleStartTime;
/**
* 结算完成时间
*/
private Date settleFinishTime;
/**
* 是否为终审单位(0代表是 1代表否)
*/
private String isFinalJudgeUnit;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
}
package com.dsk.cscec.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 业务数据字典对象 biz_dict_data
*
* @author ruoyi
* @date 2021-11-08
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("biz_dict_data")
public class BizDictData implements Serializable {
private static final long serialVersionUID=1L;
/**
* 编码
*/
@TableId(value = "id")
private String id;
private String ancestors;
/**
* 字典编码
*/
private String code;
/**
* 字典名称
*/
private String name;
/**
* 系统字典表 biz_dict_data_type
*/
private String type;
/**
* 字典父级id
*/
private String parentId;
@TableField(exist = false)
private String parentName;
/**
* 备注
*/
private String remark;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
@TableField(exist = false)
private List<BizDictData> children = new ArrayList<BizDictData>();
}
package com.dsk.cscec.domain;
import java.io.Serializable;
import lombok.Data;
/**
* (DimArea)表实体类
*
* @author lcl
* @since 2023-12-13 13:45:22
*/
@Data
public class DimArea implements Serializable {
private static final long serialVersionUID = 1L;
private Integer areaKey;
private String areaCode;
private String areaName;
/**
* 地区
*/
private String areaName1;
/**
* 省
*/
private String areaName2;
/**
* 省简写
*/
private String areaAbbrName2;
private String areaName3;
private Integer levelNo;
private String isleaf;
private String isvalid;
private String remark;
private String areaId;
private String parentId;
private String loadTime;
}
package com.dsk.cscec.domain;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
* Treeselect树结构实体类
*
* @author ruoyi
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class TreeSelect implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 节点ID
*/
private String id;
/**
* 节点名称
*/
private String label;
/**
* 子节点
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<TreeSelect> children;
public TreeSelect(BizDictData dept) {
this.id = dept.getId();
this.label = dept.getName();
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
}
package com.dsk.cscec.domain.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author sxk
* @date 2023.12.13
* @time 10:33
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AdvisoryBodySearchBo {
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 最小最近合作时间
*/
private Date minLastCooperateDate;
/**
* 最大最近合作时间
*/
private Date maxLastCooperateDate;
/**
* 经营范围
*/
private String businessScope;
}
package com.dsk.cscec.domain.bo;
import com.dsk.common.core.domain.BaseEntity;
import com.dsk.common.core.validate.AddGroup;
import com.dsk.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 业务数据字典业务对象 biz_dict_data
*
* @author ruoyi
* @date 2021-11-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class BizDictDataBo extends BaseEntity {
/**
* 编码
*/
@NotNull(message = "编码不能为空", groups = { EditGroup.class })
private String id;
/**
* 字典编码
*/
private String code;
/**
* 字典名称
*/
@NotBlank(message = "字典名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 系统字典表 biz_dict_data_type
*/
@NotBlank(message = "系统字典表 biz_dict_data_type不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
/**
* 字典父级id
*/
@NotNull(message = "字典父级id不能为空", groups = { AddGroup.class, EditGroup.class })
private String parentId;
/**
* 分页大小
*/
private Integer pageSize;
/**
* 当前页数
*/
private Integer pageNum;
/**
* 排序列
*/
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
private String isAsc;
/**
* 祖级列表
*/
private String ancestors;
}
package com.dsk.cscec.domain.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author sxk
* @date 2023.12.14
* @time 14:17
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CooperateProjectDetailSearchBo {
/**
* 咨询机构ID
*/
private Long advisoryBodyId;
/**
* 项目名称
*/
private String projectName;
/**
* 省
*/
private List<String> provinceName;
/**
* 市
*/
private List<String> cityName;
/**
* 项目承接类型
*/
private List<String> isinvestproject;
/**
* 工程基础大类
*/
private List<String> projectType1;
/**
* 工程类别明细
*/
private List<String> projectType;
}
package com.dsk.cscec.domain.bo;
import com.dsk.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;
/**
* 供应商分类查询
*
* @author
* @since 2023-12-10
*/
@Data
public class CustomerInfoBo extends BaseEntity {
/**
* 供应商类别(分供,劳务分包,专业分包,租赁,劳务分包队伍)
*/
@NotEmpty(message = "供应商类别不能为空")
private String customerClass;
/**
* 劳务队伍标志(Y N)
*/
private String serviceTeamLogo;
/**
* 供应商名称
*/
private String customerName;
/**
* 注册地区域(东北地区,华东地区,华中地区,华北地区,华南地区,西北地区,西南地区)
*/
private List<String> registerRegion;
/**
* 省份
*/
private List<String> registerProvince;
/**
* 城市
*/
private List<String> registerCity;
/**
* 供应商状态(不合格,优质,合格,移出,预警)
*/
private List<String> customerState;
/**
* 资质等级(一级,二级,三级,不分等级,特级)
*/
private List<String> credential;
/**
* 专业类别id
*/
private List<String> groupSpecialtyId;
/**
* 集团专业类别
*/
private String groupSpecialty;
/**
* 考评等级(A,B,C,Z)
*/
private List<String> creditLevel;
/**
* 纳税人身份(一般纳税人,小规模纳税人)
*/
private List<String> paytaxType;
/**
* 纳税人税率(免税,3%,6%,11%,17%)
*/
private List<String> taxRate;
/**
* 准入时间开始
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date approveDate2Start;
/**
* 准入时间结束
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date approveDate2End;
/**
* 队长名称
*/
private String leaderName;
}
package com.dsk.cscec.domain.bo;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author sxk
* @date 2023.12.11
* @time 14:01
*/
@Data
public class ProjectSearchBo {
/**
* 项目名称
*/
private String projectName;
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 业主单位
*/
private String ownerUnit;
/**
* 承接项目单位
*/
private String undertakeProjectUnit;
/**
* 项目创建开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date projectStartTime;
/**
* 项目创建结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date projectEndTime;
/**
* 项目承接类型
*/
private String projectUndertakeType;
/**
* 工程基础大类
*/
private String engineeringFoundationCategory;
/**
* 工程类别明细
*/
private String engineeringCategoryDetail;
/**
* 最小合同金额
*/
private Double minContractAmount;
/**
* 最大合同金额
*/
private Double maxContractAmount;
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author sxk
* @date 2023.12.13
* @time 10:32
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AdvisoryBodySearchVo extends AdvisoryBody {
/**
* 最近一次合作时间
*/
private Date lastCooperateTime;
/**
* 经营状态
*/
private String businessStatus;
/**
* 法定代表人
*/
private String corporatePerson;
/**
* 注册资本
*/
private String regCapital;
/**
* 注册地区
*/
private String regArea;
/**
* 成立日期
*/
private String registeredDate;
/**
* 经营范围
*/
private String businessScope;
/**
* 合作项目数量
*/
private Long cooperateProjectCount;
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author sxk
* @date 2023.12.14
* @time 13:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CooperateProjectDetailSearchVo {
/**
* 项目主键
*/
private Long projectKey;
/**
* 项目ID
*/
private String projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 项目编码
*/
private String projectCode;
/**
* 省市
*/
private String provinceName;
/**
* 市区
*/
private String cityName;
/**
* 项目承接类型
*/
private String isinvestproject;
/**
* 工程基础大类
*/
private String projectType1;
/**
* 工程类别明细
*/
private String projectType;
/**
* 合同金额
*/
private BigDecimal contractOrigValue;
/**
* 结算天数(天)
*/
private Long settlementDays;
/**
* 业主单位
*/
private String ownerName;
/**
* 项目承接单位
*/
private String contractOrgName;
/**
* 咨询机构(咨询机构表)
*/
private AdvisoryBody advisoryBody;
/**
* 创建时间(合同生效日期)
*/
private Date contractSignDate;
}
package com.dsk.cscec.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.Data;
import java.util.Date;
/**
* 供应商分类查询
*
* @author
* @since 2023-12-10
*/
@Data
@ExcelIgnoreUnannotated
public class CustomerInfoVo {
private static final long serialVersionUID = 1L;
/**
* 客商主键
*/
private Long customerKey;
/**
* ipm供应商id
*/
private String customerId;
/**
* 供应商编号
*/
private String customerCode;
/**
* 供应商名称
*/
private String customerName;
/**
* 供应商状态
*/
private String customerState;
/**
* 推荐公司ID
*/
private String recommendOrgId;
/**
* 推荐公司
*/
private String recommendOrg;
/**
* 注册地区域
*/
private String registerRegion;
/**
* 省份
*/
private String registerProvince;
/**
* 城市
*/
private String registerCity;
/**
* 集团专业类别
*/
private String groupSpecialty;
/**
* 法人代表
*/
private String representative;
/**
* 纳税人身份
*/
private String paytaxType;
/**
* 纳税人税率
*/
private String taxRate;
/**
* 施工承包范围
*/
private String constructJobScope;
/**
* 资质等级
*/
private String credential;
/**
* 注册资金
*/
private Double registerCapital;
/**
* 联系人
*/
private String contactPerson;
/**
* 联系人电话
*/
private String contactPhone;
/**
* 准入时间
*/
private Date approveDate2;
/**
* 供应商类别
*/
private String customerClass;
/**
* 考评等级
*/
private String creditLevel;
/**
* 二级市场企业编码
*/
private String secondaryCode;
/**
* 统一社会信用代码/营业执照号码
*/
private String unifySocialCode;
/**
* 队长名称
*/
private String leaderName;
/**
* 劳务队长身份证号
*/
private String laborCaptainIdcard;
/**
* 劳务队长联系电话
*/
private String laborCaptainPhone;
/**
* 队伍规模人数
*/
private Double serviceTeamPersonnum;
/**
* 专业特长
*/
private String serviceTeamSpeciality;
/**
* 公司合作数量
*/
private Integer enterpriseCooperationCount;
/**
* 合作项目数量
*/
private Integer projectCooperationCount;
/**
* jsk企业id
*/
private Integer companyId;
/**
* 资源平台分类
*/
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.DProject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* @author sxk
* @date 2023.12.14
* @time 16:18
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectDetailVo extends DProject {
/**
* 咨询机构名称
*/
private String advisoryBodyName;
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author sxk
* @date 2023.12.11
* @time 14:01
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProjectSearchVo {
/**
* 项目主键
*/
private Long projectKey;
/**
* 项目ID
*/
private String projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 项目编码
*/
private String projectCode;
/**
* 省市
*/
private String provinceName;
/**
* 项目承接类型
*/
private String isinvestproject;
/**
* 工程基础大类
*/
private String projectType1;
/**
* 工程类别明细
*/
private String projectType;
/**
* 合同金额
*/
private BigDecimal contractOrigValue;
/**
* 业主单位
*/
private String ownerName;
/**
* 项目承接单位
*/
private String contractOrgName;
/**
* 咨询机构(咨询机构表)
*/
private AdvisoryBody advisoryBody;
/**
* 创建时间(合同生效日期)
*/
private Date contractSignDate;
}
package com.dsk.cscec.domain.vo;
import lombok.Data;
import java.util.List;
/**
* @Author lcl
* @Data 2023/12/13 14:14
*/
@Data
public class RegionVo {
String value;
List<RegionVo> children;
}
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.BizDictData;
import com.dsk.cscec.domain.bo.BizDictDataBo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 业务数据字典Mapper接口
*
* @author ruoyi
* @date 2021-11-08
*/
public interface BizDictDataMapper extends BaseMapper<BizDictData> {
public List<Long> findIdByName(String name);
BizDictData findByNameAndType(@Param("name") String name, @Param("type") String type);
int countByName(@Param("name") String name, @Param("type") String type);
List<BizDictData> exportListVo(@Param("bo") BizDictDataBo bo);
/**
* 根据ID查询相关数据
*
* @param id
* @return 查询到的数据
*/
BizDictData queryByID(Long id);
}
...@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.cscec.domain.DCustomer; import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.bo.DCustomerSearchBo; import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -20,5 +22,13 @@ public interface DCustomerMapper extends BaseMapper<DCustomer> { ...@@ -20,5 +22,13 @@ public interface DCustomerMapper extends BaseMapper<DCustomer> {
Page<DCustomer> allSearchList(IPage<DCustomerSearchBo> build, @Param("bo") DCustomerSearchBo bo); Page<DCustomer> allSearchList(IPage<DCustomerSearchBo> build, @Param("bo") DCustomerSearchBo bo);
/**
* 分类查询供应商列表
* @param build
* @param bo
* @return
*/
Page<CustomerInfoVo> queryListByType(IPage<CustomerInfoBo> build, @Param("bo") CustomerInfoBo bo);
} }
package com.dsk.cscec.mapper; package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.DProject; import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 项目维表(DProject)表数据库访问层 * 项目维表(DProject)表数据库访问层
...@@ -10,6 +16,14 @@ import com.dsk.cscec.domain.DProject; ...@@ -10,6 +16,14 @@ import com.dsk.cscec.domain.DProject;
* @since 2023-12-10 15:34:46 * @since 2023-12-10 15:34:46
*/ */
public interface DProjectMapper extends BaseMapper<DProject> { public interface DProjectMapper extends BaseMapper<DProject> {
/**
* 获取所有项目列表数据
*/
Page<ProjectSearchVo> selectPageProjectList(@Param("page") Page<ProjectSearchVo> page, @Param(Constants.WRAPPER) Wrapper<DProject> queryWrapper);
/**
* 获取合作项目明细
*/
Page<CooperateProjectDetailSearchVo> selectPageCooperateProjectDetailList(@Param("page") Page<CooperateProjectDetailSearchVo> page, @Param(Constants.WRAPPER) Wrapper<DProject> Wrapper);
} }
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.DimArea;
/**
* (DimArea)表数据库访问层
*
* @author lcl
* @since 2023-12-13 13:45:22
*/
public interface DimAreaMapper extends BaseMapper<DimArea> {
}
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.AdvisoryBody;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
/**
* 咨询机构(SysAdvisoryBody)表数据库访问层
*
* @author sxk
* @since 2023-12-12 10:12:04
*/
public interface SysAdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
/**
* 查询最近一次合作时间
*/
Date selectLastCooperateTime(@Param("advisoryBodyId") Long advisoryBodyId);
/**
* 获取所有企业列表(咨询机构)数据
*/
Page<AdvisoryBodySearchVo> selectPageAdvisoryBodyList(@Param("page") Page<AdvisoryBodySearchVo> page, @Param(Constants.WRAPPER) Wrapper<AdvisoryBody> queryWrapper);
}
package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.AdvisoryBody;
/**
* 咨询机构(SysAdvisoryBody)表服务接口
*
* @author sxk
* @since 2023-12-12 10:12:09
*/
public interface AdvisoryBodyService extends IService<AdvisoryBody> {
}
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.BizDictData;
import com.dsk.cscec.domain.TreeSelect;
import com.dsk.cscec.domain.bo.BizDictDataBo;
import java.util.List;
/**
* 业务数据字典Service接口
*
* @author ruoyi
* @date 2021-11-08
*/
public interface IBizDictDataService extends IService<BizDictData> {
/**
* 查询单个
*
* @return
*/
BizDictData queryById(Long id);
/**
* 查询列表
*/
TableDataInfo<BizDictData> queryPageList(BizDictDataBo bo, PageQuery query);
/**
* 查询列表
*/
List<BizDictData> queryList(BizDictDataBo bo);
String importDict(List<BizDictData> dictList, String type, String operName);
List<TreeSelect> buildDeptTreeSelect(BizDictDataBo bo);
}
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.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
/**
* 组织维表(DCustomer)表服务接口
*
* @author
* @since 2023-12-10
*/
public interface ICustomerInfoService extends IService<DCustomer> {
TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query);
DCustomer queryByName(String name);
}
package com.dsk.cscec.service; package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService; 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.DProject; import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
/** /**
* 项目维表(DProject)表服务接口 * 项目维表(DProject)表服务接口
* *
* @author makejava * @author sxk
* @since 2023-12-10 15:34:51 * @since 2023-12-10 15:34:51
*/ */
public interface IDProjectService extends IService<DProject> { public interface IDProjectService extends IService<DProject> {
/**
* 获取所有项目列表数据
*
* @param projectSearchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery);
/**
* 获取所有企业列表(咨询机构)数据
*
* @param advisoryBodySearchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<AdvisoryBodySearchVo> queryAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery);
/**
* 获取合作项目明细
*
* @param cooperateProjectDetailSearchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<CooperateProjectDetailSearchVo> queryCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery);
/**
* 根据项目主键查询项目详情
*
* @param projectKey 项目主键
* @return 项目详情
*/
ProjectDetailVo queryProjectDetail(Long projectKey);
} }
package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.DimArea;
import com.dsk.cscec.domain.vo.RegionVo;
import java.util.List;
/**
* (DimArea)表服务接口
*
* @author lcl
* @since 2023-12-13 13:45:22
*/
public interface IDimAreaService extends IService<DimArea> {
List<RegionVo> allArea();
List<RegionVo> allAreaWithoutRegion();
}
package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.mapper.SysAdvisoryBodyMapper;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.service.AdvisoryBodyService;
import org.springframework.stereotype.Service;
/**
* 咨询机构(SysAdvisoryBody)表服务实现类
*
* @author sxk
* @since 2023-12-12 10:12:09
*/
@Service("sysAdvisoryBodyService")
public class AdvisoryBodyServiceImpl extends ServiceImpl<SysAdvisoryBodyMapper, AdvisoryBody> implements AdvisoryBodyService {
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.exception.ServiceException;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.domain.BizDictData;
import com.dsk.cscec.domain.TreeSelect;
import com.dsk.cscec.domain.bo.BizDictDataBo;
import com.dsk.cscec.mapper.BizDictDataMapper;
import com.dsk.cscec.service.IBizDictDataService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 业务数据字典Service业务层处理
*
* @author ruoyi
* @date 2021-11-08
*/
@Slf4j
@Service
public class BizDictDataServiceImpl extends ServiceImpl<BizDictDataMapper, BizDictData> implements IBizDictDataService {
@Override
public BizDictData queryById(Long id) {
return baseMapper.queryByID(id);
}
@Override
public TableDataInfo<BizDictData> queryPageList(BizDictDataBo bo, PageQuery query) {
Page<BizDictData> result = baseMapper.selectPage(query.build(), buildQueryWrapper(bo));
return TableDataInfo.build(result);
}
@Override
public List<BizDictData> queryList(BizDictDataBo bo) {
return baseMapper.selectList(buildQueryWrapper(bo));
}
private LambdaQueryWrapper<BizDictData> buildQueryWrapper(BizDictDataBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizDictData> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getCode()), BizDictData::getCode, bo.getCode());
lqw.like(StringUtils.isNotBlank(bo.getName()), BizDictData::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getType()), BizDictData::getType, bo.getType());
lqw.eq(bo.getParentId() != null, BizDictData::getParentId, bo.getParentId());
return lqw;
}
/**
* 保存前的数据校验
*
* @param entity 实体类数据
*/
private void validEntityBeforeSave(BizDictData entity) {
//TODO 做一些数据校验,如唯一约束
//code唯一校验
if (StringUtils.isNotBlank(entity.getCode())) {
LambdaQueryWrapper<BizDictData> lqw = Wrappers.lambdaQuery();
lqw.eq(BizDictData::getType, entity.getType());
lqw.eq(BizDictData::getCode, entity.getCode());
lqw.ne(ObjectUtil.isNotNull(entity.getId()), BizDictData::getId, entity.getId());
List<BizDictData> dictDataList = baseMapper.selectList(lqw);
if (CollectionUtils.isNotEmpty(dictDataList)) {
Assert.isTrue(false, "编码 " + entity.getCode() + " 已存在");
}
}
}
public List<BizDictData> buildDeptTree(List<BizDictData> depts) {
List<BizDictData> returnList = new ArrayList<BizDictData>();
List<String> tempList = new ArrayList<String>();
for (BizDictData dept : depts) {
tempList.add(dept.getId());
}
for (BizDictData dept : depts) {
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(dept.getParentId())) {
recursionFn(depts, dept);
returnList.add(dept);
}
}
if (returnList.isEmpty()) {
returnList = depts;
}
return returnList;
}
/**
* 递归列表
*/
private void recursionFn(List<BizDictData> list, BizDictData t) {
// 得到子节点列表
List<BizDictData> childList = getChildList(list, t);
t.setChildren(childList);
for (BizDictData tChild : childList) {
if (hasChild(list, tChild)) {
recursionFn(list, tChild);
}
}
}
/**
* 得到子节点列表
*/
private List<BizDictData> getChildList(List<BizDictData> list, BizDictData t) {
List<BizDictData> tlist = new ArrayList<BizDictData>();
for (BizDictData n : list) {
if (ObjectUtil.isNotNull(n.getParentId()) && n.getParentId().equals(t.getId())) {
tlist.add(n);
}
}
return tlist;
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<BizDictData> list, BizDictData t) {
return getChildList(list, t).size() > 0;
}
@Override
public String importDict(List<BizDictData> dictList, String type, String operName) {
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (BizDictData dictData : dictList) {
try {
Assert.notNull(dictData.getName(), "字典名称不能为空");
dictData.setType(type);
//查询编码是否重复
validEntityBeforeSave(dictData);
//查询名称是否重复
Assert.isFalse(baseMapper.countByName(dictData.getName(), type) != 0, "字典名称已存在");
//查询是否有父级
if (StrUtil.isNotBlank(dictData.getParentName())) {
BizDictData bizDictData = baseMapper.findByNameAndType(dictData.getParentName(), type);
if (bizDictData != null) {
dictData.setParentId(bizDictData.getId());
dictData.setAncestors(bizDictData.getAncestors() + "," + bizDictData.getId());
} else {
// bizDictData = new BizDictData();
// bizDictData.setName(dictData.getParentName());
// bizDictData.setType(type);
// this.save(bizDictData);
// dictData.setParentId(bizDictData.getId());
Assert.isTrue(false, "父级 " + dictData.getParentName() + " 不存在");
}
} else {
dictData.setParentId("0");
}
this.save(dictData);
successNum++;
successMsg.append("<br/>" + successNum + "、字典 " + dictData.getName() + " 导入成功");
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、字典 " + dictData.getName() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error("BizDictDataServiceImpl.importDict() error:" + msg, e);
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
@Override
public List<TreeSelect> buildDeptTreeSelect(BizDictDataBo bo) {
List<BizDictData> list = baseMapper.selectList(buildQueryWrapper(bo));
List<BizDictData> deptTrees = buildDeptTree(list);
return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
}
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.mapper.DCustomerMapper;
import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.ICustomerInfoService;
import com.dsk.search.service.BusinessOpportunityRadarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.Map;
/**
* 组织维表(DCustomer)表服务实现类
*
* @author
* @since 2023-12-10
*/
@Service
public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer> implements ICustomerInfoService {
@Autowired
private DSubcontractMapper subcontractMapper;
@Autowired
private BusinessOpportunityRadarService opportunityRadarService;
@Override
public TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query) {
if("劳务分包".equals(bo.getCustomerClass())){
bo.setServiceTeamLogo("N");
}
if("劳务分包队伍".equals(bo.getCustomerClass())){
bo.setCustomerClass("劳务分包");
bo.setServiceTeamLogo("Y");
}
Page<CustomerInfoVo> page = baseMapper.queryListByType(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) {
page.getRecords().parallelStream().forEach(item->{
//企业合作数量
item.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(item.getCustomerId()));
//项目合作数量
item.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(item.getCustomerId()));
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
item.setCompanyId(companyId);
}
}catch (Exception e){
//
}
});
}
return TableDataInfo.build(page);
}
@Override
public DCustomer queryByName(String name) {
LambdaQueryWrapper<DCustomer> lqw = Wrappers.lambdaQuery();
lqw.eq(DCustomer::getCustomerName,name);
lqw.orderByDesc(DCustomer::getApproveDate2);
lqw.last("limit 1");
return baseMapper.selectOne(lqw);
}
}
...@@ -2,20 +2,18 @@ package com.dsk.cscec.service.impl; ...@@ -2,20 +2,18 @@ package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo; import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.mapper.DCustomerMapper; import com.dsk.cscec.mapper.DCustomerMapper;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.mapper.DSubcontractMapper; import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.IDCustomerService; import com.dsk.cscec.service.IDCustomerService;
import com.dsk.search.service.BusinessOpportunityRadarService; import com.dsk.search.service.BusinessOpportunityRadarService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springdoc.core.converters.models.PageableAsQueryParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -45,22 +43,22 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -45,22 +43,22 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
dealWithCustomerClass(bo); dealWithCustomerClass(bo);
Page<DCustomer> page = baseMapper.allSearchList(query.build(), bo); Page<DCustomer> page = baseMapper.allSearchList(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) { if (CollectionUtils.isNotEmpty(page.getRecords())) {
for (DCustomer customer : page.getRecords()) { page.getRecords().parallelStream().forEach(item->{
//企业合作数量 //企业合作数量
customer.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(customer.getCustomerId())); item.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(item.getCustomerId()));
//项目合作数量 //项目合作数量
customer.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(customer.getCustomerId())); item.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(item.getCustomerId()));
try { try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCustomerName()); Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName());
if (!ObjectUtils.isEmpty(map.get("data"))) { if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid"); Integer companyId = MapUtil.getInt(data, "jskEid");
customer.setCompanyId(companyId); item.setCompanyId(companyId);
} }
}catch (Exception e){ }catch (Exception e){
// //
} }
} });
} }
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
......
package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.entity.SysDictData;
import com.dsk.cscec.domain.DimArea;
import com.dsk.cscec.domain.vo.RegionVo;
import com.dsk.cscec.mapper.DimAreaMapper;
import com.dsk.cscec.service.IDimAreaService;
import com.dsk.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* (DimArea)表服务实现类
*
* @author lcl
* @since 2023-12-13 13:45:22
*/
@Service
public class DimAreaServiceImpl extends ServiceImpl<DimAreaMapper, DimArea> implements IDimAreaService {
@Autowired
private ISysDictTypeService sysDictTypeService;
private static final String AREA_TYPE = "arealist";
// @Cacheable(cacheNames = "", key = "")
@Override
public List<RegionVo> allArea() {
List<RegionVo> vos = new ArrayList<>();
//区域
List<SysDictData> sysDictData = sysDictTypeService.selectDictDataByType(AREA_TYPE);
if(CollectionUtils.isNotEmpty(sysDictData)){
for (SysDictData data : sysDictData) {
RegionVo regionVo = new RegionVo();
regionVo.setValue(data.getDictValue());
List<RegionVo> provinceVos = new ArrayList<>();
//省
List<Object> provinces = baseMapper.selectObjs(Wrappers.<DimArea>lambdaQuery()
.select(DimArea::getAreaName2)
.eq(DimArea::getAreaName1, data.getDictValue())
.ne(DimArea::getAreaName2, data.getDictValue())
.groupBy(DimArea::getAreaName2));
if(CollectionUtils.isNotEmpty(provinces)){
for (Object province : provinces) {
RegionVo provinceVo = new RegionVo();
provinceVo.setValue(String.valueOf(province));
List<RegionVo> cityVos = new ArrayList<>();
//市
List<Object> citys = baseMapper.selectObjs(Wrappers.<DimArea>lambdaQuery()
.select(DimArea::getAreaName3)
.eq(DimArea::getAreaName2, provinceVo.getValue())
.ne(DimArea::getAreaName3, provinceVo.getValue())
.groupBy(DimArea::getAreaName3));
if(CollectionUtils.isNotEmpty(citys)){
for (Object city : citys) {
RegionVo cityVo = new RegionVo();
cityVo.setValue(String.valueOf(city));
cityVos.add(cityVo);
}
}
provinceVo.setChildren(cityVos);
provinceVos.add(provinceVo);
}
}
regionVo.setChildren(provinceVos);
vos.add(regionVo);
}
}
return vos;
}
@Override
public List<RegionVo> allAreaWithoutRegion() {
List<RegionVo> vos = new ArrayList<>();
//区域
List<SysDictData> sysDictData = sysDictTypeService.selectDictDataByType(AREA_TYPE);
if(CollectionUtils.isNotEmpty(sysDictData)){
for (SysDictData data : sysDictData) {
//省
List<Object> provinces = baseMapper.selectObjs(Wrappers.<DimArea>lambdaQuery()
.select(DimArea::getAreaName2)
.eq(DimArea::getAreaName1, data.getDictValue())
.ne(DimArea::getAreaName2, data.getDictValue())
.groupBy(DimArea::getAreaName2));
if(CollectionUtils.isNotEmpty(provinces)){
for (Object province : provinces) {
RegionVo provinceVo = new RegionVo();
provinceVo.setValue(String.valueOf(province));
List<RegionVo> cityVos = new ArrayList<>();
//市
List<Object> citys = baseMapper.selectObjs(Wrappers.<DimArea>lambdaQuery()
.select(DimArea::getAreaName3)
.eq(DimArea::getAreaName2, provinceVo.getValue())
.ne(DimArea::getAreaName3, provinceVo.getValue())
.groupBy(DimArea::getAreaName3));
if(CollectionUtils.isNotEmpty(citys)){
for (Object city : citys) {
RegionVo cityVo = new RegionVo();
cityVo.setValue(String.valueOf(city));
cityVos.add(cityVo);
}
}
provinceVo.setChildren(cityVos);
vos.add(provinceVo);
}
}
}
}
return vos;
}
}
...@@ -74,6 +74,14 @@ public class CompanySearchController { ...@@ -74,6 +74,14 @@ public class CompanySearchController {
return opportunityRadarService.zjyjAptitude(object); return opportunityRadarService.zjyjAptitude(object);
} }
/*
* 符合条件的资质
*/
@RequestMapping("/zjyj/enterpriseAptitude")
public AjaxResult zjyjEnterpriseAptitude(@RequestBody JSONObject object) {
return opportunityRadarService.zjyjEnterpriseAptitude(object);
}
/* /*
* 查资质 不满足 * 查资质 不满足
*/ */
...@@ -89,4 +97,16 @@ public class CompanySearchController { ...@@ -89,4 +97,16 @@ public class CompanySearchController {
public AjaxResult zjyjCertStandard(@RequestBody JSONObject object) { public AjaxResult zjyjCertStandard(@RequestBody JSONObject object) {
return opportunityRadarService.zjyjCertStandard(object); return opportunityRadarService.zjyjCertStandard(object);
} }
/*
* 咨询机构
*/
@PostMapping("/consult/page")
public AjaxResult consultPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.consultPage(object);
}
} }
...@@ -223,6 +223,11 @@ public class BusinessOpportunityRadarService { ...@@ -223,6 +223,11 @@ public class BusinessOpportunityRadarService {
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult zjyjEnterpriseAptitude(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/zjyj/enterpriseAptitude", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult zjyjAptitudeContrary(JSONObject object) { public AjaxResult zjyjAptitudeContrary(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/zjyj/aptitude/contrary", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/zjyj/aptitude/contrary", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
...@@ -232,4 +237,9 @@ public class BusinessOpportunityRadarService { ...@@ -232,4 +237,9 @@ public class BusinessOpportunityRadarService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/zjyj/cert/standard", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/zjyj/cert/standard", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult consultPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/zjyj/consult/enterprise", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
} }
...@@ -21,10 +21,8 @@ import org.springframework.stereotype.Service; ...@@ -21,10 +21,8 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
/** /**
* @Author lc * @Author lc
...@@ -66,8 +64,10 @@ public class ExportService { ...@@ -66,8 +64,10 @@ public class ExportService {
composeQueryDto.setExportUniqueCode(fileId.toString()); composeQueryDto.setExportUniqueCode(fileId.toString());
//回调函数 //回调函数
composeQueryDto.setExportBackUrl(EXPORT_BACK_URL); composeQueryDto.setExportBackUrl(EXPORT_BACK_URL);
composeQueryDto.setExportExeclName("资质批量导出.xlsx"); SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMdd");
dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/areaGroupByProvince", BeanUtil.beanToMap(composeQueryDto,false,false)); String dayformat = sdf.format(new Date());
composeQueryDto.setExportExeclName("供应商资质批量查询"+dayformat+".xlsx");
dskOpenApiUtil.requestBody("/operate/export/zjyj/aptitude", BeanUtil.beanToMap(composeQueryDto,false,false));
return AjaxResult.success(); return AjaxResult.success();
} }
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.SysAdvisoryBodyMapper">
<select id="selectLastCooperateTime" resultType="java.util.Date">
select ab.create_time
from sys_advisory_body ab
where ab.advisory_body_id = ${advisoryBodyId};
</select>
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select advisory_body_id,
project_key,
advisory_body_name,
legal_person,
legal_person_phone,
reg_address,
project_leader,
project_leader_major,
project_leader_phone,
settle_start_time,
settle_finish_time,
is_final_judge_unit
from sys_advisory_body ${ew.getCustomSqlSegment}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.BizDictDataMapper">
<resultMap type="com.dsk.cscec.domain.BizDictData" id="BizDictDataResult">
<result property="id" column="id"/>
<result property="code" column="code"/>
<result property="name" column="name"/>
<result property="type" column="type"/>
<result property="parentId" column="parent_id"/>
<result property="remark" column="remark"/>
</resultMap>
<sql id="Base_Column_List">
id,code,name,type,parent_id,remark
</sql>
<select id="findIdByName" resultType="java.lang.Long">
select id from biz_dict_data where `name` like concat('%',#{name},'%')
</select>
<select id="findByNameAndType" resultType="com.dsk.cscec.domain.BizDictData">
select id,name,code,ancestors from biz_dict_data
where `name` = #{name}
and type = #{type}
and del_flag = 0
</select>
<select id="countByName" resultType="java.lang.Integer">
SELECT
count( id )
FROM
biz_dict_data
WHERE
del_flag = 0
<if test="type != null and type != ''">
AND `type` = #{type}
</if>
AND `name` = #{name}
</select>
<select id="exportListVo" resultType="com.dsk.cscec.domain.BizDictData">
select t.id,t.name,t.parent_id,t1.name parentName, t.unit,t.remark,t.code,t.feature from biz_dict_data t
left join biz_dict_data t1 on t.parent_id=t1.id
where
t.del_flag=0
and t.`type`=#{bo.type}
<if test="bo.name != null and bo.name != ''">
and (t.name like concat('%',#{bo.name},'%') or t1.name like concat('%',#{bo.name},'%'))
</if>
</select>
<select id="queryByID" resultType="com.dsk.cscec.domain.BizDictData">
select <include refid="Base_Column_List"/>
from biz_dict_data where del_flag = 0
and id = #{id}
</select>
</mapper>
...@@ -4,6 +4,39 @@ ...@@ -4,6 +4,39 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.DProjectMapper"> <mapper namespace="com.dsk.cscec.mapper.DProjectMapper">
<select id="selectPageProjectList" resultType="com.dsk.cscec.domain.vo.ProjectSearchVo">
select p.project_key,
p.project_id,
p.project_name,
p.project_code,
p.province_name,
p.isinvestproject,
p.project_type1,
p.project_type,
p.contract_orig_value,
p.owner_name,
p.contract_org_name,
p.contract_sign_date
from d_project p
${ew.getCustomSqlSegment}
</select>
<select id="selectPageCooperateProjectDetailList"
resultType="com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo">
select p.project_key,
p.project_id,
p.project_name,
p.project_code,
p.province_name,
p.city_name,
p.isinvestproject,
p.project_type1,
p.project_type,
p.contract_orig_value,
p.owner_name,
p.contract_org_name,
p.contract_sign_date
from d_project p
${ew.getCustomSqlSegment}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -13,7 +13,7 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true ...@@ -13,7 +13,7 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 子系统地址 # 子系统地址
# VUE_APP_SUB_SYSTEM_ADDRESS = "https://pre-plug.jiansheku.com" # VUE_APP_SUB_SYSTEM_ADDRESS = "https://pre-plug.jiansheku.com"
VUE_APP_SUB_SYSTEM_ADDRESS = "http://192.168.60.104:3400" VUE_APP_SUB_SYSTEM_ADDRESS = "http://192.168.60.210:3400"
# Bi大屏系统地址 # Bi大屏系统地址
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001" VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
\ No newline at end of file
import request from '@/utils/request' import request from '@/utils/request';
// id解密 // id解密
export const idRemark = (data) => { export const idRemark = (data) => {
...@@ -6,29 +6,38 @@ export const idRemark = (data) => { ...@@ -6,29 +6,38 @@ export const idRemark = (data) => {
url: '/enterprise/remark', url: '/enterprise/remark',
method: 'post', method: 'post',
data: data data: data
}) });
} };
// 认领用户 // 认领用户
export const claim= function claim(param) { export const claim = function claim(param) {
return request({ return request({
url: '/customer/claim', url: '/customer/claim',
method: 'post', method: 'post',
data: param data: param
}) });
} };
// 历史客户认领 // 历史客户认领
export const historyClaim= function historyClaim(name) { export const historyClaim = function historyClaim(name) {
return request({ return request({
url: '/customer/historyClaim/'+name, url: '/customer/historyClaim/' + name,
method: 'Put', method: 'Put',
}) });
} };
//获取大司空open 插件访问token //获取大司空open 插件访问token
export function dskAccessToken() { export function dskAccessToken() {
return request({ return request({
url: '/system/config/dsk/accessToken', url: '/system/config/dsk/accessToken',
method: 'get', method: 'get',
}) });
} }
/**
* 获取地区
* @returns {Array<object>}
*/
export const getAreaListApi = () => request({
url: "/area/all/withoutRegion",
method: "get"
});
import request from '@/utils/request';
/**
* 咨询机构合作台账 查询项目列表 以及 查询参数
* @param {object} params
* @returns
*/
export const getConsultingOrgProjectListWithSearchApi = (params) => request({
url: "/advisory/body/getProjectList",
method: "get",
params
});
/**
* 咨询机构合作台账 查询企业列表 以及 查询参数
* @param {object} params
* @returns
*/
export const getConsultingOrgEenterpriseListWithSearchApi = (params) => request({
url: "/advisory/body/getAdvisoryBodyList",
method: "get",
params
});
/**
* 咨询机构合作台账 查询企业列表 以及 查询参数
* @param {object} params
* @returns
*/
export const getConsultingOrgEenterpriseDetailWithSearchApi = (params) => request({
url: "/advisory/body/getCooperateProjectDetailList",
method: "get",
params
});
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_233_92225/11_04941"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_233_92225/11_04941)"><g><path d="M0.5,3.5L0.5,12.5Q0.5,13.1213,0.93934,13.5607Q1.3786800000000001,14,2,14L14,14Q14.6213,14,15.0607,13.5607Q15.5,13.1213,15.5,12.5L15.5,3.5Q15.5,2.878679,15.0607,2.4393399Q14.6213,2,14,2L2,2Q1.3786800000000001,2,0.9393398,2.4393399Q0.5,2.87868,0.5,3.5ZM1.646447,12.8536Q1.5,12.7071,1.5,12.5L1.5,3.5Q1.5,3.292893,1.646447,3.146447Q1.7928929999999998,3,2,3L14,3Q14.2071,3,14.3536,3.146447Q14.5,3.292894,14.5,3.5L14.5,12.5Q14.5,12.7071,14.3536,12.8536Q14.2071,13,14,13L2,13Q1.792894,13,1.646447,12.8536Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M7.5,10L7.5,11Q7.5,11.04925,7.509607,11.09755Q7.519215,11.14585,7.53806,11.19134Q7.556906,11.23684,7.584265,11.27779Q7.611625,11.31873,7.646447,11.35356Q7.681269,11.38838,7.722215,11.41574Q7.763161,11.4431,7.808658,11.46194Q7.854155,11.48079,7.9024549,11.49039Q7.9507543,11.5,8,11.5Q8.0492457,11.5,8.0975451,11.49039Q8.145845,11.48079,8.191342,11.46194Q8.236839,11.4431,8.277785,11.41574Q8.318731,11.38838,8.353553,11.35356Q8.388375,11.31873,8.415735,11.27779Q8.443094,11.23684,8.46194,11.19134Q8.480785000000001,11.14585,8.490393,11.09755Q8.5,11.04925,8.5,11L8.5,10Q8.5,9.9507543,8.490393,9.9024549Q8.480785000000001,9.854155,8.46194,9.808658Q8.443094,9.763161,8.415735,9.722215Q8.388375,9.681269,8.353553,9.646447Q8.318731,9.611625,8.277785,9.584265Q8.236839,9.556906,8.191342,9.53806Q8.145845,9.519214999999999,8.0975451,9.509607Q8.0492457,9.5,8,9.5Q7.9507543,9.5,7.9024549,9.509607Q7.854155,9.519214999999999,7.808658,9.53806Q7.763161,9.556906,7.722215,9.584265Q7.681269,9.611625,7.646447,9.646447Q7.611625,9.681269,7.584265,9.722215Q7.556906,9.763161,7.53806,9.808658Q7.519215,9.854155,7.509607,9.9024549Q7.5,9.9507543,7.5,10Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M5.5,9L5.5,11Q5.5,11.04925,5.509607,11.09754Q5.519215,11.14584,5.53806,11.19134Q5.556906,11.23684,5.584265,11.27778Q5.611625,11.31873,5.646447,11.35355Q5.681269,11.38838,5.722215,11.41573Q5.763161,11.44309,5.808658,11.46194Q5.854155,11.48078,5.9024549,11.49039Q5.9507543,11.5,6,11.5Q6.0492457,11.5,6.0975451,11.49039Q6.145845,11.48078,6.191342,11.46194Q6.236839,11.44309,6.277785,11.41573Q6.318731,11.38838,6.353553,11.35355Q6.388375,11.31873,6.415735,11.27779Q6.443094,11.23684,6.46194,11.19134Q6.480785,11.14584,6.490393,11.09754Q6.5,11.04925,6.5,11L6.5,9Q6.5,8.9507543,6.490393,8.9024549Q6.480785,8.854155,6.46194,8.808658Q6.443094,8.763161,6.415735,8.722215Q6.388375,8.681269,6.353553,8.646447Q6.318731,8.611625,6.277785,8.584265Q6.236839,8.556906,6.191342,8.53806Q6.145845,8.519214999999999,6.0975451,8.509607Q6.0492457,8.5,6,8.5Q5.9507543,8.5,5.9024549,8.509607Q5.854155,8.519214999999999,5.808658,8.53806Q5.763161,8.556906,5.722215,8.584265Q5.681269,8.611625,5.646447,8.646447Q5.611625,8.681269,5.584265,8.722215Q5.556906,8.763161,5.53806,8.808658Q5.519215,8.854155,5.509607,8.9024549Q5.5,8.9507543,5.5,9Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M3.5,7L3.5,11Q3.5,11.04925,3.509607,11.09755Q3.519215,11.14584,3.5380599999999998,11.19134Q3.556906,11.23684,3.584265,11.27778Q3.611625,11.31873,3.646447,11.35355Q3.681269,11.38837,3.722215,11.41573Q3.763161,11.44309,3.808658,11.46194Q3.854155,11.48078,3.9024549,11.49039Q3.9507543,11.5,4,11.5Q4.0492457,11.5,4.0975451,11.49039Q4.145845,11.48078,4.191342,11.46194Q4.236839,11.44309,4.277785,11.41573Q4.318731,11.38837,4.353553,11.35355Q4.388375,11.31873,4.415735,11.27778Q4.443094,11.23684,4.46194,11.19134Q4.480785,11.14584,4.490393,11.09755Q4.5,11.04925,4.5,11L4.5,7Q4.5,6.9507543,4.490393,6.9024549Q4.480785,6.854155,4.46194,6.808658Q4.443094,6.763161,4.415735,6.722215Q4.388375,6.681269,4.353553,6.646447Q4.318731,6.611625,4.277785,6.584265Q4.236839,6.556906,4.191342,6.53806Q4.145845,6.519215,4.0975451,6.509607Q4.0492457,6.5,4,6.5Q3.9507543,6.5,3.9024549,6.509607Q3.854155,6.519215,3.808658,6.53806Q3.763161,6.556906,3.722215,6.584265Q3.681269,6.611625,3.646447,6.646447Q3.611625,6.681269,3.584265,6.722215Q3.556906,6.763161,3.5380599999999998,6.808658Q3.519215,6.854155,3.509607,6.9024549Q3.5,6.9507543,3.5,7Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><ellipse cx="10.3787841796875" cy="6.1363677978515625" rx="1.5" ry="1.5" fill-opacity="0" stroke-opacity="1" stroke="#FFFFFF" fill="none" stroke-width="1"/></g><g><path d="M11.5252901796875,7.989980797851563L12.5252311796875,8.989917797851563Q12.5955571796875,9.060247797851563,12.6874421796875,9.098307797851563Q12.7793281796875,9.136367797851562,12.8787841796875,9.136367797851562Q12.9782441796875,9.136367797851562,13.0701241796875,9.098307797851563Q13.1620141796875,9.060247797851563,13.2323341796875,8.989917797851563Q13.3026641796875,8.919597797851562,13.3407241796875,8.827707797851563Q13.3787841796875,8.735827797851563,13.3787841796875,8.636367797851562Q13.3787841796875,8.536911797851563,13.3407241796875,8.445025797851562Q13.3026641796875,8.353140797851562,13.2323341796875,8.282814797851563L12.2323971796875,7.282873797851563L12.2323371796875,7.282814797851563Q12.1620111796875,7.212487797851563,12.0701261796875,7.174427797851562Q11.9782403796875,7.1363677978515625,11.8787841796875,7.1363677978515625Q11.7793279796875,7.1363677978515625,11.6874421796875,7.174427797851562Q11.5955571796875,7.212487797851563,11.5252311796875,7.282814797851563Q11.4549041796875,7.353140797851562,11.4168441796875,7.445025797851563Q11.3787841796875,7.536911597851563,11.3787841796875,7.6363677978515625Q11.3787841796875,7.735823997851562,11.4168441796875,7.827709797851562Q11.4549041796875,7.919594797851563,11.5252311796875,7.989920797851562L11.5252901796875,7.989980797851563Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_264_80202"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_264_80202)"><g><path d="M0.5,3L0.5,11Q0.5,11.62132,0.93934,12.0607Q1.3786800000000001,12.5,2,12.5L12,12.5Q12.6213,12.5,13.0607,12.0607Q13.5,11.62132,13.5,11L13.5,3Q13.5,2.378679,13.0607,1.9393399Q12.6213,1.5,12,1.5L2,1.5Q1.3786800000000001,1.5,0.9393398,1.9393399Q0.5,2.37868,0.5,3ZM1.646447,11.35355Q1.5,11.20711,1.5,11L1.5,3Q1.5,2.792893,1.646447,2.646447Q1.7928929999999998,2.5,2,2.5L12,2.5Q12.2071,2.5,12.3536,2.646447Q12.5,2.792894,12.5,3L12.5,11Q12.5,11.20711,12.3536,11.35355Q12.2071,11.5,12,11.5L2,11.5Q1.792894,11.5,1.646447,11.35355Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g><g><path d="M6.5,8.75L6.5,9.625002Q6.5,9.674248,6.509607,9.722547Q6.519215,9.77085,6.53806,9.81634Q6.556906,9.86184,6.584265,9.90279Q6.611625,9.94373,6.646447,9.97856Q6.681269,10.01338,6.722215,10.04074Q6.763161,10.0681,6.808658,10.08694Q6.854155,10.10579,6.9024549,10.11539Q6.9507543,10.125,7,10.125Q7.0492457,10.125,7.0975451,10.11539Q7.145845,10.10579,7.191342,10.08694Q7.236839,10.0681,7.277785,10.04074Q7.318731,10.01338,7.353553,9.97856Q7.388375,9.94373,7.415735,9.90279Q7.443094,9.86184,7.46194,9.81634Q7.480785,9.77085,7.490393,9.722547Q7.5,9.674248,7.5,9.625002L7.5,8.75Q7.5,8.7007543,7.490393,8.6524549Q7.480785,8.604155,7.46194,8.558658Q7.443094,8.513161,7.415735,8.472215Q7.388375,8.431269,7.353553,8.396447Q7.318731,8.361625,7.277785,8.334265Q7.236839,8.306906,7.191342,8.28806Q7.145845,8.269214999999999,7.0975451,8.259607Q7.0492457,8.25,7,8.25Q6.9507543,8.25,6.9024549,8.259607Q6.854155,8.269214999999999,6.808658,8.28806Q6.763161,8.306906,6.722215,8.334265Q6.681269,8.361625,6.646447,8.396447Q6.611625,8.431269,6.584265,8.472215Q6.556906,8.513161,6.53806,8.558658Q6.519215,8.604155,6.509607,8.6524549Q6.5,8.7007543,6.5,8.75Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g><g><path d="M4.75,7.875L4.75,9.625Q4.75,9.67425,4.759607,9.72254Q4.769215,9.77084,4.78806,9.81634Q4.806906,9.86184,4.834265,9.90278Q4.861625,9.94373,4.896447,9.97855Q4.931269,10.01337,4.972215,10.04073Q5.013161,10.06809,5.058658,10.08694Q5.104155,10.10578,5.1524549,10.11539Q5.2007543,10.125,5.25,10.125Q5.2992457,10.125,5.3475451,10.11539Q5.395845,10.10578,5.441342,10.08694Q5.486839,10.06809,5.527785,10.04073Q5.568731,10.01337,5.603553,9.97855Q5.638375,9.94373,5.665735,9.90278Q5.693094,9.86184,5.71194,9.81634Q5.730785,9.77084,5.740393,9.72254Q5.75,9.67425,5.75,9.625L5.75,7.875Q5.75,7.8257543,5.740393,7.7774549Q5.730785,7.729155,5.71194,7.683658Q5.693094,7.638161,5.665735,7.597215Q5.638375,7.556269,5.603553,7.521447Q5.568731,7.486625,5.527785,7.459265Q5.486839,7.431906,5.441342,7.41306Q5.395845,7.394215,5.3475451,7.384607Q5.2992457,7.375,5.25,7.375Q5.2007543,7.375,5.1524549,7.384607Q5.104155,7.394215,5.058658,7.41306Q5.013161,7.431906,4.972215,7.459265Q4.931269,7.486625,4.896447,7.521447Q4.861625,7.556269,4.834265,7.597215Q4.806906,7.638161,4.78806,7.683658Q4.769215,7.729155,4.759607,7.7774549Q4.75,7.8257543,4.75,7.875Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g><g><path d="M3,6.125L3,9.625Q3,9.67425,3.009607,9.72254Q3.019215,9.77084,3.0380599999999998,9.81634Q3.056906,9.86184,3.084265,9.90278Q3.111625,9.94373,3.146447,9.97855Q3.181269,10.01338,3.222215,10.04073Q3.263161,10.06809,3.308658,10.08694Q3.354155,10.10578,3.4024549,10.11539Q3.4507543,10.125,3.5,10.125Q3.5492457,10.125,3.5975451,10.11539Q3.645845,10.10578,3.691342,10.08694Q3.736839,10.06809,3.777785,10.04073Q3.818731,10.01338,3.853553,9.97855Q3.888375,9.94373,3.915735,9.90278Q3.943094,9.86184,3.9619400000000002,9.81634Q3.980785,9.77084,3.990393,9.72254Q4,9.67425,4,9.625L4,6.125Q4,6.0757543,3.990393,6.0274549Q3.980785,5.979155,3.9619400000000002,5.933658Q3.943094,5.888161,3.915735,5.847215Q3.888375,5.806269,3.853553,5.771447Q3.818731,5.736625,3.777785,5.709265Q3.736839,5.681906,3.691342,5.66306Q3.645845,5.644215,3.5975451,5.634607Q3.5492457,5.625,3.5,5.625Q3.4507543,5.625,3.4024549,5.634607Q3.354155,5.644215,3.308658,5.66306Q3.263161,5.681906,3.222215,5.709265Q3.181269,5.736625,3.146447,5.771447Q3.111625,5.806269,3.084265,5.847215Q3.056906,5.888161,3.0380599999999998,5.933658Q3.019215,5.979155,3.009607,6.0274549Q3,6.0757543,3,6.125Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g><g><ellipse cx="9.081436157226562" cy="5.36932373046875" rx="1.3125" ry="1.3125" fill-opacity="0" stroke-opacity="1" stroke="#86909C" fill="none" stroke-width="1"/></g><g><path d="M10.040442157226563,7.03543673046875L10.915383157226563,7.91037373046875Q10.985709157226562,7.9807037304687505,11.077594157226562,8.01876373046875Q11.169480157226563,8.05682373046875,11.268936157226562,8.05682373046875Q11.368392157226562,8.05682373046875,11.460276157226563,8.01876373046875Q11.552166157226562,7.9807037304687505,11.622486157226563,7.91037373046875Q11.692816157226563,7.84005373046875,11.730876157226563,7.74816373046875Q11.768936157226562,7.65627973046875,11.768936157226562,7.55682373046875Q11.768936157226562,7.45736773046875,11.730876157226563,7.36548173046875Q11.692816157226563,7.27359673046875,11.622486157226563,7.20327073046875L10.747549157226562,6.3283297304687505L10.747489157226562,6.32827073046875Q10.677163157226563,6.25794373046875,10.585278157226563,6.21988373046875Q10.493392357226563,6.18182373046875,10.393936157226562,6.18182373046875Q10.294479957226562,6.18182373046875,10.202594157226562,6.21988373046875Q10.110709157226562,6.25794373046875,10.040383157226563,6.32827073046875Q9.970056157226562,6.39859673046875,9.931996157226562,6.49048173046875Q9.893936157226562,6.58236753046875,9.893936157226562,6.68182373046875Q9.893936157226562,6.78127993046875,9.931996157226562,6.87316573046875Q9.970056157226562,6.96505073046875,10.040383157226563,7.03537673046875L10.040442157226563,7.03543673046875Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
...@@ -55,3 +55,13 @@ ...@@ -55,3 +55,13 @@
padding: 16px 24px; padding: 16px 24px;
box-sizing: border-box; box-sizing: border-box;
} }
.head-enter-active,
.head-leave-active {
transition: all 0.5s ease;
}
.head-enter,
.head-leave-to {
opacity: 0;
transform: translateY(50px);
}
...@@ -41,6 +41,17 @@ ...@@ -41,6 +41,17 @@
} }
} }
.el-input__suffix {
display: flex;
align-items: center;
justify-content: center;
.el-input__icon {
line-height: 32px;
color: #C0C4CC;
}
}
.el-date-editor { .el-date-editor {
width: 268px; width: 268px;
height: 32px; height: 32px;
...@@ -60,6 +71,9 @@ ...@@ -60,6 +71,9 @@
.el-range__close-icon { .el-range__close-icon {
line-height: 32px; line-height: 32px;
display: flex;
align-items: center;
justify-content: center;
} }
.el-range-separator { .el-range-separator {
...@@ -74,5 +88,11 @@ ...@@ -74,5 +88,11 @@
text-align: left; text-align: left;
} }
} }
// 三级联动
.el-cascader {
line-height: 32px;
}
} }
} }
...@@ -464,21 +464,30 @@ li { ...@@ -464,21 +464,30 @@ li {
height: 100%; height: 100%;
font-size: 14px; font-size: 14px;
color: #232323; color: #232323;
.cell {
padding-right: 12px;
padding-left: 12px;
line-height: 21px;
font-size: 12px;
font-weight: 400;
}
th { th {
height: 40px; height: 40px;
font-size: 12px !important;
font-weight: 400 !important;
color: rgba(35, 35, 35, 0.8);
padding: 9px 0px; padding: 9px 0px;
.cell {
color: rgba(35, 35, 35, 0.8);
}
} }
td { td {
font-size: 14px; padding: 9px 0px;
} .cell {
.cell { color: #232323;
padding-right: 12px; }
padding-left: 12px;
line-height: 21px;
} }
.sort-caret.ascending { .sort-caret.ascending {
border-bottom-color: rgba(0, 129, 255, 0.5); border-bottom-color: rgba(0, 129, 255, 0.5);
} }
...@@ -505,10 +514,7 @@ li { ...@@ -505,10 +514,7 @@ li {
.is-scrolling-left + .el-table__fixed, .is-scrolling-left + .el-table__fixed,
.is-scrolling-middle + .el-table__fixed, .is-scrolling-middle + .el-table__fixed,
.is-scrolling-right + .el-table__fixed { .is-scrolling-right + .el-table__fixed {
//box-shadow:none;
//-webkit-box-shadow: 2px 0px 1px -2px #C3CBD5;
box-shadow: 2px 0 8px -7px #202020; box-shadow: 2px 0 8px -7px #202020;
//border-right: 1px solid #C3CBD5;
height: auto !important; height: auto !important;
bottom: 16px !important; bottom: 16px !important;
} }
......
...@@ -76,7 +76,7 @@ export default { ...@@ -76,7 +76,7 @@ export default {
.dsk-range-start, .dsk-range-start,
.dsk-range-end { .dsk-range-end {
&.dsk-amount-ipt.el-input { &.dsk-amount-ipt.el-input {
line-height: 20px; line-height: 1;
height: 100%; height: 100%;
.el-input__inner { .el-input__inner {
line-height: 1; line-height: 1;
......
<template> <template>
<transition> <transition>
<div class="dsk-table-header-setting-bar"> <div class="dsk-table-header-setting-bar" :class="{'is-outer' : isOuter}">
<div class="dsk-table-header-setting-bar-inner"> <div class="dsk-table-header-setting-bar-inner">
<!-- 固定表头 -->
<div class="lock-header-container" v-if="lockColumn.length">
<div class="lock-header-item" v-for="(item,index) of lockColumn" :key="item.uid">
<img src="@/assets/images/consultingAgencyManagement/lock.png" alt="">
<div class="lock-header-item-label">{{item.label}}</div>
</div>
</div>
<!-- 已选字段 -->
<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">
<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="">
</div>
</transition-group>
</vuedraggable>
</div>
<!-- 未选字段 -->
<div class="not-use-header-container" v-if="notUseColumn.length">
<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>
</div>
</div>
</div> </div>
<!-- 确定 取消 -->
<div class="dsk-table-header-setting-footer">
<el-button @click.stop="cancel">取消</el-button>
<el-button type="primary" @click.stop="ok">确定</el-button>
</div>
</div> </div>
</transition> </transition>
</template> </template>
<script> <script>
import vuedraggable from "vuedraggable"; import vuedraggable from "vuedraggable";
import { v4 } from 'uuid';
export default { export default {
name: "dskTableHeaderSettingBar", name: "dskTableHeaderSettingBar",
components: { components: {
...@@ -24,11 +63,13 @@ export default { ...@@ -24,11 +63,13 @@ export default {
return { return {
lockColumn: [], lockColumn: [],
useColumn: [], useColumn: [],
notUseColumn: [] notUseColumn: [],
isOuter: false
}; };
}, },
//可访问data属性 //可访问data属性
created() { created() {
this.containerPositionInit();
this.settingHeaderClassify(); this.settingHeaderClassify();
}, },
//计算集 //计算集
...@@ -37,32 +78,75 @@ export default { ...@@ -37,32 +78,75 @@ export default {
}, },
//方法集 //方法集
methods: { methods: {
async containerPositionInit() {
try {
await this.$nextTick();
const container = document.querySelector(".dsk-table-header-setting");
// 获取定位元素距离 视口右边缘状况
const right = container.getBoundingClientRect().right;
// 获取屏幕视口大小进行对比
const viewPortWidth = document.documentElement.clientWidth;
// 获取当前容器超出点击区域宽度
const settingBar = document.querySelector(".dsk-table-header-setting-bar").offsetWidth - container.offsetWidth;
// 是否超出视口
const outer = right + settingBar > viewPortWidth ? true : false;
this.isOuter = outer;
} catch (error) {
}
},
// 表头当前状态分类 // 表头当前状态分类
settingHeaderClassify() { settingHeaderClassify() {
if (this.settingList?.length) { if (this.settingList?.length) {
const temp = JSON.parse(JSON.stringify(this.settingList)); const temp = JSON.parse(JSON.stringify(this.settingList));
const len = temp.length; const len = temp.length;
for (let index = 0; index < len; index++) { for (let index = 0; index < len; index++) {
temp[index].uid = v4();
if (temp[index].lock) { if (temp[index].lock) {
this.lockColumn.push({ this.lockColumn.push({
...temp[index], ...temp[index],
use: true use: true,
}); });
continue; continue;
} }
// 设置了false值 // 设置了false值
if (temp[index].hasOwnProperty("use") && temp[index].use === false) { if (temp[index].hasOwnProperty("use") && temp[index].use === false) {
this.notUseColumn.push(temp[index]); this.notUseColumn.push({
...temp[index],
use: false
});
continue; continue;
} }
// 默认为true 展示 // 默认为true 展示
this.useColumn.push({ this.useColumn.push({
...temp[index], ...temp[index],
use: true use: true,
}); });
} }
console.log(this.useColumn); // console.log(this.lockColumn);
// console.log(this.useColumn);
// console.log(this.notUseColumn);
}
},
checkedChange(index, flag, item) {
// 选中 往use push
if (flag) {
this.notUseColumn.splice(index, 1);
this.useColumn.push(item);
return;
} }
this.useColumn.splice(index, 1);
this.notUseColumn.push(item);
},
cancel() {
this.$emit("settingClose");
},
ok() {
const _lockColumn = JSON.parse(JSON.stringify(this.lockColumn));
const _useColumn = JSON.parse(JSON.stringify(this.useColumn));
const _notUseColumn = JSON.parse(JSON.stringify(this.notUseColumn));
this.$emit("settingChange", _lockColumn.concat(_useColumn, _notUseColumn));
this.cancel();
} }
}, },
} }
...@@ -70,19 +154,155 @@ export default { ...@@ -70,19 +154,155 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.dsk-table-header-setting-bar { .dsk-table-header-setting-bar {
position: absolute; position: absolute;
top: 24px; top: 28px;
left: 0px; left: 0px;
width: 236px; width: 236px;
height: 456px; height: 456px;
background: #fff; background: #fff;
border: 1px solid #eeeeee; border: 1px solid #eeeeee;
border-radius: 4px;
box-sizing: border-box; box-sizing: border-box;
z-index: 3000; z-index: 3000;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); box-shadow: 0px 4px 8px 2px rgba(0, 0, 0, 0.04),
0px 2px 6px 0px rgba(0, 0, 0, 0.06), 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
&.is-outer {
left: unset;
right: 0px;
}
.dsk-table-header-setting-bar-inner { .dsk-table-header-setting-bar-inner {
width: 100%; width: 100%;
height: 100%; height: calc(100% - 56px);
padding: 12px;
box-sizing: border-box;
overflow-y: auto;
&::-webkit-scrollbar {
width: 16px;
}
&::-webkit-scrollbar-track {
background: #f3f4f5;
}
&::-webkit-scrollbar-thumb {
border-radius: 4px;
border: 4px solid #f3f4f5;
background: rgba(98, 110, 126, 0.2);
}
.lock-header-container {
padding-bottom: 12px;
border-bottom: 1px solid #eeeeee;
box-sizing: border-box;
.lock-header-item {
display: flex;
align-items: center;
line-height: 24px;
font-size: 14px;
color: #232323;
& > img {
width: 14px;
height: 14px;
margin-right: 8px;
}
}
}
::v-deep .use-header-container {
padding: 12px 0px;
box-sizing: border-box;
.dragClass {
background: rgba(0, 129, 255, 0.3);
}
.use-header-title {
color: rgba(35, 35, 35, 0.4);
font-size: 14px;
font-weight: 400;
}
.use-header-item {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 8px;
cursor: pointer;
.el-checkbox__input.is-checked .el-checkbox__inner {
background-color: #0081ff;
border-color: #0081ff;
}
.el-checkbox__inner:hover {
border-color: #0081ff;
}
.el-checkbox__label {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
padding-left: 8px;
}
& > img {
width: 14px;
height: 14px;
}
}
}
::v-deep .not-use-header-container {
border-top: 1px solid #eeeeee;
padding: 12px 0px;
box-sizing: border-box;
.not-use-header-title {
color: rgba(35, 35, 35, 0.4);
font-size: 14px;
font-weight: 400;
}
.not-use-header-item {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 8px;
.el-checkbox__input.is-checked .el-checkbox__inner {
background-color: #0081ff;
border-color: #0081ff;
}
.el-checkbox__inner:hover {
border-color: #0081ff;
}
.el-checkbox__label {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
padding-left: 8px;
}
}
}
}
.dsk-table-header-setting-footer {
display: flex;
align-items: center;
justify-content: flex-end;
height: 56px;
padding: 0px 12px;
border-top: 1px solid #eeeeee;
box-sizing: border-box;
.el-button {
height: 32px;
padding: 0 16px;
box-sizing: border-box;
}
} }
} }
</style> </style>
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
<div class="dsk-table-header-setting" @click="showHeaderSetting"> <div class="dsk-table-header-setting" @click="showHeaderSetting">
<svg-icons :icon-class="'table-header-setting-icon'" :class-name="'table-header-setting-icon'"></svg-icons> <svg-icons :icon-class="'table-header-setting-icon'" :class-name="'table-header-setting-icon'"></svg-icons>
<div class="table-header-setting-text">表头设置</div> <div class="table-header-setting-text">表头设置</div>
<setting-bar v-if="showHeaderSettingStatus" :settingList="settingList"></setting-bar> <transition appear name="head" mode="out-in">
<setting-bar v-if="showHeaderSettingStatus" :settingList="settingList" @settingChange="settingChange"
@settingClose="showHeaderSettingStatus = false"></setting-bar>
</transition>
</div> </div>
</template> </template>
<script> <script>
...@@ -37,6 +40,9 @@ export default { ...@@ -37,6 +40,9 @@ export default {
methods: { methods: {
showHeaderSetting() { showHeaderSetting() {
this.showHeaderSettingStatus = true; this.showHeaderSettingStatus = true;
},
settingChange(use) {
this.$emit("settingChange", use);
} }
}, },
} }
......
...@@ -10,7 +10,7 @@ NProgress.configure({ showSpinner: false }); ...@@ -10,7 +10,7 @@ NProgress.configure({ showSpinner: false });
const whiteList = ['/login', '/register']; const whiteList = ['/login', '/register'];
router.beforeEach((to, from, next) => { router.beforeEach(async (to, from, next) => {
NProgress.start(); NProgress.start();
if (getToken()) { if (getToken()) {
// tab页签title // tab页签title
...@@ -26,20 +26,21 @@ router.beforeEach((to, from, next) => { ...@@ -26,20 +26,21 @@ router.beforeEach((to, from, next) => {
if (store.getters.roles.length === 0) { if (store.getters.roles.length === 0) {
isRelogin.show = true; isRelogin.show = true;
// 判断当前用户是否已拉取完user_info信息 // 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(() => { try {
await store.dispatch('GetInfo');
// 拉取地区信息
await store.dispatch("getArea");
isRelogin.show = false; isRelogin.show = false;
store.dispatch('GenerateRoutes').then(accessRoutes => { const accessRoutes = await store.dispatch('GenerateRoutes');
// 根据roles权限生成可访问的路由表 // 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes); // 动态添加可访问路由表 router.addRoutes(accessRoutes); // 动态添加可访问路由表
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成 next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
}); } catch (error) {
}).catch(err => { await store.dispatch('LogOut');
store.dispatch('LogOut').then(() => { Message.error(error);
Message.error(err); sessionStorage.removeItem('views');
sessionStorage.removeItem('views'); next({ path: '/' });
next({ path: '/' }); }
});
});
} else { } else {
next(); next();
} }
......
import { login, logout, getInfo } from '@/api/login'; import { login, logout, getInfo } from '@/api/login';
import { getAreaListApi } from "@/api/common";
import { getToken, setToken, removeToken, setTenantid } from '@/utils/auth'; import { getToken, setToken, removeToken, setTenantid } from '@/utils/auth';
const user = { const user = {
...@@ -10,6 +11,7 @@ const user = { ...@@ -10,6 +11,7 @@ const user = {
permissions: [], permissions: [],
userId: '', userId: '',
phonenumber: '', phonenumber: '',
areaArrayList: []
}, },
mutations: { mutations: {
...@@ -33,6 +35,9 @@ const user = { ...@@ -33,6 +35,9 @@ const user = {
}, },
SET_USERPHONE: (state, phonenumber) => { SET_USERPHONE: (state, phonenumber) => {
state.phonenumber = phonenumber; state.phonenumber = phonenumber;
},
SET_AREA_LIST(state, payload) {
state.areaArrayList = payload ? payload : [];
} }
}, },
...@@ -78,6 +83,18 @@ const user = { ...@@ -78,6 +83,18 @@ const user = {
}); });
}, },
// 获取地区信息
async getArea({ commit, state }) {
try {
const areaList = await getAreaListApi();
if (areaList.code == 200) {
commit("SET_AREA_LIST", areaList.data);
return areaList;
}
return [];
} catch (error) { }
},
// 退出系统 // 退出系统
LogOut({ commit, state }) { LogOut({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
......
...@@ -587,6 +587,67 @@ export function hasDuplicates(arr, mapKey = null) { ...@@ -587,6 +587,67 @@ export function hasDuplicates(arr, mapKey = null) {
} }
} }
/**
* 表单查询条件过滤
* @param {Object} params
*/
export function queryConditionFiltering(params) {
try {
if (Object.prototype.toString.call(params) != "[object Object]") throw new Error("传入查询条件不是一个对象");
const _temp = JSON.parse(JSON.stringify(params));
const keys = Object.keys(_temp);;
const len = keys.length;
const result = {};
for (let index = 0; index < len; index++) {
const key = keys[index];
if (_temp.hasOwnProperty(key)) {
// 数组内部不处理
if (_temp[key] instanceof Array && _temp[key]?.length) {
result[key] = _temp[key];
continue;
}
// 如果是对象 递归处理
if (Object.prototype.toString.call(_temp[key]) == "[object Object]") {
result[key] = queryConditionFiltering(_temp[key]);
continue;
}
// 过滤无效值 0为有效数据 object在此处作为无效值
if (typeof _temp[key] != "object" && (_temp[key] || _temp[key] == "0")) {
result[key] = _temp[key];
continue;
}
}
}
return result;
} catch (error) {
console.warn(error);
}
}
/**
* 三级联动选择 过滤省市区 兼容父子互不关联情况
* @param {Array<object>} selectList
* @returns
*/
export function getTreeSelectAreaList(selectList) {
try {
if (Object.prototype.toString.call(selectList) != "[object Array]") throw new Error("传入查询条件不是一个数组");
if (!selectList?.length) return [];
const _temp = selectList;
const selectMap = new Map();
const len = _temp.length;
for (let index = 0; index < len; index++) {
const treeItem = _temp[index];
console.log(treeItem);
// 没有父级 作为最顶级元素
if (!treeItem.parent) selectMap.set(treeItem.value, {});
}
} catch (error) {
console.log(error);
}
}
// 甲方详情左侧菜单映射 // 甲方详情左侧菜单映射
export const detailSideBar = new Map([ export const detailSideBar = new Map([
// 企业速览 // 企业速览
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment