@abi-software/scaffoldvuer 0.4.0-vue3.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +4 -11
- package/README.md +2 -1
- package/dist/scaffoldvuer.js +17943 -17046
- package/dist/scaffoldvuer.umd.cjs +410 -182
- package/dist/style.css +1 -1
- package/package.json +18 -11
- package/src/App.vue +52 -7
- package/src/app/DropZone.vue +40 -3
- package/src/app/ModelsInformation.js +58 -48
- package/src/app/ModelsTable.vue +11 -11
- package/src/app/TextureDemos.js +123 -6
- package/src/components/OpacityControls.vue +2 -2
- package/src/components/PrimitiveControls.vue +8 -5
- package/src/components/ScaffoldTooltip.vue +9 -0
- package/src/components/ScaffoldVuer.vue +111 -35
- package/src/components/TextureSlidesControls.vue +47 -45
- package/src/components/TreeControls.vue +1 -1
- package/src/components.d.ts +2 -0
- package/src/main.js +14 -2
- package/src/scripts/GraphicsHighlight.js +64 -25
- package/src/scripts/OrgansRenderer.js +3 -7
- package/src/scripts/RendererModule.js +9 -15
- package/src/store/index.js +24 -0
- package/vite.config.js +12 -0
- package/vite.static-build.js +7 -1
- package/vuese-generator.js +65 -0
- package/styleguide.config.js +0 -22
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
:teleported="true"
|
|
153
153
|
:model-value="currentSpeed"
|
|
154
154
|
placeholder="Select"
|
|
155
|
-
class="select-box"
|
|
155
|
+
class="scaffold-select-box speed"
|
|
156
156
|
popper-class="scaffold_viewer_dropdown"
|
|
157
157
|
@change="speedChanged($event)"
|
|
158
158
|
>
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
:teleported="false"
|
|
269
269
|
v-model="viewingMode"
|
|
270
270
|
placeholder="Select"
|
|
271
|
-
class="select-box viewing-mode"
|
|
271
|
+
class="scaffold-select-box viewing-mode"
|
|
272
272
|
popper-class="scaffold_viewer_dropdown"
|
|
273
273
|
>
|
|
274
274
|
<el-option v-for="item in viewingModes" :key="item" :label="item" :value="item">
|
|
@@ -509,13 +509,17 @@ export default {
|
|
|
509
509
|
},
|
|
510
510
|
},
|
|
511
511
|
/**
|
|
512
|
-
* Flag to determine rather open map UI
|
|
513
|
-
*
|
|
512
|
+
* Flag to determine rather the open map UI icon and popup
|
|
513
|
+
* should be shown or not.
|
|
514
514
|
*/
|
|
515
515
|
enableOpenMapUI: {
|
|
516
516
|
type: Boolean,
|
|
517
517
|
default: false,
|
|
518
518
|
},
|
|
519
|
+
/**
|
|
520
|
+
* This array populate the the openMapOptions popup.
|
|
521
|
+
* Each entry contains a pair of display and key.
|
|
522
|
+
*/
|
|
519
523
|
openMapOptions: {
|
|
520
524
|
type: Array,
|
|
521
525
|
default: function () {
|
|
@@ -709,6 +713,8 @@ export default {
|
|
|
709
713
|
},
|
|
710
714
|
currentTime: {
|
|
711
715
|
handler: function () {
|
|
716
|
+
//Emit when time in the current scene has changed
|
|
717
|
+
//@arg Current time in scene
|
|
712
718
|
this.$emit("timeChanged", this.currentTime);
|
|
713
719
|
},
|
|
714
720
|
},
|
|
@@ -762,12 +768,17 @@ export default {
|
|
|
762
768
|
this.currentTime = this.$module.getCurrentTime();
|
|
763
769
|
})
|
|
764
770
|
},
|
|
765
|
-
|
|
771
|
+
beforeUnmount: function () {
|
|
766
772
|
if (this.ro) this.ro.disconnect();
|
|
767
773
|
this.$module.destroy();
|
|
768
774
|
this.$module = undefined;
|
|
769
775
|
},
|
|
770
776
|
methods: {
|
|
777
|
+
/**
|
|
778
|
+
* @vuese
|
|
779
|
+
* Call this to manually add a zinc object into the current scene
|
|
780
|
+
* @arg Zinc object to be added
|
|
781
|
+
*/
|
|
771
782
|
addZincObject: function (zincObject) {
|
|
772
783
|
if (this.$module.scene) {
|
|
773
784
|
this.$module.scene.addZincObject(zincObject);
|
|
@@ -776,15 +787,19 @@ export default {
|
|
|
776
787
|
}
|
|
777
788
|
},
|
|
778
789
|
/**
|
|
790
|
+
* Internal only.
|
|
779
791
|
* This is called when a new zinc object is read into the scene.
|
|
780
792
|
*/
|
|
781
793
|
zincObjectAdded: function (zincObject) {
|
|
782
794
|
this.loading = false;
|
|
783
795
|
this.$_searchIndex.addZincObject(zincObject, zincObject.uuid);
|
|
796
|
+
//Emit when a new object is added to the scene
|
|
797
|
+
//@arg The object added to the sceene
|
|
784
798
|
this.$emit("zinc-object-added", zincObject);
|
|
785
799
|
},
|
|
786
800
|
/**
|
|
787
|
-
*
|
|
801
|
+
* Internal only.
|
|
802
|
+
* Add regions to search index.
|
|
788
803
|
*/
|
|
789
804
|
addRegionsToSearchIndex: function () {
|
|
790
805
|
const rootRegion = this.$module.scene.getRootRegion();
|
|
@@ -794,6 +809,7 @@ export default {
|
|
|
794
809
|
});
|
|
795
810
|
},
|
|
796
811
|
/**
|
|
812
|
+
* Internal only.
|
|
797
813
|
* This is called when Change backgspeedround colour button
|
|
798
814
|
* is pressed an causes the backgrouColornd colour to be changed
|
|
799
815
|
* to one of the three preset colour: white, black and
|
|
@@ -806,6 +822,7 @@ export default {
|
|
|
806
822
|
.setClearColor(this.currentBackground, 1);
|
|
807
823
|
},
|
|
808
824
|
/**
|
|
825
|
+
* Internal only.
|
|
809
826
|
* This is called by captueeScreenshot and after the last render
|
|
810
827
|
* loop, it download a screenshot of the current scene with no UI.
|
|
811
828
|
*/
|
|
@@ -826,11 +843,10 @@ export default {
|
|
|
826
843
|
hrefElement.remove();
|
|
827
844
|
},
|
|
828
845
|
/**
|
|
846
|
+
* @vuese
|
|
829
847
|
* Function for capturing a screenshot of the current rendering.
|
|
830
848
|
*
|
|
831
|
-
* @
|
|
832
|
-
*
|
|
833
|
-
* @public
|
|
849
|
+
* @arg filename given to the screenshot.
|
|
834
850
|
*/
|
|
835
851
|
captureScreenshot: function (filename) {
|
|
836
852
|
this.captureFilename = filename;
|
|
@@ -839,9 +855,8 @@ export default {
|
|
|
839
855
|
);
|
|
840
856
|
},
|
|
841
857
|
/**
|
|
858
|
+
* @vuese
|
|
842
859
|
* Function to clear current scene, the tree controls and the search index.
|
|
843
|
-
*
|
|
844
|
-
* @public
|
|
845
860
|
*/
|
|
846
861
|
clearScene: function () {
|
|
847
862
|
if (this.$refs.treeControls) this.$refs.treeControls.clear();
|
|
@@ -859,10 +874,9 @@ export default {
|
|
|
859
874
|
return val ? val.toFixed(2) + " ms" : "0 ms";
|
|
860
875
|
},
|
|
861
876
|
/**
|
|
877
|
+
* @vuese
|
|
862
878
|
* Function to reset the view to default.
|
|
863
879
|
* Also called when the associated button is pressed.
|
|
864
|
-
*
|
|
865
|
-
* @public
|
|
866
880
|
*/
|
|
867
881
|
fitWindow: function () {
|
|
868
882
|
if (this.$module.scene) {
|
|
@@ -870,10 +884,9 @@ export default {
|
|
|
870
884
|
}
|
|
871
885
|
},
|
|
872
886
|
/**
|
|
887
|
+
* @vuese
|
|
873
888
|
* Function to zoom in.
|
|
874
889
|
* Also called when the associated button is pressed.
|
|
875
|
-
*
|
|
876
|
-
* @public
|
|
877
890
|
*/
|
|
878
891
|
zoomIn: function () {
|
|
879
892
|
if (this.$module.scene) {
|
|
@@ -884,7 +897,7 @@ export default {
|
|
|
884
897
|
* Function to zoom out.
|
|
885
898
|
* Also called when the associated button is pressed.
|
|
886
899
|
*
|
|
887
|
-
* @
|
|
900
|
+
* @vuese
|
|
888
901
|
*/
|
|
889
902
|
zoomOut: function () {
|
|
890
903
|
if (this.$module.scene) {
|
|
@@ -894,7 +907,7 @@ export default {
|
|
|
894
907
|
/**
|
|
895
908
|
* Function to change the current play speed.
|
|
896
909
|
*
|
|
897
|
-
* @
|
|
910
|
+
* @vuese
|
|
898
911
|
*/
|
|
899
912
|
speedChanged: function (speed) {
|
|
900
913
|
this.currentSpeed = speed;
|
|
@@ -903,13 +916,19 @@ export default {
|
|
|
903
916
|
/**
|
|
904
917
|
* Function used to stop the free spin
|
|
905
918
|
*
|
|
906
|
-
* @
|
|
919
|
+
* @vuese
|
|
907
920
|
*/
|
|
908
921
|
stopFreeSpin: function () {
|
|
909
922
|
let cameracontrol = this.$module.scene.getZincCameraControls();
|
|
910
923
|
cameracontrol.stopAutoTumble();
|
|
911
924
|
this.isTransitioning = false;
|
|
912
925
|
},
|
|
926
|
+
/**
|
|
927
|
+
* Return a list of obejcts with the provided name.
|
|
928
|
+
* @arg Group name to search.
|
|
929
|
+
*
|
|
930
|
+
* @vuese
|
|
931
|
+
*/
|
|
913
932
|
findObjectsWithGroupName: function (name) {
|
|
914
933
|
let objects = [];
|
|
915
934
|
if (name && name != "" && this.$module.scene) {
|
|
@@ -918,7 +937,10 @@ export default {
|
|
|
918
937
|
return objects;
|
|
919
938
|
},
|
|
920
939
|
/**
|
|
921
|
-
*
|
|
940
|
+
* Find and and zoom into objects with the provided list of names.
|
|
941
|
+
* @arg List of names
|
|
942
|
+
*
|
|
943
|
+
* @vuese
|
|
922
944
|
*/
|
|
923
945
|
viewRegion: function (names) {
|
|
924
946
|
const rootRegion = this.$module.scene.getRootRegion();
|
|
@@ -962,6 +984,11 @@ export default {
|
|
|
962
984
|
}
|
|
963
985
|
}
|
|
964
986
|
},
|
|
987
|
+
/**
|
|
988
|
+
* Return renderer information
|
|
989
|
+
*
|
|
990
|
+
* @vuese
|
|
991
|
+
*/
|
|
965
992
|
getRendererInfo: function () {
|
|
966
993
|
if (this.$module.zincRenderer) {
|
|
967
994
|
return this.$module.zincRenderer.getThreeJSRenderer().info;
|
|
@@ -972,7 +999,7 @@ export default {
|
|
|
972
999
|
* Function used to rotate the scene.
|
|
973
1000
|
* Also called when the associated button is pressed.
|
|
974
1001
|
*
|
|
975
|
-
* @
|
|
1002
|
+
* @vuese
|
|
976
1003
|
*/
|
|
977
1004
|
freeSpin: function () {
|
|
978
1005
|
if (this.$module.scene) {
|
|
@@ -1023,6 +1050,8 @@ export default {
|
|
|
1023
1050
|
//Make sure the tooltip is displayed with annotation mode
|
|
1024
1051
|
this.showRegionTooltipWithAnnotations(event.identifiers, true, true);
|
|
1025
1052
|
}
|
|
1053
|
+
//Emit when an object is selected
|
|
1054
|
+
//@arg Identifier of selected objects
|
|
1026
1055
|
this.$emit("scaffold-selected", event.identifiers);
|
|
1027
1056
|
} else if (event.eventType == 2) {
|
|
1028
1057
|
if (this.selectedObjects.length === 0) {
|
|
@@ -1051,7 +1080,8 @@ export default {
|
|
|
1051
1080
|
this.tData.y = event.identifiers[0].coords.y;
|
|
1052
1081
|
}
|
|
1053
1082
|
}
|
|
1054
|
-
//
|
|
1083
|
+
//Emit when an object is highlighted
|
|
1084
|
+
//@arg Identifier of selected objects
|
|
1055
1085
|
this.$emit("scaffold-highlighted", event.identifiers);
|
|
1056
1086
|
}
|
|
1057
1087
|
} else if (event.eventType == 3) {
|
|
@@ -1069,7 +1099,7 @@ export default {
|
|
|
1069
1099
|
/**
|
|
1070
1100
|
* Get the coordinates of the current selected region.
|
|
1071
1101
|
*
|
|
1072
|
-
* @
|
|
1102
|
+
* @vuese
|
|
1073
1103
|
*/
|
|
1074
1104
|
getCoordinatesOfSelected: function () {
|
|
1075
1105
|
if (this.selectedObjects && this.selectedObjects.length > 0) {
|
|
@@ -1082,7 +1112,7 @@ export default {
|
|
|
1082
1112
|
* current selected region which will be updated after each render
|
|
1083
1113
|
* loop.
|
|
1084
1114
|
*
|
|
1085
|
-
* @
|
|
1115
|
+
* @vuese
|
|
1086
1116
|
*/
|
|
1087
1117
|
getDynamicSelectedCoordinates: function () {
|
|
1088
1118
|
return this.$module.selectedScreenCoordinates;
|
|
@@ -1094,13 +1124,14 @@ export default {
|
|
|
1094
1124
|
let normalizedTime = (event / this.timeMax) * 100;
|
|
1095
1125
|
if (normalizedTime != this.currentTime) {
|
|
1096
1126
|
this.$module.updateTime(normalizedTime);
|
|
1097
|
-
console.log(this.currentTime)
|
|
1098
1127
|
}
|
|
1099
1128
|
},
|
|
1100
1129
|
/**
|
|
1101
1130
|
* A callback used by children components. Set the selected zinc object
|
|
1102
1131
|
*
|
|
1103
|
-
* @
|
|
1132
|
+
* @arg Selected zinc objects
|
|
1133
|
+
* @arg Flag to determine if callback should be triggered when new selection
|
|
1134
|
+
* is made
|
|
1104
1135
|
*/
|
|
1105
1136
|
objectSelected: function (objects, propagate) {
|
|
1106
1137
|
this.selectedObjects = objects;
|
|
@@ -1112,7 +1143,9 @@ export default {
|
|
|
1112
1143
|
/**
|
|
1113
1144
|
* A callback used by children components. Set the highlighted zinc object
|
|
1114
1145
|
*
|
|
1115
|
-
* @
|
|
1146
|
+
* @arg Hovered zinc objects
|
|
1147
|
+
* @arg Flag to determine if callback should be triggered when new selection
|
|
1148
|
+
* is made
|
|
1116
1149
|
*/
|
|
1117
1150
|
objectHovered: function (objects, propagate) {
|
|
1118
1151
|
this.hoveredObjects = objects;
|
|
@@ -1149,9 +1182,10 @@ export default {
|
|
|
1149
1182
|
}
|
|
1150
1183
|
},
|
|
1151
1184
|
/**
|
|
1185
|
+
* @vuese
|
|
1152
1186
|
* Start the animation.
|
|
1153
1187
|
*
|
|
1154
|
-
* @
|
|
1188
|
+
* @arg flag to turn the animation on/off
|
|
1155
1189
|
*/
|
|
1156
1190
|
play: function (flag) {
|
|
1157
1191
|
this.$module.playAnimation(flag);
|
|
@@ -1160,6 +1194,7 @@ export default {
|
|
|
1160
1194
|
//this.hideRegionTooltip();
|
|
1161
1195
|
},
|
|
1162
1196
|
/**
|
|
1197
|
+
* @vuese
|
|
1163
1198
|
* Function to toggle on/off overlay help.
|
|
1164
1199
|
*/
|
|
1165
1200
|
setHelpMode: function (helpMode) {
|
|
@@ -1329,6 +1364,10 @@ export default {
|
|
|
1329
1364
|
this.hideRegionTooltip();
|
|
1330
1365
|
return false;
|
|
1331
1366
|
},
|
|
1367
|
+
/**
|
|
1368
|
+
* @vuese
|
|
1369
|
+
* Hide the tooltip
|
|
1370
|
+
*/
|
|
1332
1371
|
hideRegionTooltip: function () {
|
|
1333
1372
|
if (this.$_liveCoordinatesUpdated) {
|
|
1334
1373
|
this.$module.zincRenderer.removePostRenderCallbackFunction(
|
|
@@ -1354,6 +1393,7 @@ export default {
|
|
|
1354
1393
|
}
|
|
1355
1394
|
},
|
|
1356
1395
|
/**
|
|
1396
|
+
* @vuese
|
|
1357
1397
|
* Set the marker modes for objects specified by the list of annotations
|
|
1358
1398
|
*/
|
|
1359
1399
|
setMarkerModeWithAnnotations: function (annotations, mode) {
|
|
@@ -1384,6 +1424,13 @@ export default {
|
|
|
1384
1424
|
clearTimeout(this.helpTextWait);
|
|
1385
1425
|
}
|
|
1386
1426
|
},
|
|
1427
|
+
/**
|
|
1428
|
+
* @vuese
|
|
1429
|
+
*
|
|
1430
|
+
* Search a object and display the tooltip
|
|
1431
|
+
* @arg text to search across
|
|
1432
|
+
* @arg toggle the tooltip if this is set
|
|
1433
|
+
*/
|
|
1387
1434
|
search: function (text, displayLabel) {
|
|
1388
1435
|
if (this.$_searchIndex) {
|
|
1389
1436
|
if (text === undefined || text === "" ||
|
|
@@ -1418,7 +1465,10 @@ export default {
|
|
|
1418
1465
|
return false;
|
|
1419
1466
|
},
|
|
1420
1467
|
/**
|
|
1421
|
-
*
|
|
1468
|
+
* @vuese
|
|
1469
|
+
*
|
|
1470
|
+
* Get the list of suggested terms based on the provided term.
|
|
1471
|
+
* This can be used for autocomplete.
|
|
1422
1472
|
*/
|
|
1423
1473
|
fetchSuggestions: function (term) {
|
|
1424
1474
|
if (this.$_searchIndex === undefined) return [];
|
|
@@ -1472,6 +1522,7 @@ export default {
|
|
|
1472
1522
|
this.$module.updateTime(0);
|
|
1473
1523
|
this.$module.unsetFinishDownloadCallback();
|
|
1474
1524
|
this.addRegionsToSearchIndex();
|
|
1525
|
+
//Emit when all objects have been loaded
|
|
1475
1526
|
this.$emit("on-ready");
|
|
1476
1527
|
this.setMarkers();
|
|
1477
1528
|
this.isReady = true;
|
|
@@ -1481,7 +1532,7 @@ export default {
|
|
|
1481
1532
|
* Function used for getting the current states of the scene. This exported states
|
|
1482
1533
|
* can be imported using the importStates method.
|
|
1483
1534
|
*
|
|
1484
|
-
* @
|
|
1535
|
+
* @vuese
|
|
1485
1536
|
*/
|
|
1486
1537
|
getState: function () {
|
|
1487
1538
|
let state = {
|
|
@@ -1502,7 +1553,7 @@ export default {
|
|
|
1502
1553
|
* Function used for importing the states of the scene. This exported states
|
|
1503
1554
|
* can be imported using the read states method.
|
|
1504
1555
|
*
|
|
1505
|
-
* @
|
|
1556
|
+
* @vuese
|
|
1506
1557
|
*/
|
|
1507
1558
|
setState: function (state) {
|
|
1508
1559
|
if (state) {
|
|
@@ -1533,6 +1584,12 @@ export default {
|
|
|
1533
1584
|
}
|
|
1534
1585
|
}
|
|
1535
1586
|
},
|
|
1587
|
+
/**
|
|
1588
|
+
* export current scene in GLTF.
|
|
1589
|
+
* @arg Return in binary form when set to true
|
|
1590
|
+
*
|
|
1591
|
+
* @vuese
|
|
1592
|
+
*/
|
|
1536
1593
|
exportGLTF: function (binary) {
|
|
1537
1594
|
return this.$module.scene.exportGLTF(binary);
|
|
1538
1595
|
},
|
|
@@ -1541,7 +1598,7 @@ export default {
|
|
|
1541
1598
|
* viewport. This function will ignore the state prop and
|
|
1542
1599
|
* read in the new url.
|
|
1543
1600
|
*
|
|
1544
|
-
* @
|
|
1601
|
+
* @vuese
|
|
1545
1602
|
*/
|
|
1546
1603
|
setURLAndState: function (newValue, state) {
|
|
1547
1604
|
if (newValue != this._currentURL) {
|
|
@@ -1587,7 +1644,7 @@ export default {
|
|
|
1587
1644
|
* Function used for reading in new scaffold metadata. This function will ignore
|
|
1588
1645
|
* the state prop and read in the new url.
|
|
1589
1646
|
*
|
|
1590
|
-
* @
|
|
1647
|
+
* @vuese
|
|
1591
1648
|
*/
|
|
1592
1649
|
setURL: function (newValue) {
|
|
1593
1650
|
this.setURLAndState(newValue, undefined);
|
|
@@ -1620,6 +1677,11 @@ export default {
|
|
|
1620
1677
|
}
|
|
1621
1678
|
}
|
|
1622
1679
|
},
|
|
1680
|
+
/**
|
|
1681
|
+
* @vuese
|
|
1682
|
+
*
|
|
1683
|
+
* Force the renderer to resize
|
|
1684
|
+
*/
|
|
1623
1685
|
forceResize: function () {
|
|
1624
1686
|
if (this.$module.zincRenderer) {
|
|
1625
1687
|
this.$module.zincRenderer.onWindowResize();
|
|
@@ -1630,6 +1692,9 @@ export default {
|
|
|
1630
1692
|
if (this.tData.visible) {
|
|
1631
1693
|
this.showRegionTooltip(this.tData.label, true, true);
|
|
1632
1694
|
}
|
|
1695
|
+
//Emit when the scene has been transformed due to navigation,
|
|
1696
|
+
//only triggered during syncControl mode
|
|
1697
|
+
//@arg Information on the navigation
|
|
1633
1698
|
this.$emit("scaffold-navigated", payload);
|
|
1634
1699
|
},
|
|
1635
1700
|
/**
|
|
@@ -2012,13 +2077,25 @@ export default {
|
|
|
2012
2077
|
}
|
|
2013
2078
|
}
|
|
2014
2079
|
|
|
2015
|
-
.select-box {
|
|
2080
|
+
.scaffold-select-box {
|
|
2016
2081
|
border-radius: 4px;
|
|
2017
2082
|
border: 1px solid rgb(144, 147, 153);
|
|
2018
2083
|
background-color: var(--white);
|
|
2019
2084
|
font-weight: 500;
|
|
2020
2085
|
color: rgb(48, 49, 51);
|
|
2021
|
-
|
|
2086
|
+
&.viewing-mode {
|
|
2087
|
+
width: 150px!important;
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
&.speed {
|
|
2091
|
+
margin-left: 8px;
|
|
2092
|
+
width:50px!important;
|
|
2093
|
+
height: 24px;
|
|
2094
|
+
:deep(.el-select__wrapper) {
|
|
2095
|
+
padding: 0;
|
|
2096
|
+
min-height: 24px
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2022
2099
|
}
|
|
2023
2100
|
|
|
2024
2101
|
:deep(.scaffold_viewer_dropdown) {
|
|
@@ -2037,7 +2114,6 @@ export default {
|
|
|
2037
2114
|
</style>
|
|
2038
2115
|
|
|
2039
2116
|
<style lang="scss">
|
|
2040
|
-
|
|
2041
2117
|
.scaffold-container {
|
|
2042
2118
|
--el-color-primary: #8300BF;
|
|
2043
2119
|
--el-color-primary-light-7: #dab3ec;
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
<el-header height="30px" class="header">
|
|
4
4
|
<div>Texture Slides Settings</div>
|
|
5
5
|
</el-header>
|
|
6
|
-
<el-main class="block">
|
|
7
|
-
<el-row v-for="(slide, index) in settings" :key="slide.id">
|
|
8
|
-
<el-col :offset="0" :span="
|
|
6
|
+
<el-main class="slides-block">
|
|
7
|
+
<el-row v-for="(slide, index) in settings" :key="slide.id" class="slide-row">
|
|
8
|
+
<el-col :offset="0" :span="6">
|
|
9
9
|
<el-select
|
|
10
10
|
:teleported="false"
|
|
11
|
-
:value="slide.direction"
|
|
11
|
+
:model-value="slide.direction"
|
|
12
12
|
placeholder="Select"
|
|
13
13
|
class="input-box"
|
|
14
14
|
popper-class="viewer_dropdown"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
/>
|
|
23
23
|
</el-select>
|
|
24
24
|
</el-col>
|
|
25
|
-
<el-col :offset="0" :span="
|
|
25
|
+
<el-col :offset="0" :span="10">
|
|
26
26
|
<el-slider
|
|
27
27
|
v-model="slide.value"
|
|
28
28
|
class="my-slider"
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
@input="modifySlide(slide)"
|
|
34
34
|
/>
|
|
35
35
|
</el-col>
|
|
36
|
-
<el-col :offset="0" :span="
|
|
36
|
+
<el-col :offset="0" :span="6">
|
|
37
37
|
<el-input-number
|
|
38
38
|
v-model="slide.value"
|
|
39
39
|
:step="0.01"
|
|
@@ -43,20 +43,22 @@
|
|
|
43
43
|
class="input-box number-input"
|
|
44
44
|
/>
|
|
45
45
|
</el-col>
|
|
46
|
-
<el-col :offset="
|
|
47
|
-
<
|
|
48
|
-
class="
|
|
46
|
+
<el-col :offset="0" :span="2">
|
|
47
|
+
<el-icon
|
|
48
|
+
class="delete-icon"
|
|
49
49
|
@click="removeSlide(index, slide)"
|
|
50
|
-
|
|
50
|
+
>
|
|
51
|
+
<el-icon-delete />
|
|
52
|
+
</el-icon>
|
|
51
53
|
</el-col>
|
|
52
54
|
</el-row>
|
|
53
55
|
</el-main>
|
|
54
56
|
<el-footer height="30px" class="add-slides-text" @click="addNewSlide">
|
|
55
57
|
<el-row>
|
|
56
58
|
<el-col :span="2">
|
|
57
|
-
<
|
|
59
|
+
<el-icon><el-icon-plus /></el-icon>
|
|
58
60
|
</el-col>
|
|
59
|
-
<el-col :span="
|
|
61
|
+
<el-col :span="20"> Add a new slide </el-col>
|
|
60
62
|
</el-row>
|
|
61
63
|
</el-footer>
|
|
62
64
|
</el-container>
|
|
@@ -64,6 +66,10 @@
|
|
|
64
66
|
|
|
65
67
|
<script>
|
|
66
68
|
/* eslint-disable no-alert, no-console */
|
|
69
|
+
import {
|
|
70
|
+
Delete as ElIconDelete,
|
|
71
|
+
Plus as ElIconPlus,
|
|
72
|
+
} from '@element-plus/icons-vue'
|
|
67
73
|
import {
|
|
68
74
|
ElCol as Col,
|
|
69
75
|
ElContainer as Container,
|
|
@@ -91,6 +97,8 @@ export default {
|
|
|
91
97
|
Main,
|
|
92
98
|
Row,
|
|
93
99
|
Slider,
|
|
100
|
+
ElIconDelete,
|
|
101
|
+
ElIconPlus,
|
|
94
102
|
},
|
|
95
103
|
data: function () {
|
|
96
104
|
return {
|
|
@@ -111,13 +119,6 @@ export default {
|
|
|
111
119
|
],
|
|
112
120
|
};
|
|
113
121
|
},
|
|
114
|
-
watch: {
|
|
115
|
-
settings: function () {
|
|
116
|
-
if (this.material && this._zincObject) {
|
|
117
|
-
this._zincObject.setAlpha(this.material.opacity);
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
122
|
mounted: function () {
|
|
122
123
|
this._zincObject = undefined;
|
|
123
124
|
},
|
|
@@ -143,6 +144,7 @@ export default {
|
|
|
143
144
|
}
|
|
144
145
|
},
|
|
145
146
|
modifySlide: function (slide) {
|
|
147
|
+
console.log(slide.value)
|
|
146
148
|
if (slide) {
|
|
147
149
|
this._zincObject.modifySlideSettings(slide);
|
|
148
150
|
}
|
|
@@ -173,13 +175,11 @@ export default {
|
|
|
173
175
|
font-size: 12px;
|
|
174
176
|
cursor: pointer;
|
|
175
177
|
pointer-events: auto;
|
|
178
|
+
direction:ltr;
|
|
176
179
|
}
|
|
177
180
|
|
|
178
|
-
.
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
.block {
|
|
181
|
+
.slides-block {
|
|
182
|
+
direction:rtl;
|
|
183
183
|
pointer-events: auto;
|
|
184
184
|
&.el-main {
|
|
185
185
|
padding: 5px;
|
|
@@ -194,15 +194,17 @@ export default {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
+
#scroll div{
|
|
198
|
+
direction:ltr;
|
|
199
|
+
}
|
|
200
|
+
|
|
197
201
|
.my-slider {
|
|
198
|
-
width: 109px;
|
|
199
202
|
top: -6px;
|
|
200
|
-
left: 50px;
|
|
201
203
|
position: relative;
|
|
202
204
|
}
|
|
203
205
|
|
|
204
206
|
.t-slides-container {
|
|
205
|
-
width:
|
|
207
|
+
width: 250px;
|
|
206
208
|
height: 250px;
|
|
207
209
|
border-radius: 4px;
|
|
208
210
|
border: solid 1px #d8dce6;
|
|
@@ -210,54 +212,54 @@ export default {
|
|
|
210
212
|
overflow-y: none;
|
|
211
213
|
}
|
|
212
214
|
|
|
213
|
-
:deep(.el-slider__bar) {
|
|
214
|
-
background-color: $app-primary-color;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
215
|
.input-box {
|
|
218
|
-
width:
|
|
216
|
+
width: 38px;
|
|
219
217
|
border-radius: 4px;
|
|
220
218
|
border: 1px solid rgb(144, 147, 153);
|
|
221
219
|
background-color: var(--white);
|
|
222
220
|
font-weight: 500;
|
|
223
221
|
color: rgb(48, 49, 51);
|
|
224
222
|
margin-left: 8px;
|
|
223
|
+
height: 24px;
|
|
225
224
|
|
|
226
225
|
&.number-input {
|
|
227
226
|
width: 42px;
|
|
228
|
-
:deep(.el-
|
|
227
|
+
:deep(.el-input__wrapper) {
|
|
229
228
|
padding-left: 0px;
|
|
230
229
|
padding-right: 0px;
|
|
231
230
|
}
|
|
232
231
|
}
|
|
233
232
|
|
|
234
|
-
:deep(.el-
|
|
233
|
+
:deep(.el-select__wrapper) {
|
|
234
|
+
height: 24px;
|
|
235
|
+
padding: 0;
|
|
236
|
+
min-height: unset;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
:deep(.el-select__selection) {
|
|
235
240
|
color: $app-primary-color;
|
|
236
241
|
height: 22px;
|
|
237
|
-
padding-left:
|
|
242
|
+
padding-left: 4px;
|
|
238
243
|
padding-right: 8px;
|
|
239
244
|
border: none;
|
|
240
245
|
font-family: "Asap", sans-serif;
|
|
241
246
|
line-height: 22px;
|
|
242
247
|
}
|
|
243
248
|
|
|
244
|
-
:deep(.el-
|
|
245
|
-
:deep(.el-
|
|
249
|
+
:deep(.el-select__suffix),
|
|
250
|
+
:deep(.el-icon) {
|
|
246
251
|
line-height: 22px;
|
|
247
252
|
}
|
|
248
|
-
|
|
249
|
-
.viewer_dropdown .el-select-dropdown__item {
|
|
250
|
-
white-space: nowrap;
|
|
251
|
-
color: $app-primary-color;
|
|
252
|
-
text-align: left;
|
|
253
|
-
font-family: "Asap", sans-serif;
|
|
254
|
-
}
|
|
255
253
|
}
|
|
256
254
|
|
|
257
|
-
.
|
|
255
|
+
.delete-icon {
|
|
258
256
|
color: $app-primary-color;
|
|
259
257
|
top: 2px;
|
|
260
258
|
position: relative;
|
|
261
259
|
cursor: pointer;
|
|
262
260
|
}
|
|
261
|
+
|
|
262
|
+
.slide-row {
|
|
263
|
+
direction:ltr;
|
|
264
|
+
}
|
|
263
265
|
</style>
|
package/src/components.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ declare module 'vue' {
|
|
|
16
16
|
ElIcon: typeof import('element-plus/es')['ElIcon']
|
|
17
17
|
ElIconArrowLeft: typeof import('@element-plus/icons-vue')['ArrowLeft']
|
|
18
18
|
ElIconArrowRight: typeof import('@element-plus/icons-vue')['ArrowRight']
|
|
19
|
+
ElIconDelete: typeof import('@element-plus/icons-vue')['Delete']
|
|
20
|
+
ElIconPlus: typeof import('@element-plus/icons-vue')['Plus']
|
|
19
21
|
ElIconWarningFilled: typeof import('@element-plus/icons-vue')['WarningFilled']
|
|
20
22
|
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
|
21
23
|
ElMain: typeof import('element-plus/es')['ElMain']
|