页面更改

main
严飞永 1 week ago
parent b84c630c4a
commit df93f3b747

@ -15,8 +15,8 @@ export default {
components: { ThemePicker },
mounted() {
autofit.init({
dh: 1030, // 稿
dw: 1950, // 稿
dh: 850, // 稿
dw: 1900, // 稿
el: "body", // DOM
resize: true // resize
})

@ -11,8 +11,8 @@
</el-col>
<el-col :span="8">
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -36,8 +36,8 @@
<el-table-column label="评价规则" align="center" prop="pfgz" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"></el-button>
<el-button size="mini" type="text" style="color: red;" @click="handleDelete(scope.row)"></el-button>
<el-button type="text" @click="handleUpdate(scope.row)"></el-button>
<el-button type="text" style="color: red;" @click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>

@ -38,8 +38,8 @@
<el-row>
<el-col :span="8">
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -49,7 +49,7 @@
<div class="tablebox">
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" align="center">
<template slot-scope="scope">
{{ (scope.$index + 1) + (queryParams.current - 1) * queryParams.size }}
@ -74,8 +74,8 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleInfo(scope.row, 'detail')">详情</el-button>
<el-button size="mini" type="text" style="color: #F25353;" v-if="checkRole(['admin'])"
<el-button type="text" @click="handleInfo(scope.row, 'detail')">详情</el-button>
<el-button type="text" style="color: #F25353;" v-if="checkRole(['admin'])"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>

@ -43,7 +43,7 @@
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" align="center" />
<!-- <el-table-column type="selection" align="center" /> -->
<el-table-column label="序号" width="80" align="center">
<template slot-scope="scope">
{{ scope.$index + 1 }}

@ -1,8 +1,8 @@
<template>
<div class="bigone">
<div class="containerbody" v-if="isContainerVisible">
<!-- 标题和目录 -->
<div fos>
<xiding>
<div style="padding: 0 0.9rem 0 0.5rem;">
<div class="containerheadone" id="listtop">
<Title :basicInfo="basicInformation"></Title>
<el-button type="primary" size="medium" plain
@ -21,6 +21,8 @@
</el-menu>
</div>
</div>
</xiding>
<div class="containerbody" v-if="isContainerVisible">
<!-- 基本信息 -->
<div id="basic">
<Basic :action="action" :basicInfo="basicInformation"
@ -79,8 +81,6 @@
@update-data="handleDataUpdate('projectOtherInfos', $event)">
</Others>
</div>
<div class="footer" v-if="showCompanySection">
</div>
<div class="footer" v-if="checkRole(['common']) && action === 'fill'">
<el-button type="primary" v-if="checkRole(['common'])" @click="aduitAll"></el-button>
</div>
@ -89,16 +89,19 @@
</div>
</div>
<!-- 返回顶部 -->
<!-- <el-button icon="el-icon-caret-top" circle id="back-to-top" @click="scrollToTop" plain></el-button> -->
<el-backtop target=".content-container" :visibility-height="0" :bottom="500" :right="10"></el-backtop>
<el-backtop target=".containerbody" :visibility-height="200" :bottom="50" :right="10" style="z-index: 1000;">
</el-backtop>
<!-- 消息提醒 -->
<div class="message-notice">
<el-tooltip class="item" effect="dark" content="新增智能提醒" placement="top-start">
<Supericon />
</el-tooltip>
</div>
</div>
</template>
<script>
import xiding from "./index2.vue"
import Title from '@/views/components/ProjectDetails/Title.vue';
import Basic from '@/views/components/ProjectDetails/Basic.vue';
import Buildings from '@/views/components/ProjectDetails/Buildings.vue';
@ -118,6 +121,7 @@ import { getzwBasicInformationById, fillBasicInformation, auditBasicInformation,
export default {
components: {
xiding,
Title,
Basic,
Buildings,
@ -230,6 +234,12 @@ export default {
this.loadData();
this.action = this.$route.query.action;
},
mounted() {
window.addEventListener('scroll', this.handleScroll);
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll);
},
computed: {
showCompanySection() {
const isCompany = this.checkRole(['company']);
@ -259,16 +269,9 @@ export default {
element.scrollIntoView({ behavior: 'smooth' });
}
},
// scrollToTop() {
// const basicSection = document.getElementById('listtop');
// if (basicSection) {
// basicSection.scrollIntoView({ behavior: 'smooth' });
// }
// },
goBack() {
this.$router.go(-1); //
this.$router.go(-1);
},
//
handleDataUpdate(dataKey, updatedData) {
if (dataKey === 'projectOtherInfos' || dataKey === 'wysmxInformations') {
if (Array.isArray(updatedData)) {
@ -279,9 +282,7 @@ export default {
} else {
this[dataKey] = updatedData;
}
// console.log(` ${dataKey} :`, updatedData);
},
isDefault(obj, defaultObj) {
for (const key in defaultObj) {
if (obj[key] !== defaultObj[key]) {
@ -290,11 +291,9 @@ export default {
}
return true;
},
//
saveAll() {
this.loading = true;
const tempData = this.prepareSubmitData(); //
// console.log(':', JSON.stringify(tempData, null, 2)); //
const tempData = this.prepareSubmitData();
tempBasicInformation(tempData)
.then(response => {
this.$message.success('暂存成功');
@ -308,11 +307,9 @@ export default {
this.loading = false;
});
},
//
submitAll() {
this.loading = true;
const submitData = this.prepareSubmitData();
// console.log(':', JSON.stringify(submitData, null, 2)); //
fillBasicInformation(submitData)
.then(response => {
this.$message.success('提交成功');
@ -323,51 +320,63 @@ export default {
this.loading = false;
});
},
//
aduitAll() {
this.loading = true;
const loading = this.$loading({
lock: true,
text: '正在提交审核...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
const submitData = this.prepareSubmitData();
auditBasicInformation(submitData)
.then(response => {
// console.log(':', response);
this.$message.success('审核通过');
this.isSubmitted = true;
this.$router.push('/manage');
})
.catch(error => {
this.$message.error('审核失败');
console.error('审核错误:', error);
})
.finally(() => {
this.loading = false;
loading.close();
});
},
//
aduitAlltwo() {
this.loading = true;
const loading = this.$loading({
lock: true,
text: '正在提交修改...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
const submitData = this.prepareSubmitData();
auditBasicInformation(submitData)
.then(response => {
// console.log(':', response);
this.$message.success('修改成功');
this.isSubmitted = true;
this.$router.push('/manage');
})
.catch(error => {
this.$message.error('修改失败');
console.error('修改错误:', error);
})
.finally(() => {
this.loading = false;
loading.close();
});
},
//
prepareSubmitData() {
return {
basicInformation: this.basicInformation,
planInformation: this.planInformation,
projectOtherInfos: this.projectOtherInfos,
qyrzInformation: this.qyrzInformation,
wysmxInformations: this.formatWysmxData() //
wysmxInformations: this.formatWysmxData()
};
},
//
formatWysmxData() {
return this.wysmxInformations.flatMap(item =>
item.list.map(listItem => ({
@ -385,8 +394,6 @@ export default {
}))
);
},
//
formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
@ -396,20 +403,34 @@ export default {
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
},
handleScroll() {
const sections = this.sections;
const scrollPosition = window.scrollY + window.innerHeight / 2;
sections.forEach(section => {
const element = document.getElementById(section.id);
if (element) {
const rect = element.getBoundingClientRect();
if (rect.top <= scrollPosition && rect.bottom >= scrollPosition) {
this.activeSection = section.id;
}
}
});
}
}
};
</script>
<style scoped>
.containerbody {
height: 100%;
height: calc(100% - 7rem);
padding: .3rem .5rem;
display: flex;
flex-direction: column;
gap: 1rem;
position: relative;
overflow: auto;
overflow: hidden;
overflow-y: auto;
}
.containerheadone {
@ -417,8 +438,8 @@ export default {
justify-content: space-between;
align-items: center;
width: 100%;
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
padding: 0 1rem 0 .7rem;
background-color: #fff;
}
.containerhead {
@ -427,8 +448,6 @@ export default {
align-items: center;
width: 100%;
background-color: #FFFFFF;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
}
.custom-menu {
@ -475,22 +494,15 @@ export default {
.bigone {
position: relative;
height: 100%;
overflow: auto;
}
#back-to-top {
position: fixed;
bottom: 50%;
right: 5px;
z-index: 99;
font-size: 23px;
width: 100%;
overflow: hidden;
}
.message-notice {
position: fixed;
bottom: 40%;
right: 1%;
z-index: 99;
z-index: 1000;
font-size: 23px;
cursor: pointer;
}

@ -0,0 +1,63 @@
<template>
<div :class="{'sticky': isSticky}" ref="stickyElement">
<slot>这里是需要吸顶的内容</slot>
</div>
</template>
<script>
export default {
data() {
return {
isSticky: false,
stickyTop: 0,
lastScrollY: 0
}
},
mounted() {
this.stickyTop = this.$refs.stickyElement.offsetTop
window.addEventListener('scroll', this.handleScroll)
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll)
},
methods: {
handleScroll() {
const scrollY = window.pageYOffset || document.documentElement.scrollTop
const delta = scrollY - this.lastScrollY
//
if (scrollY >= this.stickyTop) {
this.isSticky = true
} else {
this.isSticky = false
}
this.lastScrollY = scrollY
}
}
}
</script>
<style scoped>
.sticky {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #ffffff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
z-index: 1000;
transition: all 0.3s ease;
}
/* 原始状态样式(可根据需求自定义) */
[data-v-6a5d4122] {
/* 非吸顶时的原始样式,建议保留足够高度避免内容跳跃 */
height: 60px;
line-height: 60px;
padding: 0 20px;
background-color: #f8f9fa;
border-bottom: 1px solid #e9ecef;
}
</style>

@ -1,6 +1,8 @@
<template>
<div class="bigone">
<!-- 标题 -->
<!-- 标题和目录 -->
<xiding>
<div style="padding: 0 0.9rem 0 0.5rem;">
<div class="containerheadone" id="listtop">
<Title :basicInfo="basicInformation"></Title>
<el-button type="primary" size="medium" plain
@ -8,10 +10,6 @@
返回
</el-button>
</div>
<div style="display: flex;justify-content: center;">
<el-button type="primary" v-if="isSubmitted" disabled>已提交</el-button>
</div>
<div class="containerbody" v-if="isContainerVisible">
<!-- 目录 -->
<div class="containerhead">
<el-menu :default-active="activeSection" mode="horizontal" @select="scrollToSection"
@ -22,6 +20,9 @@
</el-menu-item>
</el-menu>
</div>
</div>
</xiding>
<div class="containerbody" v-if="isContainerVisible">
<!-- 基本信息 -->
<div id="basic">
<Basic :action="action" :basicInfo="basicInformation"
@ -46,7 +47,7 @@
</div>
<!-- 月度进展信息 -->
<div id="months">
<Months :action="action" :xmId=projectId></Months>
<Months :action="action" :xmId="projectId"></Months>
</div>
<!-- 企业入驻信息 -->
<div id="companyenter">
@ -68,7 +69,7 @@
</div>
<!-- 现场实况 -->
<div id="liver">
<Liver :action="action" :xmId=projectId></Liver>
<Liver :action="action"></Liver>
</div>
<!-- 项目备忘录 -->
<div id="memo">
@ -90,13 +91,13 @@
</div>
</div>
<!-- 返回顶部 -->
<!-- <el-button icon="el-icon-caret-top" circle id="back-to-top" @click="scrollToTop" plain></el-button>
-->
<el-backtop target=".content-container" :visibility-height="0" :bottom="500" :right="10"></el-backtop>
<el-backtop target=".containerbody" :visibility-height="200" :bottom="50" :right="10" style="z-index: 1000;">
</el-backtop>
</div>
</template>
<script>
import xiding from "./index2.vue"
import Title from '@/views/components/ProjectDetails/Title.vue';
import Basic from '@/views/components/ProjectDetails/Basic.vue';
import Buildings from '@/views/components/ProjectDetails/Buildings.vue';
@ -128,6 +129,7 @@ export default {
Projectpicture,
Projectdraw,
Others,
xiding
},
data() {
return {
@ -287,20 +289,28 @@ export default {
},
//
saveAll() {
this.loading = true;
//
const loading = this.$loading({
lock: true,
text: '正在暂存中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
const tempData = this.prepareSubmitData(); //
// console.log(':', JSON.stringify(tempData, null, 2)); //
tempBasicInformation(tempData)
.then(response => {
//
this.$message.success('暂存成功');
// console.log(':', response);
})
.catch(error => {
//
this.$message.error('暂存失败');
console.error('暂存错误:', error);
})
.finally(() => {
this.loading = false;
//
loading.close();
});
},
//
@ -315,12 +325,18 @@ export default {
},
//
async submitAll() {
this.loading = true;
//
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
// wysmxInformations
if (this.wysmxInformations.length === 0 || this.wysmxInformations.includes(null)) {
this.$message.error('请填写模型管理信息');
this.loading = false;
loading.close();
return;
}
@ -328,7 +344,7 @@ export default {
const rzqys = await this.getEnterpriseCount();
if (rzqys === 0 || rzqys === null || rzqys === undefined) {
this.$message.error('请先导入企业入驻信息');
this.loading = false;
loading.close();
return;
}
@ -337,7 +353,7 @@ export default {
const planMissingFields = planRequiredFields.filter(field => !this.planInformation[field]);
if (planMissingFields.length > 0) {
this.$message.error('请填写完整的规划信息');
this.loading = false;
loading.close();
return;
}
@ -346,7 +362,7 @@ export default {
const basicMissingFields = basicRequiredFields.filter(field => !this.basicInformation[field]);
if (basicMissingFields.length > 0) {
this.$message.error('请填写完整的基本信息');
this.loading = false;
loading.close();
return;
}
@ -367,7 +383,7 @@ export default {
console.error('提交错误:', error);
})
.finally(() => {
this.loading = false;
loading.close();
});
},
@ -395,7 +411,7 @@ export default {
planInformation: this.planInformation,
projectOtherInfos: this.projectOtherInfos,
qyrzInformation: this.qyrzInformation,
wysmxInformations: this.formatWysmxData() //
wysmxInformations: this.formatWysmxData()
};
},
@ -435,13 +451,14 @@ export default {
<style scoped>
.containerbody {
height: auto;
height: calc(100% - 7rem);
padding: .3rem .5rem;
display: flex;
flex-direction: column;
gap: 1rem;
position: relative;
overflow: auto;
overflow: hidden;
overflow-y: auto;
}
.containerheadone {
@ -449,8 +466,8 @@ export default {
justify-content: space-between;
align-items: center;
width: 100%;
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
padding: 0 1rem 0 .7rem;
background-color: #fff;
}
.containerhead {
@ -459,8 +476,6 @@ export default {
align-items: center;
width: 100%;
background-color: #FFFFFF;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
}
.custom-menu {
@ -506,14 +521,18 @@ export default {
.bigone {
position: relative;
height: 100%;
width: 100%;
overflow: hidden;
}
#back-to-top {
.message-notice {
position: fixed;
bottom: 50%;
right: 5px;
z-index: 99;
bottom: 40%;
right: 1%;
z-index: 1000;
font-size: 23px;
cursor: pointer;
}
.footer {

@ -0,0 +1,63 @@
<template>
<div :class="{'sticky': isSticky}" ref="stickyElement">
<slot>这里是需要吸顶的内容</slot>
</div>
</template>
<script>
export default {
data() {
return {
isSticky: false,
stickyTop: 0,
lastScrollY: 0
}
},
mounted() {
this.stickyTop = this.$refs.stickyElement.offsetTop
window.addEventListener('scroll', this.handleScroll)
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll)
},
methods: {
handleScroll() {
const scrollY = window.pageYOffset || document.documentElement.scrollTop
const delta = scrollY - this.lastScrollY
//
if (scrollY >= this.stickyTop) {
this.isSticky = true
} else {
this.isSticky = false
}
this.lastScrollY = scrollY
}
}
}
</script>
<style scoped>
.sticky {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #ffffff;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
z-index: 1000;
transition: all 0.3s ease;
}
/* 原始状态样式(可根据需求自定义) */
[data-v-6a5d4122] {
/* 非吸顶时的原始样式,建议保留足够高度避免内容跳跃 */
height: 60px;
line-height: 60px;
padding: 0 20px;
background-color: #f8f9fa;
border-bottom: 1px solid #e9ecef;
}
</style>

@ -41,9 +41,9 @@
<el-row>
<el-col :span="8">
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini"
<el-button type="primary" icon="el-icon-search"
@click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -52,7 +52,7 @@
<!-- 表格内容区 -->
<div class="tablebox">
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" align="center">
<template slot-scope="scope">
{{ (scope.$index + 1) + (queryParams.current - 1) * queryParams.size }}
@ -81,8 +81,8 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="getAdd(scope.row, 'detail')">详情</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)" v-if="checkRole(['admin'])"
<el-button type="text" @click="getAdd(scope.row, 'detail')">详情</el-button>
<el-button type="text" @click="handleDelete(scope.row)" v-if="checkRole(['admin'])"
style="color: #F25353;">删除</el-button>
</template>
</el-table-column>

@ -19,9 +19,9 @@
</el-col>
<el-col :span="8">
<el-form-item style="margin-left: 2.5rem;">
<el-button type="primary" icon="el-icon-search" size="mini"
<el-button type="primary" icon="el-icon-search"
@click="fetchElements">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm"></el-button>
<el-button icon="el-icon-refresh" @click="resetSearchForm"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -41,9 +41,9 @@
<div>{{ element.name }}</div>
</div>
<div class="headertwo">
<el-button type="primary" icon="el-icon-delete" size="mini"
<el-button type="primary" icon="el-icon-delete"
@click="handleDeleteElement(element, elementIndex)">删除要素</el-button>
<el-button type="primary" icon="el-icon-edit" size="mini"
<el-button type="primary" icon="el-icon-edit"
@click="handleUpdate(element)">编辑要素</el-button>
<el-button type="primary" icon="el-icon-plus"
@click="showAddIndicatorDialog(element)">新增指标</el-button>
@ -59,9 +59,9 @@
<el-table-column prop="xxyq" label="详细要求" min-width="300"></el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text"
<el-button type="text"
@click="handleUpdateIndicator(element, scope.row)">编辑</el-button>
<el-button size="mini" type="text" style="color: #F56C6C;"
<el-button type="text" style="color: #F56C6C;"
@click="handleDeleteIndicator(element, scope.row, elementIndex, scope.$index)">删除</el-button>
</template>
</el-table-column>

@ -34,9 +34,9 @@
<el-row>
<el-col :span="8">
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini"
<el-button type="primary" icon="el-icon-search"
@click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -59,7 +59,7 @@
<el-table-column label="标签状态" align="center" prop="bqzt" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="getAdd(scope.row, 'detail')">详情</el-button>
<el-button type="text" @click="getAdd(scope.row, 'detail')">详情</el-button>
</template>
</el-table-column>
</el-table>
@ -223,8 +223,8 @@ export default {
//api
getCybqInformationPage(this.queryParams).then((response) => {
//
this.postList = [...this.defaultData, ...response.data.records];
this.total = response.data.total + this.defaultData.length;
this.postList = [...response.data.records];
this.total = response.data.total;
this.loading = false;
}).catch();
},

@ -34,8 +34,8 @@
<el-row>
<el-col :span="8">
<el-form-item style="margin-left: -100px;">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -48,20 +48,20 @@
<div class="tablebtntwo">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleImport"></el-button>
<el-button type="primary" icon="el-icon-download" @click="handleImport"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"></el-button>
<el-button type="primary" icon="el-icon-upload2" @click="handleExport"></el-button>
</el-col>
</el-row>
</div>
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" width="60" align="center">
<template slot-scope="scope">
{{ (queryParams.current - 1) * queryParams.size + scope.$index + 1 }}
@ -77,8 +77,8 @@
<el-table-column label="更新时间" align="center" prop="updateTime" width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"></el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)" style="color: red;">删除</el-button>
<el-button type="text" @click="handleUpdate(scope.row)"></el-button>
<el-button type="text" @click="handleDelete(scope.row)" style="color: red;">删除</el-button>
</template>
</el-table-column>
</el-table>

@ -3,7 +3,7 @@
<!-- 细分产业管理 -->
<!-- 表单查询项 -->
<div class="headerbox">
<el-form ref="queryForm" :model="queryParams" size="small" label-width="100px">
<el-form ref="queryForm" :model="queryParams" size="small" label-width="100px" style="margin-left: -30px;">
<el-row>
<el-col :span="5">
<el-form-item label="产业类别" prop="cylb">
@ -38,9 +38,9 @@
<el-row>
<el-col :span="8">
<el-form-item style="margin-left: -70px;">
<el-button type="primary" icon="el-icon-search" size="mini"
<el-button type="primary" icon="el-icon-search"
@click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
@ -52,22 +52,22 @@
<div class="tablebtntwo">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-download" size="mini"
<el-button type="primary" icon="el-icon-download"
@click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-download" size="mini"
@click="handleExport">导出</el-button>
<el-button type="primary" icon="el-icon-upload2"
@click="handleExport">全量导出</el-button>
</el-col>
</el-row>
</div>
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" width="60" align="center">
<template slot-scope="scope">
{{ (queryParams.current - 1) * queryParams.size + scope.$index + 1 }}
@ -89,8 +89,8 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"></el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
<el-button type="text" @click="handleUpdate(scope.row)"></el-button>
<el-button type="text" @click="handleDelete(scope.row)"
style="color: red;">删除</el-button>
</template>
</el-table-column>
@ -102,8 +102,8 @@
<!-- 添加或修改项目对话框 -->
<el-dialog :title="title" :visible.sync="open" width="40rem" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="160px">
<el-form-item label="产业类别" prop="cylb">
<el-select v-model="form.cylb" placeholder="请选择产业类别">
<el-form-item label="产业类别" prop="cylb" style="width: 100%;">
<el-select v-model="form.cylb" placeholder="请选择产业类别" style="width: 100%;">
<el-option v-for="dict in dict.type.cylb" :key="dict.value" :label="dict.label"
:value="parseInt(dict.value)"></el-option>
</el-select>
@ -115,7 +115,7 @@
<el-input v-model="form.ycljschj" placeholder="请输入原材料及生产环节" />
</el-form-item>
<el-form-item label="上楼适应性" prop="slsyx">
<el-select v-model="form.slsyx" placeholder="请选择上楼适应性">
<el-select v-model="form.slsyx" placeholder="请选择上楼适应性" style="width: 100%;">
<el-option v-for="dict in dict.type.slsyx" :key="dict.value" :label="dict.label"
:value="parseInt(dict.value)"></el-option>
</el-select>
@ -201,16 +201,16 @@ export default {
//
rules: {
cyxf: [
{ required: true, message: "文件名称不能为空", trigger: "blur" }
{ required: true, message: "产业细分不能为空", trigger: "blur" }
],
cylb: [
{ required: true, message: "产业类别不能为空", trigger: "change" }
],
scyh: [
{ required: true, message: "上传用户不能为空", trigger: "blur" }
slsyx: [
{ required: true, message: "上楼适应性不能为空", trigger: "blur" }
],
ycljschj: [
{ required: true, message: "上传时间不能为空", trigger: "change" }
{ required: true, message: "原材料及生产环节不能为空", trigger: "change" }
]
},
//

@ -1,15 +1,13 @@
<template>
<div class="grid-container">
<!-- 第一行 -->
<div class="grid-item item-1">
<!-- 整体项目情况 -->
<div class="dashboard-container">
<!-- 1 -->
<div class="dashboard-row">
<div class="dashboard-col wide">
<div class="allarea">
<AllArea />
</div>
</div>
<div class="grid-item item-2">
<!-- 消息通知 -->
<div class="dashboard-col narrow">
<div class="itemhead">
<span>消息通知</span>
</div>
@ -17,41 +15,34 @@
<Message />
</div>
</div>
<!-- 第二行 -->
<div class="grid-item item-1 bgcicon">
</div>
<!-- 2-->
<div class="dashboard-rowtwo">
<div class="dashboard-col wide bgcicon">
<MapArea />
</div>
<div style="display: flex;flex-direction: column;">
<div class="grid-item item-3">
<!-- 功能区 -->
<div class="itemhead">
<div class="dashboard-col narrow">
<div class="itemhead" style="margin: .5rem 0 0 0;">
<span>功能区</span>
</div>
<div class="relaitem">
<div class="itemsall">
<span>{{ functionnumber.functionnumber }}</span>
<span>项目总数</span>
</div>
<FunctionArea />
</div>
</div>
<div class="grid-item item-5">
<!-- 投资区 -->
<div class="itemhead">
<div class="itemhead" style="margin: 0;">
<span>投资主体</span>
</div>
<div class="relaitem">
<div class="itemsall">
<span>{{ allnumber.touzinumber }}</span>
<span>项目总数</span>
</div>
<InvestArea />
</div>
</div>
</div>
<!-- 第三行 -->
<div class="grid-item item-3">
<!-- 产业数据分析 -->
<!-- 3 -->
<div class="dashboard-row">
<div class="dashboard-col">
<div class="itemhead">
<span>产业数据分析</span>
</div>
@ -59,8 +50,7 @@
<Cyeshuju />
</div>
</div>
<div class="grid-item item-5">
<!-- 产业导向目录分析 -->
<div class="dashboard-col">
<div class="itemhead">
<span>产业导向目录分析</span>
</div>
@ -68,17 +58,16 @@
<Cydxml />
</div>
</div>
<div class="grid-item item-5">
<!-- 产业导向细分产业分析 -->
<div class="dashboard-col">
<div class="itemhead">
<span>产业导向细分产业分析</span>
</div>
<div class="relaitem">
<!-- <Cyeshuju /> -->
<Cydxxfgl />
</div>
</div>
</div>
</div>
</template>
<script>
@ -145,33 +134,56 @@ export default {
</script>
<style scoped>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
/* 三列 */
grid-template-rows: auto auto auto;
/* 三行 */
gap: .5rem;
/* 模块之间的间隔 */
padding: 0 .5rem;
/* 容器内边距 */
.dashboard-container {
display: flex;
flex-direction: column;
height: 100%;
padding: 0.5rem;
gap: 0.5rem;
box-sizing: border-box;
overflow: auto;
}
.grid-item {
.dashboard-row {
display: flex;
flex: 1;
gap: 0.5rem;
}
.dashboard-rowtwo{
display: flex;
flex: 3;
gap: 0.5rem;
flex-wrap: nowrap;
}
.dashboard-col {
flex: 1;
background-color: #FFFFFF;
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
border-radius: 0.5rem;
display: flex;
flex-direction: column;
overflow: hidden;
}
.dashboard-col.wide {
flex: 2;
}
.dashboard-col.narrow {
flex: 1;
}
.itemhead {
width: 100%;
border-left: 0.25rem solid #2B62F1;
margin: 0.5rem 0;
margin: 0.5rem 0;
height: 1.25rem;
display: flex;
align-items: center;
}
.relaitem {
flex: 1;
position: relative;
}
@ -181,8 +193,9 @@ export default {
flex-direction: column;
justify-content: center;
align-items: center;
top: 3.7rem;
left: 7.5rem;
top: 33%;
left: 23%;
z-index: 1;
}
.itemsall span:nth-child(1) {
@ -218,41 +231,37 @@ export default {
}
.mainarea {
padding: 0rem 0rem 0 1.4rem;
flex: 1;
padding: 0 0 0 .5rem;
overflow: auto;
}
/* 第一行:第一个模块占两列 */
.item-1 {
grid-column: span 2;
/* background-image: url('~@/assets/images/allbg.png'); */
background-size: 100% 100%;
background-repeat: no-repeat;
}
.allarea {
width: 100%;
height: auto;
padding: .5rem 1rem;
flex: 1;
padding: 0rem 1rem 0 1rem;
display: flex;
flex-direction: column;
}
/* 最后一行:一个模块占一整行 */
.item-6 {
grid-column: span 3;
/* 占三列 */
.bgcicon {
padding: 0 !important;
}
/* .item-3 {
height: ;
} */
.mapareaone {
position: relative;
}
.bgcicon{
/* background-color: red; */
/* background-image: url(../../assets/images/map@2x.png); */
padding: 0!important;
background-repeat: no-repeat;
background-size: 100% 100%;
/* Responsive adjustments */
@media (max-width: 1200px) {
.dashboard-row {
flex-direction: column;
}
.dashboard-col.wide,
.dashboard-col.narrow {
flex: 1;
}
.itemsall {
top: 2rem;
left: 50%;
transform: translateX(-50%);
}
}
</style>
Loading…
Cancel
Save