沙盘设备

dev_xd
haha 2025-06-11 00:32:57 +08:00
parent d21d683289
commit 6b33efbbc6
14 changed files with 125 additions and 6 deletions

View File

@ -221,7 +221,7 @@
</div> </div>
<script type="module" src="/src/main.js"></script> <script type="module" src="/src/main.js"></script>
<script> <script>
window.document.body.title = window.yanzhuAppTitle; window.document.title = window.yanzhuAppTitle;
</script> </script>
</body> </body>
</html> </html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64"><defs><radialGradient id="a" cx="32" cy="32" r="32" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1DF9FC" stop-opacity="0"/><stop offset="1" stop-color="#1DF9FC"/></radialGradient><radialGradient id="b" cy="32" r="20" xlink:href="#a"/></defs><g data-name="图层 2"><g data-name="图层 1"><circle cx="32" cy="32" r="6" style="fill:url(#a);opacity:1"><animate attributeName="r" from="6" to="32" begin="0s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="0s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:url(#b);opacity:1"><animate attributeName="r" from="6" to="32" begin="1s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="1s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:#1df9fc"/></g></g></svg>

After

Width:  |  Height:  |  Size: 984 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64"><defs><radialGradient id="a" cx="32" cy="32" r="32" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2AD771" stop-opacity="0"/><stop offset="1" stop-color="#2AD771"/></radialGradient><radialGradient id="b" cy="32" r="20" xlink:href="#a"/></defs><g data-name="图层 2"><g data-name="图层 1"><circle cx="32" cy="32" r="6" style="fill:url(#a);opacity:1"><animate attributeName="r" from="6" to="32" begin="0s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="0s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:url(#b);opacity:1"><animate attributeName="r" from="6" to="32" begin="1s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="1s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:#2ad771"/></g></g></svg>

After

Width:  |  Height:  |  Size: 984 B

View File

@ -0,0 +1 @@
<svg class="icon" style="width: 1.0400390625em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1065 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7908"><path d="M0 1024V250.6656h101.978163a623.725473 623.725473 0 0 0-5.774667 85.596129c0 285.33408 194.290925 517.180818 433.468623 517.180818s433.448146-231.273367 433.448147-517.180818a641.807143 641.807143 0 0 0-5.75419-85.596129h101.281926v773.3344z m379.592209-250.542735a219.212095 219.212095 0 0 1-105.295525-24.962124 200.41371 200.41371 0 0 1-16.054393-80.968204 198.181658 198.181658 0 0 0 16.054393 80.968204c-51.193857-83.609807-27.910891-215.710435 69.726033-303.743391l106.954206-101.240971a29.323841 29.323841 0 0 1 37.187217 0l69.746511 52.873015v4.402672c-32.538815 35.200896-67.412071 83.630284-92.988522 114.448986s-18.614086 44.026717-4.668879 57.214254a36.675279 36.675279 0 0 0 46.504499 4.402672l13.945207-8.805344a1190.707675 1190.707675 0 0 0 120.817502-88.053433h4.648402l55.821781 66.040075a25.658361 25.658361 0 0 1 0 35.221373l-106.954205 101.220494a311.258649 311.258649 0 0 1-215.50566 90.981722z m78.920449-221.157461c-2.313962-12.675599-1.33104-15.41959 10.50498-30.122465a191.731232 191.731232 0 0 1 23.876815-24.573052s23.221533-26.41603 37.187217-39.624045a984.335 984.335 0 0 1 93.008999-101.240971l186.017998-145.390553 4.627925-4.382194 4.259328-4.095509a90.387873 90.387873 0 0 1 0.389074-31.16682s7.146662-46.893573 18.614086-107.650441v-6.798545l2.293485-6.593768 0.901012-2.559693 1.433428-6.470904c0.143343-0.675759 0.307163-1.310563 0.430028-2.047754H841.627005c0-3.194497 0-4.095509 1.822501-6.040875 0.880534-3.74739 1.802024-7.597168 2.805423-11.528857 0-4.423149 4.689357-8.825821 4.689358-13.208015a9.74731 9.74731 0 0 1 9.276327-8.825821 16.648242 16.648242 0 0 1 9.317281 4.402672 15.66532 15.66532 0 0 1 4.648403 13.228493l-4.648403 17.590209a443.707395 443.707395 0 0 0-27.91089 105.66412 88.811103 88.811103 0 0 1-4.8327 26.41603 13.719954 13.719954 0 0 1-1.781547 5.549414l-2.682558 7.658601a19.924649 19.924649 0 0 0 4.66888 26.436508l9.296804 13.187537a22.791505 22.791505 0 0 0 27.931369 4.402672 77.814662 77.814662 0 0 1 41.815142-13.208015 510.91469 510.91469 0 0 0 111.623085-26.41603l18.593609-8.825821a17.692597 17.692597 0 0 1 13.945206 4.361717c4.648402 4.423149 4.648402 4.423149 4.648403 8.825821a9.767788 9.767788 0 0 1-9.296805 8.82582 467.563732 467.563732 0 0 1-134.865096 35.200896 101.302404 101.302404 0 0 0-51.193857 17.610687l-4.689357 4.402672c0 4.402672-4.648402 4.402672-9.296804 8.784866l-162.75551 154.093508c-55.821781 48.429388-84.387953 68.825021-132.366836 105.664121a302.658081 302.658081 0 0 1-59.630604 41.671799c-8.191017 3.849778-10.648322 6.716634-17.569732 6.716634a28.66856 28.66856 0 0 1-24.777826-20.047514zM892.779906 61.739791v-4.382194c0-4.402672 4.66888-8.825821 4.66888-13.228492L906.745591 17.713074h4.689357a964.16462 964.16462 0 0 1 139.472543 132.080151v4.382194l-27.890413 8.805343c-4.66888 4.402672-9.317282 4.402672-18.614086 4.402672a1235.348718 1235.348718 0 0 0-111.623086-105.643643z m-53.487341-10.99644z" p-id="7909"></path></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,2 @@
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5537" data-spm-anchor-id="a313x.search_index.i1.i2.30073a81HnVMdv">
<path d="M768 42.666667H256C209.066667 42.666667 170.666667 81.066667 170.666667 128v682.666667c0 46.933333 38.4 85.333333 85.333333 85.333333v42.666667c0 23.466667 19.2 42.666667 42.666667 42.666666h85.333333c23.466667 0 42.666667-19.2 42.666667-42.666666v-42.666667h170.666666v42.666667c0 23.466667 19.2 42.666667 42.666667 42.666666h85.333333c23.466667 0 42.666667-19.2 42.666667-42.666666v-42.666667c46.933333 0 85.333333-38.4 85.333333-85.333333V128c0-46.933333-38.4-85.333333-85.333333-85.333333zM309.333333 170.666667h405.333334c17.066667 0 32 14.933333 32 32s-14.933333 32-32 32h-405.333334c-17.066667 0-32-14.933333-32-32S292.266667 170.666667 309.333333 170.666667z m0 554.666666c17.066667 0 32 14.933333 32 32s-14.933333 32-32 32-32-14.933333-32-32 14.933333-32 32-32z m106.666667 64c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32z m106.666667 0c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32z m-42.666667-115.2c-8.533333 12.8-25.6 8.533333-23.466667-6.4L469.333333 512h-72.533333c-14.933333 0-23.466667-17.066667-12.8-29.866667l136.533333-172.8c8.533333-12.8 25.6-8.533333 23.466667 6.4l-14.933333 155.733334h72.533333c14.933333 0 23.466667 17.066667 12.8 29.866666l-134.4 172.8z" p-id="5538"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64"><defs><radialGradient id="a" cx="32" cy="32" r="32" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f30" stop-opacity="0"/><stop offset="1" stop-color="#f30"/></radialGradient><radialGradient id="b" cy="32" r="20" xlink:href="#a"/></defs><g data-name="图层 2"><g data-name="图层 1"><circle cx="32" cy="32" r="6" style="fill:url(#a);opacity:1"><animate attributeName="r" from="6" to="32" begin="0s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="0s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:url(#b);opacity:1"><animate attributeName="r" from="6" to="32" begin="1s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="1s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:#f30"/></g></g></svg>

After

Width:  |  Height:  |  Size: 975 B

View File

@ -0,0 +1,3 @@
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3533">
<path d="M905.5 363.9L357.2 143l-199 108.5v64.2h-65V212.9l260.4-142 577.2 233.2zM502.7 953.1H249.8V504.3h65v383.8h123V504.3h64.9zM835.7 777c-52.4 0-95.1-42.7-95.1-95.1 0-17.9 14.5-32.5 32.5-32.5s32.5 14.5 32.5 32.5c0 16.7 13.5 30.2 30.2 30.2s30.2-13.5 30.2-30.2-13.5-30.2-30.2-30.2h-32.5l-3.9-32.5V503.7c0-17.9 14.5-32.5 32.5-32.5 17.9 0 32.5 14.5 32.5 32.5v88.1c39.5 12.7 66.6 48.3 66.6 90.1-0.2 52.4-42.9 95.1-95.3 95.1z" p-id="3534"></path>
<path d="M855.9 536.1H168.1c-41.3 0-74.9-33.6-74.9-74.9V304.1h837.6v157.1c0 41.4-33.6 74.9-74.9 74.9z m-697.7-167v92.2c0 5.5 4.5 9.9 10 9.9H856c5.5 0 10-4.4 10-9.9v-92.2H158.2zM177.2 888.1h412.1V953H177.2z" p-id="3535"></path></svg>

After

Width:  |  Height:  |  Size: 873 B

View File

@ -0,0 +1,4 @@
<svg class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1709">
<path fill="#fff" d="M902.4 678.4L870.4 768c-2.133333 6.4-8.533333 10.666667-14.933333 6.4L55.466667 484.266667c-12.8 32 4.266667 70.4 38.4 81.066666L298.666667 640l-14.933334 42.666667c-4.266667 12.8-14.933333 21.333333-29.866666 21.333333H106.666667v-53.333333c0-17.066667-14.933333-32-32-32S42.666667 633.6 42.666667 650.666667v170.666666c0 17.066667 14.933333 32 32 32S106.666667 838.4 106.666667 821.333333V768h151.466666c36.266667 0 70.4-23.466667 81.066667-57.6l17.066667-49.066667 488.533333 179.2c32 12.8 68.266667-4.266667 81.066667-38.4l14.933333-40.533333c10.666667-34.133333-6.4-70.4-38.4-83.2zM951.466667 407.466667L253.866667 153.6c-44.8-17.066667-93.866667 6.4-110.933334 51.2L85.333333 364.8c-17.066667 44.8 6.4 93.866667 51.2 108.8L714.666667 682.666667c32 12.8 70.4 2.133333 93.866666-23.466667l164.266667-183.466667c17.066667-21.333333 8.533333-57.6-21.333333-68.266666z" p-id="1710">
</path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64"><defs><radialGradient id="a" cx="32" cy="32" r="32" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#FEC03D" stop-opacity="0"/><stop offset="1" stop-color="#FEC03D"/></radialGradient><radialGradient id="b" cy="32" r="20" xlink:href="#a"/></defs><g data-name="图层 2"><g data-name="图层 1"><circle cx="32" cy="32" r="6" style="fill:url(#a);opacity:1"><animate attributeName="r" from="6" to="32" begin="0s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="0s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:url(#b);opacity:1"><animate attributeName="r" from="6" to="32" begin="1s" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" from="1" to="0" begin="1s" dur="2s" repeatCount="indefinite"/></circle><circle cx="32" cy="32" r="6" style="fill:#fec03d"/></g></g></svg>

After

Width:  |  Height:  |  Size: 984 B

View File

@ -0,0 +1 @@
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="764"><path d="M537.6 128c96 6.4 185.6 44.8 249.6 108.8s102.4 153.6 108.8 249.6h89.6c12.8 0 25.6 12.8 25.6 25.6s-12.8 25.6-25.6 25.6H896c-6.4 96-44.8 185.6-108.8 249.6S640 889.6 537.6 896v89.6c0 12.8-12.8 25.6-25.6 25.6s-25.6-12.8-25.6-25.6V896c-96-6.4-185.6-44.8-249.6-108.8S134.4 640 128 537.6H38.4C25.6 537.6 19.2 524.8 19.2 512s12.8-25.6 25.6-25.6H128c6.4-96 44.8-185.6 108.8-249.6S390.4 134.4 486.4 128V38.4c0-12.8 12.8-25.6 25.6-25.6s25.6 12.8 25.6 25.6V128zM512 473.6c19.2 0 38.4 19.2 38.4 38.4s-19.2 38.4-38.4 38.4-38.4-19.2-38.4-38.4 19.2-38.4 38.4-38.4z m0-147.2c51.2 0 96 19.2 128 51.2s51.2 76.8 51.2 128-19.2 96-51.2 128-76.8 51.2-128 51.2-96-19.2-128-51.2c-32-25.6-57.6-70.4-57.6-121.6 0-51.2 19.2-96 51.2-128 38.4-32 83.2-57.6 134.4-57.6z m96 89.6c-25.6-25.6-57.6-38.4-96-38.4s-70.4 12.8-96 38.4c-25.6 25.6-38.4 57.6-38.4 96s12.8 70.4 38.4 96c25.6 25.6 57.6 38.4 96 38.4s70.4-12.8 96-38.4c25.6-25.6 38.4-57.6 38.4-96s-12.8-70.4-38.4-96z m121.6-121.6c-57.6-51.2-134.4-89.6-217.6-89.6-83.2 0-160 32-217.6 89.6-51.2 57.6-89.6 134.4-89.6 217.6 0 83.2 32 160 89.6 217.6 57.6 57.6 128 89.6 217.6 89.6 83.2 0 160-32 217.6-89.6 57.6-57.6 89.6-134.4 89.6-217.6 0-83.2-38.4-160-89.6-217.6z" p-id="765"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,6 @@
export default {
video: `<svg class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1709">
<path d="M902.4 678.4L870.4 768c-2.133333 6.4-8.533333 10.666667-14.933333 6.4L55.466667 484.266667c-12.8 32 4.266667 70.4 38.4 81.066666L298.666667 640l-14.933334 42.666667c-4.266667 12.8-14.933333 21.333333-29.866666 21.333333H106.666667v-53.333333c0-17.066667-14.933333-32-32-32S42.666667 633.6 42.666667 650.666667v170.666666c0 17.066667 14.933333 32 32 32S106.666667 838.4 106.666667 821.333333V768h151.466666c36.266667 0 70.4-23.466667 81.066667-57.6l17.066667-49.066667 488.533333 179.2c32 12.8 68.266667-4.266667 81.066667-38.4l14.933333-40.533333c10.666667-34.133333-6.4-70.4-38.4-83.2zM951.466667 407.466667L253.866667 153.6c-44.8-17.066667-93.866667 6.4-110.933334 51.2L85.333333 364.8c-17.066667 44.8 6.4 93.866667 51.2 108.8L714.666667 682.666667c32 12.8 70.4 2.133333 93.866666-23.466667l164.266667-183.466667c17.066667-21.333333 8.533333-57.6-21.333333-68.266666z" p-id="1710">
</path></svg>`,
};

View File

@ -77,6 +77,12 @@
<svg-icon icon-class="power" v-if="activeMenu == 4" /> <svg-icon icon-class="power" v-if="activeMenu == 4" />
{{ item.name }} {{ item.name }}
</div> </div>
<el-switch v-model="item.show" size="small" />
<svg-icon
icon-class="position"
class="guide"
@click="getPosition(item, index)"
/>
</div> </div>
</div> </div>
</div> </div>
@ -86,8 +92,10 @@
<script> <script>
import useUserStore from "@/store/modules/user"; import useUserStore from "@/store/modules/user";
import { listBimModel } from "@/api/bim/bimModel"; import { listBimModel } from "@/api/bim/bimModel";
import { ElMessage, ElMessageBox } from "element-plus";
import { emitter } from "@/router/index.js"; import { emitter } from "@/router/index.js";
import { devicePositionGet } from "@/api/bim/bim.js"; import { devicePositionGet } from "@/api/bim/bim.js";
import icons from "./icons.js";
export default { export default {
name: "SandTableSetting", name: "SandTableSetting",
components: { components: {
@ -102,9 +110,14 @@ export default {
activeMenu: 0, activeMenu: 0,
title: "", title: "",
devices: [], devices: [],
positionByModalId: "",
selItem: null,
iconVideo: "",
}; };
}, },
created() { created() {
this.iconVideo = icons["video"];
console.log("SandTableSetting", this.iconVideo);
emitter.on("routeChanged", ({ to, from }) => { emitter.on("routeChanged", ({ to, from }) => {
if (to.name === "SandTableSetting") { if (to.name === "SandTableSetting") {
this.initEngine(); this.initEngine();
@ -124,6 +137,67 @@ export default {
this.initEngine(); this.initEngine();
}, },
methods: { methods: {
AddLable: function (e, t) {
let html = `<style>
.sp-svg svg{widht: 16px;height: 16px;fill: #ffffff; }
.tag-box{position: relative}
.tag-txt{position: absolute;top:30%;left: 50%;transform: translate(-50%, -50%);
text-align: center;color: #ffffff;}</style>
<div class='tag-box'>
<img src='images/2.png' alt=''>
<span class='tag-txt' style='color:#ffffff;font-size:14px'>
<img src='images/videoMonitor.svg'>
${this.selItem.name}</span></div>`;
console.log(html);
window.sandSettingApi.Label.addBalloon({
Html: html,
ID: this.selItem.elId,
Pivot: "2",
Position: t,
Title: this.selItem.name,
MaxDistance: 1e6,
// ID: e,
// Position: t,
// Html: `<div><img src='images/red.svg' style='width: 20px; height: 20px'> ${this.selItem.name}</div>`,
// Pivot: 8,
// onClick: function (e) {
// console.log(e);
// },
});
},
getPosition(item, index) {
this.selItem = item;
window.sandSettingApi && window.sandSettingApi.Public.clearHandler();
ElMessage.info("请在场景中拾取坐标位置");
window.sandSettingApi.Label.removeBalloon(item.elId);
window.sandSettingApi.Public.event("LEFT_CLICK", (e) => {
window.sandSettingApi.Feature.getByPosition([e.x, e.y], (n) => {
if (n && n["id"]) {
this.positionByModalId = n.id.split("^")[0];
window.sandSettingApi.Public.pickupCoordinate(true, (e) => {
this.AddLable("position_label", e);
window.sandSettingApi.Public.clearHandler();
});
} else {
ElMessage.warning("请在模型上选点!");
}
});
});
// window.sandSettingApi.Public.event("LEFT_CLICK", (function(e) {
// window.sandSettingApi.Feature.getByEvent(e.position, n=> {
// this.positionByModalId = n.id.split("^")[0];
// window.sandSettingApi.Public.pickupCoordinate(e.position, (function(e) {
// window.sandSettingApi.Lable.DeleteCustomLabel("position_label"),
// this.AddLable("position_label", e)
// }
// ))) : ElMessage.warning("")
// }
// ), !1)
// }
// ))
},
doToolsClose() { doToolsClose() {
this.activeMenu = 0; this.activeMenu = 0;
this.resetScene(); this.resetScene();
@ -154,9 +228,14 @@ export default {
}, },
loadPoisionData() { loadPoisionData() {
devicePositionGet({ projectId: this.currentPrjId }).then((d) => { devicePositionGet({ projectId: this.currentPrjId }).then((d) => {
this.devices = (d.data || []).filter( let cnt = 0;
(item) => item.deviceType == this.activeMenu this.devices = (d.data || [])
); .filter((item) => item.deviceType == this.activeMenu)
.map((item) => {
item.show = item.enabled != 0;
item.elId = (item.id ? item.id : cnt++) + "-" + item.deviceType;
return item;
});
}); });
}, },
initEngine() { initEngine() {
@ -321,6 +400,25 @@ export default {
right: 10px; right: 10px;
cursor: pointer; cursor: pointer;
} }
.device-list {
padding: 0px 10px;
.device-item {
display: flex;
align-items: center;
.device-name {
flex-grow: 1;
font-size: 12px;
.svg-icon {
fill: #19849f;
}
}
.guide {
cursor: pointer;
color: #409eff;
margin: 10px;
}
}
}
} }
} }
</style> </style>

View File

@ -39,8 +39,8 @@ export default defineConfig(({ mode, command }) => {
}, },
// https://cn.vitejs.dev/config/#server-proxy // https://cn.vitejs.dev/config/#server-proxy
"/dev-api": { "/dev-api": {
//target: "http://localhost:8080", target: "http://localhost:8080",
target: "http://62.234.3.186/prod-api/", //target: "http://62.234.3.186/prod-api/",
changeOrigin: true, changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""), rewrite: (p) => p.replace(/^\/dev-api/, ""),
}, },