Commit dd64481b authored by tianhongyang's avatar tianhongyang

甲方详情 搜索框优化 选择框优化

parent ac457c0b
......@@ -46,6 +46,7 @@
"element-ui": "2.15.12",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"gsap": "^3.12.2",
"highlight.js": "9.18.5",
"jquery": "^3.7.0",
"js-beautify": "1.13.0",
......@@ -56,6 +57,7 @@
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "^1.15.0",
"uuid": "^9.0.1",
"vue": "2.6.12",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
......
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_1326_147842/1262_137253"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_1326_147842/1262_137253)"><g><path d="M10.551783125,3.9530996875C8.729353125,2.1306496875,5.774553125,2.1306496875,3.952123125,3.9530996875C2.129673125,5.7755296875,2.129673125,8.7303296875,3.952123125,10.5527596875C5.774553125,12.3752296875,8.729353125,12.3752296875,10.551783125,10.5527596875C12.374253125,8.7303296875,12.374253125,5.7755296875,10.551783125,3.9530996875C10.551783125,3.9530996875,10.551783125,3.9530996875,10.551783125,3.9530996875ZM3.0093131250000003,3.0102896875000003C5.352453125,0.6671426875,9.151453125,0.6671426875,11.494553125,3.0102896875000003C13.678353125,5.1940996875,13.826953125,8.6424596875,11.940153125,10.9982596875C11.940153125,10.9982596875,14.323053125,13.3812296875,14.323053125,13.3812296875C14.323053125,13.3812296875,13.380253125,14.3240296875,13.380253125,14.3240296875C13.380253125,14.3240296875,10.997283125,11.9411296875,10.997283125,11.9411296875C8.641483125,13.8279296875,5.193123125,13.6793296875,3.0093131250000003,11.4955296875C0.666166125,9.1524296875,0.666166125,5.3534296875,3.0093131250000003,3.0102896875000003C3.0093131250000003,3.0102896875000003,3.0093131250000003,3.0102896875000003,3.0093131250000003,3.0102896875000003Z" fill-rule="evenodd" fill="#0081FF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
......@@ -3,87 +3,87 @@
* 1、url地址,如正式环境企业详情:https://plug.jiansheku.com/enterprise/56546856314e567a69?ak=bc8e534da5ea40639b2f084919280a82&initTime=1694507179060&uid=4a3b4bfdfbca4bff9d9bd7c8fd42f533(ak:接口获得的accesToken;initTime:获得accesToken时的时间戳;uid:用户标识)
*
* */
const steerScroll = function(iframeId, navigation, footHeight, state, parentId, _this) { // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
let dom = window
const steerScroll = function (iframeId, navigation, footHeight, state, parentId, _this) { // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
let dom = window;
if (parentId) { // 默认页面可以滚动
dom = document.getElementById(parentId)
dom = document.getElementById(parentId);
if (!dom) {
return
return;
}
dom.style.overflow = 'auto'
dom.style.overflow = 'auto';
} else {
document.body.style.overflow = 'visible'
document.body.style.overflow = 'visible';
}
if (state) {
window.addEventListener('message', function(e) {
const data = e.data
const sct = parentId ? dom.scrollTop : document && document.documentElement.scrollTop || document && document.body.scrollTop
window.addEventListener('message', function (e) {
const data = e.data;
const sct = parentId ? dom.scrollTop : document && document.documentElement.scrollTop || document && document.body.scrollTop;
if (data && typeof data === 'object') {
// 动态设置iFrame高度
if (data.height) {
document.getElementById(iframeId).style.height = data.height + 'px'
scrolling(iframeId, navigation, footHeight, parentId) // 初始加载获取滚动条距离顶部高度
document.getElementById(iframeId).style.height = data.height + 'px';
scrolling(iframeId, navigation, footHeight, parentId); // 初始加载获取滚动条距离顶部高度
}
// 插件当前路由
if (_this && data.currentPath) {
_this.currentRoute = data
_this.searchFlag = data.currentName.includes('search-') ? true : false
_this.currentRoute = data;
_this.searchFlag = data.currentName.includes('search-') ? true : false;
}
// 点击企业详情页 栏目名动态设置滚动高度
if (data.scrollHeight) {
const navHeight = navigation.isFixed && !parentId ? navigation.totalHeight - navigation.fixedHeight : !parentId ? navigation.totalHeight : 0
dom.scrollTo(sct, parseInt(data.scrollHeight) + navHeight)
const navHeight = navigation.isFixed && !parentId ? navigation.totalHeight - navigation.fixedHeight : !parentId ? navigation.totalHeight : 0;
dom.scrollTo(sct, parseInt(data.scrollHeight) + navHeight);
}
// 点击企业详情页 栏目下拉子标签动态设置滚动高度
if (data.clientHeight) {
dom.scrollTo(sct, sct - parseInt(data.clientHeight))
dom.scrollTo(sct, sct - parseInt(data.clientHeight));
}
// 点击下拉子标签动态设置滚动高度
if (data.initHeight >= 0) {
dom.scrollTo(sct, data.initHeight)
dom.scrollTo(sct, data.initHeight);
}
// 根据子页面弹窗显示隐藏控制当前页面是否固定不可滚动
if (data.scrollDisabled || data.scrollDisabled === false) {
if (parentId) {
dom.style.overflow = data.scrollDisabled ? 'hidden' : 'auto'
dom.style.overflow = data.scrollDisabled ? 'hidden' : 'auto';
} else {
document.body.style.overflow = data.scrollDisabled ? 'hidden' : 'visible'
document.body.style.overflow = data.scrollDisabled ? 'hidden' : 'visible';
}
}
}
})
});
dom.addEventListener('scroll', (event) => {
scrolling(iframeId, navigation, footHeight, parentId)
})
scrolling(iframeId, navigation, footHeight, parentId);
});
} else {
dom.removeEventListener('scroll', (event) => {
scrolling(iframeId, navigation, footHeight, parentId)
})
scrolling(iframeId, navigation, footHeight, parentId);
});
}
}
};
const scrolling = function(iframeId, navigation, footHeight, parentId) {
const scrolling = function (iframeId, navigation, footHeight, parentId) {
// 滚动条距文档顶部的距离
let scrollTop = parentId ? document.getElementById(parentId).scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
let scrollTop = parentId ? document.getElementById(parentId).scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
// 将滚动距离传入子组件
const ifa = document.getElementById(iframeId)
scrollTop = scrollTop + navigation.totalHeight
let rippleHeight = 0 //插件筛选条件浮动层距离底部距离
let scrollGap = parentId ? document.getElementById(parentId).scrollTop : window.scrollTop || document.body.scrollTop || document.documentElement.scrollTop
let scrollHeight = parentId ? document.getElementById(parentId).offsetHeight : window.scrollHeight || document.body.scrollHeight || document.documentElement.scrollHeight
let domHeight = parentId ? document.getElementById(parentId).clientHeight : window.clientHeight || document.body.clientHeight || document.documentElement.clientHeight
if(parentId){ //网页内部嵌套时
rippleHeight = scrollHeight-scrollGap-domHeight
}else{ //
if(scrollHeight-scrollGap-domHeight <= footHeight){
rippleHeight = 0
}else{
rippleHeight = scrollHeight-scrollGap-domHeight - footHeight
const ifa = document.getElementById(iframeId);
scrollTop = scrollTop + navigation.totalHeight;
let rippleHeight = 0; //插件筛选条件浮动层距离底部距离
let scrollGap = parentId ? document.getElementById(parentId).scrollTop : window.scrollTop || document.body.scrollTop || document.documentElement.scrollTop;
let scrollHeight = parentId ? document.getElementById(parentId).offsetHeight : window.scrollHeight || document.body.scrollHeight || document.documentElement.scrollHeight;
let domHeight = parentId ? document.getElementById(parentId).clientHeight : window.clientHeight || document.body.clientHeight || document.documentElement.clientHeight;
if (parentId) { //网页内部嵌套时
rippleHeight = scrollHeight - scrollGap - domHeight;
} else { //
if (scrollHeight - scrollGap - domHeight <= footHeight) {
rippleHeight = 0;
} else {
rippleHeight = scrollHeight - scrollGap - domHeight - footHeight;
}
}
ifa.contentWindow.postMessage({ 'scrollTop': scrollTop, 'navHeight': navigation.totalHeight, 'rippleHeight': rippleHeight }, '*')
}
ifa ? ifa.contentWindow.postMessage({ 'scrollTop': scrollTop, 'navHeight': navigation.totalHeight, 'rippleHeight': rippleHeight }, '*') : null;
};
export {
steerScroll
}
};
.search-enter-active,
.search-leave-active {
width: 242px;
transition: width 0.5s;
}
.search-enter,
.search-leave-to {
width: 60px;
}
......@@ -336,7 +336,7 @@ ul, li {
.el-table__header-wrapper{
th{
background: #F0F3FA;
text-align: left;
// text-align: left;
}
}
.el-table__fixed-header-wrapper{
......@@ -625,7 +625,7 @@ ul, li {
line-height: 32px;
}
&:hover{
color: #f;
color: #fff;
border-color: #006AD1;
}
}
......
::v-deep .head-form-new {
margin-bottom: 8px;
.query-box {
.from-item {
display: flex;
align-items: center;
height: 32px;
}
// 下拉选择
.el-cascader,
.el-select {
max-width: unset !important;
width: 64px;
padding: 0px 8px;
transition: width 0.3s;
box-sizing: border-box;
.el-cascader__tags,
.el-select__tags {
flex-wrap: nowrap;
.el-tag:first-child {
width: auto;
}
}
.el-cascader__tags {
.el-tag {
max-width: unset !important;
}
}
.el-input {
display: flex;
align-items: center;
& > input {
padding: 0px;
border: none;
height: 30px;
line-height: 30px;
box-sizing: border-box;
&::placeholder {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
}
}
& > .el-input__suffix {
position: unset;
.el-input__suffix-inner {
i {
font-size: 12px;
line-height: 30px;
width: auto;
color: rgba(35, 35, 35, 0.4);
}
}
}
}
}
// 自定义事件选择 金额选择
.custom-select {
height: 32px;
transition: width 0.3s;
.block {
& > .el-input {
display: flex;
align-items: center;
& > input {
padding: 0px;
border: none;
height: 30px;
line-height: 30px;
box-sizing: border-box;
&::placeholder {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
}
}
& > .el-input__suffix {
position: unset;
width: auto;
.el-input__suffix-inner {
span,
i {
font-size: 12px;
line-height: 30px;
width: auto;
color: rgba(35, 35, 35, 0.4);
}
}
}
}
}
}
// 时间选择器
.el-date-editor {
height: 32px;
line-height: 32px;
padding-right: 5px;
}
// 企业搜索框
.enterprise-search-container {
height: 32px;
line-height: 32px;
border-radius: 4px;
.el-input__inner {
height: 30px;
line-height: 30px;
}
& > span {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
height: 30px;
line-height: 30px;
}
&.span-ba {
& > span {
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
}
.el-input__suffix {
right: 0px;
.el-input__icon {
display: flex;
align-items: center;
}
}
}
}
}
import Vue from 'vue'
import Vue from 'vue';
import Cookies from 'js-cookie'
import Cookies from 'js-cookie';
import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import Element from 'element-ui';
import './assets/styles/element-variables.scss';
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App'
import store from './store'
import router from './router'
import directive from './directive' // directive
import plugins from './plugins' // plugins
import { download } from '@/utils/request'
import horizontalScroll from 'el-table-horizontal-scroll'
import "@/assets/styles/common.css";
import '@/assets/styles/index.scss'; // global css
import '@/assets/styles/ruoyi.scss'; // ruoyi css
import App from './App';
import store from './store';
import router from './router';
import directive from './directive'; // directive
import plugins from './plugins'; // plugins
import { download } from '@/utils/request';
import horizontalScroll from 'el-table-horizontal-scroll';
import './assets/icons' // icon
import './permission' // permission control
import './assets/icons'; // icon
import './permission'; // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 分页组件
import Pagination from "@/components/Pagination";
// 自定义表格工具组件
import RightToolbar from "@/components/RightToolbar"
import RightToolbar from "@/components/RightToolbar";
// 富文本组件
import Editor from "@/components/Editor"
import Editor from "@/components/Editor";
// 文件上传组件
import FileUpload from "@/components/FileUpload"
import FileUpload from "@/components/FileUpload";
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
import ImageUpload from "@/components/ImageUpload";
// 图片预览组件
import ImagePreview from "@/components/ImagePreview"
import ImagePreview from "@/components/ImagePreview";
// 字典标签组件
import DictTag from '@/components/DictTag'
import DictTag from '@/components/DictTag';
// 头部标签组件
import VueMeta from 'vue-meta'
import VueMeta from 'vue-meta';
// 字典数据组件
import DictData from '@/components/DictData'
import DictData from '@/components/DictData';
// 全局方法挂载
Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
Vue.prototype.getDicts = getDicts;
Vue.prototype.getConfigKey = getConfigKey;
Vue.prototype.parseTime = parseTime;
Vue.prototype.resetForm = resetForm;
Vue.prototype.addDateRange = addDateRange;
Vue.prototype.selectDictLabel = selectDictLabel;
Vue.prototype.selectDictLabels = selectDictLabels;
Vue.prototype.download = download;
Vue.prototype.handleTree = handleTree;
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
Vue.component('Editor', Editor)
Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
Vue.component('DictTag', DictTag);
Vue.component('Pagination', Pagination);
Vue.component('RightToolbar', RightToolbar);
Vue.component('Editor', Editor);
Vue.component('FileUpload', FileUpload);
Vue.component('ImageUpload', ImageUpload);
Vue.component('ImagePreview', ImagePreview);
Vue.use(horizontalScroll)
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
DictData.install()
Vue.use(horizontalScroll);
Vue.use(directive);
Vue.use(plugins);
Vue.use(VueMeta);
DictData.install();
/**
* If you don't want to use mock-server
......@@ -76,13 +77,13 @@ DictData.install()
Vue.use(Element, {
size: Cookies.get('size') || 'medium' // set element-ui default size
})
});
Vue.config.productionTip = false
Vue.config.productionTip = false;
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
});
......@@ -18,7 +18,7 @@
</div>
</div>
<skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="hover" max-height="640"
<el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="tableData.total > 10 ? 'hover' : 'false'" max-height="640"
:data="tableData.rows"
stripe border
style="width: 100%">
......
......@@ -118,8 +118,8 @@
自定义
<el-date-picker
ref="picker"
v-if="datatype ==3"
:default-value="defaultValue"
style="position: absolute;opacity: 0;left: -12px;width: 60px;"
v-model="pickerValue"
type="daterange"
range-separator="至"
......@@ -507,10 +507,10 @@
}
this.datatype=key;
if(value == '自定义') {
// this.$refs.picker && this.$refs.picker.length && this.$refs.picker[0].focus()
// this.$nextTick(() => {
this.$refs.picker && this.$refs.picker.length && this.$refs.picker[0].focus()
this.$nextTick(() => {
// this.$refs['picker-block'].appendChild(this.$refs.picker[0].popperElm)
// })
})
}else {
this.pickerValue = []
let timeStr = []
......@@ -856,8 +856,8 @@
.time-label{
.labels{
width: 240px;
height: 32px;
line-height: 32px;
height: 30px;
line-height: 30px;
border-radius: 4px;
>div{
height: 100%;
......@@ -885,12 +885,7 @@
}
}
}
::v-deep .el-date-editor{
width: 320px;
position: absolute;
right: 250px;
height: 32px;
}
::v-deep .picker-block {
position: relative;
......@@ -901,6 +896,14 @@
visibility:hidden;
clear:both;
}
.el-picker-panel.el-date-range-picker.el-popper {
left: -650px !important;
}
.popper__arrow {
left: 30px !important;
}
}
}
}
......
......@@ -7,7 +7,7 @@
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
@handle-excel="clickDialog"
@handle-excel="clickEXCEL"
>
<template slot="slot">
......@@ -48,55 +48,6 @@
<div>{{scope.row.bidAmount || '--'}}{{scope.row.bidAmount ? '万元':''}}</div>
</template>
</tables>
<el-dialog :visible.sync="dialogExportVisible" width="640px" append-to-body class="dialogExport">
<template slot="title">
<img class="tip-img" src="@/assets/images/icon.png" />数据导出
</template>
<div class="table-item">
<el-table :data="exportTableData">
<el-table-column prop="bidTime" label="中标时间" width="110"></el-table-column>
<el-table-column prop="companyName" label="中标成员" width="200"></el-table-column>
<el-table-column prop="stockPercent" label="持股比例" min-width="100"></el-table-column>
<el-table-column prop="projectName" label="项目名称" min-width="220"></el-table-column>
<el-table-column prop="bidAmount" label="中标金额" min-width="100"></el-table-column>
<el-table-column prop="address" label="中标地区" min-width="120"></el-table-column>
<el-table-column prop="boundType" label="业绩类型" min-width="130"></el-table-column>
<el-table-column prop="projectType" label="项目类型" min-width="100"></el-table-column>
<el-table-column prop="projectUnit" label="业主单位" min-width="160"></el-table-column>
</el-table>
</div>
<div class="input">
导出数量:
<el-input placeholder="" v-model="value" oninput="value=value.replace(/[^\d]/g,'')">
<template slot="append"></template>
</el-input>
<p v-if="value > 2000"><i class="el-icon-error"></i>最多支持导出2000条,如需更多联系大司空客服人员</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="clickEXCEL">确认导出</el-button>
<el-button @click="cancel">取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogExportVisible1" width="640px" append-to-body class="dialogExport">
<template slot="title">
<img class="tip-img" src="@/assets/images/icon.png" />
数据导出
</template>
<div class="content">
<img class="success" src="@/assets/images/success.png" />
<p class="p1">导出成功</p>
<p class="p2">
可在个人中心查看导出表格
<span @click="toUrl">前往个人中心</span>
</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="downloadFile(exportData.url,exportData.originalName)">下载表格</el-button>
<el-button @click="dialogExportVisible1 = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -153,45 +104,7 @@
],
timeList: ['近三天', '近七天', '近半月', '自定义'],
moneyList: ['5000万以下', '5000万-1亿', '1亿-5亿', '5亿-10亿','10亿以上', '自定义'],
dataEXCEL:{},
dialogExportVisible:false,
dialogExportVisible1:false,
exportTableData:[
{
"bidTime":"2023-09-21",
"companyId":329637,
"address":"浙江省",
"stockPercent":"4.87%",
"boundType":"施工",
"projectUnit":"浙江浙能北仑发电有限公司",
"memberLevel":"四级企业",
"companyName":"浙江华业电力工程股份有限公司",
"projectType":"机电工程",
"bidAmount":"64.9565万元",
"projectName":"浙江浙能北仑发电有限公司5号炉后包覆区域省煤器和后包覆受热面检修",
"projectId":"147703347",
"uipId":null,
"projectUnitUipId":null
},
{
"bidTime":"2023-09-21",
"companyId":329637,
"address":"河南省-郑州市",
"stockPercent":"1.56%",
"boundType":"施工",
"projectUnit":"郑州地铁集团有限公司运营分公司",
"memberLevel":"四级企业",
"companyName":"中铁电气化局集团第三工程有限公司",
"projectType":"机电工程",
"bidAmount":"74.8018万元",
"projectName":"郑州市轨道交通1号线、城郊线一期2023年加装摄像机技改项目",
"projectId":"147703347",
"uipId":null,
"projectUnitUipId":null
},
],
value:'',
exportData:{}
dataEXCEL:{}
}
},
created() {
......@@ -350,33 +263,20 @@
this.handleQuery(params)
this.$emit('handle-scroll')
},
clickDialog(){
this.dialogExportVisible=true;
},
clickEXCEL() {
if(this.value > 2000){
return
}
this.dialogExportVisible=false;
this.dataEXCEL.combineName=this.combineName;
if(this.value){
this.dataEXCEL.pageSize=this.value
if(this.tableDataTotal > 2000){
this.dataEXCEL.pageSize=2000;
}else {
this.dataEXCEL.pageSize=this.tableDataTotal > 2000 ? 2000 : this.tableDataTotal;
this.dataEXCEL.pageSize=this.tableDataTotal;
}
delete this.dataEXCEL.pageNum
exportWinBid(this.dataEXCEL).then(res=>{
if(res.code === 200){
this.dialogExportVisible1=true;
this.value=''
this.exportData=res.data;
this.downloadFile(res.data.url,res.data.originalName)
}
})
},
cancel(){
this.dialogExportVisible=false
this.value=''
// this.$download.exportByPost('/combine/info/export/win/bid',this.dataEXCEL,'集团中标.xlsx');
},
downloadFile(url, fileName) {
const x = new XMLHttpRequest()
......@@ -391,13 +291,7 @@
a.remove()
}
x.send()
},
toUrl(){
this.dialogExportVisible1=false;
this.$router.push({
path: '/user/profile',
})
},
}
}
}
</script>
......@@ -429,89 +323,4 @@
}
}
}
.dialogExport{
::v-deep .el-dialog{
.el-dialog__header{
height: 48px;
line-height: 48px;
padding: 0 16px;
border-bottom: 1px solid #E1E1E1;
font-weight: bold;
color: #1D2129;
font-size: 16px;
.tip-img{
width: 18px;
height: 18px;
margin-right: 7px;
margin-bottom: -3px;
}
.el-dialog__headerbtn{
font-size: 20px;
font-weight: bold;
top: 15px;
.el-dialog__close{
color:#999999;
}
}
}
.el-dialog__body{
padding: 16px;
.input{
margin-top: 16px;
.el-input{
width: 160px;
border-radius: 2px;
height: 32px;
.el-input__inner{
height: 32px;
line-height: 32px;
}
}
.el-input-group__append{
padding: 0 14px;
}
p{
color: #FF3C3C;
font-size: 12px;
margin-left: 12px;
display: inline-block;
i{
font-size: 14px;
margin-right: 4px;
}
}
}
.content{
text-align: center;
margin-top: 36px;
.success{
width: 64px;
height: 64px;
margin-bottom: 16px;
}
p{
padding: 0;
margin: 0;
}
.p1{
color: #232323;
font-size: 16px;
margin-bottom: 8px;
}
.p2{
color: rgba(35,35,35,0.4);
font-size: 14px;
span{
color:#0081FF;
cursor: pointer;
}
}
}
}
.el-dialog__footer{
text-align: center;
padding-bottom: 24px;
}
}
}
</style>
......@@ -92,7 +92,7 @@
</div>
<div class="flex-box">
<span class="flex-box ability-total">共{{ tableDataTotal }}条</span>
<span v-hasPermi="['combine:info:export:bid']" class="flex-box ability-excel" @click="clickDialog"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span v-hasPermi="['combine:info:export:bid']" class="flex-box ability-excel" @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
</div>
......@@ -132,53 +132,6 @@
<div>{{scope.row.bidAmount || '--'}}{{scope.row.bidAmount ? '万元':''}}</div>
</template>
</tables>
<el-dialog :visible.sync="dialogExportVisible" width="640px" append-to-body class="dialogExport">
<template slot="title">
<img class="tip-img" src="@/assets/images/icon.png" />数据导出
</template>
<div class="table-item">
<el-table :data="exportTableData">
<el-table-column prop="issueTime" label="招标发布时间" width="110"></el-table-column>
<el-table-column prop="tenderee" label="招标成员" width="200"></el-table-column>
<el-table-column prop="stockPercent" label="持股比例" min-width="100"></el-table-column>
<el-table-column prop="projectName" label="项目名称" min-width="220"></el-table-column>
<el-table-column prop="bidAmount" label="预算金额" min-width="100"></el-table-column>
<el-table-column prop="address" label="项目地区" min-width="110"></el-table-column>
<el-table-column prop="subjectMatter" label="招标采购分类" min-width="130"></el-table-column>
<el-table-column prop="projectType" label="项目类型" min-width="100"></el-table-column>
<el-table-column prop="agency" label="代理单位" min-width="160"></el-table-column>
</el-table>
</div>
<div class="input">
导出数量:
<el-input placeholder="" v-model="value" oninput="value=value.replace(/[^\d]/g,'')">
<template slot="append"></template>
</el-input>
<p v-if="value > 2000"><i class="el-icon-error"></i>最多支持导出2000条,如需更多联系大司空客服人员</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="clickEXCEL">确认导出</el-button>
<el-button @click="cancel">取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogExportVisible1" width="640px" append-to-body class="dialogExport">
<template slot="title">
<img class="tip-img" src="@/assets/images/icon.png" />
数据导出
</template>
<div class="content">
<img class="success" src="@/assets/images/success.png" />
<p class="p1">导出成功</p>
<p class="p2">
可在个人中心查看导出表格
<span @click="toUrl">前往个人中心</span>
</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="downloadFile(exportData.url,exportData.originalName)">下载表格</el-button>
<el-button @click="dialogExportVisible1 = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -244,36 +197,6 @@
timeList: ['近三天', '近七天', '近半月', '自定义'],
moneyList: ['5000万以下', '5000万-1亿', '1亿-5亿', '5亿-10亿','10亿以上', '自定义'],
dataEXCEL:{},
dialogExportVisible:false,
dialogExportVisible1:false,
exportTableData:[
{
"address":"四川省-成都市",
"stockPercent":"18.43%",
"agency":'鞍钢股份有限公司',
"issueTime":"2023-09-22",
"subjectMatter":"其他",
"memberLevel":"二级企业",
"tenderee":"鞍钢冷轧钢板(莆田)有限公司综合部",
"projectType":"其他",
"bidAmount":"202万元",
"projectName":"2023年中铁一局集团第二工程有限公司江浙区域项目自购物资集中招标采购文件(一)(钢材)招标公告",
},
{
"address":"四川省-成都市",
"stockPercent":"18.43%",
"agency":'鞍钢股份有限公司',
"issueTime":"2023-09-22",
"subjectMatter":"其他",
"memberLevel":"二级企业",
"tenderee":"鞍钢股份有限公司",
"projectType":"其他",
"bidAmount":"202万元",
"projectName":"太极集团四川太极制药有限公司转让持有的成都市4套住宅-高新区玉虹巷2号1栋6单元7层13号",
},
],
value:'',
exportData:{}
}
},
created() {
......@@ -331,6 +254,7 @@
this.dataEXCEL=JSON.parse(JSON.stringify(data));
bidPage(data).then(res=>{
this.tableData = res.code == 200 ? res.rows:[];
console.log(res.total)
this.tableDataTotal = res.total
this.isSkeleton = false
this.tableLoading = false
......@@ -431,37 +355,20 @@
changeSelect(){
this.handleSearch()
},
clickFocus(e){
document.getElementById(e).classList.toggle('span-ba')
},
clickDialog(){
this.dialogExportVisible=true;
},
clickEXCEL() {
if(this.value > 2000){
return
}
this.dialogExportVisible=false;
this.dataEXCEL.combineName=this.combineName;
if(this.value){
this.dataEXCEL.pageSize=this.value
if(this.tableDataTotal > 2000){
this.dataEXCEL.pageSize=2000;
}else {
this.dataEXCEL.pageSize=this.tableDataTotal > 2000 ? 2000 : this.tableDataTotal;
this.dataEXCEL.pageSize=this.tableDataTotal;
}
delete this.dataEXCEL.pageNum
exportBid(this.dataEXCEL).then(res=>{
if(res.code === 200){
this.dialogExportVisible1=true;
this.value=''
this.exportData=res.data;
this.downloadFile(res.data.url,res.data.originalName)
}
})
},
cancel(){
this.dialogExportVisible=false
this.value=''
},
downloadFile(url, fileName) {
const x = new XMLHttpRequest()
x.open("GET", url, true)
......@@ -476,12 +383,9 @@
}
x.send()
},
toUrl(){
this.dialogExportVisible1=false;
this.$router.push({
path: '/user/profile',
})
},
clickFocus(e){
document.getElementById(e).classList.toggle('span-ba')
}
}
}
</script>
......@@ -664,89 +568,4 @@
width: 150px;
}
}
.dialogExport{
::v-deep .el-dialog{
.el-dialog__header{
height: 48px;
line-height: 48px;
padding: 0 16px;
border-bottom: 1px solid #E1E1E1;
font-weight: bold;
color: #1D2129;
font-size: 16px;
.tip-img{
width: 18px;
height: 18px;
margin-right: 7px;
margin-bottom: -3px;
}
.el-dialog__headerbtn{
font-size: 20px;
font-weight: bold;
top: 15px;
.el-dialog__close{
color:#999999;
}
}
}
.el-dialog__body{
padding: 16px;
.input{
margin-top: 16px;
.el-input{
width: 160px;
border-radius: 2px;
height: 32px;
.el-input__inner{
height: 32px;
line-height: 32px;
}
}
.el-input-group__append{
padding: 0 14px;
}
p{
color: #FF3C3C;
font-size: 12px;
margin-left: 12px;
display: inline-block;
i{
font-size: 14px;
margin-right: 4px;
}
}
}
.content{
text-align: center;
margin-top: 36px;
.success{
width: 64px;
height: 64px;
margin-bottom: 16px;
}
p{
padding: 0;
margin: 0;
}
.p1{
color: #232323;
font-size: 16px;
margin-bottom: 8px;
}
.p2{
color: rgba(35,35,35,0.4);
font-size: 14px;
span{
color:#0081FF;
cursor: pointer;
}
}
}
}
.el-dialog__footer{
text-align: center;
padding-bottom: 24px;
}
}
}
</style>
<template>
<div class="detail-container">
<head-form
title="常合作招标代理单位"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container bidding-agent">
<head-form-new title="常合作招标代理单位" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="agency" slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.agencyId)}`:`/company/${encodeStr(scope.row.agencyId)}`" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.agencyId)}`:`/company/${encodeStr(scope.row.agencyId)}`" tag="a"
class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
<template slot="projectInfo" slot-scope="scope">
<router-link :to="`/radar/Notice/details/${scope.row.projectInfo.bid}`" tag="a" class="a-link" v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link>
<router-link :to="`/radar/Notice/details/${scope.row.projectInfo.bid}`" tag="a" class="a-link"
v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link>
<div v-else v-html="scope.row.projectInfo.dealTitle || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 >
</div>
</template>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="'合作项目/工程明细'"
@cancel="isDetails=false" />
<client-detail v-if="isDetails" :data="rowData" :title="'合作项目/工程明细'" @cancel="isDetails=false" />
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import {oftenAgencyPage} from '@/api/detail/party-a/dealings'
import ClientDetail from './component/bidagencyDetail'
import mixin from '../mixins/mixin';
import { oftenAgencyPage } from '@/api/detail/party-a/dealings';
import ClientDetail from './component/bidagencyDetail';
export default {
name: 'Bidagency',
props: ['companyId'],
......@@ -58,54 +41,58 @@ export default {
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'issueTime', order: 'descending'},
defaultSort: { prop: 'issueTime', order: 'descending' },
forData: [
{label: '招标代理单位名称', prop: 'agency', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectInfo', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{label: '最近一次合作时间', prop: 'issueTime', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}
{ label: '招标代理单位名称', prop: 'agency', minWidth: '350', slot: true },
{ label: '合作项目/工程名称', prop: 'projectInfo', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6' },
{ label: '最近一次合作时间', prop: 'issueTime', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4' }
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: [], uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isDetails: false,
rowData: {}
}
};
},
computed: {
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await oftenAgencyPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await oftenAgencyPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows.map((item)=>{
item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo
return item
})
this.tableData = res.rows.map((item) => {
item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo;
return item;
});
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
handleClick(e, data) {
this.rowData = data
this.isDetails = true
this.rowData = data;
this.isDetails = true;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.bidding-agent {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="开标记录"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container bid-opening-record">
<head-form-new title="开标记录" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<tables v-else :indexFixed="true" :tableLoading="tableLoading" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
<template slot="name" slot-scope="scope">
<router-link :to="`/radar/BidRecord/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name" v-html="scope.row.name"></router-link>
<router-link :to="`/radar/BidRecord/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name"
v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div>
</template>
<template slot="source" slot-scope="scope">
<span class="a-link" v-if="scope.row.url&&scope.row.source" @click="handlePic(scope.row.url)" style="cursor: pointer;">{{ scope.row.source }}</span>
<span class="a-link" v-if="scope.row.url&&scope.row.source" @click="handlePic(scope.row.url)"
style="cursor: pointer;">{{ scope.row.source }}</span>
<div v-else>{{ scope.row.source || '--' }}</div>
</template>
</tables>
......@@ -32,8 +20,8 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {tenderPage} from '@/api/detail/party-a/dealings'
import mixin from '../mixins/mixin';
import { tenderPage } from '@/api/detail/party-a/dealings';
export default {
name: 'Bidrecords',
props: ['companyId'],
......@@ -49,50 +37,54 @@ export default {
pageSize: 20
},
forData: [
{label: '项目名称', prop: 'name', minWidth: '320', slot: true},
{label: '本企业投标报价(万元)', prop: 'tenderOffer', minWidth: '160'},
{label: '发布日期', prop: 'publishTime', minWidth: '100'},
{label: '项目地区', prop: 'province', minWidth: '160'},
{label: '信息来源', prop: 'source', minWidth: '280', slot: true}
{ label: '项目名称', prop: 'name', minWidth: '320', slot: true },
{ label: '本企业投标报价(万元)', prop: 'tenderOffer', minWidth: '160' },
{ label: '发布日期', prop: 'publishTime', minWidth: '100' },
{ label: '项目地区', prop: 'province', minWidth: '160' },
{ label: '信息来源', prop: 'source', minWidth: '280', slot: true }
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称查询', options: [], uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
tableLoading: false,
tableData: [],
tableDataTotal: 0
};
},
computed: {
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await tenderPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await tenderPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
handlePic(url){
if(url){
window.open(url, "_blank")
handlePic(url) {
if (url) {
window.open(url, "_blank");
}
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.bid-opening-record {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="客户"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container client">
<head-form-new title="客户" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="companyName" slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
<!-- <template slot="projectAllName" slot-scope="scope">
......@@ -31,22 +16,17 @@
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">有{{scope.row.count}}个合作项目/工程 ></div>
</template> -->
<template slot="count" slot-scope="scope">
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</div>
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)">{{scope.row.count}}</div>
</template>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="title"
:company-id="companyId"
@cancel="isDetails=false" />
<client-detail v-if="isDetails" :data="rowData" :title="title" :company-id="companyId" @cancel="isDetails=false" />
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { clientPage,getSelect } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/customDetail'
import mixin from '../mixins/mixin';
import { clientPage, getSelect } from '@/api/detail/party-a/dealings';
import ClientDetail from './component/customDetail';
export default {
name: 'Custom',
props: ['companyId'],
......@@ -56,95 +36,99 @@ export default {
},
data() {
return {
title:'',
title: '',
queryParams: {
cid: this.companyId,
sort: 5,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'count', order: 'descending'},
defaultSort: { prop: 'count', order: 'descending' },
forData: [
{label: '客户名称', prop: 'companyName', minWidth: '350', slot: true},
{ label: '客户名称', prop: 'companyName', minWidth: '350', slot: true },
// {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
{ label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4' },
{ label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2' },
{ label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom', slot: true, descending: '5', ascending: '6' },
],
formData: [
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索客户名称', options: []},
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: [], uid: this.getUid() },
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: [], uid: this.getUid() },
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索客户名称', options: [], uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isDetails: false,
rowData: {}
}
};
},
computed: {
},
created() {
this.handleQuery()
this.handleOption()
this.handleQuery();
this.handleOption();
},
methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
async handleOption() {
let res = await getSelect({});
if (res.code == 200) {
let data = res.data.projects;
for (var i = 0; i < data.length; i++) {
this.formData[0].options.push({
name: data[i],
value: data[i],
})
});
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
let data1 = res.data.sources;
for (var i = 0; i < data1.length; i++) {
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
});
}
}
},
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await clientPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await clientPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData = res.rows;
if (this.tableData && this.tableData.length > 0) {
this.tableData.forEach(item => {
typeof item.projectInfo=='string' ? item.projectInfo = JSON.parse(item.projectInfo) : ''
item.amount ? item.amount = parseFloat(item.amount.toFixed(4)) : ''
})
typeof item.projectInfo == 'string' ? item.projectInfo = JSON.parse(item.projectInfo) : '';
item.amount ? item.amount = parseFloat(item.amount.toFixed(4)) : '';
});
}
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
handleClick(e, data) {
this.rowData = data
this.rowData = data;
this.isDetails = true;
this.title = '与客户'+data.companyName.replace(/<font color='red'>/g,'').replace(/<\/font>/g,'')+'合作记录'
this.title = '与客户' + data.companyName.replace(/<font color='red'>/g, '').replace(/<\/font>/g, '') + '合作记录';
},
handleDetail(row){
if(row.sourceUrl){
handleDetail(row) {
if (row.sourceUrl) {
window.open(row.sourceUrl, "_blank")
window.open(row.sourceUrl, "_blank");
}
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.client {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="历史发包"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container history-contract">
<head-form-new title="历史发包" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="projectAllName" slot-scope="scope">
<router-link :to="`/biddetail/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" >{{ scope.row.projectAllName }}</router-link>
<router-link :to="`/biddetail/${scope.row.id}`" tag="a" class="a-link"
v-if="scope.row.id&&scope.row.projectAllName">{{ scope.row.projectAllName }}</router-link>
<div v-else v-html="scope.row&&scope.row.projectAllName || '--'"></div>
</template>
<template slot="companyName" slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName">{{ scope.row.companyName }}</router-link>
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
class="a-link" v-if="scope.row.companyId&&scope.row.companyName">{{ scope.row.companyName }}</router-link>
<div v-else>{{ scope.row.companyName || '--' }}</div>
</template>
</tables>
......@@ -34,8 +20,8 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {historySendProvince, historySendPage} from '@/api/detail/party-a/dealings'
import mixin from '../mixins/mixin';
import { historySendProvince, historySendPage } from '@/api/detail/party-a/dealings';
export default {
name: 'Hiscontract',
props: ['companyId'],
......@@ -53,68 +39,72 @@ export default {
},
defaultSort: {},
forData: [
{label: '项目名称', prop: 'projectAllName', minWidth: '560', slot: true},
{label: '中标时间', prop: 'winBidTime', minWidth: '100', sortable: 'custom', descending: '3', ascending: '4'},
{label: '中标企业', prop: 'companyName', minWidth: '320', slot: true},
{label: '中标金额(万元)', prop: 'winBidAmount', minWidth: '140', sortable: 'custom', descending: '1', ascending: '2'},
{label: '下浮率(%)', prop: 'lowerRate', minWidth: '120', sortable: 'custom', descending: '7', ascending: '8'},
{label: '项目经理 / 负责人', prop: 'staffName', minWidth: '130'},
{label: '中标地区', prop: 'region', minWidth: '160'},
{label: '工期(天)', prop: 'period', minWidth: '110', sortable: 'custom', descending: '9', ascending: '10'},
{label: '业绩类别', prop: 'boundType', minWidth: '110'}
{ label: '项目名称', prop: 'projectAllName', minWidth: '560', slot: true },
{ label: '中标时间', prop: 'winBidTime', minWidth: '100', sortable: 'custom', descending: '3', ascending: '4' },
{ label: '中标企业', prop: 'companyName', minWidth: '320', slot: true },
{ label: '中标金额(万元)', prop: 'winBidAmount', minWidth: '140', sortable: 'custom', descending: '1', ascending: '2' },
{ label: '下浮率(%)', prop: 'lowerRate', minWidth: '120', sortable: 'custom', descending: '7', ascending: '8' },
{ label: '项目经理 / 负责人', prop: 'staffName', minWidth: '130' },
{ label: '中标地区', prop: 'region', minWidth: '160' },
{ label: '工期(天)', prop: 'period', minWidth: '110', sortable: 'custom', descending: '9', ascending: '10' },
{ label: '业绩类别', prop: 'boundType', minWidth: '110' }
],
formData: [
{ type: 1, fieldName: 'provinceId', value: '', placeholder: '项目地区', options: [] },
{ type: 5, fieldName: 'time', value: '', placeholder: '中标时间', startTime: 'dateFrom', endTime: 'dateTo' },
{ type: 6, fieldName: 'money', value: '', placeholder: '中标金额', startMoney: 'amountMin', endMoney: 'amountMax' },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称查询', options: [] }
{ type: 1, fieldName: 'provinceId', value: '', placeholder: '项目地区', options: [], uid: this.getUid() },
{ type: 5, fieldName: 'time', value: '', placeholder: '中标时间', startTime: 'dateFrom', endTime: 'dateTo', uid: this.getUid() },
{ type: 6, fieldName: 'money', value: '', placeholder: '中标金额', startMoney: 'amountMin', endMoney: 'amountMax', uid: this.getUid() },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称查询', options: [], uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
tableLoading: false,
tableData: [],
tableDataTotal: 0
};
},
computed: {
},
created() {
this.handleOption()
this.handleQuery()
this.handleOption();
this.handleQuery();
},
methods: {
async handleOption(){
let res = await historySendProvince({cid: this.companyId})
if(res.code==200){
async handleOption() {
let res = await historySendProvince({ cid: this.companyId });
if (res.code == 200) {
let region = res.data.map(item => {
let it = {name:item.province+'('+item.count+')',value:item.provinceId}
return it
})
this.setFormData('provinceId', region)
let it = { name: item.province + '(' + item.count + ')', value: item.provinceId };
return it;
});
this.setFormData('provinceId', region);
}
},
async handleQuery(params) {
let param = params?params:this.queryParams
let res = await historySendPage(param)
this.tableLoading = false
if(res.code==200){
let param = params ? params : this.queryParams;
let res = await historySendPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
handleDetail(row) {
if (row.sourceUrl) {
window.open(row.sourceUrl, "_blank");
}
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.history-contract {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="供应商"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container supplier">
<head-form-new title="供应商" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="companyName" slot-scope="scope">
<router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName"
v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
<template slot="count" slot-scope="scope">
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</div>
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)">{{scope.row.count}}</div>
</template>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="title"
:company-id="companyId"
@cancel="isDetails=false" />
<client-detail v-if="isDetails" :data="rowData" :title="title" :company-id="companyId" @cancel="isDetails=false" />
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { supplierPage,getSelect } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/supplierDetail'
import mixin from '../mixins/mixin';
import { supplierPage, getSelect } from '@/api/detail/party-a/dealings';
import ClientDetail from './component/supplierDetail';
export default {
name: 'Supplier',
props: ['companyId'],
......@@ -51,7 +31,7 @@ export default {
},
data() {
return {
title:'',
title: '',
queryParams: {
cid: this.companyId,
sort: 5,
......@@ -60,84 +40,88 @@ export default {
},
defaultSort: {},
forData: [
{label: '供应商', prop: 'companyName', minWidth: '350', slot: true},
{label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
{ label: '供应商', prop: 'companyName', minWidth: '350', slot: true },
{ label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4' },
{ label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2' },
{ label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom', slot: true, descending: '5', ascending: '6' },
],
formData: [
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索供应商名称', options: []},
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: [], uid: this.getUid() },
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: [], uid: this.getUid() },
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索供应商名称', options: [], uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isDetails: false,
rowData: {}
}
};
},
computed: {
},
created() {
this.handleQuery()
this.handleOption()
this.handleQuery();
this.handleOption();
},
methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
async handleOption() {
let res = await getSelect({});
if (res.code == 200) {
let data = res.data.projects;
for (var i = 0; i < data.length; i++) {
this.formData[0].options.push({
name: data[i],
value: data[i],
})
});
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
let data1 = res.data.sources;
for (var i = 0; i < data1.length; i++) {
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
});
}
}
},
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await supplierPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await supplierPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData = res.rows;
if (this.tableData && this.tableData.length > 0) {
this.tableData.forEach(item => {
typeof item.projectInfo=='string' ? item.projectInfo = JSON.parse(item.projectInfo) : ''
item.amount ? item.amount = parseFloat(item.amount.toFixed(4)) : ''
})
typeof item.projectInfo == 'string' ? item.projectInfo = JSON.parse(item.projectInfo) : '';
item.amount ? item.amount = parseFloat(item.amount.toFixed(4)) : '';
});
}
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
handleClick(e, data) {
this.rowData = data
this.isDetails = true
this.title = '与供应商'+data.companyName.replace(/<font color='red'>/g,'').replace(/<\/font>/g,'')+'合作记录'
this.rowData = data;
this.isDetails = true;
this.title = '与供应商' + data.companyName.replace(/<font color='red'>/g, '').replace(/<\/font>/g, '') + '合作记录';
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
handleDetail(row) {
if (row.sourceUrl) {
window.open(row.sourceUrl, "_blank");
}
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.supplier {
@import "@/assets/styles/search-common.scss";
}
</style>
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm"
import HeadFormNew from "../component/HeadFormNew"
import Tables from "../component/Tables"
import skeleton from '@/views/project/projectList/component/skeleton'
import { v4 } from "uuid";
export default {
components: {
HeadForm,
Tables,
skeleton
skeleton,
HeadFormNew
},
data() {
return {
......@@ -18,6 +21,9 @@ export default {
},
methods: {
getUid() {
return v4();
},
// 设置下拉选项数据源
setFormData(fieldName, list) {
this.formData.forEach(item => {
......
<template>
<div class="detail-container">
<head-form
title="行政许可"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
@handle-search="handleSearch"
/>
<div class="detail-container administrative-license">
<head-form-new title="行政许可" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" @handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<tables v-else :indexFixed="true" :tableLoading="tableLoading" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
<template slot="deciWritName" slot-scope="scope">
<div v-html="scope.row.deciWritName"></div>
</template>
<template slot="content" slot-scope="scope">
<div :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)?'cell-span':'']" :style="{'-webkit-line-clamp': 2}">
<div :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)?'cell-span':'']"
:style="{'-webkit-line-clamp': 2}">
<div v-html="scope.row.content"></div>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">展开</span></span>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)" @click="changeShowAll(scope.index, 0)">...<span
style="color: #0081FF;">展开</span></span>
</div>
</template>
</tables>
......@@ -33,9 +21,9 @@
</template>
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {creditXzxkPage} from '@/api/detail/party-a/opport'
import mixin from '../mixins/mixin';
import skeleton from '@/views/project/projectList/component/skeleton';
import { creditXzxkPage } from '@/api/detail/party-a/opport';
export default {
name: 'Administrative',
props: ['companyId'],
......@@ -45,95 +33,95 @@ export default {
},
data() {
return {
isSkeleton:true,
isSkeleton: true,
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 20
},
forData: [
{label: '许可决定日期', prop: 'deciTime', width: '110'},
{label: '决定文书号', prop: 'deciWritNo', width: '200'},
{label: '许可编号', prop: 'permitNo', width: '100'},
{label: '决定文书名称', prop: 'deciWritName', width: '190', slot: true},
{label: '许可内容', prop: 'content', width: '300', slot: true},
{label: '有效期自', prop: 'valiBegin', width: '100'},
{label: '有效期至', prop: 'valiEnd', width: '100'},
{label: '行政许可类别', prop: 'permitType', width: '110'},
{label: '许可机关', prop: 'office', width: '180'},
{label: '行政许可机关统一社会信用代码', prop: 'officeCreditCode', width: '210'},
{label: '数据来源单位', prop: 'dataSourceOffice', width: '110'},
{label: '数据来源单位统一社会信用代码', prop: 'dataSourceOfficeCreditCode', width: '210'},
{label: '来源', prop: 'dataSource', width: '80'}
{ label: '许可决定日期', prop: 'deciTime', width: '110' },
{ label: '决定文书号', prop: 'deciWritNo', width: '200' },
{ label: '许可编号', prop: 'permitNo', width: '100' },
{ label: '决定文书名称', prop: 'deciWritName', width: '190', slot: true },
{ label: '许可内容', prop: 'content', width: '300', slot: true },
{ label: '有效期自', prop: 'valiBegin', width: '100' },
{ label: '有效期至', prop: 'valiEnd', width: '100' },
{ label: '行政许可类别', prop: 'permitType', width: '110' },
{ label: '许可机关', prop: 'office', width: '180' },
{ label: '行政许可机关统一社会信用代码', prop: 'officeCreditCode', width: '210' },
{ label: '数据来源单位', prop: 'dataSourceOffice', width: '110' },
{ label: '数据来源单位统一社会信用代码', prop: 'dataSourceOfficeCreditCode', width: '210' },
{ label: '来源', prop: 'dataSource', width: '80' }
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: [], uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
showList:[]
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
showList: []
};
},
computed: {
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await creditXzxkPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await creditXzxkPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){
if (res.rows && res.rows.length > 0) {
res.rows.forEach(item => {
item.smallContent = item.content.replace(/<.*?>/ig,"")
})
item.smallContent = item.content.replace(/<.*?>/ig, "");
});
}
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
changeShowAll(row, column) {
this.showList.push({
row: row,
column: column
})
});
},
isOverHiddenFlag(data, showList, row, column, value) {
if(value && this.getByteLen(value) > 88) {
return !showList.some(item => item.row==row&&item.column==column)
}else {
return false
if (value && this.getByteLen(value) > 88) {
return !showList.some(item => item.row == row && item.column == column);
} else {
return false;
}
},
/*getLenth(data) {
return Math.floor(data / 6) * 2 //宽度(300) / 一个字符的宽度(6) * 行数(2)
},*/
getByteLen(val) {
var len = 0
var len = 0;
for (var i = 0; i < val.length; i++) {
var a = val.charAt(i)
if (a.match(/[^\x00-\xff]/ig) != null){
len += 2
}else{
len += 1
var a = val.charAt(i);
if (a.match(/[^\x00-\xff]/ig) != null) {
len += 2;
} else {
len += 1;
}
}
/*if(val.match(/ /g)){
len =len+Math.floor(val.match(/ /g).length/2)
}*/
return len
return len;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
......@@ -147,7 +135,7 @@ export default {
-webkit-line-clamp: 4;
cursor: pointer;
>span {
> span {
display: inline-block;
width: 37px;
position: absolute;
......@@ -158,4 +146,8 @@ export default {
}
}
}
.administrative-license {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="招标计划"
:form-data="formData"
:query-params="queryParams"
:isExcel="true"
@handle-search="handleSearch"
:total="tableDataTotal"
/>
<div class="detail-container bidding-plan">
<head-form-new title="招标计划" :form-data="formData" :query-params="queryParams" :isExcel="true" @handle-search="handleSearch"
:total="tableDataTotal" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="projectName" slot-scope="scope">
<router-link :to="`/radar/Bidding/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Bidding/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName "
v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
......@@ -34,9 +19,9 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {bidPlanPage,bidPlanProjectType} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
import mixin from '../mixins/mixin';
import { bidPlanPage, bidPlanProjectType } from '@/api/detail/party-a/opport';
import skeleton from '@/views/project/projectList/component/skeleton';
export default {
name: 'Biddingplan',
props: ['companyId'],
......@@ -46,69 +31,73 @@ export default {
},
data() {
return {
isSkeleton:true,
isSkeleton: true,
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'issueTime', order: 'descending'},
defaultSort: { prop: 'issueTime', order: 'descending' },
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '400', slot: true},
{label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120'},
{label: '合同预估金额(万元)', prop: 'planTenderAmount', sortable: 'custom', descending: '1', ascending: '2', width: '170'},
{label: '资金来源', prop: 'projecetCapitalSource', minWidth: '100'},
{label: '项目地区', prop: 'province', minWidth: '110', slot: true},
{label: '项目类型', prop: 'buildingProjectType', minWidth: '100'},
{label: '标的物类型', prop: 'objectType', minWidth: '100'},
{label: '预计招标日期', prop: 'planTenderDateStart', sortable: 'custom', descending: '15', ascending: '16', minWidth: '110'}
{ label: '项目名称', prop: 'projectName', minWidth: '400', slot: true },
{ label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120' },
{ label: '合同预估金额(万元)', prop: 'planTenderAmount', sortable: 'custom', descending: '1', ascending: '2', width: '170' },
{ label: '资金来源', prop: 'projecetCapitalSource', minWidth: '100' },
{ label: '项目地区', prop: 'province', minWidth: '110', slot: true },
{ label: '项目类型', prop: 'buildingProjectType', minWidth: '100' },
{ label: '标的物类型', prop: 'objectType', minWidth: '100' },
{ label: '预计招标日期', prop: 'planTenderDateStart', sortable: 'custom', descending: '15', ascending: '16', minWidth: '110' }
],
formData: [
{ type: 4, fieldName: 'buildingProjectType', value: '', placeholder: '项目类型', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220}
{ type: 4, fieldName: 'buildingProjectType', value: '', placeholder: '项目类型', options: [], uid: this.getUid() },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220, uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
tableLoading: false,
tableData: [],
tableDataTotal: 0
};
},
computed: {
},
created() {
this.handleQuery()
this.handleOption()
this.handleQuery();
this.handleOption();
},
methods: {
async handleOption(){
let res = await bidPlanProjectType({cid: this.companyId})
if(res.code==200){
async handleOption() {
let res = await bidPlanProjectType({ cid: this.companyId });
if (res.code == 200) {
let buildingProjectType = res.data.map(item => {
let it = {name:item.buildingProjectType+'('+item.count+')',value:item.buildingProjectType}
return it
})
this.setFormData('buildingProjectType', buildingProjectType)
let it = { name: item.buildingProjectType + '(' + item.count + ')', value: item.buildingProjectType };
return it;
});
this.setFormData('buildingProjectType', buildingProjectType);
}
},
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidPlanPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await bidPlanPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.bidding-plan {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="专项债项目"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container special-bond">
<head-form-new title="专项债项目" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="projectName" slot-scope="scope">
<router-link :to="`/radar/debtProject/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/debtProject/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName "
v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</tables>
......@@ -31,9 +16,9 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {specialDebtProjectPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
import mixin from '../mixins/mixin';
import { specialDebtProjectPage } from '@/api/detail/party-a/opport';
import skeleton from '@/views/project/projectList/component/skeleton';
export default {
name: 'Bond',
props: ['companyId'],
......@@ -43,53 +28,57 @@ export default {
},
data() {
return {
isSkeleton:true,
isSkeleton: true,
queryParams: {
cid: this.companyId,
sort: 1,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'projectTotalInvestment', order: 'descending'},
defaultSort: { prop: 'projectTotalInvestment', order: 'descending' },
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '项目总投资(万元)', prop: 'projectTotalInvestment', sortable: 'custom', descending: '1', ascending: '2', width: '160'},
{label: '项目资本金(万元)', prop: 'projectCapital', sortable: 'custom', descending: '17', ascending: '18', width: '160'},
{label: '专项债用作资本金(万元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200'}
{ label: '项目名称', prop: 'projectName', minWidth: '300', slot: true },
{ label: '项目总投资(万元)', prop: 'projectTotalInvestment', sortable: 'custom', descending: '1', ascending: '2', width: '160' },
{ label: '项目资本金(万元)', prop: 'projectCapital', sortable: 'custom', descending: '17', ascending: '18', width: '160' },
{ label: '专项债用作资本金(万元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200' }
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220, uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
tableLoading: false,
tableData: [],
tableDataTotal: 0
};
},
computed: {
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await specialDebtProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await specialDebtProjectPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.special-bond {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="土地交易"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container land-transaction">
<head-form-new title="土地交易" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="projectName" slot-scope="scope">
<router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName "
v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</tables>
......@@ -31,9 +16,9 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {landUse, landTransactionPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
import mixin from '../mixins/mixin';
import { landUse, landTransactionPage } from '@/api/detail/party-a/opport';
import skeleton from '@/views/project/projectList/component/skeleton';
export default {
name: 'Landtransaction',
props: ['companyId'],
......@@ -43,75 +28,79 @@ export default {
},
data() {
return {
isSkeleton:true,
isSkeleton: true,
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'contractSignTime', order: 'descending'},
defaultSort: { prop: 'contractSignTime', order: 'descending' },
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '土地用途', prop: 'landUse', width: '130'},
{label: '行业分类', prop: 'industry', width: '100'},
{label: '供地方式', prop: 'supplyLandWay', width: '100'},
{label: '土地坐落', prop: 'landAddr', minWidth: '130'},
{label: '成交金额(万元)', prop: 'transactionPrice', sortable: 'custom', descending: '1', ascending: '2', width: '140'},
{label: '总面积(㎡)', prop: 'acreage', sortable: 'custom', descending: '11', ascending: '12', width: '130'},
{label: '批准单位', prop: 'authority', width: '130'},
{label: '签订日期', prop: 'contractSignTime', sortable: 'custom', descending: '3', ascending: '4', width: '130'}
{ label: '项目名称', prop: 'projectName', minWidth: '300', slot: true },
{ label: '土地用途', prop: 'landUse', width: '130' },
{ label: '行业分类', prop: 'industry', width: '100' },
{ label: '供地方式', prop: 'supplyLandWay', width: '100' },
{ label: '土地坐落', prop: 'landAddr', minWidth: '130' },
{ label: '成交金额(万元)', prop: 'transactionPrice', sortable: 'custom', descending: '1', ascending: '2', width: '140' },
{ label: '总面积(㎡)', prop: 'acreage', sortable: 'custom', descending: '11', ascending: '12', width: '130' },
{ label: '批准单位', prop: 'authority', width: '130' },
{ label: '签订日期', prop: 'contractSignTime', sortable: 'custom', descending: '3', ascending: '4', width: '130' }
],
formData: [
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220}
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: [], uid: this.getUid() },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220, uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
tableLoading: false,
tableData: [],
tableDataTotal: 0
};
},
computed: {
},
created() {
this.handleOption()
this.handleQuery()
this.handleOption();
this.handleQuery();
},
methods: {
async handleOption(){
let res = await landUse({cid: this.companyId})
if(res.code==200){
async handleOption() {
let res = await landUse({ cid: this.companyId });
if (res.code == 200) {
let use = res.data.map(item => {
let it = {name:item.landUse+'('+item.count+')',value:item.landUse}
return it
})
this.setFormData('landUse', use)
let it = { name: item.landUse + '(' + item.count + ')', value: item.landUse };
return it;
});
this.setFormData('landUse', use);
}
},
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await landTransactionPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await landTransactionPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData.length>0){
this.tableData.map(item=>{
item.transactionPrice==0&&(item.transactionPrice = '--')
})
this.tableData = res.rows;
if (this.tableData.length > 0) {
this.tableData.map(item => {
item.transactionPrice == 0 && (item.transactionPrice = '--');
});
}
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.land-transaction {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="detail-container">
<head-form
title="拟建项目"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="detail-container proposed-project">
<head-form-new title="拟建项目" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<tables v-else :indexFixed="true" :defaultSort="defaultSort" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<template slot="projectName" slot-scope="scope">
<router-link :to="`/radar/Establishment/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Establishment/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName "
v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="isProjcet" slot-scope="scope">
......@@ -34,9 +19,9 @@
</template>
<script>
import mixin from '../mixins/mixin'
import { approvalProjectPage } from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
import mixin from '../mixins/mixin';
import { approvalProjectPage } from '@/api/detail/party-a/opport';
import skeleton from '@/views/project/projectList/component/skeleton';
export default {
name: 'Proposed',
props: ['companyId'],
......@@ -52,51 +37,55 @@ export default {
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'planStartTime', order: 'descending'},
defaultSort: { prop: 'planStartTime', order: 'descending' },
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{ label: '项目名称', prop: 'projectName', minWidth: '300', slot: true },
// {label: '成交金额(万元)', prop: 'money', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
{label: '项目类别', prop: 'projectCategories', width: '100'},
{label: '计划开工日期', prop: 'planStartTime', sortable: 'custom', descending: '3', ascending: '4', width: '130'},
{label: '计划完工日期', prop: 'planEndTime', sortable: 'custom', descending: '13', ascending: '14', width: '130'},
{label: '审批结果', prop: 'examineStatus', width: '100'},
{label: '是否为民间推介项目', prop: 'isProjcet', width: '150', slot: true}
{ label: '项目类别', prop: 'projectCategories', width: '100' },
{ label: '计划开工日期', prop: 'planStartTime', sortable: 'custom', descending: '3', ascending: '4', width: '130' },
{ label: '计划完工日期', prop: 'planEndTime', sortable: 'custom', descending: '13', ascending: '14', width: '130' },
{ label: '审批结果', prop: 'examineStatus', width: '100' },
{ label: '是否为民间推介项目', prop: 'isProjcet', width: '150', slot: true }
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
{ type: 1, fieldName: 'isProject', value: '', placeholder: '是否为民间推介项目', options: [{name:'不限',value:null},{name:'是',value:'1'},{name:'否',value:'0'}],width: 180},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220, uid: this.getUid() },
{ type: 1, fieldName: 'isProject', value: '', placeholder: '是否为民间推介项目', options: [{ name: '不限', value: null }, { name: '是', value: '1' }, { name: '否', value: '0' }], width: 180, uid: this.getUid() },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true,
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true,
};
},
computed: {
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await approvalProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await approvalProjectPage(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
}
.proposed-project {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="app-container detail-container branch-office">
<head-form-new title="分支机构" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="app-container detail-container" v-else>
<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"
>
<tables v-if="!isSkeleton" :indexFixed="true" :tableLoading="tableLoading" :tableData="tableData" :forData="forData"
:tableDataTotal="tableDataTotal" :queryParams="queryParams" @handle-current-change="handleCurrentChange">
<template slot="name" slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name " v-html="scope.row.name"></router-link>
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link"
v-if="scope.row.id&&scope.row.name " v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div>
<div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span>
......@@ -32,8 +19,8 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {affiliates} from '@/api/detail/party-a/overview'
import mixin from '../mixins/mixin';
import { affiliates } from '@/api/detail/party-a/overview';
export default {
name: 'Branch',
props: ['companyId'],
......@@ -46,68 +33,73 @@ export default {
pageSize: 20
},
forData: [
{label: '被投资企业名称', prop: 'name', slot: true},
{label: '负责人', prop: 'operName'},
{label: '成立日期', prop: 'startDate'}
{ label: '被投资企业名称', prop: 'name', slot: true },
{ label: '负责人', prop: 'operName' },
{ label: '成立日期', prop: 'startDate' }
],
formData: [
{ type: 1, fieldName: 'hasBid', value: '', placeholder: '招标公告', options: [
{name:'不限',value:'noLimit'},
{name:'有招标公告',value:1},
{name:'无招标公告',value:0}
{
type: 1, fieldName: 'hasBid', value: '', placeholder: '招标公告', options: [
{ name: '不限', value: 'noLimit' },
{ name: '有招标公告', value: 1 },
{ name: '无招标公告', value: 0 }
]
}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
};
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
if(param.hasBid=='noLimit'){
delete param.hasBid
this.tableLoading = true;
let param = params ? params : this.queryParams;
if (param.hasBid == 'noLimit') {
delete param.hasBid;
}
let res = await affiliates(param)
this.tableLoading = false
if(res.code==200){
let res = await affiliates(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
margin: 0;
padding: 16px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
.tags{
.tag{
.tags {
.tag {
display: inline-block;
border-radius: 2px;
padding: 1px 7px;
margin: 4px 8px 0 0;
&.style1{
background: #E4F3FD;
color: #41A1FD;
&.style1 {
background: #e4f3fd;
color: #41a1fd;
}
}
}
::v-deep .el-input__inner{
::v-deep .el-input__inner {
padding-left: 10px;
padding-right: 22px;
}
}
}
.branch-office {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="app-container detail-container outward-investment">
<head-form-new title="对外投资" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="app-container detail-container" v-else>
<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"
>
<tables :indexFixed="true" :tableLoading="tableLoading" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange" v-if="!isSkeleton">
<template slot="investName" slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName " v-html="scope.row.investName"></router-link>
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link"
v-if="scope.row.id&&scope.row.investName " v-html="scope.row.investName"></router-link>
<div v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag" :class="labelArr.includes(scope.row.businessStatus)?'style2':'style1'" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
<span class="tag" :class="labelArr.includes(scope.row.businessStatus)?'style2':'style1'"
v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
<span class="tag style1" v-if="scope.row.biddingCount">招标数{{scope.row.biddingCount}}</span>
</div>
</template>
......@@ -44,8 +32,8 @@
</template>
<script>
import mixin from '../mixins/mixin'
import {investment} from '@/api/detail/party-a/overview'
import mixin from '../mixins/mixin';
import { investment } from '@/api/detail/party-a/overview';
export default {
name: 'Overseas',
props: ['companyId'],
......@@ -58,106 +46,113 @@ export default {
pageSize: 20
},
forData: [
{label: '被投资企业名称', prop: 'investName', minWidth: '180', slot: true},
{label: '法定代表人', prop: 'investOperName'},
{label: '注册资本', prop: 'investRegistCapi'},
{label: '成立日期', prop: 'investStartDate'},
{label: '股权占比', prop: 'stockPercentage', slot: true, slotHeader: true, slotName: 'proportion'},
{label: '认缴出资额(万元)', prop: 'shouldCapi'}
{ label: '被投资企业名称', prop: 'investName', minWidth: '180', slot: true },
{ label: '法定代表人', prop: 'investOperName' },
{ label: '注册资本', prop: 'investRegistCapi' },
{ label: '成立日期', prop: 'investStartDate' },
{ label: '股权占比', prop: 'stockPercentage', slot: true, slotHeader: true, slotName: 'proportion' },
{ label: '认缴出资额(万元)', prop: 'shouldCapi' }
],
formData: [
{ type: 1, fieldName: 'hasBid', value: '', placeholder: '招标公告', options: [
{name:'不限',value:'noLimit'},
{name:'有招标公告',value:1},
{name:'无招标公告',value:0}
{
type: 1, fieldName: 'hasBid', value: '', placeholder: '招标公告', options: [
{ name: '不限', value: 'noLimit' },
{ name: '有招标公告', value: 1 },
{ name: '无招标公告', value: 0 }
],
width: 130
width: 130,
uid: this.getUid()
},
{ type: 1, fieldName: 'proportion', value: '', placeholder: '股权占比', options: [
{name:'不限',value:'noLimit'},
{name:'100%',value:'1~1'},
{name:'66.66%以上',value:'0.6666~1'},
{name:'50%以上',value:'0.5~1'},
{name:'33.33%以上',value:'0.3333~1'},
{name:'25%以上',value:'0.25~1'},
{name:'不到5%',value:'0~0.05'}
{
type: 1, fieldName: 'proportion', value: '', placeholder: '股权占比', options: [
{ name: '不限', value: 'noLimit' },
{ name: '100%', value: '1~1' },
{ name: '66.66%以上', value: '0.6666~1' },
{ name: '50%以上', value: '0.5~1' },
{ name: '33.33%以上', value: '0.3333~1' },
{ name: '25%以上', value: '0.25~1' },
{ name: '不到5%', value: '0~0.05' }
],
width: 130
},
{ type: 3, fieldName: 'keyword', value: '', placeholder: '输入企业名称查询'},
{ type: 3, fieldName: 'keyword', value: '', placeholder: '输入企业名称查询' },
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
labelArr:['失信联合惩戒企业','严重行政处罚','司法纠纷','注销', '注销企业'],
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
labelArr: ['失信联合惩戒企业', '严重行政处罚', '司法纠纷', '注销', '注销企业'],
};
},
created() {
this.handleQuery()
this.handleQuery();
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await investment(param)
this.tableLoading = false
if(res.code==200){
this.tableLoading = true;
let param = params ? params : this.queryParams;
let res = await investment(param);
this.tableLoading = false;
if (res.code == 200) {
this.isSkeleton = false;
this.tableData = res.rows
this.tableData = res.rows;
}
this.tableDataTotal = res.total
this.tableDataTotal = res.total;
},
handleSearch(){
let params = this.formParams()
if(params.proportion){
if(params.proportion!='noLimit'){
params.stockPercentageMin = parseFloat(params.proportion.split('~')[0])
params.stockPercentageMax = parseFloat(params.proportion.split('~')[1])
handleSearch() {
let params = this.formParams();
if (params.proportion) {
if (params.proportion != 'noLimit') {
params.stockPercentageMin = parseFloat(params.proportion.split('~')[0]);
params.stockPercentageMax = parseFloat(params.proportion.split('~')[1]);
}
delete params.proportion
delete params.proportion;
}
if(params.hasBid=='noLimit'){
delete params.hasBid
if (params.hasBid == 'noLimit') {
delete params.hasBid;
}
params.pageNum = 1
this.queryParams.pageNum = 1
this.handleQuery(params)
params.pageNum = 1;
this.queryParams.pageNum = 1;
this.handleQuery(params);
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
.detail-container {
margin: 0;
padding: 16px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
.tab-header{
img{
.tab-header {
img {
margin-bottom: 2px;
width: 14px;
height: 14px;
cursor: pointer;
}
}
.tags{
.tag{
.tags {
.tag {
display: inline-block;
border-radius: 2px;
padding: 1px 7px;
margin: 4px 8px 0 0;
&.style1{
background: #E4F3FD;
color: #41A1FD;
&.style1 {
background: #e4f3fd;
color: #41a1fd;
}
&.style2{
background: #FFF1F1;
color: #FF3C3C;
&.style2 {
background: #fff1f1;
color: #ff3c3c;
}
}
}
}
.outward-investment {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="经营异常"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="corePersonnel operating-anomaly">
<head-form-new title="经营异常" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
<tables v-if="!isSkeleton" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" />
</div>
</template>
......@@ -25,9 +13,9 @@
import {
abnormalPage,
abnormalYears
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
} from '@/api/detail/party-a/riskInformation';
import mixin from '../mixins/mixin';
import skeleton from '../component/skeleton';
export default {
name: 'BusinessAnomaly',
mixins: [mixin],
......@@ -43,63 +31,79 @@ export default {
pageSize: 20
},
forData: [
{label: '列入原因', prop: 'inReason'},
{label: '列入日期', prop: 'inDate', width: '95'},
{label: '做出决定机关(移入)', prop: 'department', width: '264'},
{label: '移出经营异常名录原因', prop: 'outReason', width: '320'},
{label: '移出日期', prop: 'outDate', width: '95'},
{label: '做出决定机关(移出)', prop: 'outDepartment', width: '264'}
{ label: '列入原因', prop: 'inReason', width: "508" },
{ label: '列入日期', prop: 'inDate', width: '95' },
{ label: '做出决定机关(移入)', prop: 'department', width: '264' },
{ label: '移出经营异常名录原因', prop: 'outReason', width: '320' },
{ label: '移出日期', prop: 'outDate', width: '95' },
{ label: '做出决定机关(移出)', prop: 'outDepartment', width: '264' }
],
formData: [
{ type: 4, fieldName: 'years', value: '', placeholder: '列入时间', options: []}
{ type: 4, fieldName: 'years', value: '', placeholder: '列入时间', options: [], uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true
};
},
created() {
this.handleQuery()
this.years()
this.handleQuery();
this.years();
},
computed: {
},
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.isSkeleton = true
let data = params ? params : this.queryParams;
this.isSkeleton = true;
abnormalPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.isSkeleton = false
})
this.tableData = res.rows;
this.tableDataTotal = res.total;
this.isSkeleton = 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++){
years() {
abnormalYears({ cid: this.queryParams.cid }).then(res => {
let data = res.data;
if (data.length > 0) {
for (let i = 0; i < data.length; i++) {
this.formData[0].options.push({
name: data[i].year + '(' + data[i].count + ')',
value: data[i].year,
})
});
}
}
})
});
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
.corePersonnel {
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
.query-box {
margin: 10px 0 20px;
}
}
.operating-anomaly {
@import "@/assets/styles/search-common.scss";
::v-deep .head-form-new {
.query-box {
.el-select {
width: auto;
.el-select__tags {
flex-wrap: nowrap;
}
}
}
}
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="法院公告"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<div class="corePersonnel court-announcement">
<head-form-new title="法院公告" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
<tables v-if="!isSkeleton" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" />
</div>
</template>
......@@ -27,9 +15,9 @@ import {
noticesType,
noticesRole,
noticesCaseReason
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
} from '@/api/detail/party-a/riskInformation';
import mixin from '../mixins/mixin';
import skeleton from '../component/skeleton';
export default {
name: 'CourtNotice',
mixins: [mixin],
......@@ -45,97 +33,101 @@ export default {
pageSize: 20
},
forData: [
{label: '案由', prop: 'caseReason'},
{label: '公告时间', prop: 'date', width: '95'},
{label: '当事人', prop: 'people', width: '240'},
{label: '公告类型', prop: 'type', width: '210'},
{label: '公告法院', prop: 'court', width: '280'}
{ label: '案由', prop: 'caseReason' },
{ label: '公告时间', prop: 'date', width: '95' },
{ label: '当事人', prop: 'people', width: '240' },
{ label: '公告类型', prop: 'type', width: '210' },
{ label: '公告法院', prop: 'court', width: '280' }
],
formData: [
{ 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: 1, fieldName: 'type', value: '', placeholder: '公告类型', options: [], uid: this.getUid() },
{ type: 1, fieldName: 'caseReason', value: '', placeholder: '案由', options: [], uid: this.getUid() },
{ type: 1, fieldName: 'role', value: '', placeholder: '身份', options: [], uid: this.getUid() },
{ type: 2, fieldName: 'time', value: '', placeholder: '', startTime: 'dateFrom', endTime: 'dateTo', uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true
};
},
created() {
this.handleQuery()
this.noticesTypes()
this.noticesRoles()
this.noticesCaseReasons()
this.handleQuery();
this.noticesTypes();
this.noticesRoles();
this.noticesCaseReasons();
},
computed: {
},
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.isSkeleton = true
let data = params ? params : this.queryParams;
this.isSkeleton = true;
noticesPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.isSkeleton = false
})
this.tableData = res.rows;
this.tableDataTotal = res.total;
this.isSkeleton = 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++){
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++){
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[2].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++){
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[1].options.push({
name: data[i].caseReason + '(' + data[i].count + ')',
value: data[i].caseReason,
})
});
}
}
})
});
},
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
.corePersonnel {
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
.query-box {
margin: 10px 0 20px;
}
}
.court-announcement {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="失信被执行人"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<div class="corePersonnel persons-breach">
<head-form-new title="失信被执行人" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="false"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:index-fixed="true"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
<tables v-if="!isSkeleton" :index-fixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange" />
</div>
</template>
......@@ -25,9 +12,9 @@
<script>
import {
executedPage
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
} from '@/api/detail/party-a/riskInformation';
import mixin from '../mixins/mixin';
import skeleton from '../component/skeleton';
export default {
name: 'Dishonesty',
mixins: [mixin],
......@@ -43,49 +30,53 @@ export default {
pageSize: 20
},
forData: [
{label: '失信被执行人行为具体情形', prop: 'executionDesc', fixed: true},
{label: '立案日期', prop: 'date', width: '95'},
{label: '履行情况', prop: 'executionStatus', width: '120'},
{label: '立案文号', prop: 'caseNumber', width: '210'},
{label: '执行依据文号', prop: 'docNumber', width: '360'},
{label: '执行法院', prop: 'court', width: '280'}
{ label: '失信被执行人行为具体情形', prop: 'executionDesc', fixed: true, width: "508" },
{ label: '立案日期', prop: 'date', width: '95' },
{ label: '履行情况', prop: 'executionStatus', width: '120' },
{ label: '立案文号', prop: 'caseNumber', width: '210' },
{ label: '执行依据文号', prop: 'docNumber', width: '360' },
{ label: '执行法院', prop: 'court', width: '280' }
],
formData: [
{ type: 2, fieldName: 'time', value: '', placeholder: '执行时间',startTime: 'dateFrom',endTime: 'dateTo', options: []}
{ type: 2, fieldName: 'time', value: '', placeholder: '执行时间', startTime: 'dateFrom', endTime: 'dateTo', options: [], uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true
};
},
created() {
this.handleQuery()
this.handleQuery();
},
computed: {
},
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.isSkeleton = true
let data = params ? params : this.queryParams;
this.isSkeleton = true;
executedPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.isSkeleton = false
})
this.tableData = res.rows;
this.tableDataTotal = res.total;
this.isSkeleton = false;
});
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
.corePersonnel {
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
.query-box {
margin: 10px 0 20px;
}
}
.persons-breach {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="被执行人"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<div class="corePersonnel person-subject">
<head-form-new title="被执行人" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="false"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
/>
<tables v-if="!isSkeleton" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" />
</div>
</template>
......@@ -24,9 +12,9 @@
<script>
import {
executedPersonsPage
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
} from '@/api/detail/party-a/riskInformation';
import mixin from '../mixins/mixin';
import skeleton from '../component/skeleton';
export default {
name: 'IfThePerson',
mixins: [mixin],
......@@ -42,47 +30,51 @@ export default {
pageSize: 20
},
forData: [
{label: '执行标的(元)', prop: 'amount', width: '140'},
{label: '案号', prop: 'caseNumber', width: '320'},
{label: '执行法院', prop: 'court'},
{label: '立案日期', prop: 'caseDate', width: '95'}
{ label: '执行标的(元)', prop: 'amount', width: '140' },
{ label: '案号', prop: 'caseNumber', width: '320' },
{ label: '执行法院', prop: 'court' },
{ label: '立案日期', prop: 'caseDate', width: '95' }
],
formData: [
{ type: 2, fieldName: 'time', value: '', placeholder: '执行时间',startTime: 'dateFrom',endTime: 'dateTo', options: []}
{ type: 2, fieldName: 'time', value: '', placeholder: '执行时间', startTime: 'dateFrom', endTime: 'dateTo', options: [], uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true
};
},
created() {
this.handleQuery()
this.handleQuery();
},
computed: {
},
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.isSkeleton = true
let data = params ? params : this.queryParams;
this.isSkeleton = true;
executedPersonsPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.isSkeleton = false
})
this.tableData = res.rows;
this.tableDataTotal = res.total;
this.isSkeleton = false;
});
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
.corePersonnel {
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
.query-box {
margin: 10px 0 20px;
}
}
.person-subject {
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="corePersonnel">
<head-form
title="裁判文书"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="false"
@handle-search="handleSearch"
/>
<div class="corePersonnel judicial-document">
<head-form-new title="裁判文书" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="false"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<tables v-if="!isSkeleton" :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.clean_role }}</span>{{ item.name }}
......@@ -24,7 +12,6 @@
</template>
</tables>
</div>
</template>
......@@ -33,9 +20,9 @@ import {
lawsuitsPage,
lawsuitsCauseAction,
lawsuitsRole
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
} from '@/api/detail/party-a/riskInformation';
import mixin from '../mixins/mixin';
import skeleton from '../component/skeleton';
export default {
name: 'Judgment',
mixins: [mixin],
......@@ -51,84 +38,88 @@ export default {
pageSize: 20
},
forData: [
{label: '案由', prop: 'causeAction'},
{label: '执行案号', prop: 'causeNo', width: '210'},
{label: '身份', prop: 'role', width: '120'},
{label: '当事人', prop: 'relatedCompanies', width: '240', slot: true},
{label: '案件金额(元)', prop: 'subAmount', width: '140'},
{label: '判决结果', prop: 'judgeresult', width: '508'},
{label: '判决日期', prop: 'date', width: '95'},
{ label: '案由', prop: 'causeAction' },
{ label: '执行案号', prop: 'causeNo', width: '210' },
{ label: '身份', prop: 'role', width: '120' },
{ label: '当事人', prop: 'relatedCompanies', width: '240', slot: true },
{ label: '案件金额(元)', prop: 'subAmount', width: '140', align: "right" },
{ label: '判决结果', prop: 'judgeresult', width: '508' },
{ label: '判决日期', prop: 'date', width: '95' },
],
formData: [
{ 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: '请输入执行案号'}
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: [], uid: this.getUid() },
{ type: 1, fieldName: 'role', value: '', placeholder: '身份', options: [], uid: this.getUid() },
{ type: 2, fieldName: 'time', value: '', placeholder: '', startTime: 'dateFrom', endTime: 'dateTo', uid: this.getUid() },
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入执行案号', uid: this.getUid() }
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true
};
},
created() {
this.handleQuery()
this.lawsuitsCauseActions()
this.lawsuitsRoles()
this.handleQuery();
this.lawsuitsCauseActions();
this.lawsuitsRoles();
},
computed: {
},
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.isSkeleton = true
let data = params ? params : this.queryParams;
this.isSkeleton = 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.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.isSkeleton = false
})
this.tableDataTotal = res.total;
this.isSkeleton = 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++){
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++){
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,
})
});
}
}
})
});
}
}
}
</script>
<style lang="scss" scoped>
.corePersonnel{
.corePersonnel {
background: #ffffff;
border-radius: 4px;
padding: 16px;
.query-box{
.query-box {
margin: 10px 0 20px;
}
}
.judicial-document {
@import "@/assets/styles/search-common.scss";
}
</style>
......@@ -22,7 +22,7 @@
navigation: {isFixed: true, fixedHeight: 56, totalHeight: 68}, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
domain: 'https://plug.jiansheku.com', // 插件地址
// domain: 'http://192.168.60.19:3400',
// domain: 'http://192.168.60.104:3400',
// domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912', // 需要携带的sdkId
uid: this.$store.state.user.userId, // 需要携带的uid
......
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