Browse Source

在线入库更新

李顺 3 năm trước cách đây
mục cha
commit
ae34b6300d

+ 42 - 1
src/api/APIs.ts

@@ -215,7 +215,7 @@ export const videoList_api = (data) => {
   });
 };
 
-//  pbs工程结构树 & 照片墙等树状列表,多个模块重要通用
+/** pbs工程结构树 & 照片墙等树状列表,多个模块重要通用*/  
 export const pbsTreeList_api = (data) => {
   return request({
     method: "get",
@@ -223,7 +223,48 @@ export const pbsTreeList_api = (data) => {
     params: data,
   });
 };
+/** 根据id查找树结构明细*/ 
+export const getStructureDetailByID = (data) => {
+  return request({
+    method: "get",
+    url: `/tofly-sxgk/structuredetail/${data.id}`,
+    params: data,
+  });
+};
+/**  根据id 查询PBS模板层级信息*/
+export const getPbsLevelByID = (data) => {
+  return request({
+    method: "get",
+    url: `/tofly-sxgk/pbslevel/${data.id}`,
+    params: data,
+  });
+};
+/** PBS模板层级分页查询*/ 
+export const getPbsLevelPage = (data) => {
+  return request({
+    method: "get",
+    url: `/tofly-sxgk/pbslevel/page`,
+    params: data,
+  });
+};
 
+/** 业务对象分页查询*/ 
+export const getBoinfoPage = (data) => {
+  return request({
+    method: "get",
+    url: `/tofly-sxgk/boinfo/page`,
+    params: data,
+  });
+};
+
+/** pbs模板详细信息分页查询*/ 
+export const getPbsCodeDetailPage = (data) => {
+  return request({
+    method: "get",
+    url: `/tofly-sxgk/pbscodedetailx/page`,
+    params: data,
+  });
+};
 //pbs工程结构树设计搜索
 export const pbsTreeSearch_api = (data) => {
   return request({

+ 7 - 8
src/views/OnlineImport/widgets/DataImport/components/PbsTree.vue

@@ -8,7 +8,7 @@
   </div>
 </template>
 <script>
-import request from '@/utils/request'
+import {pbsTreeList_api} from '@/api/APIs'
 export default {
   name: "commonTree",//显示工程树
   data() {
@@ -27,10 +27,7 @@ export default {
   },
   methods: {
     getPbsTree() {
-      request({
-        method: "get",
-        url: "/tofly-sxgk/structure/list"
-      }).then(res => {
+      pbsTreeList_api({}).then(res => {
         const { code, result } = res;
         if (code === 1) {
           function formatTree(obj) {
@@ -45,8 +42,11 @@ export default {
               return parent.pid === null; // 返回顶层,依据实际情况判断这里的返回值
             });
           }
-          if (result[0])
-            this.datas = formatTree(result[0].structures);
+          if (result[0]){
+            let data=formatTree(result[0].structures);
+            this.datas = data
+            this.$emit('getTreeList',data);
+          }
         } else {
           this.$message.error("信息获取失败");
         }
@@ -54,7 +54,6 @@ export default {
     },
     // 点击tree节点
     nodeClick(item) {
-      debugger;
       const { id, name, code } = item
       this.treeValue.id = id;
       this.treeValue.label = name;

+ 0 - 1
src/views/OnlineImport/widgets/DataImport/widget.vue

@@ -108,7 +108,6 @@ import PbsTree from './components/PbsTree.vue'
 import { getDefaultPagination } from '@/utils/constant'
 import { pageSizes } from '@/utils/constant'
 import { IPagination } from '@/api/common'
-import { result } from 'lodash'
 @Component({
   name: 'DataImport',
   components: { PbsTree }

+ 808 - 0
src/views/OnlineImport/widgets/PipeOnlineImport/widget.vue

@@ -0,0 +1,808 @@
+<template>
+  <div>
+    <tf-page>
+      <template v-slot:action>
+        <el-row style="padding-bottom:10px;">
+          <el-col :span="12">
+            <el-row>
+              <el-col></el-col>
+            </el-row>
+            <span></span>
+            <span>工程名称</span>
+            <pbs-tree @getTreeList="getTreeList" @changeProjectName="treeNodeClick" style="width:50%;display:inline-block;"></pbs-tree>
+            <el-button type="primary" size="mini">查询</el-button>
+          </el-col>
+          <el-col :span="6" :offset="6">
+            <el-button type="primary" size="mini">数据发布</el-button>
+          </el-col>
+        </el-row>
+      </template>
+      <tf-table :stripe='false' row-key="id" border style='width:100%' :data="tableData" :tree-props="{children:'children'}">
+        <el-table-column prop="name" label="节点名称" width="400">
+
+        </el-table-column>
+        <el-table-column prop="code" label="PBS编码">
+
+        </el-table-column>
+        <el-table-column prop="levelname" label="类型">
+
+        </el-table-column>
+        <el-table-column prop="" label="发布状态">
+
+        </el-table-column>
+        <el-table-column prop="" label="创建时间">
+
+        </el-table-column>
+        <el-table-column prop="" label="操作">
+          <template slot-scope="scope">
+            <div v-if="scope.row.levelname==='工程'||scope.row.levelname==='单项工程'||scope.row.levelname==='单位工程(CWP)'">
+              <el-button size="mini" type="success" @click="openNewNode(scope.row)">新建</el-button>
+            </div>
+            <div v-else-if="scope.row.levelname==='分部工程(专业)'">
+              <el-button size="mini" type="primary" @click="pipeDataImport(scope.row)">导入</el-button>
+              <el-button size="mini" type="danger">删除</el-button>
+            </div>
+            <div v-else>
+              <el-button size="mini" type="success" @click="openNewNode(scope.row)">新建</el-button>
+              <el-button size="mini" type="danger">删除</el-button>
+            </div>
+          </template>
+        </el-table-column>
+      </tf-table>
+    </tf-page>
+    <tf-dialog :visible.sync="newNodeDialogShow" title="新建下级节点" width="600px">
+      <el-form :model="addNodeForm" label-width="140px">
+        <el-form-item label="当前节点">
+          <el-input v-model="addNodeForm.pName" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="当前节点PBS编码">
+          <el-input v-model="addNodeForm.pCode" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="下级节点选择">
+          <el-select @change="nextNodeChange()" v-model="addNodeForm.id" clearable style="width:100%">
+            <el-option v-for="(item,index) in nodeOptions" :key="index" :label="item.name" :value="item.value">
+              <span style="float: left">{{ item.name }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="下级节点PBS编码">
+          <el-input v-model="addNodeForm.code" disabled></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" style="text-align:right;">
+        <el-button type="primary" @click="addNodeSubmit()" size="small">提 交</el-button>
+        <el-button @click="newNodeDialogShow = false" size="small">取 消</el-button>
+      </div>
+    </tf-dialog>
+    <tf-dialog class="fullDialog" title="管线数据导入" max-width="100%" max-height="calc(100vh - 54px)" :fullscreen="true" :visible.sync="importDialogShow">
+      <el-container style="height:100%;">
+        <el-aside width="300px" style="overflow-x:hidden">
+          <div>
+            <el-form ref='addForm' :model="impForm" size="mini">
+              <el-form-item label="项目工程" prop="prjName" class="impForm" :rules="addRules">
+                <pbs-tree @changeProjectName="treeNodeClick" style="width:100%;"></pbs-tree>
+                <!-- <el-input v-model="impForm.prjName"></el-input> -->
+              </el-form-item>
+              <el-form-item label="数据阶段" prop="stage">
+                <el-select v-model="impForm.stage" style="width:100%">
+                  <el-option label="设计" value="SJ"></el-option>
+                  <!-- <el-option label="普查" value="PC"></el-option>
+          <el-option label="竣工" value="JG"></el-option> -->
+                </el-select>
+              </el-form-item>
+              <el-form-item label="成果表">
+                <el-upload class="eluploadcontainer" action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileList" accept=".xls,.xlsx" multiple :limit="2" :before-remove="onBeforeRemove" :on-remove="onRemove" :on-change="onChange" :auto-upload="false" :on-exceed="onExceed">
+                  <el-button slot="trigger" size="small" type="primary">本地文件</el-button>
+                  <el-button size="small" type="primary" @click="OnlineAccess">在线获取</el-button>
+                </el-upload>
+              </el-form-item>
+              <el-form-item>
+                <el-row :gutter="20">
+                  <el-col :span="12">
+                    <el-button type="primary" style="width:100%" @click="buildDatasets">预览</el-button>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-button type="primary" style="width:100%" @click="zsbuildDatasets">提交</el-button>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" style="width:100%" @click="deleteData">删除数据</el-button>
+              </el-form-item>
+            </el-form>
+            <tf-dialog title="在线获取数据成果" :visible.sync="dialogVisible" width="80%" top="3%">
+              <el-form :inline="true" class="toolbar" size="mini">
+                <el-form-item label="所属区域">
+                  <el-select v-model="areaName" filterable clearable placeholder="请选择" size="mini">
+                    <el-option v-for="item in prjOptions" :key="item.code" :label="item.name" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="项目">
+                  <el-select v-model="selectPrjId" filterable clearable placeholder="请选择" size="mini">
+                    <el-option v-for="item in optionsoffter" :key="item.key" :label="item.name" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item>
+                  <el-input v-model="queryPara" clearable placeholder="支持数据名称,上传单位">
+                    <el-button type="primary" slot="append" size="mini" icon="el-icon-search" @click="getlist"></el-button>
+                  </el-input>
+                  <!-- <el-button type="primary" size="mini" icon="el-icon-search" @click="getlist"></el-button> -->
+                </el-form-item>
+                <el-form-item label="提交状态">
+                  <el-radio-group v-model="radio" @change="getlist">
+                    <el-radio label="">全部</el-radio>
+                    <el-radio label="1">未提交</el-radio>
+                    <el-radio label="0">已提交</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+                <el-form-item>
+                  <el-radio-group v-model="radio2" @change="getlist">
+                    <el-radio label="">全部</el-radio>
+                    <el-radio label="2">设计</el-radio>
+                    <el-radio label="1">普查</el-radio>
+                    <el-radio label="3">竣工</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+              </el-form>
+              <!-- 弹出框表单 -->
+              <div class="content-body" style="height:410px;">
+                <tf-table @page-change="onPageChange" :data="onlineRecords" :pagination="pagination">
+                  <template slot="empty">
+                    <img src="@/assets/icon/null.png" alt="暂无数据" />
+                  </template>
+                  <el-table-column prop="id" label="ID" width="100"></el-table-column>
+                  <el-table-column prop="areaName" label="所属区域"></el-table-column>
+                  <el-table-column prop="fullName" label="项目"></el-table-column>
+                  <el-table-column prop="division" label="片区"></el-table-column>
+                  <el-table-column prop="batchName" label="数据名称" :show-overflow-tooltip="true"></el-table-column>
+                  <el-table-column prop="dataSource" label="数据阶段"></el-table-column>
+                  <el-table-column prop="submitStatus" label="提交状态"></el-table-column>
+                  <el-table-column prop="detectionUnit" label="上传单位" :show-overflow-tooltip="true"></el-table-column>
+                  <el-table-column prop="updateTime" label="上传时间" width="150px"></el-table-column>
+                  <el-table-column label="下载" width="50">
+                    <template slot-scope="scope">
+                      <el-button type="text" icon="el-icon-download" @click="downLoadFile(scope.row)"></el-button>
+                    </template>
+                  </el-table-column>
+                </tf-table>
+              </div>
+              <!-- <div class="content-footer">
+        <el-pagination class="pagination" @size-change="onPageChange" @current-change="onPageChange" :current-page="pagination.current" :page-sizes="pageSizes" :page-size="pagination.size" layout="total, sizes, prev, pager, next, jumper" :total="pagination.total"></el-pagination>
+      </div> -->
+            </tf-dialog>
+          </div>
+        </el-aside>
+        <el-main>
+          <el-tabs>
+            <el-tab-pane label="表格"></el-tab-pane>
+            <el-tab-pane label="地图"></el-tab-pane>
+          </el-tabs>
+        </el-main>
+      </el-container>
+      <div slot="footer">
+      </div>
+    </tf-dialog>
+  </div>
+</template>
+
+<script lang='ts'>
+/**
+ *@description 该功能为管网数据在线入库
+ *@author lishun <876330731@qq.com>
+ */
+import { Vue, Prop, Watch, Component } from 'vue-property-decorator'
+import request, { IP } from '@/utils/request'
+import { getDefaultPagination } from '@/utils/constant'
+import {
+  pbsTreeList_api,
+  getStructureDetailByID,
+  getPbsLevelByID,
+  getPbsLevelPage,
+  getBoinfoPage,
+  getPbsCodeDetailPage
+} from '@/api/APIs'
+import { pageSizes } from '@/utils/constant'
+import { IPagination } from '@/api/common'
+import PbsTree from '../DataImport/components/PbsTree.vue'
+@Component({
+  name: 'PipeOnlineImprt',
+  components: { PbsTree }
+})
+export default class PipeOnlineImprt extends Vue {
+  impForm = {
+    prjName: '',
+    stage: 'SJ',
+    paperName: '',
+    paperUnit: '',
+    paperPerson: '',
+    origin: ''
+  }
+  /**新建下级节点弹框显隐 */
+  newNodeDialogShow = false
+  /**导入弹框显隐控制 */
+  importDialogShow=false
+  /**下级节点列表 */
+  nodeOptions = []
+  /**下级节点连接符 */
+  connector = ''
+  tableData = []
+  pageSizes = pageSizes
+  addNodeForm = {
+    pName: '',
+    pCode: '',
+    id: '',
+    code: ''
+  }
+  addRules = {
+    prjName: [{ required: true, message: '请选择单位工程', trigger: 'blur' }],
+    stage: [{ required: true, message: '请选择数据阶段', trigger: 'change' }],
+    paperName: [{ required: true, message: '请输入图纸名称', trigger: 'blur' }],
+    paperUnit: [{ required: true, message: '请输入图纸提供单位', trigger: 'blur' }],
+    paperPerson: [{ required: true, message: '请输入图纸提供人', trigger: 'blur' }]
+  }
+  /**
+   * PBS结构树层级ID
+   */
+  selectProjID = null
+  /**
+  在线获取弹窗开关
+   */
+  dialogVisible = false
+  radio = ''
+  radio2 = ''
+  areaName = ''
+  selectPrjId = ''
+  queryPara = ''
+  prjOptions = []
+  optionsoffter = [{ name: '全部', value: '', key: '2' }]
+  pagination: IPagination = getDefaultPagination()
+  tableColumns = [
+    {
+      prop: 'id',
+      label: 'ID'
+    },
+    {
+      prop: 'areaName',
+      label: '所属区域'
+    },
+    {
+      prop: 'fullName',
+      label: '项目'
+    },
+    {
+      prop: 'division',
+      label: '片区'
+    },
+    {
+      prop: 'batchName',
+      label: '数据名称',
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'dataSource',
+      label: '数据阶段'
+    },
+    {
+      prop: 'submitStatus',
+      label: '提交状态'
+    },
+    {
+      prop: 'detectionUnit',
+      label: '上传单位',
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'proName',
+      label: '上传人'
+    },
+    {
+      prop: 'updateTime',
+      label: '上传时间',
+      minWidth: '150px'
+    },
+    {
+      slot: 'DownloadBtn',
+      width: '50px'
+    }
+  ]
+  /**
+   * 在线文件列表数据
+   */
+  onlineRecords = []
+  /**
+   * 上传文件
+   */
+  fileList = []
+  /**
+   * 最终提交的上传文件
+   */
+  files = []
+  onBeforeRemove(file, fileList) {
+    return this.$confirm(`确定移除${file.name}?`)
+  }
+  onRemove(file, fileList) {
+    this.fileList = fileList
+  }
+  onCheckFile(file) {
+    let fileName = file.name
+    let esuffixt = fileName.substr(fileName.lastIndexOf('.') + 1)
+
+    const isIMAGE = esuffixt === 'xls' || esuffixt === 'xlsx'
+    //const isLt1M = file.size / 1024 / 1024 < 10
+
+    if (!isIMAGE) {
+      this.$message.error('上传文件只能是excel文件!')
+    }
+    // if (!isLt1M) {
+    //   this.$message.error('上传文件大小不能超过 10MB!')
+    // }
+    return isIMAGE
+  }
+  onChange(file, fileList) {
+    const isLoad = this.onCheckFile(file.raw)
+    if (isLoad) {
+      this.fileMap(fileList)
+    } else {
+      fileList.pop()
+    }
+  }
+  fileMap(fileList) {
+    if (fileList.length !== 0) {
+      const files = fileList.map((v) => {
+        return v.raw
+      })
+      this.files = files
+    }
+  }
+  getTreeList(list) {
+    console.log(list)
+    this.tableData = list
+  }
+  onExceed(files, fileList) {
+    this.$message.warning(
+      `当前限制选择 2 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`
+    )
+  }
+  treeNodeClick(info) {
+    if (!info) return
+    this.selectProjID = info.id
+  }
+  /**
+   * 该方法用于新建节点
+   */
+  openNewNode(row) {
+    this.addNodeForm.id = ''
+    this.addNodeForm.code = ''
+    this.newNodeDialogShow = true
+    this.addNodeForm.pName = row.name
+    this.addNodeForm.pCode = row.code
+    getStructureDetailByID({ id: row.id }).then((result) => {
+      //获取PBSlevel id
+      if (result.code === 1) {
+        getPbsLevelByID({ id: result.result.pbslevelId }).then((pbslevel) => {
+          //获取pbslevel信息
+          if (pbslevel.code === 1) {
+            this.connector = pbslevel.result.connector ? pbslevel.result.connector : ''
+            //获取下级PBSlevel信息
+            getPbsLevelPage({ alevel: pbslevel.result.alevel + 1, pbsId: pbslevel.result.pbsId }).then(
+              (nextPbslevel) => {
+                if (nextPbslevel.code === 1 && nextPbslevel.result.records.length === 1) {
+                  //获取层级对应的业务对象
+                  getPbsCodeDetailPage({ pbslevelId: nextPbslevel.result.records[0].id }).then((codeDetail) => {
+                    if (codeDetail.code === 1 && codeDetail.result.records.length === 1) {
+                      getBoinfoPage({
+                        boId: codeDetail.result.records[0].boId,
+                        size: 100,
+                        'orders[0].column': 'code',
+                        'orders[0].asc': true
+                      }).then((boinfos) => {
+                        if (boinfos.code === 1) {
+                          console.log(boinfos)
+                          const list = boinfos.result.records.map((item) => {
+                            return { name: item.name, value: item.code }
+                          })
+                          this.nodeOptions = list
+                        }
+                      })
+                    }
+                  })
+                }
+              }
+            )
+          }
+        })
+      }
+    })
+  }
+  /**该方法用于提交新建节点信息 */
+  addNodeSubmit() {}
+  /**下级节点选择器选中事件 */
+  nextNodeChange() {
+    const node = this.nodeOptions.find((item) => {
+      return item.value === this.addNodeForm.id
+    })
+    this.addNodeForm.code = this.addNodeForm.pCode + this.connector + node.value
+  }
+  /**导入按钮点击事件 */
+  pipeDataImport(row){
+    this.importDialogShow=true;
+  }
+  /**
+  导入excel表,创建二三维数据集  
+   */
+  buildDatasets() {
+    if (this.files.length === 0) {
+      this.$message.warning('请上传管网数据表')
+      return
+    }
+    if (!this.selectProjID) {
+      this.$message.warning('请选择导入层级')
+      return
+    }
+    const formdata = new FormData()
+    this.files.forEach((item) => {
+      formdata.append('files', item)
+    })
+    formdata.append('importType', '0')
+    formdata.append('id', '' + this.selectProjID)
+
+    request({
+      url: '/tofly-lzd-data/data/import/' + this.selectProjID,
+      method: 'POST',
+      data: formdata
+    })
+      .then((result) => {
+        if (result.code === 1) {
+          this.$message.success('生成数据集成功')
+          this.buildNetwork()
+        }
+      })
+      .catch((err) => {
+        this.$message.error('生成数据集失败')
+        console.log(err)
+      })
+  }
+  /**
+  导入excel表,创建二三维数据集【正式库】  
+   */
+  zsbuildDatasets() {
+    if (this.files.length === 0) {
+      this.$message.warning('请上传管网数据表')
+      return
+    }
+    if (!this.selectProjID) {
+      this.$message.warning('请选择导入层级')
+      return
+    }
+    const formdata = new FormData()
+    this.files.forEach((item) => {
+      formdata.append('files', item)
+    })
+    formdata.append('importType', '1')
+    formdata.append('id', '' + this.selectProjID)
+
+    request({
+      url: '/tofly-lzd-data/data/import/' + this.selectProjID,
+      method: 'POST',
+      data: formdata
+    })
+      .then((result) => {
+        this.$message.success('生成数据集成功')
+        this.buildNetwork()
+      })
+      .catch((err) => {
+        this.$message.error('导入excel出错')
+        console.log(err)
+      })
+  }
+  /**
+    重建三维网络【临时库】
+   */
+  buildNetwork() {
+    request({
+      url: '/tofly-lzd-data/data/createNetwork?importType=0',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('三维网络生成成功')
+          this.buildModelTiles()
+        }
+      })
+      .catch((err) => {
+        this.$message.error('三维网络生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    重建三维网络【正式库】
+   */
+  zsbuildNetwork() {
+    request({
+      url: '/tofly-lzd-data/data/createNetwork?importType=1',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('三维网络生成成功')
+          this.zsbuildModelTiles()
+        }
+      })
+      .catch((err) => {
+        this.$message.error('三维网络生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    制作场景缓存【临时库】
+   */
+  buildModelTiles() {
+    request({
+      url: '/tofly-lzd-data/data/modelSlice3d?importType=0',
+      method: 'POST'
+    })
+      .then((result) => {
+        if (result.code === 1) {
+          this.$message.success('场景缓存生成成功')
+          this.publishService()
+        }
+      })
+      .catch((err) => {
+        this.$message.error('场景缓存生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    制作场景缓存【正式库】
+   */
+  zsbuildModelTiles() {
+    request({
+      url: '/tofly-lzd-data/data/modelSlice3d?importType=1',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('场景缓存生成成功')
+          this.zspublishService()
+        }
+      })
+      .catch((err) => {
+        this.$message.error('场景缓存生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    发布服务【临时库】
+   */
+  publishService() {
+    request({
+      url: '/tofly-lzd-data/data/publishService?importType=0',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('服务发布成功')
+          this.addScene(result.result + '/realspace').then((layers) => {
+            this.$message.success('三维管线模型加载完成')
+          })
+        }
+      })
+      .catch((err) => {
+        this.$message.error('服务发布失败')
+        console.log(err)
+      })
+  }
+  /**
+    发布服务
+   */
+  zspublishService() {
+    request({
+      url: '/tofly-lzd-data/data/publishService?importType=1',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('服务发布成功')
+          this.addScene(result.result + '/realspace').then((layers) => {
+            this.$message.success('三维管线模型加载完成')
+          })
+        }
+      })
+      .catch((err) => {
+        this.$message.error('服务发布失败')
+        console.log(err)
+      })
+  }
+  addScene(url) {
+    //@ts-ignore
+    const viewer = window.viewer
+    return viewer.scene.open(url, undefined, {
+      autoSetView: false
+    })
+  }
+  /**
+   * 根据工程id删除数据
+   */
+  deleteData() {
+    if (!this.selectProjID) {
+      this.$message.success('请选择PBS结构树层级')
+      return
+    }
+    request({
+      url: '/tofly-lzd-data/data/deleteData/' + this.selectProjID + '?importType=1&id=' + this.selectProjID,
+      method: 'POST'
+    })
+      .then((result) => {
+        if (result.code === 1) {
+          this.$message.success('数据删除成功')
+        }
+      })
+      .catch((err) => {
+        this.$message.error('数据删除成功')
+        console.log(err)
+      })
+  }
+  OnlineAccess() {
+    this.dialogVisible = true
+    this.getlist()
+    this.getAreaInfo()
+    // const obj = await this.$PortApi.getAreaInfo_api();//公司名称
+    // this.prjOptions = obj.data.result;
+    // console.log(this.prjOptions, '公司名称');
+  }
+  /**
+   * 在线获取-项目公司列表信息
+   */
+  getAreaInfo() {
+    request({
+      url: '/tofly-sxgk/outpiper/getAreaInfo',
+      method: 'GET',
+      params: {}
+    }).then((result) => {
+      if (result.code !== 1) {
+        return
+      }
+      const list = [{ name: '全部', value: '' }]
+      result.result.forEach((item) => {
+        list.push({ name: item.name, value: item.name })
+      })
+      this.prjOptions = list
+    })
+  }
+  onPageChange(pagination) {
+    this.pagination = { ...this.pagination, ...pagination }
+    this.getlist()
+  }
+  /**
+   * 在线获取- 文件下载
+   */
+  downLoadFile(row) {
+    let filename = row.files[0].fileSourceName
+    let fileurl
+    if (row.files[0].localFileUrl != null) {
+      fileurl = row.files[0].localFileUrl
+      let url =
+        IP +
+        '/base/file/downloadFile?remotePath=' +
+        fileurl +
+        '&fileName=' +
+        filename +
+        '&access_token=' +
+        this.$store.getters.token
+      window.open(url, '_parent')
+    } else {
+      let id = row.files[0].id.toString()
+      request({
+        url: '/tofly-sxgk/pipepr/downloadRemote',
+        method: 'GET',
+        params: { fileIdsStr: id }
+      }).then((result) => {
+        if (result.code !== 1) return
+        if (result) {
+          fileurl = result.result[0].url
+          let url =
+            IP +
+            '/base/file/downloadFile?remotePath=' +
+            fileurl +
+            '&fileName=' +
+            filename +
+            '&access_token=' +
+            this.$store.getters.token
+          window.open(url, '_parent')
+        }
+      })
+    }
+  }
+  /**
+   * 获取图纸在线表单
+   */
+  getlist() {
+    let params = {
+      submitStatus: this.radio,
+      areaName: this.areaName,
+      proName: '',
+      queryPara: this.queryPara,
+      dataSource: this.radio2,
+      current: this.pagination.current,
+      size: this.pagination.size
+    }
+    request({
+      method: 'get',
+      url: '/tofly-sxgk/outpiper/page',
+      params: params
+    }).then((res) => {
+      //      pagesizes: [10, 25, 50, 100],
+      // pagesize: 10,
+      // currentPage: 1,
+      // totalNum: 0,
+      const { records, size, total, current } = res.result
+      //this.onlineRecords = records
+      this.pagination.size = size
+      this.pagination.current = current
+      this.pagination.total = total
+      let obj = {
+        2: '设计',
+        1: '普查',
+        3: '竣工'
+      }
+      const status = {
+        0: '已提交',
+        1: '未提交'
+      }
+      this.onlineRecords = records.map((item) => {
+        Object.keys(item).forEach((val) => (item[val] = item[val] || '暂无'))
+        return {
+          ...item,
+          dataSource: obj[item.dataSource],
+          submitStatus: status[item.submitStatus]
+        }
+      })
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.eluploadcontainer {
+  >>> .el-upload-list {
+    height: 100px;
+    border: 1px solid #dcdfe6;
+    margin-top: 10px;
+  }
+}
+.fullDialog{
+    >>> .el-dialog{
+      max-width: 100vw !important;
+      .el-dialog__body{
+        height:100%;
+      }
+    }
+}
+.content-body {
+  .el-table {
+    >>> th > .cell {
+      white-space: pre-line;
+    }
+    >>> .el-table__body {
+      td.el-table__cell {
+        padding: 0 !important;
+        height: 34px;
+      }
+    }
+  }
+}
+.content-footer {
+  width: 100%;
+  height: 55px;
+  line-height: 35px;
+  padding: 10px 20px;
+}
+</style>