Commit 5dd7115f authored by huangjie's avatar huangjie

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys...

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys into V20231129-中建一局二公司
parents 43b6f03e a1e15288
package com.dsk.cscec.constant;
/**
* 搜索常量信息
*
* @author sxk
* @date 2023.12.11
* @time 14:22
*/
public interface QueryConstants {
/**
* 筛选数据一级公司名称
*/
String LEVEL1_COMPANY_NAME = "中建一局集团第二建筑有限公司";
/**
* 筛选数据一级公司ID
*/
String LEVEL1_COMPANY_ID = "F17305B4EA4444CBAB12892C7B99E475";
/**
* 筛选数据二级公司名称
* 备用,需要时请填入内容
*/
String LEVEL2_COMPANY_NAME = "";
/**
* 筛选数据二级公司ID
* 备用,需要时请填入内容
*/
String LEVEL2_COMPANY_ID = "";
}
...@@ -14,6 +14,7 @@ import com.dsk.system.domain.SysDept; ...@@ -14,6 +14,7 @@ import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.vo.SysDeptVo; import com.dsk.system.domain.vo.SysDeptVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -43,6 +44,14 @@ public class DCustomerController extends BaseController { ...@@ -43,6 +44,14 @@ public class DCustomerController extends BaseController {
return baseService.allSearchList(bo,query); return baseService.allSearchList(bo,query);
} }
/**
* 供应商信息
*/
@GetMapping("/info/{customerKey}")
public R<DCustomer> info(@PathVariable String customerKey) {
return R.ok(baseService.getById(customerKey));
}
} }
...@@ -3,6 +3,8 @@ package com.dsk.cscec.domain; ...@@ -3,6 +3,8 @@ package com.dsk.cscec.domain;
import java.util.Date; import java.util.Date;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
/** /**
...@@ -19,6 +21,7 @@ public class DCustomer implements Serializable { ...@@ -19,6 +21,7 @@ public class DCustomer implements Serializable {
/** /**
* 客商主键 * 客商主键
*/ */
@TableId(value = "customer_key")
private Long customerKey; private Long customerKey;
/** /**
* ipm供应商id * ipm供应商id
...@@ -528,5 +531,15 @@ public class DCustomer implements Serializable { ...@@ -528,5 +531,15 @@ public class DCustomer implements Serializable {
* 数据更新时间 * 数据更新时间
*/ */
private Date loadTime; private Date loadTime;
/**
* 企业合作数量
*/
@TableField(exist = false)
private Integer enterpriseCooperationCount;
/**
* 项目合作数量
*/
@TableField(exist = false)
private Integer projectCooperationCount;
} }
package com.dsk.cscec.domain;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
* 分包分供合同(DSubcontract)表实体类
*
* @author lcl
* @since 2023-12-11 15:31:44
*/
@Data
public class DSubcontract implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分包合同主键
*/
private Long subcontractKey;
/**
* 分包合同ID
*/
private String subcontractId;
/**
* 分包合同编码
*/
private String subcontractCode;
/**
* 分包合同名称
*/
private String subcontractName;
/**
* 财务一体化分包合同编码
*/
private String fipSubcontractCode;
/**
* 财务一体化分包合同名称
*/
private String fipSubcontractName;
/**
* 业务类型
*/
private String contractScope;
/**
* 合同类型
*/
private String contractType;
/**
* 项目ID
*/
private String projectId;
/**
* 项目编码
*/
private String projectCode;
/**
* 项目名称
*/
private String projectName;
/**
* 分包合同金额
*/
private Double subcontractValue;
/**
* 分包合同不含税金额
*/
private Double subcontractValueExcl;
/**
* 分包合同税额
*/
private Double subcontractTaxValue;
/**
* 签订单位ID
*/
private String signOrgId;
/**
* 签订单位名称
*/
private String signOrgName;
/**
* 合同签订日期
*/
private String signDate;
/**
* 合同盖章日期
*/
private String stampDate;
/**
* 合同返回日期
*/
private String returnDate;
/**
* 交底日期
*/
private String noticeDate;
/**
* 实际完成时间
*/
private String completeDate;
/**
* 合同开始日期
*/
private String subcontractStartDate;
/**
* 合同结束日期
*/
private String subcontractEndDate;
/**
* 是否甲指
*/
private String isownerappoint;
/**
* 施工专业ID
*/
private String specialtyId;
/**
* 施工专业
*/
private String specialtyType;
/**
* 履约状态
*/
private String contractState;
/**
* 供应商ID
*/
private String customerId;
/**
* 供应商名称
*/
private String customerName;
/**
* 客商类型
*/
private String customerType;
/**
* 分包范围
*/
private String jobScope;
/**
* 付款方式
*/
private String payType;
/**
* 付款比例是否固定
*/
private Double isfixedpayratio;
/**
* 过程中付款比例
*/
private Double processPayRatio;
/**
* 完工后付款比例
*/
private Double completePayRatio;
/**
* 结算后付款比例
*/
private Double settlePayRatio;
/**
* 保修金比例
*/
private Double warrantyGoldRatio;
/**
* 分包合同应付金额
*/
private Double subcontractPayableValue;
/**
* 分包合同已付金额
*/
private Double subcontractPaidValue;
/**
* 预付款
*/
private Double prepayValue;
/**
* 已付款
*/
private Double paidValue;
/**
* 垫付款
*/
private Double advanceValue;
/**
* 结算方式
*/
private String settleType;
/**
* 结算价
*/
private Double settleValue;
/**
* 人工费
*/
private Double laborFee;
/**
* 备注
*/
private String remark;
/**
* 合同分类
*/
private String contractClass;
/**
* 成本科目ID
*/
private String costSubjectId;
/**
* 成本科目名称
*/
private String costSubjectName;
/**
* 成本科目全路径名称
*/
private String costSubjectFullname;
/**
* 执行备案
*/
private String contractTextType;
/**
* 税率
*/
private Double taxRate;
/**
* 盖章份数
*/
private Double noOfStamp;
/**
* 盖章明晰
*/
private String signRemark;
/**
* 返回明晰
*/
private String issign;
/**
* 承包类型
*/
private String contractForm;
/**
* 是否为一局内部公司
*/
private String iscscec1bcompany;
/**
* 是否主体结构分包合同
*/
private String isfirststruct;
/**
* 建筑面积
*/
private Double areaSum;
/**
* 锁定金额
*/
private Double lockValue;
/**
* 战采资源级别
*/
private String gpResLevel;
/**
* 战采资源类别
*/
private String gpResScope;
/**
* 战采资源品类
*/
private String gpResCategory;
/**
* 战略采购供应商年度
*/
private Double gpSupplierYear;
/**
* 是否集中采购(是/否)
*/
private String isGp;
/**
* 战采管理要求
*/
private String gpApplication;
/**
* 合同是否执行战采价格
*/
private String isUseGpprice;
/**
* 战采供应商ID
*/
private String fgpcustomerid;
/**
* 分包合同版本
*/
private Double subcontractVersion;
/**
* 流程状态
*/
private String fbizstatename;
/**
* 流程状态
*/
private String fbizstate;
/**
* 材料类型
*/
private String materialType;
/**
* 数据加载时间
*/
private String loadTime;
}
...@@ -2,6 +2,8 @@ package com.dsk.cscec.domain.bo; ...@@ -2,6 +2,8 @@ package com.dsk.cscec.domain.bo;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @Author lcl * @Author lcl
* @Data 2023/12/8 16:07 * @Data 2023/12/8 16:07
...@@ -15,30 +17,42 @@ public class DCustomerSearchBo { ...@@ -15,30 +17,42 @@ public class DCustomerSearchBo {
/** /**
* 区域 * 区域
*/ */
private String[] region; private List<String> region;
/** /**
* 省 * 省
*/ */
private String[] province; private List<String> province;
/** /**
* 市 * 市
*/ */
private String[] city; private List<String> city;
/** /**
* 供应商类别 * 供应商类别
*/ */
private String[] customerClass; private List<String> customerClass;
/** /**
* 供应商状态 * 供应商状态
*/ */
private String[] customerState; private List<String> customerState;
/** /**
* 评价等级 * 评价等级
*/ */
private String[] creditLevel; private List<String> creditLevel;
/** /**
* 资质等级 * 资质等级
*/ */
private String[] credential; private List<String> credential;
/**
* 准入时间(开始)
*/
private String approveDateBegion;
/**
* 准入时间(结束)
*/
private String approveDateEnd;
/**
* 是否队伍 0:否 1:是
*/
private Integer isTeam;
} }
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.DSubcontract;
/**
* 分包分供合同(DSubcontract)表数据库访问层
*
* @author lcl
* @since 2023-12-11 15:31:44
*/
public interface DSubcontractMapper extends BaseMapper<DSubcontract> {
Integer selectEnterpriseCountByCustomerId(String customerId);
Integer selectProjectCountByCustomerId(String customerId);
}
package com.dsk.cscec.service.impl; package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.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.domain.DCustomer;
import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.IDCustomerService; import com.dsk.cscec.service.IDCustomerService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/** /**
* 组织维表(DCustomer)表服务实现类 * 组织维表(DCustomer)表服务实现类
...@@ -18,9 +26,62 @@ import org.springframework.stereotype.Service; ...@@ -18,9 +26,62 @@ import org.springframework.stereotype.Service;
@Service @Service
public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer> implements IDCustomerService { public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer> implements IDCustomerService {
@Resource
private DSubcontractMapper subcontractMapper;
@Override @Override
public TableDataInfo<DCustomer> allSearchList(DCustomerSearchBo bo, PageQuery query) { public TableDataInfo<DCustomer> allSearchList(DCustomerSearchBo bo, PageQuery query) {
return TableDataInfo.build(baseMapper.allSearchList(query.build(),bo)); dealWithCustomerClass(bo);
Page<DCustomer> page = baseMapper.allSearchList(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) {
for (DCustomer customer : page.getRecords()) {
//企业合作数量
customer.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(customer.getCustomerId()));
//项目合作数量
customer.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(customer.getCustomerId()));
}
}
return TableDataInfo.build(page);
}
private void dealWithCustomerClass(DCustomerSearchBo bo) {
if (!ObjectUtils.isEmpty(bo.getCustomerClass())) {
List<String> list = new ArrayList<>();
Integer isTeam = null;
for (String customerClass : bo.getCustomerClass()) {
switch (customerClass){
case "专业分包":
list.add("专业分包");
break;
case "物资设备":
list.add("分供");
break;
case "施工机械":
list.add("租赁");
break;
case "劳务分包":
if(isTeam == null){
isTeam = 0;
}else if(isTeam == 1) {
isTeam = null;
}
list.add("劳务分包");
break;
case "劳务队伍":
if(isTeam == null) {
isTeam = 1;
}else if(isTeam == 0) {
isTeam = null;
}
list.add("劳务分包");
break;
default:
break;
}
}
bo.setCustomerClass(list);
bo.setIsTeam(isTeam);
}
} }
} }
...@@ -6,13 +6,58 @@ ...@@ -6,13 +6,58 @@
<select id="allSearchList" resultType="com.dsk.cscec.domain.DCustomer"> <select id="allSearchList" resultType="com.dsk.cscec.domain.DCustomer">
select select
customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business, paytax_type, tax_rate, customer_key, customer_id, customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business,
customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality, construct_job_scope, credential, paytax_type, tax_rate, customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality,
register_capital, contact_person, contact_phone, approve_date2, credit_level construct_job_scope, credential, register_capital, contact_person, contact_phone, approve_date2, credit_level
from d_customer from d_customer
where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475' where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
<if test="bo.customerName != null and bo.customerName != '' "> and customer_name like concat('%',#{bo.customerName},'%')</if> <if test="bo.customerName != null and bo.customerName != '' "> and customer_name like concat('%',#{bo.customerName},'%')</if>
order by approve_date2 desc <if test="bo.region != null and bo.region != '' ">
and register_region in
<foreach collection="region" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.province != null and bo.province != '' ">
and register_province in
<foreach collection="province" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.city != null and bo.city != '' ">
and register_city in
<foreach collection="city" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.customerClass != null and bo.customerClass != '' ">
and customer_class in
<foreach collection="customerClass" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.customerState != null and bo.customerState != '' ">
and customer_state in
<foreach collection="customerState" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.creditLevel != null and bo.creditLevel != '' ">
and credit_level in
<foreach collection="creditLevel" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.credential != null and bo.credential != '' ">
and credential in
<foreach collection="credential" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="bo.approveDateBegion != null and bo.approveDateBegion != '' ">and approve_date2 &gt;= #{bo.approveDateBegion}</if>
<if test="bo.approveDateEnd != null and bo.approveDateEnd != '' ">and approve_date2 &lt;= #{bo.approveDateBegion} </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 0">not</if> null </if>
order by approve_date2 desc
</select> </select>
</mapper> </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.DSubcontractMapper">
<select id="selectEnterpriseCountByCustomerId" resultType="java.lang.Integer">
select count(num) from (
select count(sign_org_id) num from d_subcontract where customer_id = #{customerId} group by sign_org_id
) a
</select>
<select id="selectProjectCountByCustomerId" resultType="java.lang.Integer">
select count(num) from (
select count(project_id) num from d_subcontract where customer_id = #{customerId} group by project_id
) a
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1543827393750" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4695" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: rbicon; src: url("chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2") format("woff2"); font-weight: normal; font-style: normal; } <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_04949"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_233_92225/11_04949)"><g><path d="M6.5,14L6.5,11Q6.5,10.9507543,6.509607,10.9024549Q6.519215,10.854155,6.53806,10.808658Q6.556906,10.763161,6.584265,10.722215Q6.611625,10.681269,6.646447,10.646447Q6.681269,10.611625,6.722215,10.584265Q6.763161,10.556906,6.808658,10.53806Q6.854155,10.519214999999999,6.9024549,10.509607Q6.9507543,10.5,7,10.5L9,10.5Q9.04925,10.5,9.09754,10.509607Q9.14584,10.519214999999999,9.19134,10.53806Q9.23684,10.556906,9.27778,10.584265Q9.31873,10.611625,9.35355,10.646447Q9.38838,10.681269,9.41573,10.722215Q9.44309,10.763161,9.46194,10.808658Q9.48078,10.854155,9.49039,10.9024549Q9.5,10.9507543,9.5,11L9.5,14Q9.5,14.04925,9.49039,14.09754Q9.48078,14.14584,9.46194,14.19134Q9.44309,14.23684,9.41573,14.27778Q9.38838,14.31873,9.35355,14.35355Q9.31873,14.38837,9.27779,14.41573Q9.23684,14.44309,9.19134,14.46194Q9.14584,14.48078,9.09754,14.49039Q9.04925,14.5,9,14.5L7,14.5Q6.9507543,14.5,6.9024549,14.49039Q6.854155,14.48078,6.808658,14.46194Q6.763161,14.44309,6.722215,14.41573Q6.681269,14.38837,6.646447,14.35355Q6.611625,14.31873,6.584265,14.27778Q6.556906,14.23684,6.53806,14.19134Q6.519215,14.14584,6.509607,14.09754Q6.5,14.04925,6.5,14ZM7.5,11.5L7.5,13.5L8.5,13.5L8.5,11.5L7.5,11.5Z" fill="#FFFFFF" fill-opacity="1"/></g><g><rect x="2" y="3" width="12" height="8" rx="1" fill-opacity="0" stroke-opacity="1" stroke="#FFFFFF" fill="none" stroke-width="1"/></g><g transform="matrix(1,0.0000922808758332394,-0.00009228093404090032,1,0.0012919330765726045,-0.0003691235033329576)"><path d="M4,14.5L12.00001,14.5Q12.04926,14.5,12.09756,14.490393Q12.14586,14.480785000000001,12.19135,14.46194Q12.23685,14.443094,12.2778,14.415735Q12.31874,14.388375,12.35357,14.353553Q12.38839,14.318731,12.41575,14.277785Q12.44311,14.236839,12.46195,14.191342Q12.4808,14.145845,12.49041,14.0975451Q12.50001,14.0492457,12.50001,14Q12.50001,13.9507543,12.49041,13.9024549Q12.4808,13.854155,12.46195,13.808658Q12.44311,13.763161,12.41575,13.722215Q12.38839,13.681269,12.35357,13.646447Q12.31874,13.611625,12.2778,13.584265Q12.23685,13.556906,12.19135,13.53806Q12.14586,13.519214999999999,12.09756,13.509607Q12.04926,13.5,12.00001,13.5L4,13.5Q3.9507543,13.5,3.9024549,13.509607Q3.854155,13.519214999999999,3.808658,13.53806Q3.763161,13.556906,3.722215,13.584265Q3.681269,13.611625,3.646447,13.646447Q3.611625,13.681269,3.584265,13.722215Q3.556906,13.763161,3.5380599999999998,13.808658Q3.519215,13.854155,3.509607,13.9024549Q3.5,13.9507543,3.5,14Q3.5,14.0492457,3.509607,14.0975451Q3.519215,14.145845,3.5380599999999998,14.191342Q3.556906,14.236839,3.584265,14.277785Q3.611625,14.318731,3.646447,14.353553Q3.681269,14.388375,3.722215,14.415735Q3.763161,14.443094,3.808658,14.46194Q3.854155,14.480785000000001,3.9024549,14.490393Q3.9507543,14.5,4,14.5Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M11.85355,5.353553Q11.92388,5.283227,11.96194,5.191342Q12,5.0994562,12,5Q12,4.9507543,11.99039,4.9024549Q11.98078,4.854155,11.96194,4.808658Q11.94309,4.763161,11.91573,4.722215Q11.88837,4.681269,11.85355,4.646447Q11.81873,4.611625,11.77778,4.584265Q11.73684,4.556906,11.69134,4.53806Q11.64584,4.519215,11.59754,4.509607Q11.54925,4.5,11.5,4.5Q11.40054,4.5,11.30866,4.53806Q11.21677,4.57612,11.14645,4.646447L11.14626,4.646634L8.5,7.29289L7.35355,6.14645Q7.31873,6.11162,7.27778,6.08427Q7.23684,6.05691,7.19134,6.03806Q7.14584,6.01921,7.09754,6.00961Q7.04925,6,7,6Q6.95075,6,6.90245,6.00961Q6.85416,6.01921,6.80866,6.03806Q6.76316,6.05691,6.7222100000000005,6.08427Q6.68127,6.11162,6.64645,6.14645L4.646634,8.14626L4.646447,8.14645Q4.57612,8.21677,4.53806,8.30866Q4.5,8.40054,4.5,8.5Q4.5,8.54925,4.509607,8.59754Q4.519215,8.64584,4.53806,8.69134Q4.556906,8.73684,4.584265,8.77778Q4.611625,8.81873,4.646447,8.85355Q4.681269,8.88838,4.722215,8.91573Q4.763161,8.94309,4.808658,8.96194Q4.854155,8.98078,4.9024549,8.99039Q4.9507543,9,5,9Q5.0994562,9,5.191342,8.96194Q5.283227,8.92388,5.353553,8.85355L5.353741,8.85337L7,7.20711L8.14645,8.35355Q8.21677,8.42388,8.30866,8.46194Q8.40054,8.5,8.5,8.5Q8.59946,8.5,8.69134,8.46194Q8.78323,8.42388,8.85355,8.35355L11.85337,5.353741L11.85355,5.353553L11.85355,5.353553Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg>
</style></defs><path d="M64 64V640H896V64H64zM0 0h960v704H0V0z" p-id="4696"></path><path d="M192 896H768v64H192zM448 640H512v256h-64z" p-id="4697"></path><path d="M479.232 561.604267l309.9904-348.330667-47.803733-42.5472-259.566934 291.669333L303.957333 240.008533 163.208533 438.6048l52.224 37.009067 91.6224-129.28z" p-id="4698"></path></svg> \ No newline at end of file
\ 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_80210"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_264_80210)"><g><path d="M5.625,12.25L5.625,9.625Q5.625,9.5757543,5.634607,9.5274549Q5.644215,9.479155,5.66306,9.433658Q5.681906,9.388161,5.709265,9.347215Q5.736625,9.306269,5.771447,9.271447Q5.806269,9.236625,5.847215,9.209265Q5.888161,9.181906,5.933658,9.16306Q5.979155,9.144214999999999,6.0274549,9.134607Q6.0757543,9.125,6.125,9.125L7.875,9.125Q7.92425,9.125,7.97254,9.134607Q8.02084,9.144214999999999,8.06634,9.16306Q8.11184,9.181906,8.15278,9.209265Q8.19373,9.236625,8.22855,9.271447Q8.26337,9.306269,8.29073,9.347215Q8.31809,9.388161,8.33694,9.433658Q8.35578,9.479155,8.36539,9.5274549Q8.375,9.5757543,8.375,9.625L8.375,12.25Q8.375,12.29925,8.36539,12.34755Q8.35578,12.39584,8.33694,12.44134Q8.31809,12.48684,8.29073,12.52778Q8.26337,12.56873,8.22855,12.60355Q8.19373,12.63838,8.15278,12.66573Q8.11184,12.69309,8.06634,12.71194Q8.02084,12.73078,7.97254,12.74039Q7.92425,12.75,7.875,12.75L6.125,12.75Q6.0757543,12.75,6.0274549,12.74039Q5.979155,12.73078,5.933658,12.71194Q5.888161,12.69309,5.847215,12.66573Q5.806269,12.63838,5.771447,12.60355Q5.736625,12.56873,5.709265,12.52778Q5.681906,12.48684,5.66306,12.44134Q5.644215,12.39584,5.634607,12.34755Q5.625,12.29925,5.625,12.25ZM6.625,10.125L6.625,11.75L7.375,11.75L7.375,10.125L6.625,10.125Z" fill="#86909C" fill-opacity="1"/></g><g><rect x="1.75" y="2.625" width="10.5" height="7" rx="1" fill-opacity="0" stroke-opacity="1" stroke="#86909C" fill="none" stroke-width="1"/></g><g transform="matrix(1,0.0000922808758332394,-0.00009228093404090032,1,0.001130441442001029,-0.0003229830654163379)"><path d="M3.5,12.75L10.50001,12.75Q10.54926,12.75,10.59756,12.740393Q10.645859999999999,12.730785000000001,10.69135,12.71194Q10.73685,12.693094,10.7778,12.665735Q10.81874,12.638375,10.85356,12.603553Q10.888390000000001,12.568731,10.91575,12.527785Q10.943100000000001,12.486839,10.96195,12.441342Q10.9808,12.395845,10.990400000000001,12.3475451Q11.00001,12.2992457,11.00001,12.25Q11.00001,12.2007543,10.990400000000001,12.1524549Q10.9808,12.104155,10.96195,12.058658Q10.943100000000001,12.013161,10.91575,11.972215Q10.888390000000001,11.931269,10.85356,11.896447Q10.81874,11.861625,10.7778,11.834265Q10.73685,11.806906,10.69135,11.78806Q10.645859999999999,11.769214999999999,10.59756,11.759607Q10.54926,11.75,10.50001,11.75L3.5,11.75Q3.4507543,11.75,3.4024549,11.759607Q3.354155,11.769214999999999,3.308658,11.78806Q3.263161,11.806906,3.222215,11.834265Q3.181269,11.861625,3.146447,11.896447Q3.111625,11.931269,3.084265,11.972215Q3.056906,12.013161,3.0380599999999998,12.058658Q3.019215,12.104155,3.009607,12.1524549Q3,12.2007543,3,12.25Q3,12.2992457,3.009607,12.3475451Q3.019215,12.395845,3.0380599999999998,12.441342Q3.056906,12.486839,3.084265,12.527785Q3.111625,12.568731,3.146447,12.603553Q3.181269,12.638375,3.222215,12.665735Q3.263161,12.693094,3.308658,12.71194Q3.354155,12.730785000000001,3.4024549,12.740393Q3.4507543,12.75,3.5,12.75Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g><g><path d="M10.41605,4.728553Q10.48638,4.658227,10.52444,4.566342Q10.5625,4.4744562,10.5625,4.375Q10.5625,4.3257543,10.55289,4.2774549Q10.54328,4.229155,10.52444,4.183658Q10.50559,4.138161,10.47823,4.097215Q10.45087,4.056269,10.41605,4.021447Q10.38123,3.986625,10.34028,3.959265Q10.29934,3.931906,10.25384,3.9130599999999998Q10.20834,3.894215,10.16004,3.884607Q10.11175,3.875,10.0625,3.875Q9.96304,3.875,9.87116,3.9130599999999998Q9.77927,3.95112,9.70895,4.021447L9.70876,4.021634L7.4375,6.29289L6.47855,5.333947Q6.44373,5.299124,6.40278,5.271765Q6.36184,5.244406,6.31634,5.22556Q6.27084,5.206715,6.22254,5.197107Q6.17425,5.1875,6.125,5.1875Q6.07575,5.1875,6.02745,5.197107Q5.97916,5.206715,5.93366,5.22556Q5.88816,5.244406,5.8472100000000005,5.271765Q5.80627,5.299124,5.77145,5.333947L4.021634,7.08376L4.021447,7.08395Q3.95112,7.15427,3.9130599999999998,7.24616Q3.875,7.3380399999999995,3.875,7.4375Q3.875,7.48675,3.884607,7.53504Q3.894215,7.58334,3.9130599999999998,7.62884Q3.931906,7.67434,3.959265,7.71528Q3.986625,7.75623,4.021447,7.79105Q4.056269,7.82588,4.097215,7.85323Q4.138161,7.88059,4.183658,7.89944Q4.229155,7.91829,4.2774549,7.92789Q4.3257543,7.9375,4.375,7.9375Q4.4744562,7.9375,4.566342,7.89944Q4.658227,7.8613800000000005,4.728553,7.79105L4.728741,7.79087L6.125,6.39461L7.08395,7.35355Q7.15427,7.4238800000000005,7.24616,7.46194Q7.3380399999999995,7.5,7.4375,7.5Q7.5369600000000005,7.5,7.62884,7.46194Q7.72073,7.4238800000000005,7.79105,7.35355L10.41587,4.728741L10.41605,4.728553L10.41605,4.728553Z" fill-rule="evenodd" fill="#86909C" 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_80210"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_264_80210)"><g><path d="M5.625,12.25L5.625,9.625Q5.625,9.5757543,5.634607,9.5274549Q5.644215,9.479155,5.66306,9.433658Q5.681906,9.388161,5.709265,9.347215Q5.736625,9.306269,5.771447,9.271447Q5.806269,9.236625,5.847215,9.209265Q5.888161,9.181906,5.933658,9.16306Q5.979155,9.144214999999999,6.0274549,9.134607Q6.0757543,9.125,6.125,9.125L7.875,9.125Q7.92425,9.125,7.97254,9.134607Q8.02084,9.144214999999999,8.06634,9.16306Q8.11184,9.181906,8.15278,9.209265Q8.19373,9.236625,8.22855,9.271447Q8.26337,9.306269,8.29073,9.347215Q8.31809,9.388161,8.33694,9.433658Q8.35578,9.479155,8.36539,9.5274549Q8.375,9.5757543,8.375,9.625L8.375,12.25Q8.375,12.29925,8.36539,12.34755Q8.35578,12.39584,8.33694,12.44134Q8.31809,12.48684,8.29073,12.52778Q8.26337,12.56873,8.22855,12.60355Q8.19373,12.63838,8.15278,12.66573Q8.11184,12.69309,8.06634,12.71194Q8.02084,12.73078,7.97254,12.74039Q7.92425,12.75,7.875,12.75L6.125,12.75Q6.0757543,12.75,6.0274549,12.74039Q5.979155,12.73078,5.933658,12.71194Q5.888161,12.69309,5.847215,12.66573Q5.806269,12.63838,5.771447,12.60355Q5.736625,12.56873,5.709265,12.52778Q5.681906,12.48684,5.66306,12.44134Q5.644215,12.39584,5.634607,12.34755Q5.625,12.29925,5.625,12.25ZM6.625,10.125L6.625,11.75L7.375,11.75L7.375,10.125L6.625,10.125Z" fill="#86909C" fill-opacity="1"/></g><g><rect x="1.75" y="2.625" width="10.5" height="7" rx="1" fill-opacity="0" stroke-opacity="1" stroke="#86909C" fill="none" stroke-width="1"/></g><g transform="matrix(1,0.0000922808758332394,-0.00009228093404090032,1,0.001130441442001029,-0.0003229830654163379)"><path d="M3.5,12.75L10.50001,12.75Q10.54926,12.75,10.59756,12.740393Q10.645859999999999,12.730785000000001,10.69135,12.71194Q10.73685,12.693094,10.7778,12.665735Q10.81874,12.638375,10.85356,12.603553Q10.888390000000001,12.568731,10.91575,12.527785Q10.943100000000001,12.486839,10.96195,12.441342Q10.9808,12.395845,10.990400000000001,12.3475451Q11.00001,12.2992457,11.00001,12.25Q11.00001,12.2007543,10.990400000000001,12.1524549Q10.9808,12.104155,10.96195,12.058658Q10.943100000000001,12.013161,10.91575,11.972215Q10.888390000000001,11.931269,10.85356,11.896447Q10.81874,11.861625,10.7778,11.834265Q10.73685,11.806906,10.69135,11.78806Q10.645859999999999,11.769214999999999,10.59756,11.759607Q10.54926,11.75,10.50001,11.75L3.5,11.75Q3.4507543,11.75,3.4024549,11.759607Q3.354155,11.769214999999999,3.308658,11.78806Q3.263161,11.806906,3.222215,11.834265Q3.181269,11.861625,3.146447,11.896447Q3.111625,11.931269,3.084265,11.972215Q3.056906,12.013161,3.0380599999999998,12.058658Q3.019215,12.104155,3.009607,12.1524549Q3,12.2007543,3,12.25Q3,12.2992457,3.009607,12.3475451Q3.019215,12.395845,3.0380599999999998,12.441342Q3.056906,12.486839,3.084265,12.527785Q3.111625,12.568731,3.146447,12.603553Q3.181269,12.638375,3.222215,12.665735Q3.263161,12.693094,3.308658,12.71194Q3.354155,12.730785000000001,3.4024549,12.740393Q3.4507543,12.75,3.5,12.75Z" fill-rule="evenodd" fill="#86909C" fill-opacity="1"/></g><g><path d="M10.41605,4.728553Q10.48638,4.658227,10.52444,4.566342Q10.5625,4.4744562,10.5625,4.375Q10.5625,4.3257543,10.55289,4.2774549Q10.54328,4.229155,10.52444,4.183658Q10.50559,4.138161,10.47823,4.097215Q10.45087,4.056269,10.41605,4.021447Q10.38123,3.986625,10.34028,3.959265Q10.29934,3.931906,10.25384,3.9130599999999998Q10.20834,3.894215,10.16004,3.884607Q10.11175,3.875,10.0625,3.875Q9.96304,3.875,9.87116,3.9130599999999998Q9.77927,3.95112,9.70895,4.021447L9.70876,4.021634L7.4375,6.29289L6.47855,5.333947Q6.44373,5.299124,6.40278,5.271765Q6.36184,5.244406,6.31634,5.22556Q6.27084,5.206715,6.22254,5.197107Q6.17425,5.1875,6.125,5.1875Q6.07575,5.1875,6.02745,5.197107Q5.97916,5.206715,5.93366,5.22556Q5.88816,5.244406,5.8472100000000005,5.271765Q5.80627,5.299124,5.77145,5.333947L4.021634,7.08376L4.021447,7.08395Q3.95112,7.15427,3.9130599999999998,7.24616Q3.875,7.3380399999999995,3.875,7.4375Q3.875,7.48675,3.884607,7.53504Q3.894215,7.58334,3.9130599999999998,7.62884Q3.931906,7.67434,3.959265,7.71528Q3.986625,7.75623,4.021447,7.79105Q4.056269,7.82588,4.097215,7.85323Q4.138161,7.88059,4.183658,7.89944Q4.229155,7.91829,4.2774549,7.92789Q4.3257543,7.9375,4.375,7.9375Q4.4744562,7.9375,4.566342,7.89944Q4.658227,7.8613800000000005,4.728553,7.79105L4.728741,7.79087L6.125,6.39461L7.08395,7.35355Q7.15427,7.4238800000000005,7.24616,7.46194Q7.3380399999999995,7.5,7.4375,7.5Q7.5369600000000005,7.5,7.62884,7.46194Q7.72073,7.4238800000000005,7.79105,7.35355L10.41587,4.728741L10.41605,4.728553L10.41605,4.728553Z" fill-rule="evenodd" fill="#86909C" 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="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_233_92225/11_04949"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_233_92225/11_04949)"><g><path d="M6.5,14L6.5,11Q6.5,10.9507543,6.509607,10.9024549Q6.519215,10.854155,6.53806,10.808658Q6.556906,10.763161,6.584265,10.722215Q6.611625,10.681269,6.646447,10.646447Q6.681269,10.611625,6.722215,10.584265Q6.763161,10.556906,6.808658,10.53806Q6.854155,10.519214999999999,6.9024549,10.509607Q6.9507543,10.5,7,10.5L9,10.5Q9.04925,10.5,9.09754,10.509607Q9.14584,10.519214999999999,9.19134,10.53806Q9.23684,10.556906,9.27778,10.584265Q9.31873,10.611625,9.35355,10.646447Q9.38838,10.681269,9.41573,10.722215Q9.44309,10.763161,9.46194,10.808658Q9.48078,10.854155,9.49039,10.9024549Q9.5,10.9507543,9.5,11L9.5,14Q9.5,14.04925,9.49039,14.09754Q9.48078,14.14584,9.46194,14.19134Q9.44309,14.23684,9.41573,14.27778Q9.38838,14.31873,9.35355,14.35355Q9.31873,14.38837,9.27779,14.41573Q9.23684,14.44309,9.19134,14.46194Q9.14584,14.48078,9.09754,14.49039Q9.04925,14.5,9,14.5L7,14.5Q6.9507543,14.5,6.9024549,14.49039Q6.854155,14.48078,6.808658,14.46194Q6.763161,14.44309,6.722215,14.41573Q6.681269,14.38837,6.646447,14.35355Q6.611625,14.31873,6.584265,14.27778Q6.556906,14.23684,6.53806,14.19134Q6.519215,14.14584,6.509607,14.09754Q6.5,14.04925,6.5,14ZM7.5,11.5L7.5,13.5L8.5,13.5L8.5,11.5L7.5,11.5Z" fill="#FFFFFF" fill-opacity="1"/></g><g><rect x="2" y="3" width="12" height="8" rx="1" fill-opacity="0" stroke-opacity="1" stroke="#FFFFFF" fill="none" stroke-width="1"/></g><g transform="matrix(1,0.0000922808758332394,-0.00009228093404090032,1,0.0012919330765726045,-0.0003691235033329576)"><path d="M4,14.5L12.00001,14.5Q12.04926,14.5,12.09756,14.490393Q12.14586,14.480785000000001,12.19135,14.46194Q12.23685,14.443094,12.2778,14.415735Q12.31874,14.388375,12.35357,14.353553Q12.38839,14.318731,12.41575,14.277785Q12.44311,14.236839,12.46195,14.191342Q12.4808,14.145845,12.49041,14.0975451Q12.50001,14.0492457,12.50001,14Q12.50001,13.9507543,12.49041,13.9024549Q12.4808,13.854155,12.46195,13.808658Q12.44311,13.763161,12.41575,13.722215Q12.38839,13.681269,12.35357,13.646447Q12.31874,13.611625,12.2778,13.584265Q12.23685,13.556906,12.19135,13.53806Q12.14586,13.519214999999999,12.09756,13.509607Q12.04926,13.5,12.00001,13.5L4,13.5Q3.9507543,13.5,3.9024549,13.509607Q3.854155,13.519214999999999,3.808658,13.53806Q3.763161,13.556906,3.722215,13.584265Q3.681269,13.611625,3.646447,13.646447Q3.611625,13.681269,3.584265,13.722215Q3.556906,13.763161,3.5380599999999998,13.808658Q3.519215,13.854155,3.509607,13.9024549Q3.5,13.9507543,3.5,14Q3.5,14.0492457,3.509607,14.0975451Q3.519215,14.145845,3.5380599999999998,14.191342Q3.556906,14.236839,3.584265,14.277785Q3.611625,14.318731,3.646447,14.353553Q3.681269,14.388375,3.722215,14.415735Q3.763161,14.443094,3.808658,14.46194Q3.854155,14.480785000000001,3.9024549,14.490393Q3.9507543,14.5,4,14.5Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M11.85355,5.353553Q11.92388,5.283227,11.96194,5.191342Q12,5.0994562,12,5Q12,4.9507543,11.99039,4.9024549Q11.98078,4.854155,11.96194,4.808658Q11.94309,4.763161,11.91573,4.722215Q11.88837,4.681269,11.85355,4.646447Q11.81873,4.611625,11.77778,4.584265Q11.73684,4.556906,11.69134,4.53806Q11.64584,4.519215,11.59754,4.509607Q11.54925,4.5,11.5,4.5Q11.40054,4.5,11.30866,4.53806Q11.21677,4.57612,11.14645,4.646447L11.14626,4.646634L8.5,7.29289L7.35355,6.14645Q7.31873,6.11162,7.27778,6.08427Q7.23684,6.05691,7.19134,6.03806Q7.14584,6.01921,7.09754,6.00961Q7.04925,6,7,6Q6.95075,6,6.90245,6.00961Q6.85416,6.01921,6.80866,6.03806Q6.76316,6.05691,6.7222100000000005,6.08427Q6.68127,6.11162,6.64645,6.14645L4.646634,8.14626L4.646447,8.14645Q4.57612,8.21677,4.53806,8.30866Q4.5,8.40054,4.5,8.5Q4.5,8.54925,4.509607,8.59754Q4.519215,8.64584,4.53806,8.69134Q4.556906,8.73684,4.584265,8.77778Q4.611625,8.81873,4.646447,8.85355Q4.681269,8.88838,4.722215,8.91573Q4.763161,8.94309,4.808658,8.96194Q4.854155,8.98078,4.9024549,8.99039Q4.9507543,9,5,9Q5.0994562,9,5.191342,8.96194Q5.283227,8.92388,5.353553,8.85355L5.353741,8.85337L7,7.20711L8.14645,8.35355Q8.21677,8.42388,8.30866,8.46194Q8.40054,8.5,8.5,8.5Q8.59946,8.5,8.69134,8.46194Q8.78323,8.42388,8.85355,8.35355L11.85337,5.353741L11.85355,5.353553L11.85355,5.353553Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
<template>
</template>
<script>
export default {
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<!--企业监控列表-->
<div class="app-container EnterpriseMonitoring">
<div class="header">
<div class="search">
<div class="label">监控维度</div>
<div class="checkbox">
<el-radio-group v-model="radio">
<el-radio v-for="item in radioList" :label="item.type">{{item.label}}</el-radio>
</el-radio-group>
</div>
</div>
</div>
<div class="content">
<div class="table-search">
<div class="total">共 162 条</div>
<div class="right">
<span class="add">添加企业</span>
<span class="add1">批量监控</span>
</div>
</div>
<div class="table-item">
<el-table
class="fixed-table"
element-loading-text="Loading"
border
highlight-current-row
>
<el-table-column label="序号" width="60" align="left" fixed>
<!--<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>-->
<template slot-scope="scope">1</template>
</el-table-column>
<el-table-column label="监控对象" align="left">
<template slot-scope="scope">
中国中铁股份有限公司
</template>
</el-table-column>
<el-table-column label="风险动态" align="left">
<template slot-scope="scope">
中国中铁股份有限公司
</template>
</el-table-column>
<el-table-column label="监控时间" width="200" align="left">
<template slot-scope="scope">
2022-09-02
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
width="180"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span>取消监控</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-dialog :visible.sync="jkVisible" custom-class='dialog-claim' title="提示" width="480px" >
<div class="dialog-content"><i class="el-icon-warning"></i>取消后将错过企业最新动态</div>
<div slot="footer" class="dialog-footer">
<el-button>我再想想</el-button>
<el-button type="primary">确定取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="qyVisible" custom-class='dialog-claim' title="添加监控企业" width="480px" >
<div class="add-content">
<div class="enterprise">
<div class="label">企业名称</div>
<el-input class="name" placeholder="请输入企业名称">
<el-button slot="append">搜索</el-button>
</el-input>
</div>
<div class="companyList">
<div class="list">
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">中国铁建集团</p>
<p class="right-tips">推荐监控</p>
</div>
<el-checkbox></el-checkbox>
</div>
</div>
<p class="tips">前往企业查询寻找企业线索<i class="el-icon-arrow-right"></i></p>
<div class="btn">
<div>
<el-button>取消</el-button>
<el-button type="primary">确定</el-button>
</div>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button>取消</el-button>
<el-button type="primary">确定</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="pldrVisible" custom-class='dialog-claim' title="批量导入监控企业" width="480px" >
<div class="upload-content">
<el-upload
class="upload-demo"
drag
action="https://jsonplaceholder.typicode.com/posts/"
multiple>
<i class="el-icon-plus"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip">仅允许导入xls、xlsx格式文件</div>
</el-upload>
</div>
<div slot="footer" class="dialog-footer">
<el-button class="download" icon="el-icon-download">下载模版</el-button>
<el-button>取消</el-button>
<el-button type="primary">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: 'EnterpriseMonitoring',
data() {
return {
radio:1,
radioList:[
{
type:1,
label:'今天'
},
{
type:2,
label:'近三天'
},
{
type:3,
label:'近一周'
},
{
type:4,
label:'近半月'
},
{
type:5,
label:'近一个月'
},
{
type:6,
label:'自定义日期'
},
],
tableData:[
{
name:'中国中铁股份有限公司',
time:'2022-09-02',
}
],
jkVisible:false,
qyVisible:false,
pldrVisible:false,
}
},
created() {
},
methods: {
handleClick() {
}
}
}
</script>
<style lang="scss" scoped>
.EnterpriseMonitoring{
.header{
background: #FFFFFF;
padding: 25px 16px;
border-radius: 4px;
.search{
display: -webkit-box;
align-items: flex-start;
line-height: 20px;
.label{
margin-right: 24px;
}
}
}
.content{
background: #FFFFFF;
border-radius: 4px;
margin-top: 16px;
padding: 16px;
.table-search{
display: flex;
justify-content: space-between;
font-size: 12px;
margin-bottom: 16px;
.total{
color: rgba(35,35,35,0.8);
}
.right{
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 .dialog-claim{
margin:0 !important;
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
.el-dialog__header{
display: block;
padding:16px 20px;
border-bottom: 1px solid #EEEEEE;
font-size: 16px;
font-weight: 700;
color: #232323;
}
.el-dialog__body{
padding: 24px 20px;
font-size: 14px;
.dialog-content{
i{
margin-right: 10px;
font-size: 16px;
color:#FFAB44;
}
}
.upload-content{
.el-upload{
width: 100%;
}
.el-upload-dragger{
width: 100%;
padding-top: 50px;
.el-upload__text{
margin-top: 24px;
font-size: 14px;
}
.el-upload__tip{
font-size: 12px;
color: rgba(35,35,35,0.4);
}
}
}
.add-content{
height: 200px;
.enterprise{
display: -webkit-box;
align-items: flex-start;
line-height: 32px;
.name{
width: 372px;
height: 32px;
margin-left: 12px;
border-radius: 2px;
border: 1px solid #DCDFE6;
}
.el-input__inner{
border: 0;
height: 32px;
}
.el-input-group__append{
border: 0;
background: #F5F5F5;
width: 60px;
color: #0081FF;
}
}
.companyList{
width: 372px;
margin-left: 68px;
margin-top: 5px;
background: #FFFFFF;
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);
border-radius: 4px;
position: absolute;
.list{
max-height:372px;
}
.item{
display: flex;
margin: 0 16px;
padding: 14px 0 10px 0;
position: relative;
border-bottom: 1px solid #EEEEEE;
.item-left{
margin-right: 12px;
img{
width: 40px;
height: 40px;
}
}
.item-right{
p{
margin: 0;
padding: 0;
}
}
}
.item:last-child{
border-bottom: 0;
}
.tips{
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
height: 40px;
line-height: 40px;
color: #0081FF;
font-size: 12px;
padding: 0 0 0 12px;
margin: 0;
}
.btn{
padding: 16px 20px 24px 0;
display: block;
text-align: right;
}
}
}
}
.dialog-footer{
.download{
float: left;
}
}
}
}
</style>
<template>
<!--监控维度设置-->
<div class="app-container MonitorSettings">
<div class="content">
<div class="m-title">监控维度设置</div>
<div class="m-main">
<div class="main-item">
<div class="label">风险类型</div>
<div class="main-right">
<div class="checkbox">
<div class="checkbox-content-qx">
<el-checkbox v-model="checkFx" @change="checkFxBtn">全部</el-checkbox>
</div>
<el-checkbox-group v-model="queryParams.fxType" class="keyword_checkbox" @change="checkFx1Btn">
<el-checkbox v-for="item in fxlx" :label="item.value" :key="item.label">{{item.label}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
<div class="main-item">
<div class="label">监控维度</div>
<div class="main-right">
<div class="checkbox">
<div class="checkbox-content-qx">
<el-checkbox v-model="checkJkwd" @change="checkJkwdBtn">全部</el-checkbox>
</div>
<el-checkbox-group v-model="queryParams.jkwdType" class="keyword_checkbox" @change="checkJkwd1Btn">
<el-checkbox v-for="item in jkwd" :label="item.value" :key="item.label">{{item.label}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</div>
<div class="m-title">监控推送时间设置</div>
<div class="m-main">
<div class="main-item">
<div class="label">推送频率</div>
<el-radio v-model="queryParams.radio" label="1">每天</el-radio>
<el-radio v-model="queryParams.radio" label="2">工作日(排除节假日)</el-radio>
</div>
<div class="main-item" style="line-height: 32px;">
<div class="label">推送时段</div>
<el-time-picker
is-range
class="timePicker"
v-model="queryParams.time"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
</div>
</div>
<div class="m-title">监控接收方式</div>
<div class="m-main">
<div class="main-item">
<div class="label">接收方式</div>
<el-radio v-model="queryParams.radio" label="1">全部</el-radio>
<el-radio v-model="queryParams.radio" label="2">手机短信</el-radio>
<el-radio v-model="queryParams.radio" label="3">PC</el-radio>
</div>
<div class="main-item" style="line-height: 32px;">
<div class="label">手机号码</div>
<el-input class="phone" v-model="queryParams.phone" placeholder="请输入手机号"></el-input>
</div>
</div>
<div class="search">
<span class="btn1">保存</span>
<span class="btn2">重置</span>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'MonitorSettings',
data() {
return {
fxlx:[
{
value:'1',
label:'工商风险'
},
{
value:'2',
label:'司法风险'
},
],
jkwd:[
{
value:'1',
label:'法院公告'
},
{
value:'2',
label:'裁判文书'
},
{
value:'3',
label:'开庭公告'
},
{
value:'3',
label:'股权冻结'
},
],
checkFx: true,
checkJkwd: true,
queryParams:{
fxType:[],
jkwdType:[],
time:[new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)],
radio:'1',
phone:''
}
}
},
created() {
},
methods: {
checkFxBtn(val) {
this.queryParams.fxType = [];
this.checkFx = true;
},
checkFx1Btn(val){
if (val.length > 0) {
this.checkFx = false;
} else if (val.length == 0) {
this.checkFx = true;
}
},
checkJkwdBtn(val) {
this.queryParams.jkwdType = [];
this.checkJkwd = true;
},
checkJkwd1Btn(val){
console.log(val)
if (val.length > 0) {
this.checkJkwd = false;
} else if (val.length == 0) {
this.checkJkwd = true;
}
},
}
}
</script>
<style lang="scss" scoped>
.MonitorSettings{
.content{
background: #ffffff;
padding: 16px;
}
.m-title{
border-left: 2px solid rgba(35,35,35,0.8);;
padding-left: 8px;
font-size: 16px;
height: 16px;
line-height: 16px;
font-weight: 700;
color: #232323;
margin-bottom: 16px;
}
.m-main{
border-bottom: 1px solid #EEEEEE;
margin-bottom: 16px;
}
.main-item {
margin-bottom: 16px;
display: -webkit-box;
align-items: flex-start;
.label {
width: 88px;
font-size: 14px;
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
}
.main-right {
width: calc(100% - 112px);
.checkbox{
display: flex;
align-items: flex-start;
.checkbox-content-qx{
margin-right: 24px;
}
}
}
::v-deep .timePicker{
width: 228px;
height: 32px;
.el-range__icon{
line-height: 27px;
}
.el-range__close-icon{
line-height: 27px;
}
}
::v-deep .phone{
width: 228px;
height: 32px;
border-radius: 2px 2px 2px 2px;
}
}
.search{
margin: 24px 0 0 88px;
span{
width: 60px;
height: 32px;
line-height: 32px;
border-radius: 4px 4px 4px 4px;
cursor: pointer;
display: inline-block;
text-align: center;
font-size: 14px;
}
.btn1{
background: #0081FF;
border: 1px solid #0081FF;
color: #FFFFFF;
margin-right: 12px;
}
.btn2{
border: 1px solid #DCDFE6;
background: #ffffff;
color: rgba(35,35,35,0.8);
}
}
}
</style>
<template>
<!--监控动态-->
<div class="app-container MonitoringDynamics">
<div class="search">
<div class="search-item" style="line-height: 32px;margin-top: 0;padding-bottom: 8px;">
<div class="label">监控维度</div>
<el-input class="name" placeholder="请输入监控对象名称">
<el-button slot="append">搜索</el-button>
</el-input>
</div>
<div class="search-item">
<div class="label">更新时间</div>
<div class="checkbox">
<el-radio-group v-model="radio">
<el-radio v-for="item in radioList" :label="item.type">{{item.label}}</el-radio>
</el-radio-group>
<el-date-picker
v-if="radio==6"
v-model="date"
type="daterange"
value-format="yyyy-MM-dd"
unlink-panels
size="small"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="search-item" style="line-height: 32px;">
<div class="label">监控类型</div>
<div class="checkbox">
<el-checkbox @change="checkJklxBtn('司法风险')"></el-checkbox>
<el-select v-model="queryParams.type" @change="iptAdaptive(inputID1,true,'changeSelect1')"
:class="[`select-adaptive-${inputID1}`,queryParams.type.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable
placeholder="司法风险">
<el-option v-for="(item,index) in sffxList" :key="index" :label="item" :value="item"></el-option>
</el-select>
<el-checkbox @change="checkJklxBtn('工商变更')"></el-checkbox>
<el-select v-model="queryParams.gsbgType" @change="iptAdaptive(inputID2,true,'changeSelect1')"
:class="[`select-adaptive-${inputID2}`,queryParams.gsbgType.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable
placeholder="工商变更">
<el-option v-for="(item,index) in gsbgList" :key="index" :label="item" :value="item"></el-option>
</el-select>
<!--<el-checkbox-group v-model="fxlxType" class="keyword_checkbox" @change="checkJklxBtn">-->
<!--<el-checkbox v-for="item in jkType" :label="item.value" :key="item.label"></el-checkbox>-->
<!--<template v-if="item.label=='司法风险'">-->
<!--<el-select v-model="queryParams.type" @change="iptAdaptive(inputID1,true,'changeSelect1')"-->
<!--:class="[`select-adaptive-${inputID1}`,queryParams.type.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable-->
<!--:placeholder="item.label">-->
<!--<el-option v-for="(item,index) in sffxList" :key="index" :label="item" :value="item"></el-option>-->
<!--</el-select>-->
<!--</template>-->
<!--<template v-if="item.label=='工商变更'">-->
<!--<el-select v-model="queryParams.gsbgType" @change="iptAdaptive(inputID2,true,'changeSelect1')"-->
<!--:class="[`select-adaptive-${inputID2}`,queryParams.gsbgType.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable-->
<!--:placeholder="item.label">-->
<!--<el-option v-for="(item,index) in gsbgList" :key="index" :label="item" :value="item"></el-option>-->
<!--</el-select>-->
<!--</template>-->
<!--</el-checkbox-group>-->
</div>
</div>
<div class="search-item">
<div class="label">风险级别</div>
<div class="main-right">
<div class="checkbox">
<div class="checkbox-content-qx">
<el-checkbox v-model="checkFx" @change="checkFxjbBtn">全部</el-checkbox>
</div>
<el-radio-group v-model="fxjbType" class="keyword_checkbox" @change="checkFxjb1Btn">
<el-radio v-for="item in fxjb" :label="item.value" :key="item.label">{{item.label}}</el-radio>
</el-radio-group>
</div>
</div>
</div>
</div>
<div class="content">
<div class="total">共 162 条</div>
<div class="table-item">
<el-table
class="fixed-table"
:data="tableData"
element-loading-text="Loading"
border
highlight-current-row
>
<el-table-column label="序号" width="60" align="left" fixed>
<!--<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>-->
<template slot-scope="scope">1</template>
</el-table-column>
<el-table-column label="监控对象" prop="name" align="left" width="250">
<template slot-scope="scope">
中国中铁股份有限公司
</template>
</el-table-column>
<el-table-column label="风险级别" prop="fxjb" align="left" width="120">
<template slot-scope="scope">
正向
</template>
</el-table-column>
<el-table-column label="监控类型" prop="jklx" align="left" width="150">
<template slot-scope="scope">
新增中标业绩
</template>
</el-table-column>
<el-table-column label="动态内容" prop="dtlr" align="left">
<template slot-scope="scope">
新增中标业绩
</template>
</el-table-column>
<el-table-column label="更新时间" prop="time" align="left" width="150">
<template slot-scope="scope">
2022-09-02
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
width="150"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span style="cursor: pointer;" @click="handleDetail">查看详情</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" custom-class='dialog-claim' :title="title" width="720px" >
<div class="dialog-content">
<template v-if="title=='开庭公告详情'">
<info-table class="info-tab" :list="defaultList0" :obj="detail" :labelWidth="labelWidth"></info-table>
</template>
<template v-if="title=='失信被执行人详情'">
<info-table class="info-tab" :list="defaultList1" :obj="detail" :labelWidth="labelWidth"></info-table>
</template>
<template v-if="title=='法院公告详情'">
<info-table class="info-tab" :list="defaultList2" :obj="detail" :labelWidth="labelWidth"></info-table>
</template>
<template v-if="title=='经营异常详情'">
<info-table class="info-tab" :list="defaultList3" :obj="detail" :labelWidth="labelWidth"></info-table>
</template>
<template v-if="title=='股权冻结详情'">
<info-table class="info-tab" :list="defaultList4" :obj="detail" :labelWidth="labelWidth"></info-table>
</template>
<template v-if="title=='裁判文书详情'">
<info-table class="info-tab" :list="defaultList5" :obj="detail" :labelWidth="labelWidth"></info-table>
</template>
</div>
</el-dialog>
</div>
</template>
<script>
import { v4 } from "uuid";
import InfoTable from '../detail/party-a/component/infoTable';
export default {
name: 'MonitoringDynamics',
components: {
InfoTable
},
data() {
return {
radio:1,
date:'',
radioList:[
{
type:1,
label:'今天'
},
{
type:2,
label:'近三天'
},
{
type:3,
label:'近一周'
},
{
type:4,
label:'近半月'
},
{
type:5,
label:'近一个月'
},
{
type:6,
label:'自定义日期'
},
],
fxjb:[
{
value:'1',
label:'提示'
},
{
value:'2',
label:'正向'
},
{
value:'3',
label:'低风险'
},
{
value:'4',
label:'中风险'
},
{
value:'5',
label:'高风险'
},
],
checkFx: true,
fxlxType:[],
jkType:[
{
value:'1',
label:'司法风险'
},
{
value:'2',
label:'工商变更'
},
],
sffxList:['开庭公告','裁判文书','法院公告','失信被执行人','被执行人','限制高消费','股权冻结'],
gsbgList:['法定代表人变更','企业类型变更','注册资本变更','股东变更','对外投资变更','企业名称变更','注册地址变更','经营状态变更','分支机构'],
queryParams:{
type:[],
gsbgType:[],
},
fxjbType:'',
inputID1: this.getUid(),
inputID2: this.getUid(),
tableData:[
{
name:'中国中铁股份有限公司',
jklx:'正向',
kjlx:'新增中标业绩',
dtlr:'新增中标,中标金额234.45万元:怀化国际陆港商贸服务综合物流枢纽及配套工程建设项目公共配套服务设施(市政绿化提档升级)项目一期EPC',
time:'2022-09-02',
}
],
dialogVisible:false,
labelWidth: 140,
//开庭公告详情
defaultList0:[
{ name: '案由', prop: 'a' },
{ name: '案号', prop: 'b' },
{ name: '开庭时间', prop: 'c' },
{ name: '承办部门', prop: 'd' },
{ name: '审判长/主判人', prop: 'e'},
{ name: '当事人', prop: 'f'},
{ name: '法院', prop: 'g'},
{ name: '法庭', prop: 'h'},
{ name: '公告内容', prop: 'j', style: true },
],
//失信被执行人详情
defaultList1:[
{ name: '失信被执行人行为具体情形', prop: 'a', style: true },
{ name: '履行情况', prop: 'b' },
{ name: '立案文号', prop: 'c' },
{ name: '立案日期', prop: 'd' },
{ name: '执行依据文号', prop: 'e'},
{ name: '执行法院', prop: 'f'},
],
//法院公告详情
defaultList2:[
{ name: '原告', prop: 'a',style: true },
{ name: '被告', prop: 'b' },
{ name: '公共类型', prop: 'c' },
{ name: '公告日期', prop: 'd' },
{ name: '公告法院', prop: 'e',style: true},
{ name: '案由', prop: 'f',style: true},
],
//经营异常详情
defaultList3:[
{ name: '案号', prop: 'a'},
{ name: '经营异常类型', prop: 'b' },
{ name: '列入经营异常名录原因', prop: 'c',style: true },
{ name: '拖欠天数', prop: 'd' },
{ name: '涉及金额', prop: 'e'},
{ name: '列入日期', prop: 'e'},
{ name: '列入机关', prop: 'e'},
{ name: '数据来源', prop: 'f',style: true},
],
//股权冻结详情
defaultList4:[
{ name: '标题名称', prop: 'a'},
{ name: '执行事项', prop: 'b' },
{ name: '执行裁定文书号', prop: 'c'},
{ name: '执行通知文号', prop: 'd' },
{ name: '被执行人', prop: 'e'},
{ name: '被执行人持有股权、其他投资权益数额', prop: 'e'},
{ name: '冻结期限自', prop: 'e'},
{ name: '冻结期限至', prop: 'f'},
{ name: '冻结期限', prop: 'f'},
{ name: '公示日期', prop: 'f'},
],
//裁判文书详情
defaultList5:[
{ name: '案由', prop: 'a'},
{ name: '执行案号', prop: 'b' },
{ name: '身份', prop: 'c'},
{ name: '当事人', prop: 'd' },
{ name: '案件金额', prop: 'e'},
{ name: '判决日期', prop: 'e'},
{ name: '判决结果', prop: 'e',style: true},
],
title:'开庭公告详情',
detail:{
a:'民事借贷纠纷',
b:'(2023)豫44执513号',
c:'2021-11-20',
d:'-',
e:'-',
f:'原告:Z某某;被告L某某',
g:'宁乡县人民法院',
h:'第七审判庭',
j:'L某某宁乡县中小民间借贷服务有限公司: 本院受理原告C某某诉你民间借贷纠纷一案,现依法向你公告送达起诉状副本、应诉通知书、举证通知书、' +
'合议庭组成人员通知书及开庭传票等法律文书。自发出公告之日起,经过60日即视为送达。提出答辩状和举证的期限分别为公告期满后15日和30日内。' +
'并定于举证期满后第3日上午9时00分(遇法定假日顺延)在本院第七审判庭公开开庭审理,逾期将依法缺席裁判。 特此公告 发布日期:20160719',
}
}
},
created() {
this.getPlaceholder()
},
methods: {
checkJklxBtn(val) {
console.log(val)
if(val === '司法风险'){
this.queryParams.type=this.queryParams.type.length != this.sffxList.length ? [] : this.sffxList;
this.iptAdaptive(this.inputID1,true,'changeSelect1')
}
if(val==='工商变更'){
this.queryParams.gsbgType=this.queryParams.gsbgType.length != this.gsbgList.length ? [] : this.gsbgList;
this.iptAdaptive(this.inputID2,true,'changeSelect1')
}else {
this.queryParams.gsbgType=[]
}
},
checkFxjbBtn(val) {
this.fxjbType = [];
this.checkFx = true;
},
checkFxjb1Btn(val){
if (val.length > 0) {
this.checkFx = false;
} else if (val.length == 0) {
this.checkFx = true;
}
},
handleDetail(){
this.dialogVisible=true;
},
async getPlaceholder() {
try {
await this.$nextTick();
const doms = document.querySelectorAll("[class*='select-adaptive-']");
if (doms?.length) {
doms.forEach(dom => {
const realStyles = window.getComputedStyle(dom);
const ipt = dom.querySelector("input");
const text = ipt.getAttribute("placeholder");
const textContainer = document.createElement("span");
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
const hasPadding = (parseInt(realStyles.paddingLeft) || parseInt(realStyles.paddingRight)) ? true : false;
hasPadding ? textContainer.style.setProperty("padding", realStyles.paddingRight) : null;
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = text;
document.body.append(textContainer);
// 加上按钮宽度 以及按钮左外边距
let containerWidth = textContainer.offsetWidth + 30;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
});
}
} catch (error) {
}
},
iptAdaptive(uid, multiple = false, name) {
multiple ? this.multipleAdaptiveHandle(uid, name) : this.iptAdaptiveHandle(uid, name);
},
getUid() {
return v4();
},
// 多选处理
async multipleAdaptiveHandle(uid, name) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
const iptChild = dom.querySelector(".el-input__inner");
if (dom) {
const textContainer = document.createElement("span");
const textName = `text-${uid}`;
textContainer.classList.add(textName);
const selectChildren = dom.querySelectorAll(".el-tag");
if (selectChildren.length) {
let width = 0;
selectChildren.forEach(item => {
const text = item.textContent;
const itemInfo = window.getComputedStyle(item);
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
textContainer.style.setProperty("padding", itemInfo.padding);
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = text;
document.body.append(textContainer);
width += textContainer.offsetWidth + parseInt(itemInfo.marginLeft) + parseInt(itemInfo.marginRight);
textContainer.remove();
});
dom.style.setProperty("width", `${width + 50}px`);
// this.handleSearch(name);
return;
}
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
textContainer.style.setProperty("padding", "0px 8px");
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.getAttribute("placeholder");
document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 12 + 8;
// let containerWidth = 130;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
// this.handleSearch(name);
}
} catch (error) {
console.log(error);
}
},
// 单选处理
async iptAdaptiveHandle(uid, name) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
const realStyles = window.getComputedStyle(dom);
if (dom) {
const iptChild = dom.querySelector(".el-input__inner");
const textContainer = document.createElement("span");
const textName = `text-${uid}`;
textContainer.classList.add(textName);
textContainer.style.setProperty("visibility", "hidden");
textContainer.style.setProperty("display", "inline-block");
textContainer.style.setProperty("font-size", "14px");
const hasPadding = (parseInt(realStyles.paddingLeft) || parseInt(realStyles.paddingRight)) ? true : false;
hasPadding ? textContainer.style.setProperty("padding", "0px 8px") : null;
textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.value ? iptChild.value : iptChild.getAttribute("placeholder");
document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 50;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
}
// this.handleSearch(name);
} catch (error) {
}
},
}
}
</script>
<style lang="scss" scoped>
.MonitoringDynamics{
.search{
background: #FFFFFF;
padding: 25px 16px;
border-radius: 4px;
.search-item{
display: -webkit-box;
align-items: flex-start;
line-height: 20px;
margin-top: 8px;
}
.label{
margin-right: 12px;
font-size: 14px;
color: rgba(35,35,35,0.8);
}
::v-deep .name{
width: 405px;
height: 32px;
margin-left: 12px;
border-radius: 2px;
border: 1px solid #DCDFE6;
.el-input__inner{
border: 0;
height: 32px;
}
.el-input-group__append{
border: 0;
background: #F5F5F5;
width: 60px;
color: #0081FF;
}
}
.checkbox{
display: flex;
align-items: flex-start;
padding-left: 12px;
position: relative;
.checkbox-content-qx{
margin-right: 24px;
}
::v-deep .el-checkbox{
margin-right: 10px;
}
::v-deep .el-date-editor{
position: absolute;
left: 602px;
top: -7px
}
::v-deep .el-select{
.el-input{
.el-input__inner{
height: 32px;
line-height: 32px;
border-radius: 4px;
border: 0;
padding-left: 0px;
padding-right: 8px;
&::placeholder{
color: rgba(35,35,35,0.8) !important;
}
}
.el-input__suffix{
top:2px;
}
}
}
}
}
.content{
background: #FFFFFF;
border-radius: 4px;
margin-top: 16px;
padding: 16px;
.total{
color: rgba(35,35,35,0.8);
font-size: 12px;
padding-bottom: 16px;
display: flex;
align-items: center;
&:before {
content: "";
display: inline-block;
width: 2px;
height: 2px;
background: rgba(35,35,35,.4);
margin-right: 4px;
}
}
}
::v-deep .dialog-claim{
.el-dialog__header{
display: block;
padding:16px 20px;
border-bottom: 1px solid #EEEEEE;
font-size: 16px;
font-weight: 700;
color: #232323;
}
.el-dialog__body {
padding: 24px 20px;
}
}
}
</style>
<template>
<!--监控报告-->
<div class="app-container MonitoringReport">
<div class="header">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="监控日报" name="first"></el-tab-pane>
<el-tab-pane label="监控周报" name="second"></el-tab-pane>
<el-tab-pane label="监控月报" name="third"></el-tab-pane>
</el-tabs>
</div>
<div class="report-content">
<div class="list">
<div class="list-title">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">今日</span>
</div>
<div class="flex-box query-ability">
<span style="color:#0081FF;padding: 0 4px;">13</span>家企业发生<span style="color:#F7965B;padding: 0 4px;">651</span>条动态信息
</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color1">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color1">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color1">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color1">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color2">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color3">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color4">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color5">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
</div>
<div class="list">
<div class="list-title">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">昨日</span>
</div>
<div class="flex-box query-ability">
<span style="color:#0081FF;padding: 0 4px;">13</span>家企业发生<span style="color:#F7965B;padding: 0 4px;">651</span>条动态信息
</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color1">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color1">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color1">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color1">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color2">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color3">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color4">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color5">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'MonitoringReport',
data() {
return {
activeName:'first',
dataList:[
{
time:'今日',
list:[]
}
]
}
},
created() {
},
methods: {
handleClick() {
}
}
}
</script>
<style lang="scss" scoped>
.MonitoringReport{
/*background: #ffffff;*/
.header{
justify-content: space-between;
height: 48px;
background: #FFFFFF;
border-radius: 4px;
color: #232323;
/*position: sticky;*/
/*top: 54px;*/
/*z-index: 999;*/
::v-deep .el-tabs{
height: 48px;
line-height: 48px;
.el-tabs__nav-wrap::after {
position: static !important;
}
.el-tabs__header{
margin: 0;
.el-tabs__item{
padding: 0 16px;
font-size: 16px;
}
.is-active{
font-weight: bold;
}
}
.el-tabs__content{
width: 100%;
}
}
.location{
font-size: 14px;
color: #0081FF;
i{
margin-right: 6px;
font-size: 16px;
}
}
}
.report-content{
.list{
background: #fff;
margin-top: 16px;
.list-title{
height: 56px;
line-height: 56px;
border-bottom: 1px solid #EEEEEE;
padding: 0 16px;
.query-params{
font-size: 16px;
font-weight: 700;
color: #232323;
}
.query-ability{
font-size: 14px;
font-weight: 400;
color: #3D3D3D;
span{
margin: 0;
}
}
}
.item{
display: flex;
margin: 0 16px;
padding: 16px 0;
position: relative;
border-bottom: 1px solid #EEEEEE;
.item-left{
margin-right: 12px;
img{
width: 62px;
height: 62px;
}
}
.item-right{
p{
margin: 0;
padding: 0;
}
.right-title{
font-size: 16px;
font-weight: 700;
color: #333333;
margin-bottom: 10px;
margin-top: 2px;
}
.right-label{
font-size: 14px;
color: #666666;
}
.tips{
position: absolute;
right: 0;
top:46px;
color: #666666;
font-size: 14px;
span{
color: #333333;
padding: 0 4px;
}
}
.right-color{
margin-right: 24px;
}
.color1{
color: #0081FF;
}
.color2{
color: #0CBC6D;
}
.color3{
color: #F7965B;
}
.color4{
color: #FF3C3C;
}
.color5{
color: #FF3C3C;
}
}
}
.item:last-child{
border-bottom:0;
}
}
}
}
</style>
<template>
<div class="app-container enterprise_contatiner">
<div class="header">
<el-tabs v-model="activeName" >
<el-tab-pane label="查资质" name="first"></el-tab-pane>
<el-tab-pane label="现行资质标准" name="second"></el-tab-pane>
<el-tab-pane label="历史批量查询结果" name="third"></el-tab-pane>
</el-tabs>
</div>
<SearchAptitude v-if="activeName === 'first'"></SearchAptitude>
<AptitudeStandard v-if="activeName === 'second'"></AptitudeStandard>
<SearchResult v-if="activeName === 'third'"></SearchResult>
</div>
</template>
<script>
import SearchAptitude from './components/SearchAptitude'
import AptitudeStandard from './components/AptitudeStandard'
import SearchResult from './components/SearchResult'
export default {
name: 'Assistant',
components: {
SearchAptitude,AptitudeStandard,SearchResult
},
data() {
return {
activeName: 'first'
}
},
}
</script>
<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: 54px;
z-index: 999;
::v-deep .el-tabs{
height: 48px;
line-height: 48px;
.el-tabs__nav-wrap::after {
position: static !important;
}
.el-tabs__header{
margin: 0;
.el-tabs__item{
padding: 0 16px;
font-size: 16px;
}
.is-active{
font-weight: bold;
}
}
.el-tabs__content{
width: 100%;
}
}
.location{
font-size: 14px;
color: #0081FF;
i{
margin-right: 6px;
font-size: 16px;
}
}
}
</style>
\ No newline at end of file
<template>
<div>
<div class="apt_stan_header">
<span v-for="(item,index) in list" class="apt_stan_header_span" :class="activeIndex==index?'active_span':''" :key="index" @click="activeIndex=index">{{item}}</span>
</div>
<div class="apt_stan_content">
<div class="apt_stan_content_header">
<el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div style="padding:16px;">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column label="资质名称" fixed >
<template slot-scope="scope">
{{scope.row.province}}
</template>
</el-table-column>
<el-table-column label="等级" width="274">
<template slot-scope="scope">
{{scope.row.biddingCount||"--"}}
</template>
</el-table-column>
<el-table-column label="经营范围" >
<template slot-scope="scope">
{{scope.row.landInfoCount||"--"}}
</template>
</el-table-column>
</el-table>
<div class="apt_stan_content_text_box">·建筑工程是指各类结构形式的民用建筑工程、工业建筑工程、构筑物工程以及相配套的道路、通信、管网管线等设施工程。工程内容包括地基与基础、主体结构、建筑屋面、装修装饰、建筑幕墙、附建人防工程以及给水排水及供暖、通风与空调、电气、消防、智能化、防雷等配套工程;</div>
</div>
</div>
</div>
</template>
<script>
export default {
data(){
return{
tableData:[],
activeIndex:0,
list:['建筑业企业资质','工程监理','工程设计','工程勘察','工程造价咨询'],
options: [
{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}
],
value: ''
}
},
}
</script>
<style lang="scss" scoped>
.apt_stan_header{
border-radius: 0px 0px 4px 4px;
display: flex;
padding: 16px;
background: #FFFFFF;
.apt_stan_header_span{
cursor: pointer;
font-size: 14px;
color: #3D3D3D;
height: 32px;
border-radius: 4px;
padding: 5px 12px;
margin-right: 12px;
display: inline-block;
background: #F3F4F5;
}
.active_span{
background: #F6F9FC;
color: #0081FF;
}
}
.apt_stan_content{
margin-top: 16px;
background: #FFFFFF;
border-radius: 4px 4px 0px 0px;
.apt_stan_content_header{
padding: 16px;
border-width: 0px 0px 1px 0px;
border-style: solid;
border-color: #EEEEEE;
}
::v-deep .el-input__inner{
border: none;
}
.apt_stan_content_text_box{
border-radius: 0px 0px 4px 4px;
padding: 16px;
background: #FFFFFF;
border: 1px solid #E6EAF1;
color: #3D3D3D;
font-size: 12px;
margin-top: 16px;
}
}
</style>
\ No newline at end of file
<template>
<el-dialog title="批量查资质" custom-class="batch_import_dialog" :visible.sync="visible">
<div class="upload" v-if="addfile==false">
<div class="up_title">导入Excel文件,高效查询或导出企业信息;查询成功后可使用筛选项二次筛选</div>
<div>
<div class="step_box" v-for="(item,index) in list" :key="index">
<span class="step">{{ index+1 }}</span><span class="step_text">{{ item }}</span><span class="step_line" v-if="index!=3"></span>
</div>
</div>
<div class="up_box">
<el-upload class="batch_import_upload"
:action="action"
:multiple="false"
accept=".xls,.xlsx"
drag
ref="upload"
:auto-upload="false"
:file-list="fileList"
:on-change="handleFileListChange"
:headers="headers"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/plus.png">
<div class="up_text">点击选择文件或将文件拖拽至此导入企业名录</div>
<div class="up_tip">· 导入的文件内容必须依照下载模板的要求填写);</div>
<div class="up_tip">· 上传文件最大为2M,仅支持Excel表格文件(xls,xlsx);</div>
<div class="up_tip">· 单次查询企业数量限时免费 5000 家。</div>
</el-upload>
</div>
<div class="bd"></div>
<div class="btns1 clearfix">
<div class="btn btn_default dowload" @click="downloadClick"><img src="@/assets/images/download.png" alt="">下载模板</div>
<div class="btn btn_primary btn_disabled fr" v-if="isUpload==false">查询</div>
<div class="btn btn_primary fr" @click="importConfirmClick" v-else>查询</div>
<div class="btn btn_default fr" @click="importCancel">取消</div>
</div>
</div>
<div class="success" v-if="addfile==true">
<div v-if="addsuccess==false">
<img class="img" src="@/assets/images/project/clock.png">
<div class="p1">查询客户中...</div>
<div class="p2">请耐心等待,过程大概30秒</div>
</div>
<div v-if="addsuccess == true">
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">{{messages}}</div>
<div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss"
import {importData} from '@/api/custom/custom'
export default {
name: 'batchImport',
props:{
importtype:''
},
data(){
return{
list:['下载模版','按要求在模板内填写企业全称名录','上传文件','查询结果'],
visible:false,
isUpload:false,//有上传的文件
addfile:false,//已上传文件
addsuccess:false,//已成功加入数据
//批量导入
action:"",
fileList: [],
headers: {
Authorization: "Bearer " + getToken(),
},
downloadhref:'',//样例地址
successCount:0,//成功条数
messages:'',
}
},
created(){
if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx'
this.action = process.env.VUE_APP_BASE_API + '/business/info/upload'
}
if(this.importtype == 'custom'){//客户管理
this.downloadhref = '/file/Template.xlsx'
this.action = process.env.VUE_APP_BASE_API + "/customer/importData"
}
},
methods:{
getmsg(){
this.importCancel()
this.$emit('getdatas')
},
handleFileListChange(file, fileList) {
var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
const extension = testmsg === "xlsx";
const extension1 = testmsg === "xls";
if (!extension && !extension1 ) {
this.$message({
message: "上传文件只能是.xls,.xlsx格式!",
type: "warning",
});
return false;
}
const isLt2M = file.size / 1024 / 1024 < 2
if (!isLt2M) {
this.$refs.upload.clearFiles()
this.$message({
message: '上传文件大小不能超过 2MB!',
type: 'warning'
})
return false
}
if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]];
this.isUpload = true
}
},
onSuccess(res, file, fileList) {
if (res.code == 200) {
this.successCount = res.successCount
if(this.importtype == 'project'){//项目管理
this.messages = res.msg
}
if(this.importtype == 'custom'){//客户管理
let num = res.data?res.data.length:0
let str = '成功导入客户条数'+res.successCount+',客户去重条数'+ num
this.messages = str
}
this.addsuccess = true
}else {
this.importCancel()
this.$message.error({ message: res.msg, showClose: true })
}
},
downloadClick() {
let a = document.createElement("a");
a.setAttribute("href", this.downloadhref);
a.setAttribute("download", "批量导入模版.xlsx");
document.body.appendChild(a);
a.click();
a.remove();
},
// 批量导入
importConfirmClick() {
if (this.fileList.length > 0) {
this.$refs["upload"].submit();
this.addfile = true
} else {
this.$message("请先选择文件");
}
},
importCancel(){
this.addfile = false
this.isUpload = false
this.addsuccess = false
this.fileList = []
this.$emit('cancels')
},
}
}
</script>
<style lang="scss" scoped>
::v-deep .batch_import_dialog{
width: 656px;
border-radius: 4px;
.el-dialog__header{
font-size: 16px;
color:#232323;
font-weight:700;
}
.el-dialog__body{
border-top: 1px solid #E5E6EB;
}
.up_title{
font-size: 12px;
color: #666666;
position: absolute;
top: 23px;
left: 116px;
}
.upload{
.step_box{
display: inline-block;
font-size: 12px;
color: #3D3D3D;
.step{
display: inline-block;
width: 12px;
height: 12px;
background: #0081FF;
color: #ffffff;
margin-right: 4px;
text-align: center;
border-radius: 50%;
}
.step_line{
width: 27px;
height: 1px;
display: inline-block;
background:#D8D8D8;
position: relative;
top: -4px;
margin:0 12px;
}
}
.up_box{
margin-top: 20px;
.batch_import_upload{
.el-upload-dragger{
width: 616px;
height: 224px;
background: #F2F3F5;
border-radius: 2px 2px 2px 2px;
border: 1px solid #E5E6EB;
.up_img{
width: 14px;
height: 14px;
margin-top: 50px;
margin-bottom: 24px;
}
.up_text{
font-size: 14px;
color: #232323;
margin-bottom: 4px;
}
.up_tip{
color: #999999;
font-size: 12px;
height: 20px;
line-height: 20px;
}
}
}
.el-upload-list__item{
height: 36px;
line-height: 36px;
background: #F7F8FA;
border-radius: 2px 2px 2px 2px;
a{
color: #1D2129;
}
.el-icon-close{
top: 10px;
}
}
}
.bd{
width: 656px;
margin-left: -20px;
height: 1px;
background:#E5E6EB ;
margin-top: 17px;
}
.btns1{
.btn{
border-radius: 2px;
padding: 0 16px;
width: auto;
height: 32px;
line-height: 32px;
margin-top: 16px;
}
.btn_default{
border-color: #DCDFE6;
color: #232323;
margin-left: 0;
}
.fr{
float:right;
}
.dowload{
img{
width: 16px;
height: 16px;
}
}
.btn_disabled{
background: #94BFFF;
color: #ffffff;
}
}
}
}
</style>
<template>
<div>
<div class="content">
<div class="content_item content_item_padding0">
<div class="label">企业名称</div>
<div class="content_right item_ckquery_list">
<el-input class="ename_input" clearable placeholder="多个企业用空格隔开" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')">
<div slot="append" class="btn-search" @click="search()">搜索</div>
</el-input>
</div>
</div>
<div class="content_item">
<div class="label label1" >资质条件</div>
<div class="content_right content_item_ckquery">
<div class="item_ckquery_list" v-for="(item,i) in aptitudeDtoList" :key="i" :class="i>0?'item_ckquery_distance':''">
<el-cascader :options="optionss" separator='丨' clearable :ref="i" class="content_item_list" v-model="item.codeStr" @change='optionsbtn(i)'
filterable :props="{
checkStrictly:true,
label:'name',
value:'id',
children:'list',
expandTrigger:'hover'
}" popper-class='content_item_zizi'>
</el-cascader>
<div class="ckquery_list_right" v-show="i==aptitudeDtoList.length-1" style="position: relative;">
<span class="item_ckquery_btn" @click="addAptitudeDtoList">
<i class="el-icon-plus" style="font-size:14px"></i>
添加资质
</span>
</div>
</div>
</div>
</div>
<div class="content_item" style="margin-left:68px;">
<span v-for=" (kitme,k) in queryTypelist" :key="k">
<el-radio v-model="queryType" :label="kitme.key">
{{kitme.value}}
</el-radio>
</span>
</div>
<div class="content_item content_item1">
<div class="search-new">
<span @click="search()">查询</span>
<span style="color:#5B5B5B" @click="reset()">重置</span>
<span @click="$refs.batchImport.visible = true">批量查询</span>
</div>
</div>
</div>
<div class="bottomlist">
<div class="bottomlist-title">
<div class="bottomlist-title-left">
<p class="title-left">
<span style="margin-right:4;color:rgba(35, 35, 35, 0.40);font-size: 18px;position: relative;top:2px;">·</span>共有{{total}}
</p>
</div>
<div class="title-right">
<p>
<img src="@/assets/images/EXCEL.png" alt="">
<span class="excel" @click="clickDialog">导出EXCEL</span>
</p>
</div>
</div>
<div class="bd"></div>
<div class="table-item-jf table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div>
<template v-if="!isSkeleton&&tableData.length>0">
<div v-for="(item,index) in tableData" :key="index" style="padding-bottom: 16px;">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class=" table-item-jf table-item " >
<div class="title_box">
<img src="@/assets/images/enterprise.png" >
<span class="name_box">{{ item.name }}</span>
<span class="float_r">符合条件资质({{ item.total }}<span v-if="item.total>5" class="show_more" @click="showClick(item)">查看所有 ></span></span></span>
</div>
<el-table :data="item.list" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column label="证书编号" width="119">
<template slot-scope="scope">
{{scope.row.supplierCount||"--"}}
</template>
</el-table-column>
<el-table-column label="资质名称" width="273">
<template slot-scope="scope">
{{scope.row.biddingCount||"--"}}
</template>
</el-table-column>
<el-table-column label="承包工程范围" width="415">
<template slot-scope="scope">
{{scope.row.landInfoCount||"--"}}
</template>
</el-table-column>
<el-table-column label="发证日期" width="119">
<template slot-scope="scope">
{{scope.row.bratingSubjectLevel||"--"}}
</template>
</el-table-column>
<el-table-column label="有效期至" width="119">
<template slot-scope="scope">
{{scope.row.bondBalance||"--"}}
</template>
</el-table-column>
<el-table-column label="发证机关" width="204">
<template slot-scope="scope">
{{scope.row.bondBalance1||"--"}}
</template>
</el-table-column>
<el-table-column label="经营范围" width="415">
<template slot-scope="scope">
<span class="line_2"> {{scope.row.bondBalance2||"--"}}</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="pagination clearfix" v-show="total>0">
<el-pagination background :page-size="pageSize" :current-page="pageNum" @current-change="handleCurrentChange" layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</template>
</div>
<el-dialog title="所有符合条件资质" custom-class="show_more_dialog" :visible.sync="showMore">
<div class=" table-item-jf table-item " >
<div class="title_box">
<img src="@/assets/images/enterprise.png" >
<span class="name_box">{{ dialogData.name }}</span>
<span class="float_r">共有 <span style="color: #0081FF;">{{ dialogData.total }}</span> 个资质</span>
</div>
<el-table :data="dialogData.list" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'" class="table-item1 fixed-table" border highlight-current-row>
<el-table-column label="证书编号" width="119">
<template slot-scope="scope">
{{scope.row.supplierCount||"--"}}
</template>
</el-table-column>
<el-table-column label="资质名称" width="273">
<template slot-scope="scope">
{{scope.row.biddingCount||"--"}}
</template>
</el-table-column>
<el-table-column label="承包工程范围" width="415">
<template slot-scope="scope">
{{scope.row.landInfoCount||"--"}}
</template>
</el-table-column>
<el-table-column label="发证日期" width="119">
<template slot-scope="scope">
{{scope.row.bratingSubjectLevel||"--"}}
</template>
</el-table-column>
<el-table-column label="有效期至" width="119">
<template slot-scope="scope">
{{scope.row.bondBalance||"--"}}
</template>
</el-table-column>
<el-table-column label="发证机关" width="204">
<template slot-scope="scope">
{{scope.row.bondBalance1||"--"}}
</template>
</el-table-column>
<el-table-column label="经营范围" width="415">
<template slot-scope="scope">
<span class="line_2"> {{scope.row.bondBalance2||"--"}}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination clearfix" v-show="dialogData.total>5">
<el-pagination background :current-page="pageNum1" :page-size="pageSize" @current-change="handleCurrentChange1" layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</el-dialog>
<BatchImport ref="batchImport"></BatchImport>
<ExportDialog :data="exportData" v-if="exportData.dialogExportVisible" @clickEXCEL="clickEXCEL"></ExportDialog>
</div>
</template>
<script>
import "@/assets/styles/public.scss";
import api from '@/api/enterpriseData/enterpriseData.js';
import skeleton from '@/views/project/projectList/component/skeleton';
import ExportDialog from "@/views/component/export-dialog"
import BatchImport from "./BatchImport"
export default {
components: { skeleton,ExportDialog,BatchImport },
data(){
return{
batchImport:false,
ename: '',
aptitudeDtoList: [
{
nameStr: '',
codeStr: [],
}
],
queryTypelist: [
{
key: 'or',
status: false,
value: '任意均可'
},
{
key: 'and',
status: true,
value: '同时具备'
},
],
queryType: 'and',
optionss: [],
dialogData:{},
tableData: [
{
name:'中交第二航务工程局有限公司',
list:[
{
biddingCount:'工程勘察岩土工程专业(岩土工程勘察)甲级',
landInfoCount:'可承担一级以下公路,单座桥长 1000 米以下、单跨跨度 150 米以下的桥梁,长度 1000 米以下的隧道工程的施工。',
supplierCount:'B233000514',
bratingSubjectLevel:'2021-12-27',
bondBalance:'2021-12-27',
bondBalance1:'浙江省住房和城乡建设厅',
bondBalance2:'经营范围包含许可项目:建设工程设计;建设工程勘察;建设工程监理;建设工程施工;测绘服务;国土空间规划编制;水利工程建设监理(依法...',
}
],
total:10
},
{
name:'中交第二航务工程局有限公司',
list:[
{
biddingCount:'工程勘察岩土工程专业(岩土工程勘察)甲级',
landInfoCount:'可承担一级以下公路,单座桥长 1000 米以下、单跨跨度 150 米以下的桥梁,长度 1000 米以下的隧道工程的施工。',
supplierCount:'B233000514',
bratingSubjectLevel:'2021-12-27',
bondBalance:'2021-12-27',
bondBalance1:'浙江省住房和城乡建设厅',
bondBalance2:'经营范围包含许可项目:建设工程设计;建设工程勘察;建设工程监理;建设工程施工;测绘服务;国土空间规划编制;水利工程建设监理(依法...',
}
],
total:10
},
],
total: 0,
pageNum: 1,
pageNum1: 1,
pageSize: 5,
dataEXCEL:{},
isSkeleton: false,
exportData:{
title:'查城投平台',
dialogExportVisible:false,
forData: [
{label: '公司名称', prop: 'companyName',slot: true,minWidth: '140'},
{label: '区域', prop: 'province', slot: true,minWidth: '160'},
{label: '招标数量', prop: 'biddingCount',slot: true,minWidth: '80'},
{label: '城投拿地', prop: 'landInfoCount', slot: true,minWidth: '80'},
{label: '供应商', prop: 'supplierCount',slot: true,minWidth: '100'},
{label: '债券余额(亿元)', prop: 'bondBalance',minWidth: '130'},
{label: '主体评级', prop: 'bratingSubjectLevel',minWidth: '80'},
{label: '行政级别', prop: 'uipExecutiveLevel',minWidth: '80'},
{label: '股东背景', prop: 'shareholderBg', slot: true,minWidth: '100'},
{label: '股权关系', prop: 'equityRelationship', slot: true,minWidth: '100'},
{label: '平台重要性', prop: 'platformImportance', slot: true,minWidth: '130'},
{label: '城投业务类型', prop: 'uipBusinessType', slot: true,minWidth: '130'},
{label: '实控人', prop: 'actualController', slot: true,minWidth: '140'},
{label: '最新报告期', prop: 'latestReportPeriod', slot: true,minWidth: '120'},
{label: '总资产(亿元)', prop: 'totalAssets', slot: true,minWidth: '120'},
{label: '归母净资产(亿元)', prop: 'belongNetAssets', slot: true,minWidth: '140'},
],
exportTableData:[],
exportEXCEL:{}
},
showMore:false,
}
},
created(){
api.aptitudeCode().then(res => {
if (res) {
this.optionss = res;
} else {
this.optionss = aptitudeCode;
}
}).catch(error => {
this.optionss = aptitudeCode;
});
},
methods:{
projectNamebtn(){},
search(){},
showClick(item){
this.showMore = true;
this.dialogData = item
},
handleCurrentChange(pageNum) {
this.pageNum = pageNum;
this.search(pageNum, this.pageSize);
},
handleCurrentChange1(pageNum) {
this.pageNum1 = pageNum;
this.search(pageNum, this.pageSize);
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.search(this.pageNum, pageSize);
},
reloadPage() {
this.pageFlag = false;
this.$nextTick(() => {
this.pageFlag = true;
});
},
optionsbtn(i) {
if (this.aptitudeDtoList.length > 1 && this.aptitudeDtoList[i].codeStr.length < 1) {
this.aptitudeDtoList.splice(i, 1);
i--;
}
this.$refs[i] && this.$refs[i][0].toggleDropDownVisible(false);
var _this = this;
//延迟500毫秒执行
if (this.$refs[i]) {
setTimeout(function () {
_this.aptitudeDtoList[i].nameStr = _this.$refs[i][0].$refs.input.$options.propsData.value;
}, 100);
}
},
addAptitudeDtoList(){
var n = 0;
for (let i = 0; i < this.aptitudeDtoList.length; i++) {
if (!this.aptitudeDtoList[i].nameStr) {
n++;
}
}
if (n > 0) {
this.$message.warning("请选择资质条件后,增加资质!");
} else {
this.aptitudeDtoList.push({
nameStr: '',
codeStr: [],
});
}
},
reset(){
Object.assign(this.$data, this.$options.data()); //重置data
api.aptitudeCode().then(res => {
if (res) {
this.optionss = res;
} else {
this.optionss = aptitudeCode;
}
}).catch(error => {
this.optionss = aptitudeCode;
});
},
clickDialog(){
this.exportData.dialogExportVisible=true;
},
clickEXCEL(value,title) {
if(this.tableData.length === 0){
this.$message.error('当前信息列表数据为空,请重新筛选数据');
return
}
if(value > 2000){
return
}
this.dataEXCEL.exportExeclName=title;
if(value){
this.dataEXCEL.pageSize=value
}else {
this.dataEXCEL.pageSize=2000;
}
api.uipSerachExport(this.dataEXCEL).then(res => {
if(res.code === 200){
this.exportData.exportEXCEL=true;
}else {
this.$message.error(res.msg);
}
})
},
cancel(){
this.exportData.dialogExportVisible=false;
this.exportData.exportEXCEL={}
},
}
}
</script>
<style lang="scss" scoped>
.content {
padding: 0px 16px;
padding-top: 16px;
border-radius: 4px 4px 4px 4px;
background: #ffffff;
::v-deep .el-input .el-input__inner{
height: 32px;
line-height: 32px;
}
::v-deep .el-radio__label {
margin-left: 0px;
padding-left: 4px;
margin-right: 24px;
}
.content_item {
padding-top: 20px;
display: flex;
align-items: center;
.label {
width: 68px;
font-size: 14px;
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
}
.label1{
align-self: baseline;
display: inline-block;
height: 32px;
line-height: 32px;
}
.content_right {
.ename_input {
width: 405px;
margin-right: 20px;
}
.el-input-group {
display: flex;
align-items: center;
}
::v-deep .el-input-group__append {
padding: 0px;
line-height: 32px;
font-weight: 400;
color: #0081ff;
height: 32px;
width: 80px;
background: #f5f5f5;
border-radius: 0px 0px 0px 0px;
text-align: center;
cursor: pointer;
}
}
.item_ckquery_list {
display: flex;
align-items: center;
.qualifications-tab {
margin-right: 4px;
border: 1px solid #e0e0e0;
padding: 2px 3px;
border-radius: 2px;
height: 32px;
margin-top: 1px;
span {
background: #fff;
display: inline-block;
cursor: pointer;
float: left;
border-radius: 2px;
padding: 3px 8px;
margin-top: 0.5px;
}
.action {
color: #ffffff;
background: #0081ff;
}
}
.content_item_list {
width: 280px;
height: 32px;
line-height: 32px;
}
.ckquery_list_right {
width: 670px;
}
}
.item_ckquery_list .el-input__icon {
position: relative;
top: 1px;
}
.ckquery_list_right {
width: 405px;
top: 1px;
.item_ckquery_btn{
height: 32px;
line-height: 32px;
top: 1px;
border-color: #DCDFE6;
color: rgba(35, 35, 35, 0.8);
&:hover{
color: #ffffff;
}
}
}
.register_count_ipt {
margin-left: 0px;
}
.register_count_ipt .el-input__inner {
width: 174px;
}
::v-deep .el-input-group__prepend {
padding: 0 8px;
}
.content-projecttype {
display: flex;
align-items: center;
justify-content: center;
.projecttype {
font-weight: 400;
color: #232323;
padding: 1px 5px;
margin-right: 4px;
cursor: pointer;
border-radius: 3px 3px 3px 3px;
font-size: 14px;
}
.projecttype:first-child {
padding-left: 0px;
}
.projecttype:hover {
background: #f3f4f5;
padding: 1px 5px;
}
.activetype {
background: #f3f4f5;
padding: 1px 5px !important;
}
}
}
.content_item1{
margin-top: 16px;
padding-top: 16px;
border-top: 1px solid #EEEEEE;
padding-left: 64px;
.search-new{
padding-bottom: 16px;
span{
display: inline-block;
width: 80px;
text-align: center;
line-height: 32px;
cursor: pointer;
border-radius: 4px;
border: 1px solid #D4D4D4;
opacity: 1;
margin-right: 12px;
}
}
}
.content_item_padding0 {
padding: 0;
}
}
.bottomlist {
width: 100%;
background-color: #ffffff;
border-radius: 4px 4px 4px 4px;
.bottomlist-title {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 12px;
padding: 16px;
.title-right {
display: flex;
align-items: center;
p:last-child {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
}
img {
width: 18px;
height: 18px;
}
.excel {
cursor: pointer;
}
}
}
.bd{
border-top: 1px solid #EEEEEE;
margin: 0 16px 16px;
}
.bottomlist-title-left {
display: inline-flex;
align-items: center;
.title-left {
height: 16px;
line-height: 16px;
font-size: 12px;
font-weight: 400;
color: #3d3d3d;
}
}
.bottomlist-content {
padding-bottom: 0px;
}
.table-item-jf {
padding: 0px 16px;
.list-titel-a {
color: #0081ff;
}
::v-deep .el-table--border .el-table__cell:first-child .cell {
padding: 0px 8px;
padding-left: 12px;
font-size: 12px;
font-weight: 400;
}
::v-deep .el-table th.el-table__cell > .cell {
padding: 0px 8px;
padding-left: 12px;
font-size: 12px;
font-weight: 400;
}
::v-deep .el-table th.el-table__cell.is-leaf,
::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #e6eaf1;
}
::v-deep .el-table--border .el-table__cell {
border-right: 1px solid #e6eaf1;
}
::v-deep.el-table__fixed::before {
height: 0;
}
.el-table {
th,
td {
.cell {
font-size: 12px;
}
}
}
.title_box{
font-size: 14px;
color: #232323;
.name_box{
font-size: 16px;
font-weight: 700;
color: #232323;
margin-bottom: 12px;
}
img{
width: 28px;
height: 28px;
margin-right: 12px;
}
.float_r{
float:right;
.show_more{
cursor: pointer;
color:#0081FF;
margin-left: 8px;
}
}
}
}
.table-item1 {
::v-deep .el-table__body-wrapper {
color: #232323;
}
}
.fixed-table {
overflow: initial;
::v-deep .el-table__header-wrapper {
position: sticky;
top: 56px;
z-index: 9;
}
::v-deep .el-table__fixed-header-wrapper {
position: sticky;
z-index: 9;
top: 56px;
}
::v-deep .el-table__fixed {
overflow-x: clip;
overflow-y: clip;
}
}
.table-item-jf1 {
border-top: 1px solid #efefef;
}
.pagination {
padding: 14px;
.el-pagination {
float: right;
}
}
}
.line_2{
overflow:hidden;
text-overflow:ellipsis;
line-clamp:2;
display:-webkit-box;
text-overflow:-o-ellipsis-lastline;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
}
::v-deep .show_more_dialog{
border-radius: 4px;
width: 900px;
.el-dialog__header{
font-size: 16px;
color:#232323;
font-weight:700;
}
.el-dialog__body{
border-top: 1px solid #E5E6EB;
padding: 20px 20px 56px;
}
.title_box{
font-size: 14px;
color: #232323;
margin-bottom: 20px;
height: 28px;
line-height: 28px;
.name_box{
font-size: 16px;
color: #232323;
margin-bottom: 12px;
}
img{
width: 28px;
height: 28px;
margin-right: 12px;
}
.float_r{
float:right;
.show_more{
cursor: pointer;
color:#0081FF;
margin-left: 8px;
}
}
}
.pagination{
float:right;
margin-top: 12px;
margin-right: -10px;
}
}
</style>
\ No newline at end of file
<template>
<div class="search_result_box">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column type="index" label="序号" fixed width="60">
<template slot-scope="scope">
<span>{{(pageNum - 1) *pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="表格名称" >
<template slot-scope="scope">
{{scope.row.biddingCount||"--"}}
</template>
</el-table-column>
<el-table-column label="查询时间" width="189">
<template slot-scope="scope">
{{scope.row.landInfoCount||"--"}}
</template>
</el-table-column>
<el-table-column label="操作" width="154">
<template slot-scope="scope">
{{scope.row.bondBalance||"--"}}
</template>
</el-table-column>
</el-table>
<el-pagination background :current-page="pageNum" @current-change="handleCurrentChange" layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</template>
<script>
export default {
data(){
return{
tableData:[],
total: 0,
pageNum: 1,
}
},
methods:{
handleCurrentChange(pageNum) {
this.pageNum = pageNum;
},
}
}
</script>
<style lang="scss" scoped>
.search_result_box{
background: #ffffff;
padding: 16px;
.el-pagination{
display: flex;
justify-content: end;
padding: 0;
margin-right: -5px;
margin-top: 16px;
}
}
</style>
\ No newline at end of file
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