Compare commits

...

4 Commits

5 changed files with 81 additions and 20 deletions

View File

@ -215,6 +215,16 @@ export function uploadTrack(data) {
})
}
// 上传测线轨迹
export function uploadLineTrack(data) {
return request({
url: '/sample/line/track/upload.htm',
method: 'post',
type: 'multipart/form-data',
data
})
}
// 批量导入下潜轨迹
export function uploadDiving(data) {
return request({

View File

@ -105,7 +105,7 @@
<div class="left4" v-if="radio == '航次'">
<div v-for="(item, index) in dataList" :key="index" class="left4_1" @click="turnDeatilPage(item)">
<div class="left4_top">
<p>{{ item.voyage_name }} <span class="mileage">{{ item.voyage_mileage }}海里</span></p>
<p :style="currentVoyage === item.tsy_id ? 'color: #409eff' : ''">{{ item.voyage_name }} <span class="mileage">{{ item.voyage_mileage }}海里</span></p>
<span class="org">{{ item.funding_org }}</span>
</div>
<div class="left4_list">
@ -221,6 +221,7 @@ export default {
job: '',
chooseStation: null,
chooseLine: null,
currentVoyage: null, //
//
CesiumHostAddr: ''
}
@ -389,7 +390,7 @@ export default {
res2.array.forEach(point => {
points.push(Number(point.nav_lon), Number(point.nav_lat))
})
this.drawLine(index, item.tsy_id, points)
this.drawLine(index, item.tsy_id, points, '航次航线')
//
item.points = points
})
@ -409,7 +410,7 @@ export default {
//
res.array.forEach(line => {
if (line.start_lon && line.start_lat && line.end_lon && line.end_lat) {
this.drawLine(index, line.tsy_id, [Number(line.start_lon), Number(line.start_lat), Number(line.end_lon), Number(line.end_lat)])
this.drawLine(index, line.tsy_id, [Number(line.start_lon), Number(line.start_lat), Number(line.end_lon), Number(line.end_lat)], '样品航线')
}
})
})
@ -435,7 +436,7 @@ export default {
res.array.forEach(point => {
points.push(Number(point.track_lon), Number(point.track_lat))
})
this.drawLine(index, item.tsy_id, points)
this.drawLine(index, item.tsy_id, points, '数据样品集航线')
//
item.points = points
})
@ -499,14 +500,17 @@ export default {
const pickedObject = this.viewer.scene.pick(click.position);
this.currenSample = pickedObject.id._id
const type = pickedObject.id._type
if (type === 'line') {
this.job = '测线作业'
} else {
if (type === 'point') {
this.job = '站位作业'
} else {
this.job = '测线作业'
}
this.onSample({
tsy_id: pickedObject.id._id
})
if (type === '航次航线') {
this.currentVoyage = pickedObject.id._id
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
//
@ -547,10 +551,10 @@ export default {
this.viewer.imageryLayers.addImageryProvider(shipline)
},
/* cesium 绘制线 */
drawLine(index, id, degreeArr) {
drawLine(index, id, degreeArr, type) {
this.viewer.entities.add({
id: id,
type: 'line',
type: type,
polyline: { //polyline线
positions: Cesium.Cartesian3.fromDegreesArray(degreeArr),//
clampToGround: true, //,

View File

@ -10,7 +10,7 @@
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="样品类型" prop="data_id">
<el-form-item label="数据样品类型" prop="data_id">
<el-select v-model="form.data_id" filterable placeholder="" :disabled="disabled" style="width: 100%;">
<el-option v-for="item in dataDicts" :key="item.tsy_id" :label="`${item.data_name}(${item.data_alias})`" :value="item.tsy_id"/>
</el-select>
@ -28,6 +28,18 @@
<el-divider></el-divider>
<div class="submit-box">
<template v-if="id">
<el-upload
style="margin-right: 10px;"
v-if="form.job_type === '测线作业'"
ref="upload"
action="action"
:multiple="false"
:show-file-list="false"
:http-request="uploadBpmn"
:before-upload="beforeUpload"
>
<el-button :loading="loading" type="primary">{{ btnText }}</el-button>
</el-upload>
<el-button type="primary" @click="onNext">修改样品数据集</el-button>
<el-button @click="onCopy">复制当前数据集</el-button>
<el-button @click="onList">查看数据样品条目</el-button>
@ -38,7 +50,7 @@
</template>
<script>
import { dataDict, sampleDatasetEdit } from '@/api/dataTransfer'
import { dataDict, sampleDatasetEdit, uploadLineTrack } from '@/api/dataTransfer'
export default {
name: 'Equipment',
data() {
@ -62,7 +74,9 @@ export default {
data_id: [
{ required: true, message: '此处为必填项', trigger: 'change' }
]
}
},
loading: false,
btnText: '上传测线轨迹'
}
},
computed: {
@ -128,6 +142,32 @@ export default {
this.$message.success('已创建新的数据集!')
})
}
},
beforeUpload(file) { //
const type = file.name.split('.')[1]
if (type !== 'txt') {
this.$message({ type: 'error', message: '只支持txt文件格式' })
return false
}
},
uploadBpmn(param) {
this.loading = true
this.btnText = '数据处理中'
const formData = new FormData()
formData.append('file', param.file)
formData.append('dataset_id', this.id)
uploadLineTrack(formData).then(res => {
if (res.errorCode === 0) {
this.loading = false
this.btnText = '上传测线轨迹'
this.$message.success('上传成功!')
this.$store.commit('SET_TRACK_NAME', res.entity)
this.getTrackInfo()
}
}).cache(() => {
this.loading = false
this.btnText = '上传测线轨迹'
})
}
}
}
@ -135,6 +175,8 @@ export default {
<style scoped>
.submit-box {
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
</style>

View File

@ -143,31 +143,31 @@
<el-row>
<el-col :span="8">
<el-form-item label="测线编号" prop="line_sn">
<el-input v-model="form.line_sn" />
<el-input v-model="form.line_sn" :disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="测线开始时间" prop="start_time">
<el-date-picker v-model="form.start_time" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;"/>
<el-date-picker :disabled="disabled" v-model="form.start_time" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="测线结束时间" prop="end_time">
<el-date-picker v-model="form.end_time" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;"/>
<el-date-picker :disabled="disabled" v-model="form.end_time" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="测线开始经度" prop="start_lon">
<el-input v-model="form.start_lon">
<el-input :disabled="disabled" v-model="form.start_lon">
<template slot="append">°</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="测线开始纬度" prop="start_lat">
<el-input v-model="form.start_lat">
<el-input :disabled="disabled" v-model="form.start_lat">
<template slot="append">°</template>
</el-input>
</el-form-item>
@ -176,14 +176,14 @@
<el-row>
<el-col :span="8">
<el-form-item label="测线结束经度" prop="end_lon">
<el-input v-model="form.end_lon">
<el-input :disabled="disabled" v-model="form.end_lon">
<template slot="append">°</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="测线结束纬度" prop="end_lat">
<el-input v-model="form.end_lat">
<el-input :disabled="disabled" v-model="form.end_lat">
<template slot="append">°</template>
</el-input>
</el-form-item>
@ -236,6 +236,8 @@ export default {
name: 'SampleList',
data() {
return {
//
disabled: false,
jobType: '站位作业',
loading: false,
//
@ -352,6 +354,7 @@ export default {
handleAdd() {
this.title = '新增'
this.open = true
this.disabled = false
},
//
handleEdit(row) {
@ -359,6 +362,7 @@ export default {
this.open = true
this.form = JSON.parse(JSON.stringify(row))
this.dynamicTags = this.form.funding_org.split('、')
this.disabled = this.form.track_file_name ? true : false
},
//
formatParams() {

View File

@ -24,6 +24,7 @@
:show-file-list="false"
:http-request="uploadReg"
:before-upload="beforeUploadReg"
accept=".xlsx"
>
<el-button :loading="loadingRegBtn">{{ textReg }}</el-button>
</el-upload>