2025/4/23提交

This commit is contained in:
2025-04-23 13:48:08 +08:00
parent 7abae14113
commit d643188f67
13 changed files with 622 additions and 218 deletions

View File

@ -17,7 +17,8 @@ module.exports = merge(prodEnv, {
// VUE_APP_API_URL: '"http://10.10.150.237/"' // VUE_APP_API_URL: '"http://10.10.150.237/"'
VUE_APP_BASE_API: '"/api"', VUE_APP_BASE_API: '"/api"',
VUE_APP_BASE_APIURL: '"http://ds2.hzzxq.com/api2"', // VUE_APP_BASE_APIURL: '"http://ds2.hzzxq.com/api2"',
VUE_APP_BASE_APIURL: '"http://crm.hzzxq.com/ds"',
VUE_APP_FULL_API: '"http://10.10.151.5:5555"', VUE_APP_FULL_API: '"http://10.10.151.5:5555"',
VUE_APP_BASE_API_FRONT: '"http://10.10.150.128:8080/satellitePub/pub/index.html"', VUE_APP_BASE_API_FRONT: '"http://10.10.150.128:8080/satellitePub/pub/index.html"',
VUE_APP_FILE_API: '"http://10.10.151.5:5555/archives"', VUE_APP_FILE_API: '"http://10.10.151.5:5555/archives"',

View File

@ -15,7 +15,8 @@ module.exports = {
// target: 'http://120.48.105.88', // 线上 // target: 'http://120.48.105.88', // 线上
// target: 'http://10.0.90.70', // 测试环境 // target: 'http://10.0.90.70', // 测试环境
// target: 'http://1.95.42.191:8080', // 测试环境 // target: 'http://1.95.42.191:8080', // 测试环境
target: 'http://ds2.hzzxq.com/api2', // 测试环境 // target: 'http://ds2.hzzxq.com/api2', // 测试环境
target: 'http://crm.hzzxq.com/ds', // 测试环境
changeOrigin: true, // 是否跨域 changeOrigin: true, // 是否跨域
secure: false, // 是否使用https secure: false, // 是否使用https
pathRewrite: { pathRewrite: {

View File

@ -159,3 +159,45 @@ export function dictShareDelete(data) {
data data
}) })
} }
/* ********************************* 资助机构字典接口 **************************************/
// 资助机构字典列表
export function fundingList(data) {
return request({
url: '/dict/funding/page.htm',
method: 'post',
type: 'application/x-www-form-urlencoded',
data
})
}
// 资助机构所有数据
export function fundingAll(data) {
return request({
url: '/dict/funding/all.htm',
method: 'post',
type: 'application/x-www-form-urlencoded',
data
})
}
// 资助机构字典新增编辑
export function fundingEdit(data) {
return request({
url: '/dict/funding/edit.htm',
method: 'post',
type: 'application/x-www-form-urlencoded',
data
})
}
// 资助机构字典删除
export function fundingDelete(data) {
return request({
url: '/dict/funding/delete.htm',
method: 'post',
type: 'application/x-www-form-urlencoded',
data
})
}

View File

@ -1,25 +1,26 @@
<template> <template>
<div class="footer"> <div class="footer">
<div class="footer_con"> <div class="footer_con">
<div class="footer_left"> <!-- <div class="footer_left">-->
<div class="left_top"> <!-- <div class="left_top">-->
<a href="###">网站地图</a> <!-- <a href="###">网站地图</a>-->
</div> <!-- </div>-->
<div class="left_list"> <!-- <div class="left_list">-->
<ul> <!-- <ul>-->
<li><router-link to="/">首页</router-link></li> <!-- <li><router-link to="/">首页</router-link></li>-->
<!-- <li><router-link to="/">样品发现</router-link></li>--> <!--&lt;!&ndash; <li><router-link to="/">样品发现</router-link></li>&ndash;&gt;-->
<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="/">在线服务</router-link></li>-->
<!-- <li><router-link to="/container/news">新闻动态</router-link></li>--> <!--&lt;!&ndash; <li><router-link to="/container/news">新闻动态</router-link></li>&ndash;&gt;-->
<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="/">联系我们</router-link></li>-->
</ul> <!-- </ul>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="footer_right"> <div class="footer_right">
<div class="right_top"> <div class="right_top">
<img src="../../../static/images/logo_map.png" alt="">
<p>中国科学院深海科学与工程研究所</p> <p>中国科学院深海科学与工程研究所</p>
</div> </div>
<div class="right_list"> <div class="right_list">
@ -27,7 +28,7 @@
<div class="img"> <div class="img">
<img src="../../../static/images/lianxi.png" alt="" /> <img src="../../../static/images/lianxi.png" alt="" />
</div> </div>
<p>联系方式Email:office@idsse.ac.cn</p> <p>联系方式chencx@idsse.ac.cn</p>
</div> </div>
<div class="list1"> <div class="list1">
@ -44,9 +45,9 @@
<p>邮编572000</p> <p>邮编572000</p>
</div> </div>
</div> </div>
<div class="more"> <!-- <div class="more">-->
<a href="/">更多 ></a> <!-- <a href="/">更多 ></a>-->
</div> <!-- </div>-->
</div> </div>
</div> </div>
<!-- <div class="dibu">--> <!-- <div class="dibu">-->
@ -101,7 +102,7 @@ export default {
height: auto; height: auto;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: center;
.footer_left{ .footer_left{
width: 450px; width: 450px;
height: 140px; height: 140px;
@ -142,13 +143,20 @@ export default {
.footer_right{ .footer_right{
padding-left: 50px; padding-left: 50px;
width: 720px; width: 720px;
height: 140px; height: 80px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.right_top{ .right_top{
display: flex;
align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
width: 100%; width: 100%;
height: auto; height: auto;
img {
width: 30px;
height: 30px;
margin-right: 10px;
}
p{ p{
font-size: 18px; font-size: 18px;
color: #fff; color: #fff;

View File

@ -83,48 +83,53 @@ export default {
path:"home", path:"home",
children:[] children:[]
}, },
{
name:"数据检索",
path:"",
children:[
{ {
name:"数据检索", name:"数据检索",
path:"dataSearch", path:"dataSearch",
children:[] children:[]
}, },
// { // {
// name:"", // name:"",
// path:"voyagedetail", // path:"",
// children:[
// {
// name:"",
// path:"dataSearch",
// children:[] // children:[]
// } // },
] // // {
}, // // name:"",
// // path:"voyagedetail",
// // children:[]
// // }
// ]
// },
{ {
name:"统计分析", name:"统计分析",
path:"analyse", path:"analyse",
children:[] children:[]
}, },
{ // {
name:"数据资源", // name:"",
path:"", // path:"",
children:[ // children:[
{ // {
name:"海洋地球物理与物理海洋信息库", // name:"",
path:"physicalIndex", // path:"physicalIndex",
children:[] // children:[]
}, // },
{ // {
name:"海洋生物样品信息库", // name:"",
path:"biologyIndex", // path:"biologyIndex",
children:[] // children:[]
}, // },
{ // {
name:"深海海洋视频音像信息库", // name:"",
path:"phoneVideoIndex", // path:"phoneVideoIndex",
children:[] // children:[]
} // }
] // ]
} // }
], ],
adminMenu: [ adminMenu: [
{ {
@ -170,6 +175,11 @@ export default {
path:"sharedUnit", path:"sharedUnit",
children:[] children:[]
}, },
{
name:"资助机构",
path:"fundingAgencies",
children:[]
},
] ]
}, },
{ {
@ -195,7 +205,7 @@ export default {
], ],
aboutUs: [{ aboutUs: [{
name:"关于我们", name:"关于我们",
path:"", path:"AboutUs",
children:[] children:[]
}], }],
nowPathName: '', nowPathName: '',

View File

@ -148,6 +148,16 @@ export const constantRoutes = [
loginAuthority: true loginAuthority: true
} }
}, },
{
path: 'fundingAgencies',
name: 'fundingAgencies',
component: () => import('@/views/dicManage/fundingAgencies.vue'),
meta: {
title: '资助机构',
icon: 'peoples',
loginAuthority: true
}
},
{ {
path: 'visitorUnit', path: 'visitorUnit',
name: 'visitorUnit', name: 'visitorUnit',
@ -328,6 +338,16 @@ export const constantRoutes = [
loginAuthority: true loginAuthority: true
} }
}, },
{
path: 'AboutUs',
name: 'AboutUs',
component: () => import('@/views/aboutUs.vue'),
meta: {
title: '关于我们',
icon: 'peoples',
loginAuthority: true
}
},
{ {
path: 'login', path: 'login',
name: 'login', name: 'login',

61
src/views/aboutUs.vue Normal file
View File

@ -0,0 +1,61 @@
<template>
<div class="aboutUs">
<div class="banner">
<p class="bold">关于我们</p>
<p>团队成员主要由海洋地球物理学家软件工程师和数据管理员构成隶属于中国科学院深海科学与工程研究所开展船潜载地球物理数据处理和深海数据系统信息化工具开发的应用基础研究服务支撑fundingOptions深海深渊科考深海考古等国家重大需求</p>
<p class="bold">团队组成</p>
<p><span class="fw-700">陈传绪</span>团队负责人船潜载地球物理数据处理算法开发DSDS架构总设计</p>
<p class="fw-700">* DSDSDeep-Sea Data System</p>
<p><span class="fw-700">邹小珊</span>软件工程师负责 C/S 框架客户端软件和信息化工具开发</p>
<p><span class="fw-700">黄云明</span>软件工程师负责 B/S 框架航次潜次数据门户及应用开发</p>
<p><span class="fw-700">冯万丽</span>数据管理员负责航次和潜次数据预处理清洁规范化归档入库</p>
<p class="fw-700">* OUGPOnboard-Underwater Geophysics Processing</p>
<p><span class="fw-700">张汉羽</span>地球物理船潜载地球物理数据处理算法开发分布式光纤传感方向负责人</p>
<p><span class="fw-700">谢欣彤</span>地球物理船潜载地球物理数据处理和三维可视化</p>
<p><span class="fw-700">李栋</span>地球物理海底地震仪数据处理成像</p>
<p><span class="fw-700">廖佩铃</span>地球物理船潜载声学探测数据处理和成像</p>
<p><span class="fw-700">常瀚文</span>信息安全软件开发和数据安全</p>
<p class="bold">联系我们</p>
<p><span class="fw-700">陈传绪</span>chencx@idsse.ac.cn</p>
<p><span class="fw-700">张汉羽</span>zhanghy@idsse.ac.cn</p>
</div>
</div>
</template>
<script>
export default {
name: 'AboutUs',
}
</script>
<style lang="scss" scoped>
.aboutUs {
width: 100%;
background-image: url(../../static/images/banner_index.jpg);
background-size: 100% 100%;
display: flex;
justify-content: center;
}
.banner {
width: 1200px;
color: #ffffff;
padding: 100px 0;
font-size: 20px;
}
.bold {
text-align: center;
font-weight: bold;
margin: 40px 0 10px;
font-size: 30px;
}
p {
margin-bottom: 10px;
line-height: 50px;
}
.fw-700 {
font-weight: 700;
}
</style>

View File

@ -216,6 +216,14 @@ export default {
mounted() { mounted() {
this.getecharts() this.getecharts()
this.gettubiao2() this.gettubiao2()
const originShadow = Element.prototype.attachShadow;
Element.prototype.attachShadow = (...args) => {
const shadowRoot = originShadow.call(this, ...args)
const style = document.createElement("style")
style.innerHTML = "div { display: none !important; }"
shadowRoot.appendChild(style)
return shadowRoot
};
}, },
methods: { methods: {
getecharts() { getecharts() {

View File

@ -60,7 +60,7 @@
</div> </div>
<div class="list"> <div class="list">
<!-- 数据样品类型--> <!-- 数据样品类型-->
<el-table v-if="currentTab == '数据样品类型'" stripe :data="datasetArray" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }"> <el-table v-if="currentTab == '数据样品类型'" stripe :data="datasetArray" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'left' }" :cell-style="{ textAlign: 'left' }">
<el-table-column prop="dataset_name" label="数据集名称"/> <el-table-column prop="dataset_name" label="数据集名称"/>
<el-table-column prop="platform_type" label="平台类型" /> <el-table-column prop="platform_type" label="平台类型" />
<el-table-column prop="equipment_type" label="设备类型" /> <el-table-column prop="equipment_type" label="设备类型" />
@ -68,13 +68,13 @@
<el-table-column prop="job_type" label="作业类型" /> <el-table-column prop="job_type" label="作业类型" />
</el-table> </el-table>
<!-- 设备类型--> <!-- 设备类型-->
<el-table v-if="currentTab == '设备类型'" stripe :data="equipmentArray" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }"> <el-table v-if="currentTab == '设备类型'" stripe :data="equipmentArray" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'left' }" :cell-style="{ textAlign: 'left' }">
<el-table-column prop="equipment_type" label="设备类型" /> <el-table-column prop="equipment_type" label="设备类型" />
<el-table-column prop="equipment_alias" label="简称" /> <el-table-column prop="equipment_alias" label="简称" />
<el-table-column prop="equipment_total" label="频次" /> <el-table-column prop="equipment_total" label="频次" />
</el-table> </el-table>
<!-- 参航人员--> <!-- 参航人员-->
<el-table v-if="currentTab == '参航人员'" stripe :data="memberArray" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }"> <el-table v-if="currentTab == '参航人员'" stripe :data="memberArray" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'left' }" :cell-style="{ textAlign: 'left' }">
<el-table-column prop="member_name" label="参航人员" /> <el-table-column prop="member_name" label="参航人员" />
<el-table-column prop="member_unit" label="单位" /> <el-table-column prop="member_unit" label="单位" />
<el-table-column prop="member_birthday" label="出生日期" /> <el-table-column prop="member_birthday" label="出生日期" />

View File

@ -26,20 +26,12 @@
</el-radio-group> </el-radio-group>
</div> </div>
<div class="left4" v-if="radio == '数据样品集'"> <div class="left4" v-if="radio == '数据样品集'">
<div v-for="(item, index) in dataList" :key="index" :id="item.tsy_id" class="left4_1" @click="openList(item, 'list')"> <div v-for="(item, index) in dataList" :key="index" :id="item.tsy_id" class="left4_1" >
<div class="left4_top">
<p :style="currentSample === item.tsy_id ? 'color: #409eff' : ''">{{ item.dataset_name }} <span class="mileage">{{ item.file_total }}</span></p>
<span class="org">{{ item.create_time }}</span>
</div>
<ul v-show="currenId == item.tsy_id && fold">
<li :class="sample.tsy_id == currenSample ? 'bg-color' : ''" class="sample" :id="sample.tsy_id"
v-for="(sample, i) in item.sampleArray" :key="i" @click.stop="onSample(sample)">{{ sample.sample_name }}
</li>
</ul>
<div class="left4_list"> <div class="left4_list">
<div class="list1"> <div class="list1">
<p>航次</p> <p>航次</p>
<span>{{ item.voyage_name }}</span> <span class="hover-color" @click="turnDeatilPage(item)">{{ item.voyage_name }}</span>
</div> </div>
<div class="list1"> <div class="list1">
<p>平台类型</p> <p>平台类型</p>
@ -63,7 +55,7 @@
<div class="list1"> <div class="list1">
<p>数据样品类型</p> <p>数据样品类型</p>
<span>{{ item.data_type }}</span> <span style="font-weight: bold">{{ item.data_type }}</span>
</div> </div>
<div class="list1"> <div class="list1">
@ -72,10 +64,22 @@
</div> </div>
</div> </div>
<div class="left4_top">
<p @click="openList(item, 'list')" style="font-weight: 400;font-size: 14px;cursor: pointer" :style="currentSample === item.tsy_id ? 'color: #409eff' : ''">{{ item.dataset_name }} <span class="mileage">{{ item.file_total }}</span></p>
<span class="org">{{ item.create_time }}</span>
</div> </div>
<ul v-show="currenId == item.tsy_id && fold">
<li :class="sample.tsy_id == currenSample ? 'bg-color' : ''" class="sample" :id="sample.tsy_id"
v-for="(sample, i) in item.sampleArray" :key="i" @click.stop="onSample(sample)">{{ sample.sample_name }}
</li>
</ul>
</div>
</div> </div>
<div class="left4" v-if="radio == '航次'"> <div class="left4" v-if="radio == '航次'">
<div v-for="(item, index) in dataList" :key="index" class="left4_1" :id="item.tsy_id" @click="turnDeatilPage(item)"> <div v-for="(item, index) in dataList" :key="index" class="left4_1" style="cursor: pointer" :id="item.tsy_id" @click="turnDeatilPage(item)">
<div class="left4_top"> <div class="left4_top">
<p :style="currentVoyage === item.tsy_id ? 'color: #409eff' : ''">{{ item.voyage_name }} <span <p :style="currentVoyage === item.tsy_id ? 'color: #409eff' : ''">{{ item.voyage_name }} <span
class="mileage">{{ item.voyage_mileage }}海里</span></p> class="mileage">{{ item.voyage_mileage }}海里</span></p>
@ -217,15 +221,15 @@ export default {
disabled: false disabled: false
}, },
{ {
label: '数据样品类型', label: '航次首席'
disabled: false
}, },
{ {
label: '数据集名称' label: '数据集名称'
}, },
{ {
label: '航次首席' label: '数据样品类型',
} disabled: false
},
], ],
searchTypeValue: '航次名称', searchTypeValue: '航次名称',
radio: '航次', radio: '航次',
@ -425,6 +429,7 @@ export default {
}, },
// //
getVoyagePoints(arr) { getVoyagePoints(arr) {
if (!arr.length) return false
const voyageList = arr const voyageList = arr
voyageList.map((item, index) => { voyageList.map((item, index) => {
// //
@ -434,7 +439,11 @@ export default {
// //
const points = [] const points = []
res2.array.forEach(point => { res2.array.forEach(point => {
points.push(Number(point.nav_lon), Number(point.nav_lat)) const lon = Number(point.nav_lon)
const lat = Number(point.nav_lat)
if (lon && lat) {
points.push(lon, lat)
}
}) })
this.drawLine(index, item.tsy_id, points, '航次航线') this.drawLine(index, item.tsy_id, points, '航次航线')
// //
@ -445,6 +454,7 @@ export default {
}, },
// //
getDataPoints(arr) { getDataPoints(arr) {
if (!arr.length) return false
const voyageList = arr const voyageList = arr
voyageList.map((item, index) => { voyageList.map((item, index) => {
if (item.job_type == '测线作业') { if (item.job_type == '测线作业') {
@ -453,12 +463,18 @@ export default {
dataset_id: item.tsy_id dataset_id: item.tsy_id
}).then(res => { }).then(res => {
item.sampleArray = res.array item.sampleArray = res.array
if (res.array.length) {
// //
res.array.forEach(line => { res.array.forEach(line => {
if (line.start_lon && line.start_lat && line.end_lon && line.end_lat) { const start_lon = Number(line.start_lon)
this.drawLine(index, line.tsy_id, [Number(line.start_lon), Number(line.start_lat), Number(line.end_lon), Number(line.end_lat)], '样品航线') const start_lat = Number(line.start_lat)
const end_lon = Number(line.end_lon)
const end_lat = Number(line.end_lat)
if (start_lon && start_lat && end_lon && end_lat) {
this.drawLine(index, line.tsy_id, [start_lon, start_lat, end_lon, end_lat], '样品航线')
} }
}) })
}
}) })
} }
if (item.job_type == '站位作业') { if (item.job_type == '站位作业') {
@ -468,27 +484,38 @@ export default {
}).then(res => { }).then(res => {
item.sampleArray = res.array item.sampleArray = res.array
// //
if (res.array.length) {
res.array.forEach(point => { res.array.forEach(point => {
this.setPoint(point.tsy_id, [Number(point.sampling_lon), Number(point.sampling_lat)]) const lon = Number(point.sampling_lon)
const lat = Number(point.sampling_lat)
if (lon && lat) {
this.setPoint(point.tsy_id, [lon, lat])
}
}) })
}
}) })
} }
// //
dataPoints({ dataPoints({
dataset_id: item.tsy_id dataset_id: item.tsy_id
}).then(res => { }).then(res => {
if (res.array.length) {
// //
const points = [] const points = []
res.array.forEach(point => { res.array.forEach(point => {
points.push(Number(point.track_lon), Number(point.track_lat)) const lon = Number(point.track_lon)
const lat = Number(point.track_lat)
if (lon && lat) {
points.push(lon, lat)
}
}) })
this.drawLine(index, item.tsy_id, points, '数据样品集航线') this.drawLine(index, item.tsy_id, points, '数据样品集航线')
// //
item.points = points item.points = points
}
}) })
}) })
this.dataList = voyageList this.dataList = voyageList
console.log(this.dataList)
}, },
// cesium // cesium
@ -630,11 +657,12 @@ export default {
} }
}) })
// RangeError: Invalid array length // RangeError: Invalid array length
if (degreeArr.length > 1) if (degreeArr.length > 1) {
this.viewer.camera.setView({ this.viewer.camera.setView({
// //
destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1]) destination: Cesium.Cartesian3.fromDegrees(degreeArr[0], degreeArr[1])
}) })
}
this.autoZoom() this.autoZoom()
}, },
// //
@ -841,7 +869,7 @@ export default {
width: 100%; width: 100%;
height: auto; height: auto;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
cursor: pointer; cursor: default;
&:hover { &:hover {
.left4_top { .left4_top {
@ -883,6 +911,7 @@ export default {
font-size: 14px; font-size: 14px;
color: #555555; color: #555555;
position: relative; position: relative;
cursor: pointer;
&::before { &::before {
content: ""; content: "";
@ -1004,6 +1033,11 @@ export default {
} }
} }
} }
.hover-color:hover {
color: #409eff !important;
cursor: pointer;
}
</style> </style>
<style> <style>
.left3_1 .el-radio { .left3_1 .el-radio {
@ -1029,4 +1063,5 @@ export default {
color: #fff; color: #fff;
background: none !important; background: none !important;
} }
</style> </style>

View File

@ -140,26 +140,15 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="航次资助机构"> <el-form-item label="航次资助机构" prop="funding_org">
<el-tag <el-select v-model="form.funding_org" multiple style="width: 100%">
:key="tag" <el-option
v-for="tag in dynamicTags1" v-for="item in fundingOptions"
closable :key="item.tsy_id"
:disable-transitions="false" :label="item.funding_name"
@close="handleClose(1, tag)"> :value="item.funding_name"
{{tag}} ></el-option>
</el-tag> </el-select>
<el-input
class="input-new-tag"
v-if="inputVisible1"
v-model="inputValue1"
ref="saveTagInput1"
size="small"
@keyup.enter.native="handleInputConfirm(1)"
@blur="handleInputConfirm(1)"
>
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput(1)">+ 添加</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -379,6 +368,7 @@ import {
voyageRegPeopleDelete, voyageRegPeopleEdit, voyageRegPeopleUpload, voyageRegImport voyageRegPeopleDelete, voyageRegPeopleEdit, voyageRegPeopleUpload, voyageRegImport
} from '@/api/dataTransfer' } from '@/api/dataTransfer'
import { time } from '@/utils/validate' import { time } from '@/utils/validate'
import { fundingAll } from '@/api/dicManage'
export default { export default {
name: 'VoyageReg', name: 'VoyageReg',
@ -448,6 +438,7 @@ export default {
dynamicTags2: [], dynamicTags2: [],
inputVisible2: false, inputVisible2: false,
inputValue2: '', inputValue2: '',
fundingOptions: [],
// //
loadingNav: false, loadingNav: false,
textNav: '上传导航文件', textNav: '上传导航文件',
@ -491,8 +482,15 @@ export default {
return return
} }
this.getData() this.getData()
this.getFunding()
}, },
methods: { methods: {
//
getFunding() {
fundingAll().then(res => {
this.fundingOptions = res.array
})
},
// //
getData() { getData() {
this.loading = true this.loading = true
@ -514,15 +512,16 @@ export default {
this.form = JSON.parse(JSON.stringify(row)) this.form = JSON.parse(JSON.stringify(row))
this.form.start_date = new Date(this.form.voyage_start_date) this.form.start_date = new Date(this.form.voyage_start_date)
this.form.end_date = new Date(this.form.voyage_end_date) this.form.end_date = new Date(this.form.voyage_end_date)
this.dynamicTags1 = this.form.funding_org.split('、') this.form.funding_org = this.form.funding_org.split(',')
this.form.funding_org_array = this.dynamicTags1 // this.dynamicTags1 = this.form.funding_org.split('')
// this.form.funding_org_array = this.dynamicTags1
this.dynamicTags2 = this.form.voyage_officer.split('、') this.dynamicTags2 = this.form.voyage_officer.split('、')
this.form.voyage_officer_array = this.dynamicTags2 this.form.voyage_officer_array = this.dynamicTags2
}, },
// //
formatParams() { formatParams() {
this.form.funding_org_array = this.dynamicTags1 // this.form.funding_org_array = this.dynamicTags1
this.form.funding_org = this.dynamicTags1.join('、') // this.form.funding_org = this.dynamicTags1.join('')
this.form.voyage_officer_array = this.dynamicTags2 this.form.voyage_officer_array = this.dynamicTags2
this.form.voyage_officer = this.dynamicTags2.join('、') this.form.voyage_officer = this.dynamicTags2.join('、')
this.form.voyage_start_date = time(this.form.start_date, 'date') this.form.voyage_start_date = time(this.form.start_date, 'date')

View File

@ -0,0 +1,199 @@
<template>
<div id="" class="page-body">
<div class="page-header">
<h1 class="page-title">资助机构</h1>
<el-breadcrumb>
<el-breadcrumb-item :to="{path: '/'}">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{name: 'dataSampleType'}">字典管理</el-breadcrumb-item>
<el-breadcrumb-item>资助机构</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="filter-container">
<div class="search">
<el-input placeholder="模糊查询" v-model="params.query" style="width: 300px;">
<el-button slot="append" icon="el-icon-search" @click="getData"></el-button>
</el-input>
</div>
<div class="checkBtn">
<el-button type="primary" size="medium" @click="handleAdd">资助机构录入</el-button>
</div>
</div>
<el-table ref="tableData" v-loading="loading" stripe border :data="tableData" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
<el-table-column type="index" label="#" width="50"/>
<el-table-column prop="funding_name" label="资助机构名称" />
<el-table-column prop="funding_eng" label="英文名称" />
<el-table-column prop="funding_order" label="排序" width="100" />
<el-table-column prop="create_time" label="创建时间" width="160" />
<el-table-column label="操作" width="120">
<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="del" size="mini" type="danger" class="el-icon-delete" @click="handleDelete(scope.row)" style="margin-left: 0%;" />
</el-tooltip>
</template>
</el-table-column>
</el-table>
<div class="pagination-box">
<el-pagination
background
:page-sizes="[10, 20, 30]"
:page-size="params.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
:current-page="pageNum"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
<!-- 新增/编辑弹窗-->
<el-dialog :title="`${title}资助机构`" :visible.sync="open" width="500px" :before-close="cancel" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<el-form-item label="资助机构名称" prop="funding_name">
<el-input v-model="form.funding_name" />
</el-form-item>
<el-form-item label="英文名称" prop="funding_eng">
<el-input v-model="form.funding_eng" />
</el-form-item>
<el-form-item label="排序" prop="funding_order">
<el-input v-model="form.funding_order" type="number" maxlength="4" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { fundingDelete, fundingEdit, fundingList } from '@/api/dicManage'
export default {
name: 'FundingAgencies',
data() {
return {
loading: false,
//
params: {
start: 0,
limit: 10,
group: 10,
query: ''
},
pageNum: 1,
//
tableData: [],
total: 0,
//
open: false,
title: '新增',
form: {
funding_name: '',
funding_eng: '',
funding_order: ''
},
rules: {
funding_name: [
{ required: true, message: '此处为必填项', trigger: 'blur' }
],
// funding_eng: [
// { required: true, message: '', trigger: 'blur' }
// ],
funding_order: [
{ required: true, message: '此处为必填项', trigger: 'blur' }
]
}
}
},
created() {
const isLogin = localStorage.getItem('isLogin')
if (isLogin == 'false' || isLogin == '' || isLogin == undefined) {
this.$router.push({ name: 'home' })
return
}
this.getData()
},
methods: {
//
getData() {
this.loading = true
fundingList(this.params).then(res => {
this.tableData = res.page.records
this.total = Number(res.page.total)
this.loading = false
})
},
//
handleAdd() {
this.title = '新增'
this.open = true
},
//
handleEdit(row) {
this.title = '编辑'
this.open = true
this.form = JSON.parse(JSON.stringify(row))
},
//
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.title === '新增') {
fundingEdit(this.form).then(res => {
this.$message.success('已创建新的资助机构!')
this.getData()
this.cancel()
})
} else {
fundingEdit(this.form).then(res => {
this.$message.success('资助机构已更新!')
this.getData()
this.cancel()
})
}
}
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
funding_name: '',
funding_eng: '',
funding_order: ''
}
this.$refs['form'].resetFields()
},
//
handleDelete(row) {
this.$confirm('确定要删除该资助机构吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
fundingDelete(row).then(() => {
this.$message.success('删除成功!')
this.getData()
})
}).catch(() => {})
},
//
handleCurrentChange(val) {
this.pageNum = val
this.params.start = val * this.params.limit - this.params.limit
this.getData()
},
handleSizeChange(val) {
this.params.limit = val
this.getData()
},
}
}
</script>

View File

@ -87,70 +87,7 @@
</div> </div>
</div> </div>
<div class="shuju"> <div class="bg-box"></div>
<div class="shuju1">
<div class="shuju1_top">
<img src="../../static/images/shuju.png" alt="">
</div>
<div class="shuju1_con">
<ul>
<li @click="turnPage('physicalIndex')">
<img src="../../static/images/diqiu.png" alt="">
<p>海洋地球物理与物理海洋</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li @click="turnPage('biologyIndex')">
<img src="../../static/images/yangpin.png" alt="">
<p>海洋生物样品信息待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li>
<img src="../../static/images/dizhi.png" alt="">
<p>海洋地质与地球化学待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li>
<img src="../../static/images/dongwu.png" alt="">
<p>哺乳动物与海洋声学待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li @click="turnPage('phoneVideoIndex')">
<img src="../../static/images/shipin.png" alt="">
<p>深海视频音像图元待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
</ul>
</div>
</div>
<div class="shuju2">
<div class="shuju2_top cursor" @click="turnPage('physicalDataSearchCTD')">
<img src="../../static/images/shuju1.png" alt="">
</div>
<div class="shuju2_con">
<div class="swiper-visualization wow fadeInUp">
<div class="swiper-visualization-box">
<swiper ref="visualizationSwiper" :options="swiperOptions">
<swiper-slide v-for="(item, index) in visualizationList" :key="index">
<div class="pic">
<img :src="item.pic" alt="">
</div>
<div class="txt">
<p>0{{ index + 1 }}</p>
<div class="txt1">
<p>{{ item.title }}</p>
<span>{{ item.des }}</span>
</div>
</div>
<div class="mask" />
</swiper-slide>
</swiper>
<div class="swiper-arrow swiper-prev" />
<div class="swiper-arrow swiper-next" />
</div>
</div>
</div>
</div>
</div>
<div class="dongtai"> <div class="dongtai">
@ -194,31 +131,96 @@
</div> </div>
</div> </div>
<div class="gongju"> <div class="shuju" style="padding-bottom: 1px;">
<div class="gongju_top"> <!-- <div class="shuju1">-->
<img src="../../static/images/shuju5.png" alt=""> <!-- <div class="shuju1_top">-->
<!-- <img src="../../static/images/shuju.png" alt="">-->
<!-- </div>-->
<!-- <div class="shuju1_con">-->
<!-- <ul>-->
<!-- <li @click="turnPage('physicalIndex')">-->
<!-- <img src="../../static/images/diqiu.png" alt="">-->
<!-- <p>海洋地球物理与物理海洋</p>-->
<!-- <p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>-->
<!-- </li>-->
<!-- <li @click="turnPage('biologyIndex')">-->
<!-- <img src="../../static/images/yangpin.png" alt="">-->
<!-- <p>海洋生物样品信息待开发</p>-->
<!-- <p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>-->
<!-- </li>-->
<!-- <li>-->
<!-- <img src="../../static/images/dizhi.png" alt="">-->
<!-- <p>海洋地质与地球化学待开发</p>-->
<!-- <p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>-->
<!-- </li>-->
<!-- <li>-->
<!-- <img src="../../static/images/dongwu.png" alt="">-->
<!-- <p>哺乳动物与海洋声学待开发</p>-->
<!-- <p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>-->
<!-- </li>-->
<!-- <li @click="turnPage('phoneVideoIndex')">-->
<!-- <img src="../../static/images/shipin.png" alt="">-->
<!-- <p>深海视频音像图元待开发</p>-->
<!-- <p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </div>-->
<!-- </div>-->
<div class="shuju2">
<div class="shuju2_top cursor" @click="turnPage('physicalDataSearchCTD')">
<img src="../../static/images/shuju1.png" alt="">
</div> </div>
<div class="gongju_con"> <div class="shuju2_con">
<ul> <div class="swiper-visualization wow fadeInUp">
<li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')"> <div class="swiper-visualization-box">
<img src="../../static/images/mofang.png" alt=""> <swiper ref="visualizationSwiper" :options="swiperOptions">
<p>blast基因分析工具</p> <swiper-slide v-for="(item, index) in visualizationList" :key="index">
</li> <div class="pic">
<li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')"> <img :src="item.pic" alt="">
<img src="../../static/images/mofang.png" alt=""> </div>
<p>温盐深分析工具</p> <div class="txt">
</li> <p>0{{ index + 1 }}</p>
<li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')"> <div class="txt1">
<img src="../../static/images/mofang.png" alt=""> <p>{{ item.title }}</p>
<p>影像数据物种智能识别</p> <span>{{ item.des }}</span>
</li>
<li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')">
<img src="../../static/images/mofang.png" alt="">
<p>海洋物理生态耦合模式分析</p>
</li>
</ul>
</div> </div>
</div> </div>
<div class="mask" />
</swiper-slide>
</swiper>
<div class="swiper-arrow swiper-prev" />
<div class="swiper-arrow swiper-next" />
</div>
</div>
</div>
</div>
</div>
<!-- <div class="gongju">-->
<!-- <div class="gongju_top">-->
<!-- <img src="../../static/images/shuju5.png" alt="">-->
<!-- </div>-->
<!-- <div class="gongju_con">-->
<!-- <ul>-->
<!-- <li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')">-->
<!-- <img src="../../static/images/mofang.png" alt="">-->
<!-- <p>blast基因分析工具</p>-->
<!-- </li>-->
<!-- <li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')">-->
<!-- <img src="../../static/images/mofang.png" alt="">-->
<!-- <p>温盐深分析工具</p>-->
<!-- </li>-->
<!-- <li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')">-->
<!-- <img src="../../static/images/mofang.png" alt="">-->
<!-- <p>影像数据物种智能识别</p>-->
<!-- </li>-->
<!-- <li @click="turnPage('http://10.0.82.239/analysisTools/index', 'url')">-->
<!-- <img src="../../static/images/mofang.png" alt="">-->
<!-- <p>海洋物理生态耦合模式分析</p>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </div>-->
<!-- </div>-->
<Footer /> <Footer />
</div> </div>
@ -253,17 +255,20 @@ export default {
{ {
pic: require('../../static/images/shuju2_bg2.png'), pic: require('../../static/images/shuju2_bg2.png'),
title: '专业数据分析', title: '专业数据分析',
des: '载人深潜温盐深数据' des: '载人深潜温盐深数据',
routerName: ''
}, },
{ {
pic: require('../../static/images/shuju2_bg.png'), pic: require('../../static/images/shuju2_bg.png'),
title: '服务资助航次', title: '服务资助航次',
des: '深海技术创新中心共享航次' des: '深海技术创新中心共享航次',
routerName: ''
}, },
{ {
pic: require('../../static/images/shuju2_bg3.png'), pic: require('../../static/images/shuju2_bg3.png'),
title: '支撑大科学计划', title: '支撑大科学计划',
des: '应急搜捞应用' des: '应急搜捞应用',
routerName: 'SalvageHome'
} }
], ],
swiperOptions: { swiperOptions: {
@ -538,6 +543,13 @@ export default {
console.log(res) console.log(res)
this.sampleDataUpdateList = res.page.records this.sampleDataUpdateList = res.page.records
}) })
},
//
toSubsystem(name) {
alert(name)
if (name) {
this.$router.push({ name })
}
} }
} }
} }
@ -1084,6 +1096,13 @@ export default {
} }
} }
.bg-box {
margin-top: -450px;
background: url(../../static/images/secBg.jpg) center no-repeat;
background-size: 100% 100%;
height: 700px;
}
.dongtai { .dongtai {
margin-top: -180px; margin-top: -180px;
width: 100%; width: 100%;
@ -1091,6 +1110,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
//background-color: #ccc;
.el-row { .el-row {
width: 92%; width: 92%;