数据产品管理优化
Showing
8 changed files
with
796 additions
and
64 deletions
| ... | @@ -349,6 +349,13 @@ export const existDamName = (params) => request({ | ... | @@ -349,6 +349,13 @@ export const existDamName = (params) => request({ |
| 349 | method: 'get' | 349 | method: 'get' |
| 350 | }); | 350 | }); |
| 351 | 351 | ||
| 352 | // 获取数据产品目录登记评估详情 | ||
| 353 | export const getRegisterCatalogDetailGuids = (params) => request({ | ||
| 354 | url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-catalog-table/register-evaluation-grounding-trading`, | ||
| 355 | method: 'get', | ||
| 356 | params | ||
| 357 | }) | ||
| 358 | |||
| 352 | /** 获取资产目录基本信息的详情 */ | 359 | /** 获取资产目录基本信息的详情 */ |
| 353 | export const getRegisterCatalogDetail = (params) => request({ | 360 | export const getRegisterCatalogDetail = (params) => request({ |
| 354 | url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-catalog-table/detail`, | 361 | url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-catalog-table/detail`, |
| ... | @@ -553,6 +560,13 @@ export const getContractDetail = (params) => request({ | ... | @@ -553,6 +560,13 @@ export const getContractDetail = (params) => request({ |
| 553 | params | 560 | params |
| 554 | }) | 561 | }) |
| 555 | 562 | ||
| 563 | // 流通中的数据产品交易详情 | ||
| 564 | export const getTransactionDetail = (params) => request({ | ||
| 565 | url: `http://localhost:9000/circulation/ms-data-circulation-tx-mgr-service/ading-info/detail`, | ||
| 566 | method: 'get', | ||
| 567 | params | ||
| 568 | }) | ||
| 569 | |||
| 556 | // 获取所有字典 | 570 | // 获取所有字典 |
| 557 | export const getDictAllList = () => request({ | 571 | export const getDictAllList = () => request({ |
| 558 | url: `${import.meta.env.VITE_APP_CONFIG_URL}/dict/data/get-all` | 572 | url: `${import.meta.env.VITE_APP_CONFIG_URL}/dict/data/get-all` | ... | ... |
| ... | @@ -26,7 +26,7 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -26,7 +26,7 @@ const routes: RouteRecordRaw[] = [ |
| 26 | path: '/data-asset/register-catalog', | 26 | path: '/data-asset/register-catalog', |
| 27 | component: Layout, | 27 | component: Layout, |
| 28 | meta: { | 28 | meta: { |
| 29 | title: '数据产品目录', | 29 | title: '自有数据产品', |
| 30 | icon: 'sidebar-videos', | 30 | icon: 'sidebar-videos', |
| 31 | }, | 31 | }, |
| 32 | children: [ | 32 | children: [ |
| ... | @@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [ |
| 35 | name: 'registerCatalogManagement', | 35 | name: 'registerCatalogManagement', |
| 36 | component: () => import('@/views/data_asset/registerCatalogManagement.vue'), | 36 | component: () => import('@/views/data_asset/registerCatalogManagement.vue'), |
| 37 | meta: { | 37 | meta: { |
| 38 | title: '数据产品目录', | 38 | title: '自有数据产品', |
| 39 | sidebar: false, | 39 | sidebar: false, |
| 40 | breadcrumb: false, | 40 | breadcrumb: false, |
| 41 | cache: true | 41 | cache: true |
| ... | @@ -46,7 +46,7 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -46,7 +46,7 @@ const routes: RouteRecordRaw[] = [ |
| 46 | name: 'registerCatalogCreate', | 46 | name: 'registerCatalogCreate', |
| 47 | component: () => import('@/views/data_asset/registerCatalogCreate.vue'), | 47 | component: () => import('@/views/data_asset/registerCatalogCreate.vue'), |
| 48 | meta: { | 48 | meta: { |
| 49 | title: '新建产品目录', | 49 | title: '新建自有数据产品', |
| 50 | sidebar: false, | 50 | sidebar: false, |
| 51 | breadcrumb: false, | 51 | breadcrumb: false, |
| 52 | cache: true, | 52 | cache: true, |
| ... | @@ -95,25 +95,6 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -95,25 +95,6 @@ const routes: RouteRecordRaw[] = [ |
| 95 | reuse: true | 95 | reuse: true |
| 96 | } | 96 | } |
| 97 | }, | 97 | }, |
| 98 | // { | ||
| 99 | // path: 'import-table-field', | ||
| 100 | // name: 'importTableField', | ||
| 101 | // component: () => import('@/views/data_asset/importTableField.vue'), | ||
| 102 | // meta: { | ||
| 103 | // title: '导入表字段', | ||
| 104 | // sidebar: false, | ||
| 105 | // breadcrumb: false, | ||
| 106 | // cache: true, | ||
| 107 | // editPage: true, | ||
| 108 | // reuse: true | ||
| 109 | // }, | ||
| 110 | // beforeEnter: (to, from) => { | ||
| 111 | // if (to.query.guid) { | ||
| 112 | // to.meta.title = `编辑-`; | ||
| 113 | // to.meta.editPage = true; | ||
| 114 | // } | ||
| 115 | // } | ||
| 116 | // }, | ||
| 117 | { | 98 | { |
| 118 | path: 'register-catalog-detail', | 99 | path: 'register-catalog-detail', |
| 119 | name: 'registerCatalogDetail', | 100 | name: 'registerCatalogDetail', |
| ... | @@ -131,11 +112,28 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -131,11 +112,28 @@ const routes: RouteRecordRaw[] = [ |
| 131 | name: 'registerCatalogContractDetail', | 112 | name: 'registerCatalogContractDetail', |
| 132 | component: () => import('@/views/data_asset/registerCatalogContractDetail.vue'), | 113 | component: () => import('@/views/data_asset/registerCatalogContractDetail.vue'), |
| 133 | meta: { | 114 | meta: { |
| 134 | title: '详情-', | 115 | title: '合同详情-', |
| 116 | sidebar: false, | ||
| 117 | breadcrumb: false, | ||
| 118 | cache: true, | ||
| 119 | reuse: true | ||
| 120 | } | ||
| 121 | }, | ||
| 122 | { | ||
| 123 | path: 'register-catalog-transaction-detail', | ||
| 124 | name: 'registerCatalogTransactionDetail', | ||
| 125 | component: () => import('@/views/data_asset/transactionDetail.vue'), | ||
| 126 | meta: { | ||
| 127 | title: '产品交易详情-', | ||
| 135 | sidebar: false, | 128 | sidebar: false, |
| 136 | breadcrumb: false, | 129 | breadcrumb: false, |
| 137 | cache: true, | 130 | cache: true, |
| 138 | reuse: true | 131 | reuse: true |
| 132 | }, | ||
| 133 | beforeEnter: (to, from) => { | ||
| 134 | if (to.query.guid) { | ||
| 135 | to.meta.title = `产品交易详情-${to.query.damName}`; | ||
| 136 | } | ||
| 139 | } | 137 | } |
| 140 | }, | 138 | }, |
| 141 | { | 139 | { |
| ... | @@ -158,6 +156,139 @@ const routes: RouteRecordRaw[] = [ | ... | @@ -158,6 +156,139 @@ const routes: RouteRecordRaw[] = [ |
| 158 | ] | 156 | ] |
| 159 | }, | 157 | }, |
| 160 | { | 158 | { |
| 159 | path: '/data-asset/authordata-catalog', | ||
| 160 | component: Layout, | ||
| 161 | meta: { | ||
| 162 | title: '授权数据产品', | ||
| 163 | icon: 'sidebar-videos', | ||
| 164 | }, | ||
| 165 | children: [ | ||
| 166 | { | ||
| 167 | path: '', | ||
| 168 | name: 'authorDataCatalogManagement', | ||
| 169 | component: () => import('@/views/data_asset/authorDataCatalogManagement.vue'), | ||
| 170 | meta: { | ||
| 171 | title: '授权数据产品', | ||
| 172 | sidebar: false, | ||
| 173 | breadcrumb: false, | ||
| 174 | cache: true | ||
| 175 | }, | ||
| 176 | }, | ||
| 177 | { | ||
| 178 | path: 'register-ctalog-create', | ||
| 179 | name: 'authorDataCatalogCreate', | ||
| 180 | component: () => import('@/views/data_asset/registerCatalogCreate.vue'), | ||
| 181 | meta: { | ||
| 182 | title: '新建授权数据产品', | ||
| 183 | sidebar: false, | ||
| 184 | breadcrumb: false, | ||
| 185 | cache: true, | ||
| 186 | editPage: true, | ||
| 187 | reuse: true | ||
| 188 | }, | ||
| 189 | beforeEnter: (to, from) => { | ||
| 190 | if (to.query.type) { | ||
| 191 | to.meta.title = `详情-`; | ||
| 192 | return; | ||
| 193 | } | ||
| 194 | if (to.query.guid) { | ||
| 195 | to.meta.title = `编辑-${to.query.damName}`; | ||
| 196 | to.meta.editPage = true; | ||
| 197 | } | ||
| 198 | } | ||
| 199 | }, | ||
| 200 | { | ||
| 201 | path: 'import-file-dam', | ||
| 202 | name: 'authorImportFileDam', | ||
| 203 | component: () => import('@/views/importFile.vue'), | ||
| 204 | meta: { | ||
| 205 | title: '导入数据', | ||
| 206 | sidebar: false, | ||
| 207 | breadcrumb: false, | ||
| 208 | cache: true, | ||
| 209 | reuse: true | ||
| 210 | }, | ||
| 211 | beforeEnter: (to, from) => { | ||
| 212 | if (to.query.bizGuid) { | ||
| 213 | to.meta.title = `导入数据-${to.query.name}(${to.query.damName})`; | ||
| 214 | } | ||
| 215 | } | ||
| 216 | }, | ||
| 217 | { | ||
| 218 | // path: 'processDetail', | ||
| 219 | // name: 'APIProcessDetail', | ||
| 220 | path: 'api-detail', | ||
| 221 | name: 'authorApiDetail', | ||
| 222 | component: () => import('@/views/data_asset/detail_serviceApi.vue'), | ||
| 223 | meta: { | ||
| 224 | title: '流程详情', | ||
| 225 | sidebar: false, | ||
| 226 | breadcrumb: false, | ||
| 227 | cache: true, | ||
| 228 | reuse: true | ||
| 229 | } | ||
| 230 | }, | ||
| 231 | { | ||
| 232 | path: 'register-catalog-detail', | ||
| 233 | name: 'authorRegisterCatalogDetail', | ||
| 234 | component: () => import('@/views/data_asset/registerCatalogDetail.vue'), | ||
| 235 | meta: { | ||
| 236 | title: '详情-', | ||
| 237 | sidebar: false, | ||
| 238 | breadcrumb: false, | ||
| 239 | cache: true, | ||
| 240 | reuse: true | ||
| 241 | } | ||
| 242 | }, | ||
| 243 | { | ||
| 244 | path: 'register-catalog-contract-detail', | ||
| 245 | name: 'authorRegisterCatalogContractDetail', | ||
| 246 | component: () => import('@/views/data_asset/registerCatalogContractDetail.vue'), | ||
| 247 | meta: { | ||
| 248 | title: '合同详情-', | ||
| 249 | sidebar: false, | ||
| 250 | breadcrumb: false, | ||
| 251 | cache: true, | ||
| 252 | reuse: true | ||
| 253 | } | ||
| 254 | }, | ||
| 255 | { | ||
| 256 | path: 'register-catalog-transaction-detail', | ||
| 257 | name: 'authorRegisterCatalogTransactionDetail', | ||
| 258 | component: () => import('@/views/data_asset/transactionDetail.vue'), | ||
| 259 | meta: { | ||
| 260 | title: '产品交易详情-', | ||
| 261 | sidebar: false, | ||
| 262 | breadcrumb: false, | ||
| 263 | cache: true, | ||
| 264 | reuse: true | ||
| 265 | }, | ||
| 266 | beforeEnter: (to, from) => { | ||
| 267 | if (to.query.guid) { | ||
| 268 | to.meta.title = `产品交易详情-${to.query.damName}`; | ||
| 269 | } | ||
| 270 | } | ||
| 271 | }, | ||
| 272 | { | ||
| 273 | path: 'damTableDataView', | ||
| 274 | name: 'authorDamTableDataView', | ||
| 275 | component: () => import('@/views/data_asset/damTableDataView.vue'), | ||
| 276 | meta: { | ||
| 277 | title: '查看数据', | ||
| 278 | sidebar: false, | ||
| 279 | breadcrumb: false, | ||
| 280 | cache: true, | ||
| 281 | reuse: true | ||
| 282 | }, | ||
| 283 | beforeEnter: (to, from) => { | ||
| 284 | if (to.query.guid) { | ||
| 285 | to.meta.title = `查看数据-${to.query.name}(${to.query.damName})`; | ||
| 286 | } | ||
| 287 | } | ||
| 288 | }, | ||
| 289 | ] | ||
| 290 | }, | ||
| 291 | { | ||
| 161 | path: '/data-product/product-listing', | 292 | path: '/data-product/product-listing', |
| 162 | component: Layout, | 293 | component: Layout, |
| 163 | meta: { | 294 | meta: { | ... | ... |
| 1 | <route lang="yaml"> | ||
| 2 | name: authorDataCatalogManagement | ||
| 3 | </route> | ||
| 4 | |||
| 5 | <script lang="ts" setup name="authorDataCatalogManagement"> | ||
| 6 | import { ref } from "vue"; | ||
| 7 | import registerCatalogManagement from "./registerCatalogManagement.vue"; | ||
| 8 | |||
| 9 | </script> | ||
| 10 | |||
| 11 | <template> | ||
| 12 | <registerCatalogManagement :dataSources="1"></registerCatalogManagement> | ||
| 13 | </template> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -187,8 +187,8 @@ onActivated(() => { | ... | @@ -187,8 +187,8 @@ onActivated(() => { |
| 187 | if (tab) { | 187 | if (tab) { |
| 188 | switch (detailType) { | 188 | switch (detailType) { |
| 189 | case 'detail': | 189 | case 'detail': |
| 190 | tab.meta.title = `详情-${damName}`; | 190 | tab.meta.title = `合同详情-${damName}`; |
| 191 | document.title = `详情-${damName}`; | 191 | document.title = `合同详情-${damName}`; |
| 192 | break; | 192 | break; |
| 193 | } | 193 | } |
| 194 | } | 194 | } | ... | ... |
| ... | @@ -22,7 +22,8 @@ import { | ... | @@ -22,7 +22,8 @@ import { |
| 22 | registerCatalogTableUpdate, | 22 | registerCatalogTableUpdate, |
| 23 | registerCatalogTableDelete, | 23 | registerCatalogTableDelete, |
| 24 | getRegisterCatalogTableList, | 24 | getRegisterCatalogTableList, |
| 25 | checkDamTableChange | 25 | checkDamTableChange, |
| 26 | getTenantList | ||
| 26 | } from "@/api/modules/dataAsset"; | 27 | } from "@/api/modules/dataAsset"; |
| 27 | import { ContentWrap } from '@/components/ContentWrap'; | 28 | import { ContentWrap } from '@/components/ContentWrap'; |
| 28 | import importTableField from "./importTableField.vue"; | 29 | import importTableField from "./importTableField.vue"; |
| ... | @@ -101,7 +102,7 @@ const getArea = (node, resolve) => { | ... | @@ -101,7 +102,7 @@ const getArea = (node, resolve) => { |
| 101 | const baseInfoExpand = ref(true); | 102 | const baseInfoExpand = ref(true); |
| 102 | const assetTableInfoExpand = ref(true); | 103 | const assetTableInfoExpand = ref(true); |
| 103 | const importTableFieldRef = ref(); | 104 | const importTableFieldRef = ref(); |
| 104 | 105 | const rightMainTenantList = ref([]); //权利主体下拉列表选择 | |
| 105 | const baseInfoFormRef = ref(); | 106 | const baseInfoFormRef = ref(); |
| 106 | 107 | ||
| 107 | const baseInfoFormItems = ref([ | 108 | const baseInfoFormItems = ref([ |
| ... | @@ -130,13 +131,20 @@ const baseInfoFormItems = ref([ | ... | @@ -130,13 +131,20 @@ const baseInfoFormItems = ref([ |
| 130 | }, | 131 | }, |
| 131 | { | 132 | { |
| 132 | label: '权利主体', | 133 | label: '权利主体', |
| 133 | type: 'input', | 134 | type: route.query.dataSources == '1' ? 'select' : 'input', |
| 134 | placeholder: '请输入', | 135 | placeholder: route.query.dataSources == '1' ? '请选择' : '请输入', |
| 135 | field: 'rightMain', | 136 | field: 'rightMain', |
| 136 | maxlength: 20, | 137 | maxlength: 20, |
| 137 | default: JSON.parse(userStore.userData).tenantName, | 138 | options: rightMainTenantList.value, |
| 139 | props: { | ||
| 140 | value: 'guid', | ||
| 141 | label: 'tenantName' | ||
| 142 | }, | ||
| 143 | filterable: true, | ||
| 144 | clearable: true, | ||
| 145 | default: route.query.dataSources == '1' ? JSON.parse(userStore.userData).tenantGuid : JSON.parse(userStore.userData).tenantName, | ||
| 138 | required: true, | 146 | required: true, |
| 139 | disabled: true | 147 | disabled: route.query.dataSources == '1' ? false : true, |
| 140 | }, | 148 | }, |
| 141 | { | 149 | { |
| 142 | label: '所属主题', | 150 | label: '所属主题', |
| ... | @@ -216,8 +224,22 @@ const baseInfoFormItems = ref([ | ... | @@ -216,8 +224,22 @@ const baseInfoFormItems = ref([ |
| 216 | placeholder: "", | 224 | placeholder: "", |
| 217 | field: "dataSources", | 225 | field: "dataSources", |
| 218 | block: false, | 226 | block: false, |
| 219 | default: 1, | 227 | default: route.query.dataSources == '1' ? 1 : 2, |
| 220 | options: dataSourcesList, | 228 | options: route.query.dataSources == '1' ? [{ //如果是授权数据则不能选择其余的 |
| 229 | value: 1, | ||
| 230 | label: '授权数据', | ||
| 231 | }]: [{ | ||
| 232 | value: 2, | ||
| 233 | label: '自有数据', | ||
| 234 | }, | ||
| 235 | { | ||
| 236 | value: 3, | ||
| 237 | label: '购买数据', | ||
| 238 | }, | ||
| 239 | { | ||
| 240 | value: 4, | ||
| 241 | label: '其他来源', | ||
| 242 | }], //dataSourcesList | ||
| 221 | required: true, | 243 | required: true, |
| 222 | }, | 244 | }, |
| 223 | // 是否公共数据 | 245 | // 是否公共数据 |
| ... | @@ -297,7 +319,7 @@ const baseInfoFormRules = ref({ | ... | @@ -297,7 +319,7 @@ const baseInfoFormRules = ref({ |
| 297 | propertyDescription: [required('请填写资源描述')], | 319 | propertyDescription: [required('请填写资源描述')], |
| 298 | sceneDescription: [required('请填写应用场景描述')], | 320 | sceneDescription: [required('请填写应用场景描述')], |
| 299 | sceneLimit: [required('请填写应用场景限制')], | 321 | sceneLimit: [required('请填写应用场景限制')], |
| 300 | rightMain: [required('请填写权利主体')], | 322 | rightMain: [required(route.query.dataSources == '1' ? '请选择权利主体' : '请填写权利主体')], |
| 301 | dataSources: [required('请选择数据来源')], | 323 | dataSources: [required('请选择数据来源')], |
| 302 | isPublicData: [required('请选择是否公共数据')], | 324 | isPublicData: [required('请选择是否公共数据')], |
| 303 | }); | 325 | }); |
| ... | @@ -420,12 +442,14 @@ const assetDataTableInfo = ref({ | ... | @@ -420,12 +442,14 @@ const assetDataTableInfo = ref({ |
| 420 | label: "导入数据", value: "importData", click: (scope) => { | 442 | label: "导入数据", value: "importData", click: (scope) => { |
| 421 | let row = scope.row; | 443 | let row = scope.row; |
| 422 | router.push({ | 444 | router.push({ |
| 423 | name: "importFileDam", | 445 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/import-file-dam' : '/data-asset/register-catalog/import-file-dam', |
| 446 | // name: "importFileDam", | ||
| 424 | query: { | 447 | query: { |
| 425 | bizGuid: row.guid, | 448 | bizGuid: row.guid, |
| 426 | name: row.tableChName, | 449 | name: row.tableChName, |
| 427 | isfileImport: '2', | 450 | isfileImport: '2', |
| 428 | damName: route.query.damName | 451 | damName: route.query.damName, |
| 452 | dataSources: route.query.dataSources | ||
| 429 | } | 453 | } |
| 430 | }) | 454 | }) |
| 431 | } | 455 | } |
| ... | @@ -434,11 +458,13 @@ const assetDataTableInfo = ref({ | ... | @@ -434,11 +458,13 @@ const assetDataTableInfo = ref({ |
| 434 | label: "查看样例数据", value: "viewData", click: (scope) => { | 458 | label: "查看样例数据", value: "viewData", click: (scope) => { |
| 435 | let row = scope.row; | 459 | let row = scope.row; |
| 436 | router.push({ | 460 | router.push({ |
| 437 | name: 'damTableDataView', | 461 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/damTableDataView' : '/data-asset/register-catalog/damTableDataView', |
| 462 | // name: 'damTableDataView', | ||
| 438 | query: { | 463 | query: { |
| 439 | guid: row.guid, | 464 | guid: row.guid, |
| 440 | name: row.tableChName, | 465 | name: row.tableChName, |
| 441 | damName: detailInfo.value.damName | 466 | damName: detailInfo.value.damName, |
| 467 | dataSources: route.query.dataSources | ||
| 442 | } | 468 | } |
| 443 | }); | 469 | }); |
| 444 | } | 470 | } |
| ... | @@ -571,7 +597,7 @@ onBeforeMount(() => { | ... | @@ -571,7 +597,7 @@ onBeforeMount(() => { |
| 571 | } | 597 | } |
| 572 | } | 598 | } |
| 573 | } else if (item.field == 'rightMain') { | 599 | } else if (item.field == 'rightMain') { |
| 574 | item.default = detailInfo.value.rightMainName; | 600 | item.default = route.query.dataSources == '1' ? detailInfo.value.rightMain : detailInfo.value.rightMainName; |
| 575 | } | 601 | } |
| 576 | }); | 602 | }); |
| 577 | if (route.query.guid && route.query.foundMode == '2') { | 603 | if (route.query.guid && route.query.foundMode == '2') { |
| ... | @@ -599,6 +625,23 @@ onBeforeMount(() => { | ... | @@ -599,6 +625,23 @@ onBeforeMount(() => { |
| 599 | } | 625 | } |
| 600 | }); | 626 | }); |
| 601 | } | 627 | } |
| 628 | |||
| 629 | if (route.query.dataSources == '1') { | ||
| 630 | getTenantList({ | ||
| 631 | bizState: 'Y', | ||
| 632 | pageSize: -1 | ||
| 633 | }).then((res: any) => { | ||
| 634 | rightMainTenantList.value = []; | ||
| 635 | if (res.code == proxy.$passCode) { | ||
| 636 | rightMainTenantList.value = res.data?.records || []; | ||
| 637 | let item = baseInfoFormItems.value.find(b => b.field == 'rightMain'); | ||
| 638 | item && (item.options = rightMainTenantList.value); | ||
| 639 | } else { | ||
| 640 | proxy.$ElMessage.error(res.msg); | ||
| 641 | } | ||
| 642 | }) | ||
| 643 | } | ||
| 644 | |||
| 602 | function replaceChildDictListKey(data) { | 645 | function replaceChildDictListKey(data) { |
| 603 | if (Array.isArray(data)) { | 646 | if (Array.isArray(data)) { |
| 604 | return data.map(item => replaceChildDictListKey(item)); | 647 | return data.map(item => replaceChildDictListKey(item)); |
| ... | @@ -639,7 +682,7 @@ const cancel = () => { | ... | @@ -639,7 +682,7 @@ const cancel = () => { |
| 639 | proxy.$openMessageBox("当前页面尚未保存,确定放弃修改吗?", () => { | 682 | proxy.$openMessageBox("当前页面尚未保存,确定放弃修改吗?", () => { |
| 640 | userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath)); | 683 | userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath)); |
| 641 | router.push({ | 684 | router.push({ |
| 642 | path: '/data-asset/register-catalog' | 685 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog' : '/data-asset/register-catalog' |
| 643 | }); | 686 | }); |
| 644 | }, () => { | 687 | }, () => { |
| 645 | proxy.$ElMessage.info("已取消"); | 688 | proxy.$ElMessage.info("已取消"); |
| ... | @@ -676,14 +719,17 @@ const save = () => { | ... | @@ -676,14 +719,17 @@ const save = () => { |
| 676 | if (damGuid.value) { | 719 | if (damGuid.value) { |
| 677 | params.guid = damGuid.value; | 720 | params.guid = damGuid.value; |
| 678 | params.foundMode = route.query.foundMode; | 721 | params.foundMode = route.query.foundMode; |
| 679 | params.rightMain = detailInfo.value.rightMain; | 722 | if (route.query.dataSources != '1') { |
| 723 | params.rightMain = detailInfo.value.rightMain; | ||
| 724 | } | ||
| 680 | fullscreenLoading.value = true; | 725 | fullscreenLoading.value = true; |
| 681 | registerCatalogUpdate(params).then((res: any) => { | 726 | registerCatalogUpdate(params).then((res: any) => { |
| 682 | fullscreenLoading.value = false; | 727 | fullscreenLoading.value = false; |
| 683 | if (res.code == proxy.$passCode) { | 728 | if (res.code == proxy.$passCode) { |
| 684 | proxy.$ElMessage.success('资源目录编辑提交成功'); | 729 | proxy.$ElMessage.success('资源目录编辑提交成功'); |
| 685 | router.push({ | 730 | router.push({ |
| 686 | name: 'registerCatalogManagement' | 731 | // name: 'registerCatalogManagement' |
| 732 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog' : '/data-asset/register-catalog' | ||
| 687 | }); | 733 | }); |
| 688 | userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath)); | 734 | userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath)); |
| 689 | assetStore.setDamCatalogRefresh(true); | 735 | assetStore.setDamCatalogRefresh(true); |
| ... | @@ -695,13 +741,14 @@ const save = () => { | ... | @@ -695,13 +741,14 @@ const save = () => { |
| 695 | params.damCatalogTableInfo = assetDataTableInfo.value.data; | 741 | params.damCatalogTableInfo = assetDataTableInfo.value.data; |
| 696 | fullscreenLoading.value = true; | 742 | fullscreenLoading.value = true; |
| 697 | console.log(params, 'params'); | 743 | console.log(params, 'params'); |
| 698 | params.rightMain = JSON.parse(userStore.userData).tenantGuid; | 744 | // params.rightMain = JSON.parse(userStore.userData).tenantGuid; |
| 699 | registerCatalogSave(params).then((res: any) => { | 745 | registerCatalogSave(params).then((res: any) => { |
| 700 | fullscreenLoading.value = false; | 746 | fullscreenLoading.value = false; |
| 701 | if (res.code == proxy.$passCode) { | 747 | if (res.code == proxy.$passCode) { |
| 702 | proxy.$ElMessage.success('资源目录新建提交成功'); | 748 | proxy.$ElMessage.success('资源目录新建提交成功'); |
| 703 | router.push({ | 749 | router.push({ |
| 704 | name: 'registerCatalogManagement' | 750 | // name: 'registerCatalogManagement' |
| 751 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog' : '/data-asset/register-catalog' | ||
| 705 | }); | 752 | }); |
| 706 | userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath)); | 753 | userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath)); |
| 707 | assetStore.setDamCatalogRefresh(true); | 754 | assetStore.setDamCatalogRefresh(true); | ... | ... |
| ... | @@ -16,7 +16,8 @@ import { | ... | @@ -16,7 +16,8 @@ import { |
| 16 | getEvaDetail, | 16 | getEvaDetail, |
| 17 | getCostDetail, | 17 | getCostDetail, |
| 18 | getDataReceiveContractDetail, | 18 | getDataReceiveContractDetail, |
| 19 | getCertificateDetail | 19 | getCertificateDetail, |
| 20 | getRegisterCatalogDetailGuids | ||
| 20 | } from "@/api/modules/dataAsset"; | 21 | } from "@/api/modules/dataAsset"; |
| 21 | import { changeNum } from '@/utils/common' | 22 | import { changeNum } from '@/utils/common' |
| 22 | import { ElMessage, ElMessageBox } from "element-plus"; | 23 | import { ElMessage, ElMessageBox } from "element-plus"; |
| ... | @@ -94,6 +95,79 @@ const deploymentId = ref(''); | ... | @@ -94,6 +95,79 @@ const deploymentId = ref(''); |
| 94 | 95 | ||
| 95 | const processInstanceId = ref(''); | 96 | const processInstanceId = ref(''); |
| 96 | 97 | ||
| 98 | const registerDetailTableInfo = ref({ | ||
| 99 | id: 'register-data-table', | ||
| 100 | rowKey: 'guid', | ||
| 101 | height: 220, | ||
| 102 | loading: false, | ||
| 103 | fields: [ { label: "序号", type: "index", width: 56, align: "center" }, | ||
| 104 | { label: "事项", field: "title", width: 160, align: "left" }, | ||
| 105 | { label: "对接主体", field: "institutionName", width: 160, align: "left" }, | ||
| 106 | ], | ||
| 107 | data: <any>[], | ||
| 108 | showPage: false, | ||
| 109 | actionInfo: { | ||
| 110 | label: "操作", | ||
| 111 | type: "btn", | ||
| 112 | width: 130, | ||
| 113 | btns: [{ | ||
| 114 | label: "查看详情", value: "detail", click: (scope) => { | ||
| 115 | let row = scope.row; | ||
| 116 | if (row.type == 'asset') { | ||
| 117 | router.push({ | ||
| 118 | name: 'registerInfoDetail', | ||
| 119 | query: { guid: row.guid, name: detailInfo.value.damName, tenantGuid: row.tenantGuid, tenantName: row.tenantName, type: 'asset' } | ||
| 120 | }); | ||
| 121 | } else if (row.type == 'qualityEvaluate') { | ||
| 122 | if (row.registerApproveState == 'Y') { | ||
| 123 | router.push({ | ||
| 124 | name: 'registerDetail', | ||
| 125 | query: { guid: row.registerGuid, evaGuid: row.guid, type: 'qualityEvaluate', tenantGuid: row.tenantGuid, tenantName: row.tenantName } | ||
| 126 | }); | ||
| 127 | } else { | ||
| 128 | router.push({ | ||
| 129 | name: 'evaCatalogDetail', | ||
| 130 | query: { guid: route.query.guid, evaGuid: row.guid, type: 'qualityEvaluate', tenantGuid: row.tenantGuid } | ||
| 131 | }); | ||
| 132 | } | ||
| 133 | } else if (row.type == 'costAssess') { | ||
| 134 | if (row.registerApproveState == 'Y') { | ||
| 135 | router.push({ | ||
| 136 | name: 'registerValueDetail', | ||
| 137 | query: { guid: row.registerGuid, costAssessGuid: row.guid, type: 'costAssess', tenantGuid: row.tenantGuid, tenantName: row.tenantName } | ||
| 138 | }); | ||
| 139 | } else { | ||
| 140 | router.push({ | ||
| 141 | name: 'costAssessDetail', | ||
| 142 | query: { guid: route.query.guid, costAssessGuid: row.guid, type: 'costAssess', tenantGuid: row.tenantGuid } | ||
| 143 | }); | ||
| 144 | } | ||
| 145 | } else if (row.type == 'product') { | ||
| 146 | router.push({ | ||
| 147 | name: 'productListingDetail', | ||
| 148 | query: { | ||
| 149 | guid: row.guid, | ||
| 150 | type: 'detail', | ||
| 151 | name: detailInfo.value.damName, | ||
| 152 | exchangeGuid: row.institutionGuid ? row.institutionGuid : '', | ||
| 153 | tenantGuid: row.tenantGuid | ||
| 154 | } | ||
| 155 | }); | ||
| 156 | } else if (row.type == 'trade') { | ||
| 157 | router.push({ | ||
| 158 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/register-catalog-transaction-detail' : '/data-asset/register-catalog/register-catalog-transaction-detail', | ||
| 159 | //name: 'transactionManagement' | ||
| 160 | query: { | ||
| 161 | guid: row.guid, | ||
| 162 | damName: detailInfo.value.damName, | ||
| 163 | } | ||
| 164 | }); | ||
| 165 | } | ||
| 166 | } | ||
| 167 | }] | ||
| 168 | } | ||
| 169 | }); | ||
| 170 | |||
| 97 | const getDetailInfo = () => { | 171 | const getDetailInfo = () => { |
| 98 | fullscreenLoading.value = true; | 172 | fullscreenLoading.value = true; |
| 99 | getRegisterCatalogDetail({ guid: catalogGuid, serviceTenantGuid: route.query.tenantGuid }).then((res: any) => { | 173 | getRegisterCatalogDetail({ guid: catalogGuid, serviceTenantGuid: route.query.tenantGuid }).then((res: any) => { |
| ... | @@ -182,6 +256,44 @@ const getDetailInfo = () => { | ... | @@ -182,6 +256,44 @@ const getDetailInfo = () => { |
| 182 | } | 256 | } |
| 183 | }) | 257 | }) |
| 184 | } | 258 | } |
| 259 | getRegisterCatalogDetailGuids({ damGuid: catalogGuid, serviceTenantGuid: route.query.tenantGuid }).then((res: any) => { | ||
| 260 | registerDetailTableInfo.value.data = []; | ||
| 261 | if (res.code == proxy.$passCode) { | ||
| 262 | const data = res.data || {}; | ||
| 263 | if (data.registerBaseRSVO) { | ||
| 264 | registerDetailTableInfo.value.data.push(Object.assign({}, data.registerBaseRSVO, { | ||
| 265 | title: "资产登记", | ||
| 266 | type: 'asset' | ||
| 267 | })); | ||
| 268 | } | ||
| 269 | if (data.qualityEvaluationRSVO) { | ||
| 270 | registerDetailTableInfo.value.data.push(Object.assign({}, data.qualityEvaluationRSVO, { | ||
| 271 | title: "质量评估", | ||
| 272 | type: 'qualityEvaluate' | ||
| 273 | })); | ||
| 274 | } | ||
| 275 | if (data.costAssessmentRSVO) { | ||
| 276 | registerDetailTableInfo.value.data.push(Object.assign({}, data.costAssessmentRSVO, { | ||
| 277 | title: "价值评估", | ||
| 278 | type: 'costAssess' | ||
| 279 | })); | ||
| 280 | } | ||
| 281 | if (data.productGroundingRSVO) { | ||
| 282 | registerDetailTableInfo.value.data.push(Object.assign({}, data.productGroundingRSVO, { | ||
| 283 | title: "数据产品上架", | ||
| 284 | type: 'product' | ||
| 285 | })); | ||
| 286 | } | ||
| 287 | if (data.mfTradingInfoRSVO) { | ||
| 288 | registerDetailTableInfo.value.data.push(Object.assign({}, data.mfTradingInfoRSVO, { | ||
| 289 | title: "数据产品交易", | ||
| 290 | type: 'trade' | ||
| 291 | })); | ||
| 292 | } | ||
| 293 | } else { | ||
| 294 | proxy.$ElMessage.error(res.msg); | ||
| 295 | } | ||
| 296 | }) | ||
| 185 | } | 297 | } |
| 186 | 298 | ||
| 187 | onBeforeMount(() => { | 299 | onBeforeMount(() => { |
| ... | @@ -221,7 +333,7 @@ const isTextTruncated = () => { | ... | @@ -221,7 +333,7 @@ const isTextTruncated = () => { |
| 221 | if (!domDesc) { | 333 | if (!domDesc) { |
| 222 | return; | 334 | return; |
| 223 | } | 335 | } |
| 224 | if (domDesc.clientHeight > 64) { | 336 | if (domDesc.clientHeight > 82) { |
| 225 | isTruncated.value = true; | 337 | isTruncated.value = true; |
| 226 | } else { | 338 | } else { |
| 227 | isTruncated.value = false; | 339 | isTruncated.value = false; |
| ... | @@ -249,7 +361,8 @@ const handleTableExpandChange = (row: any, expandedRows: any[]) => { | ... | @@ -249,7 +361,8 @@ const handleTableExpandChange = (row: any, expandedRows: any[]) => { |
| 249 | const handleTableViewData = (scope) => { | 361 | const handleTableViewData = (scope) => { |
| 250 | let row = scope.row; | 362 | let row = scope.row; |
| 251 | router.push({ | 363 | router.push({ |
| 252 | name: 'damTableDataView', | 364 | // name: 'damTableDataView', |
| 365 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/damTableDataView' : '/data-asset/register-catalog/damTableDataView', | ||
| 253 | query: { | 366 | query: { |
| 254 | guid: row.guid, | 367 | guid: row.guid, |
| 255 | name: row.tableChName, | 368 | name: row.tableChName, |
| ... | @@ -285,7 +398,8 @@ const btnClick = (btn) => { | ... | @@ -285,7 +398,8 @@ const btnClick = (btn) => { |
| 285 | console.log('detailType', detailType.value); | 398 | console.log('detailType', detailType.value); |
| 286 | if (detailType.value == 'asset') { | 399 | if (detailType.value == 'asset') { |
| 287 | router.push({ | 400 | router.push({ |
| 288 | name: 'registerCatalogManagement', | 401 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog' : '/data-asset/register-catalog', |
| 402 | //name: 'registerCatalogManagement', | ||
| 289 | query: {} | 403 | query: {} |
| 290 | }); | 404 | }); |
| 291 | } else { | 405 | } else { |
| ... | @@ -933,7 +1047,8 @@ const handleClick = () => { | ... | @@ -933,7 +1047,8 @@ const handleClick = () => { |
| 933 | // 跳转到 apiDetail 页面 | 1047 | // 跳转到 apiDetail 页面 |
| 934 | if (detailInfo.value.foundMode == '2') { | 1048 | if (detailInfo.value.foundMode == '2') { |
| 935 | router.push({ | 1049 | router.push({ |
| 936 | name: 'apiDetail', | 1050 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/api-detail' : '/data-asset/register-catalog/api-detail', |
| 1051 | //name: 'apiDetail', | ||
| 937 | query: { | 1052 | query: { |
| 938 | guid: detailInfo.value.guid, | 1053 | guid: detailInfo.value.guid, |
| 939 | type: 'detaile', | 1054 | type: 'detaile', |
| ... | @@ -963,7 +1078,8 @@ const deliverySpanMethod = ({ | ... | @@ -963,7 +1078,8 @@ const deliverySpanMethod = ({ |
| 963 | 1078 | ||
| 964 | const clickContractDetail = (item) => { | 1079 | const clickContractDetail = (item) => { |
| 965 | router.push({ | 1080 | router.push({ |
| 966 | name: 'registerCatalogContractDetail', | 1081 | path: route.query.dataSources == '1' ? '/data-asset/authordata-catalog/register-catalog-contract-detail' : '/data-asset/register-catalog/register-catalog-contract-detail', |
| 1082 | //name: 'registerCatalogContractDetail', | ||
| 967 | query: { | 1083 | query: { |
| 968 | guid: item.dataContractGuid, | 1084 | guid: item.dataContractGuid, |
| 969 | name: item.dataContractName, | 1085 | name: item.dataContractName, |
| ... | @@ -1015,6 +1131,7 @@ const viewDeliveryFile = (file) => { | ... | @@ -1015,6 +1131,7 @@ const viewDeliveryFile = (file) => { |
| 1015 | <div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div> | 1131 | <div class="dataLabel dataLabel1">{{ detailInfo.dataSourcesName }}</div> |
| 1016 | </div> | 1132 | </div> |
| 1017 | </div> | 1133 | </div> |
| 1134 | <div class="applicationScenarios">{{ '权利主体:' + detailInfo.rightMainName }}</div> | ||
| 1018 | <div class="applicationScenarios" | 1135 | <div class="applicationScenarios" |
| 1019 | :style="{ 'margin-right': (isTruncated && !isExpanded) ? '30px' : '0px', WebkitLineClamp: (!isTruncated ? 'inherit' : (isExpanded ? 'inherit' : 1)), WebkitBoxOrient: 'vertical' }"> | 1136 | :style="{ 'margin-right': (isTruncated && !isExpanded) ? '30px' : '0px', WebkitLineClamp: (!isTruncated ? 'inherit' : (isExpanded ? 'inherit' : 1)), WebkitBoxOrient: 'vertical' }"> |
| 1020 | {{'覆盖地域:' + (detailInfo.coverageArea?.[0]?.[0] == 'all' ? '全国' : (detailInfo.coverageAreaName?.map(c => | 1137 | {{'覆盖地域:' + (detailInfo.coverageArea?.[0]?.[0] == 'all' ? '全国' : (detailInfo.coverageAreaName?.map(c => |
| ... | @@ -1035,7 +1152,7 @@ const viewDeliveryFile = (file) => { | ... | @@ -1035,7 +1152,7 @@ const viewDeliveryFile = (file) => { |
| 1035 | :highlight-current-row="true" stripe border @expand-change="handleTableExpandChange" height="100%" | 1152 | :highlight-current-row="true" stripe border @expand-change="handleTableExpandChange" height="100%" |
| 1036 | tooltip-effect="light" row-key="guid" :style="{ | 1153 | tooltip-effect="light" row-key="guid" :style="{ |
| 1037 | width: '100%', | 1154 | width: '100%', |
| 1038 | height: '400px', | 1155 | height: '350px', |
| 1039 | display: 'inline-block', | 1156 | display: 'inline-block', |
| 1040 | }"> | 1157 | }"> |
| 1041 | <el-table-column type="expand"> | 1158 | <el-table-column type="expand"> |
| ... | @@ -1343,6 +1460,10 @@ const viewDeliveryFile = (file) => { | ... | @@ -1343,6 +1460,10 @@ const viewDeliveryFile = (file) => { |
| 1343 | </div> | 1460 | </div> |
| 1344 | </ContentWrap> | 1461 | </ContentWrap> |
| 1345 | 1462 | ||
| 1463 | <ContentWrap v-if="route.query.type == 'asset' && registerDetailTableInfo.data.length > 0" id="id-registerDetail" title="登记评估上架交易" description="" style="margin: 16px 16px 16px"> | ||
| 1464 | <Table :table-info="registerDetailTableInfo"></Table> | ||
| 1465 | </ContentWrap> | ||
| 1466 | |||
| 1346 | <ContentWrap | 1467 | <ContentWrap |
| 1347 | v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')" | 1468 | v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')" |
| 1348 | id="id-approveInfo" title="审批信息" description="" style="margin: 16px 16px 16px"> | 1469 | id="id-approveInfo" title="审批信息" description="" style="margin: 16px 16px 16px"> |
| ... | @@ -1596,7 +1717,7 @@ const viewDeliveryFile = (file) => { | ... | @@ -1596,7 +1717,7 @@ const viewDeliveryFile = (file) => { |
| 1596 | .expand_btn { | 1717 | .expand_btn { |
| 1597 | position: absolute; | 1718 | position: absolute; |
| 1598 | right: 0px; | 1719 | right: 0px; |
| 1599 | top: 34px; | 1720 | top: 58px; |
| 1600 | font-size: 14px; | 1721 | font-size: 14px; |
| 1601 | line-height: 21px; | 1722 | line-height: 21px; |
| 1602 | } | 1723 | } | ... | ... |
| ... | @@ -25,6 +25,13 @@ const userData = JSON.parse(userStore.userData); | ... | @@ -25,6 +25,13 @@ const userData = JSON.parse(userStore.userData); |
| 25 | 25 | ||
| 26 | const assetStore = useDataAssetStore(); | 26 | const assetStore = useDataAssetStore(); |
| 27 | 27 | ||
| 28 | const props = defineProps({ | ||
| 29 | dataSources: { | ||
| 30 | type: Number, | ||
| 31 | default: 2, | ||
| 32 | } | ||
| 33 | }) | ||
| 34 | |||
| 28 | const router = useRouter(); | 35 | const router = useRouter(); |
| 29 | const { proxy } = getCurrentInstance() as any; | 36 | const { proxy } = getCurrentInstance() as any; |
| 30 | const damTypes: any = ref([]); | 37 | const damTypes: any = ref([]); |
| ... | @@ -156,8 +163,9 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -156,8 +163,9 @@ const tableBtnClick = (scope, btn) => { |
| 156 | currTableData.value = row; | 163 | currTableData.value = row; |
| 157 | if (type === "edit") { | 164 | if (type === "edit") { |
| 158 | router.push({ | 165 | router.push({ |
| 159 | name: "registerCatalogCreate", | 166 | // name: "registerCatalogCreate", |
| 160 | query: { guid: row.guid, damName: row.damName, foundMode: row.foundMode }, | 167 | path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-ctalog-create' : '/data-asset/register-catalog/register-ctalog-create', |
| 168 | query: { guid: row.guid, damName: row.damName, foundMode: row.foundMode, dataSources: props.dataSources }, | ||
| 161 | }); | 169 | }); |
| 162 | } else if (type == "delete") { | 170 | } else if (type == "delete") { |
| 163 | proxy.$openMessageBox('此操作将永久删除该资源,是否继续', () => { | 171 | proxy.$openMessageBox('此操作将永久删除该资源,是否继续', () => { |
| ... | @@ -181,13 +189,15 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -181,13 +189,15 @@ const tableBtnClick = (scope, btn) => { |
| 181 | const handleDataClick = (item) => { | 189 | const handleDataClick = (item) => { |
| 182 | if (item.isRegister == "N" && item.foundMode != 3) { | 190 | if (item.isRegister == "N" && item.foundMode != 3) { |
| 183 | router.push({ | 191 | router.push({ |
| 184 | name: "registerCatalogCreate", | 192 | path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-ctalog-create' : '/data-asset/register-catalog/register-ctalog-create', |
| 185 | query: { guid: item.guid, damName: item.damName, foundMode: item.foundMode }, | 193 | // name: "registerCatalogCreate", |
| 194 | query: { guid: item.guid, damName: item.damName, foundMode: item.foundMode, dataSources: props.dataSources }, | ||
| 186 | }); | 195 | }); |
| 187 | } else { | 196 | } else { |
| 188 | router.push({ | 197 | router.push({ |
| 189 | name: "registerCatalogDetail", | 198 | // name: "registerCatalogDetail", |
| 190 | query: { guid: item.guid, type: "asset" }, | 199 | path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-catalog-detail' : '/data-asset/register-catalog/register-catalog-detail', |
| 200 | query: { guid: item.guid, type: "asset", dataSources: props.dataSources }, | ||
| 191 | }); | 201 | }); |
| 192 | } | 202 | } |
| 193 | }; | 203 | }; |
| ... | @@ -201,7 +211,7 @@ const getTableData = () => { | ... | @@ -201,7 +211,7 @@ const getTableData = () => { |
| 201 | damType: pageInfo.value.damType, | 211 | damType: pageInfo.value.damType, |
| 202 | subjectDomain: pageInfo.value.subjectDomain || [], | 212 | subjectDomain: pageInfo.value.subjectDomain || [], |
| 203 | tenantGuid: pageInfo.value.tenantGuid, | 213 | tenantGuid: pageInfo.value.tenantGuid, |
| 204 | dataSources: pageInfo.value.dataSources, | 214 | dataSources: props.dataSources, |
| 205 | isRegister: pageInfo.value.isRegister, | 215 | isRegister: pageInfo.value.isRegister, |
| 206 | foundMode: pageInfo.value.foundMode, | 216 | foundMode: pageInfo.value.foundMode, |
| 207 | }).then((res: any) => { | 217 | }).then((res: any) => { |
| ... | @@ -228,7 +238,7 @@ const toSearch = (val: any, clear: boolean = false) => { | ... | @@ -228,7 +238,7 @@ const toSearch = (val: any, clear: boolean = false) => { |
| 228 | pageInfo.value.subjectDomain = []; | 238 | pageInfo.value.subjectDomain = []; |
| 229 | pageInfo.value.tenantGuid = ""; | 239 | pageInfo.value.tenantGuid = ""; |
| 230 | pageInfo.value.isRegister = ""; | 240 | pageInfo.value.isRegister = ""; |
| 231 | pageInfo.value.dataSources = ""; | 241 | // pageInfo.value.dataSources = ""; |
| 232 | pageInfo.value.foundMode = ""; | 242 | pageInfo.value.foundMode = ""; |
| 233 | } else { | 243 | } else { |
| 234 | pageInfo.value.damName = val.damName; | 244 | pageInfo.value.damName = val.damName; |
| ... | @@ -236,7 +246,7 @@ const toSearch = (val: any, clear: boolean = false) => { | ... | @@ -236,7 +246,7 @@ const toSearch = (val: any, clear: boolean = false) => { |
| 236 | pageInfo.value.subjectDomain = val.subjectDomain; | 246 | pageInfo.value.subjectDomain = val.subjectDomain; |
| 237 | pageInfo.value.tenantGuid = val.tenantGuid; | 247 | pageInfo.value.tenantGuid = val.tenantGuid; |
| 238 | pageInfo.value.isRegister = val.isRegister; | 248 | pageInfo.value.isRegister = val.isRegister; |
| 239 | pageInfo.value.dataSources = val.dataSources; | 249 | // pageInfo.value.dataSources = val.dataSources; |
| 240 | pageInfo.value.foundMode = val.foundMode; | 250 | pageInfo.value.foundMode = val.foundMode; |
| 241 | } | 251 | } |
| 242 | getTableData(); | 252 | getTableData(); |
| ... | @@ -308,7 +318,11 @@ function replaceChildDictListKey(data) { | ... | @@ -308,7 +318,11 @@ function replaceChildDictListKey(data) { |
| 308 | 318 | ||
| 309 | const handleCreate = () => { | 319 | const handleCreate = () => { |
| 310 | router.push({ | 320 | router.push({ |
| 311 | name: "registerCatalogCreate", | 321 | path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-ctalog-create' : '/data-asset/register-catalog/register-ctalog-create', |
| 322 | query: { | ||
| 323 | dataSources: props.dataSources | ||
| 324 | } | ||
| 325 | // name: "registerCatalogCreate", | ||
| 312 | }); | 326 | }); |
| 313 | }; | 327 | }; |
| 314 | 328 | ||
| ... | @@ -387,8 +401,9 @@ const handleUploadClose = (itemGuid) => { | ... | @@ -387,8 +401,9 @@ const handleUploadClose = (itemGuid) => { |
| 387 | if (itemGuid) { | 401 | if (itemGuid) { |
| 388 | assetStore.setDamCatalogRefresh(true); | 402 | assetStore.setDamCatalogRefresh(true); |
| 389 | router.push({ | 403 | router.push({ |
| 390 | name: "registerCatalogDetail", | 404 | path: props.dataSources == 1 ? '/data-asset/authordata-catalog/register-catalog-detail' : '/data-asset/register-catalog/register-catalog-detail', |
| 391 | query: { guid: itemGuid, type: "asset" }, | 405 | //name: "registerCatalogDetail", |
| 406 | query: { guid: itemGuid, type: "asset", dataSources: props.dataSources }, | ||
| 392 | }); | 407 | }); |
| 393 | } | 408 | } |
| 394 | } | 409 | } | ... | ... |
src/views/data_asset/transactionDetail.vue
0 → 100644
| 1 | <route lang="yaml"> | ||
| 2 | name: transactionDetail 数据产品交易信息详情 | ||
| 3 | </route> | ||
| 4 | |||
| 5 | <script lang="ts" setup name="transactionDetail"> | ||
| 6 | import { getDownFileSignByUrl, obsDownloadRequest, parseAndDecodeUrl } from "@/api/modules/obsService"; | ||
| 7 | import { changeNum, download, getDownloadUrl } from "@/utils/common"; | ||
| 8 | import { ElMessage } from "element-plus"; | ||
| 9 | import { ref } from "vue"; | ||
| 10 | import { getTransactionDetail } from "@/api/modules/dataAsset"; | ||
| 11 | |||
| 12 | const { proxy } = getCurrentInstance() as any; | ||
| 13 | const router = useRouter(); | ||
| 14 | const route = useRoute(); | ||
| 15 | const detailLoading = ref(false); | ||
| 16 | |||
| 17 | const detailInfo: any = ref({}); | ||
| 18 | |||
| 19 | onBeforeMount(() => { | ||
| 20 | detailLoading.value = true; | ||
| 21 | getTransactionDetail({ guid: route.query.guid }).then((res: any) => { | ||
| 22 | detailLoading.value = false; | ||
| 23 | if (res.code == proxy.$passCode) { | ||
| 24 | detailInfo.value = res.data || {}; | ||
| 25 | } else { | ||
| 26 | ElMessage.error('驳回失败'); | ||
| 27 | } | ||
| 28 | }); | ||
| 29 | }) | ||
| 30 | |||
| 31 | export const onUploadFileDownload = async (params) => { | ||
| 32 | const {name, url} = params; | ||
| 33 | const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(url).fileName); | ||
| 34 | if (!refSignInfo?.data) { | ||
| 35 | refSignInfo?.msg && ElMessage.error(refSignInfo?.msg); | ||
| 36 | return; | ||
| 37 | } | ||
| 38 | obsDownloadRequest(refSignInfo?.data).then((res: any) => { | ||
| 39 | if (res && !res.msg) { | ||
| 40 | var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : ''; | ||
| 41 | download(res, name, fileSuffix); | ||
| 42 | } else { | ||
| 43 | res?.msg && ElMessage.error(res?.msg); | ||
| 44 | } | ||
| 45 | }) | ||
| 46 | } | ||
| 47 | |||
| 48 | export const onUploadFilePreview = async (params) => { | ||
| 49 | console.log(params, 'params'); | ||
| 50 | const {name, url} = params; | ||
| 51 | // let f = formInline.value[item.field].find(i => i.name == file.name); | ||
| 52 | // let url = f.url; | ||
| 53 | let fileName: string = parseAndDecodeUrl(url).fileName; | ||
| 54 | const refSignInfo: any = await getDownFileSignByUrl(fileName); | ||
| 55 | if (!refSignInfo?.data) { | ||
| 56 | refSignInfo?.msg && ElMessage.error(refSignInfo?.msg); | ||
| 57 | return; | ||
| 58 | } | ||
| 59 | obsDownloadRequest(refSignInfo?.data).then((res: any) => { | ||
| 60 | if (res && !res.msg) { | ||
| 61 | var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1).toLowerCase() : ''; | ||
| 62 | if (fileSuffix === 'png' || fileSuffix === 'jpeg' || fileSuffix === 'jpg' || fileSuffix === 'pdf') { //浏览器可以支持图片和pdf预览 | ||
| 63 | let fileUrl = <string>getDownloadUrl(res, name, fileSuffix); | ||
| 64 | let win = window.open(fileUrl, name); | ||
| 65 | win && (win.document.title = name); | ||
| 66 | } else { | ||
| 67 | download(res, name, fileSuffix); | ||
| 68 | } | ||
| 69 | } else { | ||
| 70 | res?.msg && ElMessage.error(res?.msg); | ||
| 71 | } | ||
| 72 | }); | ||
| 73 | } | ||
| 74 | |||
| 75 | </script> | ||
| 76 | |||
| 77 | <template> | ||
| 78 | <div class="container_wrap" v-loading="detailLoading"> | ||
| 79 | <ContentWrap id="id-detail" title="数据产品交易信息" description="" style="margin: 0 16px"> | ||
| 80 | |||
| 81 | <div class="panel_body"> | ||
| 82 | <div class="list_panel"> | ||
| 83 | <div class="list_item"> | ||
| 84 | <span class="item_label">数据产品名称:</span> | ||
| 85 | <span class="item_value">{{ detailInfo.damName || '--' }}</span> | ||
| 86 | </div> | ||
| 87 | <div class="list_item"> | ||
| 88 | <span class="item_label">产品类型:</span> | ||
| 89 | <span class="item_value">{{ detailInfo.damTypeName || '--' }}</span> | ||
| 90 | </div> | ||
| 91 | <div class="list_item"> | ||
| 92 | <span class="item_label">买方名称:</span> | ||
| 93 | <span class="item_value">{{ detailInfo.buyerName || '--' }}</span> | ||
| 94 | </div> | ||
| 95 | <div class="list_item"> | ||
| 96 | <span class="item_label">卖方名称:</span> | ||
| 97 | <span class="item_value">{{ detailInfo.sellerName || '--' }}</span> | ||
| 98 | </div> | ||
| 99 | <div class="list_item"> | ||
| 100 | <span class="item_label">交易币种:</span> | ||
| 101 | <span class="item_value">{{ detailInfo.tradingCurrencyName || '--' }}</span> | ||
| 102 | </div> | ||
| 103 | <div class="list_item"> | ||
| 104 | <span class="item_label">原始交易金额:</span> | ||
| 105 | <span class="item_value">{{ detailInfo.originalTradingAmount != null ? changeNum(detailInfo.originalTradingAmount, 2) : '--' }}</span> | ||
| 106 | </div> | ||
| 107 | <div class="list_item"> | ||
| 108 | <span class="item_label">交易金额(元):</span> | ||
| 109 | <span class="item_value">{{ detailInfo.tradingAmount != null ? changeNum(detailInfo.tradingAmount, 2) : '--' }}</span> | ||
| 110 | </div> | ||
| 111 | <div class="list_item"> | ||
| 112 | <span class="item_label">交易方式:</span> | ||
| 113 | <span class="item_value">{{ detailInfo.tradingWayName || '--' | ||
| 114 | }}</span> | ||
| 115 | </div> | ||
| 116 | <div class="list_item" v-if="detailInfo.exchangeName"> | ||
| 117 | <span class="item_label">交易场所:</span> | ||
| 118 | <span class="item_value">{{ detailInfo.exchangeName || '--' }}</span> | ||
| 119 | </div> | ||
| 120 | <div class="list_item"> | ||
| 121 | <span class="item_label">交易时间:</span> | ||
| 122 | <span class="item_value">{{ detailInfo.tradingTime || '--' | ||
| 123 | }}</span> | ||
| 124 | </div> | ||
| 125 | <div class="list_item"> | ||
| 126 | <span class="item_label">合同编号:</span> | ||
| 127 | <span class="item_value">{{ detailInfo.contractCode || '--' }}</span> | ||
| 128 | </div> | ||
| 129 | <div class="list_item"> | ||
| 130 | <span class="item_label">合同名称:</span> | ||
| 131 | <span class="item_value">{{ detailInfo.contractName || '--' }}</span> | ||
| 132 | </div> | ||
| 133 | |||
| 134 | <div class="list_item is_block"> | ||
| 135 | <div class="file_item" v-if="detailInfo.contractAttachments?.length"> | ||
| 136 | <span class="item_label">合同附件:</span> | ||
| 137 | <span class="item_value"> | ||
| 138 | <div class="file-operate"> | ||
| 139 | <template | ||
| 140 | v-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xls' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xlsx'"> | ||
| 141 | <img class="file-img" src="../../assets/images/excel.png" /> | ||
| 142 | </template> | ||
| 143 | <template | ||
| 144 | v-else-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'doc' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'docx'"> | ||
| 145 | <img class="file-img" src="../../assets/images/word.png" /> | ||
| 146 | </template> | ||
| 147 | <template | ||
| 148 | v-else-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'"> | ||
| 149 | <img class="file-img" src="../../assets/images/zip.png" /> | ||
| 150 | </template> | ||
| 151 | <template | ||
| 152 | v-else-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'"> | ||
| 153 | <img class="file-img" src="../../assets/images/RAR.png" /> | ||
| 154 | </template> | ||
| 155 | <template | ||
| 156 | v-else-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'"> | ||
| 157 | <img class="file-img" src="../../assets/images/PDF.png" /> | ||
| 158 | </template> | ||
| 159 | <template | ||
| 160 | v-else-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'"> | ||
| 161 | <img class="file-img" src="../../assets/images/png.png" /> | ||
| 162 | </template> | ||
| 163 | <template | ||
| 164 | v-else-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"> | ||
| 165 | <img class="file-img" src="../../assets/images/jpg.png" /> | ||
| 166 | </template> | ||
| 167 | <div class="file-name"><ellipsis-tooltip :content="detailInfo.contractAttachments[0].name ?? ''" | ||
| 168 | class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div> | ||
| 169 | <div :style="{ right: '36px' }" class="file-preview" | ||
| 170 | v-if="detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || detailInfo.contractAttachments?.[0]?.name.substring(detailInfo.contractAttachments?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'" | ||
| 171 | @click="onUploadFilePreview(detailInfo.contractAttachments?.[0])">查看</div> | ||
| 172 | <div :style="{ right: '0px' }" class="file-preview" | ||
| 173 | @click="onUploadFileDownload(detailInfo.contractAttachments?.[0])">下载</div> | ||
| 174 | </div> | ||
| 175 | </span> | ||
| 176 | </div> | ||
| 177 | </div> | ||
| 178 | </div> | ||
| 179 | </div> | ||
| 180 | </ContentWrap> | ||
| 181 | </div> | ||
| 182 | </template> | ||
| 183 | |||
| 184 | <style lang="scss" scoped> | ||
| 185 | .panel_body { | ||
| 186 | padding: 8px 16px; | ||
| 187 | box-shadow: 0 0 0 1px rgba(229, 229, 229, 1); | ||
| 188 | border-top: none; | ||
| 189 | margin-top: 1px; | ||
| 190 | |||
| 191 | .list_panel { | ||
| 192 | display: flex; | ||
| 193 | flex-wrap: wrap; | ||
| 194 | |||
| 195 | .list_item { | ||
| 196 | width: 33.33%; | ||
| 197 | line-height: 32px; | ||
| 198 | font-size: 14px; | ||
| 199 | color: #666666; | ||
| 200 | display: flex; | ||
| 201 | justify-content: space-between; | ||
| 202 | |||
| 203 | .item_label { | ||
| 204 | width: 100px; | ||
| 205 | text-align: right; | ||
| 206 | flex-shrink: 0; | ||
| 207 | |||
| 208 | &.t_left { | ||
| 209 | width: auto; | ||
| 210 | } | ||
| 211 | } | ||
| 212 | |||
| 213 | .file_item { | ||
| 214 | width: 50%; | ||
| 215 | display: flex; | ||
| 216 | justify-content: space-between; | ||
| 217 | } | ||
| 218 | |||
| 219 | .item_value { | ||
| 220 | color: var(--el-color-regular); | ||
| 221 | padding: 0 16px; | ||
| 222 | flex: 1; | ||
| 223 | text-align: justify; | ||
| 224 | min-width: 100px; | ||
| 225 | |||
| 226 | .file-operate { | ||
| 227 | display: flex; | ||
| 228 | align-items: center; | ||
| 229 | position: relative; | ||
| 230 | |||
| 231 | .file-img { | ||
| 232 | width: 24px; | ||
| 233 | height: 24px; | ||
| 234 | } | ||
| 235 | |||
| 236 | &:hover { | ||
| 237 | background-color: #f5f5f5; | ||
| 238 | } | ||
| 239 | |||
| 240 | .file-name { | ||
| 241 | color: var(--el-color-regular); | ||
| 242 | margin-left: 4px; | ||
| 243 | width: calc(100% - 120px); | ||
| 244 | } | ||
| 245 | |||
| 246 | .file-preview { | ||
| 247 | position: absolute; | ||
| 248 | cursor: pointer; | ||
| 249 | color: var(--el-color-primary); | ||
| 250 | margin-right: 8px; | ||
| 251 | white-space: nowrap; | ||
| 252 | } | ||
| 253 | } | ||
| 254 | |||
| 255 | .area_text+.area_text { | ||
| 256 | &::before { | ||
| 257 | content: '、', | ||
| 258 | } | ||
| 259 | } | ||
| 260 | } | ||
| 261 | |||
| 262 | &.is_block { | ||
| 263 | width: 100%; | ||
| 264 | |||
| 265 | .item_value { | ||
| 266 | white-space: pre-wrap; | ||
| 267 | } | ||
| 268 | } | ||
| 269 | } | ||
| 270 | |||
| 271 | .list_item1 { | ||
| 272 | width: 50%; | ||
| 273 | line-height: 32px; | ||
| 274 | font-size: 14px; | ||
| 275 | color: #666666; | ||
| 276 | display: flex; | ||
| 277 | justify-content: space-between; | ||
| 278 | |||
| 279 | .item_label { | ||
| 280 | width: 100px; | ||
| 281 | text-align: right; | ||
| 282 | flex-shrink: 0; | ||
| 283 | } | ||
| 284 | |||
| 285 | .file_item { | ||
| 286 | width: 100%; | ||
| 287 | display: flex; | ||
| 288 | justify-content: space-between; | ||
| 289 | } | ||
| 290 | |||
| 291 | .item_value { | ||
| 292 | color: var(--el-color-regular); | ||
| 293 | padding: 0 16px; | ||
| 294 | flex: 1; | ||
| 295 | text-align: justify; | ||
| 296 | min-width: 100px; | ||
| 297 | |||
| 298 | .file-operate { | ||
| 299 | display: flex; | ||
| 300 | align-items: center; | ||
| 301 | position: relative; | ||
| 302 | |||
| 303 | .file-img { | ||
| 304 | width: 24px; | ||
| 305 | height: 24px; | ||
| 306 | } | ||
| 307 | |||
| 308 | &:hover { | ||
| 309 | background-color: #f5f5f5; | ||
| 310 | } | ||
| 311 | |||
| 312 | .file-name { | ||
| 313 | color: var(--el-color-regular); | ||
| 314 | margin-left: 4px; | ||
| 315 | width: calc(100% - 120px); | ||
| 316 | } | ||
| 317 | |||
| 318 | .file-preview { | ||
| 319 | position: absolute; | ||
| 320 | cursor: pointer; | ||
| 321 | color: var(--el-color-primary); | ||
| 322 | margin-right: 8px; | ||
| 323 | white-space: nowrap; | ||
| 324 | } | ||
| 325 | } | ||
| 326 | |||
| 327 | .area_text+.area_text { | ||
| 328 | &::before { | ||
| 329 | content: '、', | ||
| 330 | } | ||
| 331 | } | ||
| 332 | } | ||
| 333 | |||
| 334 | // &.is_block { | ||
| 335 | // width: 100%; | ||
| 336 | |||
| 337 | // .item_value { | ||
| 338 | // white-space: pre-wrap; | ||
| 339 | // } | ||
| 340 | // } | ||
| 341 | } | ||
| 342 | |||
| 343 | :deep(.el-form) { | ||
| 344 | width: 100%; | ||
| 345 | } | ||
| 346 | |||
| 347 | :deep(.panel_body) { | ||
| 348 | box-shadow: none; | ||
| 349 | } | ||
| 350 | |||
| 351 | &.label_auto { | ||
| 352 | .list_item { | ||
| 353 | .item_label { | ||
| 354 | width: auto; | ||
| 355 | } | ||
| 356 | |||
| 357 | .item_value { | ||
| 358 | padding-left: 0; | ||
| 359 | } | ||
| 360 | } | ||
| 361 | } | ||
| 362 | } | ||
| 363 | |||
| 364 | .table_panel_wrap { | ||
| 365 | .table_panel { | ||
| 366 | padding: 0; | ||
| 367 | min-height: unset; | ||
| 368 | } | ||
| 369 | } | ||
| 370 | |||
| 371 | .process_panel { | ||
| 372 | height: 500px; | ||
| 373 | |||
| 374 | .iframe-sty { | ||
| 375 | width: 100%; | ||
| 376 | height: 100%; | ||
| 377 | border: none; | ||
| 378 | } | ||
| 379 | |||
| 380 | :deep(.property-panel) { | ||
| 381 | height: calc(100% - 50px) !important; | ||
| 382 | } | ||
| 383 | } | ||
| 384 | |||
| 385 | &.collapse { | ||
| 386 | height: 0; | ||
| 387 | padding: 0; | ||
| 388 | overflow: hidden; | ||
| 389 | } | ||
| 390 | } | ||
| 391 | </style> |
-
Please register or sign in to post a comment