Merge branch 'main' of http://47.92.168.204:3000/VoRDM/vordm-admin into zqq
This commit is contained in:
commit
12f4636320
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="keywords" content="VoRDM"/>
|
||||
<meta name="description" content="VoRDM"/>
|
||||
<link rel="icon" href="/src/assets/vordm-mini.png" />
|
||||
<link rel="icon" href="logo2.png" />
|
||||
<title>VoRDM Admin</title>
|
||||
</head>
|
||||
<body>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 384 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.2 MiB |
Binary file not shown.
After Width: | Height: | Size: 699 KiB |
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
|
@ -84,7 +84,7 @@ export const pushing = (data) => {
|
|||
//wordcloud服务
|
||||
export const landsat = (disaster_id,number,id) => {
|
||||
return request({
|
||||
url: '/api/' + crawlModule + '/rs/landsat',
|
||||
url: '/api/' + crawlModule + '/visual/wordcloud',
|
||||
method: 'get',
|
||||
params:{
|
||||
disaster_id,
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
<el-table-column prop="dictValue" label="Disaster type" show-overflow-tooltip sortable></el-table-column>
|
||||
<el-table-column prop="disasterCountry" label="Disaster country" show-overflow-tooltip sortable></el-table-column>
|
||||
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip sortable></el-table-column>
|
||||
<slot></slot>
|
||||
</el-table>
|
||||
<el-pagination @size-change="onHandleDisasterSizeChange" @current-change="onHandleDisasterCurrentChange" class="mt15"
|
||||
:pager-count="3" :page-sizes="[10, 20, 30]" v-model:current-page="state.disasterData.param.pageNum" background
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<template>
|
||||
<div class="layout-footer pb15">
|
||||
<div class="layout-footer-warp">
|
||||
<div>vue-next-admin,Made by lyt with ❤️</div>
|
||||
<div class="mt5">深圳市 xxx 公司版权所有</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -12,26 +12,26 @@
|
|||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="large"
|
||||
:disabled="state.disabledSize === 'large'">大型</el-dropdown-item>
|
||||
:disabled="state.disabledSize === 'large'">Large</el-dropdown-item>
|
||||
<el-dropdown-item command="default"
|
||||
:disabled="state.disabledSize === 'default'">默认</el-dropdown-item>
|
||||
:disabled="state.disabledSize === 'default'">Default</el-dropdown-item>
|
||||
<el-dropdown-item command="small"
|
||||
:disabled="state.disabledSize === 'small'">小型</el-dropdown-item>
|
||||
:disabled="state.disabledSize === 'small'">Small</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<div class="layout-navbars-breadcrumb-user-icon"
|
||||
<!-- <div class="layout-navbars-breadcrumb-user-icon"
|
||||
@click="onSearchClick">
|
||||
<el-icon title="菜单搜索">
|
||||
<ele-Search />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="layout-navbars-breadcrumb-user-icon"
|
||||
</div> -->
|
||||
<!-- <div class="layout-navbars-breadcrumb-user-icon"
|
||||
@click="onLayoutSetingClick">
|
||||
<i class="icon-skin iconfont"
|
||||
title="布局配置"></i>
|
||||
</div>
|
||||
<div class="layout-navbars-breadcrumb-user-icon">
|
||||
</div> -->
|
||||
<!-- <div class="layout-navbars-breadcrumb-user-icon">
|
||||
<el-popover placement="bottom"
|
||||
trigger="click"
|
||||
transition="el-zoom-in-top"
|
||||
|
@ -48,7 +48,7 @@
|
|||
<UserNews />
|
||||
</template>
|
||||
</el-popover>
|
||||
</div>
|
||||
</div> -->
|
||||
<el-dropdown :show-timeout="70"
|
||||
:hide-timeout="50"
|
||||
trigger="click"
|
||||
|
@ -87,12 +87,9 @@
|
|||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="/home">首页</el-dropdown-item>
|
||||
<el-dropdown-item command="wareHouse">代码仓库</el-dropdown-item>
|
||||
<el-dropdown-item command="/404">404</el-dropdown-item>
|
||||
<el-dropdown-item command="/401">401</el-dropdown-item>
|
||||
<el-dropdown-item command="/home">Dashboard</el-dropdown-item>
|
||||
<el-dropdown-item divided
|
||||
command="logOut">退出登录</el-dropdown-item>
|
||||
command="logOut">Sign out</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
|
@ -174,16 +171,16 @@ const onHandleCommandClick = (path) => {
|
|||
ElMessageBox({
|
||||
closeOnClickModal: false,
|
||||
closeOnPressEscape: false,
|
||||
title: '提示',
|
||||
message: '此操作将退出登录, 是否继续?',
|
||||
title: 'Prompt',
|
||||
message: 'This action will log you out of the login and whether to continue?',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
confirmButtonText: 'Yes',
|
||||
cancelButtonText: 'No',
|
||||
buttonSize: 'default',
|
||||
beforeClose: (action, instance, done) => {
|
||||
if (action === 'confirm') {
|
||||
instance.confirmButtonLoading = true;
|
||||
instance.confirmButtonText = '退出中';
|
||||
instance.confirmButtonText = 'Exiting';
|
||||
setTimeout(() => {
|
||||
done();
|
||||
setTimeout(() => {
|
||||
|
|
|
@ -12,7 +12,7 @@ export const useThemeConfig = defineStore('themeConfig', {
|
|||
state: () => ({
|
||||
website: {
|
||||
// 开启验证码模式
|
||||
captchaMode: false,
|
||||
captchaMode: true,
|
||||
tokenTime: 3000,
|
||||
tenantId: '595035',
|
||||
},
|
||||
|
@ -109,7 +109,7 @@ export const useThemeConfig = defineStore('themeConfig', {
|
|||
// 是否开启水印
|
||||
isWartermark: false,
|
||||
// 水印文案
|
||||
wartermarkText: 'vue-next-admin',
|
||||
wartermarkText: 'vordm',
|
||||
|
||||
/**
|
||||
* 其它设置
|
||||
|
@ -142,7 +142,7 @@ export const useThemeConfig = defineStore('themeConfig', {
|
|||
* 全局网站标题 / 副标题
|
||||
*/
|
||||
// 网站主标题(菜单导航、浏览器当前网页标题)
|
||||
globalTitle: 'vue-next-admin',
|
||||
globalTitle: 'vordm',
|
||||
// 网站副标题(登录页顶部文字)
|
||||
globalViceTitle: 'vueNextAdmin',
|
||||
// 网站副标题(登录页顶部文字)
|
||||
|
|
|
@ -126,12 +126,12 @@ export function formatPast(param, format = 'YYYY-mm-dd') {
|
|||
*/
|
||||
export function formatAxis(param) {
|
||||
let hour = new Date(param).getHours();
|
||||
if (hour < 6) return '凌晨好';
|
||||
else if (hour < 9) return '早上好';
|
||||
else if (hour < 12) return '上午好';
|
||||
else if (hour < 14) return '中午好';
|
||||
else if (hour < 17) return '下午好';
|
||||
else if (hour < 19) return '傍晚好';
|
||||
else if (hour < 22) return '晚上好';
|
||||
else return '夜里好';
|
||||
if (hour < 6) return 'Good morning';
|
||||
else if (hour < 9) return 'Good morning';
|
||||
else if (hour < 12) return 'Good morning';
|
||||
else if (hour < 14) return 'Good noon';
|
||||
else if (hour < 17) return 'Good afternoon';
|
||||
else if (hour < 19) return 'Good evening';
|
||||
else if (hour < 22) return 'Good evening';
|
||||
else return 'Good night';
|
||||
}
|
||||
|
|
|
@ -3,8 +3,7 @@ import { ElMessage, ElMessageBox } from 'element-plus';
|
|||
import qs from 'qs';
|
||||
import { Session } from '/@/utils/storage';
|
||||
|
||||
// export const moduleName = 'zqq-biz-vordm';
|
||||
export const moduleName = 'yyhouc-biz-vordm';
|
||||
export const moduleName = 'biz-vordm';
|
||||
export const crawlModule = 'vordm-crawl';
|
||||
const service = axios.create({
|
||||
//baseURL: import.meta.env.VITE_API_URL,
|
||||
|
|
|
@ -3,31 +3,16 @@
|
|||
<el-config-provider :locale="en">
|
||||
<el-row :gutter="22">
|
||||
<el-col :span="10">
|
||||
<div class="system-role-padding layout-padding-auto layout-padding-view" style="height: 90vh;">
|
||||
<el-table :data="state.disasterData.data" v-loading="state.disasterData.loading" style="width: 100%;"
|
||||
highlight-current-row @row-click="tableClick">
|
||||
<el-table-column prop="vordmId" label="ID" width="118" />
|
||||
<el-table-column prop="disasterType" label="Disaster type" show-overflow-tooltip>
|
||||
<!-- 在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 keywords" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="Operate" label="Operate" width="85" show-overflow-tooltip>
|
||||
<div class="system-role-padding layout-padding-auto layout-padding-view" style="height: 85vh;">
|
||||
|
||||
<disasterTable @childClick="tableClick">
|
||||
<el-table-column prop="Operate" label="Operate" width="85" show-overflow-tooltip>
|
||||
<template #default="scope">
|
||||
<el-button size="small" text type="primary" @click="startBot(scope.row)">start</el-button>
|
||||
<!-- <el-tag type="info" v-if="scope.row.respondStatus == 3">complete</el-tag> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination @size-change="onHandleDisasterSizeChange" @current-change="onHandleDisasterCurrentChange"
|
||||
class="mt15" :page-sizes="[10, 20, 30]"
|
||||
v-model:current-page="state.disasterData.param.pageNum" background
|
||||
v-model:page-size="state.disasterData.param.pageSize" layout="total, sizes, prev, pager, next"
|
||||
:total="state.disasterData.total">
|
||||
</el-pagination>
|
||||
</disasterTable>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="14">
|
||||
|
@ -64,8 +49,8 @@
|
|||
Batch operation
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table :data=" state.tableData.data " v-loading=" state.tableData.loading "
|
||||
@selection-change=" handleSelectionChange " style="width: 100%;">
|
||||
<el-table :data=" state.tableData.data " v-loading=" state.tableData.loading "
|
||||
@selection-change=" handleSelectionChange " style="width: 100%; height: 600px;">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="index" label="ID" width="50" />
|
||||
<el-table-column v-if=" state.searchName == '1' " prop="title" label="Title"
|
||||
|
@ -104,10 +89,11 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination style="margin-left: 20px;" @size-change=" onHandleSizeChange " @current-change=" onHandleCurrentChange " class="mt15"
|
||||
:page-sizes=" [10, 20, 30] " v-model:current-page=" state.tableData.param.pageNum " background
|
||||
<el-pagination style="margin-left: 20px;" @size-change=" onHandleSizeChange "
|
||||
@current-change=" onHandleCurrentChange " class="mt15" :page-sizes=" [10, 20, 30] "
|
||||
v-model:current-page=" state.tableData.param.pageNum " background
|
||||
v-model:page-size=" state.tableData.param.pageSize " layout="total, sizes, prev, pager, next"
|
||||
:total=" state.tableData.total" >
|
||||
:total=" state.tableData.total ">
|
||||
</el-pagination>
|
||||
</div>
|
||||
</el-col>
|
||||
|
@ -150,6 +136,7 @@ import { getDictionary } from '/@/api/system/dictbiz';
|
|||
import { defineAsyncComponent, reactive, onMounted, ref } from 'vue';
|
||||
import { ElMessageBox, ElMessage } from 'element-plus';
|
||||
import boot from "./component/boot.vue";
|
||||
import disasterTable from "/@/components/table/DisasterTable.vue";
|
||||
// 引入组件
|
||||
const auditRef = ref();
|
||||
const bootRef = ref();
|
||||
|
@ -250,8 +237,8 @@ const formatSizeUnits = (size) => {
|
|||
return (size / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
|
||||
}
|
||||
//灾害表格点击事件
|
||||
const tableClick = (row, column, event) => {
|
||||
state.disasterId = row.id;
|
||||
const tableClick = (i) => {
|
||||
state.disasterId = i.disasterId;
|
||||
getTableData();
|
||||
}
|
||||
// 初始化灾害表格数据
|
||||
|
@ -271,8 +258,8 @@ const getDisasterData = () => {
|
|||
}
|
||||
getList(param).then(res => {
|
||||
state.disasterData.data = res.records;
|
||||
state.disasterData.data.forEach(item=>{
|
||||
let date = item.disasterTime.slice(0,10);
|
||||
state.disasterData.data.forEach(item => {
|
||||
let date = item.disasterTime.slice(0, 10);
|
||||
item.disasterTime = date;
|
||||
})
|
||||
state.disasterData.total = res.total;
|
||||
|
@ -377,11 +364,13 @@ onMounted(() => {
|
|||
.system-role-container {
|
||||
.system-role-padding {
|
||||
padding: 15px;
|
||||
|
||||
.el-table {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mt15 {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<template>
|
||||
<el-dialog title="upload" v-model="state.isShowDialog" width="500px">
|
||||
<el-form :model="state.ruleForm" size="default" label-width="120px" :rules="rules" ref="adminAddFormRef" style="margin-left: 6%;">
|
||||
<el-form :model="state.ruleForm" size="default" label-width="120px" :rules="rules" ref="adminAddFormRef"
|
||||
style="margin-left: 6%;">
|
||||
<el-form-item label="upload picture" prop="img">
|
||||
<el-upload ref="upFileRef" class="upload-demo" drag accept="image/*" action="#" multiple :http-request="uploadPic"
|
||||
:on-remove="removePic" :before-upload="beforeUpload">
|
||||
|
@ -16,8 +17,12 @@
|
|||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item prop="title" label="data title">
|
||||
<el-input v-model="state.ruleForm.title" class="m-2" placeholder="please enter data title" :rows="3"
|
||||
type="text" style="width:220px;" />
|
||||
<el-input v-model="state.ruleForm.title" class="m-2" placeholder="please enter data title" :rows="3" type="text"
|
||||
style="width:220px;" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="sourceOrganization" label="data organization">
|
||||
<el-input v-model="state.ruleForm.sourceOrganization" class="m-2" placeholder="please enter data organization "
|
||||
:rows="3" type="text" style="width:220px;" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="type" label="data type">
|
||||
<el-select v-model="state.ruleForm.type" class="m-2" placeholder="please select data type">
|
||||
|
@ -25,9 +30,9 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="visualFlag" label="data visualFlag">
|
||||
<el-select v-model="state.ruleForm.visualFlag" placeholder="please select data visualFlag" size="default" >
|
||||
<el-option label="Visualization" value= 1></el-option>
|
||||
<el-option label="B Visualization" value= 0></el-option>
|
||||
<el-select v-model="state.ruleForm.visualFlag" placeholder="please select data visualFlag" size="default">
|
||||
<el-option label="Visualization" value=1></el-option>
|
||||
<el-option label="Not Visualization" value=0></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="remark" label="data details">
|
||||
|
@ -154,10 +159,15 @@ const onSubmit = () => {
|
|||
state.dataForm.append('disasterId', state.disasterId);
|
||||
state.dataForm.append('visualFlag', state.ruleForm.visualFlag);
|
||||
state.dataForm.append('title', state.ruleForm.title);
|
||||
state.dataForm.append('sourceOrganization', state.ruleForm.sourceOrganization);
|
||||
for (let [a, b] of state.dataForm.entries()) {
|
||||
console.log(a, b, '--------------');
|
||||
}
|
||||
uploadData(state.dataForm).then(res => {
|
||||
adminAddFormRef.value.resetFields();
|
||||
state.dataForm = new FormData(),
|
||||
state.fileArray = [];
|
||||
upFileRef.value.clearFiles();
|
||||
ElMessage.success("Upload successfully");
|
||||
emit('callback');
|
||||
}).finally(() => {
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<el-tag type="success" v-if="scope.row.isPublish == 1">YES</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="title" label="Professional title" show-overflow-tooltip
|
||||
<el-table-column prop="title" label="Title" show-overflow-tooltip
|
||||
width="150"></el-table-column>
|
||||
<el-table-column prop="size" label="Data size" width="90" show-overflow-tooltip>
|
||||
<template #default="scope">
|
||||
|
@ -252,16 +252,17 @@ const pub = (row) => {
|
|||
name:row.title
|
||||
}
|
||||
pushing(da).then(data => {
|
||||
console.log(data,"row==================");
|
||||
console.log(data,"datadatadatadata");
|
||||
if(data.code == 1500){
|
||||
ElMessage.error(data.msg);
|
||||
}
|
||||
let daNew = {
|
||||
id: row.id,
|
||||
isPublish: 1
|
||||
}
|
||||
updateEntityData(daNew).then(da => {
|
||||
|
||||
})
|
||||
updateEntityData(daNew)
|
||||
ElMessage.success('success');
|
||||
})
|
||||
|
||||
};
|
||||
|
||||
// 分页改变
|
||||
|
|
|
@ -3,25 +3,15 @@
|
|||
<el-row :gutter="22">
|
||||
<el-col :span="10">
|
||||
<div class="system-role-padding layout-padding-auto layout-padding-view" style="height: 80vh;">
|
||||
<span style="margin:2%;font-weight: 600;font-size: 18px;">Disaster Info</span>
|
||||
<el-table :data="state.disasterData.data" v-loading="state.disasterData.loading" style="width: 100%"
|
||||
highlight-current-row @row-click="tableClick">
|
||||
<el-table-column prop="disasterType" label="Disaster type" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="disasterCountry" label="Disaster country" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="disasterTime" label="Disaster time" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="Operate" label="Operate" width="85" show-overflow-tooltip>
|
||||
|
||||
<disasterTable @childClick="tableClick">
|
||||
<el-table-column prop="Operate" label="Operate" width="85" show-overflow-tooltip>
|
||||
<template #default="scope">
|
||||
<el-button size="small" text type="primary" @click="startBot(scope.row)">start</el-button>
|
||||
<!-- <el-tag type="info" v-if="scope.row.respondStatus == 3">complete</el-tag> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination style="margin-right:20px;" @size-change="onHandleDisasterSizeChange" @current-change="onHandleDisasterCurrentChange"
|
||||
class="mt15" :page-sizes="[10, 20, 30]"
|
||||
v-model:current-page="state.disasterData.param.pageNum" background
|
||||
v-model:page-size="state.disasterData.param.pageSize" layout="total, sizes, prev, pager, next"
|
||||
:total="state.disasterData.total">
|
||||
</el-pagination>
|
||||
</disasterTable>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="14">
|
||||
|
@ -154,6 +144,8 @@
|
|||
import { ref, reactive, onMounted } from 'vue';
|
||||
import { getRemoteSensingSourceData, getRemoteSensingSourceDataByCondition, getPagesRemoteSensingSourceData } from "/@/api/remoteSensingSourceData/remoteSensingSourceData.js";
|
||||
import { getDisasterPage } from '/@/api/data/otherData.js'
|
||||
import disasterTable from "/@/components/table/DisasterTable.vue";
|
||||
|
||||
// import { getList as getDisasterPage } from '/@/api/disasterInfo/index';
|
||||
|
||||
const state = reactive({
|
||||
|
@ -239,8 +231,8 @@ const getDisasterData = () => {
|
|||
}
|
||||
|
||||
// 灾害表格点击事件
|
||||
const tableClick = (row) => {
|
||||
state.disasterId = row.disasterId;
|
||||
const tableClick = (i) => {
|
||||
state.disasterId = i.disasterId;
|
||||
getData()
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,5 @@
|
|||
<template>
|
||||
<div class="container">
|
||||
<!-- <el-tabs v-model="state.activeName">
|
||||
<el-tab-pane label="Search condition"
|
||||
name="first">
|
||||
<search-condition></search-condition>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="Retrieval condition"
|
||||
name="second">
|
||||
<retrieval-condition></retrieval-condition>
|
||||
</el-tab-pane>
|
||||
</el-tabs> -->
|
||||
|
||||
<search-condition v-if ="state.isEdit" ref="edit" @response="responseFn"></search-condition>
|
||||
<retrieval-condition v-if ="!state.isEdit" @response="responseFn"></retrieval-condition>
|
||||
</div>
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
</el-icon>
|
||||
search
|
||||
</el-button>-->
|
||||
<el-button v-if="!state.nameNew" size="default" type="success" class="ml10" @click="generateData">
|
||||
Generate
|
||||
</el-button>
|
||||
<el-button v-if="!state.nameNew" size="default" type="success" class="ml10" @click="generateData">
|
||||
Generate
|
||||
</el-button>
|
||||
<el-button v-if="state.nameNew" size="default" type="success" class="ml10" @click="uploadData">
|
||||
<el-icon>
|
||||
<ele-Upload />
|
||||
|
@ -35,7 +35,7 @@
|
|||
</el-button>
|
||||
</div>
|
||||
<el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick" type="card">
|
||||
<el-tab-pane label="Word cloud" name="first" >
|
||||
<el-tab-pane label="Word cloud" name="first">
|
||||
<el-table :data="state.tableData.data" v-loading="state.tableData.loading"
|
||||
@selection-change="handleSelectionChange" style="width: 100%">
|
||||
<el-table-column type="selection" width="55" />
|
||||
|
@ -56,7 +56,7 @@
|
|||
:total="state.tableData.total">
|
||||
</el-pagination>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="Hotspot area" name="second" >
|
||||
<el-tab-pane label="Hotspot area" name="second">
|
||||
<el-table :data="state.tableData.data" v-loading="state.tableData.loading"
|
||||
@selection-change="handleSelectionHotspotChange" style="width: 100%">
|
||||
<el-table-column type="selection" width="55" />
|
||||
|
@ -109,7 +109,10 @@ import { defineAsyncComponent, reactive, onMounted, ref } from 'vue';
|
|||
import { ElMessageBox, ElMessage } from 'element-plus';
|
||||
import disasterTable from "/@/components/table/DisasterTable.vue";
|
||||
import { ta } from 'element-plus/es/locale';
|
||||
import { landsat } from '/@/api/crawl/index.js'
|
||||
import { landsat, submit } from '/@/api/crawl/index.js'
|
||||
import { useUserInfo } from '/@/stores/userInfo';
|
||||
|
||||
const userInfo = useUserInfo();
|
||||
// 引入组件
|
||||
const RoleDialog = defineAsyncComponent(() => import('/@/views/system/role/dialog.vue'));
|
||||
const auditRef = ref();
|
||||
|
@ -117,7 +120,7 @@ const uploadRef = ref();
|
|||
// 定义变量内容
|
||||
const roleDialogRef = ref();
|
||||
const state = reactive({
|
||||
nameNew:false,
|
||||
nameNew: false,
|
||||
multipleWord: [],
|
||||
multipleHotspot: [],
|
||||
tabVal: 'first',
|
||||
|
@ -153,9 +156,9 @@ const handleSelectionHotspotChange = (val) => {
|
|||
}
|
||||
|
||||
const handleClick = (tab) => {
|
||||
if (tab=="second") {
|
||||
if (tab == "second") {
|
||||
state.nameNew = true;
|
||||
}else{
|
||||
} else {
|
||||
state.nameNew = false;
|
||||
}
|
||||
state.tabVal = tab;
|
||||
|
@ -205,6 +208,8 @@ const formatSizeUnits = (size) => {
|
|||
}
|
||||
//灾害表格点击事件
|
||||
const tableClick = (i) => {
|
||||
console.log(i);
|
||||
|
||||
state.disasterId = i.disasterId;
|
||||
getTableData();
|
||||
}
|
||||
|
@ -213,8 +218,8 @@ const getDisasterData = () => {
|
|||
state.disasterData.loading = true;
|
||||
getDisasterPage(state.disasterData.param.pageNum, state.disasterData.param.pageSize, {}).then(res => {
|
||||
state.disasterData.data = res.records;
|
||||
state.disasterData.data.forEach(item=>{
|
||||
let date = item.disasterTime.slice(0,10);
|
||||
state.disasterData.data.forEach(item => {
|
||||
let date = item.disasterTime.slice(0, 10);
|
||||
item.disasterTime = date;
|
||||
})
|
||||
state.disasterData.total = res.total;
|
||||
|
@ -249,10 +254,29 @@ const uploadData = () => {
|
|||
state.tabVal == 'first' ? wordCloudsRef.value.openDialog(state.disasterId) : hotspotRef.value.openDialog(state.disasterId);
|
||||
};
|
||||
//获取图文信息
|
||||
const generateData =()=>{
|
||||
landsat(state.disasterId).then(da=>{
|
||||
console.log(da);
|
||||
|
||||
const generateData = () => {
|
||||
if (!state.disasterId) {
|
||||
ElMessage.error("Please select disaster information!")
|
||||
return;
|
||||
}
|
||||
//记录爬虫信息
|
||||
submit(
|
||||
{
|
||||
type: 8,
|
||||
manageId: userInfo.userInfos.id,
|
||||
status: 0,
|
||||
disasterId: state.disasterId,
|
||||
keywords: 'word clouds',
|
||||
}
|
||||
).then(ret => {
|
||||
if (ret == 1042) {
|
||||
ElMessage.error("error")
|
||||
} else {
|
||||
landsat(ret.disasterId, 30, ret.id).then(res => {
|
||||
getTableData;
|
||||
ElMessage.success("success")
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -262,7 +286,7 @@ const editHotspot = (row) => {
|
|||
};
|
||||
// 打开修改词云弹窗
|
||||
const editWordCloud = (row) => {
|
||||
editWordCloudsRef.value.openDialog(row);
|
||||
editWordCloudsRef.value.openDialog(row);
|
||||
};
|
||||
//批量删除词云或者热点数据
|
||||
const batchDel = () => {
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
</el-form-item>
|
||||
<el-form-item class="login-animation3" v-if="state.captchaMode">
|
||||
<el-col :span="15">
|
||||
<el-input text maxlength="3" placeholder="Please input validate code" v-model="state.ruleForm.code" clearable autocomplete="off">
|
||||
<el-input text maxlength="5" placeholder="Please input validate code" v-model="state.ruleForm.code" clearable autocomplete="off">
|
||||
<template #prefix>
|
||||
<el-icon class="el-input__icon"><ele-Position /></el-icon>
|
||||
</template>
|
||||
|
|
|
@ -1,40 +1,34 @@
|
|||
<template>
|
||||
<div class="login-container flex">
|
||||
<div class="login-left">
|
||||
|
||||
<div class="login-left-logo">
|
||||
<img :src="logoMini" />
|
||||
<div class="login-left-logo-text">
|
||||
<span>{{ getThemeConfig.globalViceTitle }}</span>
|
||||
<span class="login-left-logo-text-msg">{{ getThemeConfig.globalViceTitleMsg }}</span>
|
||||
</div>
|
||||
<img src="/logo.png">
|
||||
|
||||
</div>
|
||||
<div class="login-left-img">
|
||||
<img :src="loginMain" />
|
||||
</div>
|
||||
<img :src="loginBg" class="login-left-waves" />
|
||||
</div>
|
||||
<div class="login-right flex">
|
||||
<div class="login-right-warp flex-margin">
|
||||
<span class="login-right-warp-one"></span>
|
||||
<span class="login-right-warp-two"></span>
|
||||
<div class="login-right-warp-mian">
|
||||
<div class="login-right-warp-main-title">{{ getThemeConfig.globalTitle }} 欢迎您!</div>
|
||||
<div class="login-right-warp-main-title">Welcome To VoRDM!</div>
|
||||
<div class="login-right-warp-main-form">
|
||||
<div v-if="!state.isScan">
|
||||
<el-tabs v-model="state.tabsActiveName">
|
||||
<el-tab-pane label="Account Login" name="account">
|
||||
<Account />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="手机号登录" name="mobile">
|
||||
<!-- <el-tab-pane label="手机号登录" name="mobile">
|
||||
<Mobile />
|
||||
</el-tab-pane>
|
||||
</el-tab-pane> -->
|
||||
</el-tabs>
|
||||
</div>
|
||||
<Scan v-if="state.isScan" />
|
||||
<div class="login-content-main-sacn" @click="state.isScan = !state.isScan">
|
||||
<!-- <Scan v-if="state.isScan" /> -->
|
||||
<!-- <div class="login-content-main-sacn" @click="state.isScan = !state.isScan">
|
||||
<i class="iconfont" :class="state.isScan ? 'icon-diannao1' : 'icon-barcode-qr'"></i>
|
||||
<div class="login-content-main-sacn-delta"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -78,11 +72,15 @@ onMounted(() => {
|
|||
.login-container {
|
||||
height: 100%;
|
||||
background: var(--el-color-white);
|
||||
|
||||
.login-left {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
background-color: rgba(211, 239, 255, 1);
|
||||
margin-right: 100px;
|
||||
// background-color: rgba(211, 239, 255, 1);
|
||||
// margin-right: 100px;
|
||||
background: url(/home1.png) no-repeat;
|
||||
background-size: 100% 100%;
|
||||
|
||||
.login-left-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
@ -91,24 +89,29 @@ onMounted(() => {
|
|||
left: 80px;
|
||||
z-index: 1;
|
||||
animation: logoAnimation 0.3s ease;
|
||||
|
||||
img {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
width: 60%;
|
||||
height: 70%;
|
||||
}
|
||||
|
||||
.login-left-logo-text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
span {
|
||||
margin-left: 10px;
|
||||
font-size: 28px;
|
||||
color: #26a59a;
|
||||
}
|
||||
|
||||
.login-left-logo-text-msg {
|
||||
font-size: 12px;
|
||||
color: #32a99e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.login-left-img {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
|
@ -116,20 +119,24 @@ onMounted(() => {
|
|||
transform: translate(-50%, -50%);
|
||||
width: 100%;
|
||||
height: 52%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
animation: error-num 0.6s ease;
|
||||
}
|
||||
}
|
||||
|
||||
.login-left-waves {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: -100px;
|
||||
}
|
||||
}
|
||||
|
||||
.login-right {
|
||||
width: 700px;
|
||||
|
||||
.login-right-warp {
|
||||
border: 1px solid var(--el-color-primary-light-3);
|
||||
border-radius: 3px;
|
||||
|
@ -138,12 +145,14 @@ onMounted(() => {
|
|||
position: relative;
|
||||
overflow: hidden;
|
||||
background-color: var(--el-color-white);
|
||||
|
||||
.login-right-warp-one,
|
||||
.login-right-warp-two {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: inherit;
|
||||
height: inherit;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: '';
|
||||
|
@ -151,6 +160,7 @@ onMounted(() => {
|
|||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.login-right-warp-one {
|
||||
&::before {
|
||||
filter: hue-rotate(0deg);
|
||||
|
@ -161,6 +171,7 @@ onMounted(() => {
|
|||
background: linear-gradient(90deg, transparent, var(--el-color-primary));
|
||||
animation: loginLeft 3s linear infinite;
|
||||
}
|
||||
|
||||
&::after {
|
||||
filter: hue-rotate(60deg);
|
||||
top: -100%;
|
||||
|
@ -172,6 +183,7 @@ onMounted(() => {
|
|||
animation-delay: 0.7s;
|
||||
}
|
||||
}
|
||||
|
||||
.login-right-warp-two {
|
||||
&::before {
|
||||
filter: hue-rotate(120deg);
|
||||
|
@ -183,6 +195,7 @@ onMounted(() => {
|
|||
animation: loginRight 3s linear infinite;
|
||||
animation-delay: 1.4s;
|
||||
}
|
||||
|
||||
&::after {
|
||||
filter: hue-rotate(300deg);
|
||||
bottom: -100%;
|
||||
|
@ -194,10 +207,12 @@ onMounted(() => {
|
|||
animation-delay: 2.1s;
|
||||
}
|
||||
}
|
||||
|
||||
.login-right-warp-mian {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
|
||||
.login-right-warp-main-title {
|
||||
height: 130px;
|
||||
line-height: 130px;
|
||||
|
@ -208,9 +223,11 @@ onMounted(() => {
|
|||
animation-delay: 0.3s;
|
||||
color: var(--el-text-color-primary);
|
||||
}
|
||||
|
||||
.login-right-warp-main-form {
|
||||
flex: 1;
|
||||
padding: 0 50px 50px;
|
||||
|
||||
.login-content-main-sacn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -221,6 +238,7 @@ onMounted(() => {
|
|||
cursor: pointer;
|
||||
transition: all ease 0.3s;
|
||||
color: var(--el-color-primary);
|
||||
|
||||
&-delta {
|
||||
position: absolute;
|
||||
width: 35px;
|
||||
|
@ -231,11 +249,13 @@ onMounted(() => {
|
|||
background: var(--el-color-white);
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
transition: all ease 0.3s;
|
||||
color: var(--el-color-primary) !important;
|
||||
}
|
||||
|
||||
i {
|
||||
width: 47px;
|
||||
height: 50px;
|
||||
|
|
Loading…
Reference in New Issue