Commit e967da69 authored by danfuman's avatar danfuman

Merge branch 'master' of http://192.168.60.201/root/dsk-operate-sys

# Conflicts:
#	dsk-operate-ui/src/views/custom/customList/index.vue
parents 41359bda b05e842d
...@@ -2,17 +2,25 @@ package com.dsk.biz.controller; ...@@ -2,17 +2,25 @@ package com.dsk.biz.controller;
import com.dsk.biz.domain.BusinessOpenTender; import com.dsk.biz.domain.BusinessOpenTender;
import com.dsk.biz.domain.bo.BusinessOpenTenderDto; import com.dsk.biz.domain.bo.BusinessOpenTenderDto;
import com.dsk.biz.domain.bo.BusinessSearchDto;
import com.dsk.biz.service.IBusinessOpenTenderService; import com.dsk.biz.service.IBusinessOpenTenderService;
import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit; import com.dsk.common.annotation.RepeatSubmit;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.exception.BusinessException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 项目开标记录 * 项目开标记录
...@@ -31,7 +39,7 @@ public class BusinessOpenTenderController extends BaseController { ...@@ -31,7 +39,7 @@ public class BusinessOpenTenderController extends BaseController {
* 开标记录列表 * 开标记录列表
*/ */
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<BusinessOpenTender> list(BusinessOpenTenderDto dto, PageQuery pageQuery){ public TableDataInfo<BusinessOpenTender> list(BusinessOpenTenderDto dto, PageQuery pageQuery) {
return baseService.selectList(dto, pageQuery); return baseService.selectList(dto, pageQuery);
} }
...@@ -39,8 +47,8 @@ public class BusinessOpenTenderController extends BaseController { ...@@ -39,8 +47,8 @@ public class BusinessOpenTenderController extends BaseController {
* 添加开标记录 * 添加开标记录
*/ */
@PostMapping @PostMapping
@RepeatSubmit() @RepeatSubmit
public R<Void> add(@RequestBody BusinessOpenTender bo){ public R<Void> add(@RequestBody BusinessOpenTender bo) {
return toAjax(baseService.add(bo)); return toAjax(baseService.add(bo));
} }
...@@ -48,8 +56,8 @@ public class BusinessOpenTenderController extends BaseController { ...@@ -48,8 +56,8 @@ public class BusinessOpenTenderController extends BaseController {
* 修改开标记录 * 修改开标记录
*/ */
@PutMapping @PutMapping
@RepeatSubmit() @RepeatSubmit
public R<Void> edit(@RequestBody BusinessOpenTender bo){ public R<Void> edit(@RequestBody BusinessOpenTender bo) {
return toAjax(baseService.edit(bo)); return toAjax(baseService.edit(bo));
} }
...@@ -57,9 +65,41 @@ public class BusinessOpenTenderController extends BaseController { ...@@ -57,9 +65,41 @@ public class BusinessOpenTenderController extends BaseController {
* 删除开标记录 * 删除开标记录
*/ */
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
@RepeatSubmit() @RepeatSubmit
public R<Void> remove(@PathVariable Long[] ids){ public R<Void> remove(@PathVariable Long[] ids) {
return toAjax(baseService.remove(ids)); return toAjax(baseService.remove(ids));
} }
/**
* 批量导入
*/
@Log(title = "开标记录批量导入", businessType = BusinessType.IMPORT)
@PostMapping("/importData/{businessId}")
public R<Map<String, Object>> importData(@RequestPart("file") MultipartFile file, @PathVariable Integer businessId) throws Exception {
List<BusinessOpenTender> list = new ExcelUtils<>(BusinessOpenTender.class).importExcel(file.getInputStream(), 1);
if (list.isEmpty()) throw new BusinessException("请填写导入数据!");
int sucessCount = 0;
List<String> errorList = new ArrayList<>();
for (BusinessOpenTender openTender : list) {
if (ObjectUtils.isEmpty(openTender.getTenderer())) {
errorList.add("投标人不能为空!");
continue;
}
openTender.setBusinessId(businessId);
try {
int add = baseService.add(openTender);
if (add > 0) {
sucessCount++;
}
} catch (Exception e) {
errorList.add(openTender.getTenderer().concat(":").concat(e.getMessage()));
}
}
Map<String, Object> result = new HashMap<>();
result.put("sucessCount", sucessCount);
result.put("errorCount", list.size() - sucessCount);
result.put("errorMsg", errorList);
return R.ok(result);
}
} }
package com.dsk.biz.domain; package com.dsk.biz.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.dsk.common.annotation.Excel;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -14,7 +16,7 @@ import java.util.Date; ...@@ -14,7 +16,7 @@ import java.util.Date;
@Data @Data
public class BusinessOpenTender implements Serializable { public class BusinessOpenTender implements Serializable {
@TableId(value = "id",type = IdType.AUTO) @TableId(value = "id",type = IdType.ASSIGN_ID)
private Long id; private Long id;
/** /**
* 项目id * 项目id
...@@ -27,22 +29,27 @@ public class BusinessOpenTender implements Serializable { ...@@ -27,22 +29,27 @@ public class BusinessOpenTender implements Serializable {
/** /**
* 投标人 * 投标人
*/ */
@Excel(name = "投标人")
private String tenderer; private String tenderer;
/** /**
* 企业性质 * 企业性质
*/ */
@Excel(name = "企业性质")
private String tendererNature; private String tendererNature;
/** /**
* 项目经理 * 项目经理
*/ */
@Excel(name = "项目经理")
private String businessManager; private String businessManager;
/** /**
* 联系方式 * 联系方式
*/ */
@Excel(name = "联系方式")
private String contact; private String contact;
/** /**
* 投标金额 * 投标金额
*/ */
@Excel(name = "投标金额(万元)")
private Double tenderAmount; private Double tenderAmount;
private Date createTime; private Date createTime;
......
package com.dsk.biz.service.impl; package com.dsk.biz.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.biz.domain.BusinessOpenTender; import com.dsk.biz.domain.BusinessOpenTender;
import com.dsk.biz.domain.bo.BusinessOpenTenderDto; import com.dsk.biz.domain.bo.BusinessOpenTenderDto;
import com.dsk.biz.domain.bo.BusinessSearchDto;
import com.dsk.biz.mapper.BusinessOpenTenderMapper; import com.dsk.biz.mapper.BusinessOpenTenderMapper;
import com.dsk.biz.service.IBusinessOpenTenderService; import com.dsk.biz.service.IBusinessOpenTenderService;
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.common.exception.ServiceException;
import jodd.bean.BeanException; import jodd.bean.BeanException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.sql.Wrapper;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
/** /**
* @Author lcl * @Author lcl
...@@ -40,6 +37,10 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService ...@@ -40,6 +37,10 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService
@Override @Override
public int add(BusinessOpenTender bo) { public int add(BusinessOpenTender bo) {
verifyBean(bo); verifyBean(bo);
BusinessOpenTender openTender = baseMapper.selectOne(Wrappers.<BusinessOpenTender>lambdaQuery()
.eq(BusinessOpenTender::getTenderer, bo.getTenderer())
.eq(BusinessOpenTender::getBusinessId,bo.getBusinessId()));
if(!ObjectUtils.isEmpty(openTender)) throw new ServiceException("当前投标人已存在");
return baseMapper.insert(bo); return baseMapper.insert(bo);
} }
...@@ -47,6 +48,10 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService ...@@ -47,6 +48,10 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService
public int edit(BusinessOpenTender bo) { public int edit(BusinessOpenTender bo) {
if(ObjectUtils.isArray(bo.getId())) throw new BeanException("id不能为空!"); if(ObjectUtils.isArray(bo.getId())) throw new BeanException("id不能为空!");
verifyBean(bo); verifyBean(bo);
BusinessOpenTender openTender = baseMapper.selectOne(Wrappers.<BusinessOpenTender>lambdaQuery()
.eq(BusinessOpenTender::getTenderer, bo.getTenderer())
.eq(BusinessOpenTender::getBusinessId,bo.getBusinessId()));
if(!ObjectUtils.isEmpty(openTender) && !openTender.getId().equals(bo.getId())) throw new ServiceException("当前投标人已存在");
return baseMapper.updateById(bo); return baseMapper.updateById(bo);
} }
...@@ -56,9 +61,9 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService ...@@ -56,9 +61,9 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService
} }
private void verifyBean(BusinessOpenTender bo){ private void verifyBean(BusinessOpenTender bo){
if(ObjectUtils.isArray(bo.getBusinessId())) throw new BeanException("项目id不能为空!"); if(ObjectUtils.isEmpty(bo.getBusinessId())) throw new BeanException("项目id不能为空!");
if(ObjectUtils.isArray(bo.getTenderer())) throw new BeanException("开标人不能为空!"); if(ObjectUtils.isEmpty(bo.getTenderer())) throw new BeanException("投标人不能为空!");
if(ObjectUtils.isArray(bo.getTendererNature())) throw new BeanException("企业性质不能为空!"); // if(ObjectUtils.isEmpty(bo.getTendererNature())) throw new BeanException("企业性质不能为空!");
if(ObjectUtils.isArray(bo.getTenderAmount())) throw new BeanException("投标金额不能为空!"); // if(ObjectUtils.isEmpty(bo.getTenderAmount())) throw new BeanException("投标金额不能为空!");
} }
} }
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
"url": "https://gitee.com/y_project/RuoYi-Vue.git" "url": "https://gitee.com/y_project/RuoYi-Vue.git"
}, },
"dependencies": { "dependencies": {
"@cell-x/el-table-sticky": "^1.0.2",
"@riophae/vue-treeselect": "0.4.0", "@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0", "axios": "0.24.0",
"clipboard": "2.0.8", "clipboard": "2.0.8",
......
...@@ -37,6 +37,14 @@ export function getTenantPackage(param) { ...@@ -37,6 +37,14 @@ export function getTenantPackage(param) {
params: param params: param
}) })
} }
//同步企业方案
export function syncTenantPackage(param) {
return request({
url: '/system/tenant/syncTenantPackage',
method: 'get',
params: param
})
}
//租户列表 //租户列表
export function getTenantList(param) { export function getTenantList(param) {
......
import request from '@/utils/request' import request from '@/utils/request';
//新增项目 //新增项目
export function addProject(param) { export function addProject(param) {
return request({ return request({
url: '/business/info/add', url: '/business/info/add',
method: 'POST', method: 'POST',
data: param data: param
}) });
} }
//商机列表 //商机列表
export function getProjectlist(param) { export function getProjectlist(param) {
...@@ -13,52 +13,52 @@ export function getProjectlist(param) { ...@@ -13,52 +13,52 @@ export function getProjectlist(param) {
url: '/business/info/list', url: '/business/info/list',
method: 'GET', method: 'GET',
params: param params: param
}) });
} }
//删除项目 //删除项目
export function delProject(param) { export function delProject(param) {
return request({ return request({
url: '/business/info/remove/'+param, url: '/business/info/remove/' + param,
method: 'DELETE', method: 'DELETE',
}) });
} }
//建设内容 //建设内容
export function getJSNR(param) { export function getJSNR(param) {
return request({ return request({
url: '/business/info/construction/'+param, url: '/business/info/construction/' + param,
method: 'GET', method: 'GET',
}) });
} }
//项目速览 //项目速览
export function getXMSL(param) { export function getXMSL(param) {
return request({ return request({
url: '/business/info/browse/'+param, url: '/business/info/browse/' + param,
method: 'GET', method: 'GET',
}) });
} }
//项目内容修改 //项目内容修改
export function editXMNR(param) { export function editXMNR(param) {
return request({ return request({
url: '/business/info/edit', url: '/business/info/edit',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//项目标签新增 //项目标签新增
export function addLabel(param) { export function addLabel(param) {
return request({ return request({
url: '/business/label/add', url: '/business/label/add',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//项目标签删除 //项目标签删除
export function removeLabel(param) { export function removeLabel(param) {
return request({ return request({
url: '/business/label/remove', url: '/business/label/remove',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
...@@ -68,8 +68,8 @@ export function getLXR(param) { ...@@ -68,8 +68,8 @@ export function getLXR(param) {
// url: '/business/contacts/list', // url: '/business/contacts/list',
url: '/contact/info/list', url: '/contact/info/list',
method: 'GET', method: 'GET',
params:param params: param
}) });
} }
//修改项目联系人 //修改项目联系人
export function editLXR(param) { export function editLXR(param) {
...@@ -77,8 +77,8 @@ export function editLXR(param) { ...@@ -77,8 +77,8 @@ export function editLXR(param) {
// url: '/business/contacts/edit', // url: '/business/contacts/edit',
url: '/contact/info', url: '/contact/info',
method: 'PUT', method: 'PUT',
data:param data: param
}) });
} }
//新增项目联系人 //新增项目联系人
...@@ -87,16 +87,16 @@ export function addLXR(param) { ...@@ -87,16 +87,16 @@ export function addLXR(param) {
// url: '/business/contacts/add', // url: '/business/contacts/add',
url: '/contact/info', url: '/contact/info',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//删除项目联系人 //删除项目联系人
export function delLXR(param) { export function delLXR(param) {
return request({ return request({
url: '/contact/info/'+param, url: '/contact/info/' + param,
method: 'DELETE', method: 'DELETE',
}) });
} }
//跟进记录 //跟进记录
...@@ -104,8 +104,8 @@ export function getGJJL(param) { ...@@ -104,8 +104,8 @@ export function getGJJL(param) {
return request({ return request({
url: '/business/record/list', url: '/business/record/list',
method: 'get', method: 'get',
params:param params: param
}) });
} }
//新增跟进记录 //新增跟进记录
...@@ -113,15 +113,15 @@ export function addGJJL(param) { ...@@ -113,15 +113,15 @@ export function addGJJL(param) {
return request({ return request({
url: '/business/record/add', url: '/business/record/add',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//删除跟进记录 //删除跟进记录
export function delGJJL(param) { export function delGJJL(param) {
return request({ return request({
url: '/business/record/remove/'+param, url: '/business/record/remove/' + param,
method: 'DELETE', method: 'DELETE',
}) });
} }
...@@ -130,8 +130,8 @@ export function getGZDB(param) { ...@@ -130,8 +130,8 @@ export function getGZDB(param) {
return request({ return request({
url: '/business/backlog/list', url: '/business/backlog/list',
method: 'GET', method: 'GET',
params:param params: param
}) });
} }
//添加工作待办 //添加工作待办
...@@ -139,8 +139,8 @@ export function addGZDB(param) { ...@@ -139,8 +139,8 @@ export function addGZDB(param) {
return request({ return request({
url: '/business/backlog/add', url: '/business/backlog/add',
method: 'post', method: 'post',
data:param data: param
}) });
} }
//修改工作待办 //修改工作待办
...@@ -148,16 +148,16 @@ export function editGZDB(param) { ...@@ -148,16 +148,16 @@ export function editGZDB(param) {
return request({ return request({
url: '/business/backlog/edit', url: '/business/backlog/edit',
method: 'post', method: 'post',
data:param data: param
}) });
} }
//查询相关企业 //查询相关企业
export function getXGQY(param) { export function getXGQY(param) {
return request({ return request({
url: '/business/company/list', url: '/business/company/list',
method: 'GET', method: 'GET',
params:param params: param
}) });
} }
//新增相关企业 //新增相关企业
...@@ -165,8 +165,8 @@ export function addXGQY(param) { ...@@ -165,8 +165,8 @@ export function addXGQY(param) {
return request({ return request({
url: '/business/company/add', url: '/business/company/add',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//编辑相关企业 //编辑相关企业
...@@ -174,24 +174,24 @@ export function saveXGQY(param) { ...@@ -174,24 +174,24 @@ export function saveXGQY(param) {
return request({ return request({
url: '/business/company/edit', url: '/business/company/edit',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//删除相关企业 //删除相关企业
export function delXGQY(param) { export function delXGQY(param) {
return request({ return request({
url: '/business/company/remove/'+param, url: '/business/company/remove/' + param,
method: 'DELETE', method: 'DELETE',
}) });
} }
//查询资料文档 //查询资料文档
export function getZLWD(param) { export function getZLWD(param) {
return request({ return request({
url: '/business/file/list', url: '/business/file/list',
method: 'GET', method: 'GET',
params:param params: param
}) });
} }
//删除资料文档 //删除资料文档
...@@ -199,16 +199,16 @@ export function delZLWD(param) { ...@@ -199,16 +199,16 @@ export function delZLWD(param) {
return request({ return request({
url: '/business/file/remove', url: '/business/file/remove',
method: 'POST', method: 'POST',
data:param data: param
}) });
} }
//查询关联项目 //查询关联项目
export function relateProject(param) { export function relateProject(param) {
return request({ return request({
url: '/business/record/relate/project/'+param, url: '/business/record/relate/project/' + param,
method: 'get', method: 'get',
}) });
} }
//查询跟进动态 //查询跟进动态
...@@ -216,8 +216,8 @@ export function allRecord(param) { ...@@ -216,8 +216,8 @@ export function allRecord(param) {
return request({ return request({
url: '/business/record/all/list', url: '/business/record/all/list',
method: 'get', method: 'get',
params:param, params: param,
}) });
} }
//项目状态统计 //项目状态统计
...@@ -225,46 +225,91 @@ export function getStatistics(param) { ...@@ -225,46 +225,91 @@ export function getStatistics(param) {
return request({ return request({
url: '/business/overview/status/statistics', url: '/business/overview/status/statistics',
method: 'get', method: 'get',
params:param, params: param,
}) });
} }
//储备项目统计 //储备项目统计
export function getCount(param) { export function getCount(param) {
return request({ return request({
url: '/business/overview/category/analyze/'+param, url: '/business/overview/category/analyze/' + param,
method: 'get', method: 'get',
params:param, params: param,
}) });
} }
//储备项目资金 //储备项目资金
export function getAmount(param) { export function getAmount(param) {
return request({ return request({
url: '/business/overview/amount/analyze', url: '/business/overview/amount/analyze',
method: 'get', method: 'get',
params:param, params: param,
}) });
} }
//跟进动态 //跟进动态
export function getAllRecord(param) { export function getAllRecord(param) {
return request({ return request({
url: '/business/record/all/list', url: '/business/record/all/list',
method: 'get', method: 'get',
params:param, params: param,
}) });
} }
//公招项目地区统计 //公招项目地区统计
export function countGroupByProvince(param) { export function countGroupByProvince(param) {
return request({ return request({
url: '/business/overview/countGroupByProvince', url: '/business/overview/countGroupByProvince',
method: 'post', method: 'post',
data:param data: param
}) });
} }
//公招项目投资金额统计 //公招项目投资金额统计
export function rangByMoney(param) { export function rangByMoney(param) {
return request({ return request({
url: '/business/overview/rangByMoney', url: '/business/overview/rangByMoney',
method: 'post', method: 'post',
data:param data: param
}) });
} }
/**
* 获取项目管理 商机列表 详情页开标记录列表
* @param {object} params
* @returns
*/
export const getBidOpeningRecordListApi = (params) => request({
method: "get",
url: "/business/open/tender/list",
params
});
/**
* 新增项目管理 商机列表 详情页开标记录
* @param {object} data
* @returns
*/
export const addBidOpeningRecordApi = (data) => request({
method: "post",
url: "/business/open/tender",
data
});
/**
* 修改项目管理 商机列表 详情页开标记录
* @param {object} data
* @returns
*/
export const modifyBidOpeningRecordApi = (data) => request({
method: "put",
url: "/business/open/tender",
data
});
/**
* 删除项目管理 商机列表 详情页开标记录
* @param {object} data
* @returns
*/
export const removeBidOpeningRecordApi = (params) => request({
method: "DELETE",
url: `/business/open/tender/${params}`,
});
<svg width="24" height="24" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path d="M23.063 13.171a1.2 1.2 0 011.874 0l13.503 16.88c.629.785.07 1.949-.937 1.949H10.497c-1.006 0-1.566-1.164-.937-1.95l13.503-16.879z"/></svg>
\ No newline at end of file
<svg width="24" height="24" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path d="M24.937 34.829a1.2 1.2 0 01-1.874 0L9.56 17.949C8.93 17.165 9.49 16 10.497 16h27.006c1.007 0 1.566 1.164.937 1.95L24.937 34.829z"/></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"><g transform="matrix(1,5.551115123125783e-17,-5.551115123125783e-17,1,0,0)"><g><path d="M1.166015625,7.0003221875C1.166015625,3.7786621875,3.777685625,1.1669921875,6.999345625,1.1669921875C10.221015625,1.1669921875,12.832715625,3.7786621875,12.832715625,7.0003221875C12.832715625,10.2219921875,10.221015625,12.8336921875,6.999345625,12.8336921875C3.777685625,12.8336921875,1.166015625,10.2219921875,1.166015625,7.0003221875C1.166015625,7.0003221875,1.166015625,7.0003221875,1.166015625,7.0003221875ZM4.732635625,5.5586421875C4.732635625,5.5586421875,6.176295625,7.0023121875,6.176295625,7.0023121875C6.176295625,7.0023121875,4.732635625,8.4460021875,4.732635625,8.4460021875C4.732635625,8.4460021875,5.557585625,9.2709521875,5.557585625,9.2709521875C5.557585625,9.2709521875,7.001245625,7.8272621875,7.001245625,7.8272621875C7.001245625,7.8272621875,8.444935625,9.2709521875,8.444935625,9.2709521875C8.444935625,9.2709521875,9.269885625,8.4460021875,9.269885625,8.4460021875C9.269885625,8.4460021875,7.826225625,7.0023121875,7.826225625,7.0023121875C7.826225625,7.0023121875,9.269885625,5.5586421875,9.269885625,5.5586421875C9.269885625,5.5586421875,8.444935625,4.7336621875,8.444935625,4.7336621875C8.444935625,4.7336621875,7.001245625,6.1773621875,7.001245625,6.1773621875C7.001245625,6.1773621875,5.557585625,4.7336621875,5.557585625,4.7336621875C5.557585625,4.7336621875,4.732635625,5.5586421875,4.732635625,5.5586421875C4.732635625,5.5586421875,4.732635625,5.5586421875,4.732635625,5.5586421875Z" fill-rule="evenodd" fill="#BFBFBF" 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_1539_143431/829_061997"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_1539_143431/829_061997)"><g><path d="M6.417314375,6.4163378125C6.417314375,6.4163378125,6.417314375,1.4580078125,6.417314375,1.4580078125C6.417314375,1.4580078125,7.583984375,1.4580078125,7.583984375,1.4580078125C7.583984375,1.4580078125,7.583984375,6.4163378125,7.583984375,6.4163378125C7.583984375,6.4163378125,12.542284375,6.4163378125,12.542284375,6.4163378125C12.542284375,6.4163378125,12.542284375,7.5830078125,12.542284375,7.5830078125C12.542284375,7.5830078125,7.583984375,7.5830078125,7.583984375,7.5830078125C7.583984375,7.5830078125,7.583984375,12.5413078125,7.583984375,12.5413078125C7.583984375,12.5413078125,6.417314375,12.5413078125,6.417314375,12.5413078125C6.417314375,12.5413078125,6.417314375,7.5830078125,6.417314375,7.5830078125C6.417314375,7.5830078125,1.458984375,7.5830078125,1.458984375,7.5830078125C1.458984375,7.5830078125,1.458984375,6.4163378125,1.458984375,6.4163378125C1.458984375,6.4163378125,6.417314375,6.4163378125,6.417314375,6.4163378125C6.417314375,6.4163378125,6.417314375,6.4163378125,6.417314375,6.4163378125Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_1539_143591"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_1539_143591)"><g><path d="M7.00035,1.508544921875C7.00035,1.508544921875,10.05856,4.566754921875,10.05856,4.566754921875C10.05856,4.566754921875,9.233609999999999,5.391704921875,9.233609999999999,5.391704921875C9.233609999999999,5.391704921875,7.584,3.742104921875,7.584,3.742104921875C7.584,3.742104921875,7.584,9.666634921875,7.584,9.666634921875C7.584,9.666634921875,6.41734,9.666634921875,6.41734,9.666634921875C6.41734,9.666634921875,6.41734,3.741484921875,6.41734,3.741484921875C6.41734,3.741484921875,4.76709,5.391704921875,4.76709,5.391704921875C4.76709,5.391704921875,3.94214,4.566754921875,3.94214,4.566754921875C3.94214,4.566754921875,7.00035,1.508544921875,7.00035,1.508544921875C7.00035,1.508544921875,7.00035,1.508544921875,7.00035,1.508544921875ZM2.91667,11.375164921875C2.91667,11.375164921875,2.91667,10.208494921875,2.91667,10.208494921875C2.91667,10.208494921875,1.75,10.208494921875,1.75,10.208494921875C1.75,10.208494921875,1.75,12.541844921875,1.75,12.541844921875C1.75,12.541844921875,12.25,12.541844921875,12.25,12.541844921875C12.25,12.541844921875,12.25,10.208494921875,12.25,10.208494921875C12.25,10.208494921875,11.08333,10.208494921875,11.08333,10.208494921875C11.08333,10.208494921875,11.08333,11.375164921875,11.08333,11.375164921875C11.08333,11.375164921875,2.91667,11.375164921875,2.91667,11.375164921875C2.91667,11.375164921875,2.91667,11.375164921875,2.91667,11.375164921875Z" fill-rule="evenodd" fill="#232323" 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"><g><g><path d="M9.91682609375,2.624921953125C9.91682609375,2.624921953125,9.91682609375,1.458251953125,9.91682609375,1.458251953125C9.91682609375,1.458251953125,4.08349609375,1.458253204825,4.08349609375,1.458253204825C4.08349609375,1.458253204825,4.08349609375,2.624921953125,4.08349609375,2.624921953125C4.08349609375,2.624921953125,1.45849609375,2.624921953125,1.45849609375,2.624921953125C1.45849609375,2.624921953125,1.45849609375,3.791581953125,1.45849609375,3.791581953125C1.45849609375,3.791581953125,2.47932609375,3.791581953125,2.47932609375,3.791581953125C2.47932609375,3.791581953125,2.47932609375,11.666551953125,2.47932609375,11.666551953125C2.47932609375,12.149851953125,2.87107609375,12.541551953125,3.35432609375,12.541551953125C3.35432609375,12.541551953125,10.64599609375,12.541551953125,10.64599609375,12.541551953125C11.12925609375,12.541551953125,11.52099609375,12.149851953125,11.52099609375,11.666551953125C11.52099609375,11.666551953125,11.52099609375,3.791591953125,11.52099609375,3.791591953125C11.52099609375,3.791591953125,12.54179609375,3.791591953125,12.54179609375,3.791591953125C12.54179609375,3.791591953125,12.54179609375,2.624921953125,12.54179609375,2.624921953125C12.54179609375,2.624921953125,9.91682609375,2.624921953125,9.91682609375,2.624921953125C9.91682609375,2.624921953125,9.91682609375,2.624921953125,9.91682609375,2.624921953125ZM3.64599609375,11.374921953125C3.64599609375,11.374921953125,3.64599609375,3.791581953125,3.64599609375,3.791581953125C3.64599609375,3.791581953125,10.35432609375,3.791591953125,10.35432609375,3.791591953125C10.35432609375,3.791591953125,10.35432609375,11.374921953125,10.35432609375,11.374921953125C10.35432609375,11.374921953125,3.64599609375,11.374921953125,3.64599609375,11.374921953125C3.64599609375,11.374921953125,3.64599609375,11.374921953125,3.64599609375,11.374921953125ZM5.25016609375,5.249921953125C5.25016609375,5.249921953125,5.25016609375,9.624921953125,5.25016609375,9.624921953125C5.25016609375,9.624921953125,6.41682609375,9.624921953125,6.41682609375,9.624921953125C6.41682609375,9.624921953125,6.41682609375,5.249921953125,6.41682609375,5.249921953125C6.41682609375,5.249921953125,5.25016609375,5.249921953125,5.25016609375,5.249921953125C5.25016609375,5.249921953125,5.25016609375,5.249921953125,5.25016609375,5.249921953125ZM7.58349609375,5.249921953125C7.58349609375,5.249921953125,7.58349609375,9.624921953125,7.58349609375,9.624921953125C7.58349609375,9.624921953125,8.75016609375,9.624921953125,8.75016609375,9.624921953125C8.75016609375,9.624921953125,8.75016609375,5.249921953125,8.75016609375,5.249921953125C8.75016609375,5.249921953125,7.58349609375,5.249921953125,7.58349609375,5.249921953125C7.58349609375,5.249921953125,7.58349609375,5.249921953125,7.58349609375,5.249921953125Z" fill-rule="evenodd" fill="#FF3C3C" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
...@@ -16,3 +16,7 @@ ...@@ -16,3 +16,7 @@
.fade-leave-to /* .fade-leave-active below version 2.1.8 */ { .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0; opacity: 0;
} }
.el-message {
z-index: 3000 !important;
}
...@@ -227,6 +227,7 @@ li { ...@@ -227,6 +227,7 @@ li {
} }
.app-main { .app-main {
position: relative;
background-color: #f5f5f5; background-color: #f5f5f5;
>div{ >div{
width: calc(100% - 48px); width: calc(100% - 48px);
...@@ -236,6 +237,7 @@ li { ...@@ -236,6 +237,7 @@ li {
margin: 16px 24px; margin: 16px 24px;
background-color: #f5f5f5; background-color: #f5f5f5;
box-sizing: border-box; box-sizing: border-box;
//width: 100%;
.el-input__inner { .el-input__inner {
border-color: #d9d9d9; border-color: #d9d9d9;
color: #232323; color: #232323;
......
#app { #app {
.main-container { .main-container {
height: 100%; height: 100%;
transition: margin-left .28s; transition: margin-left 0.28s;
margin-left: $base-sidebar-width; margin-left: $base-sidebar-width;
width: calc(100% - #{$base-sidebar-width});
position: relative; position: relative;
background: #F5F5F5; background: #f5f5f5;
} }
.sidebarHide { .sidebarHide {
margin-left: 0!important; margin-left: 0 !important;
} }
.sidebar-container { .sidebar-container {
-webkit-transition: width .28s; -webkit-transition: width 0.28s;
transition: width 0.28s; transition: width 0.28s;
width: $base-sidebar-width !important; width: $base-sidebar-width !important;
background-color: $base-menu-background; background-color: $base-menu-background;
...@@ -28,25 +28,30 @@ ...@@ -28,25 +28,30 @@
// -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35); // -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
// box-shadow: 2px 0 6px rgba(0,21,41,.35); // box-shadow: 2px 0 6px rgba(0,21,41,.35);
//展开、收起箭头 //展开、收起箭头
.side-expand{ .side-expand {
position: absolute; position: absolute;
top: 180px; top: 180px;
width: 21px; width: 21px;
height: 62px; height: 62px;
cursor: pointer; cursor: pointer;
animation: left-right .2s; animation: left-right 0.2s;
animation-fill-mode: forwards; animation-fill-mode: forwards;
z-index: 1002; z-index: 1002;
} }
@keyframes left-right{ @keyframes left-right {
0%{right: 0;} 0% {
100%{right: -21px;} right: 0;
}
100% {
right: -21px;
}
} }
// reset element-ui css // reset element-ui css
.horizontal-collapse-transition { .horizontal-collapse-transition {
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; transition: 0s width ease-in-out, 0s padding-left ease-in-out,
0s padding-right ease-in-out;
} }
.scrollbar-wrapper { .scrollbar-wrapper {
...@@ -59,11 +64,8 @@ ...@@ -59,11 +64,8 @@
.el-scrollbar { .el-scrollbar {
height: 100%; height: 100%;
} }
&.has-logo { &.has-logo {
.el-scrollbar { .el-scrollbar {
height: calc(100% - 50px); height: calc(100% - 50px);
...@@ -83,7 +85,7 @@ ...@@ -83,7 +85,7 @@
.svg-icon { .svg-icon {
margin-right: 6px; margin-right: 6px;
} }
.el-submenu__icon-arrow{ .el-submenu__icon-arrow {
top: 54%; top: 54%;
right: 5px; right: 5px;
color: #d8d8d8; color: #d8d8d8;
...@@ -95,28 +97,29 @@ ...@@ -95,28 +97,29 @@
width: calc(100% - 16px) !important; width: calc(100% - 16px) !important;
margin: 0 8px; margin: 0 8px;
} }
.el-menu--inline{ .el-menu--inline {
margin: 0; margin: 0;
width: 100%!important; width: 100% !important;
} }
.el-menu--inline .nest-menu .el-menu-item{ .el-menu--inline .nest-menu .el-menu-item {
width: 100%!important; width: 100% !important;
min-width: 128px; min-width: 128px;
font-size: 12px; font-size: 12px;
color: #fff!important; color: #fff !important;
padding-left: 23px!important; padding-left: 23px !important;
} }
.el-menu--inline .nest-menu .el-menu-item .svg-icon{ .el-menu--inline .nest-menu .el-menu-item .svg-icon {
display: none; display: none;
} }
.el-menu-item, .el-submenu__title { .el-menu-item,
.el-submenu__title {
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
border: 1px solid #141b2f; border: 1px solid #141b2f;
color: #fff; color: #fff;
margin-bottom: 6px; margin-bottom: 6px;
padding: 0 6px!important; padding: 0 6px !important;
overflow: hidden !important; overflow: hidden !important;
text-overflow: ellipsis !important; text-overflow: ellipsis !important;
white-space: nowrap !important; white-space: nowrap !important;
...@@ -125,44 +128,43 @@ ...@@ -125,44 +128,43 @@
// menu hover // menu hover
.el-menu-item.is-active { .el-menu-item.is-active {
// 点击菜单的颜色 // 点击菜单的颜色
background-color: #1e2c4c!important; background-color: #1e2c4c !important;
color: #fff!important; color: #fff !important;
border-radius: 10px; border-radius: 10px;
border: 1px solid #2b3f69; border: 1px solid #2b3f69;
&:hover { &:hover {
background-color: #1e2c4c!important; background-color: #1e2c4c !important;
border-radius: 10px; border-radius: 10px;
color: #fff!important; color: #fff !important;
border: 1px solid #2b3f69; border: 1px solid #2b3f69;
} }
&:before{ &:before {
background: #fff!important; background: #fff !important;
} }
} }
// menu hover // menu hover
.submenu-title-noDropdown, .el-submenu__title { .submenu-title-noDropdown,
color: #fff!important; .el-submenu__title {
color: #fff !important;
&:hover { &:hover {
background-color: #1e2c4c!important; background-color: #1e2c4c !important;
color: #fff!important; color: #fff !important;
border-radius: 10px; border-radius: 10px;
border: 1px solid #2b3f69; border: 1px solid #2b3f69;
} }
} }
} }
.sidebar-container .el-submenu .el-menu-item:hover,.sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover { .sidebar-container .el-submenu .el-menu-item:hover,
background-color: #1e2c4c!important; .sidebar-container .nest-menu .el-submenu > .el-submenu__title:hover {
color: #fff!important; background-color: #1e2c4c !important;
color: #fff !important;
border-radius: 10px; border-radius: 10px;
border: 1px solid #2b3f69; border: 1px solid #2b3f69;
} }
.sidebar-container .el-submenu .el-menu-item:before, .sidebar-container .nest-menu .el-submenu>.el-submenu__title:before { .sidebar-container .el-submenu .el-menu-item:before,
.sidebar-container .nest-menu .el-submenu > .el-submenu__title:before {
position: absolute; position: absolute;
width: 2px; width: 2px;
height: 2px; height: 2px;
...@@ -172,7 +174,8 @@ ...@@ -172,7 +174,8 @@
top: 50%; top: 50%;
content: ""; content: "";
} }
.sidebar-container .el-submenu .el-menu-item:hover:before, .sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover:before{ .sidebar-container .el-submenu .el-menu-item:hover:before,
.sidebar-container .nest-menu .el-submenu > .el-submenu__title:hover:before {
position: absolute; position: absolute;
width: 2px; width: 2px;
height: 2px; height: 2px;
...@@ -190,11 +193,12 @@ ...@@ -190,11 +193,12 @@
.main-container { .main-container {
margin-left: 48px; margin-left: 48px;
width: calc(100% - 48px);
} }
.submenu-title-noDropdown { .submenu-title-noDropdown {
margin-bottom: 6px; margin-bottom: 6px;
padding: 0 6px!important; padding: 0 6px !important;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
...@@ -203,7 +207,7 @@ ...@@ -203,7 +207,7 @@
padding: 0 !important; padding: 0 !important;
.svg-icon { .svg-icon {
margin: 0px!important; margin: 0px !important;
width: 1em; width: 1em;
height: 1em; height: 1em;
font-size: 16px; font-size: 16px;
...@@ -211,7 +215,6 @@ ...@@ -211,7 +215,6 @@
vertical-align: -0.15em; vertical-align: -0.15em;
fill: currentColor; fill: currentColor;
overflow: hidden; overflow: hidden;
} }
} }
} }
...@@ -219,14 +222,14 @@ ...@@ -219,14 +222,14 @@
.el-submenu { .el-submenu {
overflow: hidden; overflow: hidden;
&>.el-submenu__title { & > .el-submenu__title {
margin-bottom: 6px; margin-bottom: 6px;
padding: 0 6px!important; padding: 0 6px !important;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
.svg-icon { .svg-icon {
margin: 0px!important; margin: 0px !important;
width: 1em; width: 1em;
height: 1em; height: 1em;
font-size: 16px; font-size: 16px;
...@@ -236,14 +239,13 @@ ...@@ -236,14 +239,13 @@
overflow: hidden; overflow: hidden;
margin-left: 0px; margin-left: 0px;
} }
} }
} }
.el-menu--collapse { .el-menu--collapse {
.el-submenu { .el-submenu {
&>.el-submenu__title { & > .el-submenu__title {
&>span { & > span {
height: 0; height: 0;
width: 0; width: 0;
overflow: hidden; overflow: hidden;
...@@ -266,7 +268,7 @@ ...@@ -266,7 +268,7 @@
} }
.sidebar-container { .sidebar-container {
transition: transform .28s; transition: transform 0.28s;
width: $base-sidebar-width !important; width: $base-sidebar-width !important;
} }
...@@ -280,7 +282,6 @@ ...@@ -280,7 +282,6 @@
} }
.withoutAnimation { .withoutAnimation {
.main-container, .main-container,
.sidebar-container { .sidebar-container {
transition: none; transition: none;
...@@ -290,13 +291,13 @@ ...@@ -290,13 +291,13 @@
// when menu collapsed // when menu collapsed
.el-menu--vertical { .el-menu--vertical {
&>.el-menu { & > .el-menu {
.svg-icon { .svg-icon {
margin-right: 16px; margin-right: 16px;
} }
} }
.nest-menu .el-submenu>.el-submenu__title, .nest-menu .el-submenu > .el-submenu__title,
.el-menu-item { .el-menu-item {
&:hover { &:hover {
// you can use $subMenuHover // you can use $subMenuHover
...@@ -305,7 +306,7 @@ ...@@ -305,7 +306,7 @@
} }
// the scroll bar appears when the subMenu is too long // the scroll bar appears when the subMenu is too long
>.el-menu--popup { > .el-menu--popup {
max-height: 100vh; max-height: 100vh;
overflow-y: auto; overflow-y: auto;
...@@ -323,24 +324,24 @@ ...@@ -323,24 +324,24 @@
} }
} }
} }
.side-popover{ .side-popover {
min-width: 80px; min-width: 80px;
font-size: 12px; font-size: 12px;
color: #232323; color: #232323;
padding: 0 8px 32px 8px; padding: 0 8px 32px 8px;
margin-left: 16px !important; margin-left: 16px !important;
.side-title{ .side-title {
font-size: 16px; font-size: 16px;
height: 54px; height: 54px;
line-height: 58px; line-height: 58px;
padding: 0 6px; padding: 0 6px;
border-bottom: 1px solid #F0F0F0; border-bottom: 1px solid #f0f0f0;
} }
.side-list{ .side-list {
li{ li {
padding: 24px 6px 0 6px; padding: 24px 6px 0 6px;
&:hover{ &:hover {
color: #3D3D3D; color: #3d3d3d;
} }
} }
} }
...@@ -348,15 +349,15 @@ ...@@ -348,15 +349,15 @@
.side-retract { .side-retract {
height: 40px; height: 40px;
line-height: 48px; line-height: 48px;
border: 1px solid #141B2F; border: 1px solid #141b2f;
margin-bottom: 6px; margin-bottom: 6px;
padding: 0 6px !important; padding: 0 6px !important;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background-color: #1E2C4C !important; background-color: #1e2c4c !important;
border-radius: 10px; border-radius: 10px;
border: 1px solid #2B3F69; border: 1px solid #2b3f69;
} }
.svg-icon { .svg-icon {
margin-right: 0 !important; margin-right: 0 !important;
...@@ -370,10 +371,10 @@ ...@@ -370,10 +371,10 @@
margin-left: 0px; margin-left: 0px;
} }
} }
.side-one-popover{ .side-one-popover {
min-width: 52px; min-width: 52px;
padding-bottom: 0; padding-bottom: 0;
.side-title{ .side-title {
font-size: 12px; font-size: 12px;
height: 24px; height: 24px;
line-height: 24px; line-height: 24px;
...@@ -381,23 +382,23 @@ ...@@ -381,23 +382,23 @@
} }
} }
.side-logo-popover{ .side-logo-popover {
width: 120px; width: 120px;
padding-top: 16px; padding-top: 16px;
padding-bottom: 0; padding-bottom: 0;
margin-left: 16px !important; margin-left: 16px !important;
.sidebar-logo{ .sidebar-logo {
width: 24px; width: 24px;
height: 24px; height: 24px;
background: #F5F5F5; background: #f5f5f5;
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
img{ img {
width: 16px; width: 16px;
height: 23px; height: 23px;
} }
} }
.side-title{ .side-title {
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
height: auto; height: auto;
......
<template>
<div class="no-data">
<div class="no-data-box">
<img :src="noData" alt="抱歉,没找到相关数据" />
<div v-if="record">抱歉,您还未添加跟进动态</div>
<template v-else>
<div v-if="text">抱歉,您还未添加{{text}}项目</div>
<div v-else>抱歉,没找到相关数据</div>
</template>
<span v-if="condition">建议调整关键词或筛选条件,重新搜索</span>
</div>
</div>
</template>
<script>
export default {
name: "noData",
props: {
record: {
type: Boolean,
default: false
},
condition: {
type: Boolean,
default: false
},
text: {
type: String,
default: ''
}
},
data() {
return {
noData: require("@/assets/images/detail/noData.png")
};
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.no-data {
font-size: 14px;
color: #999999;
width: 100%;
height: 100%;
min-height: 120px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
//border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 108px;
height: 109px;
margin-bottom: 22px;
}
div {
font-size: 16px;
line-height: 1;
color: #333333;
}
span {
margin-top: 4px;
}
}
}
</style>
<template>
<div class="Tables table-list-com-ins">
<div class="table-item">
<el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData"
element-loading-text="Loading" ref="tableRef" border fit highlight-current-row v-sticky-header.always="stickyHeader"
:default-sort="defaultSort?defaultSort:{}" @sort-change="sortChange" @selection-change="selectionChange">
<el-table-column type="selection" :width="needSelection.width ? needSelection.width : '38px'" v-if="needSelection.flag"
:fixed="needSelection.fixed" :align="needSelection.align">
</el-table-column>
<el-table-column v-if="isIndex" label="序号" :width="flexWidth(tableData)" align="left" :fixed="indexFixed" :resizable="false">
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<template>
<el-table-column v-for="(item,index) in formColum" :key="index" :label="item.label" :prop="item.prop" :width="item.width"
:min-width="item.minWidth" :align="item.align?item.align:'left'" :fixed="item.fixed"
:sortable="item.sortable ?item.sortable=='custom'? 'custom':true : false" :resizable="false">
<template v-if="item.children&&item.children.length">
<el-table-column v-for="(cld, i) in item.children" :key="i" :prop="cld.prop" :label="cld.label" :width="cld.width" :resizable="false">
<template slot-scope="cldscope">
<template v-if="cld.slot">
<slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot>
</template>
<template v-else>
<span>{{cldscope.row[cld.prop] || '--'}}</span>
</template>
</template>
</el-table-column>
</template>
<template v-else-if="item.slotHeader" slot="header">
<slot :name="item.slotName"></slot>
</template>
<template slot-scope="scope">
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot>
<!-- 操作栏 -->
<slot v-else-if="item.prop == 'action-field-bar'" name="action-field-bar" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else>
{{ scope.row[item.prop] || '--' }}
</span>
</template>
</el-table-column>
</template>
<template slot="empty">
</template>
</el-table>
<div style="padding: 30px 0" v-else>
<no-data />
</div>
</div>
<div class="pagination-box" v-if="show_page && tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="current_page" :page-size="queryParams.pageSize" :total="tableDataTotal"
layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</div>
</template>
<script>
import NoData from '@/components/NoData';
export default {
name: "tableListCom",
props: {
isIndex: {
type: Boolean,
default: true
},
needSelection: {
type: Object,
default: () => ({
flag: false,
width: "39px",
fixed: false,
align: "left"
})
},
// 吸顶偏移量
stickyHeader: {
type: Object,
default: () => ({
offsetBottom: '10px',
offsetTop: "0px"
})
},
headerFixed: {
type: Boolean,
default: false
},
indexFixed: {
type: Boolean,
default: false
},
tableLoading: {
type: Boolean,
default: false
},
defaultSort: {
type: Object,
default: null
},
tableData: {
type: Array,
default: () => []
},
formColum: {
type: Array,
default: () => []
},
tableDataTotal: {
type: Number,
default: 0
},
queryParams: {
type: Object,
default: () => ({})
},
paging: {
type: Boolean,
default: true
},
MaxPage: { //最大页码
type: Number,
default: 500
},
},
components: {
NoData
},
data() {
return {
current_page: this.queryParams.pageNum,
show_page: this.paging
};
},
watch: {
'queryParams.pageNum'(newVal, oldVal) {
this.current_page = newVal;
}
},
created() {
},
methods: {
handleCurrentChange(e) {
if (this.MaxPage < e) {
this.show_page = false;
this.$nextTick(() => {
this.current_page = this.queryParams.pageNum;
this.$message.warning(`对不起,最多只能访问${this.MaxPage}页`);
this.show_page = true;
});
} else {
this.$emit('handle-current-change', e);
}
},
handleSizeChange(e) {
this.$emit('handle-current-change', e);
},
sortChange(e) {
this.$emit('sort-change', e);
},
selectionChange(selectionArray) {
this.$emit("selectionChange", selectionArray);
},
flexWidth(tableData) {
let currentMax = this.queryParams.pageNum * this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 59;
if (currentMax.toString().length > 3) {
wdth = wdth + (currentMax.toString().length - 3) * 10;
}
return wdth + 'px';
}
}
}
</script>
<style lang="scss" scoped>
.Tables {
::v-deep .el-table__body tr.current-row > td.el-table__cell {
background-color: #ffffff;
}
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}*/
::v-deep .el-table__row {
&:nth-child(even) {
background-color: #f9fcff;
.more {
background: #f8fbff;
span {
color: #0081ff;
}
}
}
&:nth-child(odd) {
.more {
span {
color: #0081ff;
}
}
}
}
.table-item {
::v-deep .el-table td.el-table__cell {
border-bottom: 0;
}
}
::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__body tr.hover-row.current-row > td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped.current-row > td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped > td,
::v-deep .el-table__body tr.hover-row > td {
background-color: #dcebff !important;
.more {
background: #dcebff;
}
}
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #dcebff;
}
::v-deep .el-table__header-wrapper {
position: sticky;
top: 0;
z-index: 99;
}
::v-deep .el-table__fixed {
overflow-x: clip;
overflow-y: clip;
}
}
.table-list-com-ins {
::v-deep .el-table {
.el-table__fixed-header-wrapper {
top: 0px;
}
}
}
</style>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true"> <svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true">
<use :xlink:href="iconName(tag)" /> <use :xlink:href="iconName(tag)" />
</svg> </svg>
<span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span> <span :id="isActive(tag)?'tagTitle':''">{{ tag.title.replace(/<[^>]+>/g, '') }}</span>
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
<i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" /> <i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" />
</router-link> </router-link>
...@@ -166,7 +166,7 @@ export default { ...@@ -166,7 +166,7 @@ export default {
} }
}, },
isActive(route) { isActive(route) {
return route.path === this.$route.path return route.path.split("?")[0] === this.$route.path
}, },
isAffix(tag) { isAffix(tag) {
return tag.meta && tag.meta.affix return tag.meta && tag.meta.affix
......
...@@ -15,6 +15,7 @@ import directive from './directive'; // directive ...@@ -15,6 +15,7 @@ import directive from './directive'; // directive
import plugins from './plugins'; // plugins import plugins from './plugins'; // plugins
import { download } from '@/utils/request'; import { download } from '@/utils/request';
import horizontalScroll from 'el-table-horizontal-scroll'; import horizontalScroll from 'el-table-horizontal-scroll';
import elTableSticky from '@cell-x/el-table-sticky';
import './assets/icons'; // icon import './assets/icons'; // icon
import './permission'; // permission control import './permission'; // permission control
...@@ -61,6 +62,7 @@ Vue.component('ImageUpload', ImageUpload); ...@@ -61,6 +62,7 @@ Vue.component('ImageUpload', ImageUpload);
Vue.component('ImagePreview', ImagePreview); Vue.component('ImagePreview', ImagePreview);
Vue.use(horizontalScroll); Vue.use(horizontalScroll);
Vue.use(elTableSticky);
Vue.use(directive); Vue.use(directive);
Vue.use(plugins); Vue.use(plugins);
Vue.use(VueMeta); Vue.use(VueMeta);
......
...@@ -70,7 +70,7 @@ export const constantRoutes = [ ...@@ -70,7 +70,7 @@ export const constantRoutes = [
path: 'index', path: 'index',
component: () => import('@/views/index'), component: () => import('@/views/index'),
name: 'Index', name: 'Index',
meta: { title: '首页', icon: 'index'} meta: { title: '首页', icon: 'index', noCache: true}
} }
] ]
}, },
...@@ -159,7 +159,19 @@ export const constantRoutes = [ ...@@ -159,7 +159,19 @@ export const constantRoutes = [
} }
] ]
}, },
//企业详情 {
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/JumpPage.html',
component: () => import('@/views/detail'),
}
]
},
//乙方-企业详情
{ {
path: '/company', path: '/company',
component: Layout, component: Layout,
...@@ -174,6 +186,97 @@ export const constantRoutes = [ ...@@ -174,6 +186,97 @@ export const constantRoutes = [
} }
] ]
}, },
//企业详情-业绩
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/performance',
component: () => import('@/views/detail'),
}
]
},
//企业详情-人员
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/personnel',
component: () => import('@/views/detail'),
}
]
},
//企业详情-经营信息
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/business',
component: () => import('@/views/detail'),
}
]
},
//企业详情-良好行为
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/behavior',
component: () => import('@/views/detail'),
}
]
},
//企业详情-信用评价
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/evaluation',
component: () => import('@/views/detail'),
}
]
},
//企业详情-信用行为
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/credit',
component: () => import('@/views/detail'),
}
]
},
//企业详情-股权
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/company/:id/lt',
component: () => import('@/views/detail'),
}
]
},
//人员详情 //人员详情
{ {
path: '/personnel', path: '/personnel',
...@@ -216,6 +319,215 @@ export const constantRoutes = [ ...@@ -216,6 +319,215 @@ export const constantRoutes = [
} }
] ]
}, },
//荣誉详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/honor/:id.html',
component: () => import('@/views/detail'),
}
]
},
//标讯Pro-招标公告
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/bxpro/:id.html',
component: () => import('@/views/detail'),
}
]
},
//中标候选人
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/zbpro/:id.html',
component: () => import('@/views/detail'),
}
]
},
//开标记录
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/biz/tbjl/:id.html',
component: () => import('@/views/detail'),
}
]
},
//一体化详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/sjyth/:id.html',
component: () => import('@/views/detail'),
}
]
},
//一体化详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/yth/:id.html',
component: () => import('@/views/detail'),
}
]
},
//四库详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/sky/:id.html',
component: () => import('@/views/detail'),
}
]
},
//公路系统详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/glxt/:id.html',
component: () => import('@/views/detail'),
}
]
},
//公路系统详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/xmzt/:id.html',
component: () => import('@/views/detail'),
}
]
},
//水利详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/slyj/:id.html',
component: () => import('@/views/detail'),
}
]
},
//江西住建云详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/jxzjy/:id.html',
component: () => import('@/views/detail'),
}
]
},
//北京业绩详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/bj/:id.html',
component: () => import('@/views/detail'),
}
]
},
//云南业绩详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/yn/:id.html',
component: () => import('@/views/detail'),
}
]
},
//商机-标讯详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/biz/bx/:id.html',
component: () => import('@/views/detail'),
}
]
},
//商机-土地交易详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/biz/tdjy/:id.html',
component: () => import('@/views/detail'),
}
]
},
//商机-拟建项目详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/biz/njxm/:id.html',
component: () => import('@/views/detail'),
}
]
},
{ {
path: '/structure', path: '/structure',
component: Layout, component: Layout,
......
/*
* @Author: thy
* @Date: 2023-10-26 14:56:41
* @LastEditors: thy
* @LastEditTime: 2023-10-26 16:00:22
* @Description: file content
* @FilePath: \dsk-operate-ui\src\utils\postMessageBridge\bridge\index.js
*/
class PostMessageBridge {
constructor() {
}
}
\ No newline at end of file
...@@ -25,7 +25,7 @@ service.interceptors.request.use(config => { ...@@ -25,7 +25,7 @@ service.interceptors.request.use(config => {
// 是否需要设置 token // 是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
// 是否需要防止数据重复提交 // 是否需要防止数据重复提交
const isRepeatSubmit = (config.headers || {}).repeatSubmit === false||config.url.indexOf('getUipIdByCid')!=-1 const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
config.headers['tenantid'] = getTenantid() //携带租户id config.headers['tenantid'] = getTenantid() //携带租户id
......
...@@ -8,11 +8,24 @@ ...@@ -8,11 +8,24 @@
<div class="p2">建议调整关键词或筛选条件,重新搜索</div> <div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div> </div>
<div class="table_search"> <div class="table_search">
<div class="newSearch"> <div>
<el-input type="text" v-model="searchParam.companyName" clearable placeholder="输入企业名称查询" @change="clearname" > <!-- 未点击前的输入框样式 -->
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" width="16px" @click="handleCurrentChange(1)"></i> <div class="normal-search-container" :class="{'is-hover-search' : hover}" @mouseover="searchHover($event)"
@mouseleave="searchUnHover($event,searchParam.companyName)">
<img src="@/assets/images/enterprise/enterprise-search-icon.svg" alt="">
<span v-show="!hover && !searchParam.companyName">搜索</span>
<el-input v-model="searchParam.companyName" placeholder="输入关键词查询"
@focus="searchFocus($event)" @blur="searchBlur($event)" @keydown.native.enter="getCustomerList"
@input="value => searchInput(value)" v-show="hover || searchParam.companyName">
<template slot="suffix">
<transition mode="out-in" appear name="fade">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" alt="" @click.stop="searchParam.companyName = '';getCustomerList()"
v-show="showClearIcon">
</transition>
</template>
</el-input> </el-input>
</div> </div>
</div>
<div class="dc"> <div class="dc">
<div class="total">共{{tableData.total}}条</div> <div class="total">共{{tableData.total}}条</div>
</div> </div>
...@@ -239,6 +252,8 @@ export default { ...@@ -239,6 +252,8 @@ export default {
keys:1, keys:1,
RLcompanyName:'',//重新认领企业名称 RLcompanyName:'',//重新认领企业名称
isSkeleton:true, isSkeleton:true,
showClearIcon: false,
hover: false,
} }
}, },
created() { created() {
...@@ -336,6 +351,28 @@ export default { ...@@ -336,6 +351,28 @@ export default {
this.searchParam.pageNum=val this.searchParam.pageNum=val
this.getCustomerList() this.getCustomerList()
}, },
searchFocus(event) {
const { target } = event;
if (target?.value?.length) {
this.showClearIcon=true
}
},
searchBlur(event) {
this.showClearIcon=false
},
searchInput(value) {
if (value?.length) {
this.showClearIcon=true
}
},
searchHover(event) {
this.hover=true
},
searchUnHover(event, value) {
if (!value) {
this.hover=false
}
},
} }
} }
</script> </script>
...@@ -358,6 +395,81 @@ export default { ...@@ -358,6 +395,81 @@ export default {
padding-top: 16px; padding-top: 16px;
width: 100%; width: 100%;
height: 100%; height: 100%;
.table_search{
::v-deep .normal-search-container {
display: flex;
align-items: center;
line-height: 32px;
height: 32px;
&.is-hover-search {
width: 238px;
background: #f4f6f9;
border-radius: 4px 4px 4px 4px;
& > img {
cursor: unset;
}
}
&:hover {
& > span {
color: #0081ff;
}
}
& > img {
width: 16px;
height: 16px;
margin-left: 12px;
cursor: pointer;
}
& > span {
color: rgba(35, 35, 35, 0.8);
font-weight: 400;
margin-left: 8px;
line-height: 22px;
font-size: 14px;
cursor: pointer;
}
.el-input {
& > .el-input__inner {
border: none;
height: 32px;
line-height: 32px;
caret-color: #0081ff;
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
background: #f4f6f9;
padding-right: 26px;
padding-left: 8px;
&::placeholder {
color: rgba(35, 35, 35, 0.4) !important;
font-size: 14px !important;
line-height: 32px;
}
}
.el-input__suffix {
right: 12px;
display: flex;
align-items: center;
.el-input__suffix-inner {
height: 14px;
width: 14px;
}
img {
cursor: pointer;
vertical-align: unset;
margin-bottom: 14px;
}
}
}
}
}
} }
.box{ .box{
position: relative; position: relative;
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
<script> <script>
import { steerScroll } from '@/assets/js/jskplug'; import { steerScroll } from '@/assets/js/jskplug';
import { dskAccessToken } from '@/api/common'; import { dskAccessToken } from '@/api/common';
import {encodeStr} from "@/assets/js/common.js"
import { getUipIdByCid } from '@/api/macro/macro'
export default { export default {
name: 'Enterprise', name: 'Enterprise',
components: { components: {
...@@ -16,6 +17,7 @@ export default { ...@@ -16,6 +17,7 @@ export default {
}, },
data() { data() {
return { return {
encodeStr,
loading: false, // 是否加载完成-当前页控制 loading: false, // 是否加载完成-当前页控制
iframeTimer: '', // 是否加载中定时器-当前页控制 iframeTimer: '', // 是否加载中定时器-当前页控制
footHeight: 0, //底部高度,若为0(页面内部嵌套或者没有底部板块) footHeight: 0, //底部高度,若为0(页面内部嵌套或者没有底部板块)
...@@ -35,28 +37,45 @@ export default { ...@@ -35,28 +37,45 @@ export default {
this.domain='https://plug.jiansheku.com' this.domain='https://plug.jiansheku.com'
}else { }else {
this.domain='https://pre-plug.jiansheku.com' this.domain='https://pre-plug.jiansheku.com'
this.domain='http://192.168.60.210:3400' // this.domain='http://192.168.60.210:3400'
} }
this.gettokens(); this.gettokens();
}, },
mounted() { mounted() {
this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制 this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制
let that = this window.addEventListener('message', this.linkListener, false);
window.addEventListener('message', function (event) {
if(!event.data.id && event.data.url){
that.$tab.openPage(event.data.title, event.data.url).then(() => {
// 执行结束的逻辑
})
}
}, false);
steerScroll('companyIframe', this.navigation, this.footHeight, true); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略) steerScroll('companyIframe', this.navigation, this.footHeight, true); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
}, },
beforeDestroy() { beforeDestroy() {
clearInterval(this.iframeTimer); // -当前页控制 clearInterval(this.iframeTimer); // -当前页控制
window.removeEventListener("message", this.linkListener);
steerScroll('companyIframe', this.navigation, this.footHeight); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略) steerScroll('companyIframe', this.navigation, this.footHeight); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
clearInterval(this.tokentimer); clearInterval(this.tokentimer);
}, },
methods: { methods: {
linkListener(event){
let {data} = event
if(data.id){
getUipIdByCid([data.id]).then(res=>{
if (res.code==200) {
if(res.data&&res.data.length>0&&res.data[0].uipId){
this.$router.push({path: '/enterprise/'+this.encodeStr(data.id)})
}else{
this.$tab.openPage(data.title, '/company/'+this.encodeStr(data.id))
}
}
}).catch(error=>{
});
}else{
if(data.url){
this.$tab.openPage(data.title, data.url).then(() => {
// 执行结束的逻辑
})
}
}
},
gettokens() { gettokens() {
dskAccessToken().then(res => { dskAccessToken().then(res => {
if (res.code == 200) { if (res.code == 200) {
......
...@@ -438,13 +438,15 @@ export default { ...@@ -438,13 +438,15 @@ export default {
margin-left: 25px; margin-left: 25px;
overflow: hidden; overflow: hidden;
.swiper-slide{ .swiper-slide{
min-width: 242px;
padding: 7px 4px 9px 0;
box-sizing: border-box;
&.swiper-disn{ &.swiper-disn{
display: none; display: none;
} }
>div{ >div{
min-width: 242px; width: 100%;
height: 100%; height: 100%;
padding: 7px 4px 9px 0;
cursor: pointer; cursor: pointer;
align-items: normal; align-items: normal;
.swiper-item{ .swiper-item{
......
...@@ -112,9 +112,10 @@ ...@@ -112,9 +112,10 @@
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item-jf table-item" v-if="!isSkeleton&&tableData.length>0"> <div class="table-item-jf table-item" v-if="!isSkeleton&&tableData.length>0">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'" <el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}"
class="table-item1 fixed-table" border highlight-current-row :header-row-class-name="setHeaderRow" :cell-class-name="setCellClass" v-sticky-header.always="{offsetTop : '56px',offsetBottom : '10px'}" class="table-item1 fixed-table" border highlight-current-row
:row-class-name="setRowClass" :header-cell-class-name="setCellClass" @sort-change="sortChange" ref="theOwnerListTable"> :header-row-class-name="setHeaderRow" :cell-class-name="setCellClass" :row-class-name="setRowClass" :header-cell-class-name="setCellClass"
@sort-change="sortChange" ref="theOwnerListTable">
<el-table-column type="index" label="序号" :fixed="tableColumnFixed" width="60" :resizable="false"> <el-table-column type="index" label="序号" :fixed="tableColumnFixed" width="60" :resizable="false">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -180,7 +181,8 @@ ...@@ -180,7 +181,8 @@
<el-table-column label="历史发包总金额" min-width="120" :resizable="false" :sortable="'custom'" prop="inviteTenderSumAmount"> <el-table-column label="历史发包总金额" min-width="120" :resizable="false" :sortable="'custom'" prop="inviteTenderSumAmount">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="text-align:right;white-space: nowrap;">{{parseFloat(scope.row.inviteTenderSumAmount) ? `${scope.row.inviteTenderSumAmount}万元`:"--"}} <div style="text-align:right;white-space: nowrap;">
{{parseFloat(scope.row.inviteTenderSumAmount) ? `${scope.row.inviteTenderSumAmount}万元`:"--"}}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment