|
|
@@ -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>
|