地图和bug修改

xuhongjie
严飞永 2 weeks ago
parent 0b8f3c21d9
commit 6931d67530

@ -36,6 +36,7 @@
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.28.1",
"clipboard": "2.0.8",

@ -387,8 +387,18 @@ export function getqyrzById(id) {
method: 'get'
});
}
//企业基本信息
// 修改企业基本信息
//企业入驻信息
// 修改信息
// 根据项目ID分页查询所有入驻企业
export function getqyBasicInformationPage(params) {
return request({
url: '/gysl/enterprise/page',
method: 'get',
params
});
}
// 修改信息
export function updateqyBasicInformation(data) {
return request({
url: '/gysl/enterprise/edit',
@ -397,20 +407,14 @@ export function updateqyBasicInformation(data) {
});
}
// 删除企业基本信息
// 删除信息
export function deleteqyBasicInformation(idList) {
return request({
url: '/gysl/enterprise/delete',
method: 'delete',
params: { idList }
});
params: {
idList: idList.join(',') // 将数组转换为逗号分隔的字符串
}
// 通过主键查询单条企业基本信息
export function getqyBasicInformationById(id) {
return request({
url: `/gysl/enterprise/${id}`,
method: 'get'
});
}

@ -268,25 +268,16 @@ export default {
rules: {
name: [
{ required: true, message: '项目名称不能为空', trigger: 'blur' },
{ max: 50, message: '项目名称长度不能超过50个字', trigger: 'blur' }
],
xmfrdwxz: [
{ required: true, message: '项目法人单位不能为空', trigger: 'blur' },
{ max: 50, message: '项目法人单位长度不能超过50个字', trigger: 'blur' }
],
nature: [
{ required: true, message: '项目法人单位性质不能为空', trigger: 'change' }
],
sgdw: [
{ max: 50, message: '施工单位长度不能超过50个字', trigger: 'blur' }
],
sjdw: [
{ max: 50, message: '设计单位长度不能超过50个字', trigger: 'blur' }
],
ztze: [
{ required: true, message: '总投资额不能为空', trigger: 'blur' },
{ type: 'number', message: '总投资额必须是数字', trigger: 'blur' },
{ max: 50, message: '总投资额长度不能超过50个字', trigger: 'blur' }
],
ssgnq: [
{ required: true, message: '所属功能区不能为空', trigger: 'change' }
@ -300,35 +291,15 @@ export default {
xzfl: [
{ required: true, message: '现状分类不能为空', trigger: 'change' }
],
jsdd: [
{ max: 50, message: '建设地点长度不能超过50个字', trigger: 'blur' }
],
prioritize: [
{ max: 50, message: '重点发展产业长度不能超过50个字', trigger: 'blur' }
],
jsms: [
{ required: true, message: '建设模式不能为空', trigger: 'change' }
],
label: [
{ max: 50, message: '项目标签长度不能超过50个字', trigger: 'blur' }
],
projectLeader: [
{ required: true, message: '项目负责人不能为空', trigger: 'blur' },
{ max: 50, message: '项目负责人长度不能超过50个字', trigger: 'blur' }
],
phone: [
{ required: true, message: '联系方式不能为空', trigger: 'blur' },
{ pattern: /^[\d-]+$/, message: '联系方式只能包含数字和连字符', trigger: 'blur' },
{ max: 50, message: '联系方式长度不能超过50个字', trigger: 'blur' }
],
issuingTime: [
{ max: 50, message: '施工许可证发放时间长度不能超过50个字', trigger: 'blur' }
],
acceptanceTime: [
{ max: 50, message: '竣工验收时间长度不能超过50个字', trigger: 'blur' }
],
jsjd: [
{ max: 50, message: '建设进度长度不能超过50个字', trigger: 'blur' }
],
unitIntroduction: [
{ max: 1000, message: '项目法人单位简介长度不能超过1000个字', trigger: 'blur' }
@ -377,6 +348,16 @@ export default {
}
},
methods: {
/** 导出 */
handleExport() {
this.download(
"/gysl/basicInformation/exportInfo",
{
idList: this.basicInfo.id
},
`基本信息${new Date().getTime()}.xlsx`
);
},
//
formatDescriptions(data) {
return [

@ -285,7 +285,7 @@ export default {
//
open: false,
//
title: "web资产导入",
title: "建筑信息导入",
//
isUploading: false,
//
@ -293,7 +293,7 @@ export default {
//
headers: { Authorization: "Bearer " + getToken() },
//
url: location.origin + "/gysl/buildingInformation/importProjectBuilding",
url: process.env.VUE_APP_BASE_API + "/gysl/buildingInformation/importProjectBuilding",
},
rules: {
name: [
@ -304,27 +304,21 @@ export default {
],
floor: [
{ required: true, message: '请输入层数', trigger: 'blur' },
{ type: 'number', message: '层数必须是数字', trigger: 'blur' },
],
totalBuildingHeight: [
{ required: true, message: '请输入总建筑高度(米)', trigger: 'blur' },
{ type: 'number', message: '总建筑高度(米)必须是数字', trigger: 'blur' },
],
scgd: [
{ required: true, message: '请输入首层高度(米)', trigger: 'blur' },
{ type: 'number', message: '首层高度(米)必须是数字', trigger: 'blur' },
],
twoAndFourCg: [
{ required: true, message: '请输入2至4层层高', trigger: 'blur' },
{ type: 'number', message: '2至4层层高必须是数字', trigger: 'blur' },
],
scdmhz: [
{ required: true, message: '请输入首层地面荷载(吨/平方米)', trigger: 'blur' },
{ type: 'number', message: '首层地面荷载(吨/平方米)必须是数字', trigger: 'blur' },
],
bzcmj: [
{ required: true, message: '请输入标准层面积(千平方米)', trigger: 'blur' },
{ type: 'number', message: '标准层面积(千平方米)必须是数字', trigger: 'blur' },
]
}
};
@ -333,12 +327,13 @@ export default {
this.fetchBuildings();
},
methods: {
/** 导出 */
/** 导出 */
handleExport() {
this.download(
"/tc/assetCurrent/export",
"/gysl/basicInformation/exportInfo",
{
...this.formInline,
idList: this.xmId
},
`建筑信息${new Date().getTime()}.xlsx`
);
@ -350,9 +345,9 @@ export default {
/** 下载模板操作 */
importTemplate() {
this.download(
"/tc/assetCurrent/importTemplate",
"/gysl/buildingInformation/importTemplate",
{},
`web资产导入模板${new Date().getTime()}.xlsx`
`楼栋导入模板${new Date().getTime()}.xlsx`
);
},
//

@ -67,7 +67,10 @@
<div class="contenttwo">
<div class="descriptionsdiv">
<el-table :data="tableData" style="width: 98%">
<el-table-column prop="id" label="序号" width="200">
<el-table-column label="序号" width="200">
<template slot-scope="scope">
{{ (pagination.currentPage - 1) * pagination.pageSize + scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="name" label="企业名称" width="300">
<template slot-scope="scope">
@ -91,16 +94,24 @@
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button v-if="scope.row.isEditing" size="mini" type="text" icon="el-icon-check" @click="saveRow(scope.row)"></el-button>
<el-button v-else size="mini" type="text" icon="el-icon-edit" @click="editRow(scope.row)"></el-button>
<el-button size="mini" type="text" icon="el-icon-delete" style="color: #F25353;" @click="deleteRow(scope.$index)"></el-button>
<el-button v-if="scope.row.isEditing" size="mini" type="text" icon="el-icon-check"
@click="saveRow(scope.row)">保存</el-button>
<el-button v-else size="mini" type="text" icon="el-icon-edit"
@click="editRow(scope.row)">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" style="color: #F25353;"
@click="deleteRow(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="block">
<div style="visibility: hidden;"></div>
<el-pagination :current-page="4" :page-sizes="[100, 200, 300, 400]" :page-size="100"
layout="total, prev, pager, next, jumper" :total="400">
<el-pagination
:current-page="pagination.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pagination.pageSize"
layout="total, prev, pager, next, jumper"
:total="pagination.total"
@current-change="handleCurrentChange"
@size-change="handleSizeChange">
</el-pagination>
</div>
</div>
@ -109,13 +120,10 @@
<el-dialog title="数据导入" :visible.sync="upload.open" width="400px" append-to-body :close-on-click-modal="false">
<el-upload ref="upload" :limit="1" accept=".xlsx,.xls" :headers="upload.headers" :action="upload.url"
:disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
:auto-upload="false" drag>
:auto-upload="false" :data="upload.data" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<!-- <div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div> -->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
@ -136,7 +144,7 @@
<script>
import { getToken } from "@/utils/auth";
import { download } from "@/utils/request";
import { getqyBasicInformationById, updateqyBasicInformation, deleteqyBasicInformation } from "@/api/ManageApi/index";
import { getqyBasicInformationPage, updateqyBasicInformation, deleteqyBasicInformation } from "@/api/ManageApi/index";
export default {
props: {
@ -157,6 +165,10 @@ export default {
action: {
type: String,
required: true
},
xmId: {
type: Number,
required: true
}
},
data() {
@ -166,18 +178,27 @@ export default {
...this.qyrzInfo
},
tableData: [], //
pagination: {
currentPage: 1,
pageSize: 10,
total: 0
},
upload: {
open: false,
isUploading: false,
updateSupport: 0,
headers: {
Authorization: "Bearer " + getToken()
Authorization: "Bearer " + getToken(),
},
url: process.env.VUE_APP_BASE_API + "/api/enterprise/import"
url: process.env.VUE_APP_BASE_API + "/gysl/enterprise/importEnterprise",
data: {
xmId: this.xmId
}
}
};
},
created() {
console.log('xmId:', this.xmId);
this.fetchTableData();
},
watch: {
@ -192,11 +213,19 @@ export default {
methods: {
//
fetchTableData() {
getqyBasicInformationById().then(response => {
const params = {
xmId: this.xmId,
current: this.pagination.currentPage,
size: this.pagination.pageSize
};
getqyBasicInformationPage(params).then(response => {
console.log('Fetched Data:', response.data.records); //
this.tableData = response.data.records.map(item => ({
...item,
isEditing: false
}));
console.log('Table Data:', this.tableData); //
this.pagination.total = response.data.total; //
}).catch(error => {
console.error('获取数据失败:', error);
});
@ -211,7 +240,7 @@ export default {
...this.form,
rzqys: Number(this.form.rzqys),
rysl: Number(this.form.rysl),
rzl: Number(this.form.rzl),
rzl: Number(this.form.r0zl),
yczmj: Number(this.form.yczmj),
kzczmj: Number(this.form.kzczmj),
gycfpjzj: Number(this.form.gycfpjzj),
@ -236,10 +265,12 @@ export default {
});
},
deleteRow(index) {
this.tableData.splice(index, 1);
//
deleteqyBasicInformation([this.tableData[index].id]).then(response => {
const id = this.tableData[index].id;
deleteqyBasicInformation([id]).then(response => {
this.$modal.msgSuccess('删除成功');
this.tableData.splice(index, 1);
//
this.fetchTableData();
}).catch(error => {
console.error('删除失败:', error);
this.$modal.msgError('删除失败');
@ -269,6 +300,8 @@ export default {
if (response.code === 200) {
this.$modal.msgSuccess(response.msg);
//
this.fetchTableData();
this.$emit("refresh-data"); //
} else {
this.$modal.msgError(response.msg || "导入失败");
@ -279,7 +312,22 @@ export default {
this.$modal.msgWarning("请先选择文件");
return;
}
this.$refs.upload.submit();
// xmId
const formData = new FormData();
formData.append('file', this.$refs.upload.uploadFiles[0].raw);
formData.append('xmId', this.upload.data.xmId);
this.$refs.upload.submit(formData); //
},
//
handleCurrentChange(page) {
this.pagination.currentPage = page;
this.fetchTableData();
},
handleSizeChange(size) {
this.pagination.pageSize = size;
this.fetchTableData();
}
}
};

@ -95,10 +95,11 @@ export default {
handler(newVal) {
console.log('接收到的 wysmxInfo 数据:', newVal);
this.form = newVal.map(item => ({
id: item.id,
// id: item.id,
xmId: item.xmId,
ysmc: item.ysmc,
list: item.list.map(subItem => ({
id: subItem.id,
zdname: subItem.zdname || '暂无指标',
zdinfor: subItem.zdinfor || '',
isEditing: false
@ -113,9 +114,10 @@ export default {
// isEditing
const cleanedForm = this.form.map(row => ({
ysmc: row.ysmc,
id: row.id,
// id: row.id,
xmId: row.xmId,
list: row.list.map(item => ({
id: item.id,
zdname: item.zdname,
zdinfor: item.zdinfor,
}))

@ -134,6 +134,10 @@ export default {
type: Object,
required: true
},
xmId:{
type: Number,
required: true
},
action: {
type: String,
required: true
@ -186,10 +190,15 @@ export default {
},
methods: {
//
/** 导出 */
handleExport() {
this.download('system/post/export', {
...this.queryParams
}, `post_${new Date().getTime()}.xlsx`);
this.download(
"/gysl/basicInformation/exportInfo",
{
idList: this.form.xmId
},
`规划信息${new Date().getTime()}.xlsx`
);
},
//
edit() {

@ -56,7 +56,15 @@
<el-row>
<el-col :span="12">
<el-form-item label="网页地址">
<el-input v-model="form.webUrl" placeholder="请输入网页地址"></el-input>
<el-input placeholder="选择地址" v-model="form.webUrl" class="input-with-select">
<template slot="prepend">
<el-select v-model="select" style="width: 5.7rem;" @change="handleProtocolChange">
<el-option label="http" value="http"></el-option>
<el-option label="https" value="https"></el-option>
</el-select>
<span class="wangzhispan">://</span>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -180,7 +188,8 @@ export default {
xmmc: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
year: [{ required: true, message: '请选择年度', trigger: 'change' }],
img: [{ required: true, message: '请上传项目图片', trigger: 'change' }]
}
},
select: 'http' //
}
},
computed: {
@ -280,6 +289,20 @@ export default {
//
this.fileList = item.img ? [{ url: item.img }] : [];
//
if (item.webUrl) {
if (item.webUrl.startsWith('https://')) {
this.select = 'https';
} else if (item.webUrl.startsWith('http://')) {
this.select = 'http';
} else {
this.select = 'http';
this.form.webUrl = 'http://' + item.webUrl;
}
} else {
this.select = 'http';
}
},
//
@ -292,6 +315,13 @@ export default {
}
},
//
handleProtocolChange() {
if (this.form.webUrl && !this.form.webUrl.startsWith(this.select + '://')) {
this.form.webUrl = this.select + '://' + this.form.webUrl.replace(/^(https?:\/\/)?/, '');
}
},
//
resetForm() {
this.$refs.projectForm?.resetFields();
@ -307,6 +337,7 @@ export default {
year: ""
};
this.fileList = [];
this.select = 'http'; //
},
//

@ -1,161 +1,170 @@
<template>
<div class="container">
<!-- 内容区域 -->
<div class="main-content">
<!-- 右侧地图缩略图 -->
<div class="map-thumbnail">
<div id="mars2dContainerSSS" class="mars2d-container"></div>
<div class="classify">
位置
</div>
</div>
<div class="map-container">
<div class="search_box">
<div class="label">搜索位置</div>
<el-input v-model="input" placeholder="请输入内容" id="tipinput"></el-input>
</div>
<div ref="gaode_Map" id="gaode_Map" class="map"></div>
</div>
</template>
<script>
import 'mars2d/mars2d.css';
import * as mars2d from 'mars2d';
import AMapLoader from "@amap/amap-jsapi-loader"; //AMapLoader
window._AMapSecurityConfig = {
//
securityJsCode: "e779fe2f89c105226f4cc4a78d0bcafe",
};
export default {
dicts: ['tplx'],
components: {},
props: [],
data() {
const basePathUrl = window.basePathUrl || "";
return {
configUrl: basePathUrl + "config/config.json",
mapOptions: {
copyright: false, // logo
basemaps: [
{
"id": 2021,
"pid": 10,
"name": "高德电子",
"icon": "img/basemaps/gaode_vec.png",
"type": "gaode",
"layer": "vec",
"show": true
loading: false,
isDetail: false,
dataForm: {
kqName: undefined,
kqLocation: undefined,
kqLongitude: undefined,
kqLatitude: undefined,
kqWorkUnit: undefined,
cronkqAccredit: [],
kqValidCardRange: undefined,
},
],
center: { lat: 31.3256, lng: 120.7457 },
zoom: 16, //
minZoom: 15, //
maxZoom: 20, //
zoomControl: true,
},
map: null, //
markerIcon: require('@/assets/images/detailsicon/icon-定位@2x.png'),
rules: {},
input: "",
map: null,
auto: null,
placeSearch: null,
lnglat: [],
markers: [],
position: {},
};
},
computed: {},
watch: {},
created() {},
mounted() {
// 使 nextTick DOM
this.$nextTick(() => {
this.initMap();
});
},
methods: {
//
//
initMap() {
this.map = new mars2d.Map('mars2dContainerSSS', this.mapOptions);
this.map.on('load', this.onload);
//
let centerLen = [120.585298, 31.322965];
AMapLoader.load({
key: "b58f9bc6e9863d1688a2da18446ec14d", // WebKey load
version: "2.0", // JSAPI 1.4.15
plugins: ["AMap.AutoComplete", "AMap.PlaceSearch", "AMap.Geocoder"],
})
.then((AMap) => {
this.map = new AMap.Map("gaode_Map", {
// id
viewMode: "3D", // 3D
zoom: 16, //
center: centerLen, //
resizeEnable: true,
});
this.setMarker(centerLen);
//
this.searchMap();
//
this.map.on("click", this.clickMapHandler);
})
.catch((e) => {
console.error("地图加载失败:", e);
});
},
//
onload() {
this.addTestMarker();
//
searchMap() {
//
this.auto = new AMap.AutoComplete({
input: "tipinput", // 使inputid
});
//
this.placeSearch = new AMap.PlaceSearch({
map: this.map,
});
//
this.auto.on("select", this.selectSite);
},
addTestMarker() {
const graphic = new mars2d.graphic.Marker({
latlng: [31.3256, 120.7457],
style: {
image: this.markerIcon,
width: 46,
height: 60,
horizontalOrigin: mars2d.HorizontalOrigin.CENTER,
verticalOrigin: mars2d.VerticalOrigin.BOTTOM
//
selectSite(e) {
if (e.poi.location) {
this.placeSearch.setCity(e.poi.adcode);
this.placeSearch.search(e.poi.name); //
} else {
this.$message.error("查询地址失败,请重新输入地址");
}
},
});
this.map.graphicLayer.addGraphic(graphic);
//
clickMapHandler(e) {
this.lnglat = [e.lnglat.getLng(), e.lnglat.getLat()];
this.setMarker(this.lnglat);
//
let geocoder = new AMap.Geocoder({});
let that = this;
geocoder.getAddress(this.lnglat, function (status, result) {
if (status === "complete" && result.regeocode) {
// dataForm
} else {
that.$message.error("查询地址失败,请重新输入地址");
}
});
},
mounted() {
this.initMap();
//
setMarker(lnglat) {
this.removeMarker();
let marker = new AMap.Marker({
position: lnglat,
});
marker.setMap(this.map);
this.markers.push(marker);
},
beforeDestroy() {
if (this.map) {
this.map.destroy();
}
//
removeMarker() {
if (this.markers) {
this.markers.forEach(marker => marker.setMap(null));
this.markers = [];
}
},
},
};
</script>
<style scoped>
.container {
display: flex;
flex-direction: column;
<style lang="scss">
.map-container {
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;
overflow: auto;
}
.containertop {
height: auto;
display: flex;
justify-content: space-between;
padding: .5rem;
border-bottom: 1px solid #E5E5E5;
height: 30rem;
position: relative;
}
.topleft {
width: 8rem;
.search_box {
display: flex;
gap: 0.4rem;
justify-content: flex-start;
align-items: center;
height: 50px;
padding: 0 20px 0 0;
width: 72rem;
.label {
color: #000;
width: 100px;
}
.topleft img {
width: 0.81rem;
height: 0.81rem;
}
.topleft span {
width: auto;
height: 0.88rem;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 500;
font-size: 0.88rem;
color: #3D424C;
line-height: 0.88rem;
text-align: right;
font-style: normal;
text-transform: none;
}
.main-content {
display: flex;
width: 75rem;
gap: 2rem;
padding: 1rem;
}
.map-thumbnail {
width: 76rem;
height: 25rem;
.map {
overflow: hidden;
width: 72rem;
height: 26.13rem;
margin: 0;
position: relative;
z-index: 1000;
}
.mars2d-container {
width: 100%;
height: 100%;
}
.classify {
width: 2.81rem;
height: 1.38rem;
background-color: rgba(43, 98, 241, 0.8);
border-radius: 0.69rem 0.69rem 0.69rem 0.69rem;
color: white;
position: absolute;
bottom: .5rem;
left: .5rem;
display: flex;
justify-content: center;
align-items: center;
font-size: .7rem;
z-index: 98;
.amap-sug-result {
z-index: 2999 !important;
}
</style>

@ -3,46 +3,44 @@
<!-- 企业端页面 -->
<!-- 表单查询项 -->
<div class="headerbox">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="200">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="200">
<el-row>
<el-col :span="5">
<el-form-item label="项目名称" prop="name" style="width: 100%;">
<el-input v-model="queryParams.name" placeholder="请输入项目名称" clearable style="width: 15rem;"
@keyup.enter.native="handleQuery" />
<el-form-item label="项目名称" style="width: 100%;">
<el-input v-model="queryParams.name" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设时间">
<el-date-picker v-model="queryParams.startTime" type="date" placeholder="开始日期"
value-format="yyyy-MM-dd"
style="width: 11rem;"></el-date-picker>
<el-col :span="7">
<el-form-item label="建设起止时间">
<el-date-picker v-model="queryParams.begainTime"
type="date" placeholder="开始日期" value-format="yyyy-MM-dd"
style="width: 9rem;" :clearable="true">
</el-date-picker>
~
<el-date-picker v-model="queryParams.endTime" type="date" placeholder="开始日期"
<el-date-picker v-model="queryParams.endTime"
type="date" placeholder="结束日期"
value-format="yyyy-MM-dd"
style="width: 11rem;"></el-date-picker>
style="width: 9rem;" :clearable="true">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="现状分类">
<el-select v-model="queryParams.xzfl" placeholder="现状分类" clearable>
<el-option v-for="dict in dict.type.xzfl" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-option v-for="dict in dict.type.xzfl" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-col :span="7">
<el-form-item label="项目法人单位">
<el-input v-model="queryParams.xmfrdwxz" placeholder="请输入项目法人单位" clearable
@keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.xmfrdwxz" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
<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 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-form-item>
</el-col>
@ -73,12 +71,7 @@
</el-dialog>
<!-- 导出行 -->
<div class="tablebtntwo">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-upload2" size="medium"
@click="handleExport">导出</el-button>
</el-col>
</el-row>
</div>
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
@ -260,10 +253,10 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download('/gysl/basicInformation/exportInfo', {
this.download('/gysl/basicInformation/export', {
...this.queryParams,
idList: this.ids[0]
}, `post_${new Date().getTime()}.xlsx`)
}, `信息管理导出${new Date().getTime()}.xlsx`)
},
/** 详情按钮操作 */

@ -10,17 +10,17 @@
<el-input v-model="queryParams.name" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="7">
<el-form-item label="建设起止时间">
<el-date-picker v-model="queryParams.begainTime"
type="date" placeholder="开始日期" value-format="yyyy-MM-dd"
style="width: 11rem;" :clearable="true">
style="width: 9rem;" :clearable="true">
</el-date-picker>
~
<el-date-picker v-model="queryParams.endTime"
type="date" placeholder="结束日期"
value-format="yyyy-MM-dd"
style="width: 10.5rem;" :clearable="true">
style="width: 9rem;" :clearable="true">
</el-date-picker>
</el-form-item>
</el-col>
@ -31,7 +31,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="7">
<el-form-item label="项目法人单位">
<el-input v-model="queryParams.xmfrdwxz" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
@ -177,7 +177,7 @@ export default {
},
xzflMap: {
1: '已建',
2: '建',
2: '建',
3: '拟建'
},
//
@ -272,10 +272,9 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download('/gysl/basicInformation/exportInfo', {
...this.queryParams,
idList: this.ids[0]
}, `post_${new Date().getTime()}.xlsx`)
this.download('/gysl/basicInformation/export', {
xmid: this.ids[0]
}, `基本信息导出${new Date().getTime()}.xlsx`)
},
/** 删除按钮操作 */
handleDelete(row) {

@ -30,7 +30,7 @@
</div>
<!-- 规划信息 -->
<div id="programme">
<Programme :action="action" :planInfo="planInformation"
<Programme :action="action" :planInfo="planInformation" :xmId="projectId"
@update-data="handleDataUpdate('planInformation', $event)">
</Programme>
</div>
@ -50,7 +50,7 @@
</div>
<!-- 企业入驻信息 -->
<div id="companyenter">
<Companyenter :id="projectId" :action="action" :qyrzInfo="qyrzInformation"
<Companyenter :xmId="projectId" :action="action" :qyrzInfo="qyrzInformation"
@update-data="handleDataUpdate('qyrzInformation', $event)">
</Companyenter>
</div>
@ -91,6 +91,9 @@
<div class="footer" v-if="checkRole(['common']) && action === 'fill'">
<el-button type="primary" v-if="checkRole(['common'])" @click="aduitAll"></el-button>
</div>
<div class="footer" v-if="checkRole(['common']) && action === 'okay'">
<el-button type="primary" v-if="checkRole(['common'])" @click="aduitAll"></el-button>
</div>
</div>
<!-- 返回顶部 -->
<el-button icon="el-icon-caret-top" circle id="back-to-top" @click="scrollToTop" plain></el-button>
@ -264,7 +267,7 @@ export default {
}
},
goBack() {
this.$router.go(-1);
this.$router.go(-1); //
},
//
handleDataUpdate(dataKey, updatedData) {
@ -279,7 +282,7 @@ export default {
}
console.log(`接收到 ${dataKey} 更新:`, updatedData);
},
//
isDefault(obj, defaultObj) {
for (const key in defaultObj) {
if (obj[key] !== defaultObj[key]) {
@ -292,12 +295,11 @@ export default {
saveAll() {
this.loading = true;
const tempData = this.prepareSubmitData(); //
console.log('准备暂存的完整数据:', JSON.stringify(tempData, null, 2)); //
tempBasicInformation(tempData)
.then(response => {
this.$message.success('暂存成功');
console.log('暂存数据:', response);
this.$router.go(-1);
})
.catch(error => {
this.$message.error('暂存失败');
@ -310,16 +312,8 @@ export default {
//
submitAll() {
this.loading = true;
const submitData = this.prepareSubmitData(); //
//
if (this.isDefault(this.planInformation, this.defaultPlanInformation)) {
this.$message.error('规划信息未填写');
this.scrollToSection('programme');
this.loading = false;
return;
}
const submitData = this.prepareSubmitData();
console.log('准备提交的完整数据:', JSON.stringify(submitData, null, 2)); //
fillBasicInformation(submitData)
.then(response => {
this.$message.success('提交成功');
@ -340,10 +334,12 @@ export default {
.then(response => {
console.log('提交成功:', response);
this.$message.success('审核通过');
this.isContainerVisible = false;
this.isSubmitted = true;
his.$router.push('/manage');
this.$router.push('/manage');
})
.finally(() => {
this.loading = false;
});
},
//
prepareSubmitData() {
@ -360,13 +356,13 @@ export default {
formatWysmxData() {
return this.wysmxInformations.flatMap(item =>
item.list.map(listItem => ({
id: listItem.id,
createTime: this.formatDate(new Date()),
updateTime: this.formatDate(new Date()),
xmId: this.projectId,
ysmc: item.ysmc,
zdinfor: listItem.zdinfor,
zdname: listItem.zdname,
id: 0, // 0
createBy: "",
updateBy: "",
createId: 0,

@ -30,7 +30,7 @@
</div>
<!-- 规划信息 -->
<div id="programme">
<Programme :action="action" :planInfo="planInformation"
<Programme :action="action" :planInfo="planInformation" :xmId="projectId"
@update-data="handleDataUpdate('planInformation', $event)">
</Programme>
</div>
@ -50,7 +50,7 @@
</div>
<!-- 企业入驻信息 -->
<div id="companyenter">
<Companyenter :id="projectId" :action="action" :qyrzInfo="qyrzInformation"
<Companyenter :xmId="projectId" :action="action" :qyrzInfo="qyrzInformation"
@update-data="handleDataUpdate('qyrzInformation', $event)">
</Companyenter>
</div>
@ -282,7 +282,7 @@ export default {
saveAll() {
this.loading = true;
const tempData = this.prepareSubmitData(); //
console.log('准备暂存的完整数据:', JSON.stringify(tempData, null, 2)); //
tempBasicInformation(tempData)
.then(response => {
this.$message.success('暂存成功');
@ -300,7 +300,7 @@ export default {
submitAll() {
this.loading = true;
const submitData = this.prepareSubmitData();
console.log('准备提交的完整数据:', JSON.stringify(submitData, null, 2)); //
fillBasicInformation(submitData)
.then(response => {
this.$message.success('提交成功');
@ -323,8 +323,11 @@ export default {
this.$message.success('审核通过');
this.isContainerVisible = false;
this.isSubmitted = true;
his.$router.push('/manage');
this.$router.push('/manage');
})
.finally(() => {
this.loading = false;
});
},
//
prepareSubmitData() {
@ -341,13 +344,13 @@ export default {
formatWysmxData() {
return this.wysmxInformations.flatMap(item =>
item.list.map(listItem => ({
id: listItem.id,
createTime: this.formatDate(new Date()),
updateTime: this.formatDate(new Date()),
xmId: this.projectId,
ysmc: item.ysmc,
zdinfor: listItem.zdinfor,
zdname: listItem.zdname,
id: item.id,
createBy: "",
updateBy: "",
createId: 0,

@ -15,7 +15,7 @@
<script>
import qiyeduan from '@/views/components/qiyexinxi/qiyexinxi.vue'
import zhengwuduan from '@/views/components/zhengwuxinxi/zhengwuxinxi.vue'
import { checkPermi, checkRole } from "@/utils/permission"; //
import { checkPermi, checkRole } from "@/utils/permission";
export default {
components: { qiyeduan, zhengwuduan },

@ -12,14 +12,14 @@
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="7">
<el-form-item label="建设起止时间">
<el-date-picker v-model="queryParams.startTime" type="date" placeholder="开始日期"
value-format="yyyy-MM-dd" style="width: 11rem;" :clearable="true">
<el-date-picker v-model="queryParams.begainTime" type="date" placeholder="开始日期"
value-format="yyyy-MM-dd" style="width: 9rem;" :clearable="true">
</el-date-picker>
~
<el-date-picker v-model="queryParams.endTime" type="date" placeholder="结束日期"
value-format="yyyy-MM-dd" style="width: 10.5rem;" :clearable="true">
value-format="yyyy-MM-dd" style="width: 9rem;" :clearable="true">
</el-date-picker>
</el-form-item>
</el-col>
@ -31,9 +31,9 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="7">
<el-form-item label="项目法人单位">
<el-input v-model="queryParams.xmfrdwxz" placeholder="请输入项目法人单位" clearable
<el-input v-model="queryParams.xmfrdwxz" placeholder="请输入项目名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
@ -128,7 +128,7 @@ export default {
},
xzflMap: {
1: '已建',
2: '建',
2: '建',
3: '拟建'
},
//

@ -37,7 +37,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `http://192.168.0.110:7071/`,
// target: `http://192.168.0.108:7071/`,
target: `http://39.101.188.84:7071/`,
changeOrigin: true,
pathRewrite: {

Loading…
Cancel
Save