diff --git a/src/assets/MOCK/dpp.json b/src/assets/MOCK/dpp.json index ef125a0bd..9959faf8c 100644 --- a/src/assets/MOCK/dpp.json +++ b/src/assets/MOCK/dpp.json @@ -1,5 +1,160 @@ { - "metadata": {}, + "metadata": { + "contract": { + "@id": "5c4fbb7d-cf02-4401-a7a3-f0ec1c506f33", + "@type": "dcat:Dataset", + "odrl:hasPolicy": { + "@id": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" + }, + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "HttpProxy" + }, + "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" + }, + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "AmazonS3" + }, + "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" + } + ], + "edc:description": "Battery Passport test data", + "edc:id": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" + }, + "negotiation": { + "init": { + "request": { + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "NegotiationInitiateRequestDto", + "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "protocol": "dataspace-protocol-http", + "connectorId": "BPNL00000000CBA5", + "offer": { + "offerId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", + "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", + "policy": { + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" + } + } + }, + "response": { + "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", + "@type": "edc:IdResponseDto", + "edc:createdAt": 1688393668476, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + }, + "get": { + "response": { + "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", + "@type": "edc:ContractNegotiationDto", + "edc:type": "CONSUMER", + "edc:protocol": "dataspace-protocol-http", + "edc:state": "FINALIZED", + "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "edc:callbackAddresses": [], + "edc:contractAgreementId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + } + }, + "transfer": { + "init": { + "request": { + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", + "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", + "dataDestination": { + "properties": { + "type": "HttpProxy" + } + }, + "managedResources": false, + "privateProperties": { + "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e" + }, + "protocol": "dataspace-protocol-http", + "transferType": { + "contentType": "application/octet-stream", + "isFinite": true + } + }, + "response": { + "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", + "@type": "edc:IdResponseDto", + "edc:createdAt": 1688393671434, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + }, + "get": { + "response": { + "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", + "@type": "edc:TransferProcessDto", + "edc:state": "COMPLETED", + "edc:stateTimestamp": 1688393673622, + "edc:type": "CONSUMER", + "edc:callbackAddresses": [], + "edc:dataDestination": { + "edc:type": "HttpProxy" + }, + "edc:dataRequest": { + "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", + "@type": "edc:DataRequestDto", + "edc:assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", + "edc:contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb" + }, + "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + } + } + }, "semanticId": "general", "aspect": { "serialization": { diff --git a/src/assets/MOCK/transmission.json b/src/assets/MOCK/transmission.json new file mode 100644 index 000000000..45beb400c --- /dev/null +++ b/src/assets/MOCK/transmission.json @@ -0,0 +1,305 @@ +{ + "metadata": { + "contract": { + "@id": "5c4fbb7d-cf02-4401-a7a3-f0ec1c506f33", + "@type": "dcat:Dataset", + "odrl:hasPolicy": { + "@id": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" + }, + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "HttpProxy" + }, + "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" + }, + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "AmazonS3" + }, + "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" + } + ], + "edc:description": "Battery Passport test data", + "edc:id": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" + }, + "negotiation": { + "init": { + "request": { + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "NegotiationInitiateRequestDto", + "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "protocol": "dataspace-protocol-http", + "connectorId": "BPNL00000000CBA5", + "offer": { + "offerId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", + "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", + "policy": { + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" + } + } + }, + "response": { + "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", + "@type": "edc:IdResponseDto", + "edc:createdAt": 1688393668476, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + }, + "get": { + "response": { + "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", + "@type": "edc:ContractNegotiationDto", + "edc:type": "CONSUMER", + "edc:protocol": "dataspace-protocol-http", + "edc:state": "FINALIZED", + "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "edc:callbackAddresses": [], + "edc:contractAgreementId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + } + }, + "transfer": { + "init": { + "request": { + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", + "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", + "dataDestination": { + "properties": { + "type": "HttpProxy" + } + }, + "managedResources": false, + "privateProperties": { + "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e" + }, + "protocol": "dataspace-protocol-http", + "transferType": { + "contentType": "application/octet-stream", + "isFinite": true + } + }, + "response": { + "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", + "@type": "edc:IdResponseDto", + "edc:createdAt": 1688393671434, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + }, + "get": { + "response": { + "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", + "@type": "edc:TransferProcessDto", + "edc:state": "COMPLETED", + "edc:stateTimestamp": 1688393673622, + "edc:type": "CONSUMER", + "edc:callbackAddresses": [], + "edc:dataDestination": { + "edc:type": "HttpProxy" + }, + "edc:dataRequest": { + "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", + "@type": "edc:DataRequestDto", + "edc:assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", + "edc:contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb" + }, + "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + } + } + }, + "semanticId": "urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass", + "aspect": { + "productSpecificParameters": { + "torqueConverter": [ + "RYtGKbgicZaHCBRQDSx" + ], + "driveType": "combustion engine", + "oilType": "ZF Lifeguard Hybrid 2", + "spreading": 6.79, + "torque": 500.0, + "power": 300.0, + "standardGearRatio": { + "gear": "1", + "ratio": 4.1567 + }, + "oilCapacity": 8.9, + "electricPerformance": [ + "VLhpfQGTMDYpsBZxvfBoeygjb" + ], + "speedResistance": { + "speed": 7800, + "gear": "1" + } + }, + "instructions": { + "packagingInstructions": [ + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + }, + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + } + ], + "transportationInstructions": [ + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + } + ], + "dismantlingProcedure": [ + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + } + ], + "safetyMeasures": [ + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + } + ], + "vehicleDismantlingProcedure": [ + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + } + ] + }, + "identification": { + "manufacturerId": "BPNL1234567890ZZ", + "localIdentifiers": [ + { + "value": "SN12345678", + "key": "PartInstanceID" + } + ], + "dataMatrixCode": "UMaAIKKIkknjWEXJUfPxxQHeWKEJ" + }, + "sparePartSupplier": [ + { + "supplierContact": { + "faxNumber": "+49 89 0987654321", + "website": "https://www.samsung.com", + "phoneNumber": "+49 89 1234567890", + "email": "test.mail@example.com" + }, + "supplierId": "BPNL1234567890ZZ", + "sparePartName": "torque converter" + } + ], + "stateOfHealth": { + "serviceHistory": [ + "2023-05-22T13:16:47.239+02:00" + ], + "expectedLifespan": 500000, + "remanufacturing": { + "remanufacturingDate": "2023-05-22T13:16:47.239+02:00", + "productStatusValue": "first life" + } + }, + "generalInformation": { + "additionalInformation": "JxkyvRnL", + "physicalDimensionsProperty": { + "width": 1000.0, + "length": 20000.1, + "weight": 100.7, + "diameter": 0.03, + "height": 0.1 + }, + "warrantyPeriod": 60.0, + "productDescription": "manual transmission", + "productType": "8HP60MH" + }, + "sustainability": { + "substancesOfConcern": [ + "yedUsFwdkelQbxeTeQOvaScfqIOOmaa", + "yedUsFwdkelQbxeTeQOvaScfqIOOmaa" + ], + "responsibleSourcingDocument": [ + { + "documentTitle": "Title A", + "documentLink": "https://www.xxx.pdf" + } + ], + "recyclateContent": { + "nickel": -1.7976931348623157E+308, + "lithium": -1.7976931348623157E+308, + "cobalt": -1.7976931348623157E+308, + "otherSubstance": [ + { + "substancePercentage": 8.0, + "substanceName": "Lead" + } + ] + }, + "criticalRawMaterials": [ + "eOMtThyhVNLWUZNRcBaQKxI" + ], + "carbonFootprint": { + "crossSectoralStandardsUsed": [ + { + "crossSectoralStandard": "GHG Protocol Product standard" + } + ], + "co2FootprintTotal": -1.7976931348623157E+308, + "productOrSectorSpecificRules": [ + { + "operator": "PEF", + "ruleNames": "ABC 2021", + "otherOperatorName": "NSF" + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/components/general/TabsComponent.vue b/src/components/general/TabsComponent.vue index c75c4dd92..2190c2d63 100644 --- a/src/components/general/TabsComponent.vue +++ b/src/components/general/TabsComponent.vue @@ -66,6 +66,10 @@ import Handling from "../passport/sections/Handling.vue"; import AdditionalData from "../passport/sections/AdditionalData.vue"; import Sustainability from "../passport/sections/Sustainability.vue"; import Operation from "../passport/sections/Operation.vue"; +import ProductSpecificParameters from "../passport/sections/ProductSpecificParameters.vue"; +import Instructions from "../passport/sections/Instructions.vue"; +import SparePartSupplier from "../passport/sections/SparePartSupplier.vue"; +import StateOfHealth from "../passport/sections/StateOfHealth.vue"; export default { name: "TabsComponent", @@ -90,6 +94,10 @@ export default { AdditionalData, Sustainability, Operation, + ProductSpecificParameters, + Instructions, + SparePartSupplier, + StateOfHealth, }, data() { return { diff --git a/src/components/passport/Field.vue b/src/components/passport/Field.vue index bdb315ebf..6d8cb4d50 100644 --- a/src/components/passport/Field.vue +++ b/src/components/passport/Field.vue @@ -46,6 +46,9 @@ + {{ faxNumber ? faxNumber : "—" }} + {{ postal ? postal : "—" }} @@ -102,6 +105,7 @@ export default { postal: { type: [String, Number], default: "" }, country: { type: [String, Number], default: "" }, phone: { type: [String, Number], default: "" }, + faxNumber: { type: [String, Number], default: "" }, email: { type: [String, Number], default: "" }, website: { type: [String, Number], default: "" }, length: { type: [String, Number], default: "" }, diff --git a/src/components/passport/GeneralCards.vue b/src/components/passport/GeneralCards.vue index 0426f22ba..21567edfa 100644 --- a/src/components/passport/GeneralCards.vue +++ b/src/components/passport/GeneralCards.vue @@ -80,7 +80,7 @@ import DialogComponent from "../general/Dialog.vue"; export default { - name: "BatteryCards", + name: "GeneralCards", components: { DialogComponent, }, @@ -131,7 +131,7 @@ export default { value: this.$props.data.aspect.metadata.version, secondValue: this.$props.data.aspect.metadata.issueDate, description: { - title: "aspect version", + title: "Aspect version", value: "Description of the aspect version", }, }, diff --git a/src/components/passport/InstructionsField.vue b/src/components/passport/InstructionsField.vue new file mode 100644 index 000000000..aa489ead5 --- /dev/null +++ b/src/components/passport/InstructionsField.vue @@ -0,0 +1,55 @@ + + + + + + diff --git a/src/components/passport/TransmissionCards.vue b/src/components/passport/TransmissionCards.vue new file mode 100644 index 000000000..b5a8e77b5 --- /dev/null +++ b/src/components/passport/TransmissionCards.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/components/passport/sections/GeneralInformation.vue b/src/components/passport/sections/GeneralInformation.vue index 3e95f5402..428ebbb30 100644 --- a/src/components/passport/sections/GeneralInformation.vue +++ b/src/components/passport/sections/GeneralInformation.vue @@ -24,6 +24,73 @@ diff --git a/src/components/passport/sections/Identification.vue b/src/components/passport/sections/Identification.vue index 65e78a1c0..01053d4d3 100644 --- a/src/components/passport/sections/Identification.vue +++ b/src/components/passport/sections/Identification.vue @@ -25,6 +25,13 @@ + +