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]: ''