diff --git a/.env.development b/.env.development
index 2e8c0ab..008a81c 100644
--- a/.env.development
+++ b/.env.development
@@ -6,7 +6,7 @@ ENV = 'development'
# 苏州工业园区工业上楼管理系统/开发环境
# VUE_APP_BASE_API = 'http://192.168.0.108:7071'
-VUE_APP_BASE_API = 'http://39.101.188.84:7071'
+VUE_APP_BASE_API = 'http://36.213.9.3:7071'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/.env.production b/.env.production
index 369dfee..a1fb394 100644
--- a/.env.production
+++ b/.env.production
@@ -10,7 +10,7 @@ ENV = 'production'
# VUE_APP_BASE_API = 'http://114.216.202.175:8008'
# 公司测试环境
-VUE_APP_BASE_API = 'http://39.101.188.84:7071'
+VUE_APP_BASE_API = 'http://36.213.9.3:7071'
# 正式环境
# VUE_APP_BASE_API = '/api'
diff --git a/package.json b/package.json
index 994ddd6..b5b42bd 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,8 @@
{
- "name": "ruoyi",
+ "name": "suzhou",
"version": "3.8.9",
"description": "苏州工业园区工业上楼管理系统",
- "author": "若依",
+ "author": "苏州工业园区",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
diff --git a/src/permission.js b/src/permission.js
index 5d7ede3..1ed9b7b 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -32,9 +32,8 @@ router.beforeEach((to, from, next) => {
const signature = params.get("signature");
const timespan = params.get("timespan");
- // =============================
- // 🔑 新增:处理 clienttoken 登录企业单点登录逻辑
- // =============================
+ // 处理 clienttoken 登录企业单点登录逻辑
+
if (window.location.href.includes("clienttoken=")) {
const reg = /[?&]clienttoken=([^]+)/;
const match = window.location.href.match(reg);
@@ -83,9 +82,7 @@ router.beforeEach((to, from, next) => {
}
}
- // =============================
- // 📦 原有政务参数处理逻辑
- // =============================
+ // 政务参数处理逻辑
if (from.path === to.path && store.getters.token) {
next();
return;
@@ -153,9 +150,8 @@ router.beforeEach((to, from, next) => {
return;
}
- // =============================
- // 🔐 原始本地登录逻辑
- // =============================
+
+ // 本地登录逻辑
if (getToken()) {
to.meta.title && store.dispatch("settings/setTitle", to.meta.title);
/* has token*/
diff --git a/src/views/Home/index.vue b/src/views/Home/index.vue
index 91eee4f..c173df7 100644
--- a/src/views/Home/index.vue
+++ b/src/views/Home/index.vue
@@ -135,13 +135,9 @@ export default {
.grid-container {
display: grid;
grid-template-columns: repeat(2, 1fr);
- /* 三列 */
grid-template-rows: auto auto auto;
- /* 三行 */
gap: 1rem;
- /* 模块之间的间隔 */
padding: 1rem;
- /* 容器内边距 */
}
.grid-item {
@@ -179,10 +175,7 @@ export default {
flex-direction: column;
gap: 1rem;
}
-
-/* 第一行:第一个模块占两列 */
.item-1 {
- /* background-image: url(@/src/assets/images/allbg.png); */
background-size: 100% 100%;
background-repeat: no-repeat;
}
@@ -193,10 +186,8 @@ export default {
padding: 1rem 1.5rem;
}
-/* 最后一行:一个模块占一整行 */
.item-6 {
grid-column: span 3;
- /* 占三列 */
}
.mainareaitem {
diff --git a/src/views/components/ProjectDetails/Basic.vue b/src/views/components/ProjectDetails/Basic.vue
index 7602b7d..e74ef50 100644
--- a/src/views/components/ProjectDetails/Basic.vue
+++ b/src/views/components/ProjectDetails/Basic.vue
@@ -54,31 +54,188 @@
-
![项目代表性照片]()
+
+
+
+
+
+
-
+
+
- *
- {{ item.label }}
+ * 项目名称
+
+ {{ basicInfo.name }}
+
+
+
+
+
+ * 项目法人单位
+
+ {{ basicInfo.xmfrdwxz }}
+
+
+
+
+
+ * 项目法人单位性质
+
+
+
+
+
+
+ 施工单位
+ {{ basicInfo.sgdw }}
+
+
+
+
+ 设计单位
+ {{ basicInfo.sjdw }}
+
+
+
+
+
+ * 总投资额(万元)
+
+ {{ basicInfo.ztze }}
+
+
+
+
+
+ * 所属功能区
+
+
+
+
+
+
+ *建设起止时间
+ {{ basicInfo.begainTime }} 至 {{ basicInfo.endTime }}
+
+
+
+
+
+ * 现状分类
+
+
+
+
+
+
+ 建设地点
+ {{ basicInfo.jsdd }}
+
+
+
+
+ 重点发展产业
+ {{ basicInfo.prioritize }}
+
+
+
+
+
+ * 建设模式
+
+
+
+
+
+ 项目标签
+ {{ basicInfo.label }}
+
+
+
+
+
+ * 项目负责人
+
+ {{ basicInfo.projectLeader }}
+
+
+
+
+
+ * 联系方式
+
+ {{ basicInfo.phone }}
+
- {{ item.value }}
+
+
+ 施工许可证发放时间
+ {{ basicInfo.issuingTime }}
+
+
+
+
+ 竣工验收时间
+ {{ basicInfo.acceptanceTime }}
+
+
+
+
+ 建设进度
+ {{ basicInfo.jsjd }}
+
+
+
+
+
+ * 统一社会信用代码
+
+ {{ basicInfo.tyshxydm }}
+
+
+
+
+ 计划投资额(亿元)
+ {{ basicInfo.jhtze }}
+
+
+
+
+ 所属产业目录
+
+
+
+
+
+ 所属细分产业
+
+
+
+
+
+ 项目法人单位简介
+ {{ basicInfo.unitIntroduction }}
+
+
+
+
+ 项目简介
+ {{ basicInfo.introduction }}
@@ -257,11 +414,13 @@
-
+ type="date"
+ value-format="yyyy-MM-dd"
+ placeholder="请选择施工许可证发放时间"
+ style="width: 100%"
+ >
@@ -287,11 +446,13 @@
-
+ type="date"
+ value-format="yyyy-MM-dd"
+ placeholder="请选择竣工验收时间"
+ style="width: 100%"
+ >
@@ -409,7 +570,7 @@
placeholder="请输入项目简介"
>
-
+
@@ -465,19 +626,6 @@ export default {
},
data() {
return {
- requiredFields: [
- "项目名称",
- "项目法人单位",
- "项目法人单位性质",
- "建设模式",
- "项目负责人",
- "总投资额(万元)",
- "联系方式",
- "所属功能区",
- "建设起止时间",
- "现状分类",
- "统一社会信用代码",
- ],
baseUrl: process.env.VUE_APP_BASE_API,
descriptions: [],
dialogImageUrl: "",
@@ -590,47 +738,21 @@ export default {
},
],
},
- // select映射
- ssgnqMap: {
- 1: "高端制造与国际贸易区",
- 2: "独墅湖科教创新区",
- 3: "阳澄湖半岛旅游度假区",
- 4: "金鸡湖商务区",
- 5: "苏相合作区",
- },
- xmfrdwxzMap: {
- 1: "国企",
- 2: "外资企业",
- 3: "民营企业",
- 4: "其他",
- },
- jsmsMap: {
- 1: "工地实施",
- 2: "利用存量用地改扩建",
- },
- xzflMap: {
- 1: "已建",
- 2: "在建",
- 3: "拟建",
- },
- mlMap: {
- 1: "重点鼓励上楼",
- 2: "有条件上楼",
- },
- xfMap: {
- 1: "新一代信息技术",
- 2: "高端装备制造",
- 3: "生物医药及大健康",
- 4: "纳米技术应用及新材料",
- 5: "人工智能及数字产业",
- 6: "新能源及绿色产业",
- },
};
},
watch: {
basicInfo: {
handler(newVal) {
- this.descriptions = this.formatDescriptions(newVal);
+ // 处理图片轮播数据
+ if (newVal.fj) {
+ this.carouselImages = newVal.fj
+ .split(",")
+ .map((url) => this.baseUrl + url.trim());
+ } else {
+ this.carouselImages = [];
+ }
+
+ // 设置表单数据
this.form = {
...newVal,
begainTime: newVal.begainTime ? new Date(newVal.begainTime) : "",
@@ -651,7 +773,7 @@ export default {
this.form.latitude = location.lat; // 设置纬度
this.mapDialogVisible = false; // 关闭地图弹窗
},
- /** 导出按钮操作 */
+ /* 导出按钮操作 */
handleExport() {
this.download(
"/gysl/basicInformation/export",
@@ -661,47 +783,6 @@ export default {
`基本信息导出${new Date().getTime()}.xlsx`
);
},
- // 格式化描述信息
- formatDescriptions(data) {
- const requiredFields = this.requiredFields;
- return [
- { label: "项目名称", value: data.name },
- { label: "项目法人单位", value: data.xmfrdwxz },
- {
- label: "项目法人单位性质",
- value: this.xmfrdwxzMap[data.nature] || "",
- },
- { label: "施工单位", value: data.sgdw },
- { label: "设计单位", value: data.sjdw },
- { label: "总投资额(万元)", value: data.ztze },
- { label: "所属功能区", value: this.ssgnqMap[data.ssgnq] || "" },
- {
- label: "建设起止时间",
- value: `${data.begainTime ? data.begainTime : ""} 至 ${
- data.endTime ? data.endTime : ""
- }`,
- },
- { label: "现状分类", value: this.xzflMap[data.xzfl] || "" },
- { label: "建设地点", value: data.jsdd },
- { label: "重点发展产业", value: data.prioritize },
- { label: "建设模式", value: this.jsmsMap[data.jsms] || "" },
- { label: "项目标签", value: data.label },
- { label: "项目负责人", value: data.projectLeader },
- { label: "联系方式", value: data.phone },
- { label: "施工许可证发放时间", value: data.issuingTime },
- { label: "竣工验收时间", value: data.acceptanceTime },
- { label: "建设进度", value: data.jsjd },
- { label: "统一社会信用代码", value: data.tyshxydm },
- { label: "计划投资额(亿元)", value: data.jhtze },
- { label: "所属产业目录", value: this.mlMap[data.ml] || "" },
- { label: "所属细分产业", value: this.xfMap[data.xfcy] || "" },
- { label: "项目法人单位简介", value: data.unitIntroduction },
- { label: "项目简介", value: data.introduction },
- ].map((item) => ({
- ...item,
- required: requiredFields.includes(item.label),
- }));
- },
// 打开编辑对话框
edit() {
this.dialogVisible = true;
@@ -734,14 +815,12 @@ export default {
// 格式化日期字段
const formatDate = (date) => {
if (!date) return "";
- // 如果是 Date 对象,直接格式化;如果是字符串,保持原样
return date instanceof Date ? date.toISOString().split("T")[0] : date;
};
-
return {
...formData,
begainTime: formatDate(formData.begainTime), // 单独格式化 begainTime
- endTime: formatDate(formData.endTime),
+ endTime: formatDate(formData.endTime),
createBy: "",
createId: 0,
createTime: "",
@@ -760,7 +839,6 @@ export default {
// const d = date instanceof Date ? date : new Date(date);
// return d.toISOString().split('T')[0]; // 取 YYYY-MM-DD 部分
// };
-
// return [
// formatDate(dateRange[0]), // 开始日期
// formatDate(dateRange[1]) // 结束日期
@@ -840,8 +918,8 @@ export default {
}
.picturediv {
- width: 18.31rem;
- height: 25rem;
+ width: 24.4rem;
+ height: 26rem;
position: relative;
overflow: hidden;
}
@@ -859,7 +937,7 @@ export default {
}
.descriptionsdiv {
- width: calc(100% - 18.31rem);
+ width: calc(100% - 25rem);
margin-left: 1rem;
height: auto;
}
diff --git a/src/views/components/ProjectDetails/Buildings.vue b/src/views/components/ProjectDetails/Buildings.vue
index c34f7c8..9a49e7f 100644
--- a/src/views/components/ProjectDetails/Buildings.vue
+++ b/src/views/components/ProjectDetails/Buildings.vue
@@ -571,7 +571,6 @@ export default {
buildings: {
immediate: true,
handler(newVal) {
- // 当 buildings 数据变化时,通知父组件当前状态
this.$emit("update:hasBuildingData", newVal.length > 0);
},
},
@@ -840,21 +839,16 @@ export default {
align-items: center;
cursor: pointer;
border: 1px solid transparent;
- /* 添加透明边框保持布局稳定 */
transition: all 0.3s ease;
- /* 添加过渡效果 */
}
.tagitem.active-tag {
border: 1px solid #2b62f1;
- /* 选中时的蓝色边框 */
box-shadow: 0 0 0 2px rgba(43, 98, 241, 0.2);
- /* 可选的外发光效果 */
}
.tagitem:hover {
background: #f0f0f0;
- /* 鼠标悬停时的背景色变化 */
}
.important-building {
diff --git a/src/views/components/ProjectDetails/Liver.vue b/src/views/components/ProjectDetails/Liver.vue
index 59644d6..416be15 100644
--- a/src/views/components/ProjectDetails/Liver.vue
+++ b/src/views/components/ProjectDetails/Liver.vue
@@ -50,9 +50,6 @@ export default {
data() {
return {
images: [
- // { src: 'https://picsum.photos/300/200?random=1', isOnline: true },
- // { src: 'https://picsum.photos/300/200?random=2', isOnline: false },
- // { src: 'https://picsum.photos/300/200?random=3', isOnline: true },
]
};
},
@@ -65,7 +62,6 @@ export default {
}).then(() => {
this.images.splice(index, 1);
}).catch(() => {
- // 用户点击了取消按钮,无需处理
});
}
}
diff --git a/src/views/components/ProjectDetails/Memo.vue b/src/views/components/ProjectDetails/Memo.vue
index c8ec3e3..a8338ae 100644
--- a/src/views/components/ProjectDetails/Memo.vue
+++ b/src/views/components/ProjectDetails/Memo.vue
@@ -404,9 +404,7 @@ export default {
.el-textarea__inner {
height: 10rem !important;
- /* 固定高度 */
resize: none;
- /* 禁止调整大小 */
}
.iconguanbi {
diff --git a/src/views/components/ProjectDetails/Models.vue b/src/views/components/ProjectDetails/Models.vue
index cd01ed8..da59e3a 100644
--- a/src/views/components/ProjectDetails/Models.vue
+++ b/src/views/components/ProjectDetails/Models.vue
@@ -85,7 +85,6 @@ export default {
{ value: '有', label: '有' },
{ value: '无', label: '无' },
],
- // 添加更多选项数据
}
};
},
@@ -93,9 +92,7 @@ export default {
wysmxInfo: {
immediate: true,
handler(newVal) {
- // console.log('接收到的 wysmxInfo 数据:', newVal);
this.form = newVal.map(item => ({
- // id: item.id,
xmId: item.xmId,
ysmc: item.ysmc,
list: item.list.map(subItem => ({
@@ -111,10 +108,8 @@ export default {
methods: {
toggleEditAll() {
if (this.isEditingAll) {
- // 保存模式:过滤掉 isEditing 字段
const cleanedForm = this.form.map(row => ({
ysmc: row.ysmc,
- // id: row.id,
xmId: row.xmId,
list: row.list.map(item => ({
id: item.id,
@@ -122,9 +117,8 @@ export default {
zdinfor: item.zdinfor,
}))
}));
- this.$emit('updata-data', cleanedForm); // 传递过滤后的数据
+ this.$emit('updata-data', cleanedForm);
} else {
- // 编辑模式:开启所有字段的编辑状态
this.form.forEach(row => {
row.list.forEach(item => {
item.isEditing = true;
@@ -134,12 +128,10 @@ export default {
this.isEditingAll = !this.isEditingAll;
},
getOptionsForItem(rowIndex, itemIndex) {
- // 根据 rowIndex 和 itemIndex 获取对应的选项数据
return this.optionsMap[`${rowIndex}-${itemIndex}`] || [];
}
},
created() {
- // console.log('wysmxInfo 内容:', this.wysmxInfo); // 初始化时打印数据
}
};
diff --git a/src/views/components/ProjectDetails/luotu.vue b/src/views/components/ProjectDetails/luotu.vue
index 7df460a..c95c7de 100644
--- a/src/views/components/ProjectDetails/luotu.vue
+++ b/src/views/components/ProjectDetails/luotu.vue
@@ -282,12 +282,10 @@ export default {
.search-input {
width: 100%;
- /* max-width: 500px; */
}
.selected-place-input {
width: 100%;
- /* max-width: 500px; */
}
.search-results {
@@ -342,7 +340,6 @@ export default {
height: 100%;
}
-/* 悬浮面板样式 */
.floating-panel {
position: absolute;
top: 20px;
diff --git a/src/views/components/analysis/daiban.vue b/src/views/components/analysis/daiban.vue
index 0c63ce9..fbfbc65 100644
--- a/src/views/components/analysis/daiban.vue
+++ b/src/views/components/analysis/daiban.vue
@@ -82,7 +82,7 @@ export default {
this.total = response.data.total;
this.loading = false;
}).catch(error => {
- console.error('查询失败:', error);
+ // console.error('查询失败:', error);
this.loading = false;
});
},
diff --git a/src/views/components/analysis/map.vue b/src/views/components/analysis/map.vue
index 2958ccb..161ce8d 100644
--- a/src/views/components/analysis/map.vue
+++ b/src/views/components/analysis/map.vue
@@ -208,7 +208,7 @@ export default {
});
graphicLayer.addGraphic(polygon);
} catch (error) {
- console.error('加载苏州园区数据失败:', error);
+ console.error('1', error);
}
},
toggleCollapse() {
diff --git a/src/views/components/analysis/projectList.vue b/src/views/components/analysis/projectList.vue
index f00ada8..208e5ee 100644
--- a/src/views/components/analysis/projectList.vue
+++ b/src/views/components/analysis/projectList.vue
@@ -155,7 +155,6 @@ export default {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
gap: 1rem;
- /* background-color: #fff; */
border-radius: 0.5rem;
height: 26rem;
padding: .5rem;
@@ -182,7 +181,6 @@ export default {
.project-name {
color: #2B62F1;
cursor: pointer;
- /* font-weight: bold; */
font-family: aliregular;
font-size: 0.8rem;
}
diff --git a/src/views/components/zhengwuxinxi/zhengwuxinxi.vue b/src/views/components/zhengwuxinxi/zhengwuxinxi.vue
index 108ee06..dc016f9 100644
--- a/src/views/components/zhengwuxinxi/zhengwuxinxi.vue
+++ b/src/views/components/zhengwuxinxi/zhengwuxinxi.vue
@@ -365,8 +365,7 @@ export default {
this.loading = false;
})
.catch((error) => {
- console.error("API请求错误:", error);
- console.error("错误详情:", error.response);
+ // console.error("API请求错误:", error)
this.loading = false;
});
},
diff --git a/src/views/manage-info/index.vue b/src/views/manage-info/index.vue
index b868a64..10089f8 100644
--- a/src/views/manage-info/index.vue
+++ b/src/views/manage-info/index.vue
@@ -496,11 +496,20 @@ export default {
// 校验 basicInformation
const basicRequiredFields = [
+ "name",
+ "xmfrdwxz",
+ "nature",
+ "ztze",
"ssgnq",
"begainTime",
"endTime",
"xzfl",
"jsms",
+ "projectLeader",
+ "phone",
+ "unitIntroduction",
+ "introduction",
+ "tyshxydm",
];
const basicMissingFields = basicRequiredFields.filter(
(field) => !this.basicInformation[field]
diff --git a/src/views/register.vue b/src/views/register.vue
index 60d8bca..57cdf41 100644
--- a/src/views/register.vue
+++ b/src/views/register.vue
@@ -1,7 +1,7 @@
- 若依后台管理系统
+ 苏州工业园区工业上楼管理系统
diff --git a/vue.config.js b/vue.config.js
index 6a1bbb3..04cb6a9 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -12,7 +12,6 @@ const name = process.env.VUE_APP_TITLE || '工业园区' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口
// vue.config.js 配置说明
-//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
// 这里只列一部分,具体配置参考文档
module.exports = {
// 预览docx
@@ -25,8 +24,6 @@ module.exports = {
},
// 部署生产环境和开发环境下的URL。
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
- // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。
- // 例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "" : "/",
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir: 'dist',
@@ -71,7 +68,7 @@ module.exports = {
}
},
plugins: [
- // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
+
new CompressionPlugin({
cache: false, // 不启用文件缓存
test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式