李顺 преди 3 години
родител
ревизия
d7000b0019
променени са 1 файла, в които са добавени 289 реда и са изтрити 0 реда
  1. 289 0
      src/views/OnlineImport/widgets/DataImport/widget.vue

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

@@ -0,0 +1,289 @@
+<template>
+  <div>
+    <el-form ref='addForm' :model="impForm" size="mini">
+      <el-form-item label="项目工程" prop="prjName" class="impForm" :rules="addRules">
+        <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="图纸名称" prop="paperName">
+        <el-input v-model="impForm.paperName"></el-input>
+      </el-form-item>
+      <!-- <el-form-item label="资料提供单位" prop="paperUnit">
+        <el-input v-model="impForm.paperUnit"></el-input>
+      </el-form-item>
+      <el-form-item label="资料提供人" prop="paperPerson">
+        <el-input v-model="impForm.paperPerson"></el-input>
+      </el-form-item> -->
+      <el-form-item label="成果表">
+        <el-upload 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 size="small" type="primary">点击上传</el-button>
+        </el-upload>
+      </el-form-item>
+      <el-form-item label="数据来源" prop="origin">
+        <el-select v-model="impForm.origin" style="width:100%">
+          <el-option label="本地导入" value="local"></el-option>
+          <el-option label="管线宝导入" value="gxbao"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="buildDatasets">一:生成数据集</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="pbsInfo">二:生成PBS工程信息</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="buildYSNetwork">三:重建雨水三维网络</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="buildWSNetwork">四:重建污水三维网络</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="buildModelTiles">五:模型切片</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="uploadTiles">六:上传切片</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" style="width:100%" @click="publishService">七:发布服务</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script lang='ts'>
+/**
+ *@description 该功能为管网数据在线入库
+ *@author lishun <876330731@qq.com>
+ */
+import { Vue, Prop, Watch, Component } from 'vue-property-decorator'
+import request from '@/utils/request'
+@Component({
+  name: 'DataImport',
+  components: {}
+})
+export default class DataImport extends Vue {
+  impForm = {
+    prjName: '',
+    stage: '',
+    paperName: '',
+    paperUnit: '',
+    paperPerson: '',
+    origin: ''
+  }
+  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' }]
+  }
+  /**
+   * 上传文件
+   */
+  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) {
+    debugger
+    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
+    }
+  }
+  onExceed(files, fileList) {
+    this.$message.warning(
+      `当前限制选择 2 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`
+    )
+  }
+  /**
+  导入excel表,创建二三维数据集  
+   */
+  buildDatasets() {
+    if (this.files.length === 0) {
+      this.$message.warning('请上传管网数据表')
+      return
+    }
+    const formdata = new FormData()
+    this.files.forEach((item) => {
+      formdata.append('files', item)
+    })
+    request({
+      url: '/tofly-lzd-data/data/import',
+      method: 'POST',
+      data: formdata
+    })
+      .then((result) => {
+        console.log(result)
+      })
+      .catch((err) => {
+        this.$message.error('导入excel出错')
+        console.log(err)
+      })
+  }
+  /**
+  生成PBS工程信息
+   */
+  pbsInfo() {
+    request({
+      url: '/tofly-lzd-data/data/designPbsProjectManager/675',
+      method: 'POST',
+      data: { id: 675 }
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('PBS工程信息生成成功')
+        }
+      })
+      .catch((err) => {
+        this.$message.error('PBS工程信息生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    重建YS三维网络
+   */
+  buildYSNetwork() {
+    request({
+      url: '/tofly-lzd-data/data/createNetwork',
+      method: 'POST',
+      data:{
+        dataSetPointName: "TF_SJ_PSYS_NODE_B_3D",
+        dataSetLineName: "TF_SJ_PSYS_PIPE_B_3D"
+      }
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('雨水三维网络生成成功')
+        }
+      })
+      .catch((err) => {
+        this.$message.error('雨水三维网络生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    重建YS三维网络
+   */
+  buildWSNetwork() {
+    request({
+      url: '/tofly-lzd-data/data/createNetwork',
+      method: 'POST',
+      data:{
+        dataSetPointName: "TF_SJ_PSWS_NODE_B_3D",
+        dataSetLineName: "TF_SJ_PSWS_PIPE_B_3D"
+      }
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('污水三维网络生成成功')
+        }
+      })
+      .catch((err) => {
+        this.$message.error('污水三维网络生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    制作场景缓存
+   */
+  buildModelTiles() {
+    request({
+      url: '/tofly-lzd-data/data/modelSlice3d',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('场景缓存生成成功')
+        }
+      })
+      .catch((err) => {
+        this.$message.error('场景缓存生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    上传切片文件
+   */
+  uploadTiles() {
+    request({
+      url: '/tofly-lzd-data/data/uploadFile',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('上传场景缓存生成成功')
+        }
+      })
+      .catch((err) => {
+        this.$message.error('上传场景缓存生成失败')
+        console.log(err)
+      })
+  }
+  /**
+    发布服务
+   */
+  publishService() {
+    request({
+      url: '/tofly-lzd-data/data/publishService',
+      method: 'POST'
+    })
+      .then((result) => {
+        console.log(result)
+        if (result.code === 1) {
+          this.$message.success('服务发布成功,服务地址为:'+result.result);
+        }
+      })
+      .catch((err) => {
+        this.$message.error('服务发布失败')
+        console.log(err)
+      })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+</style>