feat: 修复图片地址错误

This commit is contained in:
huanghao1412 2023-12-28 17:36:05 +08:00
parent 10b6106a9f
commit d2d4e94f10
14 changed files with 136 additions and 74 deletions

52
proxyConfig.ts Normal file
View File

@ -0,0 +1,52 @@
import { loadEnv } from 'vite'
// 这里是开发环境的代理配置
const devProxy = (mode:any) => {
return {
// 开发
'/dcim': {
// @ts-ignore
target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
changeOrigin: true,
ws: true,
secure: true,
},
// 开发首页缩略图
'/data/file': {
// @ts-ignore
target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
changeOrigin: true,
ws: true,
secure: true,
},
// 开发 图片
'/svgConfig/customLargeScreen': {
// @ts-ignore
target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
changeOrigin: true,
// rewrite: (path) => path.replace(new RegExp(`^/svgConfig/customLargeScreen`), ''),
ws: true,
secure: true,
},
};
}
// 这里是生产环境的代理配置
const prodProxy = (mode:any) => {
return {
// 生产list页缩略图 开发时注释掉
'/svgConfig/customLargeScreen/data/file': {
// @ts-ignore
target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
changeOrigin: true,
rewrite: (path:any) => {
console.log(path.replace(new RegExp(`^/svgConfig/customLargeScreen/data/file`), '/data/file'))
return path.replace(new RegExp(`^/svgConfig/customLargeScreen/data/file`), '/data/file')
},
ws: true,
secure: true,
},
}
}
// 根据环境变量导出相应的配置
export const proxyConfig = process.env.NODE_ENV === 'production' ? prodProxy : devProxy;

View File

@ -19,6 +19,27 @@ import { GoAppProvider } from '@/components/GoAppProvider'
import { I18n } from '@/components/I18n'
import { useSystemInit, useDarkThemeHook, useThemeOverridesHook, useCode, useLang } from '@/hooks'
import { getToken } from '@/api/path'
import { onMounted, onUnmounted } from 'vue'
import { useRouterStore } from '@/store/modules/routerStore/routerStore'
const routerStore = useRouterStore()
let handleMessage = function(event:{data:string}) {
const {data}:{data:any} = event
if(data.page === 'customLargeScreen' && data.type === 'setCallByParent') {
routerStore.setCallByParent(data.callByParent)
}
}
onMounted(() => {
window.addEventListener('message', handleMessage);
let obj = {
page: 'customLargeScreen',
type: 'bindPostMessageEvent'
}
window.parent.postMessage(JSON.stringify(obj), '*');
})
onUnmounted(() => {
window.removeEventListener('message', handleMessage);
})
getToken()

View File

@ -219,7 +219,7 @@ const presetImageList = ref([] as presetImageData[])
for (let i = 1; i <= 12; i++) {
presetImageList.value.push({
index: i,
// src: logoImg,
src: '',
hueRotate: i * 30
})
}

View File

