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) { export function uploadDiving(data) {
return request({ return request({

View File

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

View File

@ -10,7 +10,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16"> <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-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-option v-for="item in dataDicts" :key="item.tsy_id" :label="`${item.data_name}(${item.data_alias})`" :value="item.tsy_id"/>
</el-select> </el-select>
@ -28,6 +28,18 @@
<el-divider></el-divider> <el-divider></el-divider>
<div class="submit-box"> <div class="submit-box">
<template v-if="id"> <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 type="primary" @click="onNext">修改样品数据集</el-button>
<el-button @click="onCopy">复制当前数据集</el-button> <el-button @click="onCopy">复制当前数据集</el-button>
<el-button @click="onList">查看数据样品条目</el-button> <el-button @click="onList">查看数据样品条目</el-button>
@ -38,7 +50,7 @@
</template> </template>
<script> <script>
import { dataDict, sampleDatasetEdit } from '@/api/dataTransfer' import { dataDict, sampleDatasetEdit, uploadLineTrack } from '@/api/dataTransfer'
export default { export default {
name: 'Equipment', name: 'Equipment',
data() { data() {
@ -62,7 +74,9 @@ export default {
data_id: [ data_id: [
{ required: true, message: '此处为必填项', trigger: 'change' } { required: true, message: '此处为必填项', trigger: 'change' }
] ]
} },
loading: false,
btnText: '上传测线轨迹'
} }
}, },
computed: { computed: {
@ -128,6 +142,32 @@ export default {
this.$message.success('已创建新的数据集!') 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> <style scoped>
.submit-box { .submit-box {
text-align: center; display: flex;
justify-content: center;
align-items: center;
} }
</style> </style>

View File

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

View File

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