fix: 註記依部屬需求切換本地開發或 Docker 兩種 URL 設定
This commit is contained in:
parent
9e9d67dfcd
commit
2f1f5059d6
@ -1 +1 @@
|
|||||||
1.0.1-2510091042
|
1.0.2-2510091649
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
// graph
|
// 本地開發 BASEURL
|
||||||
const BASEURL = import.meta.env.VITE_API_BASEURL;
|
// const BASEURL = import.meta.env.VITE_API_BASEURL;
|
||||||
|
// docker 部屬 BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const BASEURL = window.env?.VITE_API_BASEURL;
|
||||||
|
|
||||||
export const GET_GRAPH_SIDEBAR_API = `/GraphManage/GraphManageTreeList`;
|
export const GET_GRAPH_SIDEBAR_API = `/GraphManage/GraphManageTreeList`;
|
||||||
|
|
||||||
export const UPDATE_GRAPH_SIDEBAR_API = `/GraphManage/EditGraphManageTree`;
|
export const UPDATE_GRAPH_SIDEBAR_API = `/GraphManage/EditGraphManageTree`;
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
// history
|
// history
|
||||||
const BASEURL = import.meta.env.VITE_API_BASEURL;
|
// 本地開發 BASEURL
|
||||||
|
// const BASEURL = import.meta.env.VITE_API_BASEURL;
|
||||||
|
// docker 部屬 BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const BASEURL = window.env?.VITE_API_BASEURL;
|
||||||
|
|
||||||
export const GET_HISTORY_SIDEBAR_API = `/api/History/GetDeviceInfo`;
|
export const GET_HISTORY_SIDEBAR_API = `/api/History/GetDeviceInfo`;
|
||||||
export const GET_HISTORY_POINT_API = `/api/History/GetAllDevPoi`;
|
export const GET_HISTORY_POINT_API = `/api/History/GetAllDevPoi`;
|
||||||
export const GET_HISTORY_DATA_API = `/api/History/GetHistoryData`;
|
export const GET_HISTORY_DATA_API = `/api/History/GetHistoryData`;
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, onUnmounted } from "vue";
|
import { ref, onMounted, onUnmounted } from "vue";
|
||||||
|
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const forgeDom = ref(null);
|
const forgeDom = ref(null);
|
||||||
let viewer = null;
|
let viewer = null;
|
||||||
|
@ -164,7 +164,10 @@ const initForge = async () => {
|
|||||||
// });
|
// });
|
||||||
// });
|
// });
|
||||||
// });
|
// });
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const viewer = await initViewer(forgeDom.value)
|
const viewer = await initViewer(forgeDom.value)
|
||||||
const filePath = `${FILE_BASEURL}/upload/forge/0.svf`;
|
const filePath = `${FILE_BASEURL}/upload/forge/0.svf`;
|
||||||
await loadModel(viewer, filePath)
|
await loadModel(viewer, filePath)
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
const BASEURL = import.meta.env.VITE_API_BASEURL;
|
// 本地開發 BASEURL
|
||||||
|
// const BASEURL = import.meta.env.VITE_API_BASEURL;
|
||||||
|
// docker 部屬 BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const BASEURL = window.env?.VITE_API_BASEURL;;
|
||||||
|
|
||||||
export const POST_LOGIN = `${BASEURL}/api/Login/`;
|
export const POST_LOGIN = `${BASEURL}/api/Login/`;
|
||||||
export const GET_AUTHPAGE_API = `${BASEURL}/api/GetUsrFroList`;
|
export const GET_AUTHPAGE_API = `${BASEURL}/api/GetUsrFroList`;
|
||||||
export const GET_SUBAUTHPAGE_API = `${BASEURL}/api/Device/GetMainSub`;
|
export const GET_SUBAUTHPAGE_API = `${BASEURL}/api/Device/GetMainSub`;
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
const BASEURL = import.meta.env.VITE_API_BASEURL;
|
// 本地開發 BASEURL
|
||||||
|
// const BASEURL = import.meta.env.VITE_API_BASEURL;
|
||||||
|
// docker 部屬 BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const BASEURL = window.env?.VITE_API_BASEURL;;
|
||||||
|
|
||||||
export const GET_FORGETOKEN_API = `${BASEURL}/api/forge/oauth/token`;
|
export const GET_FORGETOKEN_API = `${BASEURL}/api/forge/oauth/token`;
|
||||||
|
|
||||||
export const GET_FORGEURN_API = `${BASEURL}/api/Device/GetBuild`;
|
export const GET_FORGEURN_API = `${BASEURL}/api/Device/GetBuild`;
|
||||||
|
Binary file not shown.
@ -5,7 +5,10 @@ import System from "@/views/system/System.vue";
|
|||||||
import SystemFloor from "@/views/system/SystemFloor.vue";
|
import SystemFloor from "@/views/system/SystemFloor.vue";
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHashHistory(import.meta.env.BASE_URL),
|
// 本地開發 BASE_URL
|
||||||
|
// history: createWebHashHistory(import.meta.env.BASE_URL),
|
||||||
|
// docker 部屬 BASE_URL (兩者視部屬方式擇一保留)
|
||||||
|
history: createWebHashHistory(window.env?.BASE_URL),
|
||||||
routes: [
|
routes: [
|
||||||
{
|
{
|
||||||
path: "/login",
|
path: "/login",
|
||||||
|
@ -11,9 +11,10 @@ const useHeatmapBarStore = defineStore("heatmap", () => {
|
|||||||
|
|
||||||
const getConfig = async () => {
|
const getConfig = async () => {
|
||||||
const api =
|
const api =
|
||||||
import.meta.env.MODE === "production"
|
// 本地開發 MODE
|
||||||
? "/dist/config.json"
|
// import.meta.env.MODE === "production"
|
||||||
: "/config.json";
|
// docker 部屬 MODE (兩者視部屬方式擇一保留)
|
||||||
|
window.env?.MODE === "production" ? "/dist/config.json" : "/config.json";
|
||||||
const res = await axios.get(api);
|
const res = await axios.get(api);
|
||||||
console.log(res);
|
console.log(res);
|
||||||
allHeatMaps.value = res.data.heatmap;
|
allHeatMaps.value = res.data.heatmap;
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
const BASEURL = import.meta.env.VITE_API_BASEURL;
|
// 本地開發 BASEURL
|
||||||
|
// const BASEURL = import.meta.env.VITE_API_BASEURL;
|
||||||
|
// docker 部屬 BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const BASEURL = window.env?.VITE_API_BASEURL;;
|
||||||
|
|
||||||
export default function downloadExcel(res) {
|
export default function downloadExcel(res) {
|
||||||
let disposition = res.headers.get("Content-Disposition");
|
let disposition = res.headers.get("Content-Disposition");
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
import useGetCookie from "@/hooks/useGetCookie";
|
import useGetCookie from "@/hooks/useGetCookie";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
const BASEURL = import.meta.env.VITE_API_BASEURL;
|
// 本地開發 BASEURL
|
||||||
|
// const BASEURL = import.meta.env.VITE_API_BASEURL;
|
||||||
|
// docker 部屬 BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const BASEURL = window.env?.VITE_API_BASEURL;;
|
||||||
|
|
||||||
const instance = axios.create({
|
const instance = axios.create({
|
||||||
baseURL: BASEURL,
|
baseURL: BASEURL,
|
||||||
|
@ -10,7 +10,10 @@ import { useI18n } from "vue-i18n";
|
|||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { openToast, cancelToastOpen } = inject("app_toast");
|
const { openToast, cancelToastOpen } = inject("app_toast");
|
||||||
const { companyOptions, departmentList, floors } = inject("asset_modal_options");
|
const { companyOptions, departmentList, floors } = inject("asset_modal_options");
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { searchParams, changeParams } = useSearchParam();
|
const { searchParams, changeParams } = useSearchParam();
|
||||||
|
|
||||||
const totalCoordinates = ref({});
|
const totalCoordinates = ref({});
|
||||||
|
@ -10,7 +10,10 @@ import useUserInfoStore from "@/stores/useUserInfoStore";
|
|||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { searchParams, changeParams } = useSearchParam();
|
const { searchParams, changeParams } = useSearchParam();
|
||||||
const { updateLeftFields, formErrorMsg, formState } = inject(
|
const { updateLeftFields, formErrorMsg, formState } = inject(
|
||||||
"asset_table_modal_form"
|
"asset_table_modal_form"
|
||||||
|
@ -4,7 +4,10 @@ import { ref, computed, inject, watch, onMounted } from "vue";
|
|||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import Menu from "@/components/customUI/Menu.vue";
|
import Menu from "@/components/customUI/Menu.vue";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { formState } = inject("asset_table_modal_form");
|
const { formState } = inject("asset_table_modal_form");
|
||||||
const columns = computed(() => [
|
const columns = computed(() => [
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,10 @@ import { twMerge } from "tailwind-merge";
|
|||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { totalCoordinates } = inject("asset_table_data");
|
const { totalCoordinates } = inject("asset_table_data");
|
||||||
const { floors } = inject("asset_modal_options");
|
const { floors } = inject("asset_modal_options");
|
||||||
const { updateRightFields, formErrorMsg, formState } = inject(
|
const { updateRightFields, formErrorMsg, formState } = inject(
|
||||||
|
@ -7,7 +7,10 @@ import "yup-phone-lite";
|
|||||||
import useFormErrorMessage from "@/hooks/useFormErrorMessage";
|
import useFormErrorMessage from "@/hooks/useFormErrorMessage";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
editRecord: Object,
|
editRecord: Object,
|
||||||
|
@ -13,10 +13,13 @@ import DashboardRefrig from "./components/DashboardRefrig.vue";
|
|||||||
import { computed, inject, ref, watch, onMounted, onUnmounted } from "vue";
|
import { computed, inject, ref, watch, onMounted, onUnmounted } from "vue";
|
||||||
import useBuildingStore from "@/stores/useBuildingStore";
|
import useBuildingStore from "@/stores/useBuildingStore";
|
||||||
import { getSystemDevices, getSystemRealTime } from "@/apis/system";
|
import { getSystemDevices, getSystemRealTime } from "@/apis/system";
|
||||||
// ⭐ 新增:引入 getSystemConfig
|
// 引入 getSystemConfig
|
||||||
import { getSystemConfig } from "@/apis/system";
|
import { getSystemConfig } from "@/apis/system";
|
||||||
|
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const buildingStore = useBuildingStore();
|
const buildingStore = useBuildingStore();
|
||||||
|
|
||||||
const subscribeData = ref([]);
|
const subscribeData = ref([]);
|
||||||
@ -26,10 +29,10 @@ let intervalId = null;
|
|||||||
const productVisible = ref(false);
|
const productVisible = ref(false);
|
||||||
const productCompleteVisible = ref(false);
|
const productCompleteVisible = ref(false);
|
||||||
|
|
||||||
// ⭐ 新增:冷凍空調卡片顯示狀態(預設 false)
|
// 冷凍空調卡片顯示狀態(預設 false)
|
||||||
const showRefrigeration = ref(false);
|
const showRefrigeration = ref(false);
|
||||||
|
|
||||||
// ⭐ 新增:讀取系統配置
|
// 讀取系統配置
|
||||||
const loadSystemConfig = async () => {
|
const loadSystemConfig = async () => {
|
||||||
const building_guid = buildingStore.selectedBuilding?.building_guid;
|
const building_guid = buildingStore.selectedBuilding?.building_guid;
|
||||||
if (!building_guid) {
|
if (!building_guid) {
|
||||||
@ -38,17 +41,15 @@ const loadSystemConfig = async () => {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await getSystemConfig(building_guid);
|
const res = await getSystemConfig(building_guid);
|
||||||
// 你的 apiHandler 可能回傳 { data, code, msg } 或直接回 data,兩者都兼容:
|
|
||||||
const data = res?.data ?? res;
|
const data = res?.data ?? res;
|
||||||
showRefrigeration.value = !!data?.show_refrigeration;
|
showRefrigeration.value = !!data?.show_refrigeration;
|
||||||
// 若未來還要控制其他區塊(如 show_room、show_production_indicator),也可一併在這裡設定
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("[Dashboard] getSystemConfig error:", err);
|
console.error("[Dashboard] getSystemConfig error:", err);
|
||||||
showRefrigeration.value = false; // 失敗時保守處理:不顯示
|
showRefrigeration.value = false; // 失敗時保守處理:不顯示
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 取得設備資料(維持原本邏輯)
|
// 取得設備資料
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
const res = await getSystemDevices({
|
const res = await getSystemDevices({
|
||||||
building_guid: buildingStore.selectedBuilding?.building_guid,
|
building_guid: buildingStore.selectedBuilding?.building_guid,
|
||||||
@ -120,7 +121,7 @@ const getData = async () => {
|
|||||||
systemData.value = transformedData;
|
systemData.value = transformedData;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 每 5 秒輪詢設備資料(維持原本邏輯)
|
// 每 5 秒輪詢設備資料
|
||||||
const startInterval = () => {
|
const startInterval = () => {
|
||||||
if (intervalId) clearInterval(intervalId);
|
if (intervalId) clearInterval(intervalId);
|
||||||
intervalId = setInterval(() => {
|
intervalId = setInterval(() => {
|
||||||
@ -133,7 +134,7 @@ watch(
|
|||||||
() => buildingStore.selectedBuilding,
|
() => buildingStore.selectedBuilding,
|
||||||
async (newBuilding) => {
|
async (newBuilding) => {
|
||||||
if (newBuilding) {
|
if (newBuilding) {
|
||||||
await loadSystemConfig(); // ⭐ 先載設定(避免先渲染出不該顯示的卡片)
|
await loadSystemConfig(); // 先載設定(避免先渲染出不該顯示的卡片)
|
||||||
getData();
|
getData();
|
||||||
startInterval();
|
startInterval();
|
||||||
} else {
|
} else {
|
||||||
@ -158,7 +159,7 @@ onUnmounted(() => {
|
|||||||
<DashboardIndoor />
|
<DashboardIndoor />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ⭐ 依 show_refrigeration 決定是否渲染 -->
|
<!-- 依 show_refrigeration 決定是否渲染 -->
|
||||||
<div class="flex flex-col gap-5" v-if="showRefrigeration">
|
<div class="flex flex-col gap-5" v-if="showRefrigeration">
|
||||||
<DashboardRefrig />
|
<DashboardRefrig />
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,7 +10,10 @@ import { useI18n } from "vue-i18n";
|
|||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { searchParams, changeParams } = useSearchParam();
|
const { searchParams, changeParams } = useSearchParam();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
import { ref, computed } from "vue";
|
import { ref, computed } from "vue";
|
||||||
import useSearchParam from "@/hooks/useSearchParam";
|
import useSearchParam from "@/hooks/useSearchParam";
|
||||||
const { searchParams, changeParams } = useSearchParam();
|
const { searchParams, changeParams } = useSearchParam();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
@ -8,7 +8,10 @@ import { useI18n } from "vue-i18n";
|
|||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { openToast, cancelToastOpen } = inject("app_toast");
|
const { openToast, cancelToastOpen } = inject("app_toast");
|
||||||
const { sidebar_data } = inject("current_dir");
|
const { sidebar_data } = inject("current_dir");
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const columns = computed(() => [
|
const columns = computed(() => [
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,10 @@ import useSearchParam from "@/hooks/useSearchParam";
|
|||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { openToast, cancelToastOpen } = inject("app_toast");
|
const { openToast, cancelToastOpen } = inject("app_toast");
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { searchParams } = useSearchParam();
|
const { searchParams } = useSearchParam();
|
||||||
|
|
||||||
const { dataSource, openModal, updateEditRecord, search, tableLoading } =
|
const { dataSource, openModal, updateEditRecord, search, tableLoading } =
|
||||||
|
@ -12,7 +12,10 @@ import Select from "@/components/customUI/Select.vue";
|
|||||||
import SearchSelect from "@/components/customUI/SearchSelect.vue";
|
import SearchSelect from "@/components/customUI/SearchSelect.vue";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
editRecord: Object,
|
editRecord: Object,
|
||||||
|
@ -70,7 +70,10 @@ import { getSystemDevices } from "@/apis/system";
|
|||||||
import { setRtspEnable } from "@/apis/rtsp"; // 已移除 setSambaDirectory
|
import { setRtspEnable } from "@/apis/rtsp"; // 已移除 setSambaDirectory
|
||||||
import useActiveBtn from "@/hooks/useActiveBtn";
|
import useActiveBtn from "@/hooks/useActiveBtn";
|
||||||
|
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const DEFAULT_MONITOR_URL =
|
const DEFAULT_MONITOR_URL =
|
||||||
"http://192.168.0.219:8026/?url=rtsp://admin02:mjmAdmin_99@192.168.0.200:554/stream1?tcp";
|
"http://192.168.0.219:8026/?url=rtsp://admin02:mjmAdmin_99@192.168.0.200:554/stream1?tcp";
|
||||||
|
|
||||||
|
@ -7,7 +7,10 @@ import { useI18n } from "vue-i18n";
|
|||||||
import useBuildingStore from "@/stores/useBuildingStore";
|
import useBuildingStore from "@/stores/useBuildingStore";
|
||||||
|
|
||||||
const storeBuild = useBuildingStore();
|
const storeBuild = useBuildingStore();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { openToast, cancelToastOpen } = inject("app_toast");
|
const { openToast, cancelToastOpen } = inject("app_toast");
|
||||||
|
|
||||||
|
@ -11,7 +11,10 @@ const { currentFloor, subscribeData } = inject("system_deviceList");
|
|||||||
const { getCurrentInfoModalData, selected_dbid } = inject(
|
const { getCurrentInfoModalData, selected_dbid } = inject(
|
||||||
"system_selectedDevice"
|
"system_selectedDevice"
|
||||||
);
|
);
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const asset_floor_chart = ref(null);
|
const asset_floor_chart = ref(null);
|
||||||
const sameOption = {
|
const sameOption = {
|
||||||
|
@ -8,7 +8,10 @@ const { getCurrentInfoModalData, selected_dbid } = inject(
|
|||||||
const { subscribeData } = inject("system_deviceList");
|
const { subscribeData } = inject("system_deviceList");
|
||||||
|
|
||||||
const { showData } = useSystemShowData();
|
const { showData } = useSystemShowData();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
|
|
||||||
const fitToView = (forge_dbid, spriteDbId) => {
|
const fitToView = (forge_dbid, spriteDbId) => {
|
||||||
selected_dbid.value = [forge_dbid, spriteDbId];
|
selected_dbid.value = [forge_dbid, spriteDbId];
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
import { computed, inject, watch, ref } from "vue";
|
import { computed, inject, watch, ref } from "vue";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
// 本地開發 FILE_BASEURL
|
||||||
|
// const FILE_BASEURL = import.meta.env.VITE_FILE_API_BASEURL;
|
||||||
|
// docker 部屬 FILE_BASEURL (兩者視部屬方式擇一保留)
|
||||||
|
const FILE_BASEURL = window.env?.VITE_FILE_API_BASEURL;
|
||||||
const { selectedDeviceCog } = inject("system_selectedDevice");
|
const { selectedDeviceCog } = inject("system_selectedDevice");
|
||||||
const imgData = ref([]);
|
const imgData = ref([]);
|
||||||
|
|
||||||
|
@ -13,15 +13,17 @@ export default defineConfig({
|
|||||||
outDir: "./dist",
|
outDir: "./dist",
|
||||||
emptyOutDir: true,
|
emptyOutDir: true,
|
||||||
},
|
},
|
||||||
server: {
|
// 本地開發:有 server
|
||||||
proxy: {
|
// docker 部屬:註解整個 server
|
||||||
"/upload": {
|
// server: {
|
||||||
target: "https://ibms-Empower.production.mjmtech.com.tw",
|
// proxy: {
|
||||||
changeOrigin: true,
|
// "/upload": {
|
||||||
secure: false,
|
// target: "https://ibms-Empower.production.mjmtech.com.tw",
|
||||||
},
|
// changeOrigin: true,
|
||||||
},
|
// secure: false,
|
||||||
},
|
// },
|
||||||
|
// },
|
||||||
|
// },
|
||||||
plugins: [
|
plugins: [
|
||||||
vue(),
|
vue(),
|
||||||
Components({
|
Components({
|
||||||
|
Loading…
Reference in New Issue
Block a user