From 4277e1483d0bc92c311d5d3761a89351bb1ce400 Mon Sep 17 00:00:00 2001 From: yanfeiyong <2060201549@qq.com> Date: Tue, 15 Apr 2025 14:45:27 +0800 Subject: [PATCH] =?UTF-8?q?docx=E6=96=87=E4=BB=B6=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 + public/docx/单体材料模板.docx | Bin 0 -> 18956 bytes public/docx/苏州工业园区总体报告模板.docx | Bin 0 -> 17777 bytes src/views/compilation/onecailiao/index.vue | 489 +++++------------- src/views/compilation/reporting/index.vue | 21 +- .../ProjectDetails/Projectpicture.vue | 21 +- .../components/ProjectDetails/spanmanage.vue | 5 + src/views/orientedtwo/bqspan/index.vue | 11 +- vue.config.js | 15 +- 9 files changed, 185 insertions(+), 381 deletions(-) create mode 100644 public/docx/单体材料模板.docx create mode 100644 public/docx/苏州工业园区总体报告模板.docx create mode 100644 src/views/components/ProjectDetails/spanmanage.vue diff --git a/package.json b/package.json index 995dc94..378f165 100644 --- a/package.json +++ b/package.json @@ -38,9 +38,12 @@ "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", "@riophae/vue-treeselect": "0.4.0", + "@vue-office/docx": "^1.6.3", + "@vue/composition-api": "^1.7.2", "axios": "0.28.1", "clipboard": "2.0.8", "core-js": "3.37.1", + "docx-preview": "^0.3.5", "echarts": "^5.4.0", "element-ui": "^2.15.13", "file-saver": "2.0.5", @@ -61,6 +64,7 @@ "vue": "2.6.12", "vue-count-to": "1.0.13", "vue-cropper": "0.5.5", + "vue-demi": "^0.14.10", "vue-meta": "2.4.0", "vue-quill-editor": "^3.0.6", "vue-router": "3.4.9", diff --git a/public/docx/单体材料模板.docx b/public/docx/单体材料模板.docx new file mode 100644 index 0000000000000000000000000000000000000000..5dfadc174ffe6343a7bb3181d511cfe9cd999ba7 GIT binary patch literal 18956 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 literal 0 HcmV?d00001 diff --git a/public/docx/苏州工业园区总体报告模板.docx b/public/docx/苏州工业园区总体报告模板.docx new file mode 100644 index 0000000000000000000000000000000000000000..6e6b63ef267b74a096897cad6a61b11f4b5d0f52 GIT binary patch literal 17777 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 literal 0 HcmV?d00001 diff --git a/src/views/compilation/onecailiao/index.vue b/src/views/compilation/onecailiao/index.vue index 4eec8ae..d08ed17 100644 --- a/src/views/compilation/onecailiao/index.vue +++ b/src/views/compilation/onecailiao/index.vue @@ -1,356 +1,163 @@ <template> <div> - <!-- 表单查询项 --> - <div v-if="!previewMode" class="headerbox"> - <el-form size="small" :inline="true" label-width="200"> - <el-row> - <el-col :span="5"> - <el-form-item label="文件标题" style="width: 100%;"> - <el-input v-model="queryParams.fileTitle" placeholder="请输入模板标题" clearable /> - </el-form-item> - </el-col> - <el-col :span="5"> - <el-form-item label="发布时间"> - <el-date-picker v-model="queryParams.startTime" type="date" placeholder="选择日期" style="width: 100%;"></el-date-picker> - </el-form-item> - </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-form-item> - </el-col> - </el-row> - </el-form> - </div> - <!-- 表格内容区 --> - <div v-if="!previewMode" class="tablebox"> - <!-- 按钮行 --> - <div class="tablebtntwo"> - <el-button type="primary" icon="el-icon-upload2" size="mini" @click="handleExport">导出单片材料</el-button> - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> + <!-- 报告管理 --> + <!-- 表单查询项 --> + <div v-if="!previewMode" class="headerbox"> + <el-form size="small" :inline="true" label-width="200"> + <el-row> + <el-col :span="5"> + <el-form-item label="文件标题" style="width: 100%;"> + <el-input v-model="queryParams.fileTitle" placeholder="请输入模板标题" clearable /> + </el-form-item> + </el-col> + <el-col :span="5"> + <el-form-item label="发布时间"> + <el-date-picker v-model="queryParams.startTime" type="date" placeholder="选择日期" + style="width: 100%;"></el-date-picker> + </el-form-item> + </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-form-item> + </el-col> + </el-row> + </el-form> </div> - <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="序号" align="center" prop="id" /> - <el-table-column label="文件标题" align="center" prop="title" /> - <el-table-column label="发布单位" align="center" prop="unit" /> - <el-table-column label="发布人" align="center" prop="author" /> - <el-table-column label="发布时间" align="center" prop="createTime" /> - <el-table-column label="操作" align="center"> - <template slot-scope="scope"> - <el-button size="mini" type="text" style="color: gray;" @click="handlePreview(scope.row)">预览</el-button> - <el-button size="mini" type="text" @click="handleEdit(scope.row)">编辑</el-button> - <el-button size="mini" type="text" style="color: #F25353;" @click="handleDelete(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.current" :limit.sync="queryParams.size" - @pagination="getList" /> - </div> - - <!-- 新增/编辑的弹窗 --> - <el-dialog :title="dialogTitle" :visible.sync="dialogVisible"> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-form-item label="文件标题" prop="fileTitle"> - <el-input v-model="form.fileTitle" placeholder="请输入文件标题" /> - </el-form-item> - <el-form-item label="发布时间" prop="createTime"> - <el-date-picker v-model="form.createTime" type="date" placeholder="选择日期" style="width: 100%;"></el-date-picker> - </el-form-item> - <el-form-item label="发布单位" prop="unit"> - <el-input v-model="form.unit" placeholder="请输入发布单位" /> - </el-form-item> - <el-form-item label="发布人" prop="createBy"> - <el-input v-model="form.createBy" placeholder="请输入发布人" /> - </el-form-item> - <el-form-item label="内容" prop="content"> - <Editorone v-model="form.content" /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">确 定</el-button> - <el-button @click="cancel">取 消</el-button> - </div> - </el-dialog> - - <!-- 预览的展示区 --> - <div v-if="previewMode" class="previewbox"> - <!-- 按钮区域 --> - <div class="previewhead"> - <div class="headone">预览</div> - <div class="headtwo"> - <el-button type="primary" size="mini" icon="el-icon-upload2" @click="handleExporttwo" :loading="loading"> - 导出PDF - </el-button> - <el-button type="primary" size="mini" icon="el-icon-back" @click="handleReturn">返回</el-button> - </div> - </div> - <!-- 标题栏 --> - <div class="previewnick"> - <h1>{{ previewData.fileTitle }}</h1> - </div> - <!-- 发布信息栏 --> - <div class="previewinfo"> - <div class="previewinfoitem">发布时间:{{ previewData.createTime }}</div> - <div class="previewinfoitem">发布单位:{{ previewData.unit }}</div> - <div class="previewinfoitem">发布人:{{ previewData.createBy }}</div> + + <!-- 表格内容区 --> + <div v-if="!previewMode" class="tablebox"> + <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="序号" align="center" prop="id" /> + <el-table-column label="文件标题" align="center" prop="title" /> + <el-table-column label="发布单位" align="center" prop="unit" /> + <!-- <el-table-column label="发布人" align="center" prop="author" /> --> + <el-table-column label="发布时间" align="center" prop="createTime" /> + <el-table-column label="操作" align="center"> + <template slot-scope="scope"> + <el-button size="mini" type="text" style="color: gray;" + @click="handlePreview(scope.row)">预览</el-button> + </template> + </el-table-column> + </el-table> + <pagination v-show="total > 0" :total="total" :page.sync="queryParams.current" + :limit.sync="queryParams.size" @pagination="getList" /> </div> - <!-- 内容区域 --> - <div class="previewcontent"> - <div v-html="previewData.content"></div> + + <!-- DOCX预览区域 --> + <div v-if="previewMode" class="previewbox"> + <div class="previewhead"> + <h3>{{ previewData.title }}</h3> + <div class="headtwo"> + <el-button size="mini" @click="previewMode = false">返回</el-button> + </div> + </div> + <div class="previewcontent"> + <vue-office-docx + :src="docxFileData" + style="width: 100%; height: calc(100vh - 250px); border: 1px solid #eee;" + @rendered="renderedHandler" + /> + </div> </div> - </div> </div> </template> <script> -import Editorone from '@/components/Editor'; -import { addClgl, deleteClgl, updateClgl, getClglPage, exportToPdf } from '@/api/ManageApi/index'; +import VueOfficeDocx from '@vue-office/docx' +import axios from 'axios' export default { - components: { Editorone }, + components: { + 'vue-office-docx': VueOfficeDocx + }, data() { - return { - loading: false, - postList: [], - total: 0, - queryParams: { - current: 1, - size: 10, - fileTitle: '', - startTime: '' - }, - dialogVisible: false, - dialogTitle: '新增', - form: { - id: undefined, - fileTitle: '', - createTime: '', - unit: '', - createBy: '', - content: '' - }, - rules: { - fileTitle: [ - { required: true, message: '文件标题不能为空', trigger: 'blur' } - ], - createTime: [ - { required: true, message: '发布时间不能为空', trigger: 'change' } - ], - unit: [ - { required: true, message: '发布单位不能为空', trigger: 'blur' } - ], - createBy: [ - { required: true, message: '发布人不能为空', trigger: 'blur' } - ], - content: [ - { required: true, message: '内容不能为空', trigger: 'blur' } - ] - }, - previewMode: false, - previewData: {}, - }; + return { + // 查询参数 + queryParams: { + current: 1, + size: 10, + fileTitle: undefined, + startTime: undefined + }, + // 表格数据 + postList: [], + // 加载状态 + loading: false, + // 总条数 + total: 0, + // 预览模式 + previewMode: false, + // 预览数据 + previewData: {}, + // DOCX文件数据 + docxFileData: null + } }, created() { - this.getList(); + this.getList() }, methods: { - // 导出PDF - async handleExporttwo() { - try { - this.loading = true; - - // 验证数据 - if (!this.previewData.fileTitle || !this.previewData.content) { - this.$message.warning('请确保标题和内容不为空'); - return; - } - - // 1. 调用导出接口 - const exportResponse = await exportToPdf({ - htmlArticleTitle: this.previewData.fileTitle, - htmlContent: this.previewData.content - }); - - console.log('完整的:', exportResponse); - - // 检查响应结构 - 注意数据在data属性中 - if (!exportResponse?.data || exportResponse.code !== 200) { - throw new Error(exportResponse?.msg || '导出PDF失败'); - } - - const fileData = exportResponse.data; - if (!fileData.fileName || !fileData.url) { - throw new Error('后端未返回有效的文件路径或文件名'); - } - - // 使用若依下载方式 - this.handleDownload(fileData); - - this.$message.success('PDF导出下载成功'); - } catch (error) { - console.error('导出PDF失败:', error); - this.$message.error('导出PDF失败'); - } finally { - this.loading = false; - } - }, - - // 若依下载方式 - handleDownload(fileData) { - var name = fileData.fileName; - var url = fileData.url; - console.log(name); - console.log(url); - var suffix = url.substring(url.lastIndexOf("."), url.length); - const a = document.createElement('a'); - a.setAttribute('download', name + suffix); - a.setAttribute('target', '_blank'); - a.setAttribute('href', url); - a.click(); - window.URL.revokeObjectURL(url); - }, - - // 返回按钮 - handleReturn() { - this.previewMode = false; - this.previewData = {}; - }, - handleAdd() { - this.dialogTitle = '新增'; - this.dialogVisible = true; - this.form = { id: undefined, fileTitle: '', createTime: '', unit: '', createBy: '', content: '' }; - }, - handleEdit(row) { - this.dialogTitle = '编辑'; - this.dialogVisible = true; - this.form = { ...row }; - }, - async handleDelete(row) { - this.$confirm('确定删除该文件吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(async () => { - try { - this.loading = true; - await deleteClgl([row.id]); - this.postList = this.postList.filter(item => item.id !== row.id); - this.total -= 1; - this.$message({ type: 'success', message: '删除成功!' }); - } catch (error) { - console.error('删除失败:', error); - this.$message.error('删除失败'); - } finally { - this.loading = false; - } - }); - }, - handlePreview(row) { - this.previewMode = true; - this.previewData = { ...row }; - this.previewData.content = row.content; // 直接赋值 HTML 内容 - }, - async submitForm() { - this.$refs.form.validate(async valid => { - if (valid) { - try { - this.loading = true; - if (this.form.id) { - // 编辑操作 - await updateClgl(this.form); - const index = this.postList.findIndex(item => item.id === this.form.id); - this.postList.splice(index, 1, { ...this.form }); - this.$message({ type: 'success', message: '编辑成功!' }); - } else { - // 新增操作 - const response = await addClgl(this.form); - const newForm = { ...this.form, id: response.data.id }; - this.postList.push(newForm); - this.total += 1; - this.$message({ type: 'success', message: '新增成功!' }); - } - this.dialogVisible = false; - } catch (error) { - console.error('操作失败:', error); - this.$message.error('操作失败'); - } finally { - this.loading = false; - } - } - }); - }, - cancel() { - this.dialogVisible = false; - }, - handleSelectionChange(selection) { - console.log(selection); - }, - async handleExport() { - try { - this.loading = true; - const params = { - ...this.queryParams - }; - const response = await getClglPage(params); - if (response.code === 200) { - const fileData = response.data; - if (!fileData.fileName || !fileData.url) { - throw new Error('后端未返回有效的文件路径或文件名'); + // 获取表格数据 + getList() { + this.loading = true + // 默认数据 + setTimeout(() => { + this.postList = [ + { id: 1, title: 'xxxx项目单体材料模板', unit: '经发委', author: '', createTime: '2024-08-20', fileUrl: 'docx/单体材料模板.docx' }, + ] + this.total = 1 + this.loading = false + }, 500) + }, + // 查询 + handleQuery() { + this.queryParams.current = 1 + this.getList() + }, + // 重置查询 + resetQuery() { + this.queryParams = { + current: 1, + size: 10, + fileTitle: undefined, + startTime: undefined } - this.handleDownload(fileData); - this.$message.success('导出成功'); - } else { - throw new Error('导出失败'); - } - } catch (error) { - console.error('导出失败:', error); - this.$message.error('导出失败'); - } finally { - this.loading = false; - } - }, - async getList() { - try { - this.loading = true; - const params = { - ...this.queryParams - }; - const response = await getClglPage(params); - if (response.code === 200) { - this.postList = response.data.records; - this.total = response.data.total; - } else { - throw new Error('获取数据失败'); - } - } catch (error) { - console.error('获取数据失败:', error); - this.$message.error('获取数据失败'); - } finally { - this.loading = false; + this.handleQuery() + }, + // 表格选择变化 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length !== 1 + this.multiple = !selection.length + }, + // 预览文档 + handlePreview(row) { + this.previewMode = true + this.previewData = row + this.loadDocxFile(row.fileUrl) + }, + // 加载DOCX文件 + loadDocxFile(url) { + this.docxFileData = null + axios.get(url, { responseType: 'arraybuffer' }) + .then(response => { + this.docxFileData = response.data + }) + .catch(error => { + console.error('加载文档失败:', error) + this.$message.error('文档加载失败') + }) + }, + // 文档渲染完成回调 + renderedHandler() { + console.log('文档渲染完成') } - }, - handleQuery() { - this.queryParams.current = 1; - this.getList(); - }, - resetQuery() { - this.queryParams = { - current: 1, - size: 10, - fileTitle: '', - startTime: '' - }; - this.getList(); - }, - extractTextContent(html) { - const tempDiv = document.createElement('div'); - tempDiv.innerHTML = html; - return tempDiv.textContent || tempDiv.innerText || ''; - } } -}; +} </script> <style scoped> @@ -380,7 +187,7 @@ export default { .previewbox { width: 90%; - height: auto; + height: 92rem; margin-left: 5%; margin-top: .3rem; display: flex; @@ -403,17 +210,6 @@ export default { gap: .5rem; } -.previewnick { - margin-top: .3rem; - width: 100%; - height: 5rem; - display: flex; - justify-content: center; - align-items: center; - border-bottom: 3px solid #2B62F1; - color: #2B62F1; -} - .previewinfo { display: flex; gap: 1rem; @@ -423,5 +219,6 @@ export default { .previewcontent { margin-top: 1rem; + width: 100%; } </style> \ No newline at end of file diff --git a/src/views/compilation/reporting/index.vue b/src/views/compilation/reporting/index.vue index 3c0e6e0..f552419 100644 --- a/src/views/compilation/reporting/index.vue +++ b/src/views/compilation/reporting/index.vue @@ -34,7 +34,7 @@ <el-table-column label="序号" align="center" prop="id" /> <el-table-column label="文件标题" align="center" prop="title" /> <el-table-column label="发布单位" align="center" prop="unit" /> - <el-table-column label="发布人" align="center" prop="author" /> + <!-- <el-table-column label="发布人" align="center" prop="author" /> --> <el-table-column label="发布时间" align="center" prop="createTime" /> <el-table-column label="操作" align="center"> <template slot-scope="scope"> @@ -55,11 +55,6 @@ <el-button size="mini" @click="previewMode = false">返回</el-button> </div> </div> - <div class="previewinfo"> - <span>发布单位:{{ previewData.unit }}</span> - <span>发布人:{{ previewData.author }}</span> - <span>发布时间:{{ previewData.createTime }}</span> - </div> <div class="previewcontent"> <vue-office-docx :src="docxFileData" @@ -109,18 +104,12 @@ export default { // 获取表格数据 getList() { this.loading = true - // 这里替换为你的实际API调用 - // api.getList(this.queryParams).then(response => { - // this.postList = response.data.records - // this.total = response.data.total - // this.loading = false - // }) - // 模拟数据 + // 默认数据 setTimeout(() => { this.postList = [ - { id: 1, title: '2023年度报告', unit: '技术部', author: '张三', createTime: '2023-01-15', fileUrl: 'docx/单体材料模板.docx' }, + { id: 1, title: '苏州工业园区总体报告模板', unit: '经发委', author: '', createTime: '2024-08-20', fileUrl: 'docx/苏州工业园区总体报告模板.docx' }, ] - this.total = 2 + this.total = 1 this.loading = false }, 500) }, @@ -198,7 +187,7 @@ export default { .previewbox { width: 90%; - height: auto; + height: 92rem; margin-left: 5%; margin-top: .3rem; display: flex; diff --git a/src/views/components/ProjectDetails/Projectpicture.vue b/src/views/components/ProjectDetails/Projectpicture.vue index 0fe07f2..3f907ac 100644 --- a/src/views/components/ProjectDetails/Projectpicture.vue +++ b/src/views/components/ProjectDetails/Projectpicture.vue @@ -47,7 +47,9 @@ <!-- <span style="margin-top: .3rem;"></span> --> </div> <div class="tablebody"> - <div>123</div> + <div> + <spanmanage /> + </div> </div> </div> </div> @@ -57,8 +59,13 @@ <script> import * as echarts from 'echarts'; import { getpicture, getpicturelist } from '@/api/ManageApi/index'; +import spanmanage from '@/views/components/ProjectDetails/spanmanage.vue'; + export default { + components: { + spanmanage, + }, props: { size: { type: String, @@ -92,9 +99,7 @@ export default { this.processData(response.data); this.initChart(); }) - .catch(error => { - console.error('获取项目画像失败:', error); - }); + .catch(); } }, fetchDescriptionData() { @@ -103,9 +108,7 @@ export default { .then(response => { this.processDescriptionData(response.data); }) - .catch(error => { - console.error('获取项目画像解释说明失败:', error); - }); + .catch(); } }, processData(data) { @@ -195,9 +198,9 @@ export default { x2: 0, y2: 1, colorStops: [{ - offset: 0, color: 'rgba(43, 98, 241, 0.3)' // 阴影起始颜色 + offset: 0, color: 'rgba(43, 98, 241, 0.3)' //阴影起始颜色 }, { - offset: 1, color: 'rgba(43, 98, 241, 0)' // 阴影结束颜色 + offset: 1, color: 'rgba(43, 98, 241, 0)' //阴影结束颜色 }] } } diff --git a/src/views/components/ProjectDetails/spanmanage.vue b/src/views/components/ProjectDetails/spanmanage.vue new file mode 100644 index 0000000..571dd24 --- /dev/null +++ b/src/views/components/ProjectDetails/spanmanage.vue @@ -0,0 +1,5 @@ +<template> + <div> + 12345 + </div> +</template> \ No newline at end of file diff --git a/src/views/orientedtwo/bqspan/index.vue b/src/views/orientedtwo/bqspan/index.vue index 656ea2a..828ac69 100644 --- a/src/views/orientedtwo/bqspan/index.vue +++ b/src/views/orientedtwo/bqspan/index.vue @@ -1,6 +1,6 @@ <template> <div> - <!-- 政务端页面 --> + <!-- 产业标签 --> <!-- 表单查询项 --> <div class="headerbox"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" @@ -71,7 +71,7 @@ </template> <script> -import { getCybqInformationPage } from "@/api/ManageApi/index"; +import { getCybqInformationPage } from "@/api/ManageApi/index"; import { checkPermi, checkRole } from "@/utils/permission"; export default { @@ -116,15 +116,12 @@ export default { getList() { this.loading = true; - // 使用新的 API 方法 + //api getCybqInformationPage(this.queryParams).then((response) => { this.postList = response.data.records; this.total = response.data.total; this.loading = false; - }).catch(error => { - console.error('API请求错误:', error); - this.loading = false; - }); + }).catch(); }, // 当选择项发生变化时会触发该事件 diff --git a/vue.config.js b/vue.config.js index 53fa977..ea3100a 100644 --- a/vue.config.js +++ b/vue.config.js @@ -15,9 +15,18 @@ const port = process.env.port || process.env.npm_config_port || 80 // 端口 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions // 这里只列一部分,具体配置参考文档 module.exports = { + // 预览docx + configureWebpack: { + resolve: { + alias: { + 'vue-demi': path.resolve(__dirname, 'node_modules/vue-demi/lib/v2/index.js') + } + } + }, // 部署生产环境和开发环境下的URL。 // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 - // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 + // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。 + // 例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 publicPath: process.env.NODE_ENV === "production" ? "/demo/Gyyq-Upstairs" : "/", // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) outputDir: 'dist', @@ -37,8 +46,8 @@ module.exports = { proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - // target: `http://192.168.0.108:7071/`, - target: `http://39.101.188.84:7071/`, + target: `http://192.168.0.106:7071/`, + // target: `http://39.101.188.84:7071/`, changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: ''