Commit 96864d26 authored by tianhongyang's avatar tianhongyang

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

parents 94265561 83d014ec
...@@ -61,9 +61,9 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService ...@@ -61,9 +61,9 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService
} }
private void verifyBean(BusinessOpenTender bo){ private void verifyBean(BusinessOpenTender bo){
if(ObjectUtils.isArray(bo.getBusinessId())) throw new BeanException("项目id不能为空!"); if(ObjectUtils.isEmpty(bo.getBusinessId())) throw new BeanException("项目id不能为空!");
if(ObjectUtils.isArray(bo.getTenderer())) throw new BeanException("开标人不能为空!"); if(ObjectUtils.isEmpty(bo.getTenderer())) throw new BeanException("开标人不能为空!");
if(ObjectUtils.isArray(bo.getTendererNature())) throw new BeanException("企业性质不能为空!"); if(ObjectUtils.isEmpty(bo.getTendererNature())) throw new BeanException("企业性质不能为空!");
if(ObjectUtils.isArray(bo.getTenderAmount())) throw new BeanException("投标金额不能为空!"); if(ObjectUtils.isEmpty(bo.getTenderAmount())) throw new BeanException("投标金额不能为空!");
} }
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
height: 100%; height: 100%;
transition: margin-left 0.28s; transition: margin-left 0.28s;
margin-left: $base-sidebar-width; margin-left: $base-sidebar-width;
width: calc(100% - $base-sidebar-width); width: calc(100% - #{$base-sidebar-width});
position: relative; position: relative;
background: #f5f5f5; background: #f5f5f5;
} }
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true"> <svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true">
<use :xlink:href="iconName(tag)" /> <use :xlink:href="iconName(tag)" />
</svg> </svg>
<span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span> <span :id="isActive(tag)?'tagTitle':''">{{ tag.title.replace(/<[^>]+>/g, '') }}</span>
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
<i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" /> <i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" />
</router-link> </router-link>
......
...@@ -159,6 +159,18 @@ export const constantRoutes = [ ...@@ -159,6 +159,18 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/JumpPage.html',
component: () => import('@/views/detail'),
}
]
},
//乙方-企业详情 //乙方-企业详情
{ {
path: '/company', path: '/company',
......
...@@ -840,6 +840,78 @@ export default { ...@@ -840,6 +840,78 @@ export default {
} }
} }
} }
::v-deep .normal-search-container {
display: flex;
align-items: center;
&.is-hover-search {
width: 238px;
background: #f4f6f9;
border-radius: 4px 4px 4px 4px;
& > img {
cursor: unset;
}
}
&:hover {
& > span {
color: #0081ff;
}
}
& > img {
width: 16px;
height: 16px;
margin-left: 12px;
cursor: pointer;
}
& > span {
color: rgba(35, 35, 35, 0.8);
font-weight: 400;
margin-left: 8px;
line-height: 22px;
font-size: 14px;
cursor: pointer;
}
.el-input {
& > .el-input__inner {
border: none;
height: 32px;
line-height: 32px;
caret-color: #0081ff;
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
background: #f4f6f9;
padding-right: 26px;
padding-left: 8px;
&::placeholder {
color: rgba(35, 35, 35, 0.4) !important;
font-size: 14px !important;
line-height: 32px;
}
}
.el-input__suffix {
right: 12px;
display: flex;
align-items: center;
.el-input__suffix-inner {
height: 14px;
width: 14px;
}
img {
cursor: pointer;
vertical-align: unset;
margin-bottom: 14px;
}
}
}
}
} }
} }
.box { .box {
......
...@@ -8,10 +8,23 @@ ...@@ -8,10 +8,23 @@
<div class="p2">建议调整关键词或筛选条件,重新搜索</div> <div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div> </div>
<div class="table_search"> <div class="table_search">
<div class="newSearch"> <div>
<el-input type="text" v-model="searchParam.companyName" clearable placeholder="输入企业名称查询" @change="clearname" > <!-- 未点击前的输入框样式 -->
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" width="16px" @click="handleCurrentChange(1)"></i> <div class="normal-search-container" :class="{'is-hover-search' : hover}" @mouseover="searchHover($event)"
</el-input> @mouseleave="searchUnHover($event,searchParam.companyName)">
<img src="@/assets/images/enterprise/enterprise-search-icon.svg" alt="">
<span v-show="!hover && !searchParam.companyName">搜索</span>
<el-input v-model="searchParam.companyName" placeholder="输入关键词查询"
@focus="searchFocus($event)" @blur="searchBlur($event)" @keydown.native.enter="getCustomerList"
@input="value => searchInput(value)" v-show="hover || searchParam.companyName">
<template slot="suffix">
<transition mode="out-in" appear name="fade">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" alt="" @click.stop="searchParam.companyName = '';getCustomerList()"
v-show="showClearIcon">
</transition>
</template>
</el-input>
</div>
</div> </div>
<div class="dc"> <div class="dc">
<div class="total">共{{tableData.total}}条</div> <div class="total">共{{tableData.total}}条</div>
...@@ -239,6 +252,8 @@ export default { ...@@ -239,6 +252,8 @@ export default {
keys:1, keys:1,
RLcompanyName:'',//重新认领企业名称 RLcompanyName:'',//重新认领企业名称
isSkeleton:true, isSkeleton:true,
showClearIcon: false,
hover: false,
} }
}, },
created() { created() {
...@@ -336,6 +351,28 @@ export default { ...@@ -336,6 +351,28 @@ export default {
this.searchParam.pageNum=val this.searchParam.pageNum=val
this.getCustomerList() this.getCustomerList()
}, },
searchFocus(event) {
const { target } = event;
if (target?.value?.length) {
this.showClearIcon=true
}
},
searchBlur(event) {
this.showClearIcon=false
},
searchInput(value) {
if (value?.length) {
this.showClearIcon=true
}
},
searchHover(event) {
this.hover=true
},
searchUnHover(event, value) {
if (!value) {
this.hover=false
}
},
} }
} }
</script> </script>
...@@ -358,6 +395,81 @@ export default { ...@@ -358,6 +395,81 @@ export default {
padding-top: 16px; padding-top: 16px;
width: 100%; width: 100%;
height: 100%; height: 100%;
.table_search{
::v-deep .normal-search-container {
display: flex;
align-items: center;
line-height: 32px;
height: 32px;
&.is-hover-search {
width: 238px;
background: #f4f6f9;
border-radius: 4px 4px 4px 4px;
& > img {
cursor: unset;
}
}
&:hover {
& > span {
color: #0081ff;
}
}
& > img {
width: 16px;
height: 16px;
margin-left: 12px;
cursor: pointer;
}
& > span {
color: rgba(35, 35, 35, 0.8);
font-weight: 400;
margin-left: 8px;
line-height: 22px;
font-size: 14px;
cursor: pointer;
}
.el-input {
& > .el-input__inner {
border: none;
height: 32px;
line-height: 32px;
caret-color: #0081ff;
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
background: #f4f6f9;
padding-right: 26px;
padding-left: 8px;
&::placeholder {
color: rgba(35, 35, 35, 0.4) !important;
font-size: 14px !important;
line-height: 32px;
}
}
.el-input__suffix {
right: 12px;
display: flex;
align-items: center;
.el-input__suffix-inner {
height: 14px;
width: 14px;
}
img {
cursor: pointer;
vertical-align: unset;
margin-bottom: 14px;
}
}
}
}
}
} }
.box{ .box{
position: relative; position: relative;
......
...@@ -37,7 +37,7 @@ export default { ...@@ -37,7 +37,7 @@ export default {
this.domain='https://plug.jiansheku.com' this.domain='https://plug.jiansheku.com'
}else { }else {
this.domain='https://pre-plug.jiansheku.com' this.domain='https://pre-plug.jiansheku.com'
this.domain='http://192.168.60.210:3400' // this.domain='http://192.168.60.210:3400'
} }
this.gettokens(); this.gettokens();
}, },
......
...@@ -2776,12 +2776,10 @@ export default { ...@@ -2776,12 +2776,10 @@ export default {
}, },
toEnterprise(id, html, type,name) { toEnterprise(id, html, type,name) {
// this.$tab.openPage(name, '/company/' + encodeStr(id) + '/' + (html ? '?html=' + html : '') + (type ? '&flag=true&type=' + type : '')) this.$tab.openPage(name, '/company/' + encodeStr(id) + '/' + (html ? html + '/' : '') + (type ? '?flag=true&type=' + type : ''))
this.$router.push({path:'/company/' + encodeStr(id) + '/' + (html ? html : '') + (type ? '?flag=true&type=' + type : '')} )
}, },
toEnterpriseDetail(id,name) { toEnterpriseDetail(id,name) {
// this.$tab.openPage(name, '/company/' + encodeStr(id) + '/?index=true') this.$tab.openPage(name, '/company/' + encodeStr(id) )
this.$router.push({path:'/company/' + encodeStr(id) + '/?index=true'} )
}, },
labelsWidth(e, t = 0) { labelsWidth(e, t = 0) {
......
...@@ -221,7 +221,7 @@ ...@@ -221,7 +221,7 @@
<p>温馨提示:此操作可能会影响正在使用的用户,建议合理安排同步时间</p> <p>温馨提示:此操作可能会影响正在使用的用户,建议合理安排同步时间</p>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible1 = false">取消</el-button> <el-button @click="dialogVisible1 = false">取消</el-button>
<el-button type="primary" @click="handleConfirm()" >同步</el-button> <el-button type="primary" @click="handleConfirm()" :loading="state">同步</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
...@@ -305,7 +305,8 @@ ...@@ -305,7 +305,8 @@
}, },
//企业方案列表 //企业方案列表
packageList:[], packageList:[],
syncItem:{} syncItem:{},
state:false,
}; };
}, },
created() { created() {
...@@ -390,8 +391,10 @@ ...@@ -390,8 +391,10 @@
/** 同步按钮操作 */ /** 同步按钮操作 */
handleConfirm() { handleConfirm() {
let _this = this let _this = this
this.state=true
syncTenantPackage({tenantId:this.syncItem.tenantId,packageId:this.syncItem.packageId}).then(res => { syncTenantPackage({tenantId:this.syncItem.tenantId,packageId:this.syncItem.packageId}).then(res => {
if(res.code === 200){ if(res.code === 200){
this.state=false
_this.$message.success(res.msg); _this.$message.success(res.msg);
this.dialogVisible1=false; this.dialogVisible1=false;
} }
......
...@@ -32,19 +32,35 @@ ...@@ -32,19 +32,35 @@
<!--<i slot="prefix" class="el-icon-search"></i>--> <!--<i slot="prefix" class="el-icon-search"></i>-->
<!--<el-button slot="append" @click="handleSearch()">搜索</el-button>--> <!--<el-button slot="append" @click="handleSearch()">搜索</el-button>-->
<!--</el-input>--> <!--</el-input>-->
<!--&lt;!&ndash; 未点击前的输入框样式 &ndash;&gt;-->
<!--<div class="normal-search-container" @click="showSearchBox = true" v-if="!showSearchBox">-->
<!--<img src="@/assets/images/enterprise/enterprise-search-icon.svg" alt="">-->
<!--<span>搜索</span>-->
<!--</div>-->
<!--&lt;!&ndash; 输入框展开后样式 &ndash;&gt;-->
<!--<transition @enter="onEnter" appear mode="out-in">-->
<!--<div class="cooperate-name enterprise-search-container" id="focus1" v-if="showSearchBox">-->
<!--<el-input clearable @clear="handleSearch" @focus="clickFocus('focus1')" @blur="clickFocus('focus1')" v-model="queryParams.ename"-->
<!--placeholder="输入关键词查询"></el-input>-->
<!--<span @click="handleSearch">搜索</span>-->
<!--</div>-->
<!--</transition>-->
<!-- 未点击前的输入框样式 --> <!-- 未点击前的输入框样式 -->
<div class="normal-search-container" @click="showSearchBox = true" v-if="!showSearchBox"> <div class="normal-search-container" :class="{'is-hover-search' : hover}" @mouseover="searchHover($event)"
@mouseleave="searchUnHover($event,queryParams.ename)">
<img src="@/assets/images/enterprise/enterprise-search-icon.svg" alt=""> <img src="@/assets/images/enterprise/enterprise-search-icon.svg" alt="">
<span>搜索</span> <span v-show="!hover && !queryParams.ename">搜索</span>
<el-input v-model="queryParams.ename" placeholder="输入关键词查询"
@focus="searchFocus($event)" @blur="searchBlur($event)" @keydown.native.enter="handleSearch"
@input="value => searchInput(value)" v-show="hover || queryParams.ename">
<template slot="suffix">
<transition mode="out-in" appear name="fade">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" alt="" @click.stop="queryParams.ename = '';handleSearch()"
v-show="showClearIcon">
</transition>
</template>
</el-input>
</div> </div>
<!-- 输入框展开后样式 -->
<transition @enter="onEnter" appear mode="out-in">
<div class="cooperate-name enterprise-search-container" id="focus1" v-if="showSearchBox">
<el-input clearable @clear="handleSearch" @focus="clickFocus('focus1')" @blur="clickFocus('focus1')" v-model="queryParams.ename"
placeholder="输入关键词查询"></el-input>
<span @click="handleSearch">搜索</span>
</div>
</transition>
<span class="total">共{{tableDataTotal}}条</span> <span class="total">共{{tableDataTotal}}条</span>
</div> </div>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
...@@ -157,7 +173,8 @@ export default { ...@@ -157,7 +173,8 @@ export default {
timePlaceholder:'中标时间', timePlaceholder:'中标时间',
inputID1:this.getUid(), inputID1:this.getUid(),
inputID2:this.getUid(), inputID2:this.getUid(),
showSearchBox: false showClearIcon: false,
hover: false,
} }
}, },
created() { created() {
...@@ -315,6 +332,28 @@ export default { ...@@ -315,6 +332,28 @@ export default {
this.querySubmit() this.querySubmit()
} }
}, },
searchFocus(event) {
const { target } = event;
if (target?.value?.length) {
this.showClearIcon=true
}
},
searchBlur(event) {
this.showClearIcon=false
},
searchInput(value) {
if (value?.length) {
this.showClearIcon=true
}
},
searchHover(event) {
this.hover=true
},
searchUnHover(event, value) {
if (!value) {
this.hover=false
}
},
formatStatus: function(row, column, cellValue) { formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-' return cellValue? cellValue : '-'
}, },
...@@ -593,12 +632,21 @@ export default { ...@@ -593,12 +632,21 @@ export default {
margin-bottom: 3px; margin-bottom: 3px;
} }
} }
.normal-search-container { ::v-deep .normal-search-container {
margin-left: 12px;
display: flex; display: flex;
align-items: center; align-items: center;
cursor: pointer; line-height: 32px;
height: 34px; height: 32px;
&.is-hover-search {
width: 238px;
background: #f4f6f9;
border-radius: 4px 4px 4px 4px;
& > img {
cursor: unset;
}
}
&:hover { &:hover {
& > span { & > span {
color: #0081ff; color: #0081ff;
...@@ -609,15 +657,52 @@ export default { ...@@ -609,15 +657,52 @@ export default {
width: 16px; width: 16px;
height: 16px; height: 16px;
margin-left: 12px; margin-left: 12px;
cursor: pointer;
} }
& > span { & > span {
color: #232323;
color: rgba(35, 35, 35, 0.8); color: rgba(35, 35, 35, 0.8);
font-weight: 400; font-weight: 400;
margin-left: 8px; margin-left: 8px;
line-height: 22px; line-height: 22px;
font-size: 14px; font-size: 14px;
cursor: pointer;
}
.el-input {
& > .el-input__inner {
border: none;
height: 32px;
line-height: 32px;
caret-color: #0081ff;
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
background: #f4f6f9;
padding-right: 26px;
padding-left: 8px;
&::placeholder {
color: rgba(35, 35, 35, 0.4) !important;
font-size: 14px !important;
line-height: 32px;
}
}
.el-input__suffix {
right: 12px;
display: flex;
align-items: center;
.el-input__suffix-inner {
height: 14px;
width: 14px;
}
img {
cursor: pointer;
vertical-align: unset;
margin-bottom: 14px;
}
}
} }
} }
.cooperate-name { .cooperate-name {
......
...@@ -44,7 +44,7 @@ export default { ...@@ -44,7 +44,7 @@ export default {
} else { } else {
this.domain = 'https://pre-plug.jiansheku.com'; this.domain = 'https://pre-plug.jiansheku.com';
// this.domain = 'http://192.168.60.8:3400'; // this.domain = 'http://192.168.60.8:3400';
this.domain = 'http://192.168.60.104:3400'; // this.domain = 'http://192.168.60.210:3400';
} }
this.gettokens(); this.gettokens();
this.iframeObserver(); this.iframeObserver();
......
...@@ -4,35 +4,35 @@ ...@@ -4,35 +4,35 @@
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="label">项目名称</div> <div class="label">项目名称</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入项目名称关键字" v-model="establishmentDto.keyword" ></el-input> placeholder="请输入项目名称关键字" v-model="establishmentDto.keyword" ></el-input>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">项目业主</div> <div class="label">项目业主</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入项目业主名称或关键词" v-model="establishmentDto.companyName" ></el-input> placeholder="请输入项目业主名称或关键词" v-model="establishmentDto.companyName" ></el-input>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">审批部门</div> <div class="label">审批部门</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入审批部门名称或关键词" v-model="establishmentDto.examineOffice" ></el-input> placeholder="请输入审批部门名称或关键词" v-model="establishmentDto.examineOffice" ></el-input>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">建设地点</div> <div class="label">建设地点</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入建设地点名称关键词" v-model="establishmentDto.buildAddre" ></el-input> placeholder="请输入建设地点名称关键词" v-model="establishmentDto.buildAddre" ></el-input>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">建设规模</div> <div class="label">建设规模</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入建设规模名称关键词" v-model="establishmentDto.buildScale" ></el-input> placeholder="请输入建设规模名称关键词" v-model="establishmentDto.buildScale" ></el-input>
</div> </div>
</div> </div>
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="select-popper"> <div class="select-popper">
<span :class="{ color_text: establishmentDto.industry.length }"> <span :class="{ color_text: establishmentDto.industry.length }">
所属行业{{establishmentDto.industry.length? establishmentDto.industry.length + "项": ""}} 所属行业{{establishmentDto.industry.length? establishmentDto.industry.length + "项": ""}}
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="select-popper"> <div class="select-popper">
<span :class="{color_text:establishmentDto.province.length ||establishmentDto.city.length ||establishmentDto.district.length,}"> <span :class="{color_text:establishmentDto.province.length ||establishmentDto.city.length ||establishmentDto.district.length,}">
项目属地{{establishmentDto.province.length ||establishmentDto.city.length ||establishmentDto.district.length 项目属地{{establishmentDto.province.length ||establishmentDto.city.length ||establishmentDto.district.length
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
总投资{{establishmentDto.startMoney || establishmentDto.endMoney? " 1项": ""}}<i class="el-icon-caret-bottom"></i> 总投资{{establishmentDto.startMoney || establishmentDto.endMoney? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in moneyOptions" :class="establishmentDto.startMoney == item.value[0] &&establishmentDto.endMoney == item.value[1] <el-dropdown-item v-for="(item, i) in moneyOptions" :class="establishmentDto.startMoney == item.value[0] &&establishmentDto.endMoney == item.value[1]
&&!startMoney &&!endMoney? 'color_text' : ''" :key="i" :command="item.value">{{ item.label }}</el-dropdown-item> &&!startMoney &&!endMoney? 'color_text' : ''" :key="i" :command="item.value">{{ item.label }}</el-dropdown-item>
<el-dropdown-item command="" style="padding: 0; text-indent: 20px"> <el-dropdown-item command="" style="padding: 0; text-indent: 20px">
<div @mouseenter="moneyShowPopper = true" @mouseleave="moneyShowPopper = false"> <div @mouseenter="moneyShowPopper = true" @mouseleave="moneyShowPopper = false">
...@@ -155,23 +155,23 @@ ...@@ -155,23 +155,23 @@
</el-dropdown-menu> </el-dropdown-menu>
</div> </div>
</el-dropdown> </el-dropdown>
</div> </div>
</div> </div>
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="geduan"> <div class="geduan">
</div> </div>
</div> </div>
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="search-new"> <div class="search-new">
<span @click="search()">查询</span> <span @click="search()">查询</span>
<span @click="reset">重置</span> <span @click="reset">重置</span>
</div> </div>
</div> </div>
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
...@@ -186,13 +186,13 @@ ...@@ -186,13 +186,13 @@
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span> <span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span>
</p> </p>
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton"> <ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
...@@ -210,8 +210,8 @@ ...@@ -210,8 +210,8 @@
{{item.domicile}} {{item.domicile}}
</span> </span>
</div> </div>
<div class="list-content"> <div class="list-content">
<p class="list-content-text" v-if="item.companyName"> <p class="list-content-text" v-if="item.companyName">
<span>项目业主:</span> <span>项目业主:</span>
...@@ -221,11 +221,15 @@ ...@@ -221,11 +221,15 @@
<span v-else v-html="item.companyName"> <span v-else v-html="item.companyName">
</span> </span>
</p> </p>
<p class="list-content-text"v-if="item.money"> <p class="list-content-text"v-if="item.money">
<span>总投资:</span> <span>总投资:</span>
<span v-html="item.money+'万元'"></span> <span v-html="item.money+'万元'"></span>
</p> </p>
<p class="list-content-text"v-if="item.handleTime">
<span>最新审批日期:</span>
<span>{{item.handleTime}}</span>
</p>
<p class="list-content-text"v-if="item.planStartTime"> <p class="list-content-text"v-if="item.planStartTime">
<span>计划开工日期:</span> <span>计划开工日期:</span>
<span>{{item.planStartTime}}</span> <span>{{item.planStartTime}}</span>
...@@ -238,18 +242,18 @@ ...@@ -238,18 +242,18 @@
<span>是否为民间推介项目:</span> <span>是否为民间推介项目:</span>
<span>{{item.isProject==0?'否':'是'}}</span> <span>{{item.isProject==0?'否':'是'}}</span>
</p> </p>
</div> </div>
<div class="list-content" v-if="item.buildScale"> <div class="list-content" v-if="item.buildScale">
<p class="list-content-text"> <p class="list-content-text">
<span class="content-text-gc">建设规模:</span> <span class="content-text-gc">建设规模:</span>
<span class="content-text-p" v-html="item.buildScale"></span> <span class="content-text-p" v-html="item.buildScale"></span>
</p> </p>
</div> </div>
</li> </li>
</ul> </ul>
<div class="pagination clearfix" v-if="total>0&&pageFlag"> <div class="pagination clearfix" v-if="total>0&&pageFlag">
...@@ -262,11 +266,11 @@ ...@@ -262,11 +266,11 @@
:total="total>limit*500?501*limit:total"> :total="total>limit*500?501*limit:total">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
...@@ -437,14 +441,14 @@ ...@@ -437,14 +441,14 @@
planEndTimeShowPopper: false, planEndTimeShowPopper: false,
pageFlag: true, pageFlag: true,
conditionsArr: [], conditionsArr: [],
tableData:[], tableData:[],
total:0, total:0,
page:1, page:1,
limit:20 limit:20
}; };
}, },
computed: { computed: {
checkEstablishmentDto() { checkEstablishmentDto() {
let arr = []; let arr = [];
...@@ -565,7 +569,7 @@ ...@@ -565,7 +569,7 @@
}, },
mounted() { mounted() {
this.init(); this.init();
}, },
...@@ -575,11 +579,11 @@ ...@@ -575,11 +579,11 @@
this.projectTypeOptions = res.projectType; this.projectTypeOptions = res.projectType;
this.industryOptions = res.establishmentIndustry this.industryOptions = res.establishmentIndustry
}).catch(error=>{ }).catch(error=>{
}); });
}, },
refresh(value) { refresh(value) {
if (value) { if (value) {
this.$router.go(0) this.$router.go(0)
...@@ -596,9 +600,9 @@ ...@@ -596,9 +600,9 @@
this.$message.warning(`对不起,最多只能访问500页`); this.$message.warning(`对不起,最多只能访问500页`);
this.reloadPage() this.reloadPage()
}else{ }else{
this.page = page; this.page = page;
this.search(page, this.limit); this.search(page, this.limit);
this.jump1(); window.scrollTo(0, 400);
} }
}, },
fieldCommand(command) { fieldCommand(command) {
...@@ -627,7 +631,7 @@ ...@@ -627,7 +631,7 @@
if(!this.ckhasValue(data)){ if(!this.ckhasValue(data)){
data={}; data={};
} }
let params = { let params = {
page: { page: {
page: this.page, page: this.page,
...@@ -644,12 +648,12 @@ ...@@ -644,12 +648,12 @@
this.total=res.data.total; this.total=res.data.total;
} }
}).catch(error=>{ }).catch(error=>{
}); });
}, },
deleteDomicile() { deleteDomicile() {
this.$refs.address.handleClear(); this.$refs.address.handleClear();
}, },
...@@ -1051,7 +1055,7 @@ ...@@ -1051,7 +1055,7 @@
}); });
} }
}, },
clearHandleTime() { clearHandleTime() {
this.handleTime = ""; this.handleTime = "";
this.handleTimeValue = ""; this.handleTimeValue = "";
...@@ -1095,10 +1099,10 @@ ...@@ -1095,10 +1099,10 @@
}else{ }else{
this.$router.push({path: '/company/'+this.encodeStr(companyId)}) this.$router.push({path: '/company/'+this.encodeStr(companyId)})
} }
} }
}).catch(error=>{ }).catch(error=>{
}); });
}, },
ckhasValue(param){ ckhasValue(param){
...@@ -1111,7 +1115,7 @@ ...@@ -1111,7 +1115,7 @@
return ckhasValue; return ckhasValue;
}, },
hasValueThroughObj(times,param,excludeKeys,excludeValues){ hasValueThroughObj(times,param,excludeKeys,excludeValues){
if(times==0){ if(times==0){
this.hasValue=false; this.hasValue=false;
} }
...@@ -1126,7 +1130,7 @@ ...@@ -1126,7 +1130,7 @@
}else{ }else{
if(objParam instanceof Object) { if(objParam instanceof Object) {
if (!excludeKeys.includes(key)&&!excludeValues.includes(objParam[key])) { if (!excludeKeys.includes(key)&&!excludeValues.includes(objParam[key])) {
this.hasValue =true; this.hasValue =true;
// return hasValue; // return hasValue;
} }
...@@ -1141,7 +1145,7 @@ ...@@ -1141,7 +1145,7 @@
this.hasValueThroughObj(1,param[key],excludeKeys,excludeValues); this.hasValueThroughObj(1,param[key],excludeKeys,excludeValues);
}else{ }else{
if (!excludeKeys.includes(key)&&!excludeValues.includes(param[key])) { if (!excludeKeys.includes(key)&&!excludeValues.includes(param[key])) {
this.hasValue =true; this.hasValue =true;
// return hasValue; // return hasValue;
} }
...@@ -1156,7 +1160,7 @@ ...@@ -1156,7 +1160,7 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content{ .content{
padding: 0px 16px; padding: 0px 16px;
padding-top: 16px; padding-top: 16px;
...@@ -1173,7 +1177,7 @@ ...@@ -1173,7 +1177,7 @@
color: rgba(35,35,35,0.8); color: rgba(35,35,35,0.8);
} }
.content_right{ .content_right{
.ename_input{ .ename_input{
width: 640px; width: 640px;
margin-right: 20px; margin-right: 20px;
...@@ -1182,12 +1186,12 @@ ...@@ -1182,12 +1186,12 @@
width: 640px; width: 640px;
} }
} }
.item_ckquery_list { .item_ckquery_list {
display: flex; display: flex;
} }
.item_ckquery_list .el-input__icon { .item_ckquery_list .el-input__icon {
position: relative; position: relative;
top: 1px; top: 1px;
...@@ -1197,7 +1201,7 @@ ...@@ -1197,7 +1201,7 @@
} }
.register_count_ipt{ .register_count_ipt{
margin-left: 0px; margin-left: 0px;
} }
.register_count_ipt .el-input__inner{ .register_count_ipt .el-input__inner{
width: 174px; width: 174px;
...@@ -1230,19 +1234,19 @@ ...@@ -1230,19 +1234,19 @@
padding: 1px 5px !important; padding: 1px 5px !important;
} }
} }
} }
.content_item_padding0{ .content_item_padding0{
padding: 0; padding: 0;
} }
} }
.bottomlist{ .bottomlist{
width: 100%; width: 100%;
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px;
.bottomlist-title{ .bottomlist-title{
display: flex; display: flex;
...@@ -1251,11 +1255,11 @@ ...@@ -1251,11 +1255,11 @@
margin-top: 12px; margin-top: 12px;
padding: 16px ; padding: 16px ;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
.title-right{ .title-right{
display: flex; display: flex;
align-items: center; align-items: center;
p:last-child{ p:last-child{
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -1284,7 +1288,7 @@ ...@@ -1284,7 +1288,7 @@
} }
} }
.bottomlist-content{ .bottomlist-content{
padding-bottom: 0px; padding-bottom: 0px;
} }
.bottomlist-list{ .bottomlist-list{
...@@ -1315,26 +1319,26 @@ ...@@ -1315,26 +1319,26 @@
margin-right: 8px; margin-right: 8px;
padding: 3px 7px; padding: 3px 7px;
font-size: 12px; font-size: 12px;
} }
.list-label-wl{ .list-label-wl{
background: #e8f7f0; background: #e8f7f0;
color: #38c8bf; color: #38c8bf;
} }
.list-label-lx{ .list-label-lx{
background: #e4f3fd; background: #e4f3fd;
color: #41a1fd; color: #41a1fd;
} }
} }
.list-content{ .list-content{
margin-top: 8px; margin-top: 8px;
display: flex; display: flex;
justify-content: start; justify-content: start;
align-items: center; align-items: center;
.list-content-text{ .list-content-text{
margin-top: 7px; margin-top: 7px;
display: flex; display: flex;
...@@ -1342,7 +1346,7 @@ ...@@ -1342,7 +1346,7 @@
align-items: flex-start; align-items: flex-start;
margin-right: 27px; margin-right: 27px;
font-size: 14px; font-size: 14px;
span:first-child{ span:first-child{
font-weight: 400; font-weight: 400;
color: rgba(35,35,35,0.4); color: rgba(35,35,35,0.4);
...@@ -1362,12 +1366,12 @@ ...@@ -1362,12 +1366,12 @@
.blue{ .blue{
color: #0081FF !important; color: #0081FF !important;
cursor: pointer; cursor: pointer;
} }
} }
} }
.list-addree{ .list-addree{
width: auto; width: auto;
...@@ -1383,11 +1387,11 @@ ...@@ -1383,11 +1387,11 @@
img{ img{
width: 14px; width: 14px;
margin: 0 8px; margin: 0 8px;
} }
} }
} }
.bottomlist-list:hover{ .bottomlist-list:hover{
background: #F6F9FC; background: #F6F9FC;
...@@ -1400,6 +1404,6 @@ ...@@ -1400,6 +1404,6 @@
} }
} }
} }
</style> </style>
\ No newline at end of file
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">项目名称</div> <div class="label">项目名称</div>
<div class="content_right content_right1"> <div class="content_right content_right1">
...@@ -46,15 +46,15 @@ ...@@ -46,15 +46,15 @@
<el-input class="commonly-input" v-model="keyword" style="width: 660px;"placeholder="多个关键词用空格隔开,如:市政 园林" /> <el-input class="commonly-input" v-model="keyword" style="width: 660px;"placeholder="多个关键词用空格隔开,如:市政 园林" />
<span class="commonly" @click="cliclikeywoder()">推荐关键词</span> <span class="commonly" @click="cliclikeywoder()">推荐关键词</span>
</div> </div>
<div class="include-keywords"> <div class="include-keywords">
<span class="lefttltel" style=" border-radius: 1px 0px 0px 1px;">排除</span> <span class="lefttltel" style=" border-radius: 1px 0px 0px 1px;">排除</span>
<el-input style="width: 472px;" v-model="keywordNot" placeholder="多个关键词用空格隔开,如:市政 园林" /> <el-input style="width: 472px;" v-model="keywordNot" placeholder="多个关键词用空格隔开,如:市政 园林" />
</div> </div>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">项目名称</div> <div class="label">项目名称</div>
<div class="content_right"> <div class="content_right">
...@@ -165,7 +165,7 @@ ...@@ -165,7 +165,7 @@
</el-dropdown-menu> </el-dropdown-menu>
</div> </div>
</el-dropdown> </el-dropdown>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
...@@ -173,8 +173,8 @@ ...@@ -173,8 +173,8 @@
<div class="content_right content_right1"> <div class="content_right content_right1">
<div class="land_content_wrap-flex"> <div class="land_content_wrap-flex">
<!-- <div class="land_content_wrap_label" > <!-- <div class="land_content_wrap_label" >
</div> --> </div> -->
<el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectAmount','endProjectAmount')" v-limit-num clearable <el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectAmount','endProjectAmount')" v-limit-num clearable
v-model="jskBidNewsDto.startProjectAmount"></el-input> v-model="jskBidNewsDto.startProjectAmount"></el-input>
...@@ -184,10 +184,10 @@ ...@@ -184,10 +184,10 @@
<el-button slot="append" type="primary">万元</el-button> <el-button slot="append" type="primary">万元</el-button>
</el-input> </el-input>
</div> </div>
<div class="land_content_wrap-flex"> <div class="land_content_wrap-flex">
<div class="land_content_wrap_label" >合同估算价 <div class="land_content_wrap_label" >合同估算价
</div> </div>
<el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectContractAmount','endProjectContractAmount')" v-limit-num clearable <el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectContractAmount','endProjectContractAmount')" v-limit-num clearable
v-model="jskBidNewsDto.startProjectContractAmount"></el-input> v-model="jskBidNewsDto.startProjectContractAmount"></el-input>
...@@ -197,10 +197,10 @@ ...@@ -197,10 +197,10 @@
<el-button slot="append" type="primary">万元</el-button> <el-button slot="append" type="primary">万元</el-button>
</el-input> </el-input>
</div> </div>
<div class="land_content_wrap-flex"> <div class="land_content_wrap-flex">
<div class="land_content_wrap_label" >投标保证金 <div class="land_content_wrap_label" >投标保证金
</div> </div>
<el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectEnsureAmount','endProjectEnsureAmount')" v-limit-num clearable <el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectEnsureAmount','endProjectEnsureAmount')" v-limit-num clearable
v-model="jskBidNewsDto.startProjectEnsureAmount"></el-input> v-model="jskBidNewsDto.startProjectEnsureAmount"></el-input>
...@@ -210,7 +210,7 @@ ...@@ -210,7 +210,7 @@
<el-button slot="append" type="primary">万元</el-button> <el-button slot="append" type="primary">万元</el-button>
</el-input> </el-input>
</div> </div>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
...@@ -227,7 +227,7 @@ ...@@ -227,7 +227,7 @@
</div> </div>
<div class="land_content_wrap-flex"> <div class="land_content_wrap-flex">
<div class="land_content_wrap_label" >勘察费暂估 <div class="land_content_wrap_label" >勘察费暂估
</div> </div>
<el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectSurveyAmount','endProjectSurveyAmount')" v-limit-num clearable <el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectSurveyAmount','endProjectSurveyAmount')" v-limit-num clearable
v-model="jskBidNewsDto.startProjectSurveyAmount"></el-input> v-model="jskBidNewsDto.startProjectSurveyAmount"></el-input>
...@@ -239,7 +239,7 @@ ...@@ -239,7 +239,7 @@
</div> </div>
<div class="land_content_wrap-flex"> <div class="land_content_wrap-flex">
<div class="land_content_wrap_label" >设计费暂估 <div class="land_content_wrap_label" >设计费暂估
</div> </div>
<el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectDesignAmount','endProjectDesignAmount')" v-limit-num clearable <el-input class="other_ipt" placeholder="输入最低金额" @change="changeMoney('start','startProjectDesignAmount','endProjectDesignAmount')" v-limit-num clearable
v-model="jskBidNewsDto.startProjectDesignAmount"></el-input> v-model="jskBidNewsDto.startProjectDesignAmount"></el-input>
...@@ -249,14 +249,14 @@ ...@@ -249,14 +249,14 @@
<el-button slot="append" type="primary">万元</el-button> <el-button slot="append" type="primary">万元</el-button>
</el-input> </el-input>
</div> </div>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
<div class="label">资质要求</div> <div class="label">资质要求</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入关键词句,如:施工总承包三级" v-model="jskBidNewsDto.qualiLimit" ></el-input> placeholder="请输入关键词句,如:施工总承包三级" v-model="jskBidNewsDto.qualiLimit" ></el-input>
<span class="land_content_wrap_label_tipspan"> <span class="land_content_wrap_label_tipspan">
<el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配" <el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配"
...@@ -269,7 +269,7 @@ ...@@ -269,7 +269,7 @@
<div class="content_item"> <div class="content_item">
<div class="label">业绩要求</div> <div class="label">业绩要求</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入关键词句,如:建筑工程" v-model="jskBidNewsDto.projectLimit" ></el-input> placeholder="请输入关键词句,如:建筑工程" v-model="jskBidNewsDto.projectLimit" ></el-input>
<span class="land_content_wrap_label_tipspan"> <span class="land_content_wrap_label_tipspan">
<el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配" <el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配"
...@@ -282,7 +282,7 @@ ...@@ -282,7 +282,7 @@
<div class="content_item"> <div class="content_item">
<div class="label">人员要求</div> <div class="label">人员要求</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
placeholder="请输入关键词句,如:一级建造师" v-model="jskBidNewsDto.personLimit" ></el-input> placeholder="请输入关键词句,如:一级建造师" v-model="jskBidNewsDto.personLimit" ></el-input>
<span class="land_content_wrap_label_tipspan"> <span class="land_content_wrap_label_tipspan">
<el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配" <el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配"
...@@ -294,7 +294,7 @@ ...@@ -294,7 +294,7 @@
</div> </div>
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="geduan"> <div class="geduan">
</div> </div>
</div> </div>
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
...@@ -303,31 +303,31 @@ ...@@ -303,31 +303,31 @@
<div class="content_right1-flex"> <div class="content_right1-flex">
<el-input style="width: 520px;" v-model="jskBidNewsDto.tenderee"clearable placeholder="请输入关键字"/> <el-input style="width: 520px;" v-model="jskBidNewsDto.tenderee"clearable placeholder="请输入关键字"/>
</div> </div>
<div class="content_right1-flex" style="margin-left: 106px;"> <div class="content_right1-flex" style="margin-left: 106px;">
<div class="label-zi" > <div class="label-zi" >
代理机构 代理机构
</div> </div>
<el-input style="width: 520px;" v-model="jskBidNewsDto.agency" clearable placeholder="请输入关键字"/> <el-input style="width: 520px;" v-model="jskBidNewsDto.agency" clearable placeholder="请输入关键字"/>
</div> </div>
</div> </div>
</div> </div>
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="geduan"> <div class="geduan">
</div> </div>
</div> </div>
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="search-new"> <div class="search-new">
<span @click="search()">查询</span> <span @click="search()">查询</span>
<span @click="reset">重置</span> <span @click="reset">重置</span>
</div> </div>
</div> </div>
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
...@@ -342,13 +342,13 @@ ...@@ -342,13 +342,13 @@
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span> <span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span>
</p> </p>
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-if="tableData.length>0&& !isSkeleton"> <div class="table-item" v-if="tableData.length>0&& !isSkeleton">
<el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row> <el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row>
...@@ -366,13 +366,13 @@ ...@@ -366,13 +366,13 @@
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="'/radar/bxprozbgg/details/'+ scope.row.id" tag="a" class="list-titel-a" v-html="scope.row.projectName"></router-link> <router-link :to="'/radar/bxprozbgg/details/'+ scope.row.id" tag="a" class="list-titel-a" v-html="scope.row.projectName"></router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工程用途" width="161" > <el-table-column label="工程用途" width="161" >
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.projectPurposes||'--'}} {{ scope.row.projectPurposes||'--'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zj" label="项目金额" width="161" > <el-table-column prop="zj" label="项目金额" width="161" >
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -411,7 +411,7 @@ ...@@ -411,7 +411,7 @@
<li v-else>--</li> <li v-else>--</li>
</ul> </ul>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zj" label="投标保证金(万元)" width="146" > <el-table-column prop="zj" label="投标保证金(万元)" width="146" >
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -456,17 +456,17 @@ ...@@ -456,17 +456,17 @@
</span> </span>
<span v-else v-html="scope.row.tenderee"> <span v-else v-html="scope.row.tenderee">
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div class="pagination clearfix" v-if="total>0&&pageFlag"> <div class="pagination clearfix" v-if="total>0&&pageFlag">
<el-pagination <el-pagination
background background
...@@ -477,12 +477,12 @@ ...@@ -477,12 +477,12 @@
:total="total>limit*500?501*limit:total"> :total="total>limit*500?501*limit:total">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
<!-- 关键词弹窗 --> <!-- 关键词弹窗 -->
<Keyword ref="keyword" @keywordClick="keywordClick" /> <Keyword ref="keyword" @keywordClick="keywordClick" />
</div> </div>
</template> </template>
<script> <script>
...@@ -860,7 +860,7 @@ ...@@ -860,7 +860,7 @@
} }
}, },
computed: { computed: {
checkjskBidNewsDto() { checkjskBidNewsDto() {
let arr = []; let arr = [];
...@@ -1022,7 +1022,7 @@ ...@@ -1022,7 +1022,7 @@
this.bidAssessmentWayList = res.data.bidAssessmentWay; this.bidAssessmentWayList = res.data.bidAssessmentWay;
this.projectEnsureAmountPayTypeList = res.data.bidAmountPayType; this.projectEnsureAmountPayTypeList = res.data.bidAmountPayType;
}).catch(error=>{ }).catch(error=>{
}); });
}, },
...@@ -1086,7 +1086,7 @@ ...@@ -1086,7 +1086,7 @@
}, },
//排序 //排序
handsequencingList(index) { handsequencingList(index) {
this.fieldshow = false; this.fieldshow = false;
this.field = this.fieldOptions[index].key; this.field = this.fieldOptions[index].key;
this.desc = this.fieldOptions[index].desc; this.desc = this.fieldOptions[index].desc;
...@@ -1632,7 +1632,7 @@ ...@@ -1632,7 +1632,7 @@
data.projectEnsureAmountPayType = data.projectEnsureAmountPayType.join(","); data.projectEnsureAmountPayType = data.projectEnsureAmountPayType.join(",");
data.projectLevel = data.projectLevel.join(","); data.projectLevel = data.projectLevel.join(",");
// data.hasFile = this.checked ? 'yes' : 'false'; // data.hasFile = this.checked ? 'yes' : 'false';
let params = { let params = {
page: { page: {
page: this.page, page: this.page,
...@@ -1653,11 +1653,11 @@ ...@@ -1653,11 +1653,11 @@
this.total=res.data.total; this.total=res.data.total;
} }
}).catch(error=>{ }).catch(error=>{
}); });
}, },
reset(){ reset(){
Object.assign(this.$data, this.$options.data.call(this)); //重置data Object.assign(this.$data, this.$options.data.call(this)); //重置data
...@@ -1673,7 +1673,7 @@ ...@@ -1673,7 +1673,7 @@
this.maxHeight = '36px' this.maxHeight = '36px'
} }
}, },
provinceChange(e){ provinceChange(e){
let obj='' let obj=''
obj= this.province.find(function(i){ obj= this.province.find(function(i){
...@@ -1700,10 +1700,10 @@ ...@@ -1700,10 +1700,10 @@
}else{ }else{
this.$router.push({path: '/company/'+this.encodeStr(companyId)}) this.$router.push({path: '/company/'+this.encodeStr(companyId)})
} }
} }
}).catch(error=>{ }).catch(error=>{
}); });
}, },
exportData(row,name) { exportData(row,name) {
...@@ -1744,7 +1744,7 @@ ...@@ -1744,7 +1744,7 @@
color: rgba(35,35,35,0.8); color: rgba(35,35,35,0.8);
} }
.content_right{ .content_right{
.bxpro_region{ .bxpro_region{
width: 1220px; width: 1220px;
border: 1px solid #EFEFEF; border: 1px solid #EFEFEF;
...@@ -1805,12 +1805,12 @@ ...@@ -1805,12 +1805,12 @@
} }
} }
} }
.include-keywords { .include-keywords {
display: flex; display: flex;
align-items: center; align-items: center;
position: relative; position: relative;
.lefttltel { .lefttltel {
display: inline-block; display: inline-block;
background: #F3F4F5; background: #F3F4F5;
...@@ -1823,25 +1823,25 @@ ...@@ -1823,25 +1823,25 @@
text-align: center; text-align: center;
line-height: 34px; line-height: 34px;
} }
.el-input { .el-input {
line-height: 34px; line-height: 34px;
border-radius: 0; border-radius: 0;
::v-deep .el-input__inner { ::v-deep .el-input__inner {
height: 34px; height: 34px;
line-height:34px; line-height:34px;
border-radius: 0; border-radius: 0;
} }
} }
.commonly-input { .commonly-input {
::v-deep .el-input__inner { ::v-deep .el-input__inner {
padding-right: 100px; padding-right: 100px;
border-color: #EFEFEF; border-color: #EFEFEF;
} }
} }
.commonly { .commonly {
position: absolute; position: absolute;
top: 8px; top: 8px;
...@@ -1852,7 +1852,7 @@ ...@@ -1852,7 +1852,7 @@
cursor: pointer; cursor: pointer;
} }
} }
.ename_input{ .ename_input{
width: 640px; width: 640px;
margin-right: 20px; margin-right: 20px;
...@@ -1874,7 +1874,7 @@ ...@@ -1874,7 +1874,7 @@
color: rgba(35,35,35,0.8); color: rgba(35,35,35,0.8);
margin-right:8px; margin-right:8px;
} }
.other_ipt { .other_ipt {
width: 104px; width: 104px;
height: 28px; height: 28px;
...@@ -1884,7 +1884,7 @@ ...@@ -1884,7 +1884,7 @@
line-height: 28px; line-height: 28px;
padding: 0 8px; padding: 0 8px;
} }
} }
.other_ipt1 { .other_ipt1 {
width: 153px; width: 153px;
...@@ -1896,15 +1896,15 @@ ...@@ -1896,15 +1896,15 @@
} }
.el-button{ .el-button{
height: 26px; height: 26px;
line-height: 26px; line-height: 26px;
} }
width: 49px; width: 49px;
height: 26px; height: 26px;
line-height: 26px; line-height: 26px;
padding: 0 8px; padding: 0 8px;
} }
} }
.other_label_span{ .other_label_span{
margin:0 8px; margin:0 8px;
font-size: 14px; font-size: 14px;
...@@ -1921,7 +1921,7 @@ ...@@ -1921,7 +1921,7 @@
margin-left: 4px; margin-left: 4px;
} }
} }
} }
.content_right1{ .content_right1{
display: flex; display: flex;
...@@ -1936,12 +1936,12 @@ ...@@ -1936,12 +1936,12 @@
} }
} }
} }
.item_ckquery_list { .item_ckquery_list {
display: flex; display: flex;
} }
.item_ckquery_list .el-input__icon { .item_ckquery_list .el-input__icon {
position: relative; position: relative;
top: 1px; top: 1px;
...@@ -1951,7 +1951,7 @@ ...@@ -1951,7 +1951,7 @@
} }
.register_count_ipt{ .register_count_ipt{
margin-left: 0px; margin-left: 0px;
} }
.register_count_ipt .el-input__inner{ .register_count_ipt .el-input__inner{
width: 174px; width: 174px;
...@@ -1984,19 +1984,19 @@ ...@@ -1984,19 +1984,19 @@
padding: 1px 5px !important; padding: 1px 5px !important;
} }
} }
} }
.content_item_padding0{ .content_item_padding0{
padding: 0; padding: 0;
} }
} }
.bottomlist{ .bottomlist{
width: 100%; width: 100%;
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px;
.bottomlist-title{ .bottomlist-title{
display: flex; display: flex;
...@@ -2018,7 +2018,7 @@ ...@@ -2018,7 +2018,7 @@
.title-right{ .title-right{
display: flex; display: flex;
align-items: center; align-items: center;
p:last-child{ p:last-child{
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -2034,7 +2034,7 @@ ...@@ -2034,7 +2034,7 @@
cursor: pointer; cursor: pointer;
} }
} }
} }
.table-item{ .table-item{
padding:0px 16px; padding:0px 16px;
...@@ -2054,16 +2054,16 @@ ...@@ -2054,16 +2054,16 @@
} }
} }
.bottomlist-content{ .bottomlist-content{
padding-bottom: 0px; padding-bottom: 0px;
} }
.pagination{ .pagination{
padding: 14px ; padding: 14px ;
.el-pagination{ .el-pagination{
float: right; float: right;
margin-right:-8px; margin-right:-8px;
} }
} }
} }
......
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户编号" align="center" :key='mathkey+1' prop="userId" v-if="columns[0].visible" /> <el-table-column label="用户编号" align="center" :key='mathkey+1' prop="userId" v-if="columns[0].visible" />
<!--<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />--> <!--<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />-->
<el-table-column label="用户称" align="center" :key='mathkey+2' prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> <el-table-column label="用户称" align="center" :key='mathkey+2' prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="组织" align="center" :key='mathkey+3' prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" /> <el-table-column label="组织" align="center" :key='mathkey+3' prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" :key='mathkey+4' prop="phonenumber" v-if="columns[4].visible" width="120" /> <el-table-column label="手机号码" align="center" :key='mathkey+4' prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="状态" align="center" :key='mathkey+5' v-if="columns[5].visible"> <el-table-column label="状态" align="center" :key='mathkey+5' v-if="columns[5].visible">
......
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.session.TokenSign;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.common.constant.CacheNames; import com.dsk.common.constant.CacheNames;
...@@ -15,9 +20,11 @@ import com.dsk.common.core.domain.PageQuery; ...@@ -15,9 +20,11 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.entity.SysDictData; import com.dsk.common.core.domain.entity.SysDictData;
import com.dsk.common.core.domain.entity.SysDictType; import com.dsk.common.core.domain.entity.SysDictType;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.enums.UserStatus;
import com.dsk.common.exception.ServiceException; import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.PasswordUtils; import com.dsk.common.utils.PasswordUtils;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.system.domain.*; import com.dsk.system.domain.*;
import com.dsk.system.domain.bo.SysTenantBo; import com.dsk.system.domain.bo.SysTenantBo;
import com.dsk.system.domain.vo.SysTenantVo; import com.dsk.system.domain.vo.SysTenantVo;
...@@ -201,6 +208,7 @@ public class ISysTenantServiceImpl implements ISysTenantService { ...@@ -201,6 +208,7 @@ public class ISysTenantServiceImpl implements ISysTenantService {
String password = PasswordUtils.generatePwd(8); String password = PasswordUtils.generatePwd(8);
user.setPassword(BCrypt.hashpw(password)); user.setPassword(BCrypt.hashpw(password));
user.setDeptId(deptId); user.setDeptId(deptId);
user.setCreateTime(new DateTime());
userMapper.insert(user); userMapper.insert(user);
//新增系统用户后,默认当前用户为部门的负责人 //新增系统用户后,默认当前用户为部门的负责人
SysDept sd = new SysDept(); SysDept sd = new SysDept();
...@@ -393,6 +401,24 @@ public class ISysTenantServiceImpl implements ISysTenantService { ...@@ -393,6 +401,24 @@ public class ISysTenantServiceImpl implements ISysTenantService {
roleMenuMapper.delete( roleMenuMapper.delete(
new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, roleIds).notIn(!menuIds.isEmpty(), SysRoleMenu::getMenuId, menuIds)); new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, roleIds).notIn(!menuIds.isEmpty(), SysRoleMenu::getMenuId, menuIds));
} }
try {
//清除企业用户登录信息
List<SysUser> tenantUsers = userMapper.selectList(Wrappers.<SysUser>lambdaQuery()
.eq(SysUser::getTenantId, tenantId).eq(SysUser::getStatus, UserStatus.OK.getCode()));
if (!CollectionUtils.isEmpty(tenantUsers)) {
for (SysUser tenantUser : tenantUsers) {
String key = "global:Authorization:login:session:00:" + tenantUser.getUserId();
if (RedisUtils.hasKey(key)) {
SaSession session = RedisUtils.getCacheObject(key);
List<TokenSign> tokenSignList = session.getTokenSignList();
tokenSignList.forEach(sign -> StpUtil.kickoutByTokenValue(sign.getValue()));
}
}
}
} catch (Exception e) {
log.error("清除企业用户登录信息操作失败!error={}", e.getMessage());
}
return true; return true;
} }
......
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