Commit 60b0ffd3 authored by danfuman's avatar danfuman

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 3aadc20f 20997c17
...@@ -54,5 +54,9 @@ public class DCustomerSearchBo { ...@@ -54,5 +54,9 @@ public class DCustomerSearchBo {
* 是否队伍 0:否 1:是 * 是否队伍 0:否 1:是
*/ */
private Integer isTeam; private Integer isTeam;
/**
* 涉诉限用/涉诉禁用
*/
private String badnessState;
} }
...@@ -140,9 +140,8 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C ...@@ -140,9 +140,8 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
Assert.isFalse(fileParseStatus.equals(CbProjectConstants.PROJECT_FILE_STATUS_PARSING), Assert.isFalse(fileParseStatus.equals(CbProjectConstants.PROJECT_FILE_STATUS_PARSING),
"文件正在解析中,不允许删除"); "文件正在解析中,不允许删除");
//解析成功、解析失败的文件需要删除对应的导入数据和每月成本数据 //解析成功的文件需要删除对应的导入数据和每月成本数据
if (fileParseStatus.equals(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS) || if (fileParseStatus.equals(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS)) {
fileParseStatus.equals(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL)) {
switch (deleteBo.getCbType()) { switch (deleteBo.getCbType()) {
case CbProjectConstants.CB_TYPE_DIRECT_EXPENSE: case CbProjectConstants.CB_TYPE_DIRECT_EXPENSE:
//直接费没有每月成本,所以直接删除导入数据即可 //直接费没有每月成本,所以直接删除导入数据即可
......
...@@ -164,6 +164,15 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -164,6 +164,15 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
* @param cbTypeName 成本类型名称 * @param cbTypeName 成本类型名称
*/ */
private List<CbProjectFile> checkCbTypeExistFile(Long projectId, Integer cbType, String cbTypeName) { private List<CbProjectFile> checkCbTypeExistFile(Long projectId, Integer cbType, String cbTypeName) {
//如果当前成本类型下已存在解析成功的文件,则跳过校验
if (!projectFileMapper.selectList(new LambdaQueryWrapper<CbProjectFile>()
.eq(CbProjectFile::getProjectId, projectId)
.eq(CbProjectFile::getCbType, cbType)
//项目文件状态:准备中or解析失败
.eq(CbProjectFile::getFileParseStatus, CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS)).isEmpty()) {
return new ArrayList<>();
}
List<CbProjectFile> projectFileList = projectFileMapper.selectList(new LambdaQueryWrapper<CbProjectFile>() List<CbProjectFile> projectFileList = projectFileMapper.selectList(new LambdaQueryWrapper<CbProjectFile>()
.eq(CbProjectFile::getProjectId, projectId) .eq(CbProjectFile::getProjectId, projectId)
.eq(CbProjectFile::getCbType, cbType) .eq(CbProjectFile::getCbType, cbType)
......
...@@ -387,7 +387,7 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -387,7 +387,7 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
List<CbSummaryActualListVo> list = new ArrayList<>(); List<CbSummaryActualListVo> list = new ArrayList<>();
//当前父级数据 //当前父级数据
CbSummaryActualListVo cbSummaryActualListVo = baseMapper.getById(bo.getId(), bo.getExpenseDate()); CbSummaryActualListVo cbSummaryActualListVo = baseMapper.getById(bo.getId(), bo.getExpenseDate());
if (ObjectUtil.isEmpty(cbSummaryActualListVo)) { if (ObjectUtil.isEmpty(cbSummaryActualListVo) || null == cbSummaryActualListVo.getId()) {
return new ArrayList<>(); return new ArrayList<>();
} }
// //截至本月费用汇总 // //截至本月费用汇总
......
...@@ -77,6 +77,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -77,6 +77,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
PageQuery query = new PageQuery(); PageQuery query = new PageQuery();
List<DCustomerListVo> records = baseMapper.allSearchList(query.build(), bo).getRecords(); List<DCustomerListVo> records = baseMapper.allSearchList(query.build(), bo).getRecords();
if (CollectionUtils.isNotEmpty(records)) { if (CollectionUtils.isNotEmpty(records)) {
for (int i = 0; i < records.size(); i++) records.get(i).setNum(i);
records.parallelStream().forEach(item -> { records.parallelStream().forEach(item -> {
DCustomerListVo vo = subcontractMapper.selectStatisticByCustomerId(item.getCustomerId()); DCustomerListVo vo = subcontractMapper.selectStatisticByCustomerId(item.getCustomerId());
//企业合作数量 //企业合作数量
......
...@@ -21,9 +21,7 @@ import org.apache.commons.collections4.MapUtils; ...@@ -21,9 +21,7 @@ import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
/** /**
* 供应商限制信息表(FSupplierLimited)表服务实现类 * 供应商限制信息表(FSupplierLimited)表服务实现类
...@@ -136,5 +134,7 @@ public class FSupplierLimitedServiceImpl extends ServiceImpl<FSupplierLimitedMap ...@@ -136,5 +134,7 @@ public class FSupplierLimitedServiceImpl extends ServiceImpl<FSupplierLimitedMap
} }
} }
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
} }
...@@ -272,8 +272,10 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -272,8 +272,10 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
return baseMapper.exists(new LambdaQueryWrapper<DProject>() return baseMapper.exists(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectCode, projectCode)); .eq(DProject::getProjectCode, projectCode));
} else { } else {
//修改项目信息or新增新阶段项目时
CbProjectRecord projectRecord = projectRecordMapper.selectById(projectId); CbProjectRecord projectRecord = projectRecordMapper.selectById(projectId);
//未做任何改动时
Assert.isFalse(projectCode.equals(projectRecord.getIpmProjectNo()), "新编码与旧编码相同");
//修改项目信息or新增新阶段项目时
if (projectCode.equals(projectRecord.getIpmProjectNo()) if (projectCode.equals(projectRecord.getIpmProjectNo())
&& projectRecord.getIsGetProjectDetail()) { && projectRecord.getIsGetProjectDetail()) {
return true; return true;
......
...@@ -6,64 +6,66 @@ ...@@ -6,64 +6,66 @@
<select id="allSearchList" resultType="com.dsk.cscec.domain.vo.DCustomerListVo"> <select id="allSearchList" resultType="com.dsk.cscec.domain.vo.DCustomerListVo">
select select
@row_number:=@row_number + 1 AS num, dc.customer_key, dc.customer_id, dc.customer_code, dc.customer_name, dc.recommend_org, dc.register_region, dc.register_province, dc.register_city, dc.customer_class, dc.primary_business,
customer_key, customer_id, customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business, dc.paytax_type, dc.tax_rate, dc.customer_state, dc.leader_name, dc.labor_captain_phone, dc.labor_captain_idcard, dc.service_team_personnum, dc.service_team_speciality,
paytax_type, tax_rate, customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality, dc.construct_job_scope, dc.credential, dc.register_capital, dc.contact_person, dc.contact_phone, dc.approve_date2, dc.credit_level, dc.group_specialty, fsl.fstate badnessState
construct_job_scope, credential, register_capital, contact_person, contact_phone, approve_date2, credit_level, group_specialty from d_customer dc
from d_customer , (SELECT @row_number:=0) AS t left join f_supplier_limited fsl on (fsl.flaowufbid = dc.customer_id
where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475' or fsl.fzhuanyefbid = dc.customer_id or fsl.ffgid = dc.customer_id or fsl.fzlid = dc.customer_id)
<if test="bo.customerName != null and bo.customerName != '' "> and customer_name like concat('%',#{bo.customerName},'%')</if> where dc.recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
<if test="bo.customerName != null and bo.customerName != '' "> and dc.customer_name like concat('%',#{bo.customerName},'%')</if>
<if test="bo.province != null and bo.province.size > 0 and (bo.city == null or bo.city.size == 0) "> <if test="bo.province != null and bo.province.size > 0 and (bo.city == null or bo.city.size == 0) ">
and register_province in and dc.register_province in
<foreach collection="bo.province" item="item" open="(" separator="," close=")"> <foreach collection="bo.province" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="bo.city != null and bo.city.size > 0 and (bo.province == null or bo.province.size == 0) "> <if test="bo.city != null and bo.city.size > 0 and (bo.province == null or bo.province.size == 0) ">
and register_city in and dc.register_city in
<foreach collection="bo.city" item="item" open="(" separator="," close=")"> <foreach collection="bo.city" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="bo.province != null and bo.province.size > 0 and bo.city != null and bo.city.size > 0 " > <if test="bo.province != null and bo.province.size > 0 and bo.city != null and bo.city.size > 0 " >
and ( register_province in and ( dc.register_province in
<foreach collection="bo.province" item="item" open="(" separator="," close=")"> <foreach collection="bo.province" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
or register_city in or dc.register_city in
<foreach collection="bo.city" item="item" open="(" separator="," close=")"> <foreach collection="bo.city" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
) )
</if> </if>
<if test="bo.customerClass != null and bo.customerClass.size > 0 "> <if test="bo.customerClass != null and bo.customerClass.size > 0 ">
and customer_class in and dc.customer_class in
<foreach collection="bo.customerClass" item="item" open="(" separator="," close=")"> <foreach collection="bo.customerClass" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="bo.customerState != null and bo.customerState.size > 0 "> <if test="bo.customerState != null and bo.customerState.size > 0 ">
and customer_state in and dc.customer_state in
<foreach collection="bo.customerState" item="item" open="(" separator="," close=")"> <foreach collection="bo.customerState" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="bo.creditLevel != null and bo.creditLevel.size > 0 "> <if test="bo.creditLevel != null and bo.creditLevel.size > 0 ">
and credit_level in and dc.credit_level in
<foreach collection="bo.creditLevel" item="item" open="(" separator="," close=")"> <foreach collection="bo.creditLevel" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="bo.credential != null and bo.credential.size > 0 "> <if test="bo.credential != null and bo.credential.size > 0 ">
and credential in and dc.credential in
<foreach collection="bo.credential" item="item" open="(" separator="," close=")"> <foreach collection="bo.credential" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="bo.approveDateBegion != null and bo.approveDateBegion != '' ">and approve_date2 &gt;= #{bo.approveDateBegion}</if> <if test="bo.approveDateBegion != null and bo.approveDateBegion != '' ">and dc.approve_date2 &gt;= #{bo.approveDateBegion}</if>
<if test="bo.approveDateEnd != null and bo.approveDateEnd != '' ">and approve_date2 &lt;= #{bo.approveDateEnd} </if> <if test="bo.approveDateEnd != null and bo.approveDateEnd != '' ">and dc.approve_date2 &lt;= #{bo.approveDateEnd} </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 1">not</if> null </if> <if test="bo.isTeam != null"> and dc.leader_name is <if test="bo.isTeam == 1">not</if> null </if>
order by approve_date2 desc <if test="bo.badnessState != null and bo.badnessState != ''"> and fsl.fstate = #{bo.badnessState} </if>
order by dc.approve_date2 desc
</select> </select>
<sql id="allColumn"> <sql id="allColumn">
......
<template> <template>
<div class="custom-table-list-com-ins" <div class="custom-table-list-com-ins"
:class="{'is-empty-table' : !tableDataTotal,'no-pagination' : !hasQueryParams,'auto-max-height' : maxHeight,'has-y-Scroll' : maxHeight && hasYScroll}" :class="{'is-empty-table' : !tableDataTotal,'no-pagination' : !hasQueryParams,'auto-max-height' : maxHeight,'has-y-scroll' : maxHeight && hasYScroll,'has-x-scroll' : maxHeight && hasXScroll}"
:style="maxBodyFixedStyle"> :style="maxBodyFixedStyle">
<div class="custom-table-item"> <div class="custom-table-item">
<el-table v-if="tableDataTotal>0" class="custom-table" v-loading="comTableLoading" :data="tableData" element-loading-text="加载中" <el-table v-if="tableDataTotal>0" class="custom-table" v-loading="comTableLoading" :data="tableData" element-loading-text="加载中"
...@@ -160,6 +160,7 @@ export default { ...@@ -160,6 +160,7 @@ export default {
comMaxBodyHeight: 0, comMaxBodyHeight: 0,
headerLastBlockHeight: 0, headerLastBlockHeight: 0,
hasYScroll: false, hasYScroll: false,
hasXScroll: false,
observer: null, observer: null,
resizeTimer: null, resizeTimer: null,
comTableLoading: this.tableLoading comTableLoading: this.tableLoading
...@@ -245,27 +246,32 @@ export default { ...@@ -245,27 +246,32 @@ export default {
} }
// 列表自适应高度 // 列表自适应高度
this.comMaxHeight = containerMaxHeight ? `${containerMaxHeight}px` : null; this.comMaxHeight = containerMaxHeight ? `${containerMaxHeight}px` : null;
// 重新计算表格高度 减去滚动条高度差 16 - 6 有固定列的情况 // 重新计算表格高度 有横向滚动条则需要减去滚动条高度差 16 - 6 有固定列的情况
if (containerMaxHeight) { if (containerMaxHeight) {
/** /**
* @type {HTMLDivElement} * @type {HTMLDivElement}
*/ */
const tableRightHeader = this.$el.querySelector(".el-table__fixed-header-wrapper"); const tableFixedHeader = this.$el.querySelector(".el-table__fixed-header-wrapper");
if (tableRightHeader) { if (tableFixedHeader) {
const headerHeight = parseInt(window.getComputedStyle(tableRightHeader).height); const headerHeight = parseInt(window.getComputedStyle(tableFixedHeader).height);
// 未自适应下 正常表主体
const defaultTableBody = this.$el.querySelector(".el-table__body-wrapper");
// 是否有横向滚动条
const _hasXScroll = defaultTableBody.clientWidth >= defaultTableBody.scrollWidth ? false : true;
//原滚动条高度为6px 差 10px //原滚动条高度为6px 差 10px
const bodyMaxHeight = containerMaxHeight - headerHeight - 16; const bodyMaxHeight = containerMaxHeight - headerHeight - (_hasXScroll ? 16 : 0);
// console.log(bodyMaxHeight, "bodyMaxHeight"); // console.log(bodyMaxHeight, "bodyMaxHeight");
this.comMaxBodyHeight = bodyMaxHeight; this.comMaxBodyHeight = bodyMaxHeight;
// 表体 判断是否有竖向滚动条 容器 bodyMaxHeight 整体 最大高度大于 内部列表高度 则没有滚动条 // 表体 判断是否有 横竖向滚动条 容器 bodyMaxHeight 整体 最大高度宽度大于 内部列表高度宽度 则没有滚动条
const fixedTableBody = this.$el.querySelector(".el-table__fixed-body-wrapper"); const fixedTableBody = this.$el.querySelector(".el-table__fixed-body-wrapper");
// dom更新后 重新比较 高度 // dom更新后 重新比较 高度
await this.$nextTick(); await this.$nextTick();
// 拿到 固定列表体实际高度 包含滚动高度 // 拿到 固定列表体实际高度 包含滚动高度
const fixedBodyHeight = fixedTableBody.scrollHeight; const fixedBodyHeight = fixedTableBody.scrollHeight;
// console.log(bodyMaxHeight,"bodyMaxHeight"); // console.log(bodyMaxHeight,"bodyMaxHeight");
// console.log(parseFloat(fixedBodyHeight),"fixedBodyHeight"); // console.log(parseFloat(fixedBodyHeight),"fixedBodyHeight");
this.hasYScroll = bodyMaxHeight >= parseFloat(fixedBodyHeight) ? false : true; this.hasYScroll = bodyMaxHeight >= parseFloat(fixedBodyHeight) ? false : true;
this.hasXScroll = _hasXScroll;
} else { } else {
// 没有固定列 正常情况下 计算默认header高度 // 没有固定列 正常情况下 计算默认header高度
const defaultHeader = this.$el.querySelector(".el-table__header-wrapper"); const defaultHeader = this.$el.querySelector(".el-table__header-wrapper");
...@@ -278,6 +284,9 @@ export default { ...@@ -278,6 +284,9 @@ export default {
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
},
getsSimulateScrollBar() {
}, },
pagingHandler(hasQueryParams, queryParams, scope) { pagingHandler(hasQueryParams, queryParams, scope) {
// 有分页参数 // 有分页参数
...@@ -355,10 +364,10 @@ export default { ...@@ -355,10 +364,10 @@ export default {
} }
// 自动适配下 减去滚动条高度 // 自动适配下 减去滚动条高度
.el-table__fixed { .el-table__fixed {
height: calc(100% - 15px) !important; height: calc(100%) !important;
} }
.el-table__fixed-right { .el-table__fixed-right {
height: calc(100% - 15px) !important; height: calc(100%) !important;
} }
// 重新计算隐藏列表高度 减去滚动条16px高度 // 重新计算隐藏列表高度 减去滚动条16px高度
...@@ -369,7 +378,7 @@ export default { ...@@ -369,7 +378,7 @@ export default {
} }
// 是否存在Y轴滚动条 // 是否存在Y轴滚动条
&.has-y-Scroll { &.has-y-scroll {
::v-deep .custom-table-item { ::v-deep .custom-table-item {
.el-table { .el-table {
/* 右侧fixed列 */ /* 右侧fixed列 */
...@@ -382,6 +391,20 @@ export default { ...@@ -382,6 +391,20 @@ export default {
} }
} }
} }
// 是否存在X轴滚动条
&.has-x-scroll {
::v-deep .custom-table-item {
.el-table {
.el-table__fixed {
height: calc(100% - 15px) !important;
}
.el-table__fixed-right {
height: calc(100% - 15px) !important;
}
}
}
}
} }
/* 不需要分页 或没有分页参数 */ /* 不需要分页 或没有分页参数 */
...@@ -453,6 +476,14 @@ export default { ...@@ -453,6 +476,14 @@ export default {
font-size: 14px; font-size: 14px;
color: #232323; color: #232323;
.el-table-column--selection {
.cell {
display: flex;
align-items: center;
justify-content: center;
}
}
.cell { .cell {
padding-right: 12px; padding-right: 12px;
padding-left: 12px; padding-left: 12px;
......
...@@ -28,10 +28,14 @@ ...@@ -28,10 +28,14 @@
</div> </div>
<!-- 锁定成本 导出excel 编辑成本 --> <!-- 锁定成本 导出excel 编辑成本 -->
<div class="project-table-list-haeder-right"> <div class="project-table-list-haeder-right">
<div class="lock-cost-btn" :class="{ 'current-month-lock': currentMonthLock }" @click="!currentMonthLock ? lockCostHandler() : ''">锁定成本 <div class="lock-cost-btn" :class="{ 'current-month-lock': currentMonthLock || !hasMenuData }"
@click="!currentMonthLock && hasMenuData ? lockCostHandler() : ''">锁定成本
</div> </div>
<div class="export-excel-btn" @click="exportExcel">导出Excel表</div> <div class="export-excel-btn" :class="{'btn-is-disable' : !hasMenuData}" @click="!hasMenuData ? '' : exportExcel()">
<div class="edit-cost-btn" @click="addActualCostEditStatus ? saveCostModify() : editCost()">{{ addActualCostEditStatus ? "保存成本" : "编辑成本" }} 导出Excel表</div>
<div class="edit-cost-btn" :class="{'btn-is-disable' : !hasMenuData}"
@click="hasMenuData ? (addActualCostEditStatus ? saveCostModify() : editCost()) : ''">
{{ addActualCostEditStatus ? "保存成本" : "编辑成本" }}
</div> </div>
</div> </div>
</div> </div>
...@@ -167,8 +171,8 @@ export default { ...@@ -167,8 +171,8 @@ export default {
total: 0, total: 0,
// 列表表头 // 列表表头
formColum: [ formColum: [
{ label: '序号', prop: "number", minWidth: "80", uid: v4() }, { label: '序号', prop: "number", minWidth: "80", uid: v4(), fixed: "left" },
{ label: '名称', prop: "cbName", width: "303", uid: v4(), showOverflowTooltip: true }, { label: '名称', prop: "cbName", width: "303", uid: v4(), showOverflowTooltip: true, fixed: "left" },
{ label: '不含税成本合价', prop: "taxExclusiveTotal", width: "182", uid: v4() }, { label: '不含税成本合价', prop: "taxExclusiveTotal", width: "182", uid: v4() },
{ label: '成本税金合价', prop: "cbTaxesTotal", width: "182", uid: v4() }, { label: '成本税金合价', prop: "cbTaxesTotal", width: "182", uid: v4() },
{ label: '含税成本合价', prop: "taxInclusiveTotal", width: "182", uid: v4() }, { label: '含税成本合价', prop: "taxInclusiveTotal", width: "182", uid: v4() },
...@@ -232,6 +236,10 @@ export default { ...@@ -232,6 +236,10 @@ export default {
// 查看当前月是否是锁定状态 lock为true 不能锁定 反之可以 // 查看当前月是否是锁定状态 lock为true 不能锁定 反之可以
currentMonthLock() { currentMonthLock() {
return this.lockMonthList.includes(this.expenseDate); return this.lockMonthList.includes(this.expenseDate);
},
// 是否有科目菜单
hasMenuData() {
return this.menuTreeList.length ? true : false;
} }
}, },
//方法集 //方法集
...@@ -261,8 +269,18 @@ export default { ...@@ -261,8 +269,18 @@ export default {
this.currentCategory = category; this.currentCategory = category;
this.resetEditStatus(); this.resetEditStatus();
this.tableLoading = true; this.tableLoading = true;
this.resetTableData();
this.init(this.comProjectDetailInfo); this.init(this.comProjectDetailInfo);
}, },
resetTableData() {
this.$set(this.dataForm, "tableDataList", []);
const data = this.$options.data.call(this);
this.originTableDataList = data.originTableDataList;
this.total = 0;
this.monthList = data.monthList;
this.originMonthList = data.originMonthList;
this.disableMonths = data.disableMonths;
},
async init(detail = {}, resetDate = "", saveReset = false) { async init(detail = {}, resetDate = "", saveReset = false) {
try { try {
this.resetEditStatus(saveReset); this.resetEditStatus(saveReset);
...@@ -314,9 +332,10 @@ export default { ...@@ -314,9 +332,10 @@ export default {
if (item[targetName] == nodeValue) return item; if (item[targetName] == nodeValue) return item;
if (item.children instanceof Array) { if (item.children instanceof Array) {
const result = this.findMenuNode(item.children, nodeValue, targetName); const result = this.findMenuNode(item.children, nodeValue, targetName);
if (result) return result; return result;
} }
} }
return null;
}, },
// 创建查询条件 // 创建查询条件
createRequestConditions(resetDate = "") { createRequestConditions(resetDate = "") {
...@@ -346,7 +365,7 @@ export default { ...@@ -346,7 +365,7 @@ export default {
cbName: this.currentCategory == 1 ? "成本汇总" : "房建类成本科目", cbName: this.currentCategory == 1 ? "成本汇总" : "房建类成本科目",
children: _tempArray children: _tempArray
}; };
this.menuTreeList = [_tempMenu]; this.menuTreeList = _tempArray.length ? [_tempMenu] : [];
} }
} catch (error) { } catch (error) {
...@@ -759,8 +778,8 @@ export default { ...@@ -759,8 +778,8 @@ export default {
// 浅层级 // 浅层级
if (hasDifferent) { if (hasDifferent) {
tempArray.push({ tempArray.push({
id: item.id, id: item.actualId,
cbSummaryId: this.currentNodeValue, cbSummaryId: item.id,
taxInclusiveExpense: item.taxInclusiveExpense ? item.taxInclusiveExpense : 0, taxInclusiveExpense: item.taxInclusiveExpense ? item.taxInclusiveExpense : 0,
taxExclusiveExpense: item.taxExclusiveExpense ? item.taxExclusiveExpense : 0, taxExclusiveExpense: item.taxExclusiveExpense ? item.taxExclusiveExpense : 0,
expenseDate: this.expenseDate expenseDate: this.expenseDate
...@@ -928,7 +947,6 @@ export default { ...@@ -928,7 +947,6 @@ export default {
} }
.lock-cost-btn { .lock-cost-btn {
/* 当前月锁定 */ /* 当前月锁定 */
&.current-month-lock { &.current-month-lock {
cursor: not-allowed; cursor: not-allowed;
...@@ -939,6 +957,14 @@ export default { ...@@ -939,6 +957,14 @@ export default {
.edit-cost-btn { .edit-cost-btn {
margin-right: 0px; margin-right: 0px;
} }
.edit-cost-btn,
.export-excel-btn {
&.btn-is-disable {
cursor: not-allowed;
background: #66b3ff;
}
}
} }
} }
......
...@@ -13,15 +13,15 @@ ...@@ -13,15 +13,15 @@
<el-input v-model="pushForm.pushQuantities" @input="pushQuantitiesIpt" placeholder="请填写需推送工程量"></el-input> <el-input v-model="pushForm.pushQuantities" @input="pushQuantitiesIpt" placeholder="请填写需推送工程量"></el-input>
</el-form-item> </el-form-item>
<!-- ipm项目编码 --> <!-- ipm项目编码 -->
<el-form-item label="IPM项目编码"> <el-form-item label="IPM项目编码" prop="ipmProjectCode">
<el-input v-model="pushForm.ipmProjectCode" placeholder="请输入IPM项目编码"></el-input> <el-input v-model="pushForm.ipmProjectCode" placeholder="请输入IPM项目编码"></el-input>
</el-form-item> </el-form-item>
<!-- ipm合同编码 --> <!-- ipm合同编码 -->
<el-form-item label="IPM合同编码"> <el-form-item label="IPM合同编码" prop="ipmContractCode">
<el-input v-model="pushForm.ipmContractCode" placeholder="请输入IPM合同编码"></el-input> <el-input v-model="pushForm.ipmContractCode" placeholder="请输入IPM合同编码"></el-input>
</el-form-item> </el-form-item>
<!-- ipm作业编码 --> <!-- ipm作业编码 -->
<el-form-item label="IPM作业编码"> <el-form-item label="IPM作业编码" prop="ipmBizCode">
<el-input v-model="pushForm.ipmBizCode" placeholder="请输入IPM作业编码"></el-input> <el-input v-model="pushForm.ipmBizCode" placeholder="请输入IPM作业编码"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<!-- 底部按钮 --> <!-- 底部按钮 -->
<div class="dialog-footer-content"> <div class="dialog-footer-content">
<div class="footer-btn cancel-submit" @click="cancelSubmit">取消</div> <div class="footer-btn cancel-submit" @click="cancelSubmit">取消</div>
<div class="footer-btn ok-submit">确定推送</div> <div class="footer-btn ok-submit" @click="pushResult">确定推送</div>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -87,7 +87,17 @@ export default { ...@@ -87,7 +87,17 @@ export default {
ipmContractCode: "", ipmContractCode: "",
ipmBizCode: "", ipmBizCode: "",
}, },
rules: {} rules: {
ipmProjectCode: [
{ required: true, trigger: ["blur", "change"], message: "请输入IPM项目编码", whitespace: true }
],
ipmContractCode: [
{ required: true, trigger: ["blur", "change"], message: "请输入IPM合同编码", whitespace: true }
],
ipmBizCode: [
{ required: true, trigger: ["blur", "change"], message: "请输入IPM作业编码", whitespace: true }
]
}
}; };
}, },
//可访问data属性 //可访问data属性
...@@ -133,6 +143,21 @@ export default { ...@@ -133,6 +143,21 @@ export default {
}, },
cancelSubmit() { cancelSubmit() {
this.comPushProjectUseDialog = false; this.comPushProjectUseDialog = false;
},
//推送工程量
pushResult() {
this.$refs["pushForm"].validate(flag => {
if (flag) {
const { id, pushQuantities, ipmProjectCode, ipmContractCode, ipmBizCode } = cloneDeep(this.pushForm);
this.$emit("submitPushData", {
id,
pushQuantities,
ipmProjectCode,
ipmContractCode,
ipmBizCode
});
}
});
} }
}, },
} }
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<template slot="action-field-bar" slot-scope="scope"> <template slot="action-field-bar" slot-scope="scope">
<div class="project-action-field-bar"> <div class="project-action-field-bar">
<span class="push-project-use" :class="{'is-emty-quantities' : !parseFloat(scope.row.quantities)}" <span class="push-project-use" :class="{'is-emty-quantities' : !parseFloat(scope.row.quantities)}"
@click="parseFloat(scope.row.quantities) ? pushProjectUse(scope.row) : ''">推送物资用量</span> @click="parseFloat(scope.row.quantities) ? pushProjectUse(scope.row) : ''">推送物资</span>
</div> </div>
</template> </template>
</entity-materials-table> </entity-materials-table>
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
<!-- 推送工程量 , 推送物资 --> <!-- 推送工程量 , 推送物资 -->
<push-project-use-dialog v-model="pushProjectUseDialog" :is-entity-materials="isEntityMaterials" :row-data="pushProjectUseTemp" <push-project-use-dialog v-model="pushProjectUseDialog" :is-entity-materials="isEntityMaterials" :row-data="pushProjectUseTemp"
@dialogClose="dialogClose"></push-project-use-dialog> @dialogClose="dialogClose" @submitPushData="submitPushData"></push-project-use-dialog>
<!-- 单位换算弹窗 --> <!-- 单位换算弹窗 -->
<unit-conversion v-if="showUnitConversion" :isVisible="showUnitConversion" :dataList="unitConversionList" <unit-conversion v-if="showUnitConversion" :isVisible="showUnitConversion" :dataList="unitConversionList"
...@@ -196,7 +196,7 @@ export default { ...@@ -196,7 +196,7 @@ export default {
// 列表表头 // 列表表头
formColum: [ formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, width: "53", fixed: false, uid: v4() }, { label: '序号', prop: "staticSerialNumber", type: "index", lock: true, width: "53", fixed: false, uid: v4() },
{ label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4(), slot: true }, { label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4() },
{ label: '公司编码', prop: "companyNo", width: "137", uid: v4() }, { label: '公司编码', prop: "companyNo", width: "137", uid: v4() },
{ label: '集团编码', prop: "orgNo", width: "137", uid: v4() }, { label: '集团编码', prop: "orgNo", width: "137", uid: v4() },
{ label: '名称', prop: "cbName", width: "232", uid: v4() }, { label: '名称', prop: "cbName", width: "232", uid: v4() },
...@@ -230,8 +230,38 @@ export default { ...@@ -230,8 +230,38 @@ export default {
], ],
// 实体工程材料表头 // 实体工程材料表头
entityMaterialsFormColum: [ entityMaterialsFormColum: [
{ label: '多选', prop: "staticSerialNumber", type: "selection", lock: true, width: "53", fixed: false, uid: v4() }, { label: '多选', prop: "staticSerialNumber", type: "selection", lock: true, width: "53", fixed: "left", uid: v4() },
{ label: '操作', prop: "action-field-bar", width: "99", uid: v4(), fixed: "right" }, { label: '序号', prop: "staticIndexNumber", type: "index", lock: true, width: "53", fixed: "left", uid: v4() },
{ label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4() },
{ label: '公司编码', prop: "companyNo", width: "137", uid: v4() },
{ label: '集团编码', prop: "orgNo", width: "137", uid: v4() },
{ label: '名称', prop: "cbName", width: "232", uid: v4() },
{ label: '工作内容', prop: "jobContent", width: "341", uid: v4() },
{ label: '计算规则', prop: "calculationRule", width: "137", uid: v4() },
{ label: '单位', prop: "unit", width: "57", uid: v4() },
{ label: '甲供材料说明', prop: "materialDescription", width: "137", uid: v4() },
{
label: '计划成本', prop: "jhcb", align: "center", uid: v4(), children: [
{ label: '指导价格', prop: "guidePrice", minWidth: "81", uid: v4() },
{ label: '投标选用单价(不含税)', prop: "bidUnitPrice", minWidth: "179", uid: v4() },
{ label: '单价差额', prop: "unitPriceDifference", minWidth: "81", uid: v4() },
{ label: '数量', prop: "quantity", minWidth: "150", uid: v4() },
{ label: '合价(不含税)', prop: "combinedPrice", minWidth: "150", uid: v4() },
{ label: '合价(含税)', prop: "combinedPriceTax", minWidth: "150", uid: v4() },
{ label: '品牌名称', prop: "brandName", minWidth: "81", uid: v4() },
{ label: '投标选用来源', prop: "bidSource", minWidth: "109", uid: v4() },
]
},
{
label: '实际成本', prop: "sjcb", align: "center", uid: v4(), children: [
{ label: '物料验收系统本月总量', prop: "quantities", minWidth: "180", uid: v4(), slot: true },
{ label: '换算后本月总量', prop: "conversionQuantities", minWidth: "160", uid: v4(), slot: true },
{ label: '截至本月总用量', prop: "totalQuantities", minWidth: "160", uid: v4(), slot: true },
{ label: '剩余物料', prop: "sss", minWidth: "160", uid: v4(), slot: true },
{ label: '填写时间', prop: "createTime", minWidth: "160", uid: v4(), slot: true },
]
},
{ label: '操作', prop: "action-field-bar", width: "120", uid: v4(), fixed: "right" },
], ],
// 已记录月份集合 // 已记录月份集合
monthList: [], monthList: [],
...@@ -488,23 +518,10 @@ export default { ...@@ -488,23 +518,10 @@ export default {
if (parentName) this.currentParentName = parentName; if (parentName) this.currentParentName = parentName;
this.resetTableData(); this.resetTableData();
// 实体工程材料 // 实体工程材料
const params = this.createRequestConditions(this.recordDate);
await this.getFeedSummaryList(params);
if (this.isEntityMaterials) { if (this.isEntityMaterials) {
const { projectId, cbStage } = this.comProjectDetailInfo;
const params = {
projectId,
cbStage
};
params["cbSubjectName"] = this.currentNodeName;
// 判断当月是否存在于server返回month集合中
const _now = this.getNowMonth();
if (this.includeNowMonth(_now)) {
params["recordDate"] = _now;
}
this.getFeedSummaryConversionNotice(params); this.getFeedSummaryConversionNotice(params);
} else {
// 非实体工程材料 获取数据
const params = this.createRequestConditions(this.recordDate);
this.getFeedSummaryList(params);
} }
}, },
async getFeedSummaryConversionNotice(params) { async getFeedSummaryConversionNotice(params) {
...@@ -674,15 +691,15 @@ export default { ...@@ -674,15 +691,15 @@ export default {
}, },
// 推送工程用量 // 推送工程用量
pushProjectUse(row) { pushProjectUse(row) {
if (!row.id) return; if (!row.actualId) return;
// 打开推送推送弹窗 // 打开推送推送弹窗
const _temp = { const _temp = {
...this.pushProjectUseTemp, ...{ ...this.pushProjectUseTemp, ...{
id: row.id, id: row.actualId,
projectName: this.projectDetailInfo.projectName, projectName: this.projectDetailInfo.projectName,
totalQuantities: row.totalQuantities, totalQuantities: row.totalQuantities,
pushQuantities: "", pushQuantities: "",
ipmProjectCode: "", ipmProjectCode: this.projectDetailInfo.ipmProjectNo,
ipmContractCode: "", ipmContractCode: "",
ipmBizCode: "" ipmBizCode: ""
} }
...@@ -694,6 +711,14 @@ export default { ...@@ -694,6 +711,14 @@ export default {
dialogClose() { dialogClose() {
this.pushProjectUseTemp = this.$options.data.call(this).pushProjectUseTemp; this.pushProjectUseTemp = this.$options.data.call(this).pushProjectUseTemp;
}, },
// 确定推送
async submitPushData(pushForm) {
try {
const result = await pushFeedSummaryRowsApi(pushForm);
} catch (error) {
}
},
differentCompare() { differentCompare() {
const originData = this.originTableDataList; const originData = this.originTableDataList;
/** /**
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="field-expenses-container"> <div class="field-expenses-container">
<div class="field-expenses-inner"> <div class="field-expenses-inner">
<div class="left-side-menu"> <div class="left-side-menu">
<project-side-menu ref="projectSideMenu" :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" <project-side-menu ref="projectSideMenu" :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" v-model="currentNodeValue"
v-model="currentNodeValue" @select="menuSelect"> @select="menuSelect">
<template slot="现场经费-1"> <template slot="现场经费-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_6.svg" alt=""> <img src="@/assets/images/projectCostLedger/icon_cost_detail_6.svg" alt="">
<div class="project-sub-menu-title-text">现场经费</div> <div class="project-sub-menu-title-text">现场经费</div>
...@@ -174,7 +174,10 @@ export default { ...@@ -174,7 +174,10 @@ export default {
}, },
//计算集 //计算集
computed: { computed: {
// 是否是现场经费
isDefaultSumMenu() {
return this.currentNodeName == "现场经费";
}
}, },
//方法集 //方法集
methods: { methods: {
...@@ -203,12 +206,13 @@ export default { ...@@ -203,12 +206,13 @@ export default {
try { try {
await this.$nextTick(); await this.$nextTick();
const menus = this.$refs["projectSideMenu"].getResultMenuList(); const menus = this.$refs["projectSideMenu"].getResultMenuList();
const defaultCurrent = this.findMenuNode(menus, "现场经费"); const first = this.$refs["projectSideMenu"].getFirstLevelWithDeepId();
const defaultCurrent = this.findMenuNode(menus, "现场经费") ? this.findMenuNode(menus, "现场经费") : this.findMenuNode(menus, first, "nodeValue");
if (defaultCurrent) { if (defaultCurrent) {
this.currentNodeValue = defaultCurrent.nodeValue; this.currentNodeValue = defaultCurrent.nodeValue;
this.currentNodeName = defaultCurrent.nodeName; this.currentNodeName = defaultCurrent.nodeName;
const params = this.createRequestConditions(); const params = this.createRequestConditions();
await this.getFieldExpensesList(params); this.isDefaultSumMenu ? await this.getFieldExpensesList(params) : await this.getFieldExpensesOtherList(params);
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error);
...@@ -223,7 +227,7 @@ export default { ...@@ -223,7 +227,7 @@ export default {
projectId, projectId,
cbStage cbStage
}; };
params["cbSubjectName"] = this.currentNodeValue; params["fileId"] = this.currentNodeValue;
// 判断当月是否存在于server返回month集合中 // 判断当月是否存在于server返回month集合中
const _now = this.getNowMonth(); const _now = this.getNowMonth();
if (this.includeNowMonth(_now)) { if (this.includeNowMonth(_now)) {
...@@ -243,6 +247,7 @@ export default { ...@@ -243,6 +247,7 @@ export default {
if (result) return result; if (result) return result;
} }
} }
return null;
}, },
async getFieldExpensesList(params = {}) { async getFieldExpensesList(params = {}) {
try { try {
...@@ -354,12 +359,8 @@ export default { ...@@ -354,12 +359,8 @@ export default {
const menuName = currentTemp.nodeName; const menuName = currentTemp.nodeName;
this.currentNodeName = menuName; this.currentNodeName = menuName;
// 请求数据列表 // 请求数据列表
const isDefault = menuName == "现场经费"; const params = this.createRequestConditions();
const params = isDefault ? this.createRequestConditions() : { if (this.isDefaultSumMenu) {
projectId: this.comProjectDetailInfo.projectId,
fileId: currentId
};
if (isDefault) {
this.getFieldExpensesList(params); this.getFieldExpensesList(params);
} else { } else {
this.getFieldExpensesOtherList(params); this.getFieldExpensesOtherList(params);
......
<template> <template>
<div class="project-side-menu-container"> <div class="project-side-menu-container">
<el-menu mode="vertical" class="project-side-menu-instance" :unique-opened="uniqueOpened" :default-active="createMenuIndex(comDefaultActive)" <transition name="fade" :appear="true" mode="out-in">
:default-openeds="comDefaultOpeneds" @select="menuSelect" @open="subMenuOpen" @close="subMenuClose" ref="customElMenu"> <el-menu v-if="tempMenuTree.length" mode="vertical" class="project-side-menu-instance" :unique-opened="uniqueOpened"
<template v-for="(item, index) of tempMenuTree"> :default-active="createMenuIndex(comDefaultActive)" :default-openeds="comDefaultOpeneds" @select="menuSelect" @open="subMenuOpen"
<project-menu-item :menuItem="item" :key="`${item.nodeValue}-${item.level}`"> @close="subMenuClose" ref="customElMenu">
<template :slot="`${item.nodeName}-${item.level}`" slot-scope="scope"> <template v-for="(item, index) of tempMenuTree">
<slot :name="`${scope.data.nodeName}-${scope.data.level}`" :data="scope.data"></slot> <project-menu-item :menuItem="item" :key="`${item.nodeValue}-${item.level}`">
</template> <template :slot="`${item.nodeName}-${item.level}`" slot-scope="scope">
</project-menu-item> <slot :name="`${scope.data.nodeName}-${scope.data.level}`" :data="scope.data"></slot>
</template> </template>
</el-menu> </project-menu-item>
</template>
</el-menu>
</transition>
</div> </div>
</template> </template>
<script> <script>
...@@ -201,6 +204,9 @@ export default { ...@@ -201,6 +204,9 @@ export default {
await this.$nextTick(); await this.$nextTick();
this.openTargetAllSubMenu(this.comDefaultOpeneds); this.openTargetAllSubMenu(this.comDefaultOpeneds);
} }
} else {
this.tempMenuTree = [];
this.tempMenuOptions = this.$options.data.call(this).tempMenuOptions;
} }
}, },
mergeMenuOptions(options) { mergeMenuOptions(options) {
...@@ -275,12 +281,14 @@ export default { ...@@ -275,12 +281,14 @@ export default {
position: relative; position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-right: 1px solid #eeeeee;
background: #fff;
overflow: auto;
::v-deep .project-side-menu-instance { ::v-deep .project-side-menu-instance {
width: 100%; width: 100%;
height: 100%; border-right: unset;
border-right: 1px solid #eeeeee; background: unset;
overflow: auto;
/* 重置一级二级菜单 高度行高 */ /* 重置一级二级菜单 高度行高 */
.project-menu-item-container { .project-menu-item-container {
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<div class="btn btn_default h32" @click="getcgx">草稿箱 ({{cgxtotal}})</div> <div class="btn btn_default h32" @click="getcgx">草稿箱 ({{cgxtotal}})</div>
</div> </div>
</div> </div>
<div class="table-item-jf table-item"> <div class="table-item-jf table-item prolegder">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" <el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}"
v-sticky-header.always="{offsetTop : '-16px',offsetBottom : '-15px'}" class="table-item1 fixed-table" border highlight-current-row v-sticky-header.always="{offsetTop : '-16px',offsetBottom : '-15px'}" class="table-item1 fixed-table" border highlight-current-row
:header-row-class-name="setHeaderRow" :cell-class-name="setCellClass" :row-class-name="setRowClass" :header-cell-class-name="setCellClass" :header-row-class-name="setHeaderRow" :cell-class-name="setCellClass" :row-class-name="setRowClass" :header-cell-class-name="setCellClass"
...@@ -855,4 +855,9 @@ ...@@ -855,4 +855,9 @@
&.zt2{background: #0CBC6D} &.zt2{background: #0CBC6D}
&.zt3{background: #FF3C3C} &.zt3{background: #FF3C3C}
} }
::v-deep .prolegder{
.fixed-table .el-table__fixed-header-wrapper{
display: none;
}
}
</style> </style>
...@@ -10,11 +10,10 @@ ...@@ -10,11 +10,10 @@
:auto-upload="false" :auto-upload="false"
:on-change="handleFileListChange" :on-change="handleFileListChange"
:headers="headers"> :headers="headers">
</el-upload> </el-upload>
<div class="pro-upload"> <div class="pro-upload">
<div class="title_wrap i"> <div class="title_wrap i">
<div class="title-small"><span>项目成本台账 <i class="el-icon-arrow-right"></i> </span>导入项目</div> <div class="title-small"><span style="cursor: pointer" @click="goback">项目成本台账 <i class="el-icon-arrow-right"></i> </span>导入项目</div>
<div class="enterprise_title"> <div class="enterprise_title">
项目信息 项目信息
</div> </div>
...@@ -62,7 +61,7 @@ ...@@ -62,7 +61,7 @@
</template> </template>
<div class="cz" v-if="item.fileParseStatus != 1"> <div class="cz" v-if="item.fileParseStatus != 1">
<div><a :href="item.fileOssUrl">下载</a></div> <div><a :href="item.fileOssUrl">下载</a></div>
<div v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div> <div @click="deletefille(item.id,0,true)" v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div>
<div class="i" @click="deletefille(item.id,0)" v-if="prodetail == false">删除</div> <div class="i" @click="deletefille(item.id,0)" v-if="prodetail == false">删除</div>
</div> </div>
</div> </div>
...@@ -90,7 +89,7 @@ ...@@ -90,7 +89,7 @@
</template> </template>
<div class="cz" v-if="item.fileParseStatus != 1"> <div class="cz" v-if="item.fileParseStatus != 1">
<div><a :href="item.fileOssUrl">下载</a></div> <div><a :href="item.fileOssUrl">下载</a></div>
<div v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div> <div @click="deletefille(item.id,1,true)" v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div>
<div class="i" @click="deletefille(item.id,1)" v-if="prodetail == false">删除</div> <div class="i" @click="deletefille(item.id,1)" v-if="prodetail == false">删除</div>
</div> </div>
</div> </div>
...@@ -118,7 +117,7 @@ ...@@ -118,7 +117,7 @@
</template> </template>
<div class="cz" v-if="item.fileParseStatus != 1"> <div class="cz" v-if="item.fileParseStatus != 1">
<div><a :href="item.fileOssUrl">下载</a></div> <div><a :href="item.fileOssUrl">下载</a></div>
<div v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div> <div @click="deletefille(item.id,2,true)" v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div>
<div class="i" @click="deletefille(item.id,2)" v-if="prodetail == false">删除</div> <div class="i" @click="deletefille(item.id,2)" v-if="prodetail == false">删除</div>
</div> </div>
</div> </div>
...@@ -146,7 +145,7 @@ ...@@ -146,7 +145,7 @@
</template> </template>
<div class="cz" v-if="item.fileParseStatus != 1"> <div class="cz" v-if="item.fileParseStatus != 1">
<div><a :href="item.fileOssUrl">下载</a></div> <div><a :href="item.fileOssUrl">下载</a></div>
<div v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div> <div @click="deletefille(item.id,3,true)" v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div>
<div class="i" @click="deletefille(item.id,3)" v-if="prodetail == false">删除</div> <div class="i" @click="deletefille(item.id,3)" v-if="prodetail == false">删除</div>
</div> </div>
</div> </div>
...@@ -174,7 +173,7 @@ ...@@ -174,7 +173,7 @@
</template> </template>
<div class="cz" v-if="item.fileParseStatus != 1"> <div class="cz" v-if="item.fileParseStatus != 1">
<div><a :href="item.fileOssUrl">下载</a></div> <div><a :href="item.fileOssUrl">下载</a></div>
<div v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div> <div @click="deletefille(item.id,4,true)" v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div>
<div class="i" @click="deletefille(item.id,4)" v-if="prodetail == false">删除</div> <div class="i" @click="deletefille(item.id,4)" v-if="prodetail == false">删除</div>
</div> </div>
</div> </div>
...@@ -202,7 +201,7 @@ ...@@ -202,7 +201,7 @@
</template> </template>
<div class="cz" v-if="item.fileParseStatus != 1"> <div class="cz" v-if="item.fileParseStatus != 1">
<div><a :href="item.fileOssUrl">下载</a></div> <div><a :href="item.fileOssUrl">下载</a></div>
<div v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div> <div @click="deletefille(item.id,5,true)" v-if="item.fileParseStatus == 3 && prodetail == false">重新上传</div>
<div class="i" @click="deletefille(item.id,5)" v-if="prodetail == false">删除</div> <div class="i" @click="deletefille(item.id,5)" v-if="prodetail == false">删除</div>
</div> </div>
</div> </div>
...@@ -357,7 +356,7 @@ ...@@ -357,7 +356,7 @@
this.$refs.uploadpro.$el.querySelector('input').click() this.$refs.uploadpro.$el.querySelector('input').click()
} }
}, },
deletefille(id,type){ deletefille(id,type,isupload){
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', { this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
...@@ -374,6 +373,9 @@ ...@@ -374,6 +373,9 @@
message: '删除成功!' message: '删除成功!'
}); });
this.getDetail() this.getDetail()
if(isupload){
this.uplpro(type)
}
} }
}) })
}).catch(() => { }).catch(() => {
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="涉诉状态"> <el-form-item label="涉诉状态">
<el-select multiple placeholder="请选择" :collapse-tags="true" clearable> <el-select placeholder="请选择" :collapse-tags="true" v-model="formdata.badnessState" clearable>
<el-option v-for="(item,index) in litigationstatus" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option> <el-option v-for="(item,index) in litigationstatus" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="限用/禁用状态" min-width="120" :resizable="false"> <el-table-column label="限用/禁用状态" min-width="120" :resizable="false">
<template slot-scope="scope">--</template> <template slot-scope="scope">{{scope.row.badnessState||'--'}}</template>
</el-table-column> </el-table-column>
<el-table-column label="劳务队长" min-width="120" :resizable="false"> <el-table-column label="劳务队长" min-width="120" :resizable="false">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -333,12 +333,13 @@ ...@@ -333,12 +333,13 @@
</template> </template>
<script> <script>
import { encodeStr } from "@/assets/js/common.js"; import { encodeStr } from '@/assets/js/common.js'
import "@/assets/styles/public.scss"; import '@/assets/styles/public.scss'
import "@/assets/styles/supplierlist.scss"; import '@/assets/styles/supplierlist.scss'
import skeleton from '@/views/project/projectList/component/skeleton'; import skeleton from '@/views/project/projectList/component/skeleton'
import {customerAll,areaAll,customerExport} from '@/api/supplier/supplier'; import { areaAll, customerAll, customerExport } from '@/api/supplier/supplier'
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from '@/api/system/dict/data'
export default { export default {
name: 'ledger', name: 'ledger',
components:{skeleton}, components:{skeleton},
......
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