Commit f4f7c87b authored by danfuman's avatar danfuman
parents 6d61f64a 29918822
......@@ -17,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
......@@ -81,10 +82,18 @@ public class BusinessFileController extends BaseController {
try {
//获取文件名
String filename = file.getOriginalFilename();
//TODO 校验是否上传同名文件
String businessFileName = request.getHeader("FilePath");
// 上传文件路径
String filePath = RuoYiConfig.getUploadPath() + businessFileName + "/";
//校验是否上传同名文件
File newFile = new File(filePath);
// 获取当前目录下的文件和文件夹
File[] files = newFile.listFiles();
for (File allFile : files) {
if(filename.equals(allFile.getName())) return error("文件已存在");
}
// 上传并返回文件全路径
String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName;
......
......@@ -3,6 +3,7 @@ package com.dsk.web.controller.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.dtos.Page;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -29,32 +30,48 @@ public class BusinessOpportunityRadarController {
* 公招标讯
*/
@RequestMapping("/jskBidPage")
public AjaxResult jskBidPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidPage(compose);
public AjaxResult jskBidPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidPage(object);
}
/*
* 土地交易
*/
@RequestMapping("/landMarketPage")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.landMarketPage(compose);
public AjaxResult landMarketPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.landMarketPage(object);
}
/*
* 拟建项目
*/
@RequestMapping("/establishmentPage")
public AjaxResult establishmentPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.establishmentPage(compose);
public AjaxResult establishmentPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.establishmentPage(object);
}
/*
* 开标记录
*/
@RequestMapping("/jskBidTenderPage")
public AjaxResult jskBidTenderPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidTenderPage(compose);
public AjaxResult jskBidTenderPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidTenderPage(object);
}
......@@ -62,8 +79,12 @@ public class BusinessOpportunityRadarController {
* 标讯pro
*/
@RequestMapping("/jskBidNewsPage")
public AjaxResult jskBidNewsPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidNewsPage(compose);
public AjaxResult jskBidNewsPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidNewsPage(object);
}
......@@ -71,16 +92,24 @@ public class BusinessOpportunityRadarController {
* 专项债查询
*/
@RequestMapping("/bondProjectPage")
public AjaxResult bondProjectPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.bondProjectPage(compose);
public AjaxResult bondProjectPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.bondProjectPage(object);
}
/*
* 投标计划查询
*/
@RequestMapping("/jskBidPlanPage")
public AjaxResult jskBidPlanPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidPlanPage(compose);
public AjaxResult jskBidPlanPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.jskBidPlanPage(object);
}
/*
......@@ -103,7 +132,11 @@ public class BusinessOpportunityRadarController {
* 招标来源网站
*/
@RequestMapping("/bidSourceList")
public AjaxResult bidSourceList(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.bidSourceList(compose);
public AjaxResult bidSourceList(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.bidSourceList(object);
}
}
package com.dsk.web.controller.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
......@@ -25,8 +26,12 @@ public class CompanySearchController {
* 模糊查询企业名称
*/
@RequestMapping("/index")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterpriseIndex(compose);
public AjaxResult landMarketPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.enterpriseIndex(object);
}
/*
......@@ -42,6 +47,9 @@ public class CompanySearchController {
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody ComposeQueryDto compose) {
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
......
package com.dsk.web.controller.search.controller;
import com.dsk.common.dtos.Page;
/**
* @author lc
* @date 2023/6/20 17:48
*/
public class PageQueryLimit {
public static boolean pageLimit(Page page){
if (null == page) {
return true;
}
if (null==page.getLimit()||null==page.getPage()){
return true;
}
if ( page.getPage()*page.getLimit()>10000){
return true;
}
return false;
}
}
......@@ -12,29 +12,30 @@ import com.dsk.common.dtos.ComposeQueryDto;
public interface BusinessOpportunityRadarService {
AjaxResult jskBidNewsPage(ComposeQueryDto compose);
AjaxResult jskBidTenderPage(ComposeQueryDto compose);
AjaxResult jskBidNewsPage(JSONObject object);
AjaxResult jskBidPage(ComposeQueryDto compose);
AjaxResult jskBidTenderPage(JSONObject object);
AjaxResult landMarketPage(ComposeQueryDto compose);
AjaxResult jskBidPage(JSONObject object);
AjaxResult establishmentPage(ComposeQueryDto compose);
AjaxResult landMarketPage( JSONObject object);
AjaxResult enterpriseIndex(ComposeQueryDto compose);
AjaxResult establishmentPage(JSONObject object);
AjaxResult enterpriseIndex(JSONObject object);
AjaxResult enterpriseByName(String keyword);
AjaxResult enterprisePage(ComposeQueryDto compose);
AjaxResult bondProjectPage(ComposeQueryDto compose);
AjaxResult bondProjectPage( JSONObject object);
AjaxResult jskBidPlanPage(ComposeQueryDto compose);
AjaxResult jskBidPlanPage( JSONObject object);
AjaxResult getCapitalSourceSelect();
AjaxResult keywordList();
AjaxResult bidSourceList(ComposeQueryDto compose);
AjaxResult bidSourceList( JSONObject object);
}
......@@ -26,45 +26,45 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
@Override
public AjaxResult jskBidNewsPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidTenderPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult jskBidTenderPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult establishmentPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult establishmentPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult jskBidPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult landMarketPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult landMarketPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterpriseIndex(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", BeanUtil.beanToMap(compose, false, false));
public AjaxResult enterpriseIndex(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterprisePage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(compose, false, false));
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
......@@ -78,14 +78,14 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
}
@Override
public AjaxResult bondProjectPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult bondProjectPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidPlanPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", BeanUtil.beanToMap(compose, false, false));
public AjaxResult jskBidPlanPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
......@@ -102,8 +102,8 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
}
@Override
public AjaxResult bidSourceList(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", BeanUtil.beanToMap(compose, false, false));
public AjaxResult bidSourceList(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -45,9 +45,13 @@ public class JskBidPlanDto {
Double startPlanTenderAmount;
Double endPlanTenderAmount;
//资金来源
String projecetCapitalSource;
String projectCapitalSource;
//发布时间
String issueTime;
//计划发布开始时间
String planTenderDateStart;
//计划发布截止时间
String planTenderDateEnd;
//来源网站
String sourceName;
......
......@@ -16,6 +16,8 @@ public class SpecialBondProjectDto {
String uuid;
String projectName;
//match精确 like模糊
String nameType;
String projectType;
//项目总投资
......
......@@ -570,6 +570,10 @@ select {
height: 40px;
opacity: 0;
}
.el-select-dropdown.is-multiple .el-select-dropdown__item:hover {
color: #3181fa;
}
.select-list {
color: #666;
line-height: 24px;
......@@ -586,6 +590,31 @@ select {
background-color: #fff;
padding: 6px 0px;
}
.select-radio {
max-height: 400px;
background: #fff;
}
.select-radio[x-placement^=bottom] {
margin-top: 8px;
}
.select-radio .select-radio-list {
position: relative;
}
.select-radio .select-radio-icon {
position: absolute;
top: 8px;
right: 4px;
}
.select-radio .select-radio-picker {
opacity: 0;
position: absolute;
top: -6px;
left: 0;
width: 0px;
}
.select-radio::-webkit-scrollbar-thumb {
background-color: #b9b9b9 !important;
......@@ -681,8 +710,8 @@ select {
}
.select-list .el-radio .el-radio__label:hover {
/* color: #0381fa;
background: #f2f7ff; */
color: #0381fa;
background: #f2f7ff;
}
.select-list .el-radio__input.is-checked+.el-radio__label {
......@@ -1074,4 +1103,26 @@ select {
color: #B589DB;
}
.performance_other_select.el-select-dropdown.el-popper .el-select-dropdown__wrap.el-scrollbar__wrap {
max-height: 274px;
}
.performance_other_select .el-scrollbar {
display: block !important;
}
.performance_other_select .performance_source_name_ipt {
margin: 10px 20px;
width: 300px;
}
.performance_pagination_wrap {
border-top: 1px solid #EFEFEF;
padding-right: 6px;
padding-bottom: 16px;
margin-bottom: 24px;
}
.performance_pagination_wrap .common-pagination {
margin-top: 16px;
}
......@@ -252,6 +252,19 @@
height: 120px;
}
.userInfo-avatar {
display: inline-block;
cursor: pointer;
width: 120px;
height: 120px;
line-height: 120px;
text-align: center;
background: #E3EEF9;
font-size: 48px;
color: #0081FF;
border-radius: 50%;
}
.avatar-upload-preview {
position: relative;
top: 50%;
......
......@@ -8,8 +8,8 @@
<i class="menu-line" />
<el-dropdown class="avatar-container" trigger="hover">
<div class="flex-box avatar-wrapper">
<img v-if="avatar" class="pic-avatar" src="@/assets/images/avatar.png">
<span v-else class="user-avatar">{{ name&&name.slice(0, 1) }}</span>
<img v-if="avatar" class="pic-avatar" :src="avatar">
<span v-else class="user-avatar">{{ name&&name.slice(0, 1).toUpperCase() }}</span>
{{ name }}
</div>
<el-dropdown-menu slot="dropdown" class="user-dropdown">
......
......@@ -55,7 +55,7 @@ const user = {
return new Promise((resolve, reject) => {
getInfo().then(res => {
const user = res.user
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
const avatar = user.avatar ? process.env.VUE_APP_BASE_API + user.avatar : '';
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
commit('SET_ROLES', res.roles)
commit('SET_PERMISSIONS', res.permissions)
......
......@@ -34,7 +34,7 @@
<div class="flex-box zwqk-box">
<div class="zwqk-info">
<div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><span>{{financialDetail.totalLiabilities?saveFixed(financialDetail.totalLiabilities):'0'}}</span>亿元</div>
<div class="zwqk-amount"><template v-if="financialDetail.totalLiabilities"><span>{{saveFixed(financialDetail.totalLiabilities)}}</span>亿元</template><template v-else><span>--</span></template></div>
<div class="zwqk-pro">资产负债率 {{financialDetail.tdr?saveFixed(financialDetail.tdr)+'%':'--'}}</div>
<img src="@/assets/images/detail/financial/zwqk_bg_ico.png">
</div>
......@@ -170,7 +170,6 @@ export default {
item.amount = zjqkObj[Object.keys(zjqkObj)[index]]
})
this.echartsData = [
{ value: res.data.uipInterestBearingDebt, name: '有息债务' },
{ value: res.data.econData_002, name: '有息债务/总债务' },
{ value: res.data.ofcb, name: '综合融资成本' },
{ value: res.data.ebitdaIcr, name: 'EBITDA保障倍数' }
......@@ -185,7 +184,11 @@ export default {
//配置图表
let option = {
tooltip: {
trigger: 'item'
trigger: 'item',
formatter: function (a, b) {
let radius = "<span style='display: inline-block; background: "+a.color+"; width:12px; height:12px; border-radius: 50%; margin-right: 6px;'></span>"
return radius+a.name +' '+ (a.percent).toFixed(2) + '%'
}
},
grid: {
left:"0",
......
......@@ -124,6 +124,8 @@ export default {
this.typeList.forEach((item, index) => {
item.count = this.statistic[item.category]?this.statistic[item.category][item.field]:0
})
this.typeList[2].count = 10 //写死代表有数据,英文统计里面没这项
this.typeList[3].count = 10 //写死代表有数据,英文统计里面没这项
},
handleType(it, idx){
if(it.count){
......
......@@ -65,7 +65,7 @@
</div>
</div>
<div class="company-menu">
<el-button v-if="ifClaim==1" class="hasClaim" v-loading="claimLoading"><i class="el-ico-claim" alt="已认领" title="已认领"></i> 已认领</el-button>
<el-button v-if="ifClaim==1" class="hasClaim"><i class="el-ico-claim" alt="已认领" title="已认领"></i> 已认领</el-button>
<el-button @click="handleClaim" v-else class="claim" v-loading="claimLoading"><i class="el-ico-claim" alt="认领客户" title="认领客户"></i> 认领客户</el-button>
</div>
......@@ -182,7 +182,7 @@ export default {
this.claimLoading = true
let param = {companyId:this.companyId, uipId:this.companyInfo.uipId, companyName:this.companyInfo.companyName}
let res = await claim(param)
this.tableLoading = false
this.claimLoading = false
if(res.code==200){
this.dialogVisible=true
this.ifClaim = 1
......
......@@ -119,7 +119,8 @@ export default {
}).reduce((prev, cur) => prev + cur)
this.viewData = this.viewData.map(item => {
let number = this.statistic[item.category]&&this.statistic[item.category][item.field]?this.statistic[item.category][item.field]:0
let it = {name:item.name, value:number, tz: '', bl:parseFloat(Number(Number(number)/Number(totalVal)*100).toFixed(2))+'%'}
let bl = number ? parseFloat(Number(Number(number)/Number(totalVal)*100).toFixed(2)) : 0
let it = {name:item.name, value:number, tz: '', bl:bl+'%'}
return it
})
this.viewData.sort((a, b) => {
......@@ -141,7 +142,7 @@ export default {
if(params.data.tz){
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;" >'+ params.data.tz +'亿元</p>'
}
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.bl +'%</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.bl+'</p>'
return result;
},
extraCssText:'width:150px!important;',
......
......@@ -4,7 +4,7 @@
<div class="common-title">招标公告</div>
<template v-if="zbggList.length>0">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl1" :title="item.projectName"><router-link :to="'/radar/Bidding/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.tenderStage=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'">{{item.tenderStage}}</span></div>
<div class="flex-box tender-title"><div class="text-cl1" :title="item.projectName"><router-link :to="'/radar/Tender/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.projectCategory=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'">{{item.projectCategory}}</span></div>
<span class="tender-time">{{item.issueTime}}</span>
</div>
</template>
......
......@@ -13,22 +13,22 @@ export default {
data() {
return {
loading: false, // 是否加载中
navHeight: 68, // iframe距离顶部距离px
iframeHight: window.innerHeight, // iframe高度
scrollTop: 0, // 滚动条距离内部页面顶部距离
// domain: 'https://pre-plug.jiansheku.com',
domain: 'http://192.168.60.30:3300',
domain: 'https://pre-plug.jiansheku.com',
// domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912' // 需要携带的sdkId
}
},
created() {
if (this.$route.params.id) { // 获取companyId
this.loading = true
// this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.params.id}?ak=${this.ak}`
if(this.$route.name=='Company'){ //企业详情
this.src = `${this.domain}/enterprise/${this.$route.params.id}?ak=${this.ak}`
}
if(this.$route.name=='Personnel'){ //人员详情
this.src = `${this.domain}/personnel/${this.$route.params.id}.html?ak=${this.ak}&referrer=true`
this.src = `${this.domain}/personnel/${this.$route.params.id}.html?ak=${this.ak}`
}
}
},
......@@ -53,12 +53,16 @@ export default {
}
// 点击栏目名及子标签动态设置滚动高度
if (data.scrollHeight) {
window.scrollTo(sc, parseInt(data.scrollHeight) + 83)
window.scrollTo(sc, parseInt(data.scrollHeight) + _this.navHeight + 15)
}
// 点击下拉子标签动态设置滚动高度
if (data.clientHeight) {
window.scrollTo(sc, sc - 30)
}
// 点击下拉子标签动态设置滚动高度
if (data.initHeight || data.initHeight===0) {
window.scrollTo(sc, data.initHeight)
}
}
})
},
......@@ -69,7 +73,7 @@ export default {
// 准备传值
this.$nextTick(() => {
const ifa = this.$refs.companyIframe
ifa.contentWindow.postMessage({ 'scrollTop': this.scrollTop }, '*')
ifa.contentWindow.postMessage({ 'scrollTop': this.scrollTop, 'navHeight': this.navHeight }, '*')
})
}
}
......
......@@ -2,9 +2,8 @@
<div>
<div class="content">
<div class="content_item">
<div class="label">项目名称</div>
<div class="content_right item_ckquery_list">
<el-input class="ename_input" placeholder="请输入项目名称关键字" v-model="keys" >
<el-input class="ename_input" placeholder="请输入企业名称关键字" v-model="keys" >
<div slot="append" class="btn-search" @click="search">搜索</div>
</el-input>
......@@ -12,7 +11,7 @@
</div>
<div class="content_item">
<div class="label">基本信息</div>
<div class="label">企业地区</div>
<div class="content_right item_ckquery_list">
<div class="select-popper" >
<span :class="{color_text:jskBidQueryDto.provinceIds.length ||jskBidQueryDto.cityIds.length ||jskBidQueryDto.areaIds.length,}">
......@@ -111,7 +110,7 @@
<div class="bottomlist-title">
<div class="bottomlist-title-left" >
<p class="title-left">
项目明细
查询结果列表
</p>
<el-popover v-model="fieldshow" placement="bottom-start" trigger="click"
popper-class="viewlist-el-popover">
......@@ -145,7 +144,7 @@
<el-table :data="tableData" :header-cell-style="{ background:'#F0F3FA'}" element-loading-text="Loading" border highlight-current-row>
<el-table-column type="index" label="序号" width="60">
<template slot-scope="scope">
<span>{{(pageNum - 1) *10 + scope.$index + 1}}</span>
<span>{{(pageNum - 1) *20 + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="公司名称" width="430" >
......@@ -277,7 +276,12 @@
{{scope.row.accountsReceivable||"--"}}
</template>
</el-table-column>
<el-table-column label="公益性&准公益性主营占比" width="168" >
<el-table-column label="其他应收款(亿元)" width="132" >
<template slot-scope="scope">
{{scope.row.otherReceivable||"--"}}
</template>
</el-table-column>
<el-table-column label="公益性&准公益性主营占比(%)" width="188" >
<template slot-scope="scope">
{{scope.row.econData_001||"--"}}
</template>
......@@ -302,7 +306,7 @@
{{scope.row.belongNetProfit||"--"}}
</template>
</el-table-column>
<el-table-column label="净资产收益率" width="96" >
<el-table-column label="净资产收益率(%)" width="136" >
<template slot-scope="scope">
{{scope.row.roe||"--"}}
</template>
......@@ -332,27 +336,27 @@
{{scope.row.uipInterestBearingDebt||"--"}}
</template>
</el-table-column>
<el-table-column label="有息债务/总负债" width="114" >
<el-table-column label="有息债务/总负债(%)" width="134" >
<template slot-scope="scope">
{{scope.row.econData_002||"--"}}
</template>
</el-table-column>
<el-table-column label="综合融资成本" width="96" >
<el-table-column label="综合融资成本(%)" width="116" >
<template slot-scope="scope">
{{scope.row.ofcb||"--"}}
</template>
</el-table-column>
<el-table-column label="现金比率" width="72" >
<el-table-column label="现金比率(%)" width="92" >
<template slot-scope="scope">
{{scope.row.cashRatio||"--"}}
</template>
</el-table-column>
<el-table-column label="现金流量比率" width="96" >
<el-table-column label="现金流量比率(%)" width="116" >
<template slot-scope="scope">
{{scope.row.cashFlowRatio||"--"}}
</template>
</el-table-column>
<el-table-column label="现金到期债务比" width="112" >
<el-table-column label="现金到期债务比(%)" width="132" >
<template slot-scope="scope">
{{scope.row.cashDebtRatio||"--"}}
</template>
......@@ -362,7 +366,7 @@
{{scope.row.creditBalance||"--"}}
</template>
</el-table-column>
<el-table-column label="授信余额/全部债务" width="126" >
<el-table-column label="授信余额/全部债务(%)" width="146" >
<template slot-scope="scope">
{{scope.row.econData_003||"--"}}
</template>
......@@ -372,17 +376,17 @@
{{scope.row.ebitdaIcr||"--"}}
</template>
</el-table-column>
<el-table-column label="私募债余额占比" width="108" >
<el-table-column label="私募债余额占比(%)" width="128" >
<template slot-scope="scope">
{{scope.row.ppnBalanceProp||"--"}}
</template>
</el-table-column>
<el-table-column label="一年内到期债权占比" width="132" >
<el-table-column label="一年内到期债权占比(%)" width="152" >
<template slot-scope="scope">
{{scope.row.econData_004||"--"}}
</template>
</el-table-column>
<el-table-column label="债券余额/有息债务" width="132" >
<el-table-column label="债券余额/有息债务(%)" width="152" >
<template slot-scope="scope">
{{scope.row.econData_005||"--"}}
</template>
......@@ -392,7 +396,7 @@
{{scope.row.loan||"--"}}
</template>
</el-table-column>
<el-table-column label="借款/有息债务" width="102" >
<el-table-column label="借款/有息债务(%)" width="122" >
<template slot-scope="scope">
{{scope.row.econData_006||"--"}}
</template>
......@@ -402,7 +406,7 @@
{{scope.row.nonStandardBalance||"--"}}
</template>
</el-table-column>
<el-table-column label="非标余额/有息债务" width="132" >
<el-table-column label="非标余额/有息债务(%)" width="152" >
<template slot-scope="scope">
{{scope.row.nonStandardRatio||"--"}}
</template>
......@@ -412,9 +416,9 @@
{{scope.row.guaranteeAmount||"--"}}
</template>
</el-table-column>
<el-table-column label="对外担保比例" width="96" >
<el-table-column label="对外担保比例(%)" width="116" >
<template slot-scope="scope">
{{scope.row.guaranteeAmount||"--"}}
{{scope.row.guaranteeRatio||"--"}}
</template>
</el-table-column>
<el-table-column label="所属开发区" width="84" >
......@@ -610,11 +614,12 @@ export default {
this.domicile.push(arr[i].label);
}
}
var obj = JSON.parse(JSON.stringify(this.landMarketDto));
var obj = JSON.parse(JSON.stringify(this.jskBidQueryDto));
obj.provinceIds = provinceIds;
obj.cityIds = cityIds;
obj.areaIds = areaIds;
this.landMarketDto = obj;
this.jskBidQueryDto = obj;
this.search();
},
......@@ -677,16 +682,16 @@ export default {
},
checkuipExecutivebtn(val){
if(val){
this.uipExecutiveText =[];
}
this.uipExecutiveText =[];
this.checkuipExecutive=true;
this.search();
},
uipExecutiveLevelbtn(val){
if(val.length>0){
this.checkuipExecutive=false;
}else if(val.length==0){
this.checkuipExecutive=true;
this.checkuipExecutive==true;
}
this.search();
......@@ -947,8 +952,11 @@ export default {
margin-right: 20px;
::v-deep .el-input-group__append{
cursor: pointer;
padding: 0px;
.btn-search{
width: 70px;
color: #0081ff;
text-align: center;
}
}
}
......
......@@ -4,7 +4,7 @@
<div class="content">
<div class="content_item">
<div class="content_right item_ckquery_list">
<el-input class="ename_input" placeholder="请输入项目名称关键字" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')">
<el-input class="ename_input" placeholder="请输入关键字,如企业名称、统一社会信用代码等" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')">
<div slot="append" class="btn-search" @click="submitbtn">搜索</div>
</el-input>
<template v-if="ename">
......@@ -48,9 +48,9 @@
</div>
</div>
<div class="content_item content_item1">
<div class="label">更多选项</div>
<div class="label">更多筛选</div>
<div class="content_right ">
<div class="select-popper">
<!-- <div class="select-popper">
<div class=" " :class="regionWeb.length>0?'select-active':''">
备案网站{{regionWeb.length>0?(regionWeb.length+'项'):''}}
<i class="el-icon-caret-bottom"></i>
......@@ -63,7 +63,7 @@
</el-option>
</el-select>
</div>
</div> -->
<div class="select-popper">
<el-dropdown trigger="click" placement='bottom-start' >
<div class="el-dropdown-link " :class="filePlaceCode?'select-active':''">
......@@ -136,7 +136,7 @@
</el-dropdown>
</div>
<div class="select-popper">
<!-- <div class="select-popper">
<el-dropdown trigger="click" placement='bottom-start'>
<div class="el-dropdown-link " :class="hasPhone?'select-active':''">
有无联系电话{{hasPhone?' 1项':''}}
......@@ -153,8 +153,8 @@
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="select-popper">
</div> -->
<!-- <div class="select-popper">
<el-dropdown trigger="click" placement='bottom-start'>
<div class="el-dropdown-link " :class="hasLiceCert!=''?'select-active':''">
<span>建筑安许证{{hasLiceCert!=''?' 1项':''}}</span>
......@@ -170,7 +170,7 @@
</el-dropdown-menu>
</el-dropdown>
</div>
</div> -->
<div class="select-popper">
<div class=" " :class="systemValue.length>0?'select-active':''">
管理体系认证{{systemValue.length>0?(systemValue.length+'项'):''}}
......@@ -280,7 +280,7 @@
<el-dropdown-menu slot="dropdown" class="dropdown-list-radio">
<template v-for=" (item,i) in registeredAssets">
<el-dropdown-item v-if='item.value!="自定义"'
:class="item.value==registeredAssetsText?'colort_ext ':''"
:class="item.value==registeredAssetsText?'color_text ':''"
:command="{'value':item.value,'key':'注册资本','label':item.label}">
<p @click="registeredAssetsText=item.value">
{{item.value}}
......@@ -288,9 +288,9 @@
</el-dropdown-item>
<el-dropdown-item v-else command="自定义" style="padding: 0px;">
<div @mouseenter="showHandleNumber = true"
:class="registeredAssetsText=='自定义'?'colort_ext':''" style="padding: 0px 20px;"
:class="registeredAssetsText=='自定义'?'color_text':''" style="padding: 0px 20px;"
@mouseleave="showHandleNumber = false">
<span :class="registeredAssetsText=='自定义'?'colort_ext':''">
<span :class="registeredAssetsText=='自定义'?'color_text':''">
自定义<i class="el-icon-arrow-right" style="padding-left: 24px;"></i>
</span>
<div class="jabph_popper_box" style="position:absolute;left: 124px;"
......@@ -324,7 +324,7 @@
<el-dropdown-menu slot="dropdown" class="dropdown-list-radio">
<template v-for=" (item,i) in registeredAssets">
<el-dropdown-item v-if='item.value!="自定义"'
:class="item.value==actualCapi?'colort_ext ':''"
:class="item.value==actualCapi?'color_text ':''"
:command="{'value':item.value,'key':'实缴资本','label':item.label}">
<p @click="actualCapi=item.value">
{{item.value}}
......@@ -332,9 +332,9 @@
</el-dropdown-item>
<el-dropdown-item v-else command="自定义" style="padding: 0px;">
<div @mouseenter="showHandleNumber = true"
:class="actualCapi=='自定义'?'colort_ext':''" style="padding: 0px 20px;"
:class="actualCapi=='自定义'?'color_text':''" style="padding: 0px 20px;"
@mouseleave="showHandleNumber = false">
<span :class="actualCapi=='自定义'?'colort_ext':''">
<span :class="actualCapi=='自定义'?'color_text':''">
自定义<i class="el-icon-arrow-right" style="padding-left: 24px;"></i>
</span>
<div class="jabph_popper_box" style="position:absolute;left: 124px;"
......@@ -373,7 +373,7 @@
<el-dropdown-menu slot="dropdown" class="dropdown-list-radio">
<template v-for=" (item,i) in InsuredNumList">
<el-dropdown-item v-if='item.value!="自定义"'
:class="item.value==InsuredNumText?'colort_ext ':''"
:class="item.value==InsuredNumText?'color_text ':''"
:command="{'value':item.value,'key':'社保人数','label':item.label}">
<p @click="InsuredNumText=item.value">
{{item.value}}
......@@ -381,9 +381,9 @@
</el-dropdown-item>
<el-dropdown-item v-else command="自定义" style="padding: 0px;">
<div @mouseenter="showHandleNumber = true"
:class="InsuredNumText=='自定义'?'colort_ext':''" style="padding: 0px 20px;">
:class="InsuredNumText=='自定义'?'color_text':''" style="padding: 0px 20px;">
<!-- @mouseleave="showHandleNumber = false" -->
<span :class="InsuredNumText=='自定义'?'colort_ext':''">
<span :class="InsuredNumText=='自定义'?'color_text':''">
自定义<i class="el-icon-arrow-right" style="padding-left: 24px;"></i>
</span>
<div class="jabph_popper_box" style="position:absolute;left: 124px;"
......@@ -777,6 +777,10 @@
{
value: '1',
label: '是高新企业'
},
{
value: '0',
label: '不是高新企业'
}
],
......@@ -1407,7 +1411,7 @@
}).catch(error=>{
this.optionss = aptitudeCode;
});
this.getRegionWebList();
this.getaddressList();
this.submitbtn();
......@@ -1642,21 +1646,11 @@
getRegionWebList(){
api.searchDic().then(res=>{
if (res) {
this.regionWebList = res
} else {
api.regionWebList().then(res=>{
if (res) {
this.regionWebList = res
}
})
}
this.regionWebList = res.regionWeb;
}
}).catch(error=>{
   api.regionWebList().then(res=>{
if (res) {
this.regionWebList = res
}
})
});
});
},
// 工商注册地
......@@ -2597,18 +2591,18 @@
reset() {
Object.assign(this.$data, this.$options.data()) //重置data
this.$axios.get('https://files.jiansheku.com/file/json/common/aptitudeCode.json').then(res => {
if (res && res.status == 200) {
this.optionss = res.data;
} else {
this.optionss = aptitudeCode;
}
}).catch(error=>{
this.optionss = aptitudeCode;
  
});
api.aptitudeCode().then(res=>{
if (res) {
this.optionss = res;
} else {
this.optionss = aptitudeCode;
}
}).catch(error=>{
this.optionss = aptitudeCode;
});
this.getaddressList();
this.getRegionWebList();
......
......@@ -146,6 +146,7 @@
//添加客户
submitForm(formName) {
this.queryParam.userId = this.$store.state.user.userId
this.queryParam.investmentAmount = parseFloat(this.queryParam.investmentAmount)
this.$refs[formName].validate((valid) => {
if (valid) {
addProject(this.queryParam).then(result=>{
......
......@@ -4,7 +4,7 @@
<div class="cardtitles" v-if="showtype != 'projectgjdt'">跟进记录</div>
<div style="height: 24px" v-if="showtype == 'projectgjdt'"></div>
<div class="records">
<div class="writeIn">
<div class="writeIn" v-if="isDisabled == false">
<div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png">
<div>新建一条跟进记录,如:周五上午预约客户上门拜访</div>
......@@ -44,7 +44,7 @@
</el-input>
</div>
<div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker class="w128"
<el-date-picker class="w128" value-format="yyyy-MM-dd"
v-model="addParam.nextVisitTime"
type="date"
placeholder="下次拜访时间">
......@@ -91,7 +91,7 @@
<div class="rec_time">
<i class="el-icon-time"></i>
<div>{{item.creatTime}}</div>
<div class="operate">
<div class="operate" v-if="isDisabled == false">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img @click="delRecord(item.id)" src="@/assets/images/delete.png">
</div>
......@@ -145,6 +145,7 @@
default: 0
},
datas:[],//数据源
isDisabled:false,
},
name: 'gjjl',
data(){
......@@ -171,11 +172,13 @@
projectId:this.detailId ? this.detailId : parseInt(this.$route.query.id),//项目详情id
userId:this.$store.state.user.userId,//当前用户id
projectList:[],//关联项目
isDisabled:this.isDisabled,
}
},
computed: {
},
created(){
console.log(this.isDisabled)
//获取拜访方式
getDictType('visit_mode_type').then(result=>{
this.bffslist = result.code == 200 ? result.data:[]
......@@ -183,6 +186,7 @@
this.showtype = this.types
//客户管理跟进动态
if(this.showtype == 'gjdt'){
this.isDisabled = false
getUserList().then(result=>{
this.glqylist = result.data
})
......@@ -194,6 +198,7 @@
}
//项目管理跟进动态
if(this.showtype == 'projectgjdt'){
this.isDisabled = false
this.projectId = null//项目id暂时清空,必须手选id
relateProject(this.userId).then(res=>{
this.projectList = res.data
......
......@@ -3,7 +3,7 @@
<el-card class="box-card noborder">
<div class="cardtitles">工作待办</div>
<div class="records">
<div class="writeIn">
<div class="writeIn" v-if="isDisabled == false">
<div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png">
<div>新建一条工作代办,如:周五上午预约客户上门拜访</div>
......@@ -15,15 +15,17 @@
</div>
<div class="wr_bot">
<div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker
<el-date-picker value-format="yyyy-MM-dd"
v-model="queryParam.finishTime"
type="date"
placeholder="完成时间">
</el-date-picker>
</div>
<el-input v-model="queryParam.target" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input>
<div class="sels">
<img src="@/assets/images/project/ico_2.png">
<el-input v-model="queryParam.target" placeholder="拜访对象" style="width: 100px;">
</el-input>
</div>
<div class="btn btn_primary h32 wc" @click="add" :disabled="queryParam.task == ''" :class="{'btn_disabled':queryParam.task == ''}">完成</div>
</div>
</div>
......@@ -34,11 +36,11 @@
<div class="task_con"><span>发起时间:{{item.createTime}}</span><span v-if="item.target">关联客户:<font class="wordprimary">{{item.target}}</font></span><span v-if="item.finishTime">完成时间:{{item.finishTime}}</span></div>
<div class="select" :class="{'on':item.state == 2}">
<div class="select-popper">
<span class="color_text">
<span>
{{item.state == 2?"已完成":"未完成"}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)">
<el-select v-if="isDisabled == false" placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)">
<el-option label="未完成" value="1"></el-option>
<el-option label="已完成" value="2"></el-option>
</el-select>
......@@ -73,7 +75,8 @@
detailId: { //从企业详情跳转过来ID
type: Number,
default: 0
}
},
isDisabled:false,
},
data(){
return{
......@@ -94,6 +97,7 @@
},
datalist:[],
yqnum:0,//已逾期数量
isDisabled:this.isDisabled,
}
},
created(){
......@@ -109,6 +113,9 @@
if(result.code == 200){
this.$message.success("添加成功!")
this.getList()
this.queryParam.target = ''
this.queryParam.task = ''
this.queryParam.finishTime = ''
}else{
this.$message.error(result.msg)
}
......@@ -162,4 +169,7 @@
width: 100px;
margin-right: 12px;
}
.times .el-input__icon >img{
width: 16px;
}
</style>
......@@ -14,13 +14,16 @@
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisabled==false">新增联系人</div>
</div>
</template>
<el-table-column
prop="name"
label="姓名"
width="113">
<template slot-scope="scope">
{{scope.row.name || '--'}}
</template>
</el-table-column>
<el-table-column
prop="name"
......@@ -38,20 +41,32 @@
label="角色"
sortable
width="146">
<template slot-scope="scope">
{{scope.row.role || '--'}}
</template>
</el-table-column>
<el-table-column
prop="office"
label="公司/机关">
label="关联企业">
<template slot-scope="scope">
{{scope.row.office || '--'}}
</template>
</el-table-column>
<el-table-column
prop="position"
label="职位"
width="125">
<template slot-scope="scope">
{{scope.row.position || '--'}}
</template>
</el-table-column>
<el-table-column
prop="phone"
label="联系方式"
width="175">
<template slot-scope="scope">
{{scope.row.phone || '--'}}
</template>
</el-table-column>
<el-table-column
prop="accendant"
......@@ -86,18 +101,24 @@
<el-form-item label="联系人姓名:" class="row">
<el-input type="text" v-model="queryParam.name" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人性别:" class="row">
<el-radio-group v-model="queryParam.sex">
<el-radio label=1></el-radio>
<el-radio label=0></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="联系人角色:" class="row">
<el-input type="text" v-model="queryParam.role" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人职位:" class="row">
<el-input type="text" v-model="queryParam.position" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人公司/机关:" class="row">
<el-form-item label="关联企业:" class="row">
<el-input type="text" v-model="queryParam.office" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="内部维护人:" class="row">
<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input>
<el-form-item label="联系人职位:" class="row">
<el-input type="text" v-model="queryParam.position" placeholder="请输入"></el-input>
</el-form-item>
<!--<el-form-item label="内部维护人:" class="row">-->
<!--<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input>-->
<!--</el-form-item>-->
<el-form-item label="联系方式:" class="row">
<el-input type="text" v-model="queryParam.phone" placeholder="请输入"></el-input>
</el-form-item>
......@@ -120,7 +141,8 @@
detailId: { //从企业详情跳转过来ID
type: Number,
default: 0
}
},
isDisabled:false,
},
data(){
return{
......@@ -140,6 +162,7 @@
total:0,
projectname:this.$route.query.projectname,
queryParam:[],
isDisabled:this.isDisabled,
}
},
created(){
......@@ -148,6 +171,7 @@
methods:{
getDetail(item){
this.dialogVisible = true
item.sex = item.sex.toString()
this.queryParam = item
this.isnew = false
},
......@@ -158,8 +182,10 @@
})
},
save(){
let param = JSON.parse(JSON.stringify(this.queryParam))
param.sex = parseInt(param.sex)
if(this.isnew == false){
editLXR(this.queryParam).then(result=>{
editLXR(param).then(result=>{
if(result.code == 200){
this.$message.success('保存成功!')
this.getList()
......@@ -168,7 +194,7 @@
})
}
if(this.isnew == true){
addLXR(this.queryParam).then(result=>{
addLXR(param).then(result=>{
if(result.code == 200){
this.$message.success('新增成功!')
this.getList()
......@@ -192,11 +218,12 @@
this.queryParam = {
businessId:this.id,
name:"",
sex:"1",
role:"",
office:"",
position:"",
phone:"",
accendant:"",
// accendant:"",
}
},
}
......
......@@ -4,14 +4,14 @@
<el-card class="box-card noborder">
<div class="cardtitles">相关企业</div>
<div class="searchbtns">
<el-select class="select" placeholder="企业类型" clearable="true" v-model="searchParam.companyType" @change="handleCurrentChange(1)">
<el-select class="select" placeholder="企业类型" clearable v-model="searchParam.companyType" @change="handleCurrentChange(1)">
<el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
<div class="searchInput">
<el-input type="text" placeholder="输入关键词查询" v-model="searchParam.companyName"></el-input>
<el-input type="text" placeholder="输入关键词查询" clearable v-model="searchParam.companyName"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<div class="btn btn_primary h32 b3" @click="opennew"><div class="img img1"></div>添加相关企业</div>
<div class="btn btn_primary h32 b3" @click="opennew" v-if="isDisabled == false"><div class="img img1"></div>添加相关企业</div>
</div>
<div class="document tables">
<el-table
......@@ -23,7 +23,7 @@
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或添加相关企业,重新搜索</div>
<!--<div class="btn btn_primary h36 w102" @click="opennew">新增相关企业</div>-->
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisabled==false">新增相关企业</div>
</div>
</template>
<el-table-column
......@@ -36,13 +36,13 @@
</el-table-column>
<el-table-column
prop="depth"
sortable
label="对接深度/竞争力度"
>
</el-table-column>
<el-table-column
prop="companyRole"
label="企业角色"
sortable
width="">
</el-table-column>
<el-table-column
......@@ -50,7 +50,7 @@
label="负责人"
width="">
</el-table-column>
<el-table-column
<el-table-column v-if="isDisabled == false"
prop="name"
label=""
align="right"
......@@ -143,7 +143,8 @@
detailId: { //从企业详情跳转过来ID
type: Number,
default: 0
}
},
isDisabled:false,
},
data(){
return{
......@@ -179,6 +180,7 @@
companyName:'',
},
ondel:-1,
isDisabled:this.isDisabled,
}
},
created(){
......@@ -266,6 +268,9 @@
</script>
<style lang="scss" scoped>
.searchInput .el-input{
width: 68%;
}
.w102{
width: 102px;
}
......
......@@ -8,7 +8,7 @@
<div class="con">
<span>项目级别 :</span>
<div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1">
<div class="flex" v-if="nowedit == 1 && isDisabled == false" >
<el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({projectLevel:xmsldata.projectLevel})">确定</div>
......@@ -26,7 +26,7 @@
{{xmjd}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="xmjd" class="select-multiple" placeholder="请选择" @change="editXMSL({projectStage:xmjd})">
<el-select v-if="isDisabled==false" v-model="xmjd" class="select-multiple" placeholder="请选择" @change="editXMSL({projectStage:xmjd})">
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
......@@ -38,9 +38,9 @@
<div class="flex tipinput">
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<div style="position: relative">
<el-input placeholder="待添加" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
<el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div>
<div class="addbtn" @click="addtips"></div>
<div class="addbtn" v-if="isDisabled == false" @click="addtips"></div>
</div>
</div>
</div>
......@@ -53,7 +53,7 @@
<div class="con">
<span>主管单位 :</span>
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2">
<div class="flex" v-if="nowedit == 2 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({supervisorUnit:xmsldata.supervisorUnit})">确定</div>
......@@ -66,7 +66,7 @@
<div class="con i">
<span>建设单位 :</span>
<div class="inputxt" id="inputxt3" :style="{width:rig1}">
<div class="flex" v-if="nowedit == 3">
<div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({constructionUnit:xmsldata.constructionUnit})">确定</div>
......@@ -82,7 +82,7 @@
<div class="con">
<span>主管单位负责人 :</span>
<div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4">
<div class="flex" v-if="nowedit == 4 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({supervisorPrincipal:xmsldata.supervisorPrincipal})">确定</div>
......@@ -95,7 +95,7 @@
<div class="con i">
<span>建设单位负责人 :</span>
<div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5">
<div class="flex" v-if="nowedit == 5 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({constructionPrincipal:xmsldata.constructionPrincipal})">确定</div>
......@@ -110,7 +110,7 @@
<div class="con">
<span>主管单位联系电话 :</span>
<div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6">
<div class="flex" v-if="nowedit == 6 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" @click="isphone(1,xmsldata.supervisorPhone)" style="width: 56px">确定</div>
......@@ -123,7 +123,7 @@
<div class="con i">
<span>建设单位联系电话 :</span>
<div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7">
<div class="flex" v-if="nowedit == 7 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" @click="isphone(2,xmsldata.constructionPhone)" style="width: 56px">确定</div>
......@@ -177,7 +177,6 @@
export default {
name: 'xmsl',
props:{
datas:'',
detailId: { //从企业详情跳转过来ID
type: Number,
default: 0
......@@ -191,9 +190,10 @@
xmjd:'待添加',
projectStage:[],//项目阶段
id: this.detailId ? this.detailId : this.$route.query.id,
xmsldata:this.datas,
xmsldata:[],
spanWidth:'width: 70px',
rig1:'184px',
isDisabled:false,
}
},
created(){
......@@ -205,6 +205,8 @@
},
mounted(){
document.addEventListener('mouseup',(e) => {
if(this.isDisabled == true)
return false
let j = 0
for(var i=1;i<=7;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
......@@ -215,6 +217,33 @@
}
}
if(j == 7){
if(this.nowedit != -1){
let param = {}
switch (this.nowedit) {
case 1:
param = {'projectLevel':this.xmsldata.projectLevel}
break;
case 2 :
param = {'supervisorUnit':this.xmsldata.supervisorUnit}
break;
case 3 :
param = {'constructionUnit':this.xmsldata.constructionUnit}
break;
case 4 :
param = {'supervisorPrincipal':this.xmsldata.supervisorPrincipal}
break;
case 5 :
param = {'constructionPrincipal':this.xmsldata.constructionPrincipal}
break;
case 6 :
param = {'supervisorPhone':this.xmsldata.supervisorPhone}
break;
case 7 :
param = {'constructionPhone':this.xmsldata.constructionPhone}
break;
}
this.editXMSL(param)
}
this.nowedit = -1
}
})
......@@ -232,6 +261,9 @@
});
},
editXMSL(param){
this.nowedit = -1
if(this.isDisabled == true)
return false
if(param.projectStage){//修改项目阶段
this.$emit('Refreshs',param)
this.xmjd = param.projectStage
......@@ -240,13 +272,14 @@
params.id = this.id
editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
if(!param.projectStage){
this.$message.success('修改成功!')
}
}else{
this.$message.error(res.msg)
this.getXMSL()
}
})
this.nowedit = -1
}
},
//验证电话号码
......@@ -307,8 +340,7 @@
this.xmjd = result.data.projectStage
this.tipslit = result.data.labelList
this.xmsldata = result.data
this.isDisabled = result.data.isFounder == 1 ? false:true
const spanStyle = document.querySelector(".rig1");
this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上
this.rig1 =
......
......@@ -6,7 +6,7 @@
<div class="searchbtns">
<!--<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">-->
<div class="searchInput">
<el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input>
<el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<div class="btn btn_primary h32 b2" @click="getUP"><div class="img img2"></div>上传</div>
......@@ -51,9 +51,9 @@
<template slot="empty">
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去上传吧</div>
<div class="btn btn_primary h36 w102" @click="getUP">上传文档</div>
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<div v-if="isDisabled==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div>
</div>
</template>
<el-table-column
......@@ -89,7 +89,7 @@
<template slot-scope="scope">
<div class="hoverbtn">
<div class="xz" @click="downnlod(scope.row)">下载</div>
<div class="sc" @click="del(scope.row.filePath)">删除</div>
<div class="sc" v-if="isDisabled == false" @click="del(scope.row.filePath)">删除</div>
</div>
</template>
</el-table-column>
......@@ -128,7 +128,8 @@
detailId: { //从企业详情跳转过来ID
type: Number,
default: 0
}
},
isDisabled:false,
},
data(){
return{
......@@ -150,6 +151,7 @@
fileDatas:[],
filename:'',
ondel:"",
isDisabled:this.isDisabled,
}
},
created(){
......@@ -192,6 +194,8 @@
}
},
getUP(){
if(this.isDisabled==true)
return false
this.isupload=true
this.$nextTick(() => {
this.$refs.uploadFile.$children[0].$refs.input.webkitdirectory = true
......@@ -345,4 +349,7 @@
}
}
}
.searchInput .el-input{
width: 68%;
}
</style>
......@@ -29,7 +29,7 @@
</div>
</div>
</div>
<div class="contets row">
<div class="contets row" readonly>
<div class="det-con">
<span>项目类型:</span>
<div class="select-popper" >
......@@ -37,7 +37,7 @@
{{xmlx}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="xmlx" class="select-multiple" placeholder="请选择" @change="editXMSL({projectType:xmlx})">
<el-select v-if="isDisabled == false" v-model="xmlx" class="select-multiple" placeholder="请选择" @change="editXMSL({projectType:xmlx})">
<el-option v-for="(item,index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
......@@ -50,7 +50,7 @@
{{xmlb}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="xmlb" class="select-multiple" placeholder="请选择" @change="editXMSL({projectCategory:xmlb})">
<el-select v-if="isDisabled==false" v-model="xmlb" class="select-multiple" placeholder="请选择" @change="editXMSL({projectCategory:xmlb})">
<el-option v-for="(item,index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
......@@ -59,7 +59,7 @@
<div class="det-con con" id="inputxt">
<span>投资估算(万元):</span>
<div class="inputxt i" :class="{'nomar':nowedit != 3}">
<div class="flex" v-if="nowedit == 3">
<div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input v-model="ProjectData.investmentAmount" placeholder="待添加" @input="number"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL({investmentAmount:ProjectData.investmentAmount})">确定</div>
......@@ -77,7 +77,7 @@
{{addresstxt}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-cascader class="cascader-region select-location" v-model="ProjectData.address"
<el-cascader :disabled="isDisabled" class="cascader-region select-location" v-model="ProjectData.address"
ref="myCascader" :props="props"
:options="addressList"
@change="handleChange"></el-cascader>
......@@ -107,19 +107,19 @@
</div>
</el-card>
<!--项目速览-->
<xmsl v-if="thistag == 'xmsl'" :key="keys" @Refreshs="getsl" :datas="ProjectData" :detailId="detailId"></xmsl>
<xmsl v-if="thistag == 'xmsl'" :key="keys" @Refreshs="getsl" :detailId="detailId"></xmsl>
<!--建设内容-->
<jsnr v-if="thistag == 'jsnr'" :detailId="detailId"></jsnr>
<jsnr v-if="thistag == 'jsnr'" :isDisabled='isDisabled' :detailId="detailId"></jsnr>
<!--联系人-->
<lxr v-if="thistag == 'lxr'" :detailId="detailId"></lxr>
<lxr v-if="thistag == 'lxr'" :isDisabled='isDisabled' :detailId="detailId"></lxr>
<!--跟进记录-->
<gjjl v-if="thistag == 'gjjl'" types="gjjl" :detailId="detailId"></gjjl>
<gjjl v-if="thistag == 'gjjl'" :isDisabled='isDisabled' types="gjjl" :detailId="detailId"></gjjl>
<!--工作待办-->
<gzdb v-if="thistag == 'gzdb'" :detailId="detailId"></gzdb>
<gzdb v-if="thistag == 'gzdb'" :isDisabled='isDisabled' :detailId="detailId"></gzdb>
<!--资料文档-->
<zlwd v-if="thistag == 'zlwd'" :detailId="detailId"></zlwd>
<zlwd v-if="thistag == 'zlwd'" :isDisabled='isDisabled' :detailId="detailId"></zlwd>
<!--相关企业-->
<xgqy v-if="thistag == 'xgqy'" :detailId="detailId"></xgqy>
<xgqy v-if="thistag == 'xgqy'" :isDisabled='isDisabled' :detailId="detailId"></xgqy>
</div>
</div>
</template>
......@@ -175,6 +175,7 @@
props:{ checkStrictly: true, expandTrigger: 'hover' },
id:'',
ProjectData:{},
isDisabled:false,
keys:1,
}
},
......@@ -202,9 +203,14 @@
this.choose(data.projectStage)
},
handleALL(event){
if(this.isDisabled == true)
return false
var one = document.getElementById("inputxt");
if(one){
if(!one.contains(event.target)){
if(this.nowedit != -1){
this.editXMSL({investmentAmount:this.ProjectData.investmentAmount})
}
this.nowedit = -1
}else{
this.nowedit = 3
......@@ -215,6 +221,7 @@
getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:{}
this.$route.query.projectname = result.data.projectName
this.isDisabled = result.data.isFounder == 1 ? false:true
this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType
this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory
this.thisindex = result.data.projectStage
......@@ -249,6 +256,8 @@
this.ProjectData.isPrivate = isPrivate
},
editXMSL(param){
if(this.isDisabled == true)
return false
let params = param
params.id = this.id
editXMNR(JSON.stringify(params)).then(res=>{
......@@ -294,6 +303,8 @@
this.lastindex = value
},
choose(value){
if(this.isDisabled == true)
return false
this.thisindex = value
this.editXMSL({projectStage:value})
let _this = this
......
......@@ -99,7 +99,9 @@
<div class="titles">项目明细
<div class="dc">
<div class="total">{{total}}</div>
<div class="btn-export"><img src="@/assets/images/EXCEL.png">导出EXCEL</div>
<el-tooltip class="item" effect="dark" content="功能正在开发中" placement="top">
<div class="btn-export"><img src="@/assets/images/EXCEL.png">导出EXCEL</div>
</el-tooltip>
</div>
</div>
<div class="tables" v-if="total == 0">
......@@ -452,6 +454,9 @@ export default {
}
</script>
<style lang="scss" scoped>
.btn_primary{
margin-top: 16px;
}
.jabph_popper_box{
left: 110px;
}
......
......@@ -8,13 +8,13 @@
placeholder="请输入项目名称关键字" v-model="keyword" ></el-input>
</div>
</div>
<!-- <div class="content_item">
<div class="content_item">
<div class="label">参投单位</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入参投单位关键字" v-model="jskBidQueryDto.companyName" ></el-input>
</div>
</div> -->
</div>
<div class="content_item">
<div class="label">项目信息</div>
<div class="content_right">
......@@ -69,7 +69,7 @@
</div>
</el-dropdown>
<el-dropdown @command="tenderDatehandleCommand" trigger="click" ref="tenderDateShowPopper" :hide-on-click="false" >
<el-dropdown @command="tenderDatehandleCommand" class="el-dropdown-land" trigger="click" ref="tenderDateShowPopper" :hide-on-click="false" >
<span class="el-dropdown-link" :class="tenderDateValue ? 'color_text' : ''" >开标时间{{ tenderDateValue ? " 1项" : ""}}<i class="el-icon-caret-bottom"></i>
</span>
......@@ -134,24 +134,24 @@
<p class="list-titel">
<router-link :to="'/radar/BidRecord/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link>
</p>
<div class="content-label">
<div class="content-label" v-if="item.domicile">
<span class="list-label list-label-zb" v-if="item.domicile">
{{item.domicile}}
</span>
</div>
<div class="list-content">
<div class="list-content" v-if="item.tenderTime||item.source||item.punishDate">
<p class="list-content-text">
<p class="list-content-text" v-if="item.tenderTime">
<span>开标时间:</span>
<span>{{item.tenderTime||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.punishDate">
<span>发布时间:</span>
<span>{{item.punishDate||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.source">
<span>来源网站:</span>
<span>{{item.source||'--'}}</span>
</p>
......
......@@ -12,7 +12,7 @@
<div class="label">招标单位</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入招标单位关键字" v-model="jskBidPlanDto.tenderee" ></el-input>
placeholder="请输入招标采购单位关键字" v-model="jskBidPlanDto.tenderee" ></el-input>
</div>
</div>
<div class="content_item">
......@@ -73,7 +73,7 @@
</div>
<el-dropdown @command="planTenderAmounthandleCommand" class="el-dropdown-land" trigger="click" ref="planTenderAmountShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class="jskBidPlanDto.startPlanTenderAmount ||jskBidPlanDto.endPlanTenderAmount ? 'color_text': ''">
成交金额{{jskBidPlanDto.startPlanTenderAmount ||jskBidPlanDto.endPlanTenderAmount? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
合同预估金额{{jskBidPlanDto.startPlanTenderAmount ||jskBidPlanDto.endPlanTenderAmount? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in planTenderAmount" :class="jskBidPlanDto.startPlanTenderAmount == item.value[0] &&jskBidPlanDto.endPlanTenderAmount == item.value[1] &&
......@@ -155,46 +155,55 @@
<router-link :to="'/radar/Bidding/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
<!-- <div v-else-if="item.projectName" v-html="item.projectName"></div> -->
</p>
<div class="content-label">
<span class="list-label" v-if="item.projectType">{{item.projectType}}</span>
<div class="content-label" v-if="(item.province||item.city||item.city)||(item.projectType&&item.projectType!='其他'&&item.projectType!='空白')||(item.objectType&&item.objectType!='其他'&&item.objectType!='空白')">
<span class="list-label" v-if="item.domicile">
{{item.province}}
<template v-if="item.city">
-{{item.city}}
</template>
<template v-if="item.city">
-{{item.city}}
</template>
</span>
<span class="list-label list-label-wl" v-if="item.objectType">{{item.objectType}}</span>
<span class="list-label list-label-lx" v-if="item.projectType">{{item.projectType}}</span>
</div>
<div class="list-content">
<p class="list-content-text">
<div class="list-content" v-if="item.tenderee||item.planTenderAmount||item.projectCapitalSource">
<p class="list-content-text" v-if="item.tenderee">
<span>招采单位:</span>
<router-link v-if="item.tendereeId" :to="'/company/' + encodeStr(item.tendereeId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.tenderee"></router-link>
<span v-else>{{item.tenderee||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.planTenderAmount">
<span>合同预估金额(万元):</span>
<span>{{item.planTenderAmount||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.projectCapitalSource">
<span>资金来源:</span>
<span>{{item.projectCapitalSource||'--'}}</span>
</p>
</div>
<div class="list-content">
<p class="list-content-text">
<div class="list-content" v-if="item.issueTime||item.planTenderDateStart||item.sourceName">
<p class="list-content-text" v-if="item.issueTime">
<span>发布时间:</span>
<span >{{item.issueTimestamp||'--'}}</span>
<span >{{item.issueTime||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.planTenderDateStart">
<span>预计招标时间:</span>
<span>{{item.planTenderDateStart||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.sourceName">
<span>来源网站:</span>
<span >{{item.sourceName||'--'}}</span>
</p>
</div>
<div class="list-content list-addree">
<div class="list-content list-addree" v-if="item.projectScale">
<p class="list-content-text">
<span class="content-text-gc">工程规模:</span>
<span class="content-text-p">{{item.projectScale||'--'}}</span>
......@@ -789,7 +798,7 @@ export default {
width: auto;
background: #F3F4F5;
display: inline-flex;
margin-top: 7px;
margin-top: 12px;
.list-content-text{
margin-top: 0px;
span{
......
......@@ -190,52 +190,55 @@
<p class="list-titel">
<router-link :to="'/radar/Establishment/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
</p>
<div class="content-label" v-if="item.domicile||item.projectType&&item.projectType!='其他'&&item.projectType!='空白'||item.industry&&item.industry!='其他'&&item.industry!='空白'">
<span class="list-label " v-if="item.projectType&&item.projectType!='其他'&&item.projectType!='空白'">
{{item.projectType}}
</span>
<span class="list-label list-label-wl" v-if="item.industry&&item.industry!='其他'&&item.industry!='空白'">
{{item.industry}}
</span>
<span class="list-label list-label-lx" v-if="item.domicile">
{{item.domicile}}
</span>
</div>
<div class="list-content">
<p class="list-content-text"v-if="item.companyName">
<span>建设/申请单位</span>
<span class="blue">{{item.companyName}}</span>
<p class="list-content-text" v-if="item.companyName">
<span>项目业主</span>
<router-link :to="`/company/${encodeStr(item.companyId)}/`" tag="a" class="list-titel-a blue" v-html="item.companyName" ></router-link>
</p>
<p class="list-content-text"v-if="item.handleTime">
<span>发布日期:</span>
<span>{{item.handleTime}}</span>
<p class="list-content-text"v-if="item.money">
<span>总投资:</span>
<span v-html="item.money+'万元'"></span>
</p>
<p class="list-content-text"v-if="item.examineStatus">
<span>办件结果</span>
<span>{{item.examineStatus}}</span>
<p class="list-content-text"v-if="item.planStartTime">
<span>计划开工日期</span>
<span>{{item.planStartTime}}</span>
</p>
<p class="list-content-text"v-if="item.industry">
<span>行业分类</span>
<span>{{item.industry}}</span>
<p class="list-content-text"v-if="item.planEndTime">
<span>计划完工日期</span>
<span>{{item.planEndTime}}</span>
</p>
<p class="list-content-text"v-if="item.buildNature">
<span>建设性质</span>
<span>{{item.buildNature}}</span>
<p class="list-content-text"v-if="item.isProject!=null">
<span>是否为民间推介项目</span>
<span>{{item.isProject==0?'否':'是'}}</span>
</p>
</div>
<div class="list-content list-addree">
<template v-if="item.province||item.city||item.district">
<img src="@/assets/images/addree.png" alt="">
<p class="list-content-text">
<span>行政区划:</span>
<span >
{{item.province}}
<template v-if="item.city">
-{{item.city}}
</template>
<template v-if="item.district">
-{{item.district}}
</template>
</span>
</p>
</template>
<div class="list-content" v-if="item.buildScale">
<p class="list-content-text" >
<span>建设规模:</span>
<span>{{item.buildScale}}</span>
</p>
</div>
</li>
</ul>
<div class="pagination clearfix" v-show="total>0">
......@@ -557,8 +560,8 @@
methods: {
searchDic(){
api.searchDic().then(res=>{
this.projectTypeOptions = res.data.projectType;
this.industryOptions = res.data.establishmentIndustry
this.projectTypeOptions = res.projectType;
this.industryOptions = res.establishmentIndustry
}).catch(error=>{
});
......@@ -1260,7 +1263,7 @@
}
}
.content-label{
margin-top: 7px;
margin-top: 12px;
.list-label{
background: #F3F3FF;
color: #8491E8;
......@@ -1270,11 +1273,20 @@
font-size: 12px;
}
.list-label-wl{
background: #e8f7f0;
color: #38c8bf;
}
.list-label-lx{
background: #e4f3fd;
color: #41a1fd;
}
}
.list-content{
margin-top: 3px;
margin-top: 8px;
display: flex;
justify-content: start;
align-items: center;
......
......@@ -208,12 +208,12 @@
<p class="list-content-text" v-if="item.companyName">
<span>招采单位:</span>
<router-link v-if="item.jskEid" :to="'/company/' + encodeStr(item.jskEid) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
<span v-else class="blue">{{item.companyName||'--'}}</span>
<span v-else class="blue" v-html="item.companyName"></span>
</p>
<p class="list-content-text" v-if="item.agency">
<span>代理单位:</span>
<router-link v-if="item.agencyId" :to="'/company/' + encodeStr(item.agencyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.agency"></router-link>
<span v-else class="blue">{{item.agency||'--'}}</span>
<span v-else class="blue" v-html="item.agency"></span>
</p>
</div>
......@@ -222,9 +222,16 @@
<span>预算金款:</span>
<span>{{item.bidMoney||'--'}}万元</span>
</p>
<p class="list-content-text" v-if="item.contact">
<p class="list-content-text" v-if="item.contactTel || item.agencyContactTel">
<span>联系方式:</span>
<span >招采单位{{item.contact}}{{item.contactTel}} </span>
<span >
<template v-if="item.contactTel">
招采单位 {{ item.contact }} {{ item.contactTel}}{{item.contactTel && item.agencyContactTel ? ";" : ""}}
</template>
<template v-if="item.agencyContactTel">
代理单位 {{ item.agencyContact }} {{ item.agencyContactTel }}
</template>
</span>
</p>
</div>
......@@ -716,8 +723,8 @@
methods: {
searchDic(){
api.searchDic().then(res=>{
this.projectTypeOptions = res.data.projectType;
this.subjectMatterOptions = res.data.subjectMatter
this.projectTypeOptions = res.projectType;
this.subjectMatterOptions = res.subjectMatter
}).catch(error=>{
});
......
<template>
<div>
<div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" /></div>
<div class="user-info-head" @click="editCropper()">
<img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" v-if="options.img" />
<span v-else class="userInfo-avatar" v-else>{{ options.name&&options.name.slice(0, 1).toUpperCase() }}</span>
</div>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog">
<el-row>
<el-col :xs="24" :md="12" :style="{height: '350px'}">
......@@ -75,6 +78,7 @@ export default {
// 弹出层标题
title: "修改头像",
options: {
name: store.getters.name, //用户名称
img: store.getters.avatar, //裁剪图片的地址
autoCrop: true, // 是否默认生成截图框
autoCropWidth: 200, // 默认生成截图框宽度
......@@ -89,7 +93,7 @@ export default {
methods: {
// 编辑头像
editCropper() {
this.open = true;
// this.open = true;
},
// 打开弹出层结束时的回调
modalOpened() {
......@@ -167,7 +171,7 @@ export default {
height: 120px;
}
.user-info-head:hover:after {
/*.user-info-head:hover:after {
content: '+';
position: absolute;
left: 0;
......@@ -183,5 +187,5 @@ export default {
cursor: pointer;
line-height: 110px;
border-radius: 50%;
}
}*/
</style>
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