Merge branch 'develop' into dev_20241202_xukangle
Showing
18 changed files
with
497 additions
and
361 deletions
| ... | @@ -37,7 +37,7 @@ VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn | ... | @@ -37,7 +37,7 @@ VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn |
| 37 | VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service' | 37 | VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service' |
| 38 | 38 | ||
| 39 | # 数据标准、元数据、数据目录 接口地址 | 39 | # 数据标准、元数据、数据目录 接口地址 |
| 40 | VITE_APP_PLAN_BASEURL = ms-daop-zcgl-data-plan-service | 40 | VITE_APP_PLAN_BASEURL = ms-daop-data-plan-service |
| 41 | 41 | ||
| 42 | #数据质量接口地址 | 42 | #数据质量接口地址 |
| 43 | VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service | 43 | VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service | ... | ... |
| ... | @@ -71,7 +71,7 @@ VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn | ... | @@ -71,7 +71,7 @@ VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn |
| 71 | VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service' | 71 | VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service' |
| 72 | 72 | ||
| 73 | # 数据标准、元数据、数据目录 接口地址 | 73 | # 数据标准、元数据、数据目录 接口地址 |
| 74 | VITE_APP_PLAN_BASEURL = ms-daop-zcgl-data-plan-service | 74 | VITE_APP_PLAN_BASEURL = ms-daop-data-plan-service |
| 75 | 75 | ||
| 76 | #数据质量接口地址 | 76 | #数据质量接口地址 |
| 77 | VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service | 77 | VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service | ... | ... |
| ... | @@ -84,9 +84,8 @@ export const getProduct = (params) => request({ | ... | @@ -84,9 +84,8 @@ export const getProduct = (params) => request({ |
| 84 | }) | 84 | }) |
| 85 | // 查看平台会员详情 | 85 | // 查看平台会员详情 |
| 86 | export const getTenantDetailInfo = (params) => request({ | 86 | export const getTenantDetailInfo = (params) => request({ |
| 87 | url: `${import.meta.env.VITE_APP_API_BASEURL}/tenant/data/detail`, | 87 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/getByGuid/${params}`, |
| 88 | method: 'get', | 88 | method: 'get' |
| 89 | params | ||
| 90 | }) | 89 | }) |
| 91 | 90 | ||
| 92 | 91 | ||
| ... | @@ -123,7 +122,7 @@ export const getServiceTenants = (params) => request({ | ... | @@ -123,7 +122,7 @@ export const getServiceTenants = (params) => request({ |
| 123 | 122 | ||
| 124 | /** 获取会员的附件模板 */ | 123 | /** 获取会员的附件模板 */ |
| 125 | export const getTenantAttach = (params) => request({ | 124 | export const getTenantAttach = (params) => request({ |
| 126 | url: `${import.meta.env.VITE_APP_API_BASEURL}/attachment-template/list-attachment?tenantGuid=${params}`, | 125 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/attachment-template/list-attachment?tenantGuid=${params}`, |
| 127 | method: 'get' | 126 | method: 'get' |
| 128 | }) | 127 | }) |
| 129 | 128 | ... | ... |
| ... | @@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [ |
| 35 | reuse: true | 35 | reuse: true |
| 36 | }, | 36 | }, |
| 37 | beforeEnter: (to, from) => { | 37 | beforeEnter: (to, from) => { |
| 38 | to.meta.title = to.query.type == 'edit' ? `编辑-${to.query.name}` : '新建资产登记'; | 38 | to.meta.title = to.query.type == 'create' ? '新建资产登记' : `编辑-${to.query.name}`; |
| 39 | to.meta.editPage = true; | 39 | to.meta.editPage = true; |
| 40 | } | 40 | } |
| 41 | }, | 41 | }, | ... | ... |
| ... | @@ -4,7 +4,7 @@ import router from '@/router' | ... | @@ -4,7 +4,7 @@ import router from '@/router' |
| 4 | import { ElMessage } from 'element-plus' | 4 | import { ElMessage } from 'element-plus' |
| 5 | import apiUser from '@/api/modules/user' | 5 | import apiUser from '@/api/modules/user' |
| 6 | import { getCurrentTime } from '@/utils/common' | 6 | import { getCurrentTime } from '@/utils/common' |
| 7 | import { getSystemMenu, getUserInfo, getTokenByCode, loginOut, refreshToken, editPasswordInterface, getCurrentUserInfo, getCurrentUserInfo } from '@/api/modules/queryService' | 7 | import { getSystemMenu, getUserInfo, getTokenByCode, loginOut, refreshToken, editPasswordInterface, getCurrentUserInfo } from '@/api/modules/queryService' |
| 8 | 8 | ||
| 9 | const useUserStore = defineStore( | 9 | const useUserStore = defineStore( |
| 10 | // 唯一ID | 10 | // 唯一ID | ... | ... |
| ... | @@ -27,6 +27,7 @@ import { | ... | @@ -27,6 +27,7 @@ import { |
| 27 | getTenantDetailInfo, | 27 | getTenantDetailInfo, |
| 28 | getImageContent | 28 | getImageContent |
| 29 | } from "@/api/modules/queryService"; | 29 | } from "@/api/modules/queryService"; |
| 30 | import { passFlowData, rejectFlowData, revokeFlowData } from "@/api/modules/workFlowService"; | ||
| 30 | import useDataAssetStore from "@/store/modules/dataAsset"; | 31 | import useDataAssetStore from "@/store/modules/dataAsset"; |
| 31 | import { changeNum, getDownloadUrl, download } from '@/utils/common'; | 32 | import { changeNum, getDownloadUrl, download } from '@/utils/common'; |
| 32 | 33 | ||
| ... | @@ -256,16 +257,10 @@ const getDetailInfo = () => { | ... | @@ -256,16 +257,10 @@ const getDetailInfo = () => { |
| 256 | fullscreenLoading.value = false; | 257 | fullscreenLoading.value = false; |
| 257 | if (res.code == proxy.$passCode) { | 258 | if (res.code == proxy.$passCode) { |
| 258 | const data = res.data || {}; | 259 | const data = res.data || {}; |
| 260 | let { approveVO } = data; | ||
| 259 | detailInfo.value = data; | 261 | detailInfo.value = data; |
| 260 | assetDetailInfo.value = data; | 262 | assetDetailInfo.value = data; |
| 261 | deploymentId.value = data.camundaDeploymentId; | 263 | deploymentId.value = approveVO.camundaDeploymentId; |
| 262 | // if (fullPath === route.fullPath) { | ||
| 263 | // document.title = `详情-${data.daName}`; | ||
| 264 | // } | ||
| 265 | // let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath); | ||
| 266 | // if (tab) { | ||
| 267 | // tab.meta.title = `详情-${data.daName}`; | ||
| 268 | // } | ||
| 269 | isTextTruncated(); | 264 | isTextTruncated(); |
| 270 | } else { | 265 | } else { |
| 271 | ElMessage.error(res.msg); | 266 | ElMessage.error(res.msg); |
| ... | @@ -290,7 +285,7 @@ const handleExpand = () => { | ... | @@ -290,7 +285,7 @@ const handleExpand = () => { |
| 290 | 285 | ||
| 291 | onBeforeMount(() => { | 286 | onBeforeMount(() => { |
| 292 | getDetailInfo(); | 287 | getDetailInfo(); |
| 293 | getTenantDetail(); | 288 | daTenantGuid.value && getTenantDetail(); |
| 294 | }); | 289 | }); |
| 295 | 290 | ||
| 296 | onActivated(() => { | 291 | onActivated(() => { |
| ... | @@ -405,7 +400,7 @@ const tenantDetail: any = ref({}); | ... | @@ -405,7 +400,7 @@ const tenantDetail: any = ref({}); |
| 405 | 400 | ||
| 406 | /** 获取当前登录会员,服务商,企业等详情。 */ | 401 | /** 获取当前登录会员,服务商,企业等详情。 */ |
| 407 | const getTenantDetail = () => { | 402 | const getTenantDetail = () => { |
| 408 | getTenantDetailInfo({ guid: daTenantGuid.value }).then((res: any) => { | 403 | getTenantDetailInfo(daTenantGuid.value).then((res: any) => { |
| 409 | if (res.code == proxy.$passCode) { | 404 | if (res.code == proxy.$passCode) { |
| 410 | const data = res.data ?? {}; | 405 | const data = res.data ?? {}; |
| 411 | tenantDetail.value = data; | 406 | tenantDetail.value = data; |
| ... | @@ -502,10 +497,11 @@ const btnClick = (btn) => { | ... | @@ -502,10 +497,11 @@ const btnClick = (btn) => { |
| 502 | type: 'warning', | 497 | type: 'warning', |
| 503 | }).then(() => { | 498 | }).then(() => { |
| 504 | let params = { | 499 | let params = { |
| 505 | bizGuid: detailInfo.value.guid, | 500 | guid: detailInfo.value.approveVO.approveGuid, |
| 506 | funcCode: detailInfo.value.funcCode | 501 | flowType: detailInfo.value.approveVO.flowType, |
| 502 | approveStaffGuid: userData.staffGuid, | ||
| 507 | } | 503 | } |
| 508 | registerApproveCancel(params).then((res: any) => { | 504 | revokeFlowData(params).then((res: any) => { |
| 509 | if (res?.code == proxy.$passCode) { | 505 | if (res?.code == proxy.$passCode) { |
| 510 | if (res.data) { | 506 | if (res.data) { |
| 511 | ElMessage.success('该审批流程撤销成功!'); | 507 | ElMessage.success('该审批流程撤销成功!'); |
| ... | @@ -849,11 +845,12 @@ const passDialogBtnClick = (btn, info) => { | ... | @@ -849,11 +845,12 @@ const passDialogBtnClick = (btn, info) => { |
| 849 | return; | 845 | return; |
| 850 | } | 846 | } |
| 851 | let params = { | 847 | let params = { |
| 852 | bizGuid: detailInfo.value.guid, | 848 | guid: detailInfo.value.approveVO.approveGuid, |
| 853 | funcCode: detailInfo.value.funcCode, | 849 | flowType: detailInfo.value.approveVO.flowType, |
| 854 | approveSuggest: info.approveSuggest | 850 | approveSuggest: info.approveSuggest, |
| 851 | approveStaffGuid: userData.staffGuid, | ||
| 855 | } | 852 | } |
| 856 | submitPromise.value = registerApproveAllow(params).then((res: any) => { | 853 | submitPromise.value = passFlowData(params).then((res: any) => { |
| 857 | submitPromise.value = null; | 854 | submitPromise.value = null; |
| 858 | if (res?.code == proxy.$passCode) { | 855 | if (res?.code == proxy.$passCode) { |
| 859 | if (res.data) { | 856 | if (res.data) { |
| ... | @@ -986,11 +983,12 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -986,11 +983,12 @@ const rejectDialogBtnClick = (btn, info) => { |
| 986 | } | 983 | } |
| 987 | //资产登记的驳回。 | 984 | //资产登记的驳回。 |
| 988 | let params = { | 985 | let params = { |
| 989 | bizGuid: detailInfo.value.guid, | 986 | guid: detailInfo.value.approveVO.approveGuid, |
| 990 | funcCode: detailInfo.value.funcCode, | 987 | flowType: detailInfo.value.approveVO.flowType, |
| 991 | approveSuggest: info.approveSuggest | 988 | approveSuggest: info.approveSuggest, |
| 989 | approveStaffGuid: userData.staffGuid, | ||
| 992 | } | 990 | } |
| 993 | registerApproveBackup(params).then((res: any) => { | 991 | rejectFlowData(params).then((res: any) => { |
| 994 | if (res?.code == proxy.$passCode) { | 992 | if (res?.code == proxy.$passCode) { |
| 995 | if (res.data) { | 993 | if (res.data) { |
| 996 | ElMessage.success('驳回成功'); | 994 | ElMessage.success('驳回成功'); |
| ... | @@ -1136,17 +1134,22 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1136,17 +1134,22 @@ const handleClickDamCatalogDetail = () => { |
| 1136 | assetDetailInfo.isPersonalInfo == 'Y' ? '涉及个人信息' : '不涉及个人信息' }}</div> | 1134 | assetDetailInfo.isPersonalInfo == 'Y' ? '涉及个人信息' : '不涉及个人信息' }}</div> |
| 1137 | </div> | 1135 | </div> |
| 1138 | <div style="display: flex"> | 1136 | <div style="display: flex"> |
| 1139 | <div v-if="tabsInfo.tabs.find(t => t.name == 'qualityEvaluate')" class="right-label" :style="{ 'margin-right': tabsInfo.tabs.find(t => t.name == 'costAssess') ? '8px' : '0px' }">评分:<span | 1137 | <div v-if="tabsInfo.tabs.find(t => t.name == 'qualityEvaluate')" class="right-label" |
| 1140 | style="color: var(--el-color-primary);font-weight: 600;font-size: 16px;">{{ evaDetailInfo.qualityScore + '分' }}</span> | 1138 | :style="{ 'margin-right': tabsInfo.tabs.find(t => t.name == 'costAssess') ? '8px' : '0px' }"> |
| 1139 | 评分:<span style="color: var(--el-color-primary);font-weight: 600;font-size: 16px;">{{ | ||
| 1140 | evaDetailInfo.qualityScore + '分' }}</span> | ||
| 1141 | </div> | 1141 | </div> |
| 1142 | <div v-if="tabsInfo.tabs.find(t => t.name == 'costAssess')" class="right-label">价值:<span | 1142 | <div v-if="tabsInfo.tabs.find(t => t.name == 'costAssess')" class="right-label">价值:<span |
| 1143 | style="color: var(--el-color-primary);font-weight: 600;font-size: 16px">{{ changeNum(costAssessDetailInfo.assessmentMoney ?? 0, 2, true) + '元' }}</span> | 1143 | style="color: var(--el-color-primary);font-weight: 600;font-size: 16px">{{ |
| 1144 | changeNum(costAssessDetailInfo.assessmentMoney ?? 0, 2, true) + '元' }}</span> | ||
| 1144 | </div> | 1145 | </div> |
| 1145 | </div> | 1146 | </div> |
| 1146 | </div> | 1147 | </div> |
| 1147 | <div class="applicationScenarios" | 1148 | <div class="applicationScenarios" |
| 1148 | :style="{ 'margin-right': (isTruncated && !isExpanded) ? '30px' : '0px', WebkitLineClamp: (!isTruncated ? 'inherit' : (isExpanded ? 'inherit' : 2)), WebkitBoxOrient: 'vertical' }"> | 1149 | :style="{ 'margin-right': (isTruncated && !isExpanded) ? '30px' : '0px', WebkitLineClamp: (!isTruncated ? 'inherit' : (isExpanded ? 'inherit' : 2)), WebkitBoxOrient: 'vertical' }"> |
| 1149 | {{ assetDetailInfo.applicationScenarios || '--' }}<span v-if="isTruncated" class="text_btn expand_btn" :style="{ position: isExpanded ? 'inherit' : 'absolute', 'margin-left': isExpanded ? '4px' : '0px' }" @click="handleExpand()" v-preReClick>{{ isExpanded ? | 1150 | {{ assetDetailInfo.applicationScenarios || '--' }}<span v-if="isTruncated" class="text_btn expand_btn" |
| 1151 | :style="{ position: isExpanded ? 'inherit' : 'absolute', 'margin-left': isExpanded ? '4px' : '0px' }" | ||
| 1152 | @click="handleExpand()" v-preReClick>{{ isExpanded ? | ||
| 1150 | '收起' : '展开' }}</span></div> | 1153 | '收起' : '展开' }}</span></div> |
| 1151 | </div> | 1154 | </div> |
| 1152 | </div> | 1155 | </div> |
| ... | @@ -1164,10 +1167,11 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1164,10 +1167,11 @@ const handleClickDamCatalogDetail = () => { |
| 1164 | </div> | 1167 | </div> |
| 1165 | <div class="list_item"> | 1168 | <div class="list_item"> |
| 1166 | <span class="item_label">所属行业:</span> | 1169 | <span class="item_label">所属行业:</span> |
| 1167 | <span class="item_value"><ellipsis-tooltip :content="(assetDetailInfo.ownIndustryName?.filter(u => u != '其他')?.join(',') + | 1170 | <span class="item_value"><ellipsis-tooltip |
| 1171 | :content="(assetDetailInfo.ownIndustryName?.filter(u => u != '其他')?.join(',') + | ||
| 1168 | (assetDetailInfo.ownIndustry?.includes(4) | 1172 | (assetDetailInfo.ownIndustry?.includes(4) |
| 1169 | ? ((assetDetailInfo.ownIndustryName?.length > 1 ? ',' : '') + assetDetailInfo.ownIndustryOther) : '')) ?? '--'" | 1173 | ? ((assetDetailInfo.ownIndustryName?.length > 1 ? ',' : '') + assetDetailInfo.ownIndustryOther) : '')) ?? '--'" class-name="w100f" |
| 1170 | class-name="w100f" :refName="'tooltipOver' + 'ownIndustryName'"></ellipsis-tooltip></span> | 1174 | :refName="'tooltipOver' + 'ownIndustryName'"></ellipsis-tooltip></span> |
| 1171 | </div> | 1175 | </div> |
| 1172 | <div class="list_item"> | 1176 | <div class="list_item"> |
| 1173 | <span class="item_label">本次登记:</span> | 1177 | <span class="item_label">本次登记:</span> |
| ... | @@ -1176,11 +1180,19 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1176,11 +1180,19 @@ const handleClickDamCatalogDetail = () => { |
| 1176 | </div> | 1180 | </div> |
| 1177 | <div class="list_item"> | 1181 | <div class="list_item"> |
| 1178 | <span class="item_label">数据规模(条):</span> | 1182 | <span class="item_label">数据规模(条):</span> |
| 1179 | <span class="item_value">{{ assetDetailInfo.dataScale !=null ? changeNum(assetDetailInfo.dataScale, 0) : '--' }}</span> | 1183 | <span class="item_value">{{ assetDetailInfo.dataScale != null ? changeNum(assetDetailInfo.dataScale, 0) |
| 1184 | : | ||
| 1185 | '--' }}</span> | ||
| 1180 | </div> | 1186 | </div> |
| 1181 | <div class="list_item"> | 1187 | <div class="list_item"> |
| 1182 | <span class="item_label">所属主题:</span> | 1188 | <span class="item_label">所属主题:</span> |
| 1183 | <span class="item_value">{{ assetDetailInfo.subjectDomainName || assetDetailInfo.subjectDomain || '--' }}</span> | 1189 | <span class="item_value">{{ assetDetailInfo.subjectDomainName || assetDetailInfo.subjectDomain || '--' |
| 1190 | }}</span> | ||
| 1191 | </div> | ||
| 1192 | <div class="list_item" v-if="assetDetailInfo.damGuid"> | ||
| 1193 | <span class="item_label">数据来源:</span> | ||
| 1194 | <span class="item_value">{{ dataSourcesList.find(d => d.value == assetDetailInfo.dataSources)?.label || | ||
| 1195 | '--' }}</span> | ||
| 1184 | </div> | 1196 | </div> |
| 1185 | </div> | 1197 | </div> |
| 1186 | <div class="first-col" style="width: 250px;"> | 1198 | <div class="first-col" style="width: 250px;"> |
| ... | @@ -1199,12 +1211,18 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1199,12 +1211,18 @@ const handleClickDamCatalogDetail = () => { |
| 1199 | + assetDetailInfo.updateFrequencyOther) : '')) ?? '--' }}</span> | 1211 | + assetDetailInfo.updateFrequencyOther) : '')) ?? '--' }}</span> |
| 1200 | </div> | 1212 | </div> |
| 1201 | <div class="list_item"> | 1213 | <div class="list_item"> |
| 1202 | <span class="item_label">质量及价值评估:</span> | 1214 | <span class="item_label">是否完成质量评估:</span> |
| 1203 | <span class="item_value">{{ assetDetailInfo.isEvaluationAssessment == 'Y' ? '是' : '否' }}</span> | 1215 | <span class="item_value">{{ assetDetailInfo.isQualityAssessment == 'Y' ? '是' : '否' }}</span> |
| 1216 | </div> | ||
| 1217 | <div class="list_item" v-if="(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y')"> | ||
| 1218 | <span class="item_label">质量评估机构:</span> | ||
| 1219 | <span class="item_value">{{ assetDetailInfo.registerAttachment.qualityEvaluationInstitution || '--' | ||
| 1220 | }}</span> | ||
| 1204 | </div> | 1221 | </div> |
| 1205 | <div class="list_item"> | 1222 | <div class="list_item"> |
| 1206 | <span class="item_label">病例总数(例):</span> | 1223 | <span class="item_label">病例总数(例):</span> |
| 1207 | <span class="item_value">{{ assetDetailInfo.caseNumber ? changeNum(assetDetailInfo.caseNumber, 0) : '--' }}</span> | 1224 | <span class="item_value">{{ assetDetailInfo.caseNumber ? changeNum(assetDetailInfo.caseNumber, 0) : '--' |
| 1225 | }}</span> | ||
| 1208 | </div> | 1226 | </div> |
| 1209 | <div class="list_item" v-if="assetDetailInfo.damGuid"> | 1227 | <div class="list_item" v-if="assetDetailInfo.damGuid"> |
| 1210 | <span class="item_label">数据库类型:</span> | 1228 | <span class="item_label">数据库类型:</span> |
| ... | @@ -1214,17 +1232,17 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1214,17 +1232,17 @@ const handleClickDamCatalogDetail = () => { |
| 1214 | <div class="last-col"> | 1232 | <div class="last-col"> |
| 1215 | <div class="list_item"> | 1233 | <div class="list_item"> |
| 1216 | <span class="item_label">覆盖地域:</span> | 1234 | <span class="item_label">覆盖地域:</span> |
| 1217 | <span class="item_value"><ellipsis-tooltip | 1235 | <span class="item_value"><ellipsis-tooltip :content="assetDetailInfo.coverageArea?.[0]?.[0] == 'all' ? '全国' : (assetDetailInfo.coverageAreaName?.map(c => |
| 1218 | :content="assetDetailInfo.coverageArea?.[0]?.[0] == 'all' ? '全国' : (assetDetailInfo.coverageAreaName?.map(c => | 1236 | c.join('/')).join(',') ?? '--')" class-name="w100f pr8" |
| 1219 | c.join('/')).join(',') ?? '--')" | 1237 | :refName="'tooltipOver' + 'coverageAreaName'"></ellipsis-tooltip></span> |
| 1220 | class-name="w100f pr8" :refName="'tooltipOver' + 'coverageAreaName'"></ellipsis-tooltip></span> | ||
| 1221 | </div> | 1238 | </div> |
| 1222 | <div class="list_item"> | 1239 | <div class="list_item"> |
| 1223 | <span class="item_label">取得方式:</span> | 1240 | <span class="item_label">取得方式:</span> |
| 1224 | <span class="item_value"><ellipsis-tooltip :content="(assetDetailInfo.dataGetWayName?.filter(u => u != '其他')?.join(',') + | 1241 | <span class="item_value"><ellipsis-tooltip |
| 1242 | :content="(assetDetailInfo.dataGetWayName?.filter(u => u != '其他')?.join(',') + | ||
| 1225 | (assetDetailInfo.dataGetWay?.includes(8) ? | 1243 | (assetDetailInfo.dataGetWay?.includes(8) ? |
| 1226 | ((assetDetailInfo.dataGetWayName?.length > 1 ? ',' : '') + assetDetailInfo.dataGetWayOther) : '')) ?? '--'" | 1244 | ((assetDetailInfo.dataGetWayName?.length > 1 ? ',' : '') + assetDetailInfo.dataGetWayOther) : '')) ?? '--'" class-name="w100f" |
| 1227 | class-name="w100f" :refName="'tooltipOver' + 'dataGetWayName'"></ellipsis-tooltip> | 1245 | :refName="'tooltipOver' + 'dataGetWayName'"></ellipsis-tooltip> |
| 1228 | </span> | 1246 | </span> |
| 1229 | </div> | 1247 | </div> |
| 1230 | <div class="list_item"> | 1248 | <div class="list_item"> |
| ... | @@ -1233,16 +1251,22 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1233,16 +1251,22 @@ const handleClickDamCatalogDetail = () => { |
| 1233 | (assetDetailInfo.registeredExchangeName?.join(',') ?? '--') }}</span> | 1251 | (assetDetailInfo.registeredExchangeName?.join(',') ?? '--') }}</span> |
| 1234 | </div> | 1252 | </div> |
| 1235 | <div class="list_item"> | 1253 | <div class="list_item"> |
| 1254 | <span class="item_label">是否完成价值评估:</span> | ||
| 1255 | <span class="item_value">{{ assetDetailInfo.isCostAssessment == 'Y' ? '是' : '否' }}</span> | ||
| 1256 | </div> | ||
| 1257 | <div class="list_item" v-if="(detailType == 'asset' && assetDetailInfo.isCostAssessment == 'Y')"> | ||
| 1258 | <span class="item_label">价值评估机构:</span> | ||
| 1259 | <span class="item_value">{{ assetDetailInfo.registerAttachment.costAssessmentInstitution || '--' | ||
| 1260 | }}</span> | ||
| 1261 | </div> | ||
| 1262 | <div class="list_item"> | ||
| 1236 | <span class="item_label">资产类型:</span> | 1263 | <span class="item_label">资产类型:</span> |
| 1237 | <span class="item_value">{{ assetDetailInfo.damTypeName || '--' }}</span> | 1264 | <span class="item_value">{{ assetDetailInfo.damTypeName || '--' }}</span> |
| 1238 | </div> | 1265 | </div> |
| 1239 | <div class="list_item"> | 1266 | <div class="list_item"> |
| 1240 | <span class="item_label">数据时间范围:</span> | 1267 | <span class="item_label">数据时间范围:</span> |
| 1241 | <span class="item_value">{{ assetDetailInfo.dataStartDate ? `${assetDetailInfo.dataStartDate}至${assetDetailInfo.dataEndDate}` : '--' }}</span> | 1268 | <span class="item_value">{{ assetDetailInfo.dataStartDate ? |
| 1242 | </div> | 1269 | `${assetDetailInfo.dataStartDate}至${assetDetailInfo.dataEndDate}` : '--' }}</span> |
| 1243 | <div class="list_item" v-if="assetDetailInfo.damGuid"> | ||
| 1244 | <span class="item_label">数据来源:</span> | ||
| 1245 | <span class="item_value">{{ dataSourcesList.find(d => d.value == assetDetailInfo.dataSources)?.label || '--' }}</span> | ||
| 1246 | </div> | 1270 | </div> |
| 1247 | </div> | 1271 | </div> |
| 1248 | </div> | 1272 | </div> |
| ... | @@ -1257,8 +1281,9 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1257,8 +1281,9 @@ const handleClickDamCatalogDetail = () => { |
| 1257 | <!-- <span class="small-title">资产内容</span> --> | 1281 | <!-- <span class="small-title">资产内容</span> --> |
| 1258 | <div class="list_item isFile" :style="{ width: '40%', 'margin-right': '28px' }" | 1282 | <div class="list_item isFile" :style="{ width: '40%', 'margin-right': '28px' }" |
| 1259 | v-if="assetDetailInfo.registerAttachment?.registerLetter?.length"> | 1283 | v-if="assetDetailInfo.registerAttachment?.registerLetter?.length"> |
| 1260 | <div class="item_label" :style="{ width: 'auto', display: 'flex', 'justify-content': 'space-between', 'margin-right': '8px' }"> | 1284 | <div class="item_label" |
| 1261 | <span >数据登记承诺及收集函</span> | 1285 | :style="{ width: 'auto', display: 'flex', 'justify-content': 'space-between', 'margin-right': '8px' }"> |
| 1286 | <span>数据登记承诺及收集函</span> | ||
| 1262 | <span class="text_btn" v-if="assetDetailInfo.damGuid" @click="handleClickDamCatalogDetail">查看表详情</span> | 1287 | <span class="text_btn" v-if="assetDetailInfo.damGuid" @click="handleClickDamCatalogDetail">查看表详情</span> |
| 1263 | </div> | 1288 | </div> |
| 1264 | <span v-for="(item) in (assetDetailInfo.registerAttachment?.registerLetter || [])" class="item_value" | 1289 | <span v-for="(item) in (assetDetailInfo.registerAttachment?.registerLetter || [])" class="item_value" |
| ... | @@ -1334,7 +1359,7 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1334,7 +1359,7 @@ const handleClickDamCatalogDetail = () => { |
| 1334 | </div> | 1359 | </div> |
| 1335 | </span> | 1360 | </span> |
| 1336 | </div> | 1361 | </div> |
| 1337 | <div class="list_item is_block isFile" :style="{ width: '40%','margin-right': '28px' }" | 1362 | <div class="list_item is_block isFile" :style="{ width: '40%', 'margin-right': '28px' }" |
| 1338 | v-if="(detailType != 'asset' && detailType != 'qualityEvaluate' || assetDetailInfo.isEvaluationAssessment == 'Y') && assetDetailInfo.registerAttachment?.costAssessmentFile?.length"> | 1363 | v-if="(detailType != 'asset' && detailType != 'qualityEvaluate' || assetDetailInfo.isEvaluationAssessment == 'Y') && assetDetailInfo.registerAttachment?.costAssessmentFile?.length"> |
| 1339 | <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">数据价值评估</span> | 1364 | <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">数据价值评估</span> |
| 1340 | <span v-for="(item) in (assetDetailInfo.registerAttachment?.costAssessmentFile || [])" class="item_value" | 1365 | <span v-for="(item) in (assetDetailInfo.registerAttachment?.costAssessmentFile || [])" class="item_value" |
| ... | @@ -1372,6 +1397,82 @@ const handleClickDamCatalogDetail = () => { | ... | @@ -1372,6 +1397,82 @@ const handleClickDamCatalogDetail = () => { |
| 1372 | </div> | 1397 | </div> |
| 1373 | </span> | 1398 | </span> |
| 1374 | </div> | 1399 | </div> |
| 1400 | <div class="list_item is_block isFile" :style="{ width: '40%' }" | ||
| 1401 | v-if="(detailType == 'asset' && assetDetailInfo.isQualityAssessment == 'Y') && assetDetailInfo.registerAttachment?.qualityEvaluationFile?.length"> | ||
| 1402 | <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">质量评估报告</span> | ||
| 1403 | <span v-for="(item) in (assetDetailInfo.registerAttachment?.qualityEvaluationFile || [])" | ||
| 1404 | class="item_value" :style="{ 'padding-left': '0px' }"> | ||
| 1405 | <div class="file-operate"> | ||
| 1406 | <template | ||
| 1407 | 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'"> | ||
| 1408 | <img class="file-img" src="../../assets/images/excel.png" /> | ||
| 1409 | </template> | ||
| 1410 | <template | ||
| 1411 | v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'doc' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'docx'"> | ||
| 1412 | <img class="file-img" src="../../assets/images/word.png" /> | ||
| 1413 | </template> | ||
| 1414 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'zip'"> | ||
| 1415 | <img class="file-img" src="../../assets/images/zip.png" /> | ||
| 1416 | </template> | ||
| 1417 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'rar'"> | ||
| 1418 | <img class="file-img" src="../../assets/images/RAR.png" /> | ||
| 1419 | </template> | ||
| 1420 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf'"> | ||
| 1421 | <img class="file-img" src="../../assets/images/PDF.png" /> | ||
| 1422 | </template> | ||
| 1423 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'png'"> | ||
| 1424 | <img class="file-img" src="../../assets/images/png.png" /> | ||
| 1425 | </template> | ||
| 1426 | <template | ||
| 1427 | v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"> | ||
| 1428 | <img class="file-img" src="../../assets/images/jpg.png" /> | ||
| 1429 | </template> | ||
| 1430 | <div class="file-name">{{ item.name }}</div> | ||
| 1431 | <div :style="{ right: '36px' }" | ||
| 1432 | 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'" | ||
| 1433 | class="file-preview" @click="onUploadFilePreview(item)">查看</div> | ||
| 1434 | <div :style="{ right: '0px' }" class="file-preview" @click="onUploadFileDownload(item)">下载</div> | ||
| 1435 | </div> | ||
| 1436 | </span> | ||
| 1437 | </div> | ||
| 1438 | <div class="list_item is_block isFile" :style="{ width: '40%', 'margin-right': '28px' }" | ||
| 1439 | v-if="(detailType == 'asset' && assetDetailInfo.isCostAssessment == 'Y') && assetDetailInfo.registerAttachment?.costAssessmentFile?.length"> | ||
| 1440 | <span class="item_label" :style="{ width: 'auto', 'text-align': 'left' }">价值评估报告</span> | ||
| 1441 | <span v-for="(item) in (assetDetailInfo.registerAttachment?.costAssessmentFile || [])" class="item_value" | ||
| 1442 | :style="{ 'padding-left': '0px' }"> | ||
| 1443 | <div class="file-operate"> | ||
| 1444 | <template | ||
| 1445 | 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'"> | ||
| 1446 | <img class="file-img" src="../../assets/images/excel.png" /> | ||
| 1447 | </template> | ||
| 1448 | <template | ||
| 1449 | v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'doc' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'docx'"> | ||
| 1450 | <img class="file-img" src="../../assets/images/word.png" /> | ||
| 1451 | </template> | ||
| 1452 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'zip'"> | ||
| 1453 | <img class="file-img" src="../../assets/images/zip.png" /> | ||
| 1454 | </template> | ||
| 1455 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'rar'"> | ||
| 1456 | <img class="file-img" src="../../assets/images/RAR.png" /> | ||
| 1457 | </template> | ||
| 1458 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf'"> | ||
| 1459 | <img class="file-img" src="../../assets/images/PDF.png" /> | ||
| 1460 | </template> | ||
| 1461 | <template v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'png'"> | ||
| 1462 | <img class="file-img" src="../../assets/images/png.png" /> | ||
| 1463 | </template> | ||
| 1464 | <template | ||
| 1465 | v-else-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"> | ||
| 1466 | <img class="file-img" src="../../assets/images/jpg.png" /> | ||
| 1467 | </template> | ||
| 1468 | <div class="file-name">{{ item.name }}</div> | ||
| 1469 | <div :style="{ right: '36px' }" | ||
| 1470 | 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'" | ||
| 1471 | class="file-preview" @click="onUploadFilePreview(item)">查看</div> | ||
| 1472 | <div :style="{ right: '0px' }" class="file-preview" @click="onUploadFileDownload(item)">下载</div> | ||
| 1473 | </div> | ||
| 1474 | </span> | ||
| 1475 | </div> | ||
| 1375 | <!-- <span | 1476 | <!-- <span |
| 1376 | v-if="tenantDetail.businessLicense?.length || assetDetailInfo.registerAttachment?.commitmentLetter?.length" | 1477 | v-if="tenantDetail.businessLicense?.length || assetDetailInfo.registerAttachment?.commitmentLetter?.length" |
| 1377 | class="small-title" :style="{ marginTop: '10px' }">公司信息</span> --> | 1478 | class="small-title" :style="{ marginTop: '10px' }">公司信息</span> --> | ... | ... |
| ... | @@ -8,21 +8,9 @@ import TableTools from "@/components/Tools/table_tools.vue"; | ... | @@ -8,21 +8,9 @@ import TableTools from "@/components/Tools/table_tools.vue"; |
| 8 | import { ElMessage, ElMessageBox } from 'element-plus'; | 8 | import { ElMessage, ElMessageBox } from 'element-plus'; |
| 9 | import { useRouter, useRoute } from "vue-router"; | 9 | import { useRouter, useRoute } from "vue-router"; |
| 10 | import { MoreFilled } from "@element-plus/icons-vue"; | 10 | import { MoreFilled } from "@element-plus/icons-vue"; |
| 11 | import { | 11 | import { changeNum, tagMethod, tagType, } from "@/utils/common"; |
| 12 | changeNum, | 12 | import { getRegisterList, registerDelete, getExchangeList } from "@/api/modules/dataAsset"; |
| 13 | tagMethod, | 13 | import { passFlowData, rejectFlowData, revokeFlowData } from "@/api/modules/workFlowService"; |
| 14 | tagType, | ||
| 15 | } from "@/utils/common"; | ||
| 16 | import { | ||
| 17 | getRegisterList, | ||
| 18 | registerDelete, | ||
| 19 | registerApproveCancel, | ||
| 20 | registerApproveReSubmit, | ||
| 21 | registerApproveAllow, | ||
| 22 | registerApproveBackup, | ||
| 23 | getRegisterTenant, | ||
| 24 | getExchangeList | ||
| 25 | } from "@/api/modules/dataAsset"; | ||
| 26 | import useDataAssetStore from "@/store/modules/dataAsset"; | 14 | import useDataAssetStore from "@/store/modules/dataAsset"; |
| 27 | import useUserStore from "@/store/modules/user"; | 15 | import useUserStore from "@/store/modules/user"; |
| 28 | 16 | ||
| ... | @@ -107,7 +95,39 @@ const tableFields = ref([{ label: "序号", type: "index", width: 56, align: "ce | ... | @@ -107,7 +95,39 @@ const tableFields = ref([{ label: "序号", type: "index", width: 56, align: "ce |
| 107 | return scope.row['ownIndustryName']?.join(',') | 95 | return scope.row['ownIndustryName']?.join(',') |
| 108 | } | 96 | } |
| 109 | }, | 97 | }, |
| 110 | { label: "状态", field: "approveState", type: "tag", width: 96, align: 'center' }, | 98 | { |
| 99 | label: "状态", field: "approveState", type: "tag", width: 96, align: 'center', getName: (scope) => { | ||
| 100 | const approveVO = scope.row.approveVO || {} | ||
| 101 | switch (approveVO.approveState) { | ||
| 102 | case 'N': | ||
| 103 | return '草稿中'; | ||
| 104 | case 'A': | ||
| 105 | return '审批中'; | ||
| 106 | case 'Y': | ||
| 107 | return '已通过'; | ||
| 108 | case 'R': | ||
| 109 | return '已驳回'; | ||
| 110 | case 'C': | ||
| 111 | return '已撤销'; | ||
| 112 | case 'I': | ||
| 113 | return '--'; | ||
| 114 | default: | ||
| 115 | return '草稿中'; | ||
| 116 | } | ||
| 117 | }, tagType: (scope) => { | ||
| 118 | const approveVO = scope.row.approveVO || {} | ||
| 119 | switch (approveVO.approveState) { | ||
| 120 | case 'A': | ||
| 121 | return 'warning'; | ||
| 122 | case 'Y': | ||
| 123 | return 'success'; | ||
| 124 | case 'R': | ||
| 125 | return 'danger'; | ||
| 126 | default: | ||
| 127 | return 'info'; | ||
| 128 | } | ||
| 129 | } | ||
| 130 | }, | ||
| 111 | { label: "修改人", field: "updateUserName", width: 140 }, | 131 | { label: "修改人", field: "updateUserName", width: 140 }, |
| 112 | { label: "修改时间", field: "updateTime", width: 180 }]); | 132 | { label: "修改时间", field: "updateTime", width: 180 }]); |
| 113 | 133 | ||
| ... | @@ -133,7 +153,7 @@ const tableInfo = ref({ | ... | @@ -133,7 +153,7 @@ const tableInfo = ref({ |
| 133 | actionInfo: { | 153 | actionInfo: { |
| 134 | label: "操作", | 154 | label: "操作", |
| 135 | type: "btn", | 155 | type: "btn", |
| 136 | width: 160, | 156 | width: 180, |
| 137 | btns: (scope) => { | 157 | btns: (scope) => { |
| 138 | let row = scope.row; | 158 | let row = scope.row; |
| 139 | return getTableBtns(row); | 159 | return getTableBtns(row); |
| ... | @@ -142,35 +162,45 @@ const tableInfo = ref({ | ... | @@ -142,35 +162,45 @@ const tableInfo = ref({ |
| 142 | }); | 162 | }); |
| 143 | 163 | ||
| 144 | const getTableBtns = (row, includeDetail = true) => { | 164 | const getTableBtns = (row, includeDetail = true) => { |
| 145 | console.log(userData) | ||
| 146 | let btnsArr: any[] = []; | 165 | let btnsArr: any[] = []; |
| 147 | if (row.approveState == 'N') {//只有草稿中的详情是可以编辑的 | 166 | const approveVO = row.approveVO; |
| 148 | includeDetail && btnsArr.push({ label: "详情", value: "path_detail" }) | 167 | const currentStaffGuid = userData.staffGuid |
| 149 | includeDetail && btnsArr.push({ label: "编辑", value: "edit" }) | 168 | const bizApproveState = row.approveState; |
| 150 | if (row.tenantGuid == userData.tenantGuid) { | 169 | const approveState = approveVO?.approveState || 'N'; |
| 151 | btnsArr.push({ label: "删除", value: "delete" }); | 170 | const approveStaffGuids = approveVO?.approveStaffGuids || []; |
| 171 | const staffGuid = approveVO?.staffGuid || ''; | ||
| 172 | let isShowCancel = false; | ||
| 173 | let flowState; | ||
| 174 | if (approveState == 'N') { | ||
| 175 | flowState = 1; | ||
| 176 | } | ||
| 177 | if (approveState == 'A' && approveStaffGuids.indexOf(currentStaffGuid) > -1) { | ||
| 178 | flowState = 2; | ||
| 152 | } | 179 | } |
| 153 | } else if (row.approveState == 'A') {//审批中 | 180 | if ((approveState == 'C' || approveState == 'R') && staffGuid == currentStaffGuid) { |
| 154 | includeDetail && btnsArr.push({ label: "详情", value: "path_detail" }) | 181 | flowState = 3; |
| 155 | if (row.tenantGuid == userData.tenantGuid) { | ||
| 156 | btnsArr.push({ label: "撤销", value: "revoke" }); | ||
| 157 | } | 182 | } |
| 158 | if (row.approveTenantGuids?.includes(userData.tenantGuid)) { | 183 | if (approveVO && approveVO.approveState == 'A' && staffGuid == currentStaffGuid) { |
| 159 | btnsArr.push({ label: "通过", value: "pass" }); | 184 | isShowCancel = true; |
| 160 | btnsArr.push({ label: "驳回", value: "backup" }); | ||
| 161 | } | 185 | } |
| 162 | } else if (row.approveState == 'Y') {//已通过的不能删除。 | 186 | |
| 163 | includeDetail && btnsArr.push({ label: "详情", value: "path_detail" }) | 187 | if (flowState === 1) { |
| 164 | } else if (row.approveState == 'R' || row.approveState == 'C') {//已驳回或已撤销 | 188 | btnsArr = [{ label: "编辑", value: "edit" }, { label: "删除", value: "delete" }] |
| 165 | includeDetail && btnsArr.push({ label: "编辑", value: "edit" }); | 189 | } else { |
| 166 | if (row.tenantGuid == userData.tenantGuid) { | 190 | btnsArr.push({ label: "详情", value: "detail" }) |
| 167 | btnsArr.push({ label: "重新提交", value: "edit", disabled: false }) | 191 | if (flowState === 2) { |
| 192 | btnsArr.push(...[{ label: "通过", value: "pass" }, { label: "驳回", value: "reject" }]) | ||
| 193 | if (isShowCancel) { | ||
| 194 | btnsArr.push({ label: "撤销", value: "revoke" }) | ||
| 195 | } | ||
| 196 | } else if (flowState === 3) { | ||
| 197 | if (bizApproveState != 'D') { | ||
| 198 | btnsArr.push({ label: "重新提交", value: "edit" }) | ||
| 168 | } | 199 | } |
| 169 | if (row.tenantGuid == userData.tenantGuid) { | 200 | btnsArr.push({ label: "删除", value: "delete" }) |
| 170 | btnsArr.push({ label: "删除", value: "delete" }); | ||
| 171 | } | 201 | } |
| 172 | } | 202 | } |
| 173 | return btnsArr; | 203 | return btnsArr |
| 174 | } | 204 | } |
| 175 | 205 | ||
| 176 | const currTableData: any = ref({}); | 206 | const currTableData: any = ref({}); |
| ... | @@ -195,9 +225,10 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -195,9 +225,10 @@ const tableBtnClick = (scope, btn) => { |
| 195 | const row = scope.row; | 225 | const row = scope.row; |
| 196 | currTableData.value = row; | 226 | currTableData.value = row; |
| 197 | if (type === "edit") { //草稿中\已驳回\已撤销\已通过 状态,才可以编辑。 | 227 | if (type === "edit") { //草稿中\已驳回\已撤销\已通过 状态,才可以编辑。 |
| 228 | localStorage.setItem('isRestart', btn.label == '重新提交' ? 'true' : ''); | ||
| 198 | router.push({ | 229 | router.push({ |
| 199 | name: 'registerStart', | 230 | name: 'registerStart', |
| 200 | query: { guid: row.guid, damGuid: row.damGuid, name: row.daName, type } | 231 | query: { guid: row.guid, exchangeGuid: row.exchangeGuid, name: row.daName, type } |
| 201 | }); | 232 | }); |
| 202 | } else if (type == "delete") { | 233 | } else if (type == "delete") { |
| 203 | delTableOpen("此操作将永久删除该资产登记,是否继续?", "warning"); | 234 | delTableOpen("此操作将永久删除该资产登记,是否继续?", "warning"); |
| ... | @@ -207,23 +238,26 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -207,23 +238,26 @@ const tableBtnClick = (scope, btn) => { |
| 207 | cancelButtonText: "取消", | 238 | cancelButtonText: "取消", |
| 208 | type: 'warning', | 239 | type: 'warning', |
| 209 | }).then(() => { | 240 | }).then(() => { |
| 210 | listDataLoading.value = true; | 241 | loading.value = true; |
| 211 | let params = { | 242 | let params = { |
| 212 | bizGuid: row.guid, | 243 | guid: row.approveVO.approveGuid, |
| 213 | funcCode: row.funcCode | 244 | flowType: row.approveVO.flowType, |
| 245 | approveStaffGuid: userData.staffGuid, | ||
| 214 | } | 246 | } |
| 215 | registerApproveCancel(params).then((res: any) => { | 247 | revokeFlowData(params).then((res: any) => { |
| 216 | listDataLoading.value = false; | 248 | loading.value = false; |
| 217 | if (res?.code == proxy.$passCode) { | 249 | if (res?.code == proxy.$passCode) { |
| 218 | if (res.data) { | 250 | if (res.data) { |
| 219 | ElMessage.success('该审批流程撤销成功!'); | 251 | ElMessage.success('该审批流程撤销成功!'); |
| 220 | row.approveState = "C"; | 252 | getTableData(); |
| 221 | } else { | 253 | } else { |
| 222 | ElMessage.error('该审批流程撤销失败!'); | 254 | ElMessage.error('该审批流程撤销失败!'); |
| 223 | } | 255 | } |
| 224 | } else { | 256 | } else { |
| 225 | ElMessage.error(res.msg); | 257 | ElMessage.error(res.msg); |
| 226 | } | 258 | } |
| 259 | }).catch(() => { | ||
| 260 | loading.value = false; | ||
| 227 | }); | 261 | }); |
| 228 | }).catch(() => { | 262 | }).catch(() => { |
| 229 | ElMessage({ | 263 | ElMessage({ |
| ... | @@ -231,25 +265,14 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -231,25 +265,14 @@ const tableBtnClick = (scope, btn) => { |
| 231 | message: '已取消撤销' | 265 | message: '已取消撤销' |
| 232 | }); | 266 | }); |
| 233 | }); | 267 | }); |
| 234 | } else if (type === 'path_detail') { // 详情, 若是草稿中,详情就是编辑, | 268 | } else if (type === 'detail') { // 详情, 若是草稿中,详情就是编辑, |
| 235 | // if (row.approveState === 'N') { | ||
| 236 | // router.push({ | ||
| 237 | // name: 'registerStart', | ||
| 238 | // query: { guid: row.guid, name: row.daName, type: 'detail' } | ||
| 239 | // }); | ||
| 240 | // } else { | ||
| 241 | // router.push({ | ||
| 242 | // name: 'registerInfoDetail', | ||
| 243 | // query: { guid: row.guid, type: 'asset', daTenantGuid: row.tenantGuid } | ||
| 244 | // }); | ||
| 245 | // } | ||
| 246 | router.push({ | 269 | router.push({ |
| 247 | name: 'registerInfoDetail', | 270 | name: 'registerInfoDetail', |
| 248 | query: { guid: row.guid, name: row.daName, type: 'asset' } | 271 | query: { guid: row.guid, name: row.daName, type: 'asset' } |
| 249 | }); | 272 | }); |
| 250 | } else if (type === 'pass') { | 273 | } else if (type === 'pass') { |
| 251 | passDialogInfo.value.visible = true; | 274 | passDialogInfo.value.visible = true; |
| 252 | } else if (type == 'backup') { | 275 | } else if (type == 'reject') { |
| 253 | rejectDialogInfo.value.visible = true; | 276 | rejectDialogInfo.value.visible = true; |
| 254 | } | 277 | } |
| 255 | }; | 278 | }; |
| ... | @@ -276,7 +299,9 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => { | ... | @@ -276,7 +299,9 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => { |
| 276 | }).then(() => { | 299 | }).then(() => { |
| 277 | let guids: any = []; | 300 | let guids: any = []; |
| 278 | guids = [currTableData.value.guid] | 301 | guids = [currTableData.value.guid] |
| 302 | loading.value = true; | ||
| 279 | registerDelete(guids).then((res: any) => { | 303 | registerDelete(guids).then((res: any) => { |
| 304 | loading.value = false; | ||
| 280 | if (res.code == proxy.$passCode) { | 305 | if (res.code == proxy.$passCode) { |
| 281 | pageInfo.value.curr = 1; | 306 | pageInfo.value.curr = 1; |
| 282 | getTableData(); | 307 | getTableData(); |
| ... | @@ -290,7 +315,9 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => { | ... | @@ -290,7 +315,9 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => { |
| 290 | message: res.msg, | 315 | message: res.msg, |
| 291 | }); | 316 | }); |
| 292 | } | 317 | } |
| 293 | }) | 318 | }).catch(() => { |
| 319 | loading.value = false; | ||
| 320 | }); | ||
| 294 | }).catch(() => { | 321 | }).catch(() => { |
| 295 | ElMessage({ | 322 | ElMessage({ |
| 296 | type: 'info', | 323 | type: 'info', |
| ... | @@ -300,8 +327,7 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => { | ... | @@ -300,8 +327,7 @@ const delTableOpen = (msg, type, isBatch: boolean = false) => { |
| 300 | }; | 327 | }; |
| 301 | 328 | ||
| 302 | const getTableData = () => { | 329 | const getTableData = () => { |
| 303 | listDataLoading.value = true; | 330 | loading.value = true; |
| 304 | tableInfo.value.loading = true; | ||
| 305 | getRegisterList({ | 331 | getRegisterList({ |
| 306 | pageSize: pageInfo.value.limit, | 332 | pageSize: pageInfo.value.limit, |
| 307 | pageIndex: pageInfo.value.curr, | 333 | pageIndex: pageInfo.value.curr, |
| ... | @@ -310,17 +336,19 @@ const getTableData = () => { | ... | @@ -310,17 +336,19 @@ const getTableData = () => { |
| 310 | tenantGuid: pageInfo.value.tenantGuid, | 336 | tenantGuid: pageInfo.value.tenantGuid, |
| 311 | exchangGuid: exchangGuid.value | 337 | exchangGuid: exchangGuid.value |
| 312 | }).then((res: any) => { | 338 | }).then((res: any) => { |
| 313 | listDataLoading.value = false; | 339 | loading.value = false; |
| 314 | tableInfo.value.loading = false; | ||
| 315 | if (res.code == proxy.$passCode) { | 340 | if (res.code == proxy.$passCode) { |
| 316 | const data = res.data || {} | 341 | const data = res.data || {} |
| 317 | listData.value = tableInfo.value.data = data.records || []; | 342 | // listData.value = tableInfo.value.data = data.records || []; |
| 343 | tableInfo.value.data = data.records || [] | ||
| 318 | pageInfo.value.limit = data.pageSize | 344 | pageInfo.value.limit = data.pageSize |
| 319 | pageInfo.value.curr = data.pageIndex | 345 | pageInfo.value.curr = data.pageIndex |
| 320 | pageInfo.value.rows = data.totalRows | 346 | pageInfo.value.rows = data.totalRows |
| 321 | } else { | 347 | } else { |
| 322 | ElMessage.error(res.msg); | 348 | ElMessage.error(res.msg); |
| 323 | } | 349 | } |
| 350 | }).catch(() => { | ||
| 351 | loading.value = false; | ||
| 324 | }) | 352 | }) |
| 325 | } | 353 | } |
| 326 | 354 | ||
| ... | @@ -422,14 +450,15 @@ const passDialogInfo = ref({ | ... | @@ -422,14 +450,15 @@ const passDialogInfo = ref({ |
| 422 | 450 | ||
| 423 | const passDialogBtnClick = (btn, info) => { | 451 | const passDialogBtnClick = (btn, info) => { |
| 424 | if (btn.value == 'submit') { | 452 | if (btn.value == 'submit') { |
| 425 | listDataLoading.value = true; | 453 | loading.value = true; |
| 426 | let params = { | 454 | let params = { |
| 427 | bizGuid: currTableData.value.guid, | 455 | guid: currTableData.value.approveVO.approveGuid, |
| 428 | funcCode: currTableData.value.funcCode, | 456 | flowType: currTableData.value.approveVO.flowType, |
| 429 | approveSuggest: info.approveSuggest | 457 | approveSuggest: info.approveSuggest, |
| 458 | approveStaffGuid: userData.staffGuid, | ||
| 430 | } | 459 | } |
| 431 | registerApproveAllow(params).then((res: any) => { | 460 | passFlowData(params).then((res: any) => { |
| 432 | listDataLoading.value = false; | 461 | loading.value = false; |
| 433 | if (res?.code == proxy.$passCode) { | 462 | if (res?.code == proxy.$passCode) { |
| 434 | if (res.data) { | 463 | if (res.data) { |
| 435 | ElMessage.success('审批成功'); | 464 | ElMessage.success('审批成功'); |
| ... | @@ -441,6 +470,8 @@ const passDialogBtnClick = (btn, info) => { | ... | @@ -441,6 +470,8 @@ const passDialogBtnClick = (btn, info) => { |
| 441 | } else { | 470 | } else { |
| 442 | ElMessage.error(res.msg); | 471 | ElMessage.error(res.msg); |
| 443 | } | 472 | } |
| 473 | }).catch(() => { | ||
| 474 | loading.value = false; | ||
| 444 | }); | 475 | }); |
| 445 | } else if (btn.value == 'cancel') { | 476 | } else if (btn.value == 'cancel') { |
| 446 | passDialogInfo.value.visible = false; | 477 | passDialogInfo.value.visible = false; |
| ... | @@ -489,14 +520,15 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -489,14 +520,15 @@ const rejectDialogBtnClick = (btn, info) => { |
| 489 | ElMessage.error('请填写驳回理由'); | 520 | ElMessage.error('请填写驳回理由'); |
| 490 | return | 521 | return |
| 491 | } | 522 | } |
| 492 | listDataLoading.value = true; | 523 | loading.value = true; |
| 493 | let params = { | 524 | let params = { |
| 494 | bizGuid: currTableData.value.guid, | 525 | guid: currTableData.value.approveVO.approveGuid, |
| 495 | funcCode: currTableData.value.funcCode, | 526 | flowType: currTableData.value.approveVO.flowType, |
| 496 | approveSuggest: info.approveSuggest | 527 | approveSuggest: info.approveSuggest, |
| 528 | approveStaffGuid: userData.staffGuid, | ||
| 497 | } | 529 | } |
| 498 | registerApproveBackup(params).then((res: any) => { | 530 | rejectFlowData(params).then((res: any) => { |
| 499 | listDataLoading.value = false; | 531 | loading.value = false; |
| 500 | if (res?.code == proxy.$passCode) { | 532 | if (res?.code == proxy.$passCode) { |
| 501 | if (res.data) { | 533 | if (res.data) { |
| 502 | ElMessage.success('驳回成功'); | 534 | ElMessage.success('驳回成功'); |
| ... | @@ -508,6 +540,8 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -508,6 +540,8 @@ const rejectDialogBtnClick = (btn, info) => { |
| 508 | } else { | 540 | } else { |
| 509 | ElMessage.error(res.msg); | 541 | ElMessage.error(res.msg); |
| 510 | } | 542 | } |
| 543 | }).catch(() => { | ||
| 544 | loading.value = false; | ||
| 511 | }); | 545 | }); |
| 512 | } else if (btn.value == 'cancel') { | 546 | } else if (btn.value == 'cancel') { |
| 513 | rejectDialogInfo.value.visible = false; | 547 | rejectDialogInfo.value.visible = false; | ... | ... |
| ... | @@ -46,6 +46,7 @@ const route = useRoute(); | ... | @@ -46,6 +46,7 @@ const route = useRoute(); |
| 46 | const guid = route.query.guid; | 46 | const guid = route.query.guid; |
| 47 | const fullPath = route.fullPath; | 47 | const fullPath = route.fullPath; |
| 48 | const editType = route.query.type; | 48 | const editType = route.query.type; |
| 49 | const exGuid = route.query.exchangeGuid; | ||
| 49 | 50 | ||
| 50 | /** 资产目录列表 */ | 51 | /** 资产目录列表 */ |
| 51 | const registerCatalogList: any = ref([]); | 52 | const registerCatalogList: any = ref([]); |
| ... | @@ -157,28 +158,14 @@ const getArea = (node, resolve) => { | ... | @@ -157,28 +158,14 @@ const getArea = (node, resolve) => { |
| 157 | } | 158 | } |
| 158 | } | 159 | } |
| 159 | 160 | ||
| 160 | const serviceTenants: any = ref([ | 161 | const serviceTenants: any = ref([]); |
| 161 | { | 162 | const currTenantChanged: any = ref([]); |
| 162 | "exchangeGuid": "07c11603a8bc4d8f8bee2e3a34ab4d8a", | ||
| 163 | "exchangeName": "测试数交所", | ||
| 164 | "listingNum": 0, | ||
| 165 | "underReviewNum": 0 | ||
| 166 | } | ||
| 167 | ]); | ||
| 168 | const currTenantChanged: any = ref([ | ||
| 169 | { | ||
| 170 | "exchangeGuid": "07c11603a8bc4d8f8bee2e3a34ab4d8a", | ||
| 171 | "exchangeName": "测试数交所", | ||
| 172 | "listingNum": 0, | ||
| 173 | "underReviewNum": 0 | ||
| 174 | } | ||
| 175 | ]); | ||
| 176 | 163 | ||
| 177 | const tenantDetail: any = ref({}); | 164 | const tenantDetail: any = ref({}); |
| 178 | 165 | ||
| 179 | /** 获取当前登录会员,服务商,企业等详情。 */ | 166 | /** 获取当前登录会员,服务商,企业等详情。 */ |
| 180 | const getTenantDetail = () => { | 167 | const getTenantDetail = () => { |
| 181 | getTenantDetailInfo({ guid: userData.tenantGuid }).then((res: any) => { | 168 | getTenantDetailInfo(userData.tenantGuid).then((res: any) => { |
| 182 | if (res.code == proxy.$passCode) { | 169 | if (res.code == proxy.$passCode) { |
| 183 | const data = res.data ?? {}; | 170 | const data = res.data ?? {}; |
| 184 | tenantDetail.value = data; | 171 | tenantDetail.value = data; |
| ... | @@ -316,10 +303,10 @@ const setUploadFormItemsValue = (info) => { | ... | @@ -316,10 +303,10 @@ const setUploadFormItemsValue = (info) => { |
| 316 | } else if (item.field === 'commitmentLetter') { | 303 | } else if (item.field === 'commitmentLetter') { |
| 317 | item.default = attach.commitmentLetter || []; | 304 | item.default = attach.commitmentLetter || []; |
| 318 | item.templateUrl = attachDataInfo.value['commitment-letter']; | 305 | item.templateUrl = attachDataInfo.value['commitment-letter']; |
| 319 | } else if (item.field === 'costAssessmentInstitution') { | 306 | } else if (item.field === 'costAssessmentInstitutionGuid') { |
| 320 | item.default = attach.costAssessmentInstitution || ''; | 307 | item.default = attach.costAssessmentInstitutionGuid || ''; |
| 321 | } else if (item.field === 'qualityEvaluationInstitution') { | 308 | } else if (item.field === 'qualityEvaluationInstitutionGuid') { |
| 322 | item.default = attach.qualityEvaluationInstitution || ''; | 309 | item.default = attach.qualityEvaluationInstitutionGuid || ''; |
| 323 | } | 310 | } |
| 324 | }); | 311 | }); |
| 325 | } | 312 | } |
| ... | @@ -358,10 +345,15 @@ const draftDetailInfo: any = ref({}); | ... | @@ -358,10 +345,15 @@ const draftDetailInfo: any = ref({}); |
| 358 | /** 会员附件模板 */ | 345 | /** 会员附件模板 */ |
| 359 | const attachDataInfo: any = ref({}); | 346 | const attachDataInfo: any = ref({}); |
| 360 | 347 | ||
| 361 | const getRegisterCatalogListData = () => { | 348 | const getRegisterCatalogListData = (dam: any={}) => { |
| 362 | getRegisterCatalogList().then((res: any) => { | 349 | getRegisterCatalogList().then((res: any) => { |
| 363 | if (res.code == proxy.$passCode) { | 350 | if (res.code == proxy.$passCode) { |
| 364 | baseFormItems.value[0].options = registerCatalogList.value = res.data || [] | 351 | const data = res.data || []; |
| 352 | baseFormItems.value[0].options = registerCatalogList.value = data; | ||
| 353 | if(guid){ | ||
| 354 | const opt = data.find(item => item.guid == dam.damGuid) | ||
| 355 | baseFormItems.value[0].default = opt? opt.guid: dam.damName | ||
| 356 | } | ||
| 365 | let dataScaleItem = baseFormItems.value.find(item => item.field == 'dataScale'); | 357 | let dataScaleItem = baseFormItems.value.find(item => item.field == 'dataScale'); |
| 366 | if (draftDetailInfo.value.damGuid) { | 358 | if (draftDetailInfo.value.damGuid) { |
| 367 | let da = registerCatalogList.value.find(r => r.guid == draftDetailInfo.value.damGuid); | 359 | let da = registerCatalogList.value.find(r => r.guid == draftDetailInfo.value.damGuid); |
| ... | @@ -394,20 +386,20 @@ const getRegisterCatalogListData = () => { | ... | @@ -394,20 +386,20 @@ const getRegisterCatalogListData = () => { |
| 394 | } | 386 | } |
| 395 | 387 | ||
| 396 | onActivated(() => { | 388 | onActivated(() => { |
| 397 | getRegisterCatalogListData(); | 389 | // getRegisterCatalogListData(); |
| 398 | }) | 390 | }) |
| 399 | 391 | ||
| 400 | onBeforeMount(() => { | 392 | onBeforeMount(() => { |
| 401 | if (guid) { | 393 | if (guid) { |
| 402 | baseFormItems.value[7].default = guid; | ||
| 403 | fullscreenLoading.value = true; | 394 | fullscreenLoading.value = true; |
| 404 | getRegiaterDetail({ guid: guid }).then((res: any) => { | 395 | getRegiaterDetail({ guid: guid }).then((res: any) => { |
| 405 | fullscreenLoading.value = false; | 396 | fullscreenLoading.value = false; |
| 406 | if (res.code == proxy.$passCode) { | 397 | if (res.code == proxy.$passCode) { |
| 407 | const data = res.data || {} | 398 | const data = res.data || {} |
| 399 | let { approveVO } = data; | ||
| 408 | draftDetailInfo.value = data; | 400 | draftDetailInfo.value = data; |
| 409 | deploymentId.value = data.camundaDeploymentId; | 401 | deploymentId.value = approveVO?.camundaDeploymentId; |
| 410 | processInstanceId.value = data.camundaInstanceId | 402 | processInstanceId.value = approveVO?.camundaInstanceId |
| 411 | let coverageArea = ''; | 403 | let coverageArea = ''; |
| 412 | let coverageAreas = []; | 404 | let coverageAreas = []; |
| 413 | let damTypeItem = baseFormItems.value.find(item => item.field == 'damType'); | 405 | let damTypeItem = baseFormItems.value.find(item => item.field == 'damType'); |
| ... | @@ -455,17 +447,17 @@ onBeforeMount(() => { | ... | @@ -455,17 +447,17 @@ onBeforeMount(() => { |
| 455 | }); | 447 | }); |
| 456 | } | 448 | } |
| 457 | if (data.exchangeGuid) { | 449 | if (data.exchangeGuid) { |
| 458 | // getTenantAttach(data.exchangeGuid).then((res: any) => { | 450 | getTenantAttach(userData.tenantGuid).then((res: any) => { |
| 459 | // if (res?.code == proxy.$passCode) { | 451 | if (res?.code == proxy.$passCode) { |
| 460 | // Object.assign(attachDataInfo.value, res.data || {}); | 452 | Object.assign(attachDataInfo.value, res.data || {}); |
| 461 | // uploadFormItems.value[0].templateUrl = attachDataInfo.value.register_letter; | 453 | uploadFormItems.value[0].templateUrl = attachDataInfo.value.register_letter; |
| 462 | // uploadFormItems.value[1].templateUrl = attachDataInfo.value['commitment-letter']; | 454 | uploadFormItems.value[1].templateUrl = attachDataInfo.value['commitment-letter']; |
| 463 | // setUploadFormItemsValue(draftDetailInfo.value); | 455 | setUploadFormItemsValue(draftDetailInfo.value); |
| 464 | // } else { | 456 | } else { |
| 465 | // ElMessage.error(res.msg); | 457 | ElMessage.error(res.msg); |
| 466 | // setUploadFormItemsValue(draftDetailInfo.value); | 458 | setUploadFormItemsValue(draftDetailInfo.value); |
| 467 | // } | 459 | } |
| 468 | // }) | 460 | }) |
| 469 | setUploadFormItemsValue(draftDetailInfo.value); | 461 | setUploadFormItemsValue(draftDetailInfo.value); |
| 470 | } else { | 462 | } else { |
| 471 | setUploadFormItemsValue(draftDetailInfo.value); | 463 | setUploadFormItemsValue(draftDetailInfo.value); |
| ... | @@ -490,39 +482,7 @@ onBeforeMount(() => { | ... | @@ -490,39 +482,7 @@ onBeforeMount(() => { |
| 490 | } else { | 482 | } else { |
| 491 | setPropertyFormItemsValue(draftDetailInfo.value); | 483 | setPropertyFormItemsValue(draftDetailInfo.value); |
| 492 | } | 484 | } |
| 493 | // if (fullPath === route.fullPath) { | 485 | getRegisterCatalogListData({damName: data.daName, damGuid: data.damGuid}); |
| 494 | // document.title = editType ? `详情-${data.daName}` : `编辑-${data.daName}`; | ||
| 495 | // } | ||
| 496 | // let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath); | ||
| 497 | // if (tab) { | ||
| 498 | // tab.meta.title = editType ? `详情-${data.daName}` : `编辑-${data.daName}`; | ||
| 499 | // } | ||
| 500 | if (data.approveGuid != null) { | ||
| 501 | approveTableInfo.value.loading = true; | ||
| 502 | getApproveList(guid).then((res: any) => { | ||
| 503 | approveTableInfo.value.loading = false; | ||
| 504 | if (res.code == proxy.$passCode) { | ||
| 505 | console.log(res.data); | ||
| 506 | approveTableInfo.value.data = res.data || []; | ||
| 507 | } else { | ||
| 508 | ElMessage.error(res.msg); | ||
| 509 | } | ||
| 510 | }); | ||
| 511 | } else { | ||
| 512 | approveTableInfo.value.loading = true; | ||
| 513 | getTenantApprove().then((res: any) => { | ||
| 514 | approveTableInfo.value.loading = false; | ||
| 515 | if (res.code == proxy.$passCode) { | ||
| 516 | approveTableInfo.value.data = res.data?.map(d => { | ||
| 517 | return { | ||
| 518 | tenantType: d.substring(4) | ||
| 519 | } | ||
| 520 | }) || []; | ||
| 521 | } else { | ||
| 522 | ElMessage.error(res.msg); | ||
| 523 | } | ||
| 524 | }); | ||
| 525 | } | ||
| 526 | } else { | 486 | } else { |
| 527 | ElMessage.error(res.msg); | 487 | ElMessage.error(res.msg); |
| 528 | } | 488 | } |
| ... | @@ -535,44 +495,10 @@ onBeforeMount(() => { | ... | @@ -535,44 +495,10 @@ onBeforeMount(() => { |
| 535 | ElMessage.error(res.msg); | 495 | ElMessage.error(res.msg); |
| 536 | } | 496 | } |
| 537 | }) | 497 | }) |
| 538 | // //新建无guid的时候显示这个审批信息,有guid调用另一个接口。 | 498 | getRegisterCatalogListData(); |
| 539 | // getTenantApprove().then((res: any) => { | 499 | } |
| 540 | // if (res.code == proxy.$passCode) { | 500 | |
| 541 | // approveTableInfo.value.data = res.data?.map(d => { | 501 | getTenantDetail(); |
| 542 | // return { | ||
| 543 | // tenantType: d.substring(4) | ||
| 544 | // } | ||
| 545 | // }) || []; | ||
| 546 | // } else { | ||
| 547 | // ElMessage.error(res.msg); | ||
| 548 | // } | ||
| 549 | // }); | ||
| 550 | } | ||
| 551 | let exchangeItem = baseFormItems.value.find(f => f.field === 'exchangeGuid'); | ||
| 552 | exchangeItem.default = route.query.exchangeGuid; | ||
| 553 | // getTenantDetail(); | ||
| 554 | // getServiceTenants({ | ||
| 555 | // tenantType: 3 | ||
| 556 | // }).then((res: any) => { | ||
| 557 | // if (res.code == proxy.$passCode) { | ||
| 558 | // const data = res.data ?? {}; | ||
| 559 | // serviceTenants.value = data['3'] || []; | ||
| 560 | // let item2 = baseFormItems.value.find(f => f.field === 'rules'); | ||
| 561 | // item2.children[1].options = serviceTenants.value; | ||
| 562 | // } else { | ||
| 563 | // ElMessage.error(res.msg); | ||
| 564 | // } | ||
| 565 | // }); | ||
| 566 | // getServiceDetail(userData.tenantGuid).then((res: any) => { | ||
| 567 | // if (res.code == proxy.$passCode) { | ||
| 568 | // const data = res.data ?? {}; | ||
| 569 | // currTenantChanged.value = data.filter(d => d.serviceType == 4); | ||
| 570 | // let formItem = baseFormItems.value.find(f => f.field === 'exchangeGuid'); | ||
| 571 | // formItem.options = currTenantChanged.value; | ||
| 572 | // } else { | ||
| 573 | // ElMessage.error(res.msg); | ||
| 574 | // } | ||
| 575 | // }); | ||
| 576 | getParentAreaPromise.value = getAreaData({ parentId: null }).then((res: any) => { | 502 | getParentAreaPromise.value = getAreaData({ parentId: null }).then((res: any) => { |
| 577 | if (res?.code == proxy.$passCode) { | 503 | if (res?.code == proxy.$passCode) { |
| 578 | parentAreaData.value = res.data ?? []; | 504 | parentAreaData.value = res.data ?? []; |
| ... | @@ -589,6 +515,7 @@ onBeforeMount(() => { | ... | @@ -589,6 +515,7 @@ onBeforeMount(() => { |
| 589 | // ElMessage.error(res.msg); | 515 | // ElMessage.error(res.msg); |
| 590 | // } | 516 | // } |
| 591 | // }) | 517 | // }) |
| 518 | // 获取资产类型 | ||
| 592 | getParamsList({ dictType: '资产类型' }).then((res: any) => { | 519 | getParamsList({ dictType: '资产类型' }).then((res: any) => { |
| 593 | if (res.code == proxy.$passCode) { | 520 | if (res.code == proxy.$passCode) { |
| 594 | damTypes.value = res.data || []; | 521 | damTypes.value = res.data || []; |
| ... | @@ -606,20 +533,35 @@ onBeforeMount(() => { | ... | @@ -606,20 +533,35 @@ onBeforeMount(() => { |
| 606 | proxy.$ElMessage.error(res.msg); | 533 | proxy.$ElMessage.error(res.msg); |
| 607 | } | 534 | } |
| 608 | }) | 535 | }) |
| 536 | // 获取数据资产目录主题 | ||
| 609 | getParamsList({ dictType: '数据资产目录主题名称' }).then((res: any) => { | 537 | getParamsList({ dictType: '数据资产目录主题名称' }).then((res: any) => { |
| 610 | if (res.code == proxy.$passCode) { | 538 | if (res.code == proxy.$passCode) { |
| 611 | subjectDomainListData.value = replaceChildDictListKey(res.data) || []; | ||
| 612 | let item = baseFormItems.value.find(item => item.field == 'subjectDomain'); | 539 | let item = baseFormItems.value.find(item => item.field == 'subjectDomain'); |
| 613 | item && (item.options = subjectDomainListData.value); | 540 | item && (item.options = subjectDomainListData.value); |
| 614 | } else { | 541 | } else { |
| 615 | proxy.$ElMessage.error(res.msg); | 542 | proxy.$ElMessage.error(res.msg); |
| 616 | } | 543 | } |
| 617 | }) | 544 | }) |
| 545 | // 获取数交所数据 | ||
| 546 | getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "130" }).then((res: any) => { | ||
| 547 | if (res.code == proxy.$passCode) { | ||
| 548 | const data = res.data.records ?? []; | ||
| 549 | currTenantChanged.value = data; | ||
| 550 | let formItem = baseFormItems.value.find(f => f.field === 'exchangeGuid'); | ||
| 551 | formItem.options = currTenantChanged.value; | ||
| 552 | formItem.default = exGuid; | ||
| 553 | serviceTenants.value = data.filter(d => d.guid !== exGuid); | ||
| 554 | let item2 = baseFormItems.value.find(f => f.field === 'rules'); | ||
| 555 | item2.children[1].options = serviceTenants.value; | ||
| 556 | } else { | ||
| 557 | proxy.$ElMessage.error(res.msg); | ||
| 558 | } | ||
| 559 | }) | ||
| 618 | // 获取质量评估机构 | 560 | // 获取质量评估机构 |
| 619 | getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "12505" }).then((res: any) => { | 561 | getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "12505" }).then((res: any) => { |
| 620 | if (res.code == proxy.$passCode) { | 562 | if (res.code == proxy.$passCode) { |
| 621 | qualityEvaluationData.value = res.data.records || []; | 563 | qualityEvaluationData.value = res.data.records || []; |
| 622 | let item = uploadFormItems.value.find(item => item.field == 'qualityEvaluationInstitution'); | 564 | let item = uploadFormItems.value.find(item => item.field == 'qualityEvaluationInstitutionGuid'); |
| 623 | item && (item.options = qualityEvaluationData.value); | 565 | item && (item.options = qualityEvaluationData.value); |
| 624 | } else { | 566 | } else { |
| 625 | proxy.$ElMessage.error(res.msg); | 567 | proxy.$ElMessage.error(res.msg); |
| ... | @@ -629,7 +571,7 @@ onBeforeMount(() => { | ... | @@ -629,7 +571,7 @@ onBeforeMount(() => { |
| 629 | getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "12504" }).then((res: any) => { | 571 | getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "12504" }).then((res: any) => { |
| 630 | if (res.code == proxy.$passCode) { | 572 | if (res.code == proxy.$passCode) { |
| 631 | costAssessmentData.value = res.data.records || []; | 573 | costAssessmentData.value = res.data.records || []; |
| 632 | let item = uploadFormItems.value.find(item => item.field == 'costAssessmentInstitution'); | 574 | let item = uploadFormItems.value.find(item => item.field == 'costAssessmentInstitutionGuid'); |
| 633 | item && (item.options = costAssessmentData.value); | 575 | item && (item.options = costAssessmentData.value); |
| 634 | } else { | 576 | } else { |
| 635 | proxy.$ElMessage.error(res.msg); | 577 | proxy.$ElMessage.error(res.msg); |
| ... | @@ -743,14 +685,6 @@ const baseFormItems: any = ref([ | ... | @@ -743,14 +685,6 @@ const baseFormItems: any = ref([ |
| 743 | clearable: true, | 685 | clearable: true, |
| 744 | required: true, | 686 | required: true, |
| 745 | }, { | 687 | }, { |
| 746 | label: "数据时间范围", | ||
| 747 | type: "date-picker", | ||
| 748 | field: "dateRange", | ||
| 749 | default: null, | ||
| 750 | placeholder: "开始时间~结束时间", | ||
| 751 | clearable: true, | ||
| 752 | required: true, | ||
| 753 | }, { | ||
| 754 | label: '病例总数(例)', | 688 | label: '病例总数(例)', |
| 755 | type: 'input', | 689 | type: 'input', |
| 756 | placeholder: '请输入', | 690 | placeholder: '请输入', |
| ... | @@ -760,7 +694,6 @@ const baseFormItems: any = ref([ | ... | @@ -760,7 +694,6 @@ const baseFormItems: any = ref([ |
| 760 | default: '', | 694 | default: '', |
| 761 | required: false | 695 | required: false |
| 762 | }, { | 696 | }, { |
| 763 | }, { | ||
| 764 | label: '数据覆盖地域', | 697 | label: '数据覆盖地域', |
| 765 | type: 'checkbox-select', | 698 | type: 'checkbox-select', |
| 766 | placeholder: '全国', | 699 | placeholder: '全国', |
| ... | @@ -804,13 +737,10 @@ const baseFormItems: any = ref([ | ... | @@ -804,13 +737,10 @@ const baseFormItems: any = ref([ |
| 804 | field: 'exchangeGuid', | 737 | field: 'exchangeGuid', |
| 805 | default: '', | 738 | default: '', |
| 806 | // col: 'mr8', | 739 | // col: 'mr8', |
| 807 | // col: 'mr8', | ||
| 808 | options: currTenantChanged.value, | 740 | options: currTenantChanged.value, |
| 809 | props: { | 741 | props: { |
| 810 | // value: 'serviceTenantGuid', | 742 | value: 'guid', |
| 811 | // label: 'serviceTenantName' | 743 | label: 'tenantName' |
| 812 | value: "exchangeGuid", | ||
| 813 | label: "exchangeName", | ||
| 814 | }, | 744 | }, |
| 815 | required: true, | 745 | required: true, |
| 816 | disabled: true, | 746 | disabled: true, |
| ... | @@ -849,10 +779,8 @@ const baseFormItems: any = ref([ | ... | @@ -849,10 +779,8 @@ const baseFormItems: any = ref([ |
| 849 | default: [], | 779 | default: [], |
| 850 | // index: 0, | 780 | // index: 0, |
| 851 | props: { | 781 | props: { |
| 852 | // value: "guid", | 782 | value: "guid", |
| 853 | // label: "tenantName", | 783 | label: "tenantName", |
| 854 | value: "exchangeGuid", | ||
| 855 | label: "exchangeName", | ||
| 856 | }, | 784 | }, |
| 857 | options: serviceTenants.value, | 785 | options: serviceTenants.value, |
| 858 | multiple: true, | 786 | multiple: true, |
| ... | @@ -1334,15 +1262,18 @@ const baseFormRules = ref({ | ... | @@ -1334,15 +1262,18 @@ const baseFormRules = ref({ |
| 1334 | registeredExchangeGuid: [{ | 1262 | registeredExchangeGuid: [{ |
| 1335 | type: 'array', required: true, trigger: 'change', message: "请填写其他登记的交易所" | 1263 | type: 'array', required: true, trigger: 'change', message: "请填写其他登记的交易所" |
| 1336 | }], | 1264 | }], |
| 1337 | isEvaluationAssessment: [ | 1265 | isQualityAssessment: [ |
| 1338 | { required: true, trigger: 'change', message: "请填写是否质量及价值评估" } | 1266 | { required: true, trigger: 'change', message: "请填写是否完成质量评估" } |
| 1267 | ], | ||
| 1268 | isCostAssessment: [ | ||
| 1269 | { required: true, trigger: 'change', message: "请填写是否完成价值评估" } | ||
| 1339 | ], | 1270 | ], |
| 1340 | applicationScenarios: [ | 1271 | applicationScenarios: [ |
| 1341 | { required: true, trigger: 'blur', message: "请填写数据资产应用场景" } | 1272 | { required: true, trigger: 'blur', message: "请填写数据资产应用场景" } |
| 1342 | ], | 1273 | ], |
| 1343 | limitApplicationScenarios: [ | 1274 | limitApplicationScenarios: [ |
| 1344 | { required: true, trigger: 'blur', message: "请填写数据资产应用限制场景" } | 1275 | { required: true, trigger: 'blur', message: "请填写数据资产应用限制场景" } |
| 1345 | ] | 1276 | ], |
| 1346 | }) | 1277 | }) |
| 1347 | 1278 | ||
| 1348 | const baseSelectChange = (val, item, row) => { | 1279 | const baseSelectChange = (val, item, row) => { |
| ... | @@ -1810,34 +1741,6 @@ const uploadFormItems: any = ref([ | ... | @@ -1810,34 +1741,6 @@ const uploadFormItems: any = ref([ |
| 1810 | field: 'commitmentLetter', | 1741 | field: 'commitmentLetter', |
| 1811 | col: 'col2', | 1742 | col: 'col2', |
| 1812 | }, | 1743 | }, |
| 1813 | // { | ||
| 1814 | // label: '文件hash值', | ||
| 1815 | // type: 'input', | ||
| 1816 | // placeholder: '请输入', | ||
| 1817 | // field: 'fileHash', | ||
| 1818 | // default: '', | ||
| 1819 | // visible: true, | ||
| 1820 | // required: true | ||
| 1821 | // }, | ||
| 1822 | // { | ||
| 1823 | // label: '数据质量评价收集', | ||
| 1824 | // tip: '支持扩展名:xls .xlsx .doc .docx .rar .zip', | ||
| 1825 | // type: 'upload-file', | ||
| 1826 | // accept: '.xls, .xlsx, .doc, .docx, .rar, .zip', | ||
| 1827 | // required: true, | ||
| 1828 | // default: [], | ||
| 1829 | // field: 'qualityEvaluationFile', | ||
| 1830 | // visible: false, | ||
| 1831 | // }, { | ||
| 1832 | // label: '数据价值评估', | ||
| 1833 | // tip: '支持扩展名:xls .xlsx .doc .docx .rar .zip', | ||
| 1834 | // type: 'upload-file', | ||
| 1835 | // accept: '.xls, .xlsx, .doc, .docx, .rar, .zip', | ||
| 1836 | // required: true, | ||
| 1837 | // visible: false, | ||
| 1838 | // default: [], | ||
| 1839 | // field: 'costAssessmentFile', | ||
| 1840 | // }, | ||
| 1841 | { | 1744 | { |
| 1842 | label: '上传质量评估报告', | 1745 | label: '上传质量评估报告', |
| 1843 | tip: '支持扩展名:.png, .pdf,单个文件不得大于5M', | 1746 | tip: '支持扩展名:.png, .pdf,单个文件不得大于5M', |
| ... | @@ -1853,12 +1756,17 @@ const uploadFormItems: any = ref([ | ... | @@ -1853,12 +1756,17 @@ const uploadFormItems: any = ref([ |
| 1853 | label: '质量评估机构', | 1756 | label: '质量评估机构', |
| 1854 | type: 'select', | 1757 | type: 'select', |
| 1855 | placeholder: '请选择', | 1758 | placeholder: '请选择', |
| 1856 | field: 'qualityEvaluationInstitution', | 1759 | field: 'qualityEvaluationInstitutionGuid', |
| 1857 | default: '', | 1760 | default: '', |
| 1858 | options: [], | 1761 | options: [], |
| 1762 | props: { | ||
| 1763 | label: 'tenantName', | ||
| 1764 | value: 'guid' | ||
| 1765 | }, | ||
| 1859 | required: true, | 1766 | required: true, |
| 1860 | filterable: true, | 1767 | filterable: true, |
| 1861 | allowCreate: true, | 1768 | allowCreate: true, |
| 1769 | clearable: true, | ||
| 1862 | style: { | 1770 | style: { |
| 1863 | width: 'calc(33.33% - 6px)!important' | 1771 | width: 'calc(33.33% - 6px)!important' |
| 1864 | }, | 1772 | }, |
| ... | @@ -1879,12 +1787,17 @@ const uploadFormItems: any = ref([ | ... | @@ -1879,12 +1787,17 @@ const uploadFormItems: any = ref([ |
| 1879 | label: '价值评估机构', | 1787 | label: '价值评估机构', |
| 1880 | type: 'select', | 1788 | type: 'select', |
| 1881 | placeholder: '请选择', | 1789 | placeholder: '请选择', |
| 1882 | field: 'costAssessmentInstitution', | 1790 | field: 'costAssessmentInstitutionGuid', |
| 1883 | default: '', | 1791 | default: '', |
| 1884 | options: [], | 1792 | options: [], |
| 1793 | props: { | ||
| 1794 | label: 'tenantName', | ||
| 1795 | value: 'guid' | ||
| 1796 | }, | ||
| 1885 | required: true, | 1797 | required: true, |
| 1886 | filterable: true, | 1798 | filterable: true, |
| 1887 | allowCreate: true, | 1799 | allowCreate: true, |
| 1800 | clearable: true, | ||
| 1888 | style: { | 1801 | style: { |
| 1889 | width: 'calc(33.33% - 6px)!important' | 1802 | width: 'calc(33.33% - 6px)!important' |
| 1890 | }, | 1803 | }, |
| ... | @@ -1902,12 +1815,12 @@ const uploadFormRules = ref({ | ... | @@ -1902,12 +1815,12 @@ const uploadFormRules = ref({ |
| 1902 | } | 1815 | } |
| 1903 | }, trigger: 'change' | 1816 | }, trigger: 'change' |
| 1904 | }], | 1817 | }], |
| 1905 | // fileHash: [ | 1818 | qualityEvaluationInstitutionGuid: [ |
| 1906 | // { required: true, trigger: 'blur', message: "请填写文件hash值" } | ||
| 1907 | // ], | ||
| 1908 | qualityEvaluationInstitution: [ | ||
| 1909 | { required: true, trigger: 'change', message: "请选择质量评估机构" } | 1819 | { required: true, trigger: 'change', message: "请选择质量评估机构" } |
| 1910 | ], | 1820 | ], |
| 1821 | costAssessmentInstitutionGuid: [ | ||
| 1822 | { required: true, trigger: 'change', message: "请选择价值评估机构" } | ||
| 1823 | ], | ||
| 1911 | qualityEvaluationFile: [{ | 1824 | qualityEvaluationFile: [{ |
| 1912 | validator: (rule: any, value: any, callback: any) => { | 1825 | validator: (rule: any, value: any, callback: any) => { |
| 1913 | if (!value?.length) { | 1826 | if (!value?.length) { |
| ... | @@ -1953,6 +1866,16 @@ const cancel = () => { | ... | @@ -1953,6 +1866,16 @@ const cancel = () => { |
| 1953 | }); | 1866 | }); |
| 1954 | } | 1867 | } |
| 1955 | 1868 | ||
| 1869 | const qualityEvaluationInstitution = ref(''); | ||
| 1870 | const costAssessmentInstitution = ref(''); | ||
| 1871 | const uploadSelectChange = (val, item, row) => { | ||
| 1872 | if (item.field == 'qualityEvaluationInstitutionGuid') { | ||
| 1873 | qualityEvaluationInstitution.value = val && item.options.find(o => o.guid == val) ? '' : (val || ''); | ||
| 1874 | } else { | ||
| 1875 | costAssessmentInstitution.value = val && item.options.find(o => o.guid == val) ? '' : (val || ''); | ||
| 1876 | } | ||
| 1877 | } | ||
| 1878 | |||
| 1956 | /** 保存草稿,不用校验。 */ | 1879 | /** 保存草稿,不用校验。 */ |
| 1957 | const saveDraft = () => { | 1880 | const saveDraft = () => { |
| 1958 | let params: any = {}; | 1881 | let params: any = {}; |
| ... | @@ -1972,14 +1895,22 @@ const saveDraft = () => { | ... | @@ -1972,14 +1895,22 @@ const saveDraft = () => { |
| 1972 | let propertyFormLine = porpertyInfoFormRef.value.formInline; | 1895 | let propertyFormLine = porpertyInfoFormRef.value.formInline; |
| 1973 | Object.assign(params, propertyFormLine); | 1896 | Object.assign(params, propertyFormLine); |
| 1974 | let uploadFormInline = uploadFormRef.value.formInline; | 1897 | let uploadFormInline = uploadFormRef.value.formInline; |
| 1975 | const registerAttachment = { | 1898 | let registerAttachment: any = { |
| 1976 | // fileHash: uploadFormInline.fileHash, | 1899 | // fileHash: uploadFormInline.fileHash, |
| 1977 | registerLetter: uploadFormInline['registerLetter']?.map(u => u.url) || [], | 1900 | registerLetter: uploadFormInline['registerLetter']?.map(u => u.url) || [], |
| 1978 | qualityEvaluationFile: uploadFormInline['qualityEvaluationFile']?.map(u => u.url) || [], | 1901 | qualityEvaluationFile: uploadFormInline['qualityEvaluationFile']?.map(u => u.url) || [], |
| 1979 | costAssessmentFile: uploadFormInline['costAssessmentFile']?.map(u => u.url) || [], | 1902 | costAssessmentFile: uploadFormInline['costAssessmentFile']?.map(u => u.url) || [], |
| 1980 | commitmentLetter: uploadFormInline['commitmentLetter']?.map(u => u.url) || [], | 1903 | commitmentLetter: uploadFormInline['commitmentLetter']?.map(u => u.url) || [], |
| 1981 | qualityEvaluationInstitution: uploadFormInline.qualityEvaluationInstitution || '', | 1904 | } |
| 1982 | costAssessmentInstitution: uploadFormInline.costAssessmentInstitution || '', | 1905 | if (qualityEvaluationInstitution.value) { |
| 1906 | registerAttachment.qualityEvaluationInstitution = qualityEvaluationInstitution.value | ||
| 1907 | } else { | ||
| 1908 | registerAttachment.qualityEvaluationInstitutionGuid = uploadFormInline.qualityEvaluationInstitutionGuid || '' | ||
| 1909 | } | ||
| 1910 | if (costAssessmentInstitution.value) { | ||
| 1911 | registerAttachment.costAssessmentInstitution = costAssessmentInstitution.value | ||
| 1912 | } else { | ||
| 1913 | registerAttachment.costAssessmentInstitutionGuid = uploadFormInline.costAssessmentInstitutionGuid || '' | ||
| 1983 | } | 1914 | } |
| 1984 | Object.assign(params, { | 1915 | Object.assign(params, { |
| 1985 | registerAttachment: registerAttachment, | 1916 | registerAttachment: registerAttachment, |
| ... | @@ -2052,14 +1983,25 @@ const save = () => { | ... | @@ -2052,14 +1983,25 @@ const save = () => { |
| 2052 | let propertyFormLine = porpertyInfoFormRef.value.formInline; | 1983 | let propertyFormLine = porpertyInfoFormRef.value.formInline; |
| 2053 | Object.assign(params, propertyFormLine); | 1984 | Object.assign(params, propertyFormLine); |
| 2054 | let uploadFormInline = uploadFormRef.value.formInline; | 1985 | let uploadFormInline = uploadFormRef.value.formInline; |
| 2055 | Object.assign(params, { | 1986 | let registerAttachment: any = { |
| 2056 | registerAttachment: { | ||
| 2057 | // fileHash: uploadFormInline.fileHash, | 1987 | // fileHash: uploadFormInline.fileHash, |
| 2058 | registerLetter: uploadFormInline['registerLetter']?.map(u => u.url) || [], | 1988 | registerLetter: uploadFormInline['registerLetter']?.map(u => u.url) || [], |
| 2059 | qualityEvaluationFile: uploadFormInline['qualityEvaluationFile']?.map(u => u.url) || [], | 1989 | qualityEvaluationFile: uploadFormInline['qualityEvaluationFile']?.map(u => u.url) || [], |
| 2060 | costAssessmentFile: uploadFormInline['costAssessmentFile']?.map(u => u.url) || [], | 1990 | costAssessmentFile: uploadFormInline['costAssessmentFile']?.map(u => u.url) || [], |
| 2061 | commitmentLetter: uploadFormInline['commitmentLetter']?.map(u => u.url) || [], | 1991 | commitmentLetter: uploadFormInline['commitmentLetter']?.map(u => u.url) || [], |
| 2062 | }, | 1992 | } |
| 1993 | if (qualityEvaluationInstitution.value) { | ||
| 1994 | registerAttachment.qualityEvaluationInstitution = qualityEvaluationInstitution.value | ||
| 1995 | } else { | ||
| 1996 | registerAttachment.qualityEvaluationInstitutionGuid = uploadFormInline.qualityEvaluationInstitutionGuid || '' | ||
| 1997 | } | ||
| 1998 | if (costAssessmentInstitution.value) { | ||
| 1999 | registerAttachment.costAssessmentInstitution = costAssessmentInstitution.value | ||
| 2000 | } else { | ||
| 2001 | registerAttachment.costAssessmentInstitutionGuid = uploadFormInline.costAssessmentInstitutionGuid || '' | ||
| 2002 | } | ||
| 2003 | Object.assign(params, { | ||
| 2004 | registerAttachment: registerAttachment, | ||
| 2063 | immediateApprove: true, | 2005 | immediateApprove: true, |
| 2064 | isSubmit: true, | 2006 | isSubmit: true, |
| 2065 | }); | 2007 | }); |
| ... | @@ -2070,6 +2012,7 @@ const save = () => { | ... | @@ -2070,6 +2012,7 @@ const save = () => { |
| 2070 | fullscreenLoading.value = true; | 2012 | fullscreenLoading.value = true; |
| 2071 | if (draftDetailInfo.value.guid) { | 2013 | if (draftDetailInfo.value.guid) { |
| 2072 | params.guid = draftDetailInfo.value.guid; | 2014 | params.guid = draftDetailInfo.value.guid; |
| 2015 | params.isRestart = localStorage.getItem('isRestart') ? true : false; | ||
| 2073 | registerUpdate(params).then((res: any) => { | 2016 | registerUpdate(params).then((res: any) => { |
| 2074 | fullscreenLoading.value = false; | 2017 | fullscreenLoading.value = false; |
| 2075 | if (res.code == proxy.$passCode) { | 2018 | if (res.code == proxy.$passCode) { |
| ... | @@ -2184,7 +2127,7 @@ const approveTableInfo: any = ref({ | ... | @@ -2184,7 +2127,7 @@ const approveTableInfo: any = ref({ |
| 2184 | <ContentWrap id="id-assetContent" title="附件信息" description="" :isExpand="assetContentExpand" expandSwicth | 2127 | <ContentWrap id="id-assetContent" title="附件信息" description="" :isExpand="assetContentExpand" expandSwicth |
| 2185 | style="margin-top: 15px" @expand="(v) => assetContentExpand = v"> | 2128 | style="margin-top: 15px" @expand="(v) => assetContentExpand = v"> |
| 2186 | <Form class='uploadForm' ref="uploadFormRef" :itemList="uploadFormItems" formId="upload-form" | 2129 | <Form class='uploadForm' ref="uploadFormRef" :itemList="uploadFormItems" formId="upload-form" |
| 2187 | :rules="uploadFormRules" col="col3" /> | 2130 | :rules="uploadFormRules" col="col3" @selectChange="uploadSelectChange" /> |
| 2188 | </ContentWrap> | 2131 | </ContentWrap> |
| 2189 | <ContentWrap id="id-propertyInfo" title="权利信息" description="申报数据资产的权利信息" expandSwicth | 2132 | <ContentWrap id="id-propertyInfo" title="权利信息" description="申报数据资产的权利信息" expandSwicth |
| 2190 | :isExpand="propertyInfoExpand" style="margin-top: 15px" @expand="(v) => propertyInfoExpand = v"> | 2133 | :isExpand="propertyInfoExpand" style="margin-top: 15px" @expand="(v) => propertyInfoExpand = v"> | ... | ... |
| ... | @@ -515,13 +515,11 @@ const tabChange = (val) => { | ... | @@ -515,13 +515,11 @@ const tabChange = (val) => { |
| 515 | 515 | ||
| 516 | const nodeClick = (data, node) => { | 516 | const nodeClick = (data, node) => { |
| 517 | if (data.classifyDetailGuid == 'all') { | 517 | if (data.classifyDetailGuid == 'all') { |
| 518 | fieldItemList.value[4].default = ''; | ||
| 519 | fieldItemList.value[5].default = []; | 518 | fieldItemList.value[5].default = []; |
| 520 | } else { | 519 | } else { |
| 521 | const nodeData = JSON.parse(JSON.stringify(data)); | 520 | const nodeData = JSON.parse(JSON.stringify(data)); |
| 522 | let parentGuids = nodeData.parentGuids || []; | 521 | let parentGuids = nodeData.parentGuids || []; |
| 523 | parentGuids.push(nodeData.guid) | 522 | parentGuids.push(nodeData.guid) |
| 524 | fieldItemList.value[4].default = 'Y'; | ||
| 525 | fieldItemList.value[5].default = parentGuids; | 523 | fieldItemList.value[5].default = parentGuids; |
| 526 | } | 524 | } |
| 527 | nextTick(() => { | 525 | nextTick(() => { |
| ... | @@ -822,7 +820,6 @@ const cascaderChange = (val, info) => { | ... | @@ -822,7 +820,6 @@ const cascaderChange = (val, info) => { |
| 822 | } else { | 820 | } else { |
| 823 | treeInfoRef.value.expandedKey = val || ['all']; | 821 | treeInfoRef.value.expandedKey = val || ['all']; |
| 824 | treeInfoRef.value.setCurrentKey(val?.at(-1) || 'all'); | 822 | treeInfoRef.value.setCurrentKey(val?.at(-1) || 'all'); |
| 825 | val && (fieldItemList.value[4].default = 'Y'); | ||
| 826 | promiseList( | 823 | promiseList( |
| 827 | getFieldTableData() | 824 | getFieldTableData() |
| 828 | ) | 825 | ) |
| ... | @@ -904,18 +901,12 @@ const selectChange = (val, item, scope = null) => { | ... | @@ -904,18 +901,12 @@ const selectChange = (val, item, scope = null) => { |
| 904 | } | 901 | } |
| 905 | } | 902 | } |
| 906 | } else if (item.field == 'isClassify') { | 903 | } else if (item.field == 'isClassify') { |
| 907 | fieldItemList.value[5].default = []; | ||
| 908 | fieldItemList.value[6].default = ''; | ||
| 909 | treeInfo.value.expandedKey = ['all']; | ||
| 910 | treeInfoRef.value.setCurrentKey('all'); | ||
| 911 | fieldItemList.value[4].default = val || ''; | 904 | fieldItemList.value[4].default = val || ''; |
| 905 | fieldItemList.value[5].default = scope.classifyName; | ||
| 912 | nextTick(() => { | 906 | nextTick(() => { |
| 913 | promiseList( | 907 | promiseList( |
| 914 | getFieldTableData() | 908 | getFieldTableData() |
| 915 | ) | 909 | ) |
| 916 | const treeRef = treeInfoRef.value.treeRef; | ||
| 917 | const container = treeRef.$el; | ||
| 918 | container.scrollTo({ top: 0, behavior: 'smooth' }); | ||
| 919 | }) | 910 | }) |
| 920 | 911 | ||
| 921 | } | 912 | } | ... | ... |
| ... | @@ -382,7 +382,7 @@ const getQueryTreeData = ()=>{ | ... | @@ -382,7 +382,7 @@ const getQueryTreeData = ()=>{ |
| 382 | currNodeInfo.value = {type:2,guid:dataSourceGuid,name:datasourceName} | 382 | currNodeInfo.value = {type:2,guid:dataSourceGuid,name:datasourceName} |
| 383 | } | 383 | } |
| 384 | nextTick(() => { | 384 | nextTick(() => { |
| 385 | treeInfo.value.currentNodeKey = currentNodeKey.value | 385 | treeInfo.value.currentNodeKey = <string>route.query.tableGuid || currentNodeKey.value; |
| 386 | treeInfo.value.expandedKey = expandedKey.value | 386 | treeInfo.value.expandedKey = expandedKey.value |
| 387 | }) | 387 | }) |
| 388 | nodeClick({type:2,guid:dataSourceGuid,name:datasourceName}) | 388 | nodeClick({type:2,guid:dataSourceGuid,name:datasourceName}) | ... | ... |
| ... | @@ -683,7 +683,6 @@ const download = () => { | ... | @@ -683,7 +683,6 @@ const download = () => { |
| 683 | <div v-show="!isWordStyle" class="header-detail"> | 683 | <div v-show="!isWordStyle" class="header-detail"> |
| 684 | <template v-if="detailInfo.analysisReportType == 1"> | 684 | <template v-if="detailInfo.analysisReportType == 1"> |
| 685 | <span>{{ '表名称:' + (detailInfo.qualityModelName ?? '--') }}</span> | 685 | <span>{{ '表名称:' + (detailInfo.qualityModelName ?? '--') }}</span> |
| 686 | <span style="margin-left: 40px;">{{ '所属主题:' + (detailInfo.subjectDomainName ?? '--') }}</span> | ||
| 687 | <span style="margin-left: 40px;">{{ '所属数据源:' + (detailInfo.dataSourceName ?? '--') }}</span> | 686 | <span style="margin-left: 40px;">{{ '所属数据源:' + (detailInfo.dataSourceName ?? '--') }}</span> |
| 688 | </template> | 687 | </template> |
| 689 | <span v-else-if="detailInfo.analysisReportType == 3">{{ '分组名称:' + (detailInfo.qualityModelGroupName ?? '--') | 688 | <span v-else-if="detailInfo.analysisReportType == 3">{{ '分组名称:' + (detailInfo.qualityModelGroupName ?? '--') |
| ... | @@ -787,7 +786,6 @@ const download = () => { | ... | @@ -787,7 +786,6 @@ const download = () => { |
| 787 | <div style=" height: 40px;line-height: 40px;font-size: 14px;color: #666666;"> | 786 | <div style=" height: 40px;line-height: 40px;font-size: 14px;color: #666666;"> |
| 788 | <template v-if="detailInfo.analysisReportType == 1"> | 787 | <template v-if="detailInfo.analysisReportType == 1"> |
| 789 | <span>{{ '表名称:' + (detailInfo.qualityModelName ?? '--') }}</span> | 788 | <span>{{ '表名称:' + (detailInfo.qualityModelName ?? '--') }}</span> |
| 790 | <span style="margin-left: 40px;">{{ '所属主题:' + (detailInfo.subjectDomainName ?? '--') }}</span> | ||
| 791 | <span style="margin-left: 40px;">{{ '所属数据源:' + (detailInfo.dataSourceName ?? '--') }}</span> | 789 | <span style="margin-left: 40px;">{{ '所属数据源:' + (detailInfo.dataSourceName ?? '--') }}</span> |
| 792 | </template> | 790 | </template> |
| 793 | <span v-else-if="detailInfo.analysisReportType == 3">{{ '分组名称:' + (detailInfo.qualityModelGroupName ?? '--') | 791 | <span v-else-if="detailInfo.analysisReportType == 3">{{ '分组名称:' + (detailInfo.qualityModelGroupName ?? '--') | ... | ... |
| ... | @@ -226,6 +226,7 @@ const rulesDetailTableBtnClick = (scope, btn) => { | ... | @@ -226,6 +226,7 @@ const rulesDetailTableBtnClick = (scope, btn) => { |
| 226 | if (type == 'ruleDetail') { | 226 | if (type == 'ruleDetail') { |
| 227 | detailLoading.value = true; | 227 | detailLoading.value = true; |
| 228 | if (detailJson.value[row.ruleConfGuid]) { | 228 | if (detailJson.value[row.ruleConfGuid]) { |
| 229 | detailInfo.value = detailJson.value[row.ruleConfGuid]; | ||
| 229 | ruleType.value = detailInfo.value.ruleCode; | 230 | ruleType.value = detailInfo.value.ruleCode; |
| 230 | toSubjectTables.value = [{ | 231 | toSubjectTables.value = [{ |
| 231 | guid: detailInfo.value.subjectGuid, | 232 | guid: detailInfo.value.subjectGuid, | ... | ... |
| ... | @@ -331,7 +331,7 @@ onActivated(() => { | ... | @@ -331,7 +331,7 @@ onActivated(() => { |
| 331 | let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath); | 331 | let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath); |
| 332 | if (tab) { | 332 | if (tab) { |
| 333 | if (route.query.detail) { | 333 | if (route.query.detail) { |
| 334 | tab.meta.title = `新建规则(${route.query.planName})`; | 334 | tab.meta.title = `方案详情-${route.query.planName}`; |
| 335 | if (fullPath === route.fullPath) { | 335 | if (fullPath === route.fullPath) { |
| 336 | document.title = tab.meta.title; | 336 | document.title = tab.meta.title; |
| 337 | } | 337 | } | ... | ... |
| ... | @@ -28,10 +28,8 @@ import { | ... | @@ -28,10 +28,8 @@ import { |
| 28 | import useDataQualityStore from "@/store/modules/dataQuality"; | 28 | import useDataQualityStore from "@/store/modules/dataQuality"; |
| 29 | import { useValidator } from '@/hooks/useValidator'; | 29 | import { useValidator } from '@/hooks/useValidator'; |
| 30 | import { TableColumnWidth } from '@/utils/enum'; | 30 | import { TableColumnWidth } from '@/utils/enum'; |
| 31 | import useDataCatalogStore from "@/store/modules/dataCatalog"; | ||
| 32 | 31 | ||
| 33 | const dataQualityStore = useDataQualityStore(); | 32 | const dataQualityStore = useDataQualityStore(); |
| 34 | const dataCatalogStore = useDataCatalogStore(); | ||
| 35 | 33 | ||
| 36 | const { proxy } = getCurrentInstance() as any; | 34 | const { proxy } = getCurrentInstance() as any; |
| 37 | const { orderNum, description } = useValidator(); | 35 | const { orderNum, description } = useValidator(); |
| ... | @@ -411,10 +409,27 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -411,10 +409,27 @@ const tableBtnClick = (scope, btn) => { |
| 411 | } else if (type == "delete") { | 409 | } else if (type == "delete") { |
| 412 | open("此操作将永久删除, 是否继续?", "warning"); | 410 | open("此操作将永久删除, 是否继续?", "warning"); |
| 413 | } else if (type == 'locateDataCatalog') { | 411 | } else if (type == 'locateDataCatalog') { |
| 414 | dataCatalogStore.setLocateSubjectName(row.name); | 412 | // dataCatalogStore.setLocateSubjectName(row.name); |
| 413 | // router.push({ | ||
| 414 | // name: 'dataWarehouse' | ||
| 415 | // }); | ||
| 416 | if (row.dataSource == '4') { | ||
| 415 | router.push({ | 417 | router.push({ |
| 416 | name: 'dataWarehouse' | 418 | name: 'classifyGradeCatalogue', |
| 419 | query: { | ||
| 420 | databaseGuid: row.dataSourceGuid, | ||
| 421 | tableGuid: row.subjectGuid | ||
| 422 | } | ||
| 417 | }); | 423 | }); |
| 424 | } else { | ||
| 425 | router.push({ | ||
| 426 | name: 'metaSheet', | ||
| 427 | query: { | ||
| 428 | id: row.subjectGuid, | ||
| 429 | name: row.name | ||
| 430 | } | ||
| 431 | }); | ||
| 432 | } | ||
| 418 | } | 433 | } |
| 419 | }; | 434 | }; |
| 420 | 435 | ... | ... |
| ... | @@ -134,6 +134,15 @@ watch(() => props.largeCategoryList, (val) => { | ... | @@ -134,6 +134,15 @@ watch(() => props.largeCategoryList, (val) => { |
| 134 | } | 134 | } |
| 135 | }) | 135 | }) |
| 136 | 136 | ||
| 137 | const operationList: any = ref([ | ||
| 138 | { label: '大于', value: '>', }, | ||
| 139 | { label: '小于', value: '<', }, | ||
| 140 | { label: '等于', value: '=', }, | ||
| 141 | { label: '大于等于', value: '>=', }, | ||
| 142 | { label: '小于等于', value: '<=', }, | ||
| 143 | { label: '介于', value: 'between', }, | ||
| 144 | ]); | ||
| 145 | |||
| 137 | /** 规范性检验规则 */ | 146 | /** 规范性检验规则 */ |
| 138 | const checkRulesList: any = ref([]); | 147 | const checkRulesList: any = ref([]); |
| 139 | 148 | ||
| ... | @@ -178,7 +187,24 @@ onBeforeMount(() => { | ... | @@ -178,7 +187,24 @@ onBeforeMount(() => { |
| 178 | formItems.value[0].children = panelList.value; | 187 | formItems.value[0].children = panelList.value; |
| 179 | } | 188 | } |
| 180 | if (props.smallCategoryList?.length) { | 189 | if (props.smallCategoryList?.length) { |
| 190 | let p = panelList.value[1]; | ||
| 191 | if (p.default) { | ||
| 192 | if (p.default == '1') {//规范性 | ||
| 181 | panelList.value[2].options = props.smallCategoryList.slice(0, 6); | 193 | panelList.value[2].options = props.smallCategoryList.slice(0, 6); |
| 194 | } else if (p.default == '2') { | ||
| 195 | panelList.value[2].options = props.smallCategoryList.slice(6, 8); | ||
| 196 | } else if (p.default == '3') { | ||
| 197 | panelList.value[2].options = props.smallCategoryList.slice(8, 13); | ||
| 198 | } else if (p.default == '4') { | ||
| 199 | panelList.value[2].options = props.smallCategoryList.slice(13, 15); | ||
| 200 | } else if (p.default == '5') { | ||
| 201 | panelList.value[2].options = props.smallCategoryList.slice(15, 18); | ||
| 202 | } else if (p.default == '6') { | ||
| 203 | panelList.value[2].options = props.smallCategoryList.slice(18, 20); | ||
| 204 | } | ||
| 205 | } else { | ||
| 206 | panelList.value[2].options = props.smallCategoryList.slice(0, 6); | ||
| 207 | } | ||
| 182 | panelList.value[2].default = getDefaultSmallCategory(formItems.value[0].default); | 208 | panelList.value[2].default = getDefaultSmallCategory(formItems.value[0].default); |
| 183 | formItems.value[0].children = panelList.value; | 209 | formItems.value[0].children = panelList.value; |
| 184 | } | 210 | } |
| ... | @@ -654,7 +680,7 @@ const getSubjectTableTreeData = () => { | ... | @@ -654,7 +680,7 @@ const getSubjectTableTreeData = () => { |
| 654 | d.children = d.children?.map(child => { | 680 | d.children = d.children?.map(child => { |
| 655 | child.label = child.name + `(${child.tableName})`; | 681 | child.label = child.name + `(${child.tableName})`; |
| 656 | child.isLeaf = true; | 682 | child.isLeaf = true; |
| 657 | child.dataServerName = d.name; | 683 | child.dataServerName = child.databaseName; |
| 658 | child.dataSourceGuid = d.guid; | 684 | child.dataSourceGuid = d.guid; |
| 659 | return child; | 685 | return child; |
| 660 | }) | 686 | }) |
| ... | @@ -796,12 +822,11 @@ const formBtnClick = (btn) => { | ... | @@ -796,12 +822,11 @@ const formBtnClick = (btn) => { |
| 796 | if (field.dataRange) { | 822 | if (field.dataRange) { |
| 797 | f.dataRange = field.dataRange; | 823 | f.dataRange = field.dataRange; |
| 798 | } | 824 | } |
| 825 | f.startValue = field.startValue; | ||
| 826 | f.endValue = field.endValue; | ||
| 799 | if (field.startValue) { | 827 | if (field.startValue) { |
| 800 | if (f.dataType == 'date' || f.dataType == 'datetime') { | 828 | if (f.dataType == 'date' || f.dataType == 'datetime') { |
| 801 | f.dateValueRange = [field.startValue, field.endValue]; | 829 | f.dateValueRange = [field.startValue, field.endValue]; |
| 802 | } else { | ||
| 803 | f.startValue = field.startValue; | ||
| 804 | f.endValue = field.endValue; | ||
| 805 | } | 830 | } |
| 806 | } | 831 | } |
| 807 | } | 832 | } |
| ... | @@ -852,6 +877,7 @@ const formBtnClick = (btn) => { | ... | @@ -852,6 +877,7 @@ const formBtnClick = (btn) => { |
| 852 | if (fIndex > -1) { | 877 | if (fIndex > -1) { |
| 853 | let f = normCheckTableListData.value[dialogSelectSubjectTable.value.enName][fIndex]; | 878 | let f = normCheckTableListData.value[dialogSelectSubjectTable.value.enName][fIndex]; |
| 854 | f.checkRule = field.checkRule; | 879 | f.checkRule = field.checkRule; |
| 880 | f.checkRuleName = field.checkRuleName; | ||
| 855 | f.configValue = field.configValue; | 881 | f.configValue = field.configValue; |
| 856 | if (f.checkRule == 'length_rule') { | 882 | if (f.checkRule == 'length_rule') { |
| 857 | let vSplit = f.configValue.split('#'); | 883 | let vSplit = f.configValue.split('#'); |
| ... | @@ -871,7 +897,7 @@ const formBtnClick = (btn) => { | ... | @@ -871,7 +897,7 @@ const formBtnClick = (btn) => { |
| 871 | } | 897 | } |
| 872 | 898 | ||
| 873 | const selectChange = (val, item, info) => { | 899 | const selectChange = (val, item, info) => { |
| 874 | setPanelListValue(info, true); | 900 | setPanelListValue(info, item.field == 'largeCategory'); |
| 875 | }; | 901 | }; |
| 876 | 902 | ||
| 877 | /** 设置表单选项的值,防止largeCategory的options改变,重新赋值。 当radioGroupChange为true,init为false时,为用户手动切换,需要更新大类的默认值。 */ | 903 | /** 设置表单选项的值,防止largeCategory的options改变,重新赋值。 当radioGroupChange为true,init为false时,为用户手动切换,需要更新大类的默认值。 */ |
| ... | @@ -1204,12 +1230,11 @@ const listItemClick = (data) => { | ... | @@ -1204,12 +1230,11 @@ const listItemClick = (data) => { |
| 1204 | if (field.dataRange) { | 1230 | if (field.dataRange) { |
| 1205 | f.dataRange = field.dataRange; | 1231 | f.dataRange = field.dataRange; |
| 1206 | } | 1232 | } |
| 1233 | f.startValue = field.startValue; | ||
| 1234 | f.endValue = field.endValue; | ||
| 1207 | if (field.startValue) { | 1235 | if (field.startValue) { |
| 1208 | if (f.dataType == 'date' || f.dataType == 'datetime') { | 1236 | if (f.dataType == 'date' || f.dataType == 'datetime') { |
| 1209 | f.dateValueRange = [field.startValue, field.endValue]; | 1237 | f.dateValueRange = [field.startValue, field.endValue]; |
| 1210 | } else { | ||
| 1211 | f.startValue = field.startValue; | ||
| 1212 | f.endValue = field.endValue; | ||
| 1213 | } | 1238 | } |
| 1214 | } | 1239 | } |
| 1215 | } | 1240 | } |
| ... | @@ -1237,7 +1262,8 @@ const listItemClick = (data) => { | ... | @@ -1237,7 +1262,8 @@ const listItemClick = (data) => { |
| 1237 | if (fIndex > -1) { | 1262 | if (fIndex > -1) { |
| 1238 | let f = normCheckTableListData.value[dialogSelectSubjectTable.value.enName][fIndex]; | 1263 | let f = normCheckTableListData.value[dialogSelectSubjectTable.value.enName][fIndex]; |
| 1239 | if (field.checkRule) { | 1264 | if (field.checkRule) { |
| 1240 | f.checkRule = field.dataRange; | 1265 | f.checkRule = field.checkRule; |
| 1266 | f.checkRuleName = field.checkRuleName; | ||
| 1241 | f.configValue = field.configValue; | 1267 | f.configValue = field.configValue; |
| 1242 | if (field.checkRule == 'length_rule') { | 1268 | if (field.checkRule == 'length_rule') { |
| 1243 | let vLen = f.configValue?.split('#'); | 1269 | let vLen = f.configValue?.split('#'); |
| ... | @@ -1404,7 +1430,8 @@ const validateFilter = () => { | ... | @@ -1404,7 +1430,8 @@ const validateFilter = () => { |
| 1404 | validateFilterBtnDisable.value = true; | 1430 | validateFilterBtnDisable.value = true; |
| 1405 | validateSubjectTableRule({ | 1431 | validateSubjectTableRule({ |
| 1406 | subjectGuid: dialogSelectSubjectTable.value.guid, | 1432 | subjectGuid: dialogSelectSubjectTable.value.guid, |
| 1407 | condition: tableFilters.value[enName] | 1433 | condition: tableFilters.value[enName], |
| 1434 | dataSource: props.dataSource || props.value.dataSource | ||
| 1408 | }).then((res: any) => { | 1435 | }).then((res: any) => { |
| 1409 | validateFilterBtnDisable.value = false; | 1436 | validateFilterBtnDisable.value = false; |
| 1410 | if (res.code == proxy.$passCode) { | 1437 | if (res.code == proxy.$passCode) { |
| ... | @@ -1602,7 +1629,8 @@ const validateSql = () => { | ... | @@ -1602,7 +1629,8 @@ const validateSql = () => { |
| 1602 | validateSqlBtnDisable.value = true; | 1629 | validateSqlBtnDisable.value = true; |
| 1603 | validateCustomSql({ | 1630 | validateCustomSql({ |
| 1604 | subjectGuid: dialogSelectSubjectTable.value.guid, | 1631 | subjectGuid: dialogSelectSubjectTable.value.guid, |
| 1605 | sqlScript: sqlTableFilters.value[enName] | 1632 | sqlScript: sqlTableFilters.value[enName], |
| 1633 | dataSource: props.dataSource || props.value.dataSource | ||
| 1606 | }).then((res: any) => { | 1634 | }).then((res: any) => { |
| 1607 | validateSqlBtnDisable.value = false; | 1635 | validateSqlBtnDisable.value = false; |
| 1608 | if (res?.code == proxy.$passCode) { | 1636 | if (res?.code == proxy.$passCode) { |
| ... | @@ -1778,14 +1806,14 @@ const submitValueRange = () => { | ... | @@ -1778,14 +1806,14 @@ const submitValueRange = () => { |
| 1778 | let valueTableFields = valueRangeTableListData.value[table]; | 1806 | let valueTableFields = valueRangeTableListData.value[table]; |
| 1779 | let ruleFields: any = [] | 1807 | let ruleFields: any = [] |
| 1780 | for (const field of valueTableFields) { | 1808 | for (const field of valueTableFields) { |
| 1781 | if (field.startValue == null && field.endValue == null) { | 1809 | // if (field.startValue == null && field.endValue == null) { |
| 1782 | if (dialogSelectSubjectTable.value.enName != table) { | 1810 | // if (dialogSelectSubjectTable.value.enName != table) { |
| 1783 | valueCheckFormListRef.value.setSelectList(table, 'enName'); | 1811 | // valueCheckFormListRef.value.setSelectList(table, 'enName'); |
| 1784 | } | 1812 | // } |
| 1785 | ElMessage.error(`表【${table}】的字段【${field.enName}】设置了值域,但范围未填写完整`); | 1813 | // ElMessage.error(`表【${table}】的字段【${field.enName}】设置了值域,但范围未填写完整`); |
| 1786 | return; | 1814 | // return; |
| 1787 | } | 1815 | // } |
| 1788 | if (field.startValue != null || field.endValue != null) { | 1816 | if (field.startValue || field.endValue) { |
| 1789 | ruleFields.push(field); | 1817 | ruleFields.push(field); |
| 1790 | } else if (field.dataRange) { | 1818 | } else if (field.dataRange) { |
| 1791 | ruleFields.push(field); | 1819 | ruleFields.push(field); |
| ... | @@ -1969,7 +1997,7 @@ const submitNormCheck = () => { | ... | @@ -1969,7 +1997,7 @@ const submitNormCheck = () => { |
| 1969 | if (dialogSelectSubjectTable.value.enName != table) { | 1997 | if (dialogSelectSubjectTable.value.enName != table) { |
| 1970 | normCheckFormListRef.value.setSelectList(table, 'enName'); | 1998 | normCheckFormListRef.value.setSelectList(table, 'enName'); |
| 1971 | } | 1999 | } |
| 1972 | ElMessage.error(`表【${table}】的字段【${field.enName}】设置了长度检验,但长度值未填写完整`); | 2000 | ElMessage.error(`表【${table}】的字段【${field.enName}】设置了长度检验,但长度范围值未填写完整`); |
| 1973 | return; | 2001 | return; |
| 1974 | } | 2002 | } |
| 1975 | if (parseInt(field.value) >= parseInt(field.value1)) { | 2003 | if (parseInt(field.value) >= parseInt(field.value1)) { |
| ... | @@ -2016,6 +2044,18 @@ const submitNormCheck = () => { | ... | @@ -2016,6 +2044,18 @@ const submitNormCheck = () => { |
| 2016 | normCheckDialogVisible.value = false; | 2044 | normCheckDialogVisible.value = false; |
| 2017 | } | 2045 | } |
| 2018 | 2046 | ||
| 2047 | /** 规范检验 长度和精度的数入 */ | ||
| 2048 | const validatePositiveInteger = (row: any, field: string) => { | ||
| 2049 | row[field] = row[field].replace(/\D/g, ''); | ||
| 2050 | let value = row[field]; | ||
| 2051 | |||
| 2052 | // 如果输入值为0,则将其设置为1 | ||
| 2053 | if (value == '0') { | ||
| 2054 | row[field] = '1'; | ||
| 2055 | return; | ||
| 2056 | } | ||
| 2057 | }; | ||
| 2058 | |||
| 2019 | const getFormInfo = () => { | 2059 | const getFormInfo = () => { |
| 2020 | let formInline = ruleFormRef.value.formInline; | 2060 | let formInline = ruleFormRef.value.formInline; |
| 2021 | let ruleName = props.ruleTypeList.find(option => option.ruleCode == formInline.ruleCode).ruleName; | 2061 | let ruleName = props.ruleTypeList.find(option => option.ruleCode == formInline.ruleCode).ruleName; |
| ... | @@ -2219,6 +2259,13 @@ defineExpose({ | ... | @@ -2219,6 +2259,13 @@ defineExpose({ |
| 2219 | </el-table-column> | 2259 | </el-table-column> |
| 2220 | <el-table-column label="值域" width="280px" align="left" fixed="right"> | 2260 | <el-table-column label="值域" width="280px" align="left" fixed="right"> |
| 2221 | <template #default="scope"> | 2261 | <template #default="scope"> |
| 2262 | <span v-if="props.readonly">{{ (!scope.row.dataType || scope.row.dataType == 'varchar' || | ||
| 2263 | scope.row.dataType == 'char' || scope.row.dataType == 'bit' || scope.row.dataType == 'json' || | ||
| 2264 | scope.row.dataType == 'text' || !scope.row.dataType || scope.row.dataType == 'string' || | ||
| 2265 | scope.row.dataType == 'numeric') ? (scope.row.dataRange || '--') : (scope.row.startValue && | ||
| 2266 | scope.row.endValue ? `${scope.row.startValue}~${scope.row.endValue}` : (scope.row.startValue != null ? | ||
| 2267 | scope.row.startValue : (scope.row.endValue ?? '--'))) }}</span> | ||
| 2268 | <template v-else> | ||
| 2222 | <el-input | 2269 | <el-input |
| 2223 | v-show="!scope.row.dataType || scope.row.dataType == 'varchar' || scope.row.dataType == 'char' || scope.row.dataType == 'bit' || scope.row.dataType == 'json' || scope.row.dataType == 'text' || !scope.row.dataType || scope.row.dataType == 'string' || scope.row.dataType == 'numeric'" | 2270 | v-show="!scope.row.dataType || scope.row.dataType == 'varchar' || scope.row.dataType == 'char' || scope.row.dataType == 'bit' || scope.row.dataType == 'json' || scope.row.dataType == 'text' || !scope.row.dataType || scope.row.dataType == 'string' || scope.row.dataType == 'numeric'" |
| 2224 | v-model.trim="scope.row.dataRange" clearable placeholder="多值按照分号;分隔"> </el-input> | 2271 | v-model.trim="scope.row.dataRange" clearable placeholder="多值按照分号;分隔"> </el-input> |
| ... | @@ -2236,6 +2283,7 @@ defineExpose({ | ... | @@ -2236,6 +2283,7 @@ defineExpose({ |
| 2236 | </el-input> | 2283 | </el-input> |
| 2237 | </div> | 2284 | </div> |
| 2238 | </template> | 2285 | </template> |
| 2286 | </template> | ||
| 2239 | </el-table-column> | 2287 | </el-table-column> |
| 2240 | </el-table> | 2288 | </el-table> |
| 2241 | </div> | 2289 | </div> |
| ... | @@ -2355,16 +2403,18 @@ defineExpose({ | ... | @@ -2355,16 +2403,18 @@ defineExpose({ |
| 2355 | <span v-else>{{ scope.row.checkRuleName ?? '--' }}</span> | 2403 | <span v-else>{{ scope.row.checkRuleName ?? '--' }}</span> |
| 2356 | </template> | 2404 | </template> |
| 2357 | </el-table-column> | 2405 | </el-table-column> |
| 2358 | <el-table-column label="填写配置项" width="200px" align="left"> | 2406 | <el-table-column label="填写配置项" width="240px" align="left"> |
| 2359 | <template #default="scope"> | 2407 | <template #default="scope"> |
| 2360 | <span v-if="props.readonly">{{ scope.row.configValue ?? '--' }}</span> | 2408 | <span v-if="props.readonly">{{ scope.row.configValue != null ? (scope.row.checkRule != 'length_rule' ? scope.row.configValue : (scope.row.configValue.split('#')?.length ? |
| 2409 | (operationList.find(o => o.value == scope.row.configValue.split('#')[0]).label + | ||
| 2410 | scope.row.configValue.split('#').slice(1).join('~')) : scope.row.configValue)) : '--' }}</span> | ||
| 2361 | <span | 2411 | <span |
| 2362 | v-else-if="!scope.row.checkRule || ['id_card_rule', 'phone_number_rule', 'en_rule', 'ch_rule', 'num_value_rule'].includes(scope.row.checkRule)">--</span> | 2412 | v-else-if="!scope.row.checkRule || ['id_card_rule', 'phone_number_rule', 'en_rule', 'ch_rule', 'num_value_rule'].includes(scope.row.checkRule)">--</span> |
| 2363 | <template v-else> | 2413 | <template v-else> |
| 2364 | <el-input v-show="scope.row.checkRule == 'custom_regular_rule'" v-model.trim="scope.row.configValue" | 2414 | <el-input v-show="scope.row.checkRule == 'custom_regular_rule'" v-model.trim="scope.row.configValue" |
| 2365 | clearable placeholder="请输入"> </el-input> | 2415 | clearable placeholder="请输入"> </el-input> |
| 2366 | <el-input v-show="scope.row.checkRule == 'precision_rule'" v-model.trim="scope.row.configValue" | 2416 | <el-input v-show="scope.row.checkRule == 'precision_rule'" v-model.trim="scope.row.configValue" |
| 2367 | clearable placeholder="请输入" @input="(val) => scope.row.configValue = val.replace(/\D/g, '')"> | 2417 | clearable :maxlength="4" placeholder="请输入" @input="validatePositiveInteger(scope.row, 'configValue')"> |
| 2368 | </el-input> | 2418 | </el-input> |
| 2369 | <el-select v-show="scope.row.checkRule == 'date_format_rule'" v-model="scope.row.configValue" | 2419 | <el-select v-show="scope.row.checkRule == 'date_format_rule'" v-model="scope.row.configValue" |
| 2370 | placeholder="请选择" filterable clearable> | 2420 | placeholder="请选择" filterable clearable> |
| ... | @@ -2375,17 +2425,16 @@ defineExpose({ | ... | @@ -2375,17 +2425,16 @@ defineExpose({ |
| 2375 | <div class="range-sum" v-show="scope.row.checkRule == 'length_rule'"> | 2425 | <div class="range-sum" v-show="scope.row.checkRule == 'length_rule'"> |
| 2376 | <el-select v-model="scope.row.operator" placeholder="请选择" filterable clearable | 2426 | <el-select v-model="scope.row.operator" placeholder="请选择" filterable clearable |
| 2377 | :style="{ width: scope.row.operator == 'between' ? 'calc(33% - 2px)' : 'calc(50% - 4px)' }"> | 2427 | :style="{ width: scope.row.operator == 'between' ? 'calc(33% - 2px)' : 'calc(50% - 4px)' }"> |
| 2378 | <el-option | 2428 | <el-option v-for="opt in operationList" :key="opt['value']" :label="opt['label']" |
| 2379 | v-for="opt in [{ value: '=' }, { value: '>' }, { value: '<' }, { value: '>=' }, { value: '<=' }, { value: 'between', label: '介于' }]" | 2429 | :value="opt['value']" /> |
| 2380 | :key="opt['value']" :label="opt['label']" :value="opt['value']" /> | ||
| 2381 | </el-select> | 2430 | </el-select> |
| 2382 | <el-input :disabled="props.readonly" v-model.trim="scope.row.value" placeholder="请输入" clearable | 2431 | <el-input :disabled="props.readonly" v-model.trim="scope.row.value" placeholder="请输入" clearable |
| 2383 | :style="{ width: scope.row.operator == 'between' ? 'calc(33% - 2px)' : 'calc(50% - 4px)' }" | 2432 | :style="{ width: scope.row.operator == 'between' ? 'calc(33% - 2px)' : 'calc(50% - 4px)' }" |
| 2384 | @input="(val) => scope.row.value = val.replace(/\D/g, '')"> | 2433 | :maxlength="4" @input="validatePositiveInteger(scope.row, 'value')"> |
| 2385 | </el-input> | 2434 | </el-input> |
| 2386 | <el-input v-show="scope.row.operator == 'between'" :disabled="props.readonly" | 2435 | <el-input v-show="scope.row.operator == 'between'" :disabled="props.readonly" |
| 2387 | v-model.trim="scope.row.value1" placeholder="请输入" clearable :style="{ width: 'calc(33% - 2px)' }" | 2436 | v-model.trim="scope.row.value1" placeholder="请输入" clearable :style="{ width: 'calc(33% - 2px)' }" |
| 2388 | @input="(val) => scope.row.value1 = val.replace(/\D/g, '')"> | 2437 | :maxlength="4" @input="validatePositiveInteger(scope.row, 'value1')"> |
| 2389 | </el-input> | 2438 | </el-input> |
| 2390 | </div> | 2439 | </div> |
| 2391 | </template> | 2440 | </template> |
| ... | @@ -2421,8 +2470,9 @@ defineExpose({ | ... | @@ -2421,8 +2470,9 @@ defineExpose({ |
| 2421 | <el-table-column prop="contrastSubjectGuid" label="选择对比表" width="200px" align="left" show-overflow-tooltip> | 2470 | <el-table-column prop="contrastSubjectGuid" label="选择对比表" width="200px" align="left" show-overflow-tooltip> |
| 2422 | <template #default="scope"> | 2471 | <template #default="scope"> |
| 2423 | <el-tree-select v-if="!props.readonly" ref="treeSelectRef" filterable clearable | 2472 | <el-tree-select v-if="!props.readonly" ref="treeSelectRef" filterable clearable |
| 2424 | v-model="scope.row['contrastSubjectGuid']" node-key="guid" :data="contrastSubjects" placeholder="请选择" :default-expanded-keys="defaultExpandedKeys" | 2473 | v-model="scope.row['contrastSubjectGuid']" node-key="guid" :data="contrastSubjects" placeholder="请选择" |
| 2425 | :auto-expand-parent="true" :default-checked-keys="[props.value.contrastSubjectGuid]" | 2474 | :default-expanded-keys="defaultExpandedKeys" :auto-expand-parent="true" |
| 2475 | :default-checked-keys="[props.value.contrastSubjectGuid]" | ||
| 2426 | :filter-node-method="contrastSubjectInputFilterMethod" :props="{ | 2476 | :filter-node-method="contrastSubjectInputFilterMethod" :props="{ |
| 2427 | value: 'guid', | 2477 | value: 'guid', |
| 2428 | label: 'name', | 2478 | label: 'name', | ... | ... |
| ... | @@ -94,7 +94,7 @@ const getSubjectTableTreeData = () => { | ... | @@ -94,7 +94,7 @@ const getSubjectTableTreeData = () => { |
| 94 | d.label = d.name; | 94 | d.label = d.name; |
| 95 | d.children = d.children?.map(child => { | 95 | d.children = d.children?.map(child => { |
| 96 | child.label = child.name + `(${child.tableName})`; | 96 | child.label = child.name + `(${child.tableName})`; |
| 97 | child.dataServerName = d.name; | 97 | child.dataServerName = child.databaseName; |
| 98 | child.dataSourceGuid = d.guid; | 98 | child.dataSourceGuid = d.guid; |
| 99 | return child; | 99 | return child; |
| 100 | }) | 100 | }) | ... | ... |
| ... | @@ -253,20 +253,24 @@ onBeforeMount(() => { | ... | @@ -253,20 +253,24 @@ onBeforeMount(() => { |
| 253 | ElMessage.error(res.msg); | 253 | ElMessage.error(res.msg); |
| 254 | } | 254 | } |
| 255 | }) | 255 | }) |
| 256 | getSmallCategoryList().then((res: any) => { | 256 | let ps1 = getLargeCategoryList().then((res: any) => { |
| 257 | if (res.code == proxy.$passCode) { | 257 | if (res.code == proxy.$passCode) { |
| 258 | smallCategoryList.value = res.data || []; | 258 | return res.data || []; |
| 259 | } else { | 259 | } else { |
| 260 | ElMessage.error(res.msg); | 260 | ElMessage.error(res.msg); |
| 261 | } | 261 | } |
| 262 | }) | 262 | }); |
| 263 | getLargeCategoryList().then((res: any) => { | 263 | let ps2 = getSmallCategoryList().then((res: any) => { |
| 264 | if (res.code == proxy.$passCode) { | 264 | if (res.code == proxy.$passCode) { |
| 265 | largeCategoryList.value = res.data || []; | 265 | return res.data || []; |
| 266 | } else { | 266 | } else { |
| 267 | ElMessage.error(res.msg); | 267 | ElMessage.error(res.msg); |
| 268 | } | 268 | } |
| 269 | }) | 269 | }) |
| 270 | Promise.all([ps1, ps2]).then((res: any[]) => { | ||
| 271 | largeCategoryList.value = res[0]; | ||
| 272 | smallCategoryList.value = res[1]; | ||
| 273 | }) | ||
| 270 | }) | 274 | }) |
| 271 | 275 | ||
| 272 | onActivated(() => { | 276 | onActivated(() => { | ... | ... |
-
Please register or sign in to post a comment