Commit b31f6a98 authored by dengguangman's avatar dengguangman

Merge remote-tracking branch 'origin/master'

parents c9510782 9c457166
......@@ -39,8 +39,9 @@ public class BusinessInfoController extends BaseController
* 项目批量导入
*/
@PostMapping("/upload")
public AjaxResult batchUpload(@RequestParam(value="file",required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response){
return businessInfoService.batchUpload(file,response);
// public AjaxResult batchUpload(@RequestPart("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response){
public AjaxResult batchUpload(@RequestPart("file") MultipartFile file){
return businessInfoService.batchUpload(file);
}
/**
......
......@@ -105,4 +105,16 @@ public class EnterpriseController {
return enterpriseService.financial(vo);
}
@ApiOperation(value = "城投平台企业查询(openApi)")
@PostMapping(value = "uipSerach")
public TableDataInfo uipSerach(@RequestBody @Valid EnterpriseUipSearchBody vo) throws Exception {
return enterpriseService.uipSerach(vo);
}
@ApiOperation(value = "城投平台企业查询选项(openApi)")
@PostMapping(value = "uipGroupData")
public R financial() throws Exception {
return enterpriseService.uipGroupData();
}
}
......@@ -118,6 +118,78 @@ public class BusinessInfo extends BaseEntity
@Excel(name = "项目状态")
private Integer status;
/** 评标办法 */
@Excel(name = "评标办法")
private String evaluationBidWay;
/** 开标时间 */
@Excel(name = "开标时间")
private String bidOpenTime;
/** 开标地点 */
@Excel(name = "开标地点")
private String bidOpenPlace;
/** 保证金缴纳 */
@Excel(name = "保证金缴纳")
private String earnestMoneyPay;
/** 保证金金额 */
@Excel(name = "保证金金额")
private String earnestMoney;
/** 评标委员会 */
@Excel(name = "评标委员会")
private String evaluationBidCouncil;
public String getEvaluationBidWay() {
return evaluationBidWay;
}
public void setEvaluationBidWay(String evaluationBidWay) {
this.evaluationBidWay = evaluationBidWay;
}
public String getBidOpenTime() {
return bidOpenTime;
}
public void setBidOpenTime(String bidOpenTime) {
this.bidOpenTime = bidOpenTime;
}
public String getBidOpenPlace() {
return bidOpenPlace;
}
public void setBidOpenPlace(String bidOpenPlace) {
this.bidOpenPlace = bidOpenPlace;
}
public String getEarnestMoneyPay() {
return earnestMoneyPay;
}
public void setEarnestMoneyPay(String earnestMoneyPay) {
this.earnestMoneyPay = earnestMoneyPay;
}
public String getEarnestMoney() {
return earnestMoney;
}
public void setEarnestMoney(String earnestMoney) {
this.earnestMoney = earnestMoney;
}
public String getEvaluationBidCouncil() {
return evaluationBidCouncil;
}
public void setEvaluationBidCouncil(String evaluationBidCouncil) {
this.evaluationBidCouncil = evaluationBidCouncil;
}
public Integer getStatus() {
return status;
}
......@@ -359,7 +431,12 @@ public class BusinessInfo extends BaseEntity
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("customerId", getCustomerId())
.append("status", getStatus())
.append("evaluationBidWay", getEvaluationBidWay())
.append("bidOpenTime", getBidOpenTime())
.append("bidOpenPlace", getBidOpenPlace())
.append("earnestMoneyPay", getEarnestMoneyPay())
.append("earnestMoney", getEarnestMoney())
.append("evaluationBidCouncil", getEvaluationBidCouncil())
.toString();
}
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseUipSearchBody extends BasePage {
/**
* 查询关键字
*/
private String keys;
/*
* 1金额倒序,2金额正序,3时间倒序,4时间正序
*/
@NotNull(message = "排序条件不能为空")
private Integer sort;
/**
* 省份
*/
private List<Integer> provinceIds;
/**
* 市份
*/
private List<Integer> cityIds;
/**
* 县
*/
private List<Integer> areaIds;
/**
* 城投业务类型
*/
private List<String> uipBusinessType;
/**
* 主体信用等级
*/
private List<String> bratingSubjectLevel;
/**
* 股东背景
*/
private List<String> shareholderBg;
/**
* 股权关系
*/
private List<String> equityRelationship;
}
import request from "@/utils/request";
// 获取页面数据
export function getList(data) {
return request({
url: '/getInfo',
method: 'get'
})
}
import request from "@/utils/request";
// 获取查询下拉选项
export function getOption() {
return request({
url: '/getInfo',
method: 'get'
})
}
// 获取列表数据
export function getList(data) {
return request({
url: '/getInfo',
method: 'get'
})
}
import request from "@/utils/request";
// 获取查询下拉选项
export function getOption() {
return request({
url: '/getInfo',
method: 'get'
})
}
// 获取列表数据
export function getList(data) {
return request({
url: '/getInfo',
method: 'get'
})
}
......@@ -34,4 +34,104 @@ export function abnormalYears(data) {
})
}
// 被执行人列表
export function executedPersonsPage(data) {
return request({
url: '/enterpriseCredit/executedPersonsPage',
method: 'post',
data:data
})
}
// 失信被执行人列表
export function executedPage(data) {
return request({
url: '/enterpriseCredit/executedPage',
method: 'post',
data:data
})
}
// 裁判文书列表
export function lawsuitsPage(data) {
return request({
url: '/enterpriseCredit/lawsuitsPage',
method: 'post',
data:data
})
}
// 裁判文书案由
export function lawsuitsCauseAction(data) {
return request({
url: '/enterpriseCredit/lawsuitsCauseAction',
method: 'post',
data:data
})
}
// 裁判文书身份
export function lawsuitsRole(data) {
return request({
url: '/enterpriseCredit/lawsuitsRole',
method: 'post',
data:data
})
}
// 法院公告列表
export function noticesPage(data) {
return request({
url: '/enterpriseCredit/noticesPage',
method: 'post',
data:data
})
}
// 法院公告类型
export function noticesType(data) {
return request({
url: '/enterpriseCredit/noticesType',
method: 'post',
data:data
})
}
// 法院公告身份
export function noticesRole(data) {
return request({
url: '/enterpriseCredit/noticesRole',
method: 'post',
data:data
})
}
// 法院公告案由
export function noticesCaseReason(data) {
return request({
url: '/enterpriseCredit/noticesCaseReason',
method: 'post',
data:data
})
}
// 开庭公告列表
export function kaitingPage(data) {
return request({
url: '/enterpriseCredit/kaitingPage',
method: 'post',
data:data
})
}
// 开庭公告案由
export function kaitingCauseAction(data) {
return request({
url: '/enterpriseCredit/kaitingCauseAction',
method: 'post',
data:data
})
}
// 开庭公告当事人身份
export function kaitingPureRole(data) {
return request({
url: '/enterpriseCredit/kaitingPureRole',
method: 'post',
data:data
})
}
......@@ -15,4 +15,59 @@ export function getProjectlist(param) {
params: param
})
}
//删除项目
export function delProject(param) {
return request({
url: '/business/info/remove/'+param,
method: 'DELETE',
})
}
//建设内容
export function getJSNR(param) {
return request({
url: '/business/info/construction/'+param,
method: 'GET',
})
}
//项目速览
export function getXMSL(param) {
return request({
url: '/business/info/browse/'+param,
method: 'GET',
})
}
//项目速览修改
export function editXMSL(param) {
return request({
url: '/business/info/edit',
method: 'POST',
data:param
})
}
//查询项目联系人
export function getLXR(param) {
return request({
url: '/business/contacts/list',
method: 'GET',
params:param
})
}
//修改项目联系人
export function editLXR(param) {
return request({
url: '/business/contacts/edit',
method: 'POST',
data:param
})
}
//新增项目联系人
export function addLXR(param) {
return request({
url: '/business/contacts/add',
method: 'POST',
data:param
})
}
......@@ -124,6 +124,7 @@
border-radius: 2px;
line-height: 28px;
cursor: pointer;
position: relative;
>span{
padding-left: 8px;
}
......@@ -131,6 +132,15 @@
color: rgba(35,35,32,0.4);
margin-left: 4px;
}
.timeinput{
opacity: 0;
position: absolute;
.el-input__inner{
padding: 0;
margin: 0;
border: 0;
}
}
}
}
}
......@@ -570,7 +580,7 @@
.el-input__prefix{
left: 8px;
top: -2px;
top: 3px;
}
.el-input__suffix{
height: 32px;
......@@ -988,7 +998,7 @@
background: rgba(0, 129, 255, 0.16);
font-size: 12px;
line-height: 22px;
top: 149px;
top: 148px;
right: 61px;
cursor: pointer;
.img{
......@@ -1067,3 +1077,5 @@
white-space: nowrap;
padding-right: 10px;
}
.none{display: none}
......@@ -371,7 +371,7 @@ select {
width: 100%;
height: 0px;
opacity: 1;
border: 1px solid #EFEFEF;
border-bottom: 1px solid #EFEFEF;
margin: 16px 0px;
}
......
<template>
<div class="keyword_wrap">
<el-dialog
title="关键词推荐"
:visible.sync="dialogVisible"
width="800"
class="keyword_dialog"
append-to-body
:lock-scroll="false"
>
<div class="keyword_label">请搜索或采用关键词种类</div>
<div v-if="dialogVisible">
<el-select @change="changeKeyword" v-model="keyword" clearable class="keyword_select" popper-class="keyword_dropdown" filterable :filter-method="filterMethod" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.id"
:label="item.type"
:value="item.content">
<span v-html="item.newType||item.type"></span>
</el-option>
</el-select>
<div>
<div class="keyword_name" >
<el-scrollbar style="height:256px">
<ul>
<li v-for="(item,index) in keywordList" :class="activeIndex == index?'active_li':''" :key="index" @click="keywordClick(index)">{{item.type}}</li>
</ul>
</el-scrollbar>
</div>
<div class="keyword_con">
<el-input
type="textarea"
:autosize="{ minRows: 1, maxRows: 8}"
placeholder="请输入内容"
v-model="content">
</el-input>
<span class="keyword_con_label">
<!-- <img class="keyword_con_img" src="@/assets/img/performance/tip.png" alt=""> -->
关键词可编辑或删减</span>
<div class="keyword_btn" @click="handclick">应用关键词</div>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
var debounce=function(fn, delay = 300) {
var timer = null;
return function() {
var _this = this;
var args = arguments;
if (timer) clearTimeout(timer);
timer = setTimeout(function() {
fn.apply(_this, args);
}, delay);
};
}
export default {
data(){
return{
dialogVisible:false,
activeIndex:0,
keyword:"",
content:"",
options:[],
keywordList:[]
}
},
methods:{
changeKeyword(){
this.keywordList.map((item,index)=>{
if(item.content == this.keyword){
this.activeIndex = index
this.content = this.keywordList[this.activeIndex].content
this.$nextTick(()=>{
let el = document.getElementsByClassName("active_li")[0]
el.scrollIntoView()
})
}
})
},
// 筛选方法
filterMethod: debounce(function(filterVal) {
let newArr = JSON.parse(JSON.stringify(this.keywordList))
if (filterVal) {
let filterArr = newArr.filter((item) => {
if (item == null) {
return false
} else {
item.newType = item.type.replace(new RegExp(filterVal, 'g'), "<span style='color:#FF204E;'>" + filterVal +
"</span>")
return item.type.toLowerCase().includes(filterVal.toLowerCase())
}
})
this.options = filterArr;
} else {
this.options = newArr;
}
}, 500),
handclick(){
this.$emit('keywordClick',this.content)
Object.assign(this.$data, this.$options.data()) //重置data
},
keywordClick(index){
this.activeIndex = index
this.content = this.keywordList[this.activeIndex].content
},
show(){
// this.$axios.post("/nationzj/project/keywordList").then(res=>{
// if(res.data.code==200){
// this.keywordList = res.data.data
// this.options = res.data.data
// // localStorage.setItem("keyword",JSON.stringify(res.data.data))
// this.content = this.keywordList[this.activeIndex].content;
// this.dialogVisible = true;
// }
// })
this.dialogVisible = true;
/*if(localStorage.getItem("keyword")){
this.keywordList = JSON.parse(localStorage.getItem("keyword"));
this.options = this.keywordList;
this.content = this.keywordList[this.activeIndex].content;
this.dialogVisible = true;
}else{
this.$axios.post("/nationzj/project/keywordList").then(res=>{
if(res.data.code==200){
this.keywordList = res.data.data
this.options = res.data.data
localStorage.setItem("keyword",JSON.stringify(res.data.data))
this.content = this.keywordList[this.activeIndex].content;
this.dialogVisible = true;
}
})
}*/
},
},
}
</script>
<style lang="scss">
.keyword_dialog{
.el-dialog{
width: 800px;
height: 384px;
background: #FFFFFF;
border-radius: 4px 4px 4px 4px;
opacity: 1;
position: relative;
.keyword_label{
position: absolute;
top: 11px;
left: 115px;
}
.el-dialog__header{
padding-left: 24px;
padding-top: 9px;
color: #333333;
font-weight: bold;
border-bottom: 1px solid #EEEEEE;
.el-dialog__title{
font-size: 16px;
}
.el-dialog__headerbtn{
font-size: 20px;
top: 5px;
right: 16px;
}
}
.el-dialog__body{
padding-top: 16px;
.keyword_select{
margin-bottom: 8px;
width: 376px;
.el-input,.el-input__inner{
width: 376px;
}
}
.keyword_name{
display: inline-block;
text-align: center;
width: 180px;
position: relative;
background:#F8F8F8;
border:1px solid rgba(230,230,230,1);
border-radius:2px 2px 0px 0px;
.el-scrollbar__wrap{
overflow-x: hidden;
}
li{
height:40px;
line-height:40px;
box-sizing: border-box;
cursor: pointer;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
padding: 0 5px;
color: #999999;
&:hover{
color: #0081FF;
background: #E2EDFF;
font-weight:bold;
}
}
.active_li{
color: #0081FF;
background: #E2EDFF;
font-weight:bold;
}
.el-input .el-input__inner{
height: 40px;
border-radius: 4px 4px 0 0;
border: none;
border-bottom: 1px solid #E6E6E6;
}
}
.keyword_con{
float: right;
display: inline-block;
position: relative;
margin-right: 4px;
width: 576px;
height:258px;
background:rgba(255,255,255,1);
border:1px solid rgba(230,230,230,1);
border-radius:2px 2px 0px 0px;
box-sizing: border-box;
textarea{
border: none;
resize:none;
max-height: 256px;
color: #333333;
padding: 16px;
}
.keyword_btn{
cursor: pointer;
line-height:28px;
color: #ffffff;
text-align: center;
position: absolute;
bottom: 24px;
right: 16px;
width: 102px;
height: 28px;
background: #0081FF;
border-radius: 2px 2px 2px 2px;
opacity: 1;
}
.keyword_con_label{
color: #999999;
font-size: 12px;
margin-left: 16px;
.keyword_con_img{
width: 14px;
height: 14px;
position: relative;
top: -2px;
}
}
}
}
}
}
.el-autocomplete-suggestion{
width: 140px!important;
}
.el-autocomplete-suggestion__wrap{
max-height: 370px!important;
}
</style>
......@@ -125,7 +125,7 @@ export const constantRoutes = [
path: '/macro/financing/details/:id(\\d+)',
component: () => import('@/views/macro/financing/details'),
name: 'financingDetails',
meta: { title: '区域专项债详情', icon: 'user' }
meta: { title: '区域专项债详情'}
}
]
},
......@@ -170,7 +170,21 @@ export const constantRoutes = [
meta: { title: '拟建项目详情', icon: 'radar' }
}
]
}
},
{
path: '/bxprozbgg',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/radar/bxprozbgg/details/:id(\\d+)',
component: () => import('@/views/radar/bxprozbgg/details'),
name: 'bxprozbggDetails',
meta: { title: '标讯pro项目详情', icon: 'radar' }
}
]
},
]
// 动态路由,基于用户权限动态去加载
......
......@@ -10,7 +10,7 @@
<div class="empty" v-if="tableData.total==0 && isNew == true">
<img src="@/assets/images/project/empty.png">
<div class="p1">添加你的第一位客户吧</div>
<div class="p2">抱歉,你还未添加客户,快去添加吧</div>
<div class="p2">抱歉你还未添加客户,快去添加吧</div>
<div class="btn btn_primary h36 w88" @click="opennew">添加客户</div>
<div class="btn btn_primary btn_shallow h36 w88" @click="pldrs">批量导入</div>
</div>
......@@ -227,56 +227,7 @@
</el-dialog>
</el-card>
</div>
<div class="uploadwin" v-if="pldr">
<div class="upload" v-if="addfile==false">
<div class="up_title">批量导入客户</div>
<div class="up_box">
<el-upload :class="{'none':isUpload == true}"
class="upload-demo"
:action="action"
:multiple="false"
accept=".xls,.xlsx"
drag
ref="upload"
:auto-upload="false"
:file-list="fileList"
:on-change="handleFileListChange"
:headers="headers"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/project/upload.png">
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div>
<div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div>
<div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div>
<div class="up_tip">导入已存在的客户将自动跳过</div>
</el-upload>
<div class="up_success" v-if="isUpload == true">
<img src="@/assets/images/project/success.png">上传成功
</div>
<div class="btn_download" v-if="isUpload == false" @click="downloadClick"><div class="img"></div>点击下载</div>
</div>
<div class="btns">
<div class="btn btn_primary btn_disabled h34" v-if="isUpload==false">确定导入</div>
<div class="btn btn_primary h34" @click="importConfirmClick" v-else>确定导入</div>
<div class="btn btn_default h34">取消</div>
</div>
</div>
<div class="success" v-if="addfile==true">
<div v-if="addsuccess==false">
<img class="img" src="@/assets/images/project/clock.png">
<div class="p1">查询客户中...</div>
<div class="p2">请耐心等待,过程大概30秒</div>
</div>
<div v-if="addsuccess == true">
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">成功导入客户信息</div>
<div class="btns">
<div class="btn btn_primary h32" @click="handleCurrentChange(1)">查看</div>
</div>
</div>
</div>
</div>
<batchimport v-if="pldr" :importtype="types" @cancels="importCancel" @getdatas="handleCurrentChange(1)"></batchimport>
</div>
</template>
......@@ -286,12 +237,15 @@
import {getCustomerList,importData,addCustomer} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main'
import prvinceTree from '@/assets/json/provinceTree'
import batchimport from '../../project/projectList/component/batchImport'
import axios from 'axios'
export default {
name: 'CustomList',
components:{batchimport},
data() {
return{
pldr: false,
types:'custom',
searchParam:{
companyName:'',
pageNum:1,
......@@ -304,9 +258,6 @@ export default {
tipslit:[],//项目标签
tipsvalue:"",//标签填写内容
tableData: [],//列表
isUpload:false,//有上传的文件
addfile:false,//已上传文件
addsuccess:false,//已成功加入数据
companData:[],//联想企业列表
customerLevel:[],//客户等级
......@@ -352,9 +303,9 @@ export default {
},
pldrs(){
this.pldr = true
this.addfile = false
this.isUpload = false
this.addsuccess = false
},
importCancel(){
this.pldr = false
},
//获取客户列表
getCustomerList(){
......@@ -372,6 +323,7 @@ export default {
},
//翻页
handleCurrentChange(val) {
this.pldr=false
this.isNew = false
this.searchParam.pageNum=val
this.getCustomerList()
......@@ -472,35 +424,6 @@ export default {
this.dialogVisible = false
this.showlist = false
},
// 批量导入
importConfirmClick() {
if (this.fileList.length > 0) {
this.$refs["upload"].submit();
this.getCustomerList();
this.addfile = true
} else {
this.$message("请先选择文件");
}
},
downloadClick() {
let a = document.createElement("a");
a.setAttribute("href", "/file/Template.xlsx");
a.setAttribute("download", "批量导入模版.xlsx");
document.body.appendChild(a);
a.click();
},
handleFileListChange(file, fileList) {
if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]];
this.isUpload = true
}
},
onSuccess(res, file, fileList) {
if(res.code == 200 )
this.addsuccess = true
else
this.$message.error({message:res.msg,showClose:true})
},
//地区
async prvinceTree() {
......@@ -617,5 +540,4 @@ export default {
padding-right: 26px;
}
}
.none{display: none}
</style>
......@@ -33,9 +33,9 @@
</el-date-picker>
</template>
<!-- 输入框 -->
<template v-if="form.type==3">
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input v-model="form.value" placeholder="请输入关键词"></el-input>
<el-input v-model="form.value" :placeholder="form.placeholder"></el-input>
<span @click="changeSelect">搜索</span>
</div>
</template>
......@@ -53,6 +53,10 @@
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
<!-- 自定义 -->
<template v-if="form.type==0">
<slot name="slot"></slot>
</template>
</div>
......@@ -109,7 +113,6 @@ export default {
},
methods: {
changeSelect(){
console.log(this.formData)
this.$emit('handle-search')
},
clickEXCEL() {
......@@ -204,6 +207,9 @@ export default {
color: rgba(35,35,35,0.8);
margin-left: 16px;
cursor: pointer;
&:hover{
color: #0081FF;
}
img{
width: 18px;
height: 18px;
......
......@@ -15,9 +15,9 @@
<template slot="title">
<span>{{item.title}}</span>
</template>
<el-menu-item :index="index+'-'+idx" v-for="(it, idx) in item.children" :key="idx" @click="handleItem(it)">{{it.title}}</el-menu-item>
<el-menu-item :index="index+'-'+idx" v-for="(it, idx) in item.children" :key="idx" @click="handleItem(it)" :disabled="it.disabled">{{it.title}}</el-menu-item>
</el-submenu>
<el-menu-item :index="index.toString()" @click="handleItem(item)" v-else>{{item.title}}</el-menu-item>
<el-menu-item :index="index.toString()" @click="handleItem(item)" :disabled="item.disabled" v-else>{{item.title}}</el-menu-item>
</template>
</el-menu>
</div>
......@@ -50,13 +50,13 @@ export default {
]},
{title: '财务简析', pathName: 'financial'},
{title: '项目商机', pathName: '', children: [
{title: '土地交易', pathName: ''},
{title: '拟建项目', pathName: ''},
{title: '专项债项目', pathName: ''},
{title: '招标计划', pathName: ''},
{title: '招标公告', pathName: ''},
{title: '标讯Pro', pathName: ''},
{title: '行政许可', pathName: ''}
{title: '土地交易', pathName: 'landtransaction'},
{title: '拟建项目', pathName: 'proposed'},
{title: '专项债项目', pathName: 'bond'},
{title: '招标计划', pathName: 'biddingplan'},
{title: '招标公告', pathName: 'announcement'},
{title: '标讯Pro', pathName: 'tencent'},
{title: '行政许可', pathName: 'administrative'}
]},
{title: '业务往来', pathName: '', children: [
{title: '客户', pathName: ''},
......@@ -80,7 +80,7 @@ export default {
{title: '开庭公告', pathName: 'openacourtsessionNotice'},
{title: '信用中国', pathName: ''}
]},
{title: '商务信息', pathName: 'business'},
// {title: '商务信息', pathName: 'business'},
{title: '招标偏好', pathName: 'preference'},
{title: '合作情况', pathName: 'cooperate'},
{title: '决策链条', pathName: 'decisionMaking'},
......
......@@ -24,6 +24,7 @@
:label="item.label"
:prop="item.prop"
:width="item.width"
:min-width="item.minWidth"
align="left"
:fixed="item.fixed"
:sortable="item.sortable"
......
<!-- 表格组件 -->
<template>
<div class="infoTable-container">
<el-form v-if="Object.keys(obj).length > 0" class="infoTable-form" label-position="left">
<template v-for="(item, index) in list">
<el-form-item :style="item.span?{width: `${100/(24/item.span)}%`}:{}" :label="item.name" :label-width="labelWidth?labelWidth+'px':'130px'" :key="index" :class="[
{ 'infoTable-form-view': item.style },
{ 'infoTable-form-item': !item.style },
{ 'infoTable-form-row': item.rowstyle }
]">
<div>
<template v-if="item.slot === true">
<slot :name="item.prop" :data="obj"></slot>
</template>
<span v-else> {{ obj[item.prop] ?obj[item.prop] !==""?item.formatter?item.formatter(obj[item.prop]):obj[item.prop]:'--' :'--' }}</span>
</div>
</el-form-item>
</template>
</el-form>
<div v-else class="no-data">
<div class="no-data-box" v-if="show">
<img :src="noData" alt="暂时没有找到相关数据" />
<span>暂时没有找到相关数据</span>
</div>
</div>
</div>
</template>
<script>
export default {
name: "InfoTable",
components: {
},
props: {
list: {
type: Array,
default: () => [],
},
obj: {
type: Object,
default: () => { }
},
labelWidth: {
type: Number,
default: null
}
},
data() {
return {
show:false,
// 当前移入单元格内容
noData: require("@/assets/images/detail/noData.png")
};
},
created() {
},
mounted(){
this.show = true;
},
methods: {
},
};
</script>
<style lang="scss" scoped>
.infoTable-container {
.infoTable-form {
display: flex;
flex-wrap: wrap;
border-left: 1px solid #e5e9f5;
border-top: 1px solid #e5e9f5;
border-collapse: collapse;
.infoTable-form-item {
width: 50%;
flex: auto;
margin-bottom: 0px;
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 12px;
}
.infoTable-form-view {
width: 100%;
flex: auto;
margin-bottom: 0px;
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 12px;
}
.infoTable-form-row {
width: 33%;
flex: auto;
margin-bottom: 0px;
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 12px;
}
::v-deep .el-form-item__label {
height: 100%;
background-color: #F0F3FA;
padding: 8px 12px 8px 12px;
font-size: 12px;
font-weight: normal;
color: rgba(35,35,35,0.8);
display: flex;
align-items: center;
line-height: normal;
}
::v-deep .el-form-item__content {
padding-left: 12px;
font-size: 12px;
color: #232323;
}
::v-deep .el-form-item__content {
border-left: 1px solid #e5e9f5;
height: 100%;
display: flex;
align-items: center;
}
::v-deep .el-col {
border-bottom: 1px solid #e5e9f5;
}
}
.no-data {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #999999;
text-shadow: 0px 0px 10px rgba(0, 37, 106, 0.10000000149011612);
max-width: 1200px;
height: 328px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
border-radius: 0px 0px 0px 0px;
opacity: 1;
border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 64px;
height: 79px;
margin-bottom: 16px;
}
}
}
::v-deep .el-form-item__content {
line-height: 22px;
padding: 6px 4px;
}
}
</style>
......@@ -43,6 +43,8 @@
</div>
</template>
<!-- <Detail />-->
<!-- 弹窗关联项目 -->
<el-drawer
title="添加合作情况"
......@@ -130,11 +132,12 @@ import {
queryProject
} from '@/api/detail/party-a/cooperate'
import {addProject} from '@/api/project/project'
import Detail from "../../../project/projectList/detail"
export default {
name: 'Cooperate',
mixins: [mixin],
components: {
Detail
},
data() {
return {
......
......@@ -54,7 +54,8 @@
</template>
<script>
import * as echarts from 'echarts';
import { getList } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts'
export default {
name: 'Financial',
props: ['companyId'],
......@@ -79,12 +80,7 @@ export default {
{ name: '非标余额', ico: require('@/assets/images/detail/financial/zwqk_ico3.png'), intro: '非标余额/有息债务', introPro: '95.19%', amount: '1699.7', unit: '亿元'},
{ name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '95.19%', amount: '1699.7', unit: '亿元'}
],
echartsData: [
{ value: 1048, name: '有息债务' },
{ value: 735, name: '有息债务/总债务' },
{ value: 580, name: '综合融资成本' },
{ value: 484, name: 'EBITDA保障倍数' }
],
echartsData: [],
// 资金情况
zjqkList: [
{ name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '99213', unit: '亿元'},
......@@ -113,9 +109,23 @@ export default {
created() {
},
mounted() {
this.getEcharts()
this.handleQuery()
},
methods: {
handleQuery() {
let param = {}
getList(param).then((res) => {
this.echartsData = [
{ value: 1048, name: '有息债务' },
{ value: 735, name: '有息债务/总债务' },
{ value: 580, name: '综合融资成本' },
{ value: 484, name: 'EBITDA保障倍数' }
]
this.$nextTick(() => {
this.getEcharts()
})
})
},
getEcharts(){
let myChart = echarts.init(document.getElementById("myEcharts"));
//配置图表
......@@ -193,6 +203,7 @@ export default {
.financial-header{
background: #FFFFFF;
padding: 24px 16px;
border-radius: 4px;
.header-box {
justify-content: space-between;
flex-wrap: wrap;
......@@ -269,6 +280,7 @@ export default {
background: #FFFFFF;
padding: 24px 16px;
margin-top: 12px;
border-radius: 4px;
.zcqk-list{
margin-top: 4px;
overflow: hidden;
......@@ -335,6 +347,7 @@ export default {
background: #FFFFFF;
padding: 24px 16px;
margin-top: 12px;
border-radius: 4px;
.zwqk-box{
padding-top: 20px;
justify-content: normal;
......
......@@ -7,34 +7,43 @@
</div>
<div class="part-right">
<div id="partBox" v-if="companyId">
<Overview v-if="currentPath.pathName=='overview'" />
<!-- 企业概览 -->
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" />
<Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
<Overseas v-if="currentPath.pathName=='overseas'" :company-id="companyId" />
<Branch v-if="currentPath.pathName=='branch'" :company-id="companyId" />
<Financial v-if="currentPath.pathName=='financial'" :company-id="companyId" />
<Business v-if="currentPath.pathName=='business'" />
<!-- <Business v-if="currentPath.pathName=='business'" /> 商务信息 -->
<!-- 项目商机 -->
<Landtransaction v-if="currentPath.pathName=='landtransaction'" :company-id="companyId" />
<Proposed v-if="currentPath.pathName=='proposed'" :company-id="companyId" />
<Bond v-if="currentPath.pathName=='bond'" :company-id="companyId" />
<Biddingplan v-if="currentPath.pathName=='biddingplan'" :company-id="companyId" />
<Announcement v-if="currentPath.pathName=='announcement'" :company-id="companyId" />
<Tencent v-if="currentPath.pathName=='tencent'" :company-id="companyId" />
<Administrative v-if="currentPath.pathName=='administrative'" :company-id="companyId" />
<!-- 投诚分析 -->
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" />
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" />
<SameRegion v-if="currentPath.pathName=='sameRegion'" />
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" />
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" />
<SameRegion v-if="currentPath.pathName=='sameRegion'" :company-id="companyId" />
<!-- 风险信息 -->
<Punish v-if="currentPath.pathName=='punish'" />
<BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" />
<IfThePerson v-if="currentPath.pathName=='ifThePerson'" />
<Dishonesty v-if="currentPath.pathName=='dishonesty'" />
<Judgment v-if="currentPath.pathName=='judgment'" />
<CourtNotice v-if="currentPath.pathName=='courtNotice'" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" />
<Punish v-if="currentPath.pathName=='punish'" :company-id="companyId" />
<BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" :company-id="companyId" />
<IfThePerson v-if="currentPath.pathName=='ifThePerson'" :company-id="companyId" />
<Dishonesty v-if="currentPath.pathName=='dishonesty'" :company-id="companyId" />
<Judgment v-if="currentPath.pathName=='judgment'" :company-id="companyId" />
<CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" />
<!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" />
<Preference v-if="currentPath.pathName=='preference'" :company-id="companyId" />
<!-- 合作情况 -->
<Cooperate v-if="currentPath.pathName=='cooperate'" />
<Cooperate v-if="currentPath.pathName=='cooperate'" :company-id="companyId" />
<!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" />
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :company-id="companyId" />
<!-- 跟进记录 -->
<Gjjl v-if="currentPath.pathName=='gjjl'" types="gjdt" />
<Gjjl v-if="currentPath.pathName=='gjjl'" :company-id="companyId" />
</div>
</div>
</div>
......@@ -53,7 +62,14 @@ import Execuinfo from "./overview/execuinfo" //企业概览-高管信息
import Overseas from "./overview/overseas" //企业概览-对外投资
import Branch from "./overview/branch" //企业概览-分支机构
import Financial from "./financial" //财务简析
import Business from "./business" //商务信息
//import Business from "./business" //商务信息
import Landtransaction from "./opport/landtransaction" //项目商机-土地交易
import Proposed from "./opport/proposed" //项目商机-拟建项目
import Bond from "./opport/bond" //项目商机-专项债项目
import Biddingplan from "./opport/biddingplan" //项目商机-招标计划
import Announcement from "./opport/announcement" //项目商机-招标公告
import Tencent from "./opport/tencent" //项目商机-标讯Pro
import Administrative from "./opport/administrative" //项目商机-行政许可
import LandAcquisition from "./urbanLnvestment/landAcquisition" //投诚分析-城投拿地
import RegionalEconomies from "./urbanLnvestment/regionalEconomies" //投诚分析-区域经济
import SameRegion from "./urbanLnvestment/sameRegion" //投诚分析-同地区城投
......@@ -80,7 +96,14 @@ export default {
Overseas,
Branch,
Financial,
Business,
// Business,
Landtransaction,
Proposed,
Bond,
Biddingplan,
Announcement,
Tencent,
Administrative,
LandAcquisition,
RegionalEconomies,
SameRegion,
......
......@@ -14,6 +14,12 @@ export default {
},
methods: {
// 设置下拉选项数据源
setFormData(fieldName, list) {
this.formData.forEach(item => {
item.fieldName == fieldName ? item.options = list : ''
})
},
formParams(){
let condtion = {}
let reqData = {}
......@@ -29,6 +35,9 @@ export default {
})
Object.keys(condtion).forEach(key => {
if(condtion[key]) {
if(Array.isArray(condtion[key]) && condtion[key].length == 0){
delete condtion[key]
}
reqData[key] = condtion[key]
}
})
......@@ -41,13 +50,14 @@ export default {
handleSearch(){
let params = this.formParams()
params.pageNum = 1
this.queryParams.pageNum = 1
this.handleQuery(params)
},
//分页
handleCurrentChange(e){
console.log(e)
let params = this.formParams()
params.pageNum = e
this.queryParams.pageNum = e
this.handleQuery(params)
},
handleSizeChange(e){
......
<template>
<div class="detail-container">
<head-form
title="行政许可"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="porjectName" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.porjectName)?'cell-span':'']" :style="{'-webkit-line-clamp': 2}">
{{ scope.row.porjectName }}
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.porjectName)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">展开</span></span>
</span>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/opport'
export default {
name: 'Administrative',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '许可决定日期', prop: 'use', width: '100'},
{label: '决定文书号', prop: 'type', width: '200'},
{label: '许可编号', prop: 'type', width: '80'},
{label: '决定文书名称', prop: 'type', width: '190'},
{label: '许可内容', prop: 'porjectName', width: '300', slot: true},
{label: '有效期自', prop: 'type', width: '100'},
{label: '有效期至', prop: 'type', width: '100'},
{label: '行政许可类别', prop: 'type', width: '100'},
{label: '许可机关', prop: 'type', width: '180'},
{label: '行政许可机关统一社会信用代码', prop: 'type', width: '200'},
{label: '数据来源单位', prop: 'type', width: '110'},
{label: '数据来源单位统一社会信用代码', prop: 'type', width: '200'},
{label: '来源', prop: 'type', width: '80'}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
showList:[]
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装滨州医学院口腔医学大',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
},
changeShowAll(row, column) {
this.showList.push({
row: row,
column: column
})
},
isOverHiddenFlag(data, showList, row, column, value) {
if(value && String(value).length > this.getLenth(data)) {
return !showList.some(item => item.row==row&&item.column==column)
}else {
return false
}
},
getLenth(data) {
return Math.floor(data / 12) * 5
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
>span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
}
</style>
<template>
<div class="detail-container">
<head-form
title="招标公告"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import {getList, getOption} from '@/api/detail/party-a/opport'
export default {
name: 'Announcement',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '发布日期', prop: 'use', sortable: true, width: '120'},
{label: '预算金额(万元)', prop: 'type', sortable: true, width: '140'},
{label: '项目地区', prop: 'way', width: '120'},
{label: '项目类别', prop: 'state', width: '90'},
{label: '招采单位联系人', prop: 'money', width: '110'},
{label: '招采单位联系方式', prop: 'money', width: '130'},
{label: '代理单位', prop: 'money', width: '170'},
{label: '代理单位联系人', prop: 'money', width: '110'},
{label: '代理单位联系方式', prop: 'money', width: '130'},
{label: '报名截止日期', prop: 'money', width: '100'}
],
formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目地区', options: []},
{ type: 1, fieldName: 'projectType', value: '', placeholder: '项目类型', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleOption()
this.handleQuery()
},
methods: {
handleOption(){
getOption().then((res) => {
this.setFormData('projectStage', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
this.setFormData('projectType', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
},
handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="app-container detail-container">
biddingplan
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'Biddingplan',
props: ['companyId'],
mixins: [mixin],
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.detail-container{
margin: 0;
padding: 16px;
background: #FFFFFF;
}
</style>
<template>
<div class="detail-container">
<head-form
title="专项债项目"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/opport'
export default {
name: 'Bond',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '项目总投资(亿元)', prop: 'use', sortable: true, width: '150'},
{label: '项目资本金(亿元)', prop: 'type', sortable: true, width: '150'},
{label: '项目收益倍数(倍)', prop: 'way', sortable: true, width: '150'},
{label: '专项债金额(亿元)', prop: 'state', sortable: true, width: '150'},
{label: '专项债用作资本金(亿元)', prop: 'money', sortable: true, width: '200'}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="detail-container">
<head-form
title="土地交易"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { getOption, getList } from '@/api/detail/party-a/opport'
export default {
name: 'Landtransaction',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '土地用途', prop: 'use', width: '130'},
{label: '行业分类', prop: 'type', width: '100'},
{label: '供地方式', prop: 'way', width: '100'},
{label: '土地坐落', prop: 'state', width: '130'},
{label: '成交金额(万元)', prop: 'money', sortable: true, width: '140'},
{label: '总面积(㎡)', prop: 'scale', sortable: true, width: '130'},
{label: '批准单位', prop: 'unit', width: '130'},
{label: '签订日期', prop: 'date', width: '130'}
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
showList:[],
}
},
computed: {
},
created() {
this.handleOption()
this.handleQuery()
},
methods: {
handleOption(){
getOption().then((res) => {
this.setFormData('penalizeReasonType', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
},
handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="detail-container">
<head-form
title="拟建项目"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/opport'
export default {
name: 'Proposed',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '成交金额(万元)', prop: 'use', sortable: true, width: '150'},
{label: '项目类别', prop: 'type', width: '100'},
{label: '计划开工日期', prop: 'way', sortable: true, width: '130'},
{label: '计划完工日期', prop: 'state', sortable: true, width: '130'},
{label: '审批结果', prop: 'money', width: '100'},
{label: '是否为民间推介项目', prop: 'scale', width: '150'}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []},
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
</style>
<template>
<div class="app-container detail-container">
tencent
</div>
</template>
<script>
import mixin from '../mixins/mixin'
export default {
name: 'Tencent',
props: ['companyId'],
mixins: [mixin],
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.detail-container{
margin: 0;
padding: 16px;
background: #FFFFFF;
}
</style>
......@@ -10,6 +10,7 @@
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
......@@ -17,11 +18,10 @@
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="inReason" slot-scope="scope">
<div>{{scope.row.inReason}}</div>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{scope.row.projectName}}</router-link>
<div class="tags" v-if="scope.row.tag">
<span class="tag style1">{{scope.row.tag}}</span>
<span class="tag style1">{{scope.row.tag}}</span>
</div>
</template>
</tables>
......@@ -30,53 +30,70 @@
<script>
import mixin from '../mixins/mixin'
import {getList, getOption} from '@/api/detail/party-a/overview'
export default {
name: 'Branch',
props: ['companyId'],
mixins: [mixin],
data() {
return {
queryParams: {
cid: 6034,
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '被投资企业名称', prop: 'inReason', slot: true},
{label: '负责人', prop: 'inDate'},
{label: '成立日期', prop: 'department'}
{label: '被投资企业名称', prop: 'projectName', slot: true},
{label: '负责人', prop: 'type'},
{label: '成立日期', prop: 'date'}
],
formData: [
{ type: 1, fieldName: 'zbgg', value: '', placeholder: '招标公告',
options: [
{ name: '招标公告类别1', value: '1' },
{ name: '招标公告类别2', value: '2' },
{ name: '招标公告类别3', value: '3' },
{ name: '招标公告类别4', value: '4' }
]
{ type: 1, fieldName: 'zbgg', value: '', placeholder: '招标公告', options: []
}
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
this.handleOption()
this.handleQuery()
},
methods: {
async dataRegion() {
this.tableData = [
{id:1, inReason:'达萨法达萨法', inDate:'000',tag:'aaa'},
{id:2, inReason:'达萨法达萨法', inDate:'111'},
{id:3, inReason:'达萨法达萨法', inDate:'222'},
{id:4, inReason:'达萨法达萨法', inDate:'333'}
] //测试
handleOption(){
getOption().then((res) => {
this.setFormData('zbgg', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
},
handleQuery(params) {
console.log(params)
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
tag: '在业',
projectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
......@@ -87,6 +104,7 @@ export default {
margin: 0;
padding: 16px;
background: #FFFFFF;
border-radius: 4px;
.tags{
.tag{
display: inline-block;
......
......@@ -5,66 +5,10 @@
<el-tab-pane label="工商变更" name="second"></el-tab-pane>
</el-tabs>
<div class="businfo-box" v-if="activeName=='first'">
<p>
<label class="label">企业名称</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">社会信用代码</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">法定代表人</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">登记状态</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">成立日期</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">注册资本</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">实缴资本</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">核准日期</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">组织机构代码</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">工商注册号</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">纳税人识别号</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">企业类型</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">营业期限</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">纳税人资质</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">所属地区</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">登记机关</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">人员规模</label>
<span>{{forInfo.companyName || '--'}}</span>
<label class="label">参保人数</label>
<span>{{forInfo.companyName || '--'}}</span>
</p>
<p>
<label class="label">经营范围</label>
<span class="span-one">{{forInfo.companyName || '--'}}</span>
</p>
</div>
<info-table class="info-tab" :list="defaultList" :obj="forInfo" :labelWidth="labelWidth" v-if="activeName=='first'">
</info-table>
<tables
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -78,19 +22,46 @@
<script>
import mixin from '../mixins/mixin'
import InfoTable from '../component/infoTable'
import {getList} from "@/api/detail/party-a/overview";
export default {
name: 'Businfo',
props: ['companyId'],
components: {
InfoTable
},
mixins: [mixin],
data() {
return {
activeName: 'first',
queryParams: {
cid: 6034,
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forInfo: {},
labelWidth: 250,
forInfo: {projectType: 'aaa', projectPurposes: '222', projectInvestmentAmounts: '222'},
defaultList: [
{ name: '企业名称', prop: 'projectTypes' },
{ name: '社会信用代码', prop: 'projectPurposes' },
{ name: '法定代表人', prop: 'projectInvestmentAmounts' },
{ name: '登记状态', prop: 'projectInvestmentAmounts' },
{ name: '成立日期', prop: 'projectInvestmentAmounts' },
{ name: '注册资本', prop: 'projectInvestmentAmounts' },
{ name: '实缴资本', prop: 'projectInvestmentAmounts' },
{ name: '核准日期', prop: 'projectInvestmentAmounts' },
{ name: '组织机构代码', prop: 'projectInvestmentAmounts' },
{ name: '工商注册号', prop: 'projectInvestmentAmounts' },
{ name: '纳税人识别号', prop: 'projectInvestmentAmounts' },
{ name: '企业类型', prop: 'projectInvestmentAmounts' },
{ name: '营业期限', prop: 'projectInvestmentAmounts' },
{ name: '纳税人资质', prop: 'projectInvestmentAmounts' },
{ name: '所属地区', prop: 'projectInvestmentAmounts' },
{ name: '登记机关', prop: 'projectInvestmentAmounts' },
{ name: '人员规模', prop: 'projectInvestmentAmounts' },
{ name: '参保人数', prop: 'projectInvestmentAmounts' },
{ name: '经营范围', prop: 'projectInvestmentAmounts', style: true }
],
forData: [
{label: '变更日期', prop: 'inReason', width: '90', slot: true},
{label: '变更事项', prop: 'inDate'},
......@@ -103,22 +74,34 @@ export default {
}
},
created() {
this.handleData()
this.handleQuery()
},
methods: {
handleClick(){
this.handleData()
},
async handleData() {
this.tableData = [
{id:1, inReason:'达萨法达萨法', inDate:'000',tag:'aaa'},
{id:2, inReason:'达萨法达萨法', inDate:'111'},
{id:3, inReason:'达萨法达萨法', inDate:'222'},
{id:4, inReason:'达萨法达萨法', inDate:'333'}
] //测试
this.handleQuery()
},
handleQuery(params) {
console.log(params)
handleQuery() {
console.log('索引:',this.activeName)
this.tableLoading = true
getList(this.queryParams).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
tag: '在业',
projectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
......@@ -129,6 +112,7 @@ export default {
margin: 0;
padding: 16px;
background: #FFFFFF;
border-radius: 4px;
.detail-tab{
margin: 0 0 0 -16px;
::v-deep .el-tabs__nav-wrap::after{
......@@ -144,35 +128,5 @@ export default {
}
}
}
.businfo-box {
border-top: 1px solid #E6E9F0;
p {
display: flex;
align-items: center;
margin: 0;
border-left: 1px solid #E6E9F0;
border-bottom: 1px solid #E6E9F0;
.label {
width: 10%;
font-weight: 400;
line-height: 40px;
font-size: 12px;
height: 40px;
background: #F0F3FA;
padding-left: 12px;
}
span {
width: 40%;
color: #000;
height: 40px;
line-height: 40px;
padding-left: 12px;
font-size: 12px;
}
.span-one {
width: 90%;
}
}
}
}
</style>
......@@ -231,6 +231,7 @@ export default {
padding: 24px 16px;
background: #FFFFFF;
overflow: hidden;
border-radius: 4px;
.zbph-item{
justify-content: space-around;
padding-top: 26px;
......@@ -296,6 +297,7 @@ export default {
width: calc(50% - 8px);
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.table-item{
margin-top:15px;
.ywwl-ico{
......
......@@ -178,6 +178,7 @@ export default {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.selfTab{
margin: 24px 0 0 -12px;
::v-deep .el-tabs__nav-wrap::after{
......
......@@ -540,6 +540,7 @@ export default {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.company-swiper{
position: relative;
.swiper-info{
......
......@@ -74,6 +74,7 @@ export default {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.part-swiper{
position: relative;
margin-top: 16px;
......
......@@ -92,6 +92,7 @@ export default {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.selfTab{
margin: 24px 0 0 -12px;
::v-deep .el-tabs__nav-wrap::after{
......
......@@ -151,6 +151,7 @@ export default {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.clue-box{
width: 100%;
justify-content: space-between;
......
......@@ -49,6 +49,7 @@ export default {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.table-item{
margin-top: 16px;
::v-deep .el-table--border .el-table__cell{
......
......@@ -60,6 +60,7 @@ export default {
padding: 24px 16px;
background: #FFFFFF;
overflow: hidden;
border-radius: 4px;
.common-title{
margin-bottom: 10px;
}
......
......@@ -19,6 +19,7 @@
<script>
import mixin from '../mixins/mixin'
import {getList} from '@/api/detail/party-a/overview'
export default {
name: 'Execuinfo',
props: ['companyId'],
......@@ -26,13 +27,13 @@ export default {
data() {
return {
queryParams: {
cid: 6034,
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '姓名', prop: 'inDate'},
{label: '职位', prop: 'department'}
{label: '姓名', prop: 'projectName'},
{label: '职位', prop: 'type'}
],
formData: [],
//列表
......@@ -42,19 +43,30 @@ export default {
}
},
created() {
this.handleData()
this.handleQuery()
},
methods: {
async handleData() {
this.tableData = [
{id:1, inReason:'达萨法达萨法', inDate:'000',tag:'aaa'},
{id:2, inReason:'达萨法达萨法', inDate:'111'},
{id:3, inReason:'达萨法达萨法', inDate:'222'},
{id:4, inReason:'达萨法达萨法', inDate:'333'}
] //测试
},
handleQuery(params) {
console.log(params)
handleQuery() {
this.tableLoading = true
getList(this.queryParams).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
tag: '在业',
projectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
......@@ -65,5 +77,6 @@ export default {
margin: 0;
padding: 16px;
background: #FFFFFF;
border-radius: 4px;
}
</style>
......@@ -19,11 +19,10 @@
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="inReason" slot-scope="scope">
<div>{{scope.row.inReason}}</div>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{scope.row.projectName}}</router-link>
<div class="tags" v-if="scope.row.tag">
<span class="tag style1">{{scope.row.tag}}</span>
<span class="tag style1">{{scope.row.tag}}</span>
</div>
</template>
</tables>
......@@ -32,6 +31,7 @@
<script>
import mixin from '../mixins/mixin'
import {getList} from '@/api/detail/party-a/overview'
export default {
name: 'Holderinfo',
props: ['companyId'],
......@@ -40,12 +40,12 @@ export default {
return {
activeName: 'first',
queryParams: {
cid: 6034,
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '发起人/股东', prop: 'inReason', slot: true},
{label: '发起人/股东', prop: 'projectName', minWidth: '230', slot: true},
{label: '持股比例', prop: 'inDate'},
{label: '认缴出资(万)', prop: 'department'},
{label: '实缴出资额', prop: 'department'},
......@@ -56,28 +56,38 @@ export default {
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.handleData()
this.handleQuery()
},
methods: {
handleClick(){
this.handleData()
},
async handleData() {
this.tableData = [
{id:1, inReason:'达萨法达萨法', inDate:'000',tag:'aaa'},
{id:2, inReason:'达萨法达萨法', inDate:'111'},
{id:3, inReason:'达萨法达萨法', inDate:'222'},
{id:4, inReason:'达萨法达萨法', inDate:'333'}
] //测试
this.handleQuery()
},
handleQuery(params) {
console.log(params)
handleQuery() {
console.log('索引:',this.activeName)
this.tableLoading = true
getList(this.queryParams).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
tag: '在业',
projectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
......@@ -88,6 +98,7 @@ export default {
margin: 0;
padding: 16px;
background: #FFFFFF;
border-radius: 4px;
.detail-tab{
margin: -34px 0 0 -16px;
::v-deep .el-tabs__nav-wrap::after{
......
......@@ -10,6 +10,7 @@
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
......@@ -18,22 +19,18 @@
@handle-current-change="handleCurrentChange"
>
<template slot="gqzb">
<div class="tab-header">股权占比 <el-popover
placement="top-start"
width="280"
trigger="hover">
<div>
<div class="tab-header">股权占比 <el-popover placement="top-start" width="280" trigger="hover">
<div style="font-size: 12px;">
控股67%:绝对控制权67%,相当于100%的权力,修改公司章程/分立、合并、变更主营项目、重大决策<br />
控股51%:相对控制权51%,控制线,绝对控制公司<br />
控股34%:安全控制权,一票否决权</div>
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference">
</el-popover></div>
</template>
<template slot="inReason" slot-scope="scope">
<div>{{scope.row.inReason}}</div>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{scope.row.projectName}}</router-link>
<div class="tags" v-if="scope.row.tag">
<span class="tag style1">{{scope.row.tag}}</span>
<span class="tag style1">{{scope.row.tag}}</span>
</div>
</template>
</tables>
......@@ -42,6 +39,7 @@
<script>
import mixin from '../mixins/mixin'
import {getList, getOption} from '@/api/detail/party-a/overview'
export default {
name: 'Overseas',
props: ['companyId'],
......@@ -49,12 +47,12 @@ export default {
data() {
return {
queryParams: {
cid: 6034,
companyId: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '被投资企业名称', prop: 'inReason', slot: true},
{label: '被投资企业名称', prop: 'projectName', minWidth: '180', slot: true},
{label: '法定代表人', prop: 'inDate'},
{label: '注册资本(万元)', prop: 'department'},
{label: '成立日期', prop: 'department'},
......@@ -62,45 +60,58 @@ export default {
{label: '认缴出资额(万元)', prop: 'department'}
],
formData: [
{ type: 1, fieldName: 'zbgg', value: '', placeholder: '招标公告',
options: [
{ name: '招标公告类别1', value: '1' },
{ name: '招标公告类别2', value: '2' },
{ name: '招标公告类别3', value: '3' },
{ name: '招标公告类别4', value: '4' }
]
},
{ type: 1, fieldName: 'gqzb', value: '', placeholder: '股权占比',
options: [
{ name: '股权占比类别1', value: '1' },
{ name: '股权占比类别2', value: '2' },
{ name: '股权占比类别3', value: '3' },
{ name: '股权占比类别4', value: '4' }
]
}
{ type: 1, fieldName: 'zbgg', value: '', placeholder: '招标公告', options: [] },
{ type: 1, fieldName: 'gqzb', value: '', placeholder: '股权占比', options: [] }
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.handleData()
this.handleOption()
this.handleQuery()
},
methods: {
async handleData() {
this.tableData = [
{id:1, inReason:'达萨法达萨法', inDate:'000',tag:'aaa'},
{id:2, inReason:'达萨法达萨法', inDate:'111'},
{id:3, inReason:'达萨法达萨法', inDate:'222'},
{id:4, inReason:'达萨法达萨法', inDate:'333'}
] //测试
handleOption(){
getOption().then((res) => {
this.setFormData('zbgg', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
this.setFormData('gqzb', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
},
handleQuery(params) {
console.log(params)
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
tag: '在业',
projectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
}
}
}
......@@ -111,6 +122,7 @@ export default {
margin: 0;
padding: 16px;
background: #FFFFFF;
border-radius: 4px;
.tab-header{
img{
margin-bottom: -3px;
......
......@@ -32,11 +32,17 @@ export default {
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 6034,
cid: 382724726,
pageNum: 1,
pageSize: 10
},
......@@ -49,7 +55,7 @@ export default {
{label: '做出决定机关(移除)', prop: 'outDepartment', width: '264'}
],
formData: [
{ type: 1, fieldName: 'years', value: '', placeholder: '列入时间', options: []}
{ type: 4, fieldName: 'years', value: '', placeholder: '列入时间', options: []}
],
//列表
tableLoading:false,
......@@ -61,6 +67,7 @@ export default {
},
created() {
this.handleQuery()
this.years()
},
computed: {
......@@ -68,10 +75,26 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
abnormalPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
})
},
years(){
abnormalYears({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i].year + '(' + data[i].count + ')',
value: data[i].year,
})
}
}
})
}
}
}
</script>
......
......@@ -22,85 +22,111 @@
</template>
<script>
import {
noticesPage,
noticesType,
noticesRole,
noticesCaseReason
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
export default {
name: 'CourtNotice',
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 6034,
cid: 20734,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '案由', prop: 'enterpriseName'},
{label: '公告时间', prop: 'level', width: '95'},
{label: '当事人', prop: 'capital', width: '240'},
{label: '案号', prop: 'cgrdm', width: '210'},
{label: '公告类型', prop: 'cgrssqy', width: '210'},
{label: '公告法院', prop: 'dataId', width: '280'}
{label: '案由', prop: 'caseReason'},
{label: '公告时间', prop: 'date', width: '95'},
{label: '当事人', prop: 'people', width: '240'},
{label: '案号', prop: 'objId', width: '210'},
{label: '公告类型', prop: 'type', width: '210'},
{label: '公告法院', prop: 'court', width: '280'}
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '公告类型',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '案由',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '身份',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
{ type: 1, fieldName: 'type', value: '', placeholder: '公告类型', options: []},
{ type: 1, fieldName: 'caseReason', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'role', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词'},
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
this.handleQuery()
this.noticesTypes()
this.noticesRoles()
this.noticesCaseReasons()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
let data = params ? params : this.queryParams
this.tableLoading = true
noticesPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
})
},
noticesTypes(){
noticesType({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i].type + '(' + data[i].count + ')',
value: data[i].type,
})
}
}
})
},
noticesRoles(){
noticesRole({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[1].options.push({
name: data[i].role + '(' + data[i].count + ')',
value: data[i].role,
})
}
}
})
},
noticesCaseReasons(){
noticesCaseReason({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[2].options.push({
name: data[i].caseReason + '(' + data[i].count + ')',
value: data[i].caseReason,
})
}
}
})
},
}
}
......
......@@ -10,6 +10,7 @@
/>
<tables
:index-fixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
......@@ -22,22 +23,31 @@
</template>
<script>
import {
executedPage
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
export default {
name: 'Dishonesty',
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 6034,
cid: 5504335,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '失信被执行人行为具体情形', prop: 'executionDesc', width: '508'},
{label: '失信被执行人行为具体情形', prop: 'executionDesc', width: '508', fixed: true},
{label: '立案日期', prop: 'date', width: '95'},
{label: '履行情况', prop: 'executionStatus', width: '120'},
{label: '立案文号', prop: 'caseNumber', width: '210'},
......@@ -50,31 +60,24 @@ export default {
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
this.handleQuery()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
let data = params ? params : this.queryParams
this.tableLoading = true
executedPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
})
}
}
}
......
......@@ -22,17 +22,26 @@
</template>
<script>
import {
executedPersonsPage
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
export default {
name: 'IfThePerson',
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 6034,
cid: 194738907,
pageNum: 1,
pageSize: 10
},
......@@ -48,34 +57,25 @@ export default {
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
this.handleQuery()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
let data = params ? params : this.queryParams
this.tableLoading = true
executedPersonsPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
})
}
}
}
</script>
......
......@@ -16,24 +16,41 @@
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
>
<template slot="relatedCompanies" slot-scope="scope">
<div v-for="item in scope.row.relatedCompanies">
<span>{{ item.clean_role }}</span>{{ item.name }}
</div>
</template>
</tables>
</div>
</template>
<script>
import {
lawsuitsPage,
lawsuitsCauseAction,
lawsuitsRole
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
export default {
name: 'Judgment',
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 6034,
cid: 5504335,
pageNum: 1,
pageSize: 10
},
......@@ -41,59 +58,69 @@ export default {
{label: '案由', prop: 'causeAction', width: '240'},
{label: '执行案号', prop: 'causeNo', width: '210'},
{label: '身份', prop: 'role', width: '120'},
{label: '当事人', prop: 'relatedCompanies', width: '240'},
{label: '当事人', prop: 'relatedCompanies', width: '240', slot: true},
{label: '案件金额(元)', prop: 'subAmount', width: '140'},
{label: '判决结果', prop: 'judgeresult', width: '508'},
{label: '判决日期', prop: 'date', width: '95'},
],
formData: [
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'role', value: '', placeholder: '身份',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 2, fieldName: 'tiem', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索关键字', options: []}
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'role', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索关键字'}
],
//列表
tableLoading:false,
tableData:[],
pageIndex:1,
pageSize:10,
tableDataTotal:0,
}
},
created() {
this.dataRegion()
this.handleQuery()
this.lawsuitsCauseActions()
this.lawsuitsRoles()
},
computed: {
},
methods: {
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
let data = params ? params : this.queryParams
this.tableLoading = true
lawsuitsPage(data).then(res => {
this.tableData = res.rows
for (var i=0;i<this.tableData.length;i++){
this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies)
}
this.tableDataTotal = res.total
this.tableLoading = false
})
},
lawsuitsCauseActions(){
lawsuitsCauseAction({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i].causeAction + '(' + data[i].num + ')',
value: data[i].causeAction,
})
}
}
})
},
lawsuitsRoles(){
lawsuitsRole({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[1].options.push({
name: data[i].role + '(' + data[i].num + ')',
value: data[i].role,
})
}
}
})
}
}
}
......
......@@ -10,63 +10,67 @@
/>
<tables
:index-fixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
>
<template slot="relatedCompanies" slot-scope="scope">
<div v-for="item in scope.row.relatedCompanies">
<span>{{ item.role }}</span>{{ item.name }}
</div>
</template>
</tables>
</div>
</template>
<script>
import {
kaitingPage,
kaitingCauseAction,
kaitingPureRole
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
export default {
name: 'OpenacourtsessionNotice',
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 6034,
cid: 20734,
pageNum: 1,
pageSize: 10
},
forData: [
{label: '案由', prop: 'causeAction', width: '240'},
{label: '案由', prop: 'causeAction', width: '240', fixed: true},
{label: '开庭日期', prop: 'hearingDate', width: '95'},
{label: '当事人', prop: 'relatedCompanies', width: '428'},
{label: '当事人', prop: 'relatedCompanies', width: '428', slot: true},
{label: '身份', prop: 'pureRole', width: '120'},
{label: '公告内容', prop: 'cgrssqy', width: '508'},
{label: '公告内容', prop: '', width: '508'},
{label: '案号', prop: 'caseNo', width: '210'},
{label: '法院', prop: 'dataId', width: '280'},
{label: '法庭', prop: 'dataId', width: '180'},
{label: '承办部门', prop: 'dataId', width: '280'},
{label: '审判长/主判人', prop: 'dataId', width: '106'}
{label: '法院', prop: 'court', width: '280'},
{label: '法庭', prop: '', width: '180'},
{label: '承办部门', prop: '', width: '280'},
{label: '审判长/主判人', prop: '', width: '106'}
],
formData: [
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 1, fieldName: 'pureRole', value: '', placeholder: '身份',
options: [
{ name: '处罚类别1', value: '1' },
{ name: '处罚类别2', value: '2' },
{ name: '处罚类别3', value: '3' },
{ name: '处罚类别4', value: '4' }
]
},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'pureRole', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词'},
],
//列表
tableLoading:false,
......@@ -77,7 +81,9 @@ export default {
}
},
created() {
this.dataRegion()
this.handleQuery()
this.kaitingCauseActions()
this.kaitingPureRoles()
},
computed: {
......@@ -87,20 +93,44 @@ export default {
let Id = '111'
this.$router.push({ path: '/project/projectList/detail', query: Id });
},
async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
},
handleQuery(params) {
console.log(params)
}
let data = params ? params : this.queryParams
this.tableLoading = true
kaitingPage(data).then(res => {
this.tableData = res.rows
for (var i=0;i<this.tableData.length;i++){
this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies)
}
this.tableDataTotal = res.total
this.tableLoading = false
})
},
kaitingCauseActions(){
kaitingCauseAction({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i].causeAction + '(' + data[i].count + ')',
value: data[i].causeAction,
})
}
}
})
},
kaitingPureRoles(){
kaitingPureRole({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[1].options.push({
name: data[i].pureRole + '(' + data[i].count + ')',
value: data[i].pureRole,
})
}
}
})
},
}
}
</script>
......
......@@ -40,11 +40,17 @@ export default {
mixins: [mixin],
components: {
},
props: {
companyId: {
type: Number,
default: 0
}
},
data() {
return {
queryParams: {
cid: 382724726,
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
......@@ -53,9 +59,9 @@ export default {
{label: '决定日期', prop: 'punishBegin', width: '95'},
{label: '处罚结果', prop: 'punishResult', width: '264'},
{label: '处罚文书号', prop: 'fileNum', width: '200'},
{label: '相关人员', prop: 'cgrdm', width: '88'},
{label: '相关人员', prop: '', width: '88'},
{label: '处罚机关', prop: 'office', width: '264'},
{label: '处罚结束日期', prop: 'dataId', width: '100'},
{label: '处罚结束日期', prop: '', width: '100'},
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '处罚类别', options: []},
......@@ -63,42 +69,41 @@ export default {
],
//列表
tableLoading:false,
tableData:[
{
punishReason:'根据成都市住房和城乡建设局《关于持续开展建设工地扬尘治理专项攻坚行动的通知》(成住建发(2021]178号),对你单位参建的项目住宅、商业及配套设施(2020-510107-47-03-506368) (金茂府三期)(安监备案编号:WH-CJ-AJ-2021-001)监督检查中发现未湿法作业(现场存在露天切割石材,未采取降尘防尘措施)。)的违规行为,予以记录并扣分,预扣减施工企业现场信用信息得分0.05分,预扣减监理企业现场信用信息得分...预扣减施工企业现场信用信息得分0.05分,预扣减监理企业现场信用信息得分',
punishBegin:'2015-08-06',
punishResult:'列入全省3-6月份拖欠农民工工资预警项目,现予以限期整改通报。',
fileNum:'铜城建罚决字【2021)】18-5号',
cgrdm:'测试1',
office:'江苏省住房和城乡建设厅',
dataId:'2015-08-06',
}
],
tableDataTotal:200,
tableData:[],
tableDataTotal:0,
showList:[],
}
},
created() {
this.getList()
this.handleQuery()
this.penalizeReasonTypeData()
},
computed: {
},
methods: {
getList() {
penalizePage(this.queryParams).then((res) => {
console.log(res.data.rows)
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
penalizePage(data).then((res) => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
})
},
penalizeReasonTypeData(){
penalizeReasonType({cid:this.queryParams.cid}).then((res) => {
console.log(res)
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i].punishType + '(' + data[i].count + ')',
value: data[i].punishTypeId,
})
}
}
})
},
handleQuery(params) {
console.log(params)
},
changeShowAll(row, column) {
this.showList.push({
row: row,
......
......@@ -16,7 +16,11 @@
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
>
<template slot="projectName" slot-scope="data">
<router-link :to="''+ data.row.id" style="color: #0081FF">{{ data.row.projectName }}</router-link>
</template>
</tables>
</div>
</template>
......@@ -42,19 +46,19 @@ export default {
pageSize: 10
},
forData: [
{label: '项目名称', prop: 'punishReason', width: '508'},
{label: '土地用途', prop: 'punishBegin', width: '120'},
{label: '行业分类', prop: 'punishResult', width: '120'},
{label: '供地方式', prop: 'fileNum', width: '120'},
{label: '土地坐落', prop: 'cgrdm', width: '120'},
{label: '成交金额(万元)', prop: 'office', width: '130'},
{label: '总面积(㎡)', prop: 'dataId', width: '120'},
{label: '批准单位', prop: 'dataId', width: '120'},
{label: '签订日期', prop: 'dataId', width: '120'}
{label: '项目名称', prop: 'projectName', width: '508', slot: true},
{label: '土地用途', prop: 'landUse', width: '120'},
{label: '行业分类', prop: 'industry', width: '120'},
{label: '供地方式', prop: 'supplyLandWay', width: '120'},
{label: '土地坐落', prop: 'landAddr', width: '150'},
{label: '成交金额(万元)', prop: 'transactionPrice', width: '130'},
{label: '总面积(㎡)', prop: 'acreage', width: '120'},
{label: '批准单位', prop: 'authority', width: '120'},
{label: '签订日期', prop: 'contractSignTime', width: '120'}
],
formData: [
{ type: 4, fieldName: 'landUse', value: [], placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词'},
],
//列表
tableLoading:false,
......@@ -63,29 +67,34 @@ export default {
}
},
created() {
this.getList()
this.handleQuery()
this.getlandUse()
},
computed: {
},
methods: {
getList() {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
landTransactionPage(this.queryParams).then(res=>{
this.tableData = res.data
this.tableDataTotal = res.data.total
landTransactionPage(data).then(res=>{
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
})
},
handleQuery(params) {
console.log(params)
},
//土地用途
getlandUse(){
landUse({cid: this.queryParams.cid}).then(res=>{
console.log(res)
// this.formData[0].options = res.data
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i].landUse + '(' + data[i].count + ')',
value: data[i].landUse,
})
}
}
})
}
}
......
......@@ -7,6 +7,7 @@
</div>
<div class="table-item">
<el-table
:tableLoading="tableLoading"
:data="getValues"
:show-header="false"
border
......@@ -36,8 +37,13 @@ export default {
return {
params: {
provinceId: 500000,
cityId: 500100
cityId: 500100
},
labels: [
'指标',
'财政',
'债务',
],
tableData: [],
headers: [
{
......@@ -193,10 +199,10 @@ export default {
label: '债务率-宽口径',
},
],
tableLoading: true
}
},
created() {
console.log(11)
this.dataRegion()
},
computed: {
......@@ -205,7 +211,7 @@ export default {
},
getValues() {
return this.headers.map(item => {
return this.tableData.reduce((pre, cur, index) => Object.assign(pre, {['value' + index]: cur[item.prop]}), {'title': item.label,});
return this.tableData.reduce((pre, cur, index) => Object.assign(pre, {['value' + index]: cur[item.prop]}), {'title': item.label,})
});
}
},
......@@ -214,6 +220,7 @@ export default {
dataRegion() {
regionalEconomy(this.params).then(res => {
this.tableData = res.data
this.tableLoading = false
})
},
}
......@@ -224,9 +231,36 @@ export default {
background: #ffffff;
border-radius: 4px;
padding: 16px;
::v-deep .el-table tr{
background: #F9FCFF;
}
::v-deep .table-item{
.el-table{
.el-table__body-wrapper{
tr{
&:first-child{
background: #F0F3FA;
div{
color: rgba(35,35,35,0.8);
}
}
&:nth-child(2n){
background: #FFFFFF;
}
}
}
}
}
.query-box{
margin: 10px 0 20px;
}
}
::v-deep .el-table__body-wrapper tr:nth-child(2) td:first-child,
::v-deep .el-table__body-wrapper tr:nth-child(16) td:first-child,
::v-deep .el-table__body-wrapper tr:nth-child(28) td:first-child{
font-weight: bold;
color: #232323;
}
</style>
......@@ -7,7 +7,86 @@
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
>
<template slot="slot">
<div class="search-box">
<span style="cursor: pointer;" @click="handleSearch">筛选<i class="el-icon-caret-bottom" style="color:rgba(35,35,35,0.4);margin-left: 5px"></i></span>
<div v-show="searchState" ref="showContent" class="search-main">
<div class="item">
<span class="wrap_label">行政等级</span>
<div class="item_ckquery">
<span :class="{color_text:xzdjCalss == ''}" @click="changeXZDJ('')">全部</span>
<template v-for="(item,index) in xzdj">
<span :class="{color_text:index+1 === xzdjCalss}" @click="changeXZDJ(index+1)">{{item.name}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label">城投业务类型</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in typeList">
<span>{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label">主体评级</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in ztpj">
<span>{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label">股东背景</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in gdbj">
<span>{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label">股权关系</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in gqgx">
<span>{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label">平台重要性</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in pt">
<span>{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label" style="width: 78px;">开发区类别</span>
<div class="item_ckquery">
<span>全部</span>
<template v-for="(item,index) in lfqType">
<span>{{item}}</span>
</template>
</div>
</div>
<div class="item">
<span class="wrap_label">更多筛选</span>
<div class="item_ckquery">
<span :class="addresslength>0?'select-active':''">注册地区{{addresslength>0?(addresslength+'项'):''}}</span>
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd'
@input="addressListbtn" v-model="addressType" :options="addressList" :props="props" collapse-tags></el-cascader>
</div>
</div>
</div>
</div>
</template>
</head-form>
<tables
:tableLoading="tableLoading"
......@@ -73,16 +152,39 @@ export default {
{label: '所属开发区', prop: 'developmentZone', width: '120'}
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '筛选',
options: []
},
{ type: 0, fieldName: 'penalizeReasonType', value: '', placeholder: '筛选', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词', options: []},
],
xzdj:[
{
name:'省级',
key:1,
},
{
name:'地级市',
key:2,
},
{
name:'区县级',
key:3,
}
],
selected:[],
xzdjCalss:'',
typeList:['土地开发整理','基础设施建设','棚改保障房建设','公用事业','文化旅游','交通建设运营','产投平台'],
ztpj:['AAA','AA+','AA','A+','A','A-','BBB+','其他'],
gdbj:['政府','财政','国资委','其他'],
gqgx:['直接控股','间接控股'],
pt:['重要平台','主要平台','一般平台'],
lfqType:['国家级经开','国家级高新区','国家海关监管区域','国家级新区','国家边和区','其他国家级','省级新区','省级开发区'],
props: {
value: 'id',
multiple: true,
},
addressList: [],
addressType: [],
addresslength: 0,
searchState:false,
//列表
tableLoading:false,
tableData:[],
......@@ -148,6 +250,38 @@ export default {
}
this.addressList = str;
},
handleSearch(event){
// this.searchState=!this.searchState;
let dom = this.$refs.showContent;
if (!dom.contains(event.target)) {
this.searchState = !this.searchState;
document.removeEventListener('click', this.handleSearch);
}
},
changeXZDJ(index) {
this.xzdjCalss = index;
},
addressListbtn() {
let arr = this.$refs.address.getCheckedNodes();
let provinceCode = [],cityCode = [],countyCode = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
}
}
if (provinceCode.length > 0 || cityCode.length > 0 || countyCode.length > 0) {
this.addresslength = provinceCode.length + cityCode.length + countyCode.length;
} else {
this.addresslength = 0;
}
},
handleQuery(params){
this.tableLoading = true
let data = params ? params : this.queryParams
......@@ -168,5 +302,60 @@ export default {
.query-box{
margin: 10px 0 20px;
}
.search-box{
display: inline-block;
margin-right: 32px;
/*cursor: pointer;*/
color:#232323;
position: relative;
.search-main{
background: #ffffff;
box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.1);
border-radius: 4px;
width: 880px;
height: 337px;
padding: 16px;
position: absolute;
top: 25px;
left: 0;
z-index: 2001;
.item{
margin-bottom: 5px;
display: flex;
/*align-items: center;*/
font-size: 14px;
.wrap_label{
color: rgba(35,35,35,0.8);
margin-right: 12px;
line-height: 30px;
}
.item_ckquery{
position: relative;
span{
color: #232323;
padding: 5px 12px;
display: inline-block;
cursor: pointer;
}
.color_text{
background: #F3F4F5;
border-radius: 4px;
color: #0081FF;
}
.select-active{
color: #0081FF;
}
}
.cascader-region {
position: absolute;
left: 0;
top: -6px;
opacity: 0;
line-height: 22px;
}
}
}
}
}
</style>
This diff is collapsed.
<template>
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">若依后台管理系统</h3>
<h3 class="title"><img src="../assets/images/title_icon.png"/>欢迎登录系统</h3>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
type="text"
auto-complete="off"
placeholder="账号"
placeholder="请输入登录账号"
>
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
<img class="img" slot="prefix" src="../assets/images/user.png"/>
</el-input>
</el-form-item>
<el-form-item prop="password">
......@@ -17,33 +17,33 @@
v-model="loginForm.password"
type="password"
auto-complete="off"
placeholder="密码"
placeholder="请输入账号密码"
@keyup.enter.native="handleLogin"
>
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
<img class="img" slot="prefix" src="../assets/images/password.png"/>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
v-model="loginForm.code"
auto-complete="off"
placeholder="验证码"
style="width: 63%"
placeholder="请输入验证码"
style="width: 56%;float: left;"
@keyup.enter.native="handleLogin"
>
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
<img class="img" slot="prefix" src="../assets/images/validCode.png"/>
</el-input>
<div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 48px;">记住密码</el-checkbox>
<el-form-item style="width:100%;">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width:100%;"
style="width:100%;height: 48px;border-radius: 4px;font-size: 16px;"
@click.native.prevent="handleLogin"
>
<span v-if="!loading">登 录</span>
......@@ -54,10 +54,6 @@
</div>
</el-form-item>
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span>
</div>
</div>
</template>
......@@ -161,30 +157,53 @@ export default {
justify-content: center;
align-items: center;
height: 100%;
background-image: url("../assets/images/login_background.jpg");
background-image: url("../assets/images/login_bg.png");
background-size: cover;
}
.title {
margin: 0px auto 30px auto;
text-align: center;
color: #707070;
padding: 46px 0 32px 48px;
border-bottom: 1px solid #F0F0F0;
font-size: 22px;
color: #232323;
margin: 0 0 32px 0;
img{
width: 17px;
height: 17px;
margin-bottom: 3px;
}
}
.login-form {
border-radius: 6px;
background: #ffffff;
width: 400px;
padding: 25px 25px 5px 25px;
width: 420px;
/*padding: 25px 25px 5px 25px;*/
.el-form-item{
padding: 0 48px;
margin-bottom:24px;
}
.el-input {
height: 38px;
width: 324px;
height: 48px;
background: #F2F4F9;
input {
height: 38px;
height: 48px;
background: #F2F4F9;
font-size: 14px;
}
.el-input__inner{
padding-left: 73px;
}
}
.el-input__prefix{
border-right: 1px solid #D8D8D8;
height: 24px;
margin: 12px 0;
}
.input-icon {
height: 39px;
width: 14px;
margin-left: 2px;
.img {
height: 24px;
width: 24px;
margin: 0 14px 0 12px;
}
}
.login-tip {
......@@ -195,7 +214,8 @@ export default {
.login-code {
width: 33%;
height: 38px;
float: right;
float: left;
margin-left: 16px;
img {
cursor: pointer;
vertical-align: middle;
......@@ -214,6 +234,6 @@ export default {
letter-spacing: 1px;
}
.login-code-img {
height: 38px;
height: 48px;
}
</style>
......@@ -164,16 +164,30 @@ export default {
padding: 16px;
.search{
::v-deep .el-cascader{
width: 130px;
width: 180px;
margin-right: 12px;
height: 32px;
.el-input{
width: 100%;
height: 32px;
.el-input__inner{
height: 32px !important;
}
}
.el-cascader__tags{
flex-wrap: inherit;
.el-tag{
max-width: 100px;
margin: 5px 0 2px 6px;
}
}
}
::v-deep .el-input{
width: 250px;
height: 32px;
.el-input__inner{
height: 32px;
}
.el-input-group__append{
width: 59px;
background: #F5F5F5;
......
......@@ -268,6 +268,14 @@
.el-form{
margin-left: 24px;
}
::v-deep .el-cascader{
.el-cascader__tags{
flex-wrap: inherit;
.el-tag{
max-width: 130px;
}
}
}
}
}
.content{
......
......@@ -139,7 +139,7 @@ export default {
},
],
glData:['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
glData1:[103,156,132,186,203,143,189,301,211,195,132,176],
glData1:[503,156,132,186,203,143,189,301,211,195,132,176],
tableData1:[
{
area:'1月',
......@@ -263,6 +263,7 @@ export default {
},
initChart1() {
let myChart = echarts.init(document.getElementById("gl-echarts"))
let dataList=this.glData1;
let option = {
tooltip: {
trigger: 'axis', //坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
......@@ -287,17 +288,41 @@ export default {
series: [
{
data: this.glData1,
markPoint:{
data:[
{type:'max',name:'最大值'},
]
},
// markPoint:{
// data:[
// {type:'max',name:'最大值'},
// {type:'min',name:'最小值'},
// ]
// },
type: 'bar',
barWidth: 20,
itemStyle: {
normal: {
barBorderRadius: [4, 4, 0, 0],
color: '#2ECFCF',
// color: '#2ECFCF',
color: function (params) {
var colorList = [] //定义一个存储颜色的数组
//更改前二位柱形颜色
//定义一个变量 保存柱形图数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存
let companyValue1 = JSON.parse(JSON.stringify(dataList))
let arr = dataList.sort((a, b) => {
return b - a
})
//将原数组数据赋值回去 保持数据不变
dataList = JSON.parse(JSON.stringify(companyValue1))
//遍历数据 将原数组和排序后的数组比较
dataList.map(i => {
if (i == arr[0]) {
colorList.push('#F39F35')
} else if (i == arr[1]) {
colorList.push('#6675A5')
}else{
colorList.push('#2ECFCF')
}
})
//返回一个存储着颜色的数组根据数据index顺序渲染到页面
return colorList[params.dataIndex]
}
},
}
}
......
......@@ -7,7 +7,7 @@
>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加客户</span>
<span>添加项目</span>
</div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="项目名称:" class="row" prop="projectName">
......
<template>
<div class="uploadwin">
<div class="upload" v-if="addfile==false">
<div class="up_title">批量导入{{titletext}}</div>
<div class="up_box">
<el-upload :class="{'none':isUpload == true}"
class="upload-demo"
:action="action"
:multiple="false"
accept=".xls,.xlsx"
drag
ref="upload"
:auto-upload="false"
:file-list="fileList"
:on-change="handleFileListChange"
:headers="headers"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/project/upload.png">
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div>
<div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div>
<div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div>
<div class="up_tip">导入已存在的客户将自动跳过</div>
</el-upload>
<div class="up_success" v-if="isUpload == true">
<img src="@/assets/images/project/success.png">上传成功
</div>
<div class="btn_download" v-if="isUpload == false" @click="downloadClick"><div class="img"></div>点击下载</div>
</div>
<div class="btns">
<div class="btn btn_primary btn_disabled h34" v-if="isUpload==false">确定导入</div>
<div class="btn btn_primary h34" @click="importConfirmClick" v-else>确定导入</div>
<div class="btn btn_default h34" @click="importCancel">取消</div>
</div>
</div>
<div class="success" v-if="addfile==true">
<div v-if="addsuccess==false">
<img class="img" src="@/assets/images/project/clock.png">
<div class="p1">查询客户中...</div>
<div class="p2">请耐心等待,过程大概30秒</div>
</div>
<div v-if="addsuccess == true">
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">成功导入客户信息</div>
<div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss"
import {importData} from '@/api/custom/custom'
export default {
name: 'batchImport',
props:{
importtype:''
},
data(){
return{
isUpload:false,//有上传的文件
addfile:false,//已上传文件
addsuccess:false,//已成功加入数据
//批量导入
action:"",
fileList: [],
headers: {
Authorization: "Bearer " + getToken(),
},
downloadhref:'',//样例地址
titletext:'',
}
},
created(){
console.log(this.importtype )
if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '项目'
this.action = process.env.VUE_APP_BASE_API + '/business/info/upload'
}
if(this.importtype == 'custom'){//客户管理
this.downloadhref = '/file/Template.xlsx'
this.titletext = '客户'
this.action = process.env.VUE_APP_BASE_API + "/customer/importData"
}
},
methods:{
getmsg(){
this.$emit('getdatas')
},
handleFileListChange(file, fileList) {
if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]];
this.isUpload = true
}
},
onSuccess(res, file, fileList) {
if(res.code == 200 )
this.addsuccess = true
else
this.$message.error({message:res.msg,showClose:true})
},
downloadClick() {
let a = document.createElement("a");
a.setAttribute("href", this.downloadhref);
a.setAttribute("download", "批量导入模版.xlsx");
document.body.appendChild(a);
a.click();
},
// 批量导入
importConfirmClick() {
if (this.fileList.length > 0) {
this.$refs["upload"].submit();
this.addfile = true
} else {
this.$message("请先选择文件");
}
},
importCancel(){
this.addfile = false
this.isUpload = false
this.addsuccess = false
this.$emit('cancels')
},
}
}
</script>
<style scoped>
</style>
......@@ -13,12 +13,12 @@
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="p2">抱歉你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div>
</div>
</template>
<el-table-column
prop="date"
prop="name"
label="姓名"
width="113">
</el-table-column>
......@@ -27,34 +27,34 @@
label="操作"
width="118">
<template slot-scope="scope">
<div class="edit">
<div class="edit" @click="getDetail(scope.row)">
<img src="@/assets/images/project/edit.png">
<span>编辑</span>
</div>
</template>
</el-table-column>
<el-table-column
prop="name"
prop="role"
label="角色"
sortable
width="146">
</el-table-column>
<el-table-column
prop="address"
prop="office"
label="公司/机关">
</el-table-column>
<el-table-column
prop="name"
prop="position"
label="职位"
width="125">
</el-table-column>
<el-table-column
prop="name"
prop="phone"
label="联系方式"
width="175">
</el-table-column>
<el-table-column
prop="name"
prop="accendant"
label="内部维护人"
width="146">
</el-table-column>
......@@ -63,11 +63,11 @@
<div class="btn btn_primary h28" @click="opennew"><div class="img img1"></div>新增联系人</div>
<el-pagination
background
:page-size="20"
:current-page="1"
:page-size="searchParam.pageSize"
:current-page="searchParam.pageNum"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="1000">
:total="total">
</el-pagination>
</div>
</div>
......@@ -77,33 +77,30 @@
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>重庆市轨道交通3号线二期工程4标段施工总承包</span>
<span>{{projectname}}</span>
</div>
<el-form class="popform" label-width="137px">
<el-form-item label="联系人姓名:" class="row">
<el-input type="text" placeholder="请输入"></el-input>
<el-input type="text" v-model="queryParam.name" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人角色:" class="row">
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
<el-input type="text" v-model="queryParam.role" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人职位:" class="row">
<el-input type="text" placeholder="请输入"></el-input>
<el-input type="text" v-model="queryParam.position" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系人公司/机关:" class="row">
<el-input type="text" placeholder="请输入"></el-input>
<el-input type="text" v-model="queryParam.office" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="内部维护人:" class="row">
<el-input type="text" placeholder="请输入"></el-input>
<el-input type="text" v-model="queryParam.accendant" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系方式:" class="row">
<el-input type="text" placeholder="请输入"></el-input>
<el-input type="text" v-model="queryParam.phone" placeholder="请输入"></el-input>
</el-form-item>
<div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">保存</div>
<div class="btn btn_primary h32" @click="save">保存</div>
</div>
</el-form>
</el-dialog>
......@@ -113,40 +110,68 @@
<script>
import "@/assets/styles/project.scss"
import {getLXR,editLXR,addLXR} from '@/api/project/project'
export default {
name: 'lxr',
data(){
return{
dialogVisible:false,
isnew:true,//是否新增
textarea:"",
nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签
tipsvalue:"",//标签填写内容
tableData: [
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
]
tableData: [],
searchParam:{
pageNum:1,
pageSize:20,
businessId:this.$route.query.id
},
id:this.$route.query.id,
total:0,
projectname:this.$route.query.projectname,
queryParam:[],
}
},
created(){
this.getList()
},
methods:{
getDetail(item){
this.dialogVisible = true
this.queryParam = item
this.isnew = false
},
getList(){
getLXR(this.searchParam).then(result=>{
this.tableData = result.code == 200?result.rows:[]
this.total = result.code == 200?result.total:0
})
},
save(){
if(this.isnew == false){
editLXR(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('保存成功!')
this.getList()
this.dialogVisible = false
}
})
}
if(this.isnew == true){
addLXR(this.queryParam).then(result=>{
if(result.code == 200){
this.$message.success('新增成功!')
this.getList()
this.dialogVisible = false
}
})
}
},
//翻页
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.searchParam.pageNum = val
this.getList()
},
cancel(){
this.dialogVisible = false
......@@ -154,6 +179,16 @@
//打开新建窗口
opennew(){
this.dialogVisible = true
this.isnew = true
this.queryParam = {
businessId:this.id,
name:"",
role:"",
office:"",
position:"",
phone:"",
accendant:"",
}
},
}
}
......
......@@ -22,7 +22,7 @@
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="p2">抱歉你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div>
</div>
</template>
......
......@@ -169,8 +169,12 @@
<script>
import "@/assets/styles/project.scss"
import {getDictType,} from '@/api/main'
import {} from '@/api/project/project'
export default {
name: 'xmsl',
props:{
datas:'',
},
data(){
return{
nowedit:-1,//当前正在编辑的文本
......@@ -178,10 +182,10 @@
tipsvalue:"",//标签填写内容
xmjd:'待添加',
projectStage:[],//项目阶段
sldata:this.datas,
}
},
created(){
//项目阶段
getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[]
......
......@@ -49,7 +49,7 @@
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="p2">抱歉你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div>
</div>
</template>
......
......@@ -103,7 +103,7 @@
</div>
</el-card>
<!--项目概览-->
<xmsl v-if="thistag == 'xmsl'"></xmsl>
<xmsl v-if="thistag == 'xmsl'" :datas="ProjectData"></xmsl>
<!--建设内容-->
<jsnr v-if="thistag == 'jsnr'"></jsnr>
<!--联系人-->
......@@ -132,6 +132,7 @@
import zlwd from './component/zlwd.vue'
import xgqy from './component/xgqy.vue'
import prvinceTree from '@/assets/json/provinceTree'
import {getXMSL} from '@/api/project/project'
export default {
name: 'detail',
components: {xmsl,jsnr,lxr,gjjl,gzdb,zlwd,xgqy},
......@@ -161,10 +162,13 @@
addressList:[],
domicile:[],
props:{ checkStrictly: true, expandTrigger: 'hover' },
id:'',
ProjectData:null,
}
},
created(){
this.prvinceTree()
this.id = this.$route.query.id
//项目阶段
getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[]
......@@ -177,6 +181,12 @@
getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[]
})
//获取基本信息
getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:[]
this.$route.query.projectname = result.data.projectName
})
},
methods: {
//地区
......
This diff is collapsed.
This diff is collapsed.
......@@ -72,8 +72,8 @@
<div class="content_item content_item_padding0">
<div class="search-new">
<span>查询</span>
<span>重置</span>
<span @click="search()">查询</span>
<span @click="reset">重置</span>
</div>
</div>
......@@ -448,6 +448,12 @@
},
handleCurrentChange(val){
},
search(){
},
reset(){
}
}
}
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment