e2402a3a by xukangle

fix

1 parent e515422a
......@@ -131,7 +131,19 @@ const routes: RouteRecordRaw[] = [
cache: true,
reuse: true
}
}
},
{
path: 'register-catalog-detail',
name: 'costAssessDetail',
component: () => import('@/views/data_asset/registerCatalogDetail.vue'),
meta: {
title: '详情-',
sidebar: false,
breadcrumb: false,
cache: true,
reuse: true
}
},
],
},
{
......
......@@ -128,6 +128,8 @@ const getDetailInfo = () => {
const data = res.data || {};
costAssessDetailInfo.value = data;
detailInfo.value = data;
deploymentId.value = data.approveVO.camundaDeploymentId;
processInstanceId.value = data.approveVO?.camundaInstanceId;
// 需要显示价值评估信息
if (data.assessmentMoney != null) {
if (tabsInfo.value.tabs.length == 4) {
......@@ -246,29 +248,29 @@ const getDetailInfo = () => {
}).catch(() => {
fullscreenLoading.value = false;
}));
ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
if (res.code == proxy.$passCode) {
const data = res.data ?? {};
tentData = { ...tentData, ...data };
} else {
ElMessage.error(res.msg);
}
}));
ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
if (res.code == proxy.$passCode) {
const data = res.data ?? {};
tentData = { ...tentData, ...data };
} else {
ElMessage.error(res.msg);
}
}))
// ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
// if (res.code == proxy.$passCode) {
// const data = res.data ?? {};
// tentData = { ...tentData, ...data };
// } else {
// ElMessage.error(res.msg);
// }
// }));
// ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
// if (res.code == proxy.$passCode) {
// const data = res.data ?? {};
// tentData = { ...tentData, ...data };
// } else {
// ElMessage.error(res.msg);
// }
// }))
Promise.all(ps).then(() => {
fullscreenLoading.value = false;
tenantDetail.value = tentData;
// tenantDetail.value = tentData;
isTextTruncated();
})
} else {
let ps: any = [], tentData = {};
let ps: any = []
ps.push(getRegiaterDetail({ guid: assetGuid }).then((res: any) => {
if (res.code == proxy.$passCode) {
const data = res.data || {};
......@@ -282,26 +284,25 @@ const getDetailInfo = () => {
ElMessage.error(res.msg);
}
}));
ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
if (res.code == proxy.$passCode) {
const data = res.data ?? {};
tentData = { ...tentData, ...data };
} else {
ElMessage.error(res.msg);
}
}));
ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
if (res.code == proxy.$passCode) {
const data = res.data ?? {};
tentData = { ...tentData, ...data };
} else {
ElMessage.error(res.msg);
}
}))
// ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
// if (res.code == proxy.$passCode) {
// const data = res.data ?? {};
// tentData = { ...tentData, ...data };
// } else {
// ElMessage.error(res.msg);
// }
// }));
// ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
// if (res.code == proxy.$passCode) {
// const data = res.data ?? {};
// tentData = { ...tentData, ...data };
// } else {
// ElMessage.error(res.msg);
// }
// }))
Promise.all(ps).then(() => {
fullscreenLoading.value = false;
tenantDetail.value = tentData;
}).catch(() => {
fullscreenLoading.value = false;
});
......@@ -322,9 +323,39 @@ const handleExpand = () => {
isExpanded.value = !isExpanded.value;
}
// 提取到 onBeforeMount 中的请求
const tentData = ref<any>({});
const getTenantInformation = () => {
const ps: any = [];
ps.push(getTenantDetailInfo(userData.tenantGuid).then((res: any) => {
if (res.code === proxy.$passCode) {
const data = res.data ?? {};
tentData.value = { ...tentData.value, ...data };
} else {
ElMessage.error(res.msg);
}
}));
ps.push(getTenantInfo({ tenantName: userData.tenantName }).then((res: any) => {
if (res.code === proxy.$passCode) {
const data = res.data ?? {};
tentData.value = { ...tentData.value, ...data };
} else {
ElMessage.error(res.msg);
}
}));
// 这里返回 Promise.all 来等待所有请求完成
return Promise.all(ps);
};
onBeforeMount(() => {
getDetailInfo();
// getTenantDetail();
getTenantInformation().then(() => {
tenantDetail.value = { ...tentData.value }; // 将最终的数据赋值给 tenantDetail
}).catch(() => {
console.log('请求失败');
});
});
onActivated(() => {
......@@ -593,7 +624,7 @@ const passDialogTitle = computed(() => {
}
});
const qualityEvaluateFormItems = ref([
const qualityEvaluateFormItems = ref<any>([
{
label: '质量得分',
type: 'input',
......@@ -953,11 +984,19 @@ const passDialogBtnClick = (btn, info) => {
return;
}
submitPromise.value = costAssessAllow({
guid: detailInfo.value.guid,
bizGuid: detailInfo.value.guid,
flowType: detailInfo.value.approveVO.flowType,
approveStaffGuid: userData.staffGuid,
guid: detailInfo.value.approveVO.approveGuid,
assessmentMoney: info.assessmentMoney,
assessmentDate: info.assessmentDate,
assessmentNote: info.assessmentNote,
assessmentFile: info.assessmentFile.map(f => f.url),
assessmentFile: info.assessmentFile.map(file => {
return {
name: file.name,
url: file.url
}
}) || [],
}).then((res: any) => {
submitPromise.value = null;
if (res?.code == proxy.$passCode) {
......@@ -1303,7 +1342,8 @@ const formattedDate = (dateVal) => {
<div class="list_item is_block isFile" :style="{ width: '40%' }"
v-if="((detailType != 'asset' || assetDetailInfo.isEvaluationAssessment == 'Y') && assetDetailInfo.registerAttachment?.qualityEvaluationFile?.length) || (evaDetailInfo?.qualityEvaluationFile?.length > 0)">
<span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">数据质量评价收集</span>
<span v-for="(item) in (evaDetailInfo?.qualityEvaluationFile || assetDetailInfo.registerAttachment?.qualityEvaluationFile || [])"
<span
v-for="(item) in (evaDetailInfo?.qualityEvaluationFile || assetDetailInfo.registerAttachment?.qualityEvaluationFile || [])"
class="item_value" :style="{ 'padding-left': '0px' }">
<div class="file-operate">
<template
......@@ -1453,6 +1493,44 @@ const formattedDate = (dateVal) => {
</div>
</span>
</div>
<div class="list_item is_block isFile" :style="{ width: '40%', 'margin-right': '28px' }"
v-if="(detailType == 'costAssess' && costAssessDetailInfo.costAssessmentFile?.length)">
<span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">价值评估收集附件</span>
<span v-for="(item) in (costAssessDetailInfo.costAssessmentFile || [])" class="item_value"
:style="{ 'padding-left': '0px' }">
<div class="file-operate">
<template
v-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'xls' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'xlsx' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'csv'">
<img class="file-img" src="../../assets/images/excel.png" />
</template>
<template
v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'doc' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'docx'">
<img class="file-img" src="../../assets/images/word.png" />
</template>
<template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'zip'">
<img class="file-img" src="../../assets/images/zip.png" />
</template>
<template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'rar'">
<img class="file-img" src="../../assets/images/RAR.png" />
</template>
<template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf'">
<img class="file-img" src="../../assets/images/PDF.png" />
</template>
<template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'png'">
<img class="file-img" src="../../assets/images/png.png" />
</template>
<template
v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'">
<img class="file-img" src="../../assets/images/jpg.png" />
</template>
<div class="file-name">{{ item.name }}</div>
<div :style="{ right: '36px' }"
v-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'png' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"
class="file-preview" @click="onUploadFilePreview(item)">查看</div>
<div :style="{ right: '0px' }" class="file-preview" @click="onUploadFileDownload(item)">下载</div>
</div>
</span>
</div>
<!-- <span
v-if="tenantDetail.businessLicense?.length || assetDetailInfo.registerAttachment?.commitmentLetter?.length"
class="small-title" :style="{ marginTop: '10px' }">公司信息</span> -->
......
......@@ -41,7 +41,7 @@ const attachDataInfo: any = ref({});
const tableFields = ref([
{ label: "序号", type: "index", width: 56, align: "center" },
{ label: "资产名称", field: "daName", width: 160, align: "left" },
{ label: "资产名称", field: "daName", width: 160, align: "left", type: 'text_btn', value: 'productDetail', columClass: 'text_btn' },
{ label: "登记时间", field: "registerTime", width: 120 },
// { label: "企业名称", field: "tenantName", width: 240, align: "left" },
{ label: "评估机构", field: "issuingEntityName", width: 250, align: "left" },
......@@ -184,6 +184,7 @@ const handleCreate = () => {
ElMessage.warning('当前没有可发起价值评估的资产!');
return;
}
formItems.value[4].placeholder = `本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`;
formItems.value[0].visible = true;
formItems.value[0].default = '';
formItems.value[1].visible = true;
......@@ -313,20 +314,20 @@ const tableBtnClick = (scope, btn) => {
currTableData.value = row;
if (type == "redit") {
if (!row.registerGuid) {
formItems.value[2].visible = false;
formItems.value[3].visible = false;
formItems.value[4].visible = false;
formItems.value[5].visible = false;
formItems.value[2].visible = true;
formItems.value[3].visible = true;
formItems.value[4].visible = true;
formItems.value[5].visible = true;
formItems.value[0].visible = false;
formItems.value[0].default = row.damGuid;
formItems.value[1].default = row.costAssessmentFile || [];
dialogInfo.value.type = 'reSubmit';
dialogInfo.value.visible = true;
} else {
formItems.value[2].visible = true;
formItems.value[3].visible = true;
formItems.value[4].visible = true;
formItems.value[5].visible = true;
formItems.value[2].visible = false;
formItems.value[3].visible = false;
formItems.value[4].visible = false;
formItems.value[5].visible = false;
formItems.value[0].visible = false;
formItems.value[0].default = row.damGuid;
formItems.value[1].default = row.costAssessmentFile || [];
......@@ -371,12 +372,12 @@ const tableBtnClick = (scope, btn) => {
} else if (type === 'detail') { // 详情
if (row.registerApproveState == 'Y') {
router.push({
name: 'registerDetail',
name: 'registerValueDetail',
query: { guid: row.registerGuid, costAssessGuid: row.guid, type: 'costAssess', daTenantGuid: row.tenantGuid }
});
} else {
router.push({
name: 'evaCatalogDetail',
name: 'costAssessDetail',
query: { guid: row.damGuid, costAssessGuid: row.guid, type: 'costAssess' }
});
}
......@@ -560,7 +561,9 @@ const formItems = ref<any>([
{
label: '质量评估结果',
type: 'textarea',
placeholder: '请输入质量评估结果',
focusValue: true,
example: '示例:本次评估数据资产总体质量得分为99.80分。从评价维度分析,准确性、一致性和可访问性均为 100 分;规范性 99.42 分、完整性 99.50分。',
placeholder: `本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`,
field: 'evaluationNote',
default: '',
maxlength: 250,
......@@ -595,12 +598,41 @@ const formRules = ref({
callback();
}
}, trigger: 'change'
}]
}],
qualityScore: [
{ required: true, trigger: 'change', message: "请填写质量评分" }
],
evaluationRange: [
{ required: true, trigger: 'change', message: "请填写数据时间范围" }
],
evaluationNote: [{
validator: (rule: any, value: any, callback: any) => {
if (!value) {
callback(new Error('请填写质量评价说明'));
return;
}
if (value && value.length > 500) {
callback(new Error('请填写小于500个字的质量评价说明'));
return;
}
callback();
},
trigger: "blur",
}],
evaluationFile: [{
validator: (rule: any, value: any, callback: any) => {
if (!value?.length) {
callback(new Error('请上传质量报告'))
} else {
callback();
}
}, trigger: 'change'
}],
});
const dialogInfo = ref({
visible: false,
size: 510,
size: 610,
direction: "column",
header: {
title: "价值评估发起",
......@@ -717,6 +749,7 @@ const dialogBtnClick = (btn, info) => {
dialogInfo.value.visible = false;
page.value.curr = 1;
getTableData();
formItems.value[4].placeholder = `本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`;
} else {
ElMessage.error(res.msg);
}
......
......@@ -1492,7 +1492,7 @@ const timeRangeInfo = computed(() => {
if (flowDetail.value.timeAreaStart && flowDetail.value.timeAreaEnd) {
const startDate = flowDetail.value.timeAreaStart.split('T')[0];
const endDate = flowDetail.value.timeAreaEnd.split('T')[0];
return `${startDate} - ${endDate}`;
return `${startDate}${endDate}`;
}
return '--';
});
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!