52c346a5 by lihua

修改数据使用和数据交付接口联调

1 parent c821a49d
......@@ -359,8 +359,9 @@ onMounted(() => {
(item.getName?.(scope) === '--' || item.getName?.(scope) === null) ? '' : 'text_btn',
item.class,
scope.row.cellClass,
item?.disabled?.(scope) == true ? 'is-regular' : ''
]"
@click="(item.click && !item.disabled && !scope.row.disabled) ? item.click(scope, { label: item.label, value: item.value }) : handleClick(scope, { label: item.label, value: item.value })"
@click="(item.click && item.disabled != 'Y' && scope.row.disabled != 'Y') ? item.click(scope, { label: item.label, value: item.value }) : handleClick(scope, { label: item.label, value: item.value })"
v-preReClick>{{ item.getName ? item.getName(scope) : scope.row[item.field]
}}</span>
<span v-else>--</span>
......@@ -635,6 +636,9 @@ onMounted(() => {
handleClick(scope, { label: '添加子菜单', value: 'menu' })
" v-preReClick>添加子菜单</span>
</template>
<template v-else-if="!actionInfo.btns?.length">
<span>--</span>
</template>
</template>
</el-table-column>
<template #append>
......
......@@ -39,7 +39,7 @@ service.interceptors.request.use(
"Content-Type": "multipart/form-data",
});
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
config.headers['real-ip'] = localStorage.getItem('ipAddress');
return config;
}
if (config.method == "postjsond") {
......@@ -49,19 +49,19 @@ service.interceptors.request.use(
});
config.data = JSON.stringify(config.data);
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
config.headers['real-ip'] = localStorage.getItem('ipAddress');
return config;
}
if (config.responseType == "blob") {
// 文件流,文件名称相同时会判定同一个请求。
const userStore = useUserStore();
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
config.headers['real-ip'] = localStorage.getItem('ipAddress');
return config;
}
if (config.method === 'obsuploadrequest') {
config.method = 'put';
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
config.headers['real-ip'] = localStorage.getItem('ipAddress');
return config;
}
// /**
......@@ -81,7 +81,7 @@ service.interceptors.request.use(
/** 若是门户的url,则不做重复请求处理,会出现不同标签页都需要查同一个字典参数列表的 */
if (config.url.indexOf('/portal/portal')) {
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
config.headers['real-ip'] = localStorage.getItem('ipAddress');
return config;
}
/**
......@@ -118,7 +118,7 @@ service.interceptors.request.use(
});
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
config.headers['real-ip'] = localStorage.getItem('ipAddress');
return config;
};
/** 若是刷新token的请求,则不需要等refreshToken完成。 */
......
......@@ -24,29 +24,37 @@ const tableDataLoading = ref(false);
const tableFields: any = ref([]);
const isError = ref(false);
const getData = () => {
tableData.value = [];
tableDataLoading.value = true;
if (route.query.useGuid) {
isError.value = false;
queryUseData({
userGuid: route.query.useGuid,
subjectGuid: route.query.guid
}).then((res: any) => {
isError.value = false;
tableDataLoading.value = false;
if (res.code == proxy.$passCode) {
tableData.value = res.data.datas || [];
tableFields.value = res.data.fields || [];
} else {
isError.value = true
ElMessage.error(res.msg);
}
});
} else {
isError.value = false;
queryData(route.query.guid).then((res: any) => {
tableDataLoading.value = false;
if (res.code == proxy.$passCode) {
isError.value = false;
tableData.value = res.data.datas || [];
tableFields.value = res.data.fields || [];
} else {
isError.value = true;
ElMessage.error(res.msg);
}
});
......@@ -134,7 +142,7 @@ const formatterPreviewDate = (row, info) => {
<template>
<div class="table_tool_wrap" v-loading="tableDataLoading">
<span v-if="!tableFields.length || !tableData.length" class="tips_text">未导入数据时,该表数据为空。</span>
<span v-if="!isError && (!tableFields.length || !tableData.length)" class="tips_text">未导入数据时,该表数据为空。</span>
<el-table ref="tableRef" v-show="tableFields.length" :data="tableData" :highlight-current-row="true" stripe border
tooltip-effect="light" height="100%" row-key="guid" :style="{ width: '100%', height: 'calc(100% - 36px)' }">
<template v-for="(item, index) in (tableFields || [])">
......
......@@ -179,6 +179,7 @@ const tableFields = ref([
},
{ label: "核验时间", field: "verifyTime", width: 170 },
{ label: "交付时间", field: "deliveryTime", width: 170 },
{ label: "合约状态", field: "contractStatus", type: "tag", width: 96, align: 'center' },
]);
const page = ref({
......@@ -207,6 +208,10 @@ const tableInfo = ref({
btns: (scope) => {
let btns: any = [];
let row = scope.row;
let contractStatus = row.contractStatus;
if (contractStatus == '06') {
return btns;
}
let deliveryStatus = row.deliveryStatus;
if (deliveryStatus == 2) {//已交付有删除按钮
btns.push({
......
......@@ -43,7 +43,12 @@ const page = ref({
const tableFields = ref([
{ label: "序号", type: "index", width: 56, align: "center" },
{
label: "数据产品名称", field: "dataProductName", width: 160, type: "text_btn", columClass: 'text_btn', value: "detail", click: (scope) => {
label: "数据产品名称", field: "dataProductName", width: 160, type: "text_btn", columClass: 'text_btn', value: "detail", disabled: (scope) => {
return scope.row.contractStatus == '06';
}, click: (scope) => {
if (scope.row.contractStatus == '06') {
return;
}
router.push({
name: 'usageCatalogDetail',
query: {
......@@ -57,10 +62,10 @@ const tableFields = ref([
},
{
label: "合约名称", field: "contractName", width: 170, type: "text_btn", columClass: 'text_btn', value: "detail1", disabled: (scope) => {
return scope.row.isDistribute == 'N';
return scope.row.isDistribute == 'Y';
}, click: (scope) => {
let isDistribute = scope.row.isDistribute;
if (isDistribute == 'N') {
if (isDistribute == 'Y') {
return;
}
//履约中的合约状态
......@@ -82,6 +87,7 @@ const tableFields = ref([
},
{ label: "交付方", field: "deliveryPartyName", width: 220 },
{ label: "交付时间", field: "deliveryTime", width: 170 },
{ label: "合约状态", field: "contractStatus", type: "tag", width: 96, align: 'center' },
]);
const currTableData: any = ref({});
......@@ -103,9 +109,11 @@ const tableInfo = ref({
btns: (scope) => {
let actions = scope.row.actions || {};
let arrBtns: any = [];
if (scope.row.contractStatus != '06') {
for (let action in actions) {
arrBtns.push({ label: actions[action], value: action, click: btnHanldesMap[action] });
}
}
arrBtns.push({ label: '日志', value: 'log', click: btnHanldesMap['log'] });
return arrBtns;
}
......
......@@ -212,11 +212,11 @@ const getDetailInfo = () => {
inputParamsTableInfo.value.data = publicDataProductsMainRSVO.value?.reqParamListRSVOS || [];
respParamsTableInfo.value.data = publicDataProductsMainRSVO.value?.respParamListRSVOS || [];
if (fullPath === route.fullPath) {
document.title = `详情-${data.damName}`;
document.title = foundMode.value == 'download' ? `下载详情-${data.damName}` : (foundMode.value == 'read' ? `查看详情-${data.damName}` : `详情-${data.damName}`);
}
let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
if (tab) {
tab.meta.title = `详情-${data.damName}`;
tab.meta.title = foundMode.value == 'download' ? `下载详情-${data.damName}` : (foundMode.value == 'read' ? `查看详情-${data.damName}` : `详情-${data.damName}`);;
}
isTextTruncated();
if (detailInfo.value.isRegister == 'Y') {
......@@ -348,11 +348,12 @@ const productTableInfo = ref({
actionInfo: {
label: "操作",
type: "btn",
show: !detailInfo.value.nodeId && (route.query.foundMode == 'read' || route.query.foundMode == 'download'),
isMore: false,
width: 130,
btns: (scope) => {
let arrBtns: any = [];
//若是使用方,则换一个api地址
//若是使用方,则换一个api地址。使用操作是查看时可以查看
arrBtns.push({
label: '查看', value: 'view', click: (scope) => {
router.push({
......@@ -375,13 +376,11 @@ onBeforeMount(() => {
});
onActivated(() => {
if (detailInfo.value?.damName) {
if (fullPath === route.fullPath) {
document.title = foundMode.value == 'download' ? `下载详情-${detailInfo.value?.damName}` : (foundMode.value == 'read' ? `查看详情-${detailInfo.value?.damName}` : `详情-${detailInfo.value?.damName}`);
document.title = foundMode.value == 'download' ? `下载详情-${route.query.name}` : (foundMode.value == 'read' ? `查看详情-${route.query.name}` : `详情-${route.query.name}`);
let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
if (tab) {
tab.meta.title = foundMode.value == 'download' ? `下载详情-${detailInfo.value?.damName}` : (foundMode.value == 'read' ? `查看详情-${detailInfo.value?.damName}` : `详情-${detailInfo.value?.damName}`);
}
tab.meta.title = foundMode.value == 'download' ? `下载详情-${route.query.name}` : (foundMode.value == 'read' ? `查看详情-${route.query.name}` : `详情-${route.query.name}`);
}
}
if (assetStore.isRefreshDamCatalog) {
......
......@@ -181,11 +181,11 @@ const tableBtnClick = (scope, btn) => {
const handleDataClick = (item) => {
//同步过来的要显示详情页面。
if (item.nodeId || item.listingStatus == 'Y') {
if (item.nodeId || item.isGrounding == 'Y' || item.isUsed == 'Y') {
router.push({
// name: "registerCatalogDetail",
path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-catalog-detail' : '/data-asset/register-catalog/register-catalog-detail',
query: { guid: item.guid, type: "asset", dataSources: props.dataSources, foundMode: item.foundMode },
query: { guid: item.guid, type: "asset", dataSources: props.dataSources, foundMode: item.foundMode, name: item.damName },
});
return;
}
......@@ -199,7 +199,7 @@ const handleDataClick = (item) => {
router.push({
// name: "registerCatalogDetail",
path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-catalog-detail' : '/data-asset/register-catalog/register-catalog-detail',
query: { guid: item.guid, type: "asset", dataSources: props.dataSources, foundMode: item.foundMode },
query: { guid: item.guid, type: "asset", dataSources: props.dataSources, foundMode: item.foundMode, name: item.damName },
});
}
};
......@@ -448,11 +448,11 @@ const handleUploadClose = (itemGuid) => {
</div>
<div class="v-bottom">
<!-- TODO,只有数据交付之后才可以编辑和删除 -->
<el-button plain v-if="!(item.isRegister == 'Y' || item.foundMode == 2 || item.foundMode == 4 || item.foundMode == 5) && !item.nodeId && item.listingStatus != 'Y'"
<el-button plain v-if="!(item.isRegister == 'Y' || item.foundMode == 2 || item.foundMode == 4 || item.foundMode == 5) && !item.nodeId && item.isGrounding != 'Y' && item.isUsed != 'Y'"
@click.stop="tableBtnClick(item, 'delete')">删除</el-button>
<el-button plain v-if="!(item.isRegister == 'Y' || item.foundMode == 4) && !item.nodeId && item.listingStatus != 'Y'" @click.stop="handleDataClick(item)">编辑</el-button>
<el-button plain v-if="!(item.isRegister == 'Y' || item.foundMode == 4) && !item.nodeId && item.isGrounding != 'Y' && item.isUsed != 'Y'" @click.stop="handleDataClick(item)">编辑</el-button>
<!-- <el-button plain @click.stop="handleClickUploadBtn(item)" v-if="item.isRegister == 'Y'">上传交付物</el-button> -->
<el-button plain @click.stop="handleDataClick(item)" v-if="(item.isRegister == 'Y') || item.nodeId">详情</el-button>
<el-button plain @click.stop="handleDataClick(item)" v-if="(item.isRegister == 'Y') || item.nodeId || item.isGrounding == 'Y' || item.isUsed == 'Y'">详情</el-button>
</div>
</div>
</div>
......
......@@ -274,8 +274,8 @@ onBeforeMount(() => {
const fileKeyNames = ref({
networkAccessQualification: '网络接入资质认证',
levelProtectionEvaluationResults: '等级保护(等保 2.0)测评结果',
levelProtectionEvaluationExpirationTime: '等级保护(等保 2.0)测评有效期至',
levelProtectionEvaluationResults: '等级保护测评结果',
levelProtectionEvaluationExpirationTime: '等级保护测评有效期至',
networkSecurityFilingCertificate: '网络安全产品备案证明',
encryptionModuleAuthentication: '加密模块认证',
softwareScmStatemen: '软件供应链合规声明',
......@@ -331,14 +331,14 @@ const fileKeyNames = ref({
<span class="item_value"><ellipsis-tooltip :content="flowDetail.legalSocialCreditCode || '--'"
class-name="w100f mr8-i" :refName="'tooltipOver' + 'legalSocialCreditCode'"></ellipsis-tooltip></span>
</div>
<div class="list_item">
<!-- <div class="list_item">
<span class="item_label">可信凭证颁发日期:</span>
<span class="item_value">{{ flowDetail.credentialTime || '--' }}</span>
</div>
<div class="list_item">
<span class="item_label">可信凭证证书:</span>
<span class="item_value link" @click="viewVoucherFile">查看</span>
</div>
</div> -->
<div class="list_item is_block">
<span class="item_label">IP地址列表:</span>
<span class="item_value">{{ flowDetail.ipAddressList?.join(',') || '--' }}</span>
......@@ -441,7 +441,7 @@ const fileKeyNames = ref({
</span>
</div>
<div v-if="field == 'levelProtectionEvaluationExpirationTime'" class="list_item isFile">
<span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">可信凭证颁发日期</span>
<span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">等级保护测评有效期至</span>
<span class="item_value">{{ flowDetail.tdsConnectorVerifiable?.[field] || '--' }}</span>
</div>
</template>
......
......@@ -89,38 +89,38 @@ const baseInfoFormItems = ref([
disabled: true,
required: false,
},
{
type: "input",
label: "可信凭证颁发日期",
field: "credentialTime",
default: "",
placeholder: "-",
clearable: true,
disabled: true,
required: false,
col: "width-left no-margin-r",
viewBtn: {
label: "查看可信身份凭证",
click: () => {
const url = logonUserDetailInfo.value.trustedIdentityCredential;
if (!url) {
return;
}
onUploadFilePreview(url);
},
},
},
{
type: "input",
label: "可信身份凭证url地址",
field: "trustedIdentityCredential",
default: "",
placeholder: "-",
clearable: true,
disabled: true,
visible: false,
required: false,
},
// {
// type: "input",
// label: "可信凭证颁发日期",
// field: "credentialTime",
// default: "",
// placeholder: "-",
// clearable: true,
// disabled: true,
// required: false,
// col: "width-left no-margin-r",
// viewBtn: {
// label: "查看可信身份凭证",
// click: () => {
// const url = logonUserDetailInfo.value.trustedIdentityCredential;
// if (!url) {
// return;
// }
// onUploadFilePreview(url);
// },
// },
// },
// {
// type: "input",
// label: "可信身份凭证url地址",
// field: "trustedIdentityCredential",
// default: "",
// placeholder: "-",
// clearable: true,
// disabled: true,
// visible: false,
// required: false,
// },
{
type: "input",
label: "IP地址列表",
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!