抽离列表弹窗为新窗口并去掉网站进来时的loading效果
This commit is contained in:
@ -1,207 +1,207 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
|
||||
/>
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
|
||||
<title><%= webpackConfig.name %></title>
|
||||
<style>
|
||||
html,
|
||||
body,
|
||||
#app {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
.chromeframe {
|
||||
margin: 0.2em 0;
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
|
||||
#loader-wrapper {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 999999;
|
||||
}
|
||||
|
||||
#loader {
|
||||
display: block;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
margin: -75px 0 0 -75px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #FFF;
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
-ms-animation: spin 2s linear infinite;
|
||||
-moz-animation: spin 2s linear infinite;
|
||||
-o-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
#loader:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
right: 5px;
|
||||
bottom: 5px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #FFF;
|
||||
-webkit-animation: spin 3s linear infinite;
|
||||
-moz-animation: spin 3s linear infinite;
|
||||
-o-animation: spin 3s linear infinite;
|
||||
-ms-animation: spin 3s linear infinite;
|
||||
animation: spin 3s linear infinite;
|
||||
}
|
||||
|
||||
#loader:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
left: 15px;
|
||||
right: 15px;
|
||||
bottom: 15px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #FFF;
|
||||
-moz-animation: spin 1.5s linear infinite;
|
||||
-o-animation: spin 1.5s linear infinite;
|
||||
-ms-animation: spin 1.5s linear infinite;
|
||||
-webkit-animation: spin 1.5s linear infinite;
|
||||
animation: spin 1.5s linear infinite;
|
||||
}
|
||||
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
<style>
|
||||
html,
|
||||
body,
|
||||
#app {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
.chromeframe {
|
||||
margin: 0.2em 0;
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
#loader-wrapper {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 999999;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
|
||||
#loader {
|
||||
display: block;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
margin: -75px 0 0 -75px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #fff;
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
-ms-animation: spin 2s linear infinite;
|
||||
-moz-animation: spin 2s linear infinite;
|
||||
-o-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
z-index: 1001;
|
||||
}
|
||||
}
|
||||
|
||||
#loader:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
right: 5px;
|
||||
bottom: 5px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #fff;
|
||||
-webkit-animation: spin 3s linear infinite;
|
||||
-moz-animation: spin 3s linear infinite;
|
||||
-o-animation: spin 3s linear infinite;
|
||||
-ms-animation: spin 3s linear infinite;
|
||||
animation: spin 3s linear infinite;
|
||||
}
|
||||
|
||||
#loader-wrapper .loader-section {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 51%;
|
||||
height: 100%;
|
||||
background: #7171C6;
|
||||
z-index: 1000;
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
#loader:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
left: 15px;
|
||||
right: 15px;
|
||||
bottom: 15px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid transparent;
|
||||
border-top-color: #fff;
|
||||
-moz-animation: spin 1.5s linear infinite;
|
||||
-o-animation: spin 1.5s linear infinite;
|
||||
-ms-animation: spin 1.5s linear infinite;
|
||||
-webkit-animation: spin 1.5s linear infinite;
|
||||
animation: spin 1.5s linear infinite;
|
||||
}
|
||||
|
||||
#loader-wrapper .loader-section.section-left {
|
||||
left: 0;
|
||||
}
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
#loader-wrapper .loader-section.section-right {
|
||||
right: 0;
|
||||
}
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
#loader-wrapper .loader-section {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 51%;
|
||||
height: 100%;
|
||||
background: #7171c6;
|
||||
z-index: 1000;
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
.loaded #loader-wrapper .loader-section.section-left {
|
||||
-webkit-transform: translateX(-100%);
|
||||
-ms-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
||||
}
|
||||
#loader-wrapper .loader-section.section-left {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.loaded #loader-wrapper .loader-section.section-right {
|
||||
-webkit-transform: translateX(100%);
|
||||
-ms-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
||||
}
|
||||
#loader-wrapper .loader-section.section-right {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.loaded #loader {
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.3s ease-out;
|
||||
transition: all 0.3s ease-out;
|
||||
}
|
||||
.loaded #loader-wrapper .loader-section.section-left {
|
||||
-webkit-transform: translateX(-100%);
|
||||
-ms-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
}
|
||||
|
||||
.loaded #loader-wrapper {
|
||||
visibility: hidden;
|
||||
-webkit-transform: translateY(-100%);
|
||||
-ms-transform: translateY(-100%);
|
||||
transform: translateY(-100%);
|
||||
-webkit-transition: all 0.3s 1s ease-out;
|
||||
transition: all 0.3s 1s ease-out;
|
||||
}
|
||||
.loaded #loader-wrapper .loader-section.section-right {
|
||||
-webkit-transform: translateX(100%);
|
||||
-ms-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
}
|
||||
|
||||
.no-js #loader-wrapper {
|
||||
display: none;
|
||||
}
|
||||
.loaded #loader {
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.3s ease-out;
|
||||
transition: all 0.3s ease-out;
|
||||
}
|
||||
|
||||
.no-js h1 {
|
||||
color: #222222;
|
||||
}
|
||||
.loaded #loader-wrapper {
|
||||
visibility: hidden;
|
||||
-webkit-transform: translateY(-100%);
|
||||
-ms-transform: translateY(-100%);
|
||||
transform: translateY(-100%);
|
||||
-webkit-transition: all 0.3s 1s ease-out;
|
||||
transition: all 0.3s 1s ease-out;
|
||||
}
|
||||
|
||||
#loader-wrapper .load_title {
|
||||
font-family: 'Open Sans';
|
||||
color: #FFF;
|
||||
font-size: 19px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
z-index: 9999999999999;
|
||||
position: absolute;
|
||||
top: 60%;
|
||||
opacity: 1;
|
||||
line-height: 30px;
|
||||
}
|
||||
.no-js #loader-wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#loader-wrapper .load_title span {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-size: 13px;
|
||||
color: #FFF;
|
||||
opacity: 0.5;
|
||||
}
|
||||
</style>
|
||||
.no-js h1 {
|
||||
color: #222222;
|
||||
}
|
||||
|
||||
#loader-wrapper .load_title {
|
||||
font-family: 'Open Sans';
|
||||
color: #fff;
|
||||
font-size: 19px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
z-index: 9999999999999;
|
||||
position: absolute;
|
||||
top: 60%;
|
||||
opacity: 1;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
#loader-wrapper .load_title span {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-size: 13px;
|
||||
color: #fff;
|
||||
opacity: 0.5;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
<div id="loader-wrapper">
|
||||
<!-- <div id="loader-wrapper">
|
||||
<div id="loader"></div>
|
||||
<div class="loader-section section-left"></div>
|
||||
<div class="loader-section section-right"></div>
|
||||
<div class="load_title">正在加载系统资源,请耐心等待</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -116,6 +116,11 @@ export const constantRoutes = [
|
||||
component: resolve => require(['@/views/search'], resolve),
|
||||
name: 'search'
|
||||
},
|
||||
{
|
||||
path: '/result',
|
||||
component: resolve => require(['@/views/result'], resolve),
|
||||
name: 'result'
|
||||
},
|
||||
{
|
||||
path: '/404',
|
||||
component: resolve => require(['@/views/error/404'], resolve),
|
||||
|
@ -38,9 +38,20 @@
|
||||
:key="item.id"
|
||||
>
|
||||
<span :class="index < 3 ? 'color' : ''">{{ index + 1 }}</span>
|
||||
<span class="text_hidden_one text_18_333 pointer">{{
|
||||
<!-- <span class="text_hidden_one text_18_333 pointer">{{
|
||||
item.title
|
||||
}}</span>
|
||||
}}</span> -->
|
||||
<span class="text_hidden_one text_18_333 pointer">
|
||||
<router-link
|
||||
target="_blank"
|
||||
:to="{
|
||||
path: '/result',
|
||||
query: { key: 'policyRead', id: item.id }
|
||||
}"
|
||||
>
|
||||
{{ item.title }}
|
||||
</router-link>
|
||||
</span>
|
||||
<i v-if="index < 3">
|
||||
<img src="@/assets/image/new.png" alt="" />
|
||||
</i>
|
||||
@ -68,7 +79,18 @@
|
||||
<el-tab-pane label="其他" name="1415157049267982336"></el-tab-pane>
|
||||
<div style="min-height:290px">
|
||||
<div class="banner_r_list" v-for="item in list" :key="item.id">
|
||||
<div class="text_18_333 pointer">{{ item.title }}</div>
|
||||
<!-- <div class="text_18_333 pointer">{{ item.title }}</div> -->
|
||||
<div class="text_18_333 pointer">
|
||||
<router-link
|
||||
target="_blank"
|
||||
:to="{
|
||||
path: '/result',
|
||||
query: { key: 'policy', id: item.id }
|
||||
}"
|
||||
>
|
||||
{{ item.title }}
|
||||
</router-link>
|
||||
</div>
|
||||
<span>{{ parseTime(item.listDate, '{m}-{d}') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -85,7 +107,18 @@
|
||||
</div>
|
||||
<div class="tab_list">
|
||||
<div class="banner_r_list" v-for="item in list3" :key="item.id">
|
||||
<div class="text_18_333 pointer">{{ item.title }}</div>
|
||||
<!-- <div class="text_18_333 pointer">{{ item.title }}</div> -->
|
||||
<div class="text_18_333 pointer">
|
||||
<router-link
|
||||
target="_blank"
|
||||
:to="{
|
||||
path: '/result',
|
||||
query: { key: 'information', id: item.id }
|
||||
}"
|
||||
>
|
||||
{{ item.title }}
|
||||
</router-link>
|
||||
</div>
|
||||
<span>{{ parseTime(item.createTime, '{m}-{d}') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
139
src/views/result.vue
Normal file
139
src/views/result.vue
Normal file
@ -0,0 +1,139 @@
|
||||
<template>
|
||||
<!-- 预览弹出层 -->
|
||||
<div class="result_page content">
|
||||
<h2>{{ formData.title }}</h2>
|
||||
<div class="info" v-if="type != 'information'">
|
||||
<span v-if="type != 'companyNeed' && type != 'scienceResult'"
|
||||
>来源:{{ formData.source }}</span
|
||||
>
|
||||
<span v-if="type == 'companyNeed'">价格:{{ formData.price }}</span>
|
||||
<el-image
|
||||
v-if="type == 'scienceResult'"
|
||||
style="width: 100px; height: 100px"
|
||||
:src="formData.picList ? formData.picList[0] : ''"
|
||||
fit="cover"
|
||||
:preview-src-list="formData.picList"
|
||||
></el-image>
|
||||
<span
|
||||
>发布:{{
|
||||
formData.listDate || parseTime(formData.createTime, '{y}-{m}-{d}')
|
||||
}}</span
|
||||
>
|
||||
<span v-if="token && type == 'policy'">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
v-if="formData.collected == 0"
|
||||
@click="addItem"
|
||||
>
|
||||
<i class="el-icon-star-on"></i><span>收藏</span>
|
||||
</el-button>
|
||||
<el-button
|
||||
type="info"
|
||||
size="mini"
|
||||
v-if="formData.collected == 1"
|
||||
@click="cancelItem"
|
||||
>
|
||||
<i class="el-icon-star-on"></i><span>取消收藏</span>
|
||||
</el-button>
|
||||
</span>
|
||||
</div>
|
||||
<!-- <div v-html="formData.text"></div> -->
|
||||
<div id="text">
|
||||
<editor v-model="formData.text" :min-height="192" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
search,
|
||||
getPolicyInfo,
|
||||
getPolicyReadInfo,
|
||||
getInfo,
|
||||
getInfo2,
|
||||
getInfo3
|
||||
} from '@/api/search';
|
||||
import { mapGetters } from 'vuex';
|
||||
import { add, cancel } from '@/api/search';
|
||||
import Editor from '@/components/Editor';
|
||||
export default {
|
||||
components: {
|
||||
Editor
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
type: '',
|
||||
formData: {}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['token'])
|
||||
},
|
||||
methods: {
|
||||
addItem() {
|
||||
add({ policyId: this.formData.id }).then(res => {
|
||||
this.formData.collected = 1;
|
||||
this.msgSuccess('操作成功');
|
||||
});
|
||||
},
|
||||
cancelItem() {
|
||||
cancel({ policyId: this.formData.id }).then(res => {
|
||||
this.formData.collected = 0;
|
||||
this.msgSuccess('操作成功');
|
||||
});
|
||||
}
|
||||
},
|
||||
created() {
|
||||
let { key, id } = this.$route.query;
|
||||
this.type = key;
|
||||
if (this.type == 'policy') {
|
||||
// 政策
|
||||
getPolicyInfo({ policyId: id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (this.type == 'policyRead') {
|
||||
// 政策解读
|
||||
getPolicyReadInfo({ readId: id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (this.type == 'information') {
|
||||
// 资讯快报
|
||||
getInfo({ id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (this.type == 'companyNeed') {
|
||||
// 企业需求
|
||||
getInfo2({ id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (this.type == 'scienceResult') {
|
||||
// 科学成功
|
||||
getInfo3({ id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/deep/.el-dialog__body {
|
||||
padding-top: 0;
|
||||
}
|
||||
.result_page {
|
||||
.info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
#text {
|
||||
margin-top: 30px;
|
||||
/deep/.ql-toolbar {
|
||||
display: none;
|
||||
}
|
||||
/deep/.editor {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -13,13 +13,24 @@
|
||||
<el-divider></el-divider>
|
||||
<div class="item_i" v-for="(item, index2) in value" :key="index2">
|
||||
<div>
|
||||
<h4 class="pointer" @click="handleItem(key, item.id)">
|
||||
{{ item.title }}
|
||||
<h4 class="pointer">
|
||||
<router-link
|
||||
target="_blank"
|
||||
:to="{ path: '/result', query: { key, id: item.id } }"
|
||||
>{{ item.title }}</router-link
|
||||
>
|
||||
</h4>
|
||||
<div class="info" v-if="key == 'policy' || key == 'policyRead'">
|
||||
<div>来源:{{ item.source }}</div>
|
||||
<div>发布:{{ item.listDate }}</div>
|
||||
</div>
|
||||
<div
|
||||
class="info"
|
||||
style="justify-content: flex-end"
|
||||
v-if="key == 'information'"
|
||||
>
|
||||
<div>发布:{{ parseTime(item.listDate, '{y}-{m}-{d}') }}</div>
|
||||
</div>
|
||||
<div
|
||||
class="info"
|
||||
v-else-if="key == 'companyNeed' || key == 'scienceResult'"
|
||||
@ -83,38 +94,7 @@ export default {
|
||||
},
|
||||
deep: true
|
||||
},
|
||||
methods: {
|
||||
handleItem(key, id) {
|
||||
this.type = key;
|
||||
this.dialogVisible = true;
|
||||
if (key == 'policy') {
|
||||
// 政策
|
||||
getPolicyInfo({ policyId: id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (key == 'policyRead') {
|
||||
// 政策解读
|
||||
getPolicyReadInfo({ readId: id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (key == 'information') {
|
||||
// 资讯快报
|
||||
getInfo({ id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (key == 'companyNeed') {
|
||||
// 企业需求
|
||||
getInfo2({ id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
} else if (key == 'scienceResult') {
|
||||
// 科学成功
|
||||
getInfo3({ id }).then(({ data }) => {
|
||||
this.formData = data;
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {},
|
||||
created() {
|
||||
let { val: param } = this.$route.query;
|
||||
search({ param }).then(({ data }) => {
|
||||
|
Reference in New Issue
Block a user