主驾的人员选择从潜航员中选;选好左、右舷人员,下方单位自动填写;数据检索查询列表以弹窗形式展示;

This commit is contained in:
2024-10-21 17:17:02 +08:00
parent 9445054fe3
commit 580f832a86
4 changed files with 112 additions and 51 deletions

View File

@ -25,34 +25,6 @@
<el-radio label="航次">航次</el-radio> <el-radio label="航次">航次</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<div class="left4" v-if="searchTypeValue == '航次名称' && menuList1.length">
<div class="list">
<div class="list-title">请选择航次名称</div>
<div class="list-value" v-for="(item, index) in menuList1" :key="index" @click="selectMenu1(item)">{{
item.name }}</div>
</div>
</div>
<div class="left4" v-if="searchTypeValue == '平台类型' && menuList2.length">
<div class="list">
<div class="list-title">请选择平台类型</div>
<div class="list-value" v-for="(item, index) in menuList2" :key="index" @click="selectMenu2(item)">{{
item.name + '(' + item.value + ')' }}</div>
</div>
</div>
<div class="left4" v-if="searchTypeValue == '设备类型' && menuList3.length">
<div class="list">
<div class="list-title">请选择设备类型</div>
<div class="list-value" v-for="(item, index) in menuList3" :key="index" @click="selectMenu3(item)">{{
item.name + '(' + item.value + ')' }}</div>
</div>
</div>
<div class="left4" v-if="searchTypeValue == '数据样品类型' && menuList4.length">
<div class="list">
<div class="list-title">请选择数据样品类型</div>
<div class="list-value" v-for="(item, index) in menuList4" :key="index" @click="selectMenu4(item)">{{
item.name + '(' + item.value + ')' }}</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" @click="openList(item)"> <div v-for="(item, index) in dataList" :key="index" class="left4_1" @click="openList(item)">
<div class="left4_top"> <div class="left4_top">
@ -156,6 +128,53 @@
</a> </a>
</div> </div>
</div> </div>
<!-- 航次名称弹窗-->
<el-dialog
title="请选择航次名称"
:visible.sync="dialog1"
width="1000px"
>
<el-table ref="tableData1" border highlight-current-row @current-change="handleCurrentChange1" max-height="480" :data="tableData1" :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="name" label="航次名称" />
</el-table>
</el-dialog>
<!-- 平台类型弹窗-->
<el-dialog
title="请选择平台类型"
:visible.sync="dialog2"
width="1000px"
>
<el-table ref="tableData2" border @current-change="handleCurrentChange2" :data="tableData2" max-height="480" :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="name" label="平台类型名称" />
<el-table-column prop="value" label="英文类型名称" />
</el-table>
</el-dialog>
<!-- 设备类型弹窗-->
<el-dialog
title="请选择设备类型"
:visible.sync="dialog3"
width="1000px"
>
<el-table ref="tableData3" border @current-change="handleCurrentChange3" :data="tableData3" max-height="480" :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="name" label="设备类型名称" />
<el-table-column prop="value" label="英文名称" />
</el-table>
</el-dialog>
<!-- 数据样品类型弹窗-->
<el-dialog
title="请选择数据样品类型"
:visible.sync="dialog4"
width="1000px"
>
<el-table ref="tableData4" border @current-change="handleCurrentChange4" :data="tableData4" max-height="480" :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="name" label="数据样品类型类型名称" />
<el-table-column prop="value" label="英文名称" />
</el-table>
</el-dialog>
</div> </div>
</template> </template>
@ -210,14 +229,22 @@ export default {
], ],
searchTypeValue: '航次名称', searchTypeValue: '航次名称',
radio: '航次', radio: '航次',
dialog1: false,
tableData1: [],
total1: 0,
dialog2: false,
tableData2: [],
total2: 0,
dialog3: false,
tableData3: [],
total3: 0,
dialog4: false,
tableData4: [],
total4: 0,
menu1: '', menu1: '',
menu2: '', menu2: '',
menu3: '', menu3: '',
menu4: '', menu4: '',
menuList1: [],
menuList2: [],
menuList3: [],
menuList4: [],
dataList: [], dataList: [],
searchValue: '', searchValue: '',
menuShow: true, menuShow: true,
@ -311,51 +338,59 @@ export default {
data_type: this.menu4 data_type: this.menu4
}).then(res => { }).then(res => {
if (this.searchTypeValue === '航次名称') { if (this.searchTypeValue === '航次名称') {
this.menuList1 = res.page.records this.dialog1 = true
this.tableData1 = res.page.records
} else if (this.searchTypeValue === '平台类型') { } else if (this.searchTypeValue === '平台类型') {
this.menuList2 = res.page.records this.dialog2 = true
this.tableData2 = res.page.records
} else if (this.searchTypeValue === '设备类型') { } else if (this.searchTypeValue === '设备类型') {
this.menuList3 = res.page.records this.dialog3 = true
this.tableData3 = res.page.records
} else if (this.searchTypeValue === '数据样品类型') { } else if (this.searchTypeValue === '数据样品类型') {
this.menuList4 = res.page.records this.dialog4 = true
this.tableData4 = res.page.records
} }
}) })
}, },
selectMenu1(item) { handleCurrentChange1(item) {
this.menu1 = item.name this.menu1 = item.name
this.menuList1 = [] this.tableData1 = []
this.searchType[0].disabled = true this.searchType[0].disabled = true
const str = this.searchType.find(item => { const str = this.searchType.find(item => {
return item.disabled !== true return item.disabled !== true
}) })
this.searchTypeValue = str.label this.searchTypeValue = str.label
this.dialog1 = false
}, },
selectMenu2(item) { handleCurrentChange2(item) {
this.menu2 = item.name this.menu2 = item.name
this.menuList2 = [] this.tableData2 = []
this.searchType[1].disabled = true this.searchType[1].disabled = true
const str = this.searchType.find(item => { const str = this.searchType.find(item => {
return item.disabled !== true return item.disabled !== true
}) })
this.searchTypeValue = str.label this.searchTypeValue = str.label
this.dialog2 = false
}, },
selectMenu3(item) { handleCurrentChange3(item) {
this.menu3 = item.name this.menu3 = item.name
this.menuList3 = [] this.tableData3 = []
this.searchType[3].disabled = true this.searchType[3].disabled = true
const str = this.searchType.find(item => { const str = this.searchType.find(item => {
return item.disabled !== true return item.disabled !== true
}) })
this.searchTypeValue = str.label this.searchTypeValue = str.label
this.dialog3 = false
}, },
selectMenu4(item) { handleCurrentChange4(item) {
this.menu4 = item.name this.menu4 = item.name
this.menuList4 = [] this.tableData4 = []
this.searchType[4].disabled = true this.searchType[4].disabled = true
const str = this.searchType.find(item => { const str = this.searchType.find(item => {
return item.disabled !== true return item.disabled !== true
}) })
this.searchTypeValue = str.label this.searchTypeValue = str.label
this.dialog4 = false
}, },
// //
getList() { getList() {

View File

@ -34,8 +34,9 @@
<el-upload <el-upload
class="upload-btn" class="upload-btn"
ref="upload" ref="upload"
accept=".txt"
action="action" action="action"
:multiple="false" :multiple="true"
:show-file-list="false" :show-file-list="false"
:http-request="uploadDiving" :http-request="uploadDiving"
:before-upload="beforeUploadDiving" :before-upload="beforeUploadDiving"

View File

@ -43,21 +43,21 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="主驾" prop="driver_master"> <el-form-item label="主驾" prop="driver_master">
<el-select v-model="form.driver_master" filterable placeholder="" style="width: 100%;"> <el-select v-model="form.driver_master" filterable placeholder="" style="width: 100%;">
<el-option v-for="item in memberOptions" :key="item.member_name" :label="item.member_name" :value="item.member_name"/> <el-option v-for="item in mainMemberOptions" :key="item.tsy_id" :label="item.member_name" :value="item.member_name"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="左舷" prop="driver_left"> <el-form-item label="左舷" prop="driver_left">
<el-select v-model="form.driver_left" filterable placeholder="" style="width: 100%;"> <el-select v-model="form.driver_left" filterable placeholder="" style="width: 100%;" @change="changeLeft">
<el-option v-for="item in memberOptions" :key="item.member_name" :label="item.member_name" :value="item.member_name"/> <el-option v-for="item in memberOptions" :key="item.tsy_id" :label="item.member_name" :value="item.member_name"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="右舷" prop="driver_right"> <el-form-item label="右舷" prop="driver_right">
<el-select v-model="form.driver_right" filterable placeholder="" style="width: 100%;"> <el-select v-model="form.driver_right" filterable placeholder="" style="width: 100%;" @change="changeRight">
<el-option v-for="item in memberOptions" :key="item.member_name" :label="item.member_name" :value="item.member_name"/> <el-option v-for="item in memberOptions" :key="item.tsy_id" :label="item.member_name" :value="item.member_name"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -308,6 +308,8 @@ export default {
voyageOptions: [], voyageOptions: [],
// //
platformDicts: [], platformDicts: [],
//
mainMemberOptions: [],
// //
memberOptions: [], memberOptions: [],
// //
@ -442,6 +444,11 @@ export default {
getMemberList(id) { getMemberList(id) {
memberList({ voyage_id: id }).then(res => { memberList({ voyage_id: id }).then(res => {
this.memberOptions = res.array this.memberOptions = res.array
this.mainMemberOptions = this.memberOptions.filter(obj => {
if (obj.member_dept.includes('潜航员')) {
return obj
}
})
}) })
}, },
// //
@ -495,6 +502,24 @@ export default {
this.$refs['form'].resetFields() this.$refs['form'].resetFields()
this.showPlatform = false this.showPlatform = false
this.currentPlatform = '' this.currentPlatform = ''
},
//
changeLeft(value) {
const arr = this.memberOptions.filter(obj => {
if (obj.member_name.includes(value)) {
return obj
}
})
this.form.driver_unit_left = arr[0].member_unit
},
//
changeRight(value) {
const arr = this.memberOptions.filter(obj => {
if (obj.member_name.includes(value)) {
return obj
}
})
this.form.driver_unit_right = arr[0].member_unit
} }
} }
} }

View File

@ -2,7 +2,7 @@
<div> <div>
<div class="bar"> <div class="bar">
<span class="track-name">{{ row.job_type }}数据样品 [{{ row.dataset_name }}]</span> <span class="track-name">{{ row.job_type }}数据样品 [{{ row.dataset_name }}]</span>
<el-button type="primary" @click="handleAdd">新增样品</el-button> <el-button type="primary" @click="handleAdd">新增数据样品</el-button>
</div> </div>
<el-table v-if="row.job_type === '站位作业'" v-loading="loading" stripe border :data="dataList"> <el-table v-if="row.job_type === '站位作业'" v-loading="loading" stripe border :data="dataList">
<el-table-column type="index" label="#" width="50"/> <el-table-column type="index" label="#" width="50"/>