解决下载路径为空
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { downloadFile } from '@/api/system-boot/file'
|
import { downloadFile } from '@/api/system-boot/file'
|
||||||
// 下载文件
|
// 下载文件
|
||||||
export const download = (urls: string) => {
|
export const download = (urls: any) => {
|
||||||
console.log("🚀 ~ download ~ urls:", urls)
|
|
||||||
downloadFile({ filePath: urls }).then((res: any) => {
|
downloadFile({ filePath: urls }).then((res: any) => {
|
||||||
let blob = new Blob([res], {
|
let blob = new Blob([res], {
|
||||||
type: urls.includes('.pdf')
|
type: urls.includes('.pdf')
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="所在地市">
|
<el-descriptions-item label="所在地市">
|
||||||
{{ detailData.city }}
|
{{ detailData.city }}
|
||||||
@@ -209,6 +213,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive, watch } from 'vue'
|
import { onMounted, ref, reactive, watch } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<!-- <h1>详细信息回显</h1>-->
|
<!-- <h1>详细信息回显</h1>-->
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="普测计划名称">
|
<el-descriptions-item label="普测计划名称">
|
||||||
@@ -50,6 +54,7 @@
|
|||||||
</vxe-table>
|
</vxe-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class='default-main'>
|
<div class='default-main'>
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column='2' label-width="140px" border>
|
<el-descriptions :column='2' label-width="140px" border>
|
||||||
<el-descriptions-item label='技术监督计划名称'>
|
<el-descriptions-item label='技术监督计划名称'>
|
||||||
{{ detailData?.planName }}
|
{{ detailData?.planName }}
|
||||||
@@ -44,6 +48,7 @@
|
|||||||
</vxe-table>
|
</vxe-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="技术监督计划名称">
|
<el-descriptions-item label="技术监督计划名称">
|
||||||
{{ detailData?.planName }}
|
{{ detailData?.planName }}
|
||||||
@@ -88,6 +92,8 @@
|
|||||||
</el-descriptions-item> -->
|
</el-descriptions-item> -->
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-divider content-position="left">干扰源用户信息</el-divider>
|
<el-divider content-position="left">干扰源用户信息</el-divider>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="工程预期投产日期">
|
<el-descriptions-item label="工程预期投产日期">
|
||||||
@@ -313,6 +317,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive, nextTick } from 'vue'
|
import { onMounted, ref, reactive, nextTick } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<div style="display: flex; justify-content: space-between">
|
<div style="display: flex; justify-content: space-between">
|
||||||
<el-descriptions :column="1" border style="flex: 1" class="mr20" title="变更前">
|
<el-descriptions :column="1" border style="flex: 1" class="mr20" title="变更前">
|
||||||
<el-descriptions-item label="填报人">
|
<el-descriptions-item label="填报人">
|
||||||
@@ -643,6 +647,7 @@
|
|||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive, watch } from 'vue'
|
import { onMounted, ref, reactive, watch } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<!-- 加载状态显示 -->
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="填报人">
|
<el-descriptions-item label="填报人">
|
||||||
{{ detailData.reporter }}
|
{{ detailData.reporter }}
|
||||||
@@ -290,6 +295,8 @@
|
|||||||
{{ proviteData?.predictionEvaluationReviewOpinions?.name }}
|
{{ proviteData?.predictionEvaluationReviewOpinions?.name }}
|
||||||
</span >
|
</span >
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
<el-descriptions-item
|
<el-descriptions-item
|
||||||
label="用户接入变电站主接线示意图"
|
label="用户接入变电站主接线示意图"
|
||||||
v-if="detailData.userType != 0 && detailData.userType != 1"
|
v-if="detailData.userType != 0 && detailData.userType != 1"
|
||||||
@@ -446,6 +453,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive, watch } from 'vue'
|
import { onMounted, ref, reactive, watch } from 'vue'
|
||||||
@@ -481,6 +489,7 @@ const detailData = ref<any>({}) // 详情数据
|
|||||||
const devIdList = ref([])
|
const devIdList = ref([])
|
||||||
const queryId = query.id as unknown as string // 从 URL 传递过来的 id 编号
|
const queryId = query.id as unknown as string // 从 URL 传递过来的 id 编号
|
||||||
const openFile = (name: any) => {
|
const openFile = (name: any) => {
|
||||||
|
|
||||||
window.open(window.location.origin + '/#/previewFile?/supervision/' + name)
|
window.open(window.location.origin + '/#/previewFile?/supervision/' + name)
|
||||||
}
|
}
|
||||||
const netInReportList: any = ref([])
|
const netInReportList: any = ref([])
|
||||||
@@ -581,7 +590,7 @@ const getInfo = async () => {
|
|||||||
detailLoading.value = false
|
detailLoading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(form.value)
|
|
||||||
if (props.openType == 'sourcesOfInterference') {
|
if (props.openType == 'sourcesOfInterference') {
|
||||||
queryFiles()
|
queryFiles()
|
||||||
}
|
}
|
||||||
@@ -656,7 +665,7 @@ const queryFiles = () => {
|
|||||||
}
|
}
|
||||||
//判断userType选择取用的对象
|
//判断userType选择取用的对象
|
||||||
const getProviteData = async () => {
|
const getProviteData = async () => {
|
||||||
console.log('energyQualityIndexList', energyQualityIndexList)
|
|
||||||
if (detailData.value.userType == '0' || detailData.value.userType == '1') {
|
if (detailData.value.userType == '0' || detailData.value.userType == '1') {
|
||||||
proviteData.value = detailData.value.userReportProjectPO
|
proviteData.value = detailData.value.userReportProjectPO
|
||||||
//查询非线性终端类型
|
//查询非线性终端类型
|
||||||
@@ -679,7 +688,7 @@ const getProviteData = async () => {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
proviteData.value = detailData.value.userReportSensitivePO
|
proviteData.value = detailData.value.userReportSensitivePO
|
||||||
console.log(proviteData.value.energyQualityIndex)
|
|
||||||
console.log(
|
console.log(
|
||||||
'proviteData.value.nonlinearLoadType',
|
'proviteData.value.nonlinearLoadType',
|
||||||
energyQualityIndexList.find(item => {
|
energyQualityIndexList.find(item => {
|
||||||
@@ -715,6 +724,8 @@ const getProviteData = async () => {
|
|||||||
proviteData.value.predictionEvaluationReviewOpinions,
|
proviteData.value.predictionEvaluationReviewOpinions,
|
||||||
'predictionEvaluationReviewOpinions'
|
'predictionEvaluationReviewOpinions'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//用户接入变电站主接线示意图
|
//用户接入变电站主接线示意图
|
||||||
if (
|
if (
|
||||||
@@ -807,9 +818,10 @@ const getFileNamePath = async (val: any, pathName: any) => {
|
|||||||
) {
|
) {
|
||||||
proviteData.value.predictionEvaluationReviewOpinions = {
|
proviteData.value.predictionEvaluationReviewOpinions = {
|
||||||
name: res.data.fileName,
|
name: res.data.fileName,
|
||||||
keyName: res.data.name,
|
keyName: val,
|
||||||
url: res.data.url
|
url: res.data.url
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//用户接入变电站主接线示意图
|
//用户接入变电站主接线示意图
|
||||||
else if (pathName == 'substationMainWiringDiagram' && proviteData.value.substationMainWiringDiagram) {
|
else if (pathName == 'substationMainWiringDiagram' && proviteData.value.substationMainWiringDiagram) {
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="计划名称">
|
<el-descriptions-item label="计划名称">
|
||||||
{{ detailData.workPlanName }}
|
{{ detailData.workPlanName }}
|
||||||
@@ -144,6 +148,7 @@
|
|||||||
<span class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</span >
|
<span class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</span >
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive } from 'vue'
|
import { onMounted, ref, reactive } from 'vue'
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--工作流view的路径:/pqs/supervise/retire/detail-->
|
<!--工作流view的路径:/pqs/supervise/retire/detail-->
|
||||||
<div class='default-main'>
|
<div class='default-main'>
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<!-- <h1>详细信息回显</h1>-->
|
<!-- <h1>详细信息回显</h1>-->
|
||||||
<el-descriptions :column='2' border>
|
<el-descriptions :column='2' border>
|
||||||
<el-descriptions-item label='供电公司'>
|
<el-descriptions-item label='供电公司'>
|
||||||
@@ -42,6 +46,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--工作流view的路径:/pqs/supervise/technology/detail-->
|
<!--工作流view的路径:/pqs/supervise/technology/detail-->
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<!-- <h1>详细信息回显</h1>-->
|
<!-- <h1>详细信息回显</h1>-->
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item :label="detailData.leafletType == 1 ? '预警单名称' : '告警单名称'">
|
<el-descriptions-item :label="detailData.leafletType == 1 ? '预警单名称' : '告警单名称'">
|
||||||
@@ -34,6 +38,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="填报人">
|
<el-descriptions-item label="填报人">
|
||||||
{{ detailData.reporter }}
|
{{ detailData.reporter }}
|
||||||
@@ -434,6 +438,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive, watch } from 'vue'
|
import { onMounted, ref, reactive, watch } from 'vue'
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<!-- <h1>详细信息回显</h1>-->
|
<!-- <h1>详细信息回显</h1>-->
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="变电站">
|
<el-descriptions-item label="变电站">
|
||||||
@@ -36,6 +40,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="监测点名称">
|
<el-descriptions-item label="监测点名称">
|
||||||
{{ detailData.lineName }}
|
{{ detailData.lineName }}
|
||||||
@@ -19,6 +23,7 @@
|
|||||||
{{ detailData.powerSubstationName }}
|
{{ detailData.powerSubstationName }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive } from 'vue'
|
import { onMounted, ref, reactive } from 'vue'
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="监测点台账信息" v-if="detailData.lineFilePath">
|
<el-descriptions-item label="监测点台账信息" v-if="detailData.lineFilePath">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
@@ -121,6 +125,7 @@
|
|||||||
</span >
|
</span >
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive } from 'vue'
|
import { onMounted, ref, reactive } from 'vue'
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="填报人">
|
<el-descriptions-item label="填报人">
|
||||||
{{ detailData.reporter }}
|
{{ detailData.reporter }}
|
||||||
@@ -282,6 +286,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive } from 'vue'
|
import { onMounted, ref, reactive } from 'vue'
|
||||||
@@ -510,6 +515,7 @@ const getFileNamePath = async (val: any, pathName: any) => {
|
|||||||
else if (pathName == 'performanceTestReport' && detailData.value.performanceTestReport) {
|
else if (pathName == 'performanceTestReport' && detailData.value.performanceTestReport) {
|
||||||
detailData.value.performanceTestReport = {
|
detailData.value.performanceTestReport = {
|
||||||
name: res.data.fileName,
|
name: res.data.fileName,
|
||||||
|
keyName: res.data.name,
|
||||||
url: res.data.url
|
url: res.data.url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
<div v-if="detailLoading" class="loading">
|
||||||
|
<el-spin description="加载中..." />
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="监测点名称">
|
<el-descriptions-item label="监测点名称">
|
||||||
{{ detailData.lineName }}
|
{{ detailData.lineName }}
|
||||||
@@ -35,6 +39,7 @@
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, reactive } from 'vue'
|
import { onMounted, ref, reactive } from 'vue'
|
||||||
|
|||||||
Reference in New Issue
Block a user