完成上传导航文件功能
This commit is contained in:
parent
55bdc8f06c
commit
d8ed778408
|
|
@ -234,3 +234,53 @@ export function uploadDataset(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询导航文件详细
|
||||
export function voyageRegNav(data) {
|
||||
return request({
|
||||
url: '/voyage/navigation/total.htm',
|
||||
method: 'post',
|
||||
type: 'application/x-www-form-urlencoded',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 上传导航文件
|
||||
export function uploadNavigation(data) {
|
||||
return request({
|
||||
url: '/voyage/navigation/upload.htm',
|
||||
method: 'post',
|
||||
type: 'multipart/form-data',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 参航人员列表
|
||||
export function voyageRegPeople(data) {
|
||||
return request({
|
||||
url: 'voyage/member/page.htm',
|
||||
method: 'post',
|
||||
type: 'application/x-www-form-urlencoded',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 参航人员删除
|
||||
export function voyageRegPeopleDelete(data) {
|
||||
return request({
|
||||
url: '/voyage/member/delete.htm',
|
||||
method: 'post',
|
||||
type: 'application/x-www-form-urlencoded',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 参航人员编辑
|
||||
export function voyageRegPeopleEdit(data) {
|
||||
return request({
|
||||
url: '/voyage/member/edit.htm',
|
||||
method: 'post',
|
||||
type: 'application/x-www-form-urlencoded',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,8 +12,7 @@
|
|||
<li><router-link to="/">样品发现</router-link></li>
|
||||
<li><router-link to="/">数据资源</router-link></li>
|
||||
<li><router-link to="/">在线服务</router-link></li>
|
||||
<li> <router-link to="/container/news">新闻动态</router-link>
|
||||
</li>
|
||||
<li><router-link to="/container/news">新闻动态</router-link></li>
|
||||
<li><router-link to="/">通知公告</router-link></li>
|
||||
<li><router-link to="/">联系我们</router-link></li>
|
||||
</ul>
|
||||
|
|
@ -50,22 +49,22 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dibu">
|
||||
<div class="dibu_1">
|
||||
<p>中国科学院深海科学与工程研究所.IDSSE</p>
|
||||
</div>
|
||||
<div class="dibu_2">
|
||||
<el-select v-model="value" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="dibu">-->
|
||||
<!-- <div class="dibu_1">-->
|
||||
<!-- <p>中国科学院深海科学与工程研究所.IDSSE</p>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="dibu_2">-->
|
||||
<!-- <el-select v-model="value" placeholder="请选择">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in options"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- >-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,15 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li v-show="isLogin" class="dropdown" v-for="(item,index) in adminMenu" :key="index">
|
||||
<li v-show="isLogin" class="dropdown" v-for="(item,index) in adminMenu" :key="'admin' + index">
|
||||
<a href="javascript:void(0);" @click="routerTurn(item.path)">{{item.name}}<img v-show="item.children.length" src="../../../static/images/arrow-down.png" alt=""></a>
|
||||
<ul class="sub-menu" v-show="item.children.length">
|
||||
<li v-for="(item1,index1) in item.children" :key="index1">
|
||||
<a href="javascript:void(0);" @click="routerTurn(item1.path)">{{item1.name}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown" v-for="(item,index) in aboutUs" :key="'us' + index">
|
||||
<a href="javascript:void(0);" @click="routerTurn(item.path)">{{item.name}}<img v-show="item.children.length" src="../../../static/images/arrow-down.png" alt=""></a>
|
||||
<ul class="sub-menu" v-show="item.children.length">
|
||||
<li v-for="(item1,index1) in item.children" :key="index1">
|
||||
|
|
@ -116,11 +124,6 @@ export default {
|
|||
children:[]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name:"关于我们",
|
||||
path:"",
|
||||
children:[]
|
||||
}
|
||||
],
|
||||
adminMenu: [
|
||||
|
|
@ -190,6 +193,11 @@ export default {
|
|||
]
|
||||
},
|
||||
],
|
||||
aboutUs: [{
|
||||
name:"关于我们",
|
||||
path:"",
|
||||
children:[]
|
||||
}],
|
||||
nowPathName: '',
|
||||
navShow:false,
|
||||
isLogin: false
|
||||
|
|
|
|||
|
|
@ -23,13 +23,19 @@
|
|||
<el-table-column prop="member_total" label="参航人数" />
|
||||
<el-table-column prop="funding_org" label="资助机构" />
|
||||
<el-table-column prop="funding_code" label="资助编号" />
|
||||
<el-table-column label="操作" width="120">
|
||||
<el-table-column label="操作" width="240">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip class="item" effect="dark" content="修改" placement="top-end">
|
||||
<el-button id="mod" size="mini" type="warning" class="el-icon-edit" @click="handleEdit(scope.row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="上传导航文件" placement="top-end">
|
||||
<el-button id="mod" size="mini" type="primary" class="el-icon-s-promotion" @click="handleUploadNav(scope.row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="上传参航人员" placement="top-end">
|
||||
<el-button id="mod" size="mini" type="info" class="el-icon-s-custom" @click="handlePeople(scope.row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="删除" placement="top-end">
|
||||
<el-button id="del" size="mini" type="danger" class="el-icon-delete" @click="handleDelete(scope.row)" style="margin-left: 0%;" />
|
||||
<el-button id="del" size="mini" type="danger" class="el-icon-delete" @click="handleDelete(scope.row)" />
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -170,11 +176,167 @@
|
|||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 上传导航文件弹窗-->
|
||||
<el-dialog title="航次导航信息" :visible.sync="openNav" :before-close="cancelNav" width="800px" append-to-body>
|
||||
<el-form ref="formNav" :model="formNav" label-width="100px">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="导航文件名称">
|
||||
<el-input v-model="formNav.navName" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="导航开始时间">
|
||||
<el-input v-model="formNav.startTime" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="导航结束时间">
|
||||
<el-input v-model="formNav.endTime" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="导航开始精度">
|
||||
<el-input v-model="formNav.startLon" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="导航开始纬度">
|
||||
<el-input v-model="formNav.startLat" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="导航结束经度">
|
||||
<el-input v-model="formNav.endLon" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="导航结束纬度">
|
||||
<el-input v-model="formNav.endLat" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
action="action"
|
||||
:multiple="false"
|
||||
:show-file-list="false"
|
||||
:http-request="uploadNav"
|
||||
:before-upload="beforeUploadNav"
|
||||
>
|
||||
<el-button :loading="loadingNav" type="primary">{{ textNav }}</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 上传参航人员-->
|
||||
<el-dialog title="参航人员信息" :visible.sync="openPeople" :before-close="cancelPeople" width="1000px" append-to-body>
|
||||
<el-card class="box-card" v-show="showForm" >
|
||||
<el-form ref="formPeople" :model="formPeople" :rules="rulesPeople" label-width="100px">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="人员姓名" prop="member_name">
|
||||
<el-input v-model="formPeople.member_name" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="人员性别" prop="member_sex">
|
||||
<el-select v-model="formPeople.member_sex" style="width: 100%">
|
||||
<el-option
|
||||
v-for="(item, index) in sexOptions"
|
||||
:key="index"
|
||||
:label="item"
|
||||
:value="item"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出生日期" prop="member_birthday">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="formPeople.member_birthday"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="date">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="所在单位" prop="member_unit">
|
||||
<el-input v-model="formPeople.member_unit" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="参航岗位" prop="member_dept">
|
||||
<el-input v-model="formPeople.member_dept" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="btn-bar">
|
||||
<el-button type="primary" @click="submitFormPeople">修改追加参航人员</el-button>
|
||||
<el-button @click="onHidden">隐藏详情</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-table v-loading="loadingPeople" stripe border :data="peopleList">
|
||||
<el-table-column type="index" label="#" width="50"/>
|
||||
<el-table-column prop="member_name" label="姓名" width="150" />
|
||||
<el-table-column prop="member_sex" label="性别" width="50" />
|
||||
<el-table-column prop="member_birthday" label="出生年月" width="100" />
|
||||
<el-table-column label="年龄" width="50">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatAge(scope.row.member_birthday) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="member_unit" label="单位" />
|
||||
<el-table-column prop="member_dept" label="岗位职责" width="120" />
|
||||
<el-table-column label="操作" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip class="item" effect="dark" content="修改" placement="top-end">
|
||||
<el-button id="mod" size="mini" type="warning" class="el-icon-edit" @click="handleEditPeople(scope.row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="删除" placement="top-end">
|
||||
<el-button id="del" size="mini" type="danger" class="el-icon-delete" @click="handleDeletePeople(scope.row)" />
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="pagination-box">
|
||||
<el-pagination
|
||||
background
|
||||
:page-sizes="[10, 20, 30]"
|
||||
:page-size="paramsPeople.limit"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="totalPeople"
|
||||
:current-page="pageNumPeople"
|
||||
@size-change="handleSizeChangePeople"
|
||||
@current-change="handleCurrentChangePeople"
|
||||
/>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { voyageRegList, voyageRegEdit, voyageRegDelete } from '@/api/dataTransfer'
|
||||
import {
|
||||
voyageRegList,
|
||||
voyageRegEdit,
|
||||
voyageRegDelete,
|
||||
voyageRegNav,
|
||||
uploadNavigation,
|
||||
voyageRegPeople,
|
||||
voyageRegPeopleDelete, voyageRegPeopleEdit
|
||||
} from '@/api/dataTransfer'
|
||||
import { time } from '@/utils/validate'
|
||||
|
||||
export default {
|
||||
|
|
@ -243,7 +405,36 @@ export default {
|
|||
inputValue1: '',
|
||||
dynamicTags2: [],
|
||||
inputVisible2: false,
|
||||
inputValue2: ''
|
||||
inputValue2: '',
|
||||
// 上传导航文件弹窗参数
|
||||
loadingNav: false,
|
||||
textNav: '上传导航文件',
|
||||
openNav: false,
|
||||
id: '',
|
||||
formNav: {
|
||||
navName: '',
|
||||
startLat: '',
|
||||
startLon: '',
|
||||
startTime: '',
|
||||
endLat: '',
|
||||
endLon: '',
|
||||
endTime: ''
|
||||
},
|
||||
// 上传参航人员弹窗参数
|
||||
loadingPeople: false,
|
||||
openPeople: false,
|
||||
peopleList: [],
|
||||
paramsPeople: {
|
||||
start: 0,
|
||||
limit: 10,
|
||||
group: 10
|
||||
},
|
||||
pageNumPeople: 1,
|
||||
totalPeople: 0,
|
||||
showForm: false,
|
||||
formPeople: {},
|
||||
rulesPeople: {},
|
||||
sexOptions: ['男', '女', '保密'],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -400,8 +591,142 @@ export default {
|
|||
this.inputVisible2 = false
|
||||
this.inputValue2 = ''
|
||||
}
|
||||
},
|
||||
// 上传导航文件
|
||||
handleUploadNav(row) {
|
||||
this.openNav = true
|
||||
this.id = row.tsy_id
|
||||
this.getNavDetail()
|
||||
this.formNav.navName = row.navigation_file_name
|
||||
},
|
||||
// 获取导航文件详情
|
||||
getNavDetail() {
|
||||
voyageRegNav({ voyage_id: this.id }).then(res => {
|
||||
this.formNav.startLat = res.map.start.nav_lat
|
||||
this.formNav.startLon = res.map.start.nav_lon
|
||||
this.formNav.startTime = res.map.start.nav_time
|
||||
this.formNav.endLat = res.map.end.nav_lat
|
||||
this.formNav.endLon = res.map.end.nav_lon
|
||||
this.formNav.endTime = res.map.end.nav_time
|
||||
})
|
||||
},
|
||||
cancelNav() {
|
||||
this.openNav = false
|
||||
this.formNav.navName = ''
|
||||
this.formNav.startLat = ''
|
||||
this.formNav.startLon = ''
|
||||
this.formNav.startTime = ''
|
||||
this.formNav.endLat = ''
|
||||
this.formNav.endLon = ''
|
||||
this.formNav.endTime = ''
|
||||
this.getData()
|
||||
},
|
||||
beforeUploadNav(file) { // 上传文件之前钩子
|
||||
const type = file.name.split('.')[1]
|
||||
if (type !== 'txt') {
|
||||
this.$message({ type: 'error', message: '只支持txt文件格式!' })
|
||||
return false
|
||||
}
|
||||
},
|
||||
uploadNav(param) {
|
||||
this.loadingNav = true
|
||||
this.textNav = '数据处理中'
|
||||
const formData = new FormData()
|
||||
this.formNav.navName = param.file.name
|
||||
formData.append('file', param.file)
|
||||
formData.append('voyage_id', this.id)
|
||||
uploadNavigation(formData).then(res => {
|
||||
if (res.errorCode === 0) {
|
||||
this.loadingNav = false
|
||||
this.textNav = '上传导航文件'
|
||||
this.$message.success('导入成功!')
|
||||
this.getNavDetail()
|
||||
}
|
||||
}).cache(() => {
|
||||
this.loadingNav = false
|
||||
this.btnText = '上传导航文件'
|
||||
})
|
||||
},
|
||||
// 上传参航人员
|
||||
handlePeople(row) {
|
||||
this.openPeople = true
|
||||
this.id = row.tsy_id
|
||||
this.getPeopleList()
|
||||
},
|
||||
getPeopleList() {
|
||||
this.loadingPeople = true
|
||||
voyageRegPeople({
|
||||
...this.paramsPeople,
|
||||
voyage_id: this.id
|
||||
}).then(res => {
|
||||
this.peopleList = res.page.records
|
||||
this.totalPeople = Number(res.page.total)
|
||||
this.loadingPeople = false
|
||||
})
|
||||
},
|
||||
handleCurrentChangePeople(val) {
|
||||
this.pageNumPeople = val
|
||||
this.paramsPeople.start = val * this.paramsPeople.limit - this.paramsPeople.limit
|
||||
this.getPeopleList()
|
||||
},
|
||||
handleSizeChangePeople(val) {
|
||||
this.paramsPeople.limit = val
|
||||
this.getPeopleList()
|
||||
},
|
||||
formatAge(birthDateString) {
|
||||
if (birthDateString) {
|
||||
const today = new Date()
|
||||
const birthDate = new Date(birthDateString)
|
||||
let age = today.getFullYear() - birthDate.getFullYear()
|
||||
// 检查是否已过今年的生日
|
||||
const m = today.getMonth() - birthDate.getMonth()
|
||||
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
|
||||
age--
|
||||
}
|
||||
return age
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
cancelPeople() {
|
||||
this.openPeople = false
|
||||
this.onHidden()
|
||||
},
|
||||
handleEditPeople(row) {
|
||||
this.showForm = true
|
||||
this.formPeople = JSON.parse(JSON.stringify(row))
|
||||
},
|
||||
submitFormPeople() {
|
||||
voyageRegPeopleEdit(this.formPeople).then(res => {
|
||||
this.$message.success('修改成功!')
|
||||
this.onHidden()
|
||||
this.getPeopleList()
|
||||
})
|
||||
},
|
||||
onHidden() {
|
||||
this.showForm = false
|
||||
this.formPeople = {
|
||||
member_name: '',
|
||||
member_sex: '',
|
||||
member_birthday: '',
|
||||
member_unit: '',
|
||||
member_dept: ''
|
||||
}
|
||||
this.$refs['formPeople'].resetFields()
|
||||
},
|
||||
handleDeletePeople(row) {
|
||||
this.$confirm('确定要删除该参航人员吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
voyageRegPeopleDelete({ member_id: row.tsy_id }).then(() => {
|
||||
this.$message.success('删除成功!')
|
||||
this.getPeopleList()
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
dynamicTags2(arr) {
|
||||
if (arr.length) {
|
||||
|
|
@ -431,5 +756,12 @@ export default {
|
|||
margin-left: 10px;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.box-card {
|
||||
margin-bottom: 20px;
|
||||
.btn-bar {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue