glj-代码提交

This commit is contained in:
glj 2023-05-08 13:50:52 +08:00
parent d5181a32e4
commit 87789a672b
3 changed files with 162 additions and 283 deletions

View File

@ -19,16 +19,23 @@
<div class="system-user-search mb15" style="display: flex;margin-left: 10px;margin-top: 10px;">
<!-- 选择灾害类型 -->
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-tree-select v-model="state.value_satelliteType" :data="state.options_satelliteType" multiple
collapse-tags collapse-tags-tooltip :render-after-expand="false" show-checkbox clearable
placeholder="Select satellite type" />
</el-col>
<el-col :span="8" style="padding-left:1%;">
<el-col :span="6" style="margin-left: 1%;">
<el-tree-select v-model="state.value_resolution" :data="state.options_resolution" multiple collapse-tags
collapse-tags-tooltip :render-after-expand="false" show-checkbox clearable
placeholder="Select resolution" />
</el-col>
<el-col :span="6" style="margin-left: 1%;">
<el-select class="form-select" size="default" clearable placeholder="Select status"
v-model="state.status">
<el-option v-for="(item, index) in state.options_status" :value="item.value" :key="index"
:label="item.label" />
</el-select>
</el-col>
<el-col :span="3">
<el-button size="default" type="primary" class="ml10" @click="searchRemoteSensingSourceData">
<el-icon>
@ -57,11 +64,11 @@
show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="downloadUrl" label="Download url" align="center" width="200" show-overflow-tooltip>
</el-table-column>
<!-- <el-table-column prop="Operate" label="Operate" align="center" width="200" show-overflow-tooltip>
<el-table-column prop="Operate" label="Operate" align="center" width="200" show-overflow-tooltip>
<template #default="scope">
<el-button size="small" text type="primary" @click="reviseDownload(scope.row)">start</el-button>
<el-button v-if="scope.row.status === 2" size="small" text type="primary" @click="reviseDownload(scope.row)">start</el-button>
</template>
</el-table-column> -->
</el-table-column>
</el-table>
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
style="margin-right: 20px;" :page-sizes="[10, 20, 30]" background
@ -71,7 +78,7 @@
</div>
</el-col>
</el-row>
<reviseDownloadUrl ref="reviseDownloadUrlRef" @callback="getTableData"/>
<reviseDownloadUrl ref="reviseDownloadUrlRef" @callback="getTableData" />
</div>
</template>
@ -114,6 +121,25 @@ const state = reactive({
// value_disasterDate: '',
// options_disasterCountry: [],
// value_disasterCountry: [],
//0-1-2- 3-
options_status: [
{
label: 'Crawler acquisition',
value: '0'
},
{
label: 'Unapproved',
value: '1'
},
{
label: 'Approved',
value: '2'
},
{
label: 'Finish',
value: '3'
},
],
options_resolution: [{
label: '<0.8m',
value: '<0.8m'
@ -263,21 +289,23 @@ const searchRemoteSensingSourceData = () => {
dataNew = {
disasterId: state.disasterId,
satelliteCodeList: state.satelliteCodeList.join(","),
productResolutionVos: state.listData
productResolutionVos: state.listData,
status: state.status
}
} else {
dataNew = {
disasterId: state.disasterId,
productResolutionVos: state.listData
productResolutionVos: state.listData,
status: state.status
}
}
getDataByCondition(state.tableData.param.pageNum, state.tableData.param.pageSize, dataNew)
}
const reviseDownload = (row) =>{
const reviseDownload = (row) => {
console.log(row,"rowrowrow");
console.log(row, "rowrowrow");
}

View File

@ -1,323 +1,170 @@
<template>
<div class="system-role-container layout-padding">
<el-config-provider :locale="en"
style="position: relative;">
<el-config-provider :locale="en" style="position: relative;">
<div class="system-role-padding layout-padding-auto layout-padding-view">
<el-tabs v-model="activeName"
class="demo-tabs"
@tab-click="handleClick"
style="margin-left: 20px">
<el-tab-pane label="Unapproved"
name="first">
<el-table :data="state.tableData.data"
v-loading="state.tableData.loading"
style="width: 100%">
<el-table-column prop="username"
label="User name"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="organization"
label="Organization"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterType"
label="Disaster type"
show-overflow-tooltip
sortable>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin-left: 20px">
<el-tab-pane label="Unapproved" name="first">
<el-table :data="state.tableData.data" v-loading="state.tableData.loading" style="width: 100%">
<el-table-column prop="username" label="User name" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="organization" label="Organization" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="disasterType" label="Disaster type" show-overflow-tooltip sortable>
<!-- 在disasterType中获取dictKey 对应的dictValue -->
<template #default="scope">
<el-tag type="info">{{ getValue(scope.row.disasterType) }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="disasterKeyword"
label="Disaster keyword"
show-overflow-tooltip
<el-table-column prop="disasterKeyword" label="Disaster keyword" show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterTime"
label="Disaster time"
show-overflow-tooltip
sortable>
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip sortable>
<template #default="scope">
<!-- 格式化去除时分秒 -->
{{ dateFormat(scope.row.disasterTime) }}
</template>
</el-table-column>
<el-table-column prop="respondStatus"
label="Response status"
show-overflow-tooltip
sortable>
<el-table-column prop="respondStatus" label="Response status" show-overflow-tooltip sortable>
<template #default="scope">
<el-tag type="info"
v-if="scope.row.respondStatus === 0">Awaiting approval</el-tag>
<el-tag type="info"
v-if="scope.row.respondStatus === 1">Rejected</el-tag>
<el-tag type="info" v-if="scope.row.respondStatus === 0">Awaiting approval</el-tag>
<el-tag type="info" v-if="scope.row.respondStatus === 1">Rejected</el-tag>
</template>
</el-table-column>
<el-table-column prop="Operate"
label="Operate"
show-overflow-tooltip
sortable>
<el-table-column prop="Operate" label="Operate" show-overflow-tooltip sortable>
<template #default="scope">
<el-button size="small"
text
type="primary"
<el-button size="small" text type="primary"
@click="onOpenEditRole('edit', scope.row)">Approve</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="onHandleSizeChange"
@current-change="onHandleCurrentChange"
class="mt15"
:pager-count="5"
:page-sizes="[10, 20, 30]"
v-model:current-page="state.tableData.param.current"
background
v-model:page-size="state.tableData.param.size"
layout="total, sizes, prev, pager, next, jumper"
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
:pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="state.tableData.param.current" background
v-model:page-size="state.tableData.param.size" layout="total, sizes, prev, pager, next, jumper"
:total="state.tableData.total">
</el-pagination>
</el-tab-pane>
<el-tab-pane label="Rejected"
name="firstNew">
<el-table :data="state.tableData.data"
v-loading="state.tableData.loading"
style="width: 100%">
<el-table-column prop="username"
label="User name"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="organization"
label="Organization"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterType"
label="Disaster type"
show-overflow-tooltip
sortable>
<el-tab-pane label="Rejected" name="firstNew">
<el-table :data="state.tableData.data" v-loading="state.tableData.loading" style="width: 100%">
<el-table-column prop="username" label="User name" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="organization" label="Organization" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="disasterType" label="Disaster type" show-overflow-tooltip sortable>
<!-- 在disasterType中获取dictKey 对应的dictValue -->
<template #default="scope">
<el-tag type="info">{{ getValue(scope.row.disasterType) }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="disasterKeyword"
label="Disaster keyword"
show-overflow-tooltip
<el-table-column prop="disasterKeyword" label="Disaster keyword" show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterTime"
label="Disaster time"
show-overflow-tooltip
sortable>
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip sortable>
<template #default="scope">
<!-- 格式化去除时分秒 -->
{{ dateFormat(scope.row.disasterTime) }}
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="onHandleSizeChange"
@current-change="onHandleCurrentChange"
class="mt15"
:pager-count="5"
:page-sizes="[10, 20, 30]"
v-model:current-page="state.tableData.param.current"
background
v-model:page-size="state.tableData.param.size"
layout="total, sizes, prev, pager, next, jumper"
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
:pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="state.tableData.param.current" background
v-model:page-size="state.tableData.param.size" layout="total, sizes, prev, pager, next, jumper"
:total="state.tableData.total">
</el-pagination>
</el-tab-pane>
<el-tab-pane label="Approved"
name="second">
<el-table :data="state.tableData.data"
v-loading="state.tableData.loading"
style="width: 100%">
<el-tab-pane label="Approved" name="second">
<el-table :data="state.tableData.data" v-loading="state.tableData.loading" style="width: 100%">
<el-table-column prop="username"
label="User name"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="organization"
label="Organization"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="email"
label="Email"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterType"
label="Disaster type"
show-overflow-tooltip
sortable>
<el-table-column prop="username" label="User name" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="organization" label="Organization" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="email" label="Email" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="disasterType" label="Disaster type" show-overflow-tooltip sortable>
<!-- 在disasterType中获取dictKey 对应的dictValue -->
<template #default="scope">
<el-tag type="info">{{ getValue(scope.row.disasterType) }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="disasterKeyword"
label="Disaster keyword"
show-overflow-tooltip
<el-table-column prop="disasterKeyword" label="Disaster keyword" show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterTime"
label="Disaster time"
show-overflow-tooltip
sortable>
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip sortable>
<template #default="scope">
<!-- 格式化去除时分秒 -->
{{ dateFormat(scope.row.disasterTime) }}
</template>
</el-table-column>
<el-table-column prop="chiefName"
label="Answer"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="reviewTime"
label="reviewTime"
show-overflow-tooltip
sortable />
<el-table-column width="170"
prop="respondStatus"
label="Response status"
show-overflow-tooltip
sortable>
<el-table-column prop="chiefName" label="Answer" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="reviewTime" label="reviewTime" show-overflow-tooltip sortable />
<el-table-column width="170" prop="respondStatus" label="Response status" show-overflow-tooltip sortable>
<template #default="scope">
<el-tag type="info"
v-if="scope.row.respondStatus === 2">Approved</el-tag>
<el-tag type="info"
v-if="scope.row.respondStatus === 1">Rejected</el-tag>
<el-tag type="success"
v-if="scope.row.respondStatus === 3">Complete response</el-tag>
<el-tag type="info" v-if="scope.row.respondStatus === 2">Approved</el-tag>
<el-tag type="info" v-if="scope.row.respondStatus === 1">Rejected</el-tag>
<el-tag type="success" v-if="scope.row.respondStatus === 3">Complete response</el-tag>
</template>
</el-table-column>
<el-table-column width="200"
prop="Operate"
label="Operate"
show-overflow-tooltip
sortable>
<el-table-column width="200" prop="Operate" label="Operate" show-overflow-tooltip sortable>
<template #default="scope">
<el-button size="small"
text
type="primary"
@click="onAllocation(scope.row)">Allocation</el-button>
<el-button size="small"
text
type="danger"
@click="responseEnded(scope.row)">Response ended</el-button>
<el-button size="small" text type="primary" @click="onAllocation(scope.row)">Allocation</el-button>
<el-button size="small" text type="danger" @click="responseEnded(scope.row)">Response ended</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="onHandleSizeChange"
@current-change="onHandleCurrentChange"
class="mt15"
:pager-count="5"
:page-sizes="[10, 20, 30]"
v-model:current-page="state.tableData.param.current"
background
v-model:page-size="state.tableData.param.size"
layout="total, sizes, prev, pager, next, jumper"
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
:pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="state.tableData.param.current" background
v-model:page-size="state.tableData.param.size" layout="total, sizes, prev, pager, next, jumper"
:total="state.tableData.total">
</el-pagination>
</el-tab-pane>
<el-tab-pane label="Finish"
name="firstNewOne">
<el-table :data="state.tableData.data"
v-loading="state.tableData.loading"
style="width: 100%">
<el-table-column prop="username"
label="User name"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="organization"
label="Organization"
show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterType"
label="Disaster type"
show-overflow-tooltip
sortable>
<el-tab-pane label="Finish" name="firstNewOne">
<el-table :data="state.tableData.data" v-loading="state.tableData.loading" style="width: 100%">
<el-table-column prop="username" label="User name" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="organization" label="Organization" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="disasterType" label="Disaster type" show-overflow-tooltip sortable>
<!-- 在disasterType中获取dictKey 对应的dictValue -->
<template #default="scope">
<el-tag type="info">{{ getValue(scope.row.disasterType) }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="disasterKeyword"
label="Disaster keyword"
show-overflow-tooltip
<el-table-column prop="disasterKeyword" label="Disaster keyword" show-overflow-tooltip
sortable></el-table-column>
<el-table-column prop="disasterTime"
label="Disaster time"
show-overflow-tooltip
sortable>
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip sortable>
<template #default="scope">
<!-- 格式化去除时分秒 -->
{{ dateFormat(scope.row.disasterTime) }}
</template>
</el-table-column>
<el-table-column prop="respondedTime"
label="Responded time"
show-overflow-tooltip
sortable>
<el-table-column prop="respondedTime" label="Responded time" show-overflow-tooltip sortable>
<template #default="scope">
<!-- 格式化去除时分秒 -->
{{ dateFormat(scope.row.respondedTime) }}
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="onHandleSizeChange"
@current-change="onHandleCurrentChange"
class="mt15"
:pager-count="5"
:page-sizes="[10, 20, 30]"
v-model:current-page="state.tableData.param.current"
background
v-model:page-size="state.tableData.param.size"
layout="total, sizes, prev, pager, next, jumper"
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
:pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="state.tableData.param.current" background
v-model:page-size="state.tableData.param.size" layout="total, sizes, prev, pager, next, jumper"
:total="state.tableData.total">
</el-pagination>
</el-tab-pane>
</el-tabs>
</div>
<el-dialog v-model="state.dialogVisible"
title="Approval"
width="35%">
<el-dialog v-model="state.dialogVisible" title="Approval" width="45%">
<el-container style="margin-top: -2%;margin-bottom: 2%;">
<el-radio v-model="state.radio"
label='1'
@click="mapEvents('1')">Point</el-radio>
<el-radio v-model="state.radio"
label='2'
@click="mapEvents('2')">Area</el-radio>
<el-radio v-model="state.radio"
label='3'
@click="mapEvents('3')">Edit</el-radio>
<el-button type="primary"
style="margin-left: 5%;"
@click="ClearSubmit">Clear</el-button>
<el-radio v-model="state.radio" label='1' @click="mapEvents('1')">Point</el-radio>
<el-radio v-model="state.radio" label='2' @click="mapEvents('2')">Area</el-radio>
<el-radio v-model="state.radio" label='3' @click="mapEvents('3')">Edit</el-radio>
<el-button type="primary" style="margin-left: 5%;" @click="ClearSubmit">Clear</el-button>
</el-container>
<el-container style="margin-top: 2%;margin-bottom: 2%;"
v-if="state.radio === '1' ? true : false">
<el-container style="margin-top: 2%;margin-bottom: 2%;" v-if="state.radio === '1' ? true : false">
<span style="line-height: 35px;"> Latitude</span>
<el-input placeholder="wait……"
style="height:35px;margin-right: 1%;"
v-model="state.dislat">
<el-input placeholder="wait……" style="height:35px;margin-right: 1%;" v-model="state.dislat">
</el-input>
<span style="line-height: 35px;">Longitude</span>
<el-input placeholder="wait……"
style="height:35px;"
v-model="state.dislon"></el-input>
<el-input placeholder="wait……" style="height:35px;" v-model="state.dislon"></el-input>
</el-container>
<el-container style="margin-top: 2%;margin-bottom: 2%;"
v-if="state.radio === '3' ? true : false">
<el-container style="margin-top: 2%;margin-bottom: 2%;" v-if="state.radio === '3' ? true : false">
<el-row>
<el-col :span="3">
<span style="line-height: 35px;"> Latitude</span>
</el-col>
<el-col :span="7">
<el-input placeholder="wait……"
style="height:35px;margin-right: 1%;"
v-model="state.dislat"
<el-input placeholder="wait……" style="height:35px;margin-right: 1%;" v-model="state.dislat"
:onchange="manualLat">
</el-input>
</el-col>
@ -326,56 +173,53 @@
<span style="line-height: 35px;">Longitude</span>
</el-col>
<el-col :span="7">
<el-input placeholder="wait……"
style="height:35px;"
v-model="state.dislon"
:onchange="manualLon"></el-input>
<el-input placeholder="wait……" style="height:35px;" v-model="state.dislon" :onchange="manualLon"></el-input>
</el-col>
</el-row>
</el-container>
<MapPage style="height:350px ; width:100% ;margin-bottom: 10px;"
ref="mapRef">
<MapPage style="height:350px ; width:100% ;margin-bottom: 10px;" ref="mapRef">
</MapPage>
<div class="latLon-div"> {{ state.popupLat }} , {{ state.popupLon }} </div>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form :inline="true" label-width="auto" :label-position="labelPosition" :model="formInline"
class="demo-form-inline">
<el-form-item label="Disaster Time">
<el-date-picker style="width: 200px;" v-model="state.edit.disasterTime" type="date" value-format="YYYY-MM-DD"
placeholder="Select date and time" />
</el-form-item>
<el-form-item label="Disaster type">
<el-select style="width: 200px; height: 40px;" class="form-select" size="default" clearable placeholder="Disaster Type"
v-model="state.edit.disasterType">
<el-select style="width: 200px; height: 40px;" class="form-select" size="default" clearable
placeholder="Disaster Type" v-model="state.edit.disasterType">
<el-option v-for="(item, index) in state.dictList" :value="item.dictKey" :key="index"
:label="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="Disaster country">
<el-input style="width: 200px;" v-model="state.edit.disasterCountry" placeholder="please Disaster country" clearable></el-input>
<el-input style="width: 200px;" v-model="state.edit.disasterCountry" placeholder="please Disaster country"
clearable></el-input>
</el-form-item>
<el-form-item label="Theme keywords">
<el-input style="width: 200px;" v-model="state.edit.disasterKeyword" placeholder="please Theme keywords" clearable></el-input>
<el-input style="width: 200px;" v-model="state.edit.disasterKeyword" placeholder="please Theme keywords"
clearable></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">Cancel</el-button>
<el-button type="danger"
@click="reviews(1)">
<el-button type="danger" @click="reviews(1)">
Reject
</el-button>
<el-button type="primary"
@click="reviews(2)">
<el-button type="primary" @click="reviews(2)">
Approve
</el-button>
</span>
</template>
</el-dialog>
<selectUser ref="select"
@callback="getTableData"></selectUser>
<selectUser ref="select" @callback="getTableData"></selectUser>
</el-config-provider>
</div>
</template>
@ -724,7 +568,7 @@ const getValue = (key) => {
};
</script>
<style lang="scss">
.demo-tabs > .el-tabs__content {
.demo-tabs>.el-tabs__content {
padding: 0px;
color: #6b778c;
font-size: 32px;
@ -747,6 +591,7 @@ const getValue = (key) => {
float: right;
margin-bottom: 15px;
}
.latLon-div {
position: absolute;
top: 60%;
@ -755,4 +600,10 @@ const getValue = (key) => {
color: white;
font-size: 15px;
}
.form-select {
.el-input__wrapper {
height: 40px;
}
}
</style>

View File

@ -86,7 +86,7 @@ const batchDelete = () => {
type: 'warning',
})
.then(() => {
let id = state.multipleSelection.map(item => ({ id: item.id, chiefId: null }))
let id = state.multipleSelection.map(item => ({ id: item.disasterId, chiefId: null }))
removeManage(id).then(res => {
getTableData();
ElMessage.success('delete successfully');
@ -101,7 +101,7 @@ const deleteDisaster = (row) => {
type: 'warning',
})
.then(() => {
let delData = [{ "id": row.id, "cheif": null }]
let delData = [{ "id": row.disasterId, "cheif": null }]
removeManage(delData).then(res => {
getTableData();
ElMessage.success('Deleted successfully');