Commit 494948e8 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 fb296035 a9e080ae
......@@ -105,6 +105,7 @@ public class DataAnalysisComponent {
throw new ServiceException("数据插入失败!");
}
file.setFileParseStatus(2);
file.setFailRemark("");
boolean b = projectFileService.updateById(file);
if (!b) {
throw new ServiceException("文件状态更新失败!");
......
......@@ -98,13 +98,19 @@ public class AdvisoryBodyVo {
*/
@ExcelProperty(value = "合同金额", index = 10)
private BigDecimal contractValue;
/**
* 业主单位cid
*/
private Integer ownerCid;
/**
* 业主单位
*/
@ExcelProperty(value = "业主单位", index = 11)
private String ownerName;
/**
* 项目承接单位cid
*/
private Integer contractOrgCid;
/**
* 项目承接单位
*/
......
......@@ -2,6 +2,8 @@ package com.dsk.cscec.domain.vo;
import lombok.Data;
import java.util.Date;
/**
* @author sxk
* @date 2024.03.06
......@@ -25,7 +27,10 @@ public class CbProjectHeadInfoVo {
* 成本阶段(0:标前成本、1:标后成本、2:转固成本)
*/
private Integer cbStage;
/**
* 创建时间
*/
private Date createTime;
/**
* 客商名称(客户名称)
*/
......
......@@ -70,8 +70,8 @@ public class CbProjectOtherImportListener extends AnalysisEventListener<CbProjec
}else{
importVo.setDealWithNumber(importVo.getNumber());
}
dataList.add(importVo);
}
dataList.add(importVo);
}
@Override
......
......@@ -218,6 +218,8 @@ public class CbDirectExpenseServiceImpl extends ServiceImpl<CbDirectExpenseMappe
}
//更新文件状态
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
//场景:若第一次解析失败了,用户未删除失败的文件,又解析一次,这时解析成功了,因此将失败备注置空
projectFile.setFailRemark(null);
Assert.isTrue(projectFileMapper.updateById(projectFile) > 0, "解析成功后文件状态更新失败");
} catch (Exception e) {
status.setRollbackOnly();
......
......@@ -114,6 +114,8 @@ public class CbProjectExpenseSummaryServiceImpl extends ServiceImpl<CbProjectExp
Assert.isTrue(impl.saveBatch(summaryList), "数据插入失败");
//更新文件状态
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
//场景:若第一次解析失败了,用户未删除失败的文件,又解析一次,这时解析成功了,因此将失败备注置空
projectFile.setFailRemark(null);
Assert.isTrue(projectFileMapper.updateById(projectFile) > 0, "解析成功后文件状态更新失败");
} catch (Exception e) {
status.setRollbackOnly();
......
......@@ -226,19 +226,19 @@ public class CbProjectOtherServiceImpl extends ServiceImpl<CbProjectOtherMapper,
String number = importVo.getNumber();
CbProjectOther cbProjectOther = new CbProjectOther();
BeanUtil.copyProperties(importVo, cbProjectOther);
//保存一级节点
if (ReUtil.isMatch(firstPattern, number) || ReUtil.isMatch(pattern3, number)) {
BeanUtil.copyProperties(importVo, cbProjectOther);
cbProjectOther.setParentId(rootMeasuresId);
} else if (ReUtil.isMatch(secondPattern, number)) {
BeanUtil.copyProperties(importVo, cbProjectOther);
// 根据no查询父级节点
CbProjectOther parentCbCostMeasure = getCbProjectOther(rootMeasuresId, number, projectId, cbStage);
String[] split = number.split("\\.");
cbProjectOther.setParentId(parentCbCostMeasure.getId());
}
String newNo = String.valueOf(rootMeasuresId).concat(".").concat(cbProjectOther.getDealWithNumber());
cbProjectOther.setDealWithNumber(newNo);
if (ObjectUtil.isNotEmpty(cbProjectOther.getDealWithNumber())) {
String newNo = String.valueOf(rootMeasuresId).concat(".").concat(cbProjectOther.getDealWithNumber());
cbProjectOther.setDealWithNumber(newNo);
}
cbProjectOther.setProjectId(projectId);
cbProjectOther.setCbStage(cbStage);
this.save(cbProjectOther);
......
......@@ -473,11 +473,16 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
}
}
//所有文件遍历完后,如果存在解析失败的文件,则项目的解析状态改为解析失败
if (failNum > 0) {
//如果存在解析失败的文件,则项目的解析状态改为解析失败
log.info("项目台账列表:ID为" + projectRecord.getId() + "的项目解析失败");
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL);
baseMapper.updateById(projectRecord);
} else {
//否则改为解析成功
log.info("项目台账列表:ID为" + projectRecord.getId() + "的项目解析成功");
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
baseMapper.updateById(projectRecord);
}
}
}
......
......@@ -168,6 +168,8 @@ public class CbSceneExpenseChildrenServiceImpl extends ServiceImpl<CbSceneExpens
Assert.isTrue(impl.saveBatch(BeanUtil.copyToList(chidrenList, CbSceneExpenseChildren.class)), "数据插入失败");
//更新文件状态
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
//场景:若第一次解析失败了,用户未删除失败的文件,又解析一次,这时解析成功了,因此将失败备注置空
projectFile.setFailRemark(null);
Assert.isTrue(projectFileMapper.updateById(projectFile) > 0, "解析成功后文件状态更新失败");
} catch (Exception e) {
status.setRollbackOnly();
......
......@@ -76,6 +76,7 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
//解析数据
cbProjectFiles.forEach(cbProjectFile -> {
cbProjectFile.setFailRemark(null);
// if (cbProjectFile.getDelFlag() == 1) {
// //根据fileId删除相关基础数据,并删除文件
// baseMapper.delete(new LambdaQueryWrapper<CbSummary>().eq(CbSummary::getCbProjectFileId, cbProjectFile.getId()));
......
......@@ -134,6 +134,24 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
public TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query) {
bo.setContractOrgId(AdvisoryBodyManageQueryConstants.LEVEL1_COMPANY_ID);
Page<AdvisoryBodyVo> page = advisoryBodyMapper.queryListByBo(query.build(),bo);
page.getRecords().parallelStream().forEach(vo -> {
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(vo.getOwnerName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
vo.setOwnerCid(companyId);
}
map = opportunityRadarService.enterpriseByName(vo.getContractOrgName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
vo.setContractOrgCid(companyId);
}
} catch (Exception e) {
log.error("CustomerInfoServiceImpl.queryAdvisoryList() error:" + e);
}
});
return TableDataInfo.build(page);
}
......
# 页面标题
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
VUE_APP_TITLE = 重庆大司空信息科技有限公司
# 开发环境配置
ENV = 'development'
# 数字化经营履约全生命链路管理系统/开发环境
VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_API = 'http://localhost:9098'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
......
# 页面标题
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
VUE_APP_TITLE = 重庆大司空信息科技有限公司
# 生产环境配置
ENV = 'production'
......
# 页面标题
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
VUE_APP_TITLE = 重庆大司空信息科技有限公司
NODE_ENV = production
......
# 页面标题
VUE_APP_TITLE = 中建一局集团第二建筑有限公司
VUE_APP_TITLE = 重庆大司空信息科技有限公司
NODE_ENV = "production"
......
......@@ -5,7 +5,7 @@
"author": "若依",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
"dev": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
"devmac": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:test": "vue-cli-service build --mode test",
......
......@@ -33,13 +33,14 @@
padding: 20px 16px 4px;
.el-form-item{
margin-bottom: 16px;
width: 100%;
}
.el-divider{
margin-top: 4px;
margin-bottom: 20px;
}
.el-form-item__content{
width: 282px;
width: calc(100% - 100px);
.el-cascader,.el-select,.el-date-editor{
width: 100%;
}
......@@ -251,3 +252,10 @@
.el-date-editor .el-range-input{
text-align: left;
}
.wrap2{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
......@@ -37,14 +37,14 @@
<!-- 有自定义插槽 -->
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item">
<!-- 默认取值 -->
{{ scope.row[item.prop] || scope.row[item.prop] == '0' ? scope.row[item.prop] : '-' }}
{{ scope.row[item.prop] ? scope.row[item.prop] : '-' }}
</slot>
<!-- 操作栏 不需要设置slot-->
<slot v-else-if="item.prop == 'action-field-bar'" name="action-field-bar" :row="scope.row" :index="scope.$index" :data="item"></slot>
<!-- 没有插槽 -->
<div v-else>
{{ scope.row[item.prop] || scope.row[item.prop] == '0' ? scope.row[item.prop] : '-' }}
</div>
<span v-else>
{{ scope.row[item.prop] ? scope.row[item.prop] : '-' }}
</span>
</template>
</el-table-column>
</template>
......@@ -87,7 +87,7 @@ export default {
},
//可访问data属性
created() {
},
//计算集
computed: {
......
......@@ -45,7 +45,7 @@ export default {
},
data() {
return {
title: '中建一局集团第二建筑有限公司',
title: '重庆大司空信息科技有限公司',
// logo: logoImg
logo: ''
}
......
......@@ -172,7 +172,7 @@ export const constantRoutes = [
path: '/enterprise/:id',
component: () => import('@/views/detail/party-a/index'),
name: 'PartyA',
meta: { title: '甲方详情', icon: 'enterpriseData', noCache: false },
meta: { title: '企业详情', icon: 'enterpriseData', noCache: false },
}
]
},
......
import Decimal from "decimal.js";
/**
* 加法
* @param {*} num1
* @param {*} num2
* @returns
*/
export const add = (num1, num2) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
if (flag) throw new Error("传入参数错误,参数不为number");
const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2);
return decimal1.plus(decimal2).toString();
};
/**
* 减法
* @param {*} num1
* @param {*} num2
* @returns
*/
export const subtract = (num1, num2) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2);
return decimal1.minus(decimal2).toString();
};
/**
* 乘法
* @param {*} num1
* @param {*} num2
* @returns
*/
export const multiply = (num1, num2) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2);
return decimal1.times(decimal2).toString();
};
/**
* 除法
* @param {*} num1
* @param {*} num2
* @returns
*/
export const divide = (num1, num2) => {
const flag = (!parseFloat(num1) && parseFloat(num1) != "0") || (!parseFloat(num2) && parseFloat(num2) != "0");
const decimal1 = new Decimal(num1);
const decimal2 = new Decimal(num2);
return decimal1.dividedBy(decimal2).toString();
};
......@@ -97,14 +97,14 @@ export default {
formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, fixed: false, uid: v4() },
{ label: '咨询机构名称', prop: 'advisoryBodyName', width: "198px", lock: true, fixed: false, slot: true, uid: v4(), showOverflowTooltip: true },
{ label: '最近一次合作时间', prop: 'lastCooperateTime', width: "201px", uid: v4() },
{ label: '经营状态', prop: 'businessStatus', minWidth: "74px", uid: v4(), showOverflowTooltip: true },
{ label: '最近一次合作时间', prop: 'lastCooperateTime', width: "140px", uid: v4() },
{ label: '经营状态', prop: 'businessStatus', width: "74px", uid: v4(), showOverflowTooltip: true },
{ label: '法定代表人', prop: 'corporatePerson', width: "86px", uid: v4() },
{ label: '注册资本', prop: 'regCapital', width: "120px", uid: v4() },
{ label: '注册地区', prop: 'regArea', width: "149px", uid: v4() },
{ label: '成立日期', prop: 'registeredDate', width: "97px", uid: v4() },
{ label: '经营范围', prop: 'businessScope', width: "417px", uid: v4(), slot: true },
{ label: '合作项目数量', prop: 'cooperateProjectCount', width: "98px", uid: v4(), slot: true },
{ label: '经营范围', prop: 'businessScope', uid: v4(), slot: true },
],
queryParams: {
pageSize: 50,
......@@ -181,6 +181,9 @@ export default {
const result = await getConsultingOrgEenterpriseListWithSearchApi(params);
if (result.code == 200) {
this.tableDataList = result.rows ? result.rows : [];
this.tableDataList.forEach(item=>{
item.regCapital = item.regCapital.replace('人民币','')
})
this.total = result.total ? result.total : 0;
} else {
this.$message.error(result.msg);
......
......@@ -203,21 +203,53 @@ export default {
engineeringCategoryOptions: [
{
value: "1",
label: "测试1"
label: "房屋建筑"
},
{
value: "2",
label: "测试2"
label: "专业分包"
},
{
value: "3",
label: "基础设施"
}
],
engineeringCategoryDetailOptions: [
{
value: "1",
label: "测试1"
label: "住宅"
},
{
value: "2",
label: "测试2"
label: "房建其他"
},
{
value: "3",
label: "装饰"
},
{
value: "4",
label: "专业其他"
},
{
value: "5",
label: "市政工程"
},
{
value: "6",
label: "教育"
},
{
value: "7",
label: "安装"
},
{
value: "8",
label: "工业厂房"
},
{
value: "9",
label: "商业综合"
}
]
};
......
......@@ -64,7 +64,7 @@ export default {
.cooperation-desk-account-project,
.cooperation-desk-account-enterprise {
overflow: hidden;
height: calc(100% - 48px);
height: calc(100%);
}
}
}
......
......@@ -59,7 +59,7 @@ export default {
.cooperation-desk-account-project,
.cooperation-desk-account-enterprise {
overflow: hidden;
height: calc(100% - 48px);
height: calc(100%);
}
}
}
......
......@@ -282,6 +282,12 @@ export default {
}
},
created() {
let companyName = this.$route.query.companyName ? this.$route.query.companyName : "";
document.getElementById('tagTitle').innerText = companyName;
let titlename = document.getElementById('tagTitles');
if (titlename) {
titlename.innerText = companyName;
}
this.init();
},
mounted() {
......
......@@ -70,7 +70,7 @@
<!--<div class="on" @click="isDXlogin = false">密码登录</div>-->
<!--<div @click="isDXlogin = true">快捷登录</div>-->
<!--</div>-->
<div class="loginname"><!--<img src="../assets/images/login/ztlogo.png">-->中建一局集团第二建筑有限公司</div>
<div class="loginname"><!--<img src="../assets/images/login/ztlogo.png">-->重庆大司空信息科技有限公司</div>
<el-form-item prop="username" >
<el-input
v-model="loginForm.username"
......
......@@ -206,7 +206,7 @@
pldrVisible:false,
queryParams:{
pageNum:1,
pageSize:10,
pageSize:50,
condition:{}
},
dataList:[],
......@@ -229,7 +229,7 @@
},
methods: {
async querySubmit() {
companyPage(this.queryParams).then(res => {
companyPage(this.queryParamsqueryParams).then(res => {
this.isSkeleton = false;
this.tableData=res.rows
this.tableDataTotal=res.total
......@@ -272,7 +272,7 @@
radioBtn(val){
let endTime = new Date()
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.queryParams.pageSize=50
switch (val) {
case 1:
this.queryParams.condition.beginTime=this.formatDate(endTime)
......
......@@ -8,7 +8,7 @@
<el-button slot="append" @click="handleKeyword()">搜索</el-button>
</el-input>
</div>
<div class="search-item">
<div class="search-item" style="margin-bottom: 25px">
<div class="label">更新时间</div>
<div class="checkbox">
<el-radio-group v-model="radio">
......@@ -28,24 +28,38 @@
</el-date-picker>
</div>
</div>
<div class="search-item" style="line-height: 32px;">
<div class="label">监控类型</div>
<div class="search-item">
<div class="label">司法风险</div>
<div class="main-right">
<div class="select-popper">
<span :class="{ color_text: sffx.length }">司法风险{{sffx.length > 0 ? sffx.length:''}}<i class="el-icon-caret-bottom"></i></span>
<el-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-select>
<!--<span :class="{ color_text: sffx.length }">司法风险{{sffx.length > 0 ? sffx.length:''}}<i class="el-icon-caret-bottom"></i></span>-->
<el-checkbox-group v-model="sffx">
<el-checkbox label="不限" @change="changeSffx('不限')">不限</el-checkbox>
<el-checkbox v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-checkbox-group>
<!--<el-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags multiple placeholder="请选择">-->
<!--<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">-->
<!--<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>-->
<!--</el-option>-->
<!--</el-select>-->
</div>
</div>
</div>
<div class="search-item">
<div class="label">工商风险</div>
<div class="main-right">
<div class="select-popper">
<span :class="{ color_text: gsfx.length }">工商风险{{gsfx.length > 0 ? gsfx.length:''}}<i class="el-icon-caret-bottom"></i></span>
<el-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-select>
<el-checkbox-group v-model="gsfx">
<el-checkbox label="不限" @change="changeGsfx('不限')">不限</el-checkbox>
<el-checkbox v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-checkbox-group>
<!--<span :class="{ color_text: gsfx.length }">工商风险{{gsfx.length > 0 ? gsfx.length:''}}<i class="el-icon-caret-bottom"></i></span>-->
<!--<el-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags multiple placeholder="请选择">-->
<!--<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" :value="i.dimensionName">-->
<!--<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>-->
<!--</el-option>-->
<!--</el-select>-->
</div>
</div>
</div>
......@@ -97,7 +111,9 @@
width="150"
>
<template slot-scope="scope">
<span style="cursor: pointer;color:#0081FF;" @click="handleDetail(scope.row)">查看详情</span>
<!---->
<span v-if="scope.row.hasdetail" style="cursor: pointer;color:#0081FF;" @click="handleDetail(scope.row)">查看详情</span>
<span v-else="scope.row.hasdetail" @click="handleDetail(scope.row)">查看详情</span>
</template>
</el-table-column>
</el-table>
......@@ -344,19 +360,27 @@
}else {
delete params.condition.riskLevel
}
if(this.sffx.length > 0 && this.gsfx.length > 0){
let sffx = this.sffx
if(sffx.indexOf('不限')>-1){
sffx = []
}
let gsfx = this.gsfx
if(gsfx.indexOf('不限')>-1){
gsfx = []
}
if(sffx.length > 0 && gsfx.length > 0){
params.condition.riskType='司法风险,工商风险'
params.condition.dimension=this.sffx.concat(this.gsfx)
}
if(this.sffx.length > 0 && this.gsfx.length === 0){
if(sffx.length > 0 && gsfx.length === 0){
params.condition.riskType='司法风险'
params.condition.dimension=this.sffx
}
if(this.sffx.length === 0 && this.gsfx.length > 0){
if(sffx.length === 0 && gsfx.length > 0){
params.condition.riskType='工商风险'
params.condition.dimension=this.gsfx
}
if(this.sffx.length === 0 && this.gsfx.length === 0){
if(sffx.length === 0 && gsfx.length === 0){
delete params.condition.riskType
delete params.condition.dimension
}
......@@ -375,6 +399,14 @@
for(let [i,j] of arr){
el.Array.push({key:i,value:j})
}
let types = ['新增开庭公告','新增法院公告','新增裁判文书','新增经营异常','新增失信被执行人','新增股权冻结']
if(types.indexOf(el.dimensionName)>-1){
el.hasdetail = true
}else{
el.hasdetail = false
}
})
})
},
......@@ -386,21 +418,31 @@
})
},
changeSffx(val) {
if (this.sffx.indexOf(val.dimensionName) == -1) {
this.sffx.push(val.dimensionName)
} else {
this.sffx.splice(this.sffx.indexOf(val.dimensionName), 1)
}
if(val == '不限')
this.sffx = ['不限']
else if(this.sffx.indexOf('不限')>-1){
this.sffx.splice(this.sffx.indexOf('不限'),1)
}
// if (this.sffx.indexOf(val.dimensionName) == -1) {
// this.sffx.push(val.dimensionName)
// } else {
// this.sffx.splice(this.sffx.indexOf(val.dimensionName), 1)
// }
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.querySubmit()
},
changeGsfx(val) {
if (this.gsfx.indexOf(val.dimensionName) == -1) {
this.gsfx.push(val.dimensionName)
} else {
this.gsfx.splice(this.gsfx.indexOf(val.dimensionName), 1)
}
if(val == '不限')
this.gsfx = ['不限']
else if(this.gsfx.indexOf('不限')>-1){
this.gsfx.splice(this.gsfx.indexOf('不限'),1)
}
// if (this.gsfx.indexOf(val.dimensionName) == -1) {
// this.gsfx.push(val.dimensionName)
// } else {
// this.gsfx.splice(this.gsfx.indexOf(val.dimensionName), 1)
// }
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.querySubmit()
......
......@@ -16,7 +16,7 @@
<span class="val">{{object.registeredDate}}</span>
</p>
</div>
<div class="search-item">
<div class="search-item" style="margin-bottom: 25px">
<div class="label">风险级别</div>
<div class="main-right">
<div class="checkbox">
......@@ -29,24 +29,38 @@
</div>
</div>
</div>
<div class="search-item" style="line-height: 32px;">
<div class="label">监控类型</div>
<div class="search-item">
<div class="label">司法风险</div>
<div class="main-right">
<div class="select-popper">
<span :class="{ color_text: sffx.length }">司法风险{{sffx.length > 0 ? sffx.length:''}}<i class="el-icon-caret-bottom"></i></span>
<el-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-select>
<!--<span :class="{ color_text: sffx.length }">司法风险{{sffx.length > 0 ? sffx.length:''}}<i class="el-icon-caret-bottom"></i></span>-->
<el-checkbox-group v-model="sffx">
<el-checkbox label="不限" @change="changeSffx('不限')">不限</el-checkbox>
<el-checkbox v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-checkbox-group>
<!--<el-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags multiple placeholder="请选择">-->
<!--<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">-->
<!--<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>-->
<!--</el-option>-->
<!--</el-select>-->
</div>
</div>
</div>
<div class="search-item">
<div class="label">工商风险</div>
<div class="main-right">
<div class="select-popper">
<span :class="{ color_text: gsfx.length }">工商风险{{gsfx.length > 0 ? gsfx.length:''}}<i class="el-icon-caret-bottom"></i></span>
<el-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-select>
<el-checkbox-group v-model="gsfx">
<el-checkbox label="不限" @change="changeGsfx('不限')">不限</el-checkbox>
<el-checkbox v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-checkbox-group>
<!--<span :class="{ color_text: gsfx.length }">工商风险{{gsfx.length > 0 ? gsfx.length:''}}<i class="el-icon-caret-bottom"></i></span>-->
<!--<el-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags multiple placeholder="请选择">-->
<!--<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" :value="i.dimensionName">-->
<!--<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>-->
<!--</el-option>-->
<!--</el-select>-->
</div>
</div>
</div>
......@@ -322,21 +336,31 @@
},
methods: {
changeSffx(val) {
if (this.sffx.indexOf(val.dimensionName) == -1) {
this.sffx.push(val.dimensionName)
} else {
this.sffx.splice(this.sffx.indexOf(val.dimensionName), 1)
}
if(val == '不限')
this.sffx = ['不限']
else if(this.sffx.indexOf('不限')>-1){
this.sffx.splice(this.sffx.indexOf('不限'),1)
}
// if (this.sffx.indexOf(val.dimensionName) == -1) {
// this.sffx.push(val.dimensionName)
// } else {
// this.sffx.splice(this.sffx.indexOf(val.dimensionName), 1)
// }
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.querySubmit()
},
changeGsfx(val) {
if (this.gsfx.indexOf(val.dimensionName) == -1) {
this.gsfx.push(val.dimensionName)
} else {
this.gsfx.splice(this.gsfx.indexOf(val.dimensionName), 1)
}
if(val == '不限')
this.gsfx = ['不限']
else if(this.gsfx.indexOf('不限')>-1){
this.gsfx.splice(this.gsfx.indexOf('不限'),1)
}
// if (this.gsfx.indexOf(val.dimensionName) == -1) {
// this.gsfx.push(val.dimensionName)
// } else {
// this.gsfx.splice(this.gsfx.indexOf(val.dimensionName), 1)
// }
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.querySubmit()
......@@ -360,19 +384,27 @@
}else {
delete params.condition.riskLevel
}
if(this.sffx.length > 0 && this.gsfx.length > 0){
let sffx = this.sffx
if(sffx.indexOf('不限')>-1){
sffx = []
}
let gsfx = this.gsfx
if(gsfx.indexOf('不限')>-1){
gsfx = []
}
if(sffx.length > 0 && gsfx.length > 0){
params.condition.riskType='司法风险,工商风险'
params.condition.dimension=this.sffx.concat(this.gsfx)
}
if(this.sffx.length > 0 && this.gsfx.length === 0){
if(sffx.length > 0 && gsfx.length === 0){
params.condition.riskType='司法风险'
params.condition.dimension=this.sffx
}
if(this.sffx.length === 0 && this.gsfx.length > 0){
if(sffx.length === 0 && gsfx.length > 0){
params.condition.riskType='工商风险'
params.condition.dimension=this.gsfx
}
if(this.sffx.length === 0 && this.gsfx.length === 0){
if(sffx.length === 0 && gsfx.length === 0){
delete params.condition.riskType
delete params.condition.dimension
}
......
<template>
<el-dialog title="填写实际成本" :visible="comDialogStatus" class="add-actual-cost-container">
</el-dialog>
</template>
<script>
export default {
name: "AddActualCost",
props: {
dialogStatus: {
type: Boolean,
default: false
}
},
model: {
prop: "dialogStatus",
event: "dialogStatusChange"
},
watch: {
dialogStatus(newValue) {
this.comDialogStatus = newValue;
}
},
data() {
return {
comDialogStatus: this.dialogStatus
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
},
}
</script>
<style lang="scss" scoped>
.add-actual-cost-container {
::v-deep .el-dialog {
margin-top: 0px !important;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 4px;
width: 480px;
.el-dialog__header {
height: 56px;
padding: 0px 20px;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #eeeeee;
.el-dialog__title {
font-size: 16px;
font-weight: bold;
color: #232323;
}
.el-dialog__headerbtn {
position: static;
width: 16px;
height: 16px;
.el-dialog__close {
font-size: 16px;
}
}
}
.el-dialog__body {
padding: 0px;
min-height: 120px;
padding: 24px 20px;
box-sizing: border-box;
}
}
}
</style>
......@@ -2,8 +2,8 @@
<div class="feed-summary-container">
<div class="feed-summary-inner">
<div class="left-side-menu">
<project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="currentNodeName"
@select="menuSelect">
<project-side-menu ref="projectSideMenu" :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false"
:default-active="currentNodeName" @select="menuSelect">
<template slot="房建类成本科目-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_2.svg" alt="">
<div class="project-sub-menu-title-text">房建类成本科目</div>
......@@ -28,7 +28,7 @@
<!-- 实体工程材料单位换算 -->
<el-button type="primary" size="medium" class="unit-conversion-btn" v-if="currentParentName.indexOf('实体工程材料') != -1">单位换算</el-button>
<!-- 填写实际成本 -->
<el-button type="primary" size="medium" class="actual-cost-btn" v-else>填写实际成本</el-button>
<el-button type="primary" size="medium" class="actual-cost-btn" v-else @click="fillActualCost">填写实际成本</el-button>
<!-- 表头设置组件 -->
<dsk-table-header-setting :settingList="formColum" @settingChange="settingChange"></dsk-table-header-setting>
</div>
......@@ -39,14 +39,19 @@
<table-list-com :tableData="tableDataList" :formColum="formColum" v-else-if="!tableLoading" :maxHeight="true" :tableDataTotal="total"
:paging="false">
<template slot="action-field-bar" slot-scope="scope">
<div class="project-action-field-bar">
<div class="project-action-field-bar" v-if="scope.row.id != '0'">
<span class="push-project">推送工程量</span>
</div>
<span v-else>-</span>
</template>
</table-list-com>
</div>
</div>
</div>
<!-- 填写实际成本触发 -->
<add-actual-cost v-model="showAddActualCost"></add-actual-cost>
</div>
</template>
<script>
......@@ -55,9 +60,25 @@ import { getFeedSummaryMenuTreeApi, getFeedSummaryMonthListApi, getFeedSummaryLi
import DskTableHeaderSetting from "@/components/DskTableHeaderSetting";
import DskSkeleton from "@/components/DskSkeleton";
import TableListCom from "@/components/TableListCom";
import AddActualCost from "./components/AddActualCost";
import { v4 } from 'uuid';
import dayjs from "dayjs";
import { cloneDeep } from "lodash-es";
import { add } from "@/utils/decimal";
// 需要统计的字段名
const statisticsPropNames = [
"guidePrice",
"bidUnitPrice",
"unitPriceDifference",
"quantity",
"combinedPrice",
"combinedPriceTax",
"quantities",
"totalQuantities",
"purchaseUnitPrice"
];
export default {
name: "feedSummary",
props: {
......@@ -91,7 +112,8 @@ export default {
ProjectSideMenu,
DskTableHeaderSetting,
TableListCom,
DskSkeleton
DskSkeleton,
AddActualCost
},
data() {
return {
......@@ -103,7 +125,7 @@ export default {
comProjectId: this.projectId,
menuTreeList: [],
// 加载数据列表
tableLoading: false,
tableLoading: true,
total: 0,
// 列表表头
formColum: [
......@@ -153,7 +175,10 @@ export default {
// 当前选中的成本科目
currentNodeName: "",
// 数据列表
tableDataList: []
tableDataList: [],
statisticsParentName: ["劳务分包工程", "专业分包工程"],
// 填写实际成本弹窗
showAddActualCost: false
};
},
//可访问data属性
......@@ -162,7 +187,9 @@ export default {
},
//计算集
computed: {
hasTarget() {
return this.statisticsParentName.includes(this.currentParentName);
}
},
//方法集
methods: {
......@@ -179,14 +206,20 @@ export default {
await this.initDefaultSetting();
} catch (error) {
console.log(error);
} finally {
this.tableLoading = false;
}
},
async initDefaultSetting() {
try {
const defaultCurrent = this.findMenuNode(this.menuTreeList, "结构劳务分包");
await this.$nextTick();
const menus = this.$refs["projectSideMenu"].getResultMenuList();
const defaultCurrent = this.findMenuNode(menus, "结构劳务分包");
// 默认选中结构劳务分包
if (defaultCurrent) {
this.currentNodeName = defaultCurrent.name;
this.currentNodeName = defaultCurrent.nodeName;
const parentName = defaultCurrent.parent ? this.getCurrentType(defaultCurrent.parent) : defaultCurrent.name;
if (parentName) this.currentParentName = parentName;
const params = this.createRequestConditions();
await this.getFeedSummaryList(params);
}
......@@ -212,11 +245,11 @@ export default {
includeNowMonth(time) {
return this.originMonthList.includes(time);
},
findMenuNode(tree, nodeName) {
findMenuNode(tree, nodeName, targetName = "nodeName") {
for (const item of tree) {
if (item.name == nodeName) return item;
if (item[targetName] == nodeName) return item;
if (item.children instanceof Array) {
const result = this.findMenuNode(item.children, nodeName);
const result = this.findMenuNode(item.children, nodeName, targetName);
if (result) return result;
}
}
......@@ -226,8 +259,14 @@ export default {
this.tableLoading = true;
const list = await getFeedSummaryListApi(params);
if (list.code == 200 && list.data instanceof Array) {
this.tableDataList = list.data;
this.total = list.data.length;
const _temp = list.data;
// 计算总和
if (this.hasTarget) {
const row = this.countRowParams(_temp, statisticsPropNames);
_temp.unshift(row);
}
this.tableDataList = _temp;
this.total = _temp.length;
}
} catch (error) {
console.log(error);
......@@ -235,6 +274,36 @@ export default {
this.tableLoading = false;
}
},
countRowParams(arraylist = [], _statisticsPropNames) {
if (arraylist.length) {
const _template = {};
const _temp = cloneDeep(arraylist[0]);
const keys = Object.keys(_temp);
// 映射key
for (const key of keys) {
if (key == "id") {
_template[key] = "0";
continue;
} else if (key == "cbSubjectName") {
_template[key] = "合计";
continue;
}
_template[key] = "";
}
// 循环统计 需要统计的列 总数
for (const prop of _statisticsPropNames) {
const sum = arraylist.reduce((pre, current, index) => {
const before = Object.prototype.toString.call(pre) == "[object Object]" ? pre[prop] ? pre[prop] : 0 : parseFloat(pre) ? pre : 0;
const after = Object.prototype.toString.call(current) == "[object Object]" ? current[prop] ? current[prop] : 0 : parseFloat(current) ? current : 0;
return add(before, after);
}, 0);
// 对应key 赋值结果
_template[prop] = sum;
}
return _template;
}
},
async getFeedSummaryMenuTree(params) {
try {
const result = await getFeedSummaryMenuTreeApi(params);
......@@ -259,12 +328,17 @@ export default {
if (!data.includes(_now)) {
data.push(_now);
}
this.monthList = data.map(item => {
// 年月排序
let _tempMonthList = data.sort((before, after) => {
return parseInt(after) - parseInt(before);
});
_tempMonthList = _tempMonthList.map(item => {
return {
label: dayjs(item).format("YYYY年MM月"),
value: item
};
});
this.monthList = _tempMonthList;
}
} catch (error) {
......@@ -317,6 +391,10 @@ export default {
}
},
// 填写或修改新的 成本月份
fillActualCost() {
this.showAddActualCost = true;
}
},
}
</script>
......
......@@ -33,7 +33,7 @@
<el-table-column label="占比" prop="proportion">
<template slot-scope="scope">{{scope.row.proportion || '--'}}</template>
</el-table-column>
<el-table-column label="本月工量" prop="quantity">
<el-table-column label="本月工量" prop="quantity">
<template slot-scope="scope">{{scope.row.quantity || '--'}}</template>
</el-table-column>
</el-table>
......@@ -169,7 +169,7 @@
<el-date-picker size="small" style="width: 368px"
v-model="chooseDate"
type="month"
placeholder="选择月" @change="changeDate"
placeholder="请选择所需添加的成本月份" @change="changeDate"
value-format="yyyy-MM"
:picker-options="pickerOptions">
</el-date-picker>
......
......@@ -251,7 +251,7 @@
this.select(result.data[0].id)
}
} catch (error) {
console.log(error)
}
},
changetime(val){
......
......@@ -101,6 +101,10 @@ export default {
},
//方法集
methods: {
// 获取最终菜单结构
getResultMenuList() {
return this.tempMenuTree;
},
// 展开所有指定层级的菜单 默认二级
openTargetAllSubMenu(openeds = [], level = 2) {
// 组件外传入了值 使用传入值,否则默认获取二级菜单打开二级
......
......@@ -113,6 +113,7 @@ export default {
{
name: "盈亏分析对比",
value: "profitAndLoss",
cbType: 1,
id: v4()
}
],
......@@ -192,6 +193,8 @@ export default {
const detail = await getProjectDetailApi(projectId);
if (detail.code == 200 && detail.data) {
if (detail.data.id) detail.data["projectId"] = detail.data.id;
// detail.data["projectId"] = "1754425038355890177";
// detail.data["cbStage"] = 0;
this.detailInfo = detail.data;
}
} catch (error) {
......@@ -206,7 +209,7 @@ export default {
},
setCbType(current) {
if (!current) {
delete this.detailInfo["cbType"];
this.$delete(this.detailInfo, "cbType");
return;
}
const _temp = this.getCurrentTab(current);
......
......@@ -463,8 +463,10 @@
checkProjectCodeExist(this.queryParam.ipmProjectNo).then(res=>{
if(res.code == 200 && res.data == true){
this.queryParam.isGetProjectDetail = 1
this.$message.success(res.msg)
}else{
this.queryParam.isGetProjectDetail = 0
this.$message.error(res.msg)
}
})
},
......
......@@ -68,9 +68,9 @@
<div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div>
<div style="padding: 0 16px;" v-if="isSkeleton"><skeleton></skeleton></div>
<template v-if="!isSkeleton&&tableData.length>0">
<div v-for="(item,index) in tableData" :key="index" style="padding-bottom: 16px;">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class=" table-item-jf table-item " >
<div class="title_box">
<img :src="item.logoUrl?item.logoUrl:require('@/assets/images/enterprise.png')" >
......@@ -257,7 +257,7 @@ export default {
pageSize1: 5,
dataEXCEL:{},
pageFlag:true,
isSkeleton: false,
isSkeleton: true,
exportData:{
title:'查城投平台',
dialogExportVisible:false,
......@@ -321,6 +321,7 @@ export default {
}
},
search(pageNum){
this.isSkeleton = true
if(pageNum){
this.pageNum = pageNum
}
......@@ -349,6 +350,7 @@ export default {
this.params = params
params.keyword = this.keyword
zjyjAptitude(params).then(res=>{
this.isSkeleton=false
if(res.code==200){
this.tableData = res.data.list
this.total = res.data.total
......
<template>
<div class="search_result_box">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
<div class="table-item-jf table-item-jf1 empty-table" v-if="total == 0 && !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">暂无相关数据</div>
<div class="item-jf-text">抱歉,暂无数据,试试更换搜索条件吧</div>
</div>
<skeleton v-if="isSkeleton"></skeleton>
<el-table :data="tableData" v-if="total>0" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1" border highlight-current-row>
<el-table-column :resizable="false" type="index" label="序号" fixed width="60">
<template slot-scope="scope">
......@@ -35,14 +41,17 @@
<script>
import {list} from '@/api/supplier/assistant.js';
import skeleton from '@/views/project/projectList/component/skeleton';
export default {
components:{skeleton},
data(){
return{
tableData:[],
total: 0,
pageNum: 1,
pageSize:10,
isSkeleton:true,
}
},
created(){
......@@ -54,11 +63,13 @@ export default {
this.getList()
},
getList(){
this.isSkeleton = true
let params = {
pageNum:this.pageNum,
pageSize:this.pageSize,
}
list(params).then(res=>{
this.isSkeleton = false
if(res.code==200){
this.tableData = res.rows
this.total = res.total
......
......@@ -9,6 +9,7 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="100px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="解除限用时间">
<el-date-picker
v-model="formdata.time"
......@@ -19,12 +20,14 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
<el-form-item label="申请单位">
</el-col>
<el-col :span="8">
<el-form-item label="申请单位" class="i" label-width="80px">
<el-select v-model="formdata.user" placeholder="请选择">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
<el-option label="二公司" value="shanghai"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label=" ">
<el-button type="primary" size="small" @click="searchList">查询</el-button>
......@@ -82,7 +85,7 @@
</el-table-column>
<el-table-column label="解除限用理由" min-width="280" :resizable="false">
<template slot-scope="scope">
{{scope.row.frelievereason||"--"}}
<div class="wrap2">{{scope.row.frelievereason||"--"}}</div>
</template>
</el-table-column>
<el-table-column label="申请单位" min-width="120" :resizable="false">
......@@ -95,12 +98,12 @@
{{scope.row.fbeforestate||"--"}}
</template>
</el-table-column>
<el-table-column label="限用日期" min-width="150" :resizable="false">
<el-table-column label="限用日期" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.flimitdate||"--"}}
</template>
</el-table-column>
<el-table-column label="解除限用/禁用日期" min-width="150" :resizable="false">
<el-table-column label="解除限用/禁用日期" min-width="180" :resizable="false">
<template slot-scope="scope">
{{scope.row.fts||"--"}}
</template>
......@@ -217,7 +220,17 @@
}
</script>
<style scoped>
<style scoped lang="scss">
::v-deep .content-supplier {
.el-form-item__content {
width: calc(100% - 110px);
}
.i{
.el-form-item__content{
width: calc(100% - 95px);
}
}
}
</style>
......@@ -7,18 +7,23 @@
<!--</div>-->
<!--</div>-->
<div class="content-supplier">
<el-form :model="formdata" label-width="155px" label-position="right" :inline="true" >
<el-form :model="formdata" label-width="160px" label-position="right" :inline="true" >
<el-row>
<el-form-item label="供应商名称">
<el-col :span="8">
<el-form-item label="供应商名称" label-width="90px" class="i">
<el-input v-model="formdata.supplierName" placeholder="请输入供应商名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否为局名义被诉案件">
<el-select v-model="formdata.isGroupCase" placeholder="请选择" clearable>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
<el-form-item label="限用/禁用时间">
</el-col>
<el-col :span="8">
<el-form-item label="限用/禁用时间" label-width="115px" class="j">
<el-date-picker
v-model="formdata.times" clearable
type="daterange"
......@@ -28,8 +33,9 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item label=" ">
<el-form-item label=" " label-width="90px" >
<el-button type="primary" size="small" @click="searchList">查询</el-button>
<el-button size="small" @click="clears">重置</el-button>
</el-form-item>
......@@ -85,7 +91,7 @@
</el-table-column>
<el-table-column label="限用情形" min-width="280" :resizable="false">
<template slot-scope="scope">
{{scope.row.flimitsituation||"--"}}
<div class="wrap2">{{scope.row.flimitsituation||"--"}}</div>
</template>
</el-table-column>
<el-table-column label="禁用情景" min-width="280" :resizable="false">
......@@ -222,6 +228,20 @@
}
</script>
<style scoped>
<style scoped lang="scss">
::v-deep .content-supplier {
.el-form-item__content {
width: calc(100% - 170px);
}
.i{
.el-form-item__content{
width: calc(100% - 105px);
}
}
.j{
.el-form-item__content{
width: calc(100% - 120px);
}
}
}
</style>
......@@ -78,8 +78,8 @@
return{
encodeStr,
tableData:[
{name1:'2021年度',name2:'中建一局集团第二建筑有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'-',name5:'-',name6:'-'},
{name1:'2021年度',name2:'中建一局集团第二建筑有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'-',name5:'-',name6:'-'},
{name1:'2021年度',name2:'重庆大司空信息科技有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'-',name5:'-',name6:'-'},
{name1:'2021年度',name2:'重庆大司空信息科技有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'-',name5:'-',name6:'-'},
],
isSkeleton:false,
total:2,
......
......@@ -103,8 +103,8 @@
return{
encodeStr,
tableData:[
{name1:'河南水投分布式光伏项目(一期)工程EPC总承包',name2:'中建一局集团第二建筑有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'2023年11月25日',name5:'2023',name6:'-',name7:'涉诉禁用',name8:'A',name9:'B',name10:'-',name11:'-'},
{name1:'河南水投分布式光伏项目(一期)工程EPC总承包',name2:'中建一局集团第二建筑有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'-',name5:'-',name6:'-',name7:'-',name8:'-',name9:'-',name10:'-',name11:'-'}
{name1:'河南水投分布式光伏项目(一期)工程EPC总承包',name2:'重庆大司空信息科技有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'2023年11月25日',name5:'2023',name6:'-',name7:'涉诉禁用',name8:'A',name9:'B',name10:'-',name11:'-'},
{name1:'河南水投分布式光伏项目(一期)工程EPC总承包',name2:'重庆大司空信息科技有限公司',name3:'剧场及配套办公等2项(北京市文化中心)',name4:'-',name5:'-',name6:'-',name7:'-',name8:'-',name9:'-',name10:'-',name11:'-'}
],
isSkeleton:false,
total:2,
......
......@@ -9,50 +9,67 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="82px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="分供方名称">
<el-input v-model="formdata.customerName" placeholder="请输入分供方名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册城市">
<el-cascader
v-model="formdata.areas"
:options="addressList" :collapse-tags="true" :show-all-levels="false" clearable
:props="provienceprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商状态">
<el-select v-model="formdata.customerState" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in customstate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="资质等级">
<el-select v-model="formdata.credential" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in credential" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专业类别">
<el-cascader clearable
v-model="formdata.groupSpecialtys"
:options="groupSpecialty" :collapse-tags="true"
:props="groupprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="评价等级">
<el-select v-model="formdata.creditLevel" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in creditlevel" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="纳税人身份">
<el-select v-model="formdata.paytaxType" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in paytaxtype" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人税率">
<el-select v-model="formdata.taxRate" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in taxrate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="准入时间">
<el-date-picker
v-model="formdata.times"
......@@ -63,6 +80,7 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form-item label=" ">
......@@ -168,7 +186,7 @@
{{scope.row.paytaxType||"--"}}
</template>
</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">
{{scope.row.taxRate||"--"}}
</template>
......
......@@ -9,55 +9,74 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="82px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="供应商名称">
<el-input v-model="formdata.customerName" placeholder="请输入供应商名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="劳务队长">
<el-input v-model="formdata.leaderName" placeholder="请输入劳务队长"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册城市">
<el-cascader
v-model="formdata.areas"
:options="addressList" :collapse-tags="true" :show-all-levels="false" clearable
:props="provienceprops"></el-cascader>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="供应商状态">
<el-select v-model="formdata.customerState" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in customstate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="资质等级">
<el-select v-model="formdata.credential" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in credential" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专业类别">
<el-cascader clearable
v-model="formdata.groupSpecialtys"
:options="groupSpecialty" :collapse-tags="true"
:props="groupprops"></el-cascader>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="评价等级">
<el-select v-model="formdata.creditLevel" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in creditlevel" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人身份">
<el-select v-model="formdata.paytaxType" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in paytaxtype" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人税率">
<el-select v-model="formdata.taxRate" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in taxrate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="准入时间">
<el-date-picker
v-model="formdata.times"
......@@ -68,6 +87,7 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form-item label=" ">
......@@ -180,7 +200,7 @@
{{scope.row.paytaxType||"--"}}
</template>
</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">
{{scope.row.taxRate||"--"}}
</template>
......
......@@ -9,40 +9,55 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="82px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="分供方名称">
<el-input v-model="formdata.customerName" placeholder="请输入分供方名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册城市">
<el-cascader
<el-cascader style="width: 100%"
v-model="formdata.areas"
:options="addressList" :collapse-tags="true" :show-all-levels="false" clearable
:props="provienceprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商类别">
<el-select v-model="formdata.customerClass" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in suppliertype" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="供应商状态">
<el-select v-model="formdata.customerState" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in customstate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="评价等级">
<el-select v-model="formdata.creditLevel" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in creditlevel" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="资质等级">
<el-select v-model="formdata.credential" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in credential" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col :span="8">
<el-form-item label="准入时间">
<el-date-picker
v-model="formdata.times"
......@@ -53,11 +68,14 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="涉诉状态">
<el-select multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in litigationstatus" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form-item label=" ">
......@@ -96,7 +114,7 @@
<el-table-column label="供应商编号" prop="customerCode" :fixed="tableColumnFixed" width="120" :resizable="false">
</el-table-column>
<el-table-column label="供应商名称" :fixed="tableColumnFixed" width="305" :resizable="false">
<el-table-column label="供应商名称" :fixed="tableColumnFixed" width="380" :resizable="false">
<template slot-scope="scope">
<div style="display:flex;align-items:center">
<el-tooltip placement="top" v-if="scope.row.customerText.length>20">
......@@ -161,7 +179,7 @@
{{scope.row.paytaxType||"--"}}
</template>
</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">
{{scope.row.taxRate||"--"}}
</template>
......
......@@ -9,50 +9,67 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="82px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="分供方名称">
<el-input v-model="formdata.customerName" placeholder="请输入分供方名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册城市">
<el-cascader
v-model="formdata.areas"
:options="addressList" :collapse-tags="true" :show-all-levels="false" clearable
:props="provienceprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商状态">
<el-select v-model="formdata.customerState" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in customstate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="资质等级">
<el-select v-model="formdata.credential" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in credential" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专业类别">
<el-cascader clearable
v-model="formdata.groupSpecialtys"
:options="groupSpecialty" :collapse-tags="true"
:props="groupprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="评价等级">
<el-select v-model="formdata.creditLevel" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in creditlevel" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="纳税人身份">
<el-select v-model="formdata.paytaxType" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in paytaxtype" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人税率">
<el-select v-model="formdata.taxRate" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in taxrate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="准入时间">
<el-date-picker
v-model="formdata.times"
......@@ -63,6 +80,7 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form-item label=" ">
......@@ -162,7 +180,7 @@
{{scope.row.paytaxType||"--"}}
</template>
</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">
{{scope.row.taxRate||"--"}}
</template>
......@@ -441,6 +459,7 @@
this.total = res.total
this.tableData.forEach(item=>{
item.customerText = item.customerName.replace(/<\/?[^>]+(style=('|")[^'"]*)?>/gi, '')
item.constructJobScope = item.constructJobScope == "无"?"--":item.constructJobScope
})
})
},
......
......@@ -9,50 +9,67 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="82px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="供应商名称">
<el-input v-model="formdata.customerName" placeholder="请输入供应商名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册城市">
<el-cascader
v-model="formdata.areas"
:options="addressList" :collapse-tags="true" :show-all-levels="false" clearable
:props="provienceprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商状态">
<el-select v-model="formdata.customerState" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in customstate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="资质等级">
<el-select v-model="formdata.credential" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in credential" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物资类别">
<el-cascader clearable
v-model="formdata.groupSpecialtys"
:options="groupSpecialty" :collapse-tags="true"
:props="groupprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="评价等级">
<el-select v-model="formdata.creditLevel" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in creditlevel" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="纳税人身份">
<el-select v-model="formdata.paytaxType" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in paytaxtype" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人税率">
<el-select v-model="formdata.taxRate" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in taxrate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="准入时间">
<el-date-picker
v-model="formdata.times"
......@@ -63,6 +80,7 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form-item label=" ">
......@@ -164,7 +182,7 @@
{{scope.row.paytaxType||"--"}}
</template>
</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">
{{scope.row.taxRate||"--"}}
</template>
......
......@@ -9,50 +9,67 @@
<div class="content-supplier">
<el-form :model="formdata" label-width="82px" label-position="right" :inline="true" >
<el-row>
<el-col :span="8">
<el-form-item label="供应商名称">
<el-input v-model="formdata.customerName" placeholder="请输入供应商名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册城市">
<el-cascader
v-model="formdata.areas"
:options="addressList" :collapse-tags="true" :show-all-levels="false" clearable
:props="provienceprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商状态">
<el-select v-model="formdata.customerState" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in customstate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="资质等级">
<el-select v-model="formdata.credential" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in credential" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物资类别">
<el-cascader clearable
v-model="formdata.groupSpecialtys"
:options="groupSpecialty" :collapse-tags="true"
:props="groupprops"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="评价等级">
<el-select v-model="formdata.creditLevel" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in creditlevel" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="纳税人身份">
<el-select v-model="formdata.paytaxType" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in paytaxtype" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人税率">
<el-select v-model="formdata.taxRate" multiple placeholder="请选择" :collapse-tags="true" clearable>
<el-option v-for="(item,index) in taxrate" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="准入时间">
<el-date-picker
v-model="formdata.times"
......@@ -63,6 +80,7 @@
end-placeholder="年/月/日">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form-item label=" ">
......@@ -156,7 +174,7 @@
{{scope.row.paytaxType||"--"}}
</template>
</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">
{{scope.row.taxRate||"--"}}
</template>
......
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