96da769e by lihua

下载数据前先调用检查接口

1 parent 58a91e65
......@@ -54,6 +54,12 @@ export const downloadTableData = (params) => request({
responseType: 'blob'
});
/** 下载数据前的检查 */
export const downloadTableDataCheck = (params) => request({
url: `${import.meta.env.VITE_APP_DIGITAL_CONTRACT_URL}/contract-use/download-check?userGuid=${params.userGuid}&subjectGuid=${params.subjectGuid}`,
method: 'get'
});
/** 数据使用中查看资产表的数据 */
export const queryUseData = (params) => request({
url: `${import.meta.env.VITE_APP_DIGITAL_CONTRACT_URL}/contract-use/read?userGuid=${params.userGuid}&subjectGuid=${params.subjectGuid}`,
......
......@@ -30,7 +30,8 @@ import { CircleCloseFilled } from '@element-plus/icons-vue'
import useDataAssetStore from "@/store/modules/dataAsset";
import { TableColumnWidth } from '@/utils/enum';
import {
downloadTableData
downloadTableData,
downloadTableDataCheck
} from "@/api/modules/dataDelivery";
const router = useRouter();
......@@ -44,7 +45,7 @@ const evaGuid = route.query.evaGuid;
const costAssessGuid = route.query.costAssessGuid;
const certificateGuid = route.query.certificateGuid;
const detailType = ref(route.query.type);
const dataSources = ref(route.query.dataSources || 2)
const dataSources = ref(route.query.dataSources || 2)
const foundMode = ref(route.query.foundMode);
const { proxy } = getCurrentInstance() as any;
......@@ -130,7 +131,7 @@ const registerDetailTableInfo = ref({
label: "查看详情", value: "detail", click: (scope) => {
let row = scope.row;
if (row.type == 'asset') {
isJSZQ.value ? router.push({
isJSZQ.value ? router.push({
name: 'registerInfoJSZQDetail',
query: { guid: row.guid, name: detailInfo.value.damName, tenantGuid: row.tenantGuid, tenantName: row.tenantName, type: 'asset' }
}) : router.push({
......@@ -337,9 +338,11 @@ const productTableInfo = ref({
fields: [
{ label: "序号", type: "index", width: TableColumnWidth.INDEX, align: "center" },
{ label: "服务名称", field: "apiName", width: 180 },
{ label: "API类型", field: "apiType", width: 100, getName: (scope) => {
return scope.row.apiType && apiTypes.find(a => a.value == scope.row.apiType)?.label;
} },
{
label: "API类型", field: "apiType", width: 100, getName: (scope) => {
return scope.row.apiType && apiTypes.find(a => a.value == scope.row.apiType)?.label;
}
},
{ label: "API地址", field: "requestUrl", width: 240 },
{ label: "描述", field: "apiDescription", width: 240 },
],
......@@ -450,14 +453,23 @@ const handleTableViewData = (scope) => {
/** 下载数据 */
const handleTableViewDataDown = (scope) => {
downloadTableData({
downloadTableDataCheck({
userGuid: route.query.useGuid,
subjectGuid: scope.row.guid
}).then((res: any) => {
if (res && !res.msg) {
download(res, `${scope.row.tableChName}.xlsx`, 'excel');
if (res?.code == proxy.$passCode) {
downloadTableData({
userGuid: route.query.useGuid,
subjectGuid: scope.row.guid
}).then((res: any) => {
if (res && !res.msg) {
download(res, `${scope.row.tableChName}.xlsx`, 'excel');
} else {
res?.msg && ElMessage.error(res?.msg);
}
})
} else {
res?.msg && ElMessage.error(res?.msg);
ElMessage.error(res?.msg || '下载失败');
}
})
}
......@@ -1272,23 +1284,24 @@ const respParamsTableInfo = ref({
<div class="dataLabel" v-show="detailInfo.domainName">{{ detailInfo.domainName }}</div>
<div class="dataLabel dataLabel1" v-if="detailInfo.databaseType">{{ detailInfo.databaseType }}</div>
<div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div>
<div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}</div>
<div class="dataLabel dataLabel1" v-if="detailInfo.updateFrequency">{{ detailInfo.updateFrequencyName }}
</div>
</div>
</div>
<!-- <template v-if="detailInfo?.foundMode == 1"> -->
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div>
<div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div>
<div v-if="detailInfo.medDepartmentCode">{{ '所属科室:' + (detailInfo.medDepartmentCodeName || '--') }}</div>
<div v-else>{{ '所属主题:' + (detailInfo.subjectDomainName || '--') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div>
<div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '行业分类:' + (detailInfo.industryName || '--') }}</div>
<div>{{ '机构分类:' + (detailInfo.institutionTypeName || '--') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '应用场景:' + (detailInfo.scenarioName || '--') }}</div>
<div v-if="detailInfo.medDepartmentCode">{{ '所属科室:' + (detailInfo.medDepartmentCodeName || '--') }}</div>
<div v-else>{{ '所属主题:' + (detailInfo.subjectDomainName || '--') }}</div>
</div>
<div class="row-extra-desc">
<div class="per-extra-desc">{{ '是否缓存:' + (detailInfo.isCache == 'Y' ? '是' : '否') }}</div>
<div>{{ '是否加密存储:' + (detailInfo.scenario == 'Y' ? '是' : '否') }}</div>
</div>
<!-- </template> -->
<div v-show="detailInfo.rightMainName" class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }}
</div>
......@@ -1306,85 +1319,86 @@ const respParamsTableInfo = ref({
<ContentWrap id="id-assetContent" title="基础信息" description="" style="margin: 0 16px">
<Form v-if="!isJSZQ" ref="baseInfoFormRef" :itemList="baseInfoFormItems" formId="base-info-form" />
<div v-else class="list_panel">
<div class="list_item">
<span class="item_label">产品编码:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.productCode || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'productCode'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<span class="item_label">产品类型:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productTypeName }}</span>
</div>
<div class="list_item">
<span class="item_label">是否需要信息主体授权:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.authLevel == 'Y' ? '是' : '否' }}</span>
</div>
<div class="list_item">
<span class="item_label">更新频率:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.updateFrequencyName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">产品发布机构:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.productPublisherName || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'productPublisherName'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<span class="item_label">领域:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.domainName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">应用场景:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.scenarioName || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'scenarioName'"></ellipsis-tooltip></span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">所属科室:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.medDepartmentCodeName || '--' }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">所属疾病:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.diseaseName || '--' }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">数据规模(条):</span>
<span class="item_value">{{ changeNum(publicDataProductsMainRSVO?.dataScale || 0, 0) }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">病例总数(例):</span>
<span class="item_value">{{ changeNum(publicDataProductsMainRSVO?.caseNumber || 0, 0) }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '004'">
<span class="item_label">所属主题:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.subjectDomainName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">数据来源:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.dataSourcesName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">数据覆盖范围:</span>
<span class="item_value"><ellipsis-tooltip :content="!publicDataProductsMainRSVO?.dataCoverage?.length ? '--' : (publicDataProductsMainRSVO?.dataCoverage[0] == '1' ?
'全国' : publicDataProductsMainRSVO?.dataCoverageName.join(',')
)" class-name="w100f mr8-i" :refName="'tooltipOver' + 'dataCoverage'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<span class="item_label">产品应用方向:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productDirectionName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">版本名称:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.versionName || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'versionName'"></ellipsis-tooltip></span>
</div>
<div class="list_item is_block">
<span class="item_label">产品关键词:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productKeywords?.join(',') || '--' }}</span>
</div>
<div class="list_item is_block">
<span class="item_label">产品描述:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productDesc || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">产品编码:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.productCode || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'productCode'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<span class="item_label">产品类型:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productTypeName }}</span>
</div>
<div class="list_item">
<span class="item_label">是否需要信息主体授权:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.authLevel == 'Y' ? '是' : '否' }}</span>
</div>
<div class="list_item">
<span class="item_label">更新频率:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.updateFrequencyName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">产品发布机构:</span>
<span class="item_value"><ellipsis-tooltip
:content="publicDataProductsMainRSVO?.productPublisherName || '--'" class-name="w100f mr8-i"
:refName="'tooltipOver' + 'productPublisherName'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<span class="item_label">领域:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.domainName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">应用场景:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.scenarioName || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'scenarioName'"></ellipsis-tooltip></span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">所属科室:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.medDepartmentCodeName || '--' }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">所属疾病:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.diseaseName || '--' }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">数据规模(条):</span>
<span class="item_value">{{ changeNum(publicDataProductsMainRSVO?.dataScale || 0, 0) }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '003'">
<span class="item_label">病例总数(例):</span>
<span class="item_value">{{ changeNum(publicDataProductsMainRSVO?.caseNumber || 0, 0) }}</span>
</div>
<div class="list_item" v-show="publicDataProductsMainRSVO?.domain == '004'">
<span class="item_label">所属主题:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.subjectDomainName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">数据来源:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.dataSourcesName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">数据覆盖范围:</span>
<span class="item_value"><ellipsis-tooltip :content="!publicDataProductsMainRSVO?.dataCoverage?.length ? '--' : (publicDataProductsMainRSVO?.dataCoverage[0] == '1' ?
'全国' : publicDataProductsMainRSVO?.dataCoverageName.join(',')
)" class-name="w100f mr8-i" :refName="'tooltipOver' + 'dataCoverage'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<span class="item_label">产品应用方向:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productDirectionName || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">版本名称:</span>
<span class="item_value"><ellipsis-tooltip :content="publicDataProductsMainRSVO?.versionName || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'versionName'"></ellipsis-tooltip></span>
</div>
<div class="list_item is_block">
<span class="item_label">产品关键词:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productKeywords?.join(',') || '--' }}</span>
</div>
<div class="list_item is_block">
<span class="item_label">产品描述:</span>
<span class="item_value">{{ publicDataProductsMainRSVO?.productDesc || '--' }}</span>
</div>
</div>
</ContentWrap>
<ContentWrap v-if="productTableInfo.data?.length" id="product-info" title="服务包信息" style="margin: 16px 16px 16px">
<Table ref="productTableRef" :tableInfo="productTableInfo" class="fiveRow-table" />
......@@ -1485,11 +1499,13 @@ const respParamsTableInfo = ref({
<span>{{ scope.row["updateTime"] || '--' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" v-if="!detailInfo.nodeId || foundMode == 'download' || foundMode == 'read'" width="220px" align="left" fixed="right" show-overflow-tooltip>
<el-table-column label="操作" v-if="!detailInfo.nodeId || foundMode == 'download' || foundMode == 'read'"
width="220px" align="left" fixed="right" show-overflow-tooltip>
<template #default="scope">
<span class="text_btn" @click="handleTableViewData(scope)">查看样例数据</span>
<el-divider v-show="foundMode == 'download'" direction="vertical" />
<span v-show="foundMode == 'download'" class="text_btn" @click="handleTableViewDataDown(scope)">下载数据</span>
<span v-show="foundMode == 'download'" class="text_btn"
@click="handleTableViewDataDown(scope)">下载数据</span>
</template>
</el-table-column>
</el-table>
......@@ -1585,7 +1601,7 @@ const respParamsTableInfo = ref({
<div class="list_item" :style="{ width: '60%' }">
<span class="item_label">评价对象范围:</span>
<span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd
}}</span>
}}</span>
</div>
<div class="list_item is_block">
<span class="item_label">质量评价结果:</span>
......@@ -1761,7 +1777,7 @@ const respParamsTableInfo = ref({
v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')">
<div class="btns">
<el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label
}}</el-button>
}}</el-button>
</div>
</div>
<Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange />
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!