@ -2,11 +2,11 @@ import { PublicConfigClass } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { ComprehensivePUEConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
import logo from '@/assets/logo.png'
// import logo from '@/assets/logo.png'
export const option = {
// 图片路径
dataset: logo,
dataset: '',
// 适应方式
fit: 'contain',
// 圆角

View File

@ -2,11 +2,11 @@ import { PublicConfigClass } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { DeviceAlarmOverviewConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
import logo from '@/assets/logo.png'
// import logo from '@/assets/logo.png'
export const option = {
// 图片路径
dataset: logo,
dataset: '',
// 适应方式
fit: 'contain',
// 圆角

View File

@ -2,11 +2,11 @@ import { PublicConfigClass } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { RealTimeTrafficConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
import logo from '@/assets/logo.png'
// import logo from '@/assets/logo.png'
export const option = {
// 图片路径
dataset: logo,
dataset: '',
// 适应方式
fit: 'contain',
// 圆角

View File

@ -2,11 +2,11 @@ import { PublicConfigClass } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { Theme1Config } from './index'
import cloneDeep from 'lodash/cloneDeep'
import bakground from '@/assets/customComponents/theme1/backgrond.jpg'
import background from '@/assets/customComponents/theme1/backgrond.jpg'
export const option = {
// 图片路径
dataset: bakground,
dataset: background,
// 适应方式
fit: 'contain',
// 圆角

View File

@ -120,13 +120,12 @@ const props = defineProps({
props.chartConfig.attr.w = 1920
props.chartConfig.attr.h = 1080
Object.assign(props.chartConfig.attr, {w: 1920, h: 1080, x: 0, y: 0})
console.log(props.chartConfig)
const { w, h } = toRefs(props.chartConfig.attr)
const { dataset, fit, borderRadius } = toRefs(props.chartConfig.option)
let date = ref(moment().format('yyyy-MM-DD'))
const weeks = ['周一', '周二', '周三', '周四', '周五', '周六', '周']
const weeks = ['周一', '周二', '周三', '周四', '周五', '周六', '周']
let time = ref(moment().format('HH:mm:ss ') + weeks[Number(moment().format('e'))])
let timer: unknown
onMounted(() => {
@ -169,8 +168,13 @@ const getStyle = (radius: number) => {
//
watch(
() => props.chartConfig.option.dataset,
(newData: any) => {
option.dataset = newData
async (newData: any) => {
try {
const img = await import(newData);
option.dataset = img.default
} catch(e) {
console.log(e)
}
},
{
immediate: true
@ -178,8 +182,13 @@ watch(
)
//
useChartDataFetch(props.chartConfig, useChartEditStore, (newData: any) => {
option.dataset = newData
useChartDataFetch(props.chartConfig, useChartEditStore, async (newData: any) => {
try {
const img = await import(newData);
option.dataset = img.default
} catch(e) {
console.log(e)
}
})
</script>

View File

@ -2,11 +2,11 @@ import { PublicConfigClass } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { ImageConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
import logo from '@/assets/logo.png'
// import logo from '@/assets/logo.png'
export const option = {
// 图片路径
dataset: logo,
dataset: '',
// 适应方式
fit: 'contain',
// 圆角

View File

@ -18,15 +18,15 @@ export const usePackagesStore = defineStore({
},
actions: {
addPhotos(newPhoto: ConfigType, index: number) {
this.newPhoto = newPhoto
this.packagesList.Photos.splice(index, 0, newPhoto)
// this.newPhoto = newPhoto
// this.packagesList.Photos.splice(index, 0, newPhoto)
},
deletePhotos(photoInfo: ConfigType, index: number) {
this.packagesList.Photos.splice(index, 1)
const StoreKey = StorageEnum.GO_USER_MEDIA_PHOTOS
const userPhotosList = getLocalStorage(StoreKey)
userPhotosList.splice(index - 1, 1)
setLocalStorage(StoreKey, userPhotosList)
// this.packagesList.Photos.splice(index, 1)
// const StoreKey = StorageEnum.GO_USER_MEDIA_PHOTOS
// const userPhotosList = getLocalStorage(StoreKey)
// userPhotosList.splice(index - 1, 1)
// setLocalStorage(StoreKey, userPhotosList)
}
}
})

View File

@ -0,0 +1,19 @@
import { defineStore } from 'pinia'
export const useRouterStore = defineStore({
id: 'useRouterStore',
state: () => ({
// 为true是router交给parent调用自身不跳转 为false使用自身路由
callByParent: false,
}),
getters: {
getCallByParent():boolean {
return this.callByParent
}
},
actions: {
setCallByParent(callByParent: boolean) {
this.callByParent = callByParent
}
}
})

View File

@ -7,6 +7,8 @@ import { StorageEnum } from '@/enums/storageEnum'
import { clearLocalStorage, getLocalStorage, clearCookie } from './storage'
import router from '@/router'
import { logoutApi } from '@/api/path'
import { useRouterStore } from '@/store/modules/routerStore/routerStore'
import { onMounted } from 'vue'
/**
* *
@ -69,7 +71,8 @@ export const routerTurnByPath = (
if (query?.length) {
fullPath = `${path}/${query.join('/')}`
}
if (isCallByParent) {
const routerStore:any = useRouterStore()
if (routerStore && routerStore.getCallByParent) {
// 获取父页面的 window 对象
var parentWindow = window.parent;
const message = {

View File

@ -1,6 +1,6 @@
<template>
<!-- 事件配置 -->
<n-collapse v-if="isReady" class="go-mt-3" arrow-placement="right" :default-expanded-names="['1', '2']">
<n-collapse class="go-mt-3" arrow-placement="right" :default-expanded-names="['1', '2']">
<n-text depth="3">
组件 id
<n-text>{{ targetData.id }}</n-text>
@ -38,7 +38,7 @@ const { chartEditStore } = useTargetData()
const targetIndex = computed(() => chartEditStore.fetchTargetIndex())
const list = computed(() => chartEditStore.getComponentList)
let targetData:any = ref(list.value[targetIndex.value])
const isReady = ref(false)
// const isReady = ref(false)
const init = () => {
if(!targetData.value.customEvent) {
@ -52,11 +52,11 @@ const init = () => {
}
init()
watch(() => targetIndex.value, newIndex => {
isReady.value = false
// isReady.value = false
targetData.value = list.value[newIndex]
init()
setTimeout(() => {
isReady.value = true
// isReady.value = true
})
})
watch(() => list.value.length, () => {

View File

@ -6,12 +6,13 @@ import viteCompression from 'vite-plugin-compression'
import { axiosPre } from './src/settings/httpSetting'
import { viteMockServe } from 'vite-plugin-mock'
import monacoEditorPlugin from 'vite-plugin-monaco-editor'
import { proxyConfig } from './proxyConfig'
function pathResolve(dir: string) {
return resolve(process.cwd(), '.', dir)
}
export default ({ mode }) => defineConfig({
export default ({ mode } : { mode:any }) => defineConfig({
base: process.env.NODE_ENV === 'production' ? './' : '/',
// 路径重定向
resolve: {
@ -46,50 +47,7 @@ export default ({ mode }) => defineConfig({
open: true,
port: 3000,
proxy: {
// 生产list页缩略图 开发时注释掉
'/svgConfig/customLargeScreen/data/file': {
// @ts-ignore
target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
changeOrigin: true,
rewrite: (path) => path.replace(new RegExp(`^/svgConfig/customLargeScreen`), ''),
ws: true,
secure: true,
},
// 生产打开 开发时注释掉
[axiosPre]: {
// @ts-ignore
target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
changeOrigin: true,
// rewrite: (path) => path.replace(new RegExp(`^${axiosPre}`), ''),
// rewrite: () => '',
ws: true,
secure: true,
},
// 开发
// '/dcim': {
// // @ts-ignore
// target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
// changeOrigin: true,
// ws: true,
// secure: true,
// },
// // 开发首页缩略图
// '/data/file': {
// // @ts-ignore
// target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
// changeOrigin: true,
// ws: true,
// secure: true,
// },
// // 开发 图片
// '/svgConfig/customLargeScreen': {
// // @ts-ignore
// target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
// changeOrigin: true,
// // rewrite: (path) => path.replace(new RegExp(`^/svgConfig/customLargeScreen`), ''),
// ws: true,
// secure: true,
// },
...proxyConfig(mode)
}
},
plugins: [