From e912954367ed62931a12c76eb23f7bea69c90aa0 Mon Sep 17 00:00:00 2001 From: yanfeiyong <2060201549@qq.com> Date: Tue, 1 Apr 2025 18:54:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- .env.production | 4 +- .env.staging | 4 +- package.json | 2 +- src/api/ManageApi/index.js | 21 +- src/components/bearicon/index.vue | 86 +++++++ src/layout/components/Navbar.vue | 198 +++++++++------- src/views/compilation/knowledge/index.vue | 14 +- src/views/components/ProjectDetails/Basic.vue | 156 ++++++++++--- .../components/ProjectDetails/Buildings.vue | 114 ++++++---- .../ProjectDetails/Companyenter.vue | 4 +- src/views/components/ProjectDetails/Liver.vue | 20 +- src/views/components/ProjectDetails/Memo.vue | 4 + .../components/ProjectDetails/Months.vue | 53 +---- .../components/ProjectDetails/Others.vue | 51 +++-- .../components/ProjectDetails/Projectgift.vue | 19 +- .../ProjectDetails/Projectpicture.vue | 2 +- .../ProjectDetails/Projectpicturetwo22.vue | 2 +- src/views/components/analysis/daiban.vue | 6 +- src/views/components/analysis/function.vue | 2 +- src/views/components/analysis/projectList.vue | 214 +++++++++++------- src/views/components/qiyexinxi/qiyexinxi.vue | 18 +- .../components/zhengwuxinxi/zhengwuxinxi.vue | 99 ++++++-- src/views/evalute/configtable/index.vue | 12 +- src/views/evalute/evalist/index.vue | 71 ++++-- src/views/login.vue | 2 +- src/views/manage-info/index.vue | 68 ++---- src/views/manage/index.vue | 13 +- src/views/models/badlist/index.vue | 14 +- src/views/models/manages/index.vue | 124 +++++----- src/views/tongjifenxi/index.vue | 11 +- vue.config.js | 4 +- 32 files changed, 907 insertions(+), 509 deletions(-) create mode 100644 src/components/bearicon/index.vue diff --git a/.env.development b/.env.development index 313d61d..949ef29 100644 --- a/.env.development +++ b/.env.development @@ -1,10 +1,10 @@ # 页面标题 -VUE_APP_TITLE = 苏州工业园区工业上楼项目系统 +VUE_APP_TITLE = 苏州工业园区工业上楼管理系统 # 开发环境配置 ENV = 'development' -# 苏州工业园区工业上楼项目系统/开发环境 +# 苏州工业园区工业上楼管理系统/开发环境 VUE_APP_BASE_API = '' # 路由懒加载 diff --git a/.env.production b/.env.production index bef27bb..d0986ca 100644 --- a/.env.production +++ b/.env.production @@ -1,8 +1,8 @@ # 页面标题 -VUE_APP_TITLE = 苏州工业园区工业上楼项目系统 +VUE_APP_TITLE = 苏州工业园区工业上楼管理系统 # 生产环境配置 ENV = 'production' -# 苏州工业园区工业上楼项目系统/生产环境 +# 苏州工业园区工业上楼管理系统/生产环境 # VUE_APP_BASE_API = 'http://39.101.188.84:7071' diff --git a/.env.staging b/.env.staging index acb8aaf..5be7b79 100644 --- a/.env.staging +++ b/.env.staging @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 苏州工业园区工业上楼项目系统 +VUE_APP_TITLE = 苏州工业园区工业上楼管理系统 BABEL_ENV = production @@ -8,5 +8,5 @@ NODE_ENV = production # 测试环境配置 ENV = 'staging' -# 苏州工业园区工业上楼项目系统/测试环境 +# 苏州工业园区工业上楼管理系统/测试环境 VUE_APP_BASE_API = '/stage-api' diff --git a/package.json b/package.json index a63115e..0dfa3e6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ruoyi", "version": "3.8.9", - "description": "苏州工业园区工业上楼项目系统", + "description": "苏州工业园区工业上楼管理系统", "author": "若依", "license": "MIT", "scripts": { diff --git a/src/api/ManageApi/index.js b/src/api/ManageApi/index.js index f675264..6d04b30 100644 --- a/src/api/ManageApi/index.js +++ b/src/api/ManageApi/index.js @@ -177,12 +177,12 @@ export function editElemention(data) { }); } -// 删除指标 +// 删除指标或要素 export function deleteElemention(idList) { return request({ url: `/gysl/mx/delete`, method: 'delete', - params: { idList } + params: { idList: idList.join(',') } }); } @@ -242,7 +242,9 @@ export function deleteXmzsk(idList) { return request({ url: '/gysl/xmzsk/delete', method: 'delete', - params: { idList } + params: { + idList: idList.join(',') // 将数组转换为逗号分隔的字符串 + } }); } @@ -714,4 +716,15 @@ export function getXfcyglPage(params) { method: 'get', params }); -} \ No newline at end of file +} + + +//消息通知数量 +export function getMessageCount() { + return request({ + url: '/gysl/qyStats/qyNoticeCount', + method: 'get' + }) +} + +//月度进展信息 \ No newline at end of file diff --git a/src/components/bearicon/index.vue b/src/components/bearicon/index.vue new file mode 100644 index 0000000..6bf4bc2 --- /dev/null +++ b/src/components/bearicon/index.vue @@ -0,0 +1,86 @@ + + + + + \ No newline at end of file diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index b98bf62..7395f56 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -3,29 +3,23 @@
- - - - - - - - {{ message }} - - - - +
- - +
+ {{ username }} +
+
+ {{ username }} +
+
- + 退出登录 @@ -44,74 +38,101 @@ import SizeSelect from '@/components/SizeSelect' import Search from '@/components/HeaderSearch' import RuoYiGit from '@/components/RuoYi/Git' import RuoYiDoc from '@/components/RuoYi/Doc' +import bearicon from '@/components/bearicon' +import { checkPermi, checkRole } from "@/utils/permission"; +import { getMessageCount } from '@/api/ManageApi/index' export default { - components: { - Breadcrumb, - TopNav, - Hamburger, - Screenfull, - SizeSelect, - Search, - RuoYiGit, - RuoYiDoc - }, - data() { - return { - messages: [ - '消息1', - '消息2', - '消息3', - '消息4' - ] - } - }, - computed: { - ...mapGetters([ - 'sidebar', - 'avatar', - 'device' - ]), - setting: { - get() { - return this.$store.state.settings.showSettings - }, - set(val) { - this.$store.dispatch('settings/changeSetting', { - key: 'showSettings', - value: val - }) - } + components: { + Breadcrumb, + TopNav, + Hamburger, + Screenfull, + SizeSelect, + Search, + RuoYiGit, + RuoYiDoc, + bearicon }, - topNav: { - get() { - return this.$store.state.settings.topNav - } + data() { + return { + messages: [], + } }, - unreadMessages() { - return this.messages.length - } - }, - methods: { - toggleSideBar() { - this.$store.dispatch('app/toggleSideBar') + computed: { + ...mapGetters([ + 'sidebar', + 'avatar', + 'device', + 'name' // Make sure this getter exists in your Vuex store + ]), + username() { + // Return the username from Vuex store or localStorage + return this.name || localStorage.getItem('username') || '账号名称'; + }, + showCompanySection() { + const isCompany = this.checkRole(['company']); + const isCommon = this.checkRole(['common']); + // 如果两个角色都存在,则隐藏企业端 + return isCompany && !isCommon; + }, + setting: { + get() { + return this.$store.state.settings.showSettings + }, + set(val) { + this.$store.dispatch('settings/changeSetting', { + key: 'showSettings', + value: val + }) + } + }, + topNav: { + get() { + return this.$store.state.settings.topNav + } + }, + unreadMessages() { + return this.messages.length + } }, - async logout() { - this.$confirm('确定注销并退出系统吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - this.$store.dispatch('LogOut').then(() => { - // location.href = '/index'; - this.$router.replace('/login') - }) - }).catch(() => { }); + mounted() { + this.getCounts(); }, - handleCommand(command) { - this.$message('点击了: ' + command) + methods: { + checkPermi, + checkRole, + // 获取数据 + async getCounts() { + try { + const response = await getMessageCount(); + if (response && response.code === 200) { + this.counts = response.data; // 将消息数量赋值给 counts + } else { + console.error('获取数据失败:', response); + } + } catch (error) { + console.error('获取数据失败:', error); + } + }, + toggleSideBar() { + this.$store.dispatch('app/toggleSideBar') + }, + async logout() { + this.$confirm('确定注销并退出系统吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.$store.dispatch('LogOut').then(() => { + this.$router.replace('/login') + }) + }).catch(() => { }); + }, + handleCommand(command) { + this.$message('点击了: ' + command) + } } - } } @@ -122,17 +143,20 @@ export default { height: 50px; overflow: hidden; position: relative; - .logoimg{ + + .logoimg { display: flex; align-items: center; gap: .8rem; } - .logoimg img{ + + .logoimg img { width: 3.69rem; height: 2rem; - margin-left:1.2rem ; + margin-left: 1.2rem; } - .logoimg span{ + + .logoimg span { width: auto; height: 2.06rem; font-family: AlibabaPuHuiTi, AlibabaPuHuiTi; @@ -145,7 +169,8 @@ export default { text-transform: none; } - .navbarleft{ + + .navbarleft { display: flex; align-items: center; } @@ -209,7 +234,7 @@ export default { margin-right: 30px; .avatar-wrapper { - margin-top: 5px; + margin-top: 2px; position: relative; .user-avatar { @@ -223,7 +248,7 @@ export default { cursor: pointer; position: absolute; right: -20px; - top: 15px; + top: 17px; font-size: 12px; } } @@ -232,12 +257,15 @@ export default { .item { margin-right: 10px; margin-top: .5rem; + .el-dropdown-link { cursor: pointer; color: black; } + .el-dropdown-link i { - font-size: 2rem; /* 增大图标的大小 */ + font-size: 2rem; + /* 增大图标的大小 */ } } } diff --git a/src/views/compilation/knowledge/index.vue b/src/views/compilation/knowledge/index.vue index 2425153..fe72ed1 100644 --- a/src/views/compilation/knowledge/index.vue +++ b/src/views/compilation/knowledge/index.vue @@ -44,7 +44,11 @@ {{ fileTypeMap[scope.row.lx] || scope.row.lx }} - + + + @@ -223,6 +227,14 @@ export default { this.getList(); }, methods: { + //获取文件名字 + getFileName(filePath) { + if (filePath) { + return filePath.split('/').pop(); + } + return ''; + }, + querySearchAsync(queryString, cb) { let results = []; // 假设 getXmzskPage 是用于文件名称模糊查询的 API diff --git a/src/views/components/ProjectDetails/Basic.vue b/src/views/components/ProjectDetails/Basic.vue index 62b0dbb..0c58e2d 100644 --- a/src/views/components/ProjectDetails/Basic.vue +++ b/src/views/components/ProjectDetails/Basic.vue @@ -145,10 +145,12 @@ - - + + + ~ + @@ -172,6 +174,13 @@ + + + + + + + @@ -256,13 +265,84 @@ export default { jsjd: '', }, 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' } + ], + begainTime: [ + { required: true, message: '建设起始时间不能为空', trigger: 'change' } + ], + endTime: [ + { required: true, message: '建设结束时间不能为空', trigger: 'change' } + ], + 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' } + ], + introduction: [ + { max: 1000, message: '项目简介长度不能超过1000个字', trigger: 'blur' } + ] }, // select映射 ssgnqMap: { 1: '高端制造与国际贸易区', - 2: '阳澄湖半岛旅游度假区', - 3: '金鸡湖商务区', - 4: '苏相合作区' + 2: '独墅湖科教创新区', + 3: '阳澄湖半岛旅游度假区', + 4: '金鸡湖商务区', + 5: '苏相合作区' }, xmfrdwxzMap: { 1: '国企', @@ -276,7 +356,7 @@ export default { }, xzflMap: { 1: '已建', - 2: '再建', + 2: '在建', 3: '拟建', } }; @@ -287,7 +367,8 @@ export default { this.descriptions = this.formatDescriptions(newVal); this.form = { ...newVal, - begainTime: [new Date(newVal.begainTime), new Date(newVal.endTime)], + begainTime: newVal.begainTime ? new Date(newVal.begainTime) : '', + endTime: newVal.endTime ? new Date(newVal.endTime) : '', }; }, immediate: true, @@ -300,16 +381,19 @@ export default { return [ { label: '项目名称', value: data.name }, { label: '项目法人单位', value: data.xmfrdwxz }, - { label: '项目法人单位性质', value: this.xmfrdwxzMap[data.nature] || '未知' }, + { 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.endTime}` }, - { label: '现状分类', value: this.xzflMap[data.xzfl] || '未知' }, + { 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: this.jsmsMap[data.jsms] || '' }, { label: '项目标签', value: data.label }, { label: '项目负责人', value: data.projectLeader }, { label: '联系方式', value: data.phone }, @@ -349,14 +433,19 @@ export default { return true; }, // 准备表单数据 + // 准备表单数据 prepareFormData(formData) { - // 处理日期范围,拆分成 begainTime 和 endTime - const [begainTime, endTime] = this.formatDateRange(formData.begainTime); + // 格式化日期字段 + const formatDate = (date) => { + if (!date) return ''; + // 如果是 Date 对象,直接格式化;如果是字符串,保持原样 + return date instanceof Date ? date.toISOString().split('T')[0] : date; + }; return { - ...formData, // 其他字段保持不变 - begainTime, // 单独的开始日期(字符串) - endTime, // 单独的结束日期(字符串) + ...formData, + begainTime: formatDate(formData.begainTime), // 单独格式化 begainTime + endTime: formatDate(formData.endTime), // 单独格式化 endTime createBy: '', createId: 0, createTime: '', @@ -365,23 +454,22 @@ export default { updateTime: '', }; }, - // 格式化日期范围 - formatDateRange(dateRange) { - if (!dateRange || dateRange.length !== 2) return ['', '']; // 防止空值报错 - // 格式化日期,确保返回 YYYY-MM-DD 格式 - const formatDate = (date) => { - if (!date) return ''; - // 如果是 Date 对象,直接格式化;如果是字符串,先转成 Date 再格式化 - const d = date instanceof Date ? date : new Date(date); - return d.toISOString().split('T')[0]; // 取 YYYY-MM-DD 部分 - }; + // formatDateRange(dateRange) { + // if (!dateRange || dateRange.length !== 2) return ['', '']; // 防止空值报错 + // // 格式化日期,确保返回 YYYY-MM-DD 格式 + // const formatDate = (date) => { + // if (!date) return ''; + // // 如果是 Date 对象,直接格式化;如果是字符串,先转成 Date 再格式化 + // 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]) // 结束日期 - ]; - }, + // return [ + // formatDate(dateRange[0]), // 开始日期 + // formatDate(dateRange[1]) // 结束日期 + // ]; + // }, // 处理附件上传成功 handleAttachmentSuccess(response, file) { this.form.fj = response.url; diff --git a/src/views/components/ProjectDetails/Buildings.vue b/src/views/components/ProjectDetails/Buildings.vue index bbadf31..e2e6918 100644 --- a/src/views/components/ProjectDetails/Buildings.vue +++ b/src/views/components/ProjectDetails/Buildings.vue @@ -13,7 +13,8 @@ style="width: 0.6rem; height: 0.6rem; margin-right: 4px;"> 新增 - 编辑 + style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" + @click="handleImport" + > 导入 + style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" + @click="handleExport" + > 导出 导出 @@ -35,17 +40,20 @@
-
+
+ 暂无数据 +
+
{{ building.name }} - +
-
+
@@ -221,7 +229,7 @@ export default { xmId: { type: [Number, String], required: true - }, + }, action: { type: String, required: true @@ -255,7 +263,8 @@ export default { updateTime: '', xmId: 0, zj: 0 - } + }, + rules:[] }; }, created() { @@ -276,28 +285,28 @@ export default { addBuildingTag() { this.dialogVisible = true; this.buildingForm = { - bzcmj: 0, + bzcmj: '', createBy: '', - createId: 0, + createId: '', createTime: '', - floor: 0, - fourYscg: 0, - fourYslmhz: 0, - id: 0, + floor: '', + fourYscg: '', + fourYslmhz: '', + id: '', name: '', - scdmhz: 0, - scgd: 0, + scdmhz: '', + scgd: '', sfwzyld: 2, sfydzk: 2, sfyqcpd: 2, - totalBuildingHeight: 0, - twoAndFourCg: 0, - twoAndThreeLmhz: 0, + totalBuildingHeight: '', + twoAndFourCg: '', + twoAndThreeLmhz: '', updateBy: '', - updateId: 0, + updateId: '', updateTime: '', xmId: this.xmId, - zj: 0 + zj: '' }; }, fetchBuildings() { @@ -308,29 +317,19 @@ export default { if (response.code === 200 && response.data) { this.buildings = Object.values(response.data); // 将对象转换为数组 console.log('Buildings data after assignment:', this.buildings); + + // 默认选中第一个楼栋 + if (this.buildings.length > 0) { + this.selectedBuilding = this.buildings[0]; + } } else { console.error('数据格式不正确:', response); } }) - .catch(error => { - console.error('数据获取失败:', error); - }); }, - selectBuilding(id) { - console.log('Selected building ID:', id); - getjzxxById(id) - .then(response => { - console.log('Building details response:', response); - if (response.code === 200 && response.data) { - this.selectedBuilding = response.data; // 将详细信息赋值给 selectedBuilding - console.log('Selected building data:', this.selectedBuilding); - } else { - console.error('数据格式不正确:', response); - } - }) - .catch(error => { - console.error('数据获取失败:', error); - }); + + selectBuilding(building) { + this.selectedBuilding = building; // 直接使用传入的building对象 }, handleAddBuilding() { const api = this.buildingForm.id ? updatejzxx : addjzxx; // 根据是否有ID判断是新增还是更新 @@ -473,6 +472,37 @@ export default { cursor: pointer; } +.tagitem { + width: 6.25rem; + height: 2rem; + background: #FAFAFA; + border-radius: 2.13rem 2.13rem 2.13rem 2.13rem; + display: flex; + justify-content: space-around; + 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 { + background-color: rgba(43, 98, 241, 0.1); +} + .important-building { background-color: rgba(43, 98, 241, 0.1); } diff --git a/src/views/components/ProjectDetails/Companyenter.vue b/src/views/components/ProjectDetails/Companyenter.vue index a3f1ef5..e40a9c7 100644 --- a/src/views/components/ProjectDetails/Companyenter.vue +++ b/src/views/components/ProjectDetails/Companyenter.vue @@ -64,7 +64,7 @@
-
+
@@ -173,7 +173,7 @@ export default { headers: { Authorization: "Bearer " + getToken() }, - url: process.env.VUE_APP_BASE_API + "/api/enterprise/import" // 根据实际接口修改 + url: process.env.VUE_APP_BASE_API + "/api/enterprise/import" } }; }, diff --git a/src/views/components/ProjectDetails/Liver.vue b/src/views/components/ProjectDetails/Liver.vue index b87407f..a2c64f6 100644 --- a/src/views/components/ProjectDetails/Liver.vue +++ b/src/views/components/ProjectDetails/Liver.vue @@ -31,6 +31,10 @@
在线
离线
+
+ 暂无数据 +
@@ -46,17 +50,23 @@ 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 }, + // { 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 }, ] }; }, methods: { removeImage(index) { - if (confirm('确定要删除该实况吗?')) { + this.$confirm('确定要删除该实况吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { this.images.splice(index, 1); - } + }).catch(() => { + // 用户点击了取消按钮,无需处理 + }); } } }; diff --git a/src/views/components/ProjectDetails/Memo.vue b/src/views/components/ProjectDetails/Memo.vue index 298c33f..7255173 100644 --- a/src/views/components/ProjectDetails/Memo.vue +++ b/src/views/components/ProjectDetails/Memo.vue @@ -38,6 +38,10 @@
+
+ 暂无数据 +
diff --git a/src/views/components/ProjectDetails/Months.vue b/src/views/components/ProjectDetails/Months.vue index 6041dee..e9b427b 100644 --- a/src/views/components/ProjectDetails/Months.vue +++ b/src/views/components/ProjectDetails/Months.vue @@ -15,33 +15,31 @@
- + - + - + - + - + - - \ No newline at end of file diff --git a/src/views/components/qiyexinxi/qiyexinxi.vue b/src/views/components/qiyexinxi/qiyexinxi.vue index 6e86156..5892f65 100644 --- a/src/views/components/qiyexinxi/qiyexinxi.vue +++ b/src/views/components/qiyexinxi/qiyexinxi.vue @@ -12,11 +12,13 @@ @keyup.enter.native="handleQuery" /> - - - + + + + ~ + @@ -104,7 +106,9 @@ @@ -151,7 +155,7 @@ export default { }, xzflMap: { 1: '已建', - 2: '再建', + 2: '在建', 3: '拟建' }, // 查询参数 diff --git a/src/views/components/zhengwuxinxi/zhengwuxinxi.vue b/src/views/components/zhengwuxinxi/zhengwuxinxi.vue index 0ea8ab0..8ac0712 100644 --- a/src/views/components/zhengwuxinxi/zhengwuxinxi.vue +++ b/src/views/components/zhengwuxinxi/zhengwuxinxi.vue @@ -7,21 +7,23 @@ label-width="200"> - - + - - - + + + + ~ + - + @@ -94,10 +96,19 @@
- + + + - + + + + - + @@ -141,6 +146,8 @@ \ No newline at end of file diff --git a/src/views/models/badlist/index.vue b/src/views/models/badlist/index.vue index db116c3..46c2501 100644 --- a/src/views/models/badlist/index.vue +++ b/src/views/models/badlist/index.vue @@ -11,11 +11,13 @@ @keyup.enter.native="handleQuery" /> - - - + + + + ~ + @@ -139,7 +141,7 @@ export default { }, xzflMap: { 1: '已建', - 2: '再建', + 2: '在建', 3: '拟建' }, // 查询参数 diff --git a/src/views/models/manages/index.vue b/src/views/models/manages/index.vue index d078480..01de381 100644 --- a/src/views/models/manages/index.vue +++ b/src/views/models/manages/index.vue @@ -1,6 +1,7 @@