diff --git a/src/components/FusionSettings/DensityCorrection.vue b/src/components/FusionSettings/DensityCorrection.vue index a1e9511..72712db 100644 --- a/src/components/FusionSettings/DensityCorrection.vue +++ b/src/components/FusionSettings/DensityCorrection.vue @@ -120,7 +120,7 @@ - +
{{ $t('confirm delete') }}
@@ -149,7 +149,7 @@
--> - +
{{ $t('Whether to add control points') }}
@@ -222,7 +222,7 @@ export default defineComponent({ let $store = useStore(); let $t = useI18n(); const ste_status = ref(0); - let config = JSON.parse($store.state.fusion_configuration).projectors[0]; + const configselsect = computed(() => { return $store.state.selected_projector; }); @@ -236,9 +236,10 @@ export default defineComponent({ $store.getters.GetTheCurrentlySelectedCamera[1] ); }); + let config = JSON.parse($store.state.fusion_configuration).projectors[selectedprojector.value]; const now_v_h = ref("") - const value_h_point_amount = ref(5) - const value_v_point_amount = ref(5) + const value_h_point_amount = ref(Number(Object.keys(config.multi_hor_density)[0])) + const value_v_point_amount = ref(Number(Object.keys(config.multi_ver_density)[0])) const add_dialog = ref(false) const now_amount = ref(0) @@ -256,9 +257,9 @@ export default defineComponent({ }; const use_server_config = () => { - value_h_point_amount.value = 5 - value_v_point_amount.value = 5 - let a = 5 + value_h_point_amount.value = Number(Object.keys(config.multi_hor_density)[0]) + value_v_point_amount.value = Number(Object.keys(config.multi_ver_density)[0]) + let a = Number(Object.keys(config.multi_hor_density)[0]) value_h.value = [] value_h_point.value = [] for (let index = 0; index < config.multi_hor_density[a].length; index++) { @@ -557,7 +558,8 @@ export default defineComponent({ let tmp = JSON.parse($store.state.fusion_configuration).options; auxiliary_line.value = tmp.blending_grids_density_assistant_lines == "1" now_v_h.value = "level" - start_point(5, 'all') + start_point(Number(options_value_h_point_amount.value[0]), 'h') + start_point(Number(options_value_v_point_amount.value[0]), 'v') if ( sessionStorage.DensityCorrection && sessionStorage.DensityCorrection.length > 0 @@ -931,7 +933,7 @@ export default defineComponent({ */ const details_selsect_v = (details: any) => { let spt = details.deltaY / 100 - if (spt < 0) { + if (spt > 0) { if (options_model_v.value >= value_v_point.value.length - 1) { options_model_v.value = 0 } else { @@ -947,7 +949,7 @@ export default defineComponent({ } const details_selsect_h = (details: any) => { let spt = details.deltaY / 100 - if (spt < 0) { + if (spt > 0) { if (options_model_h.value >= value_h_point.value.length - 1) { options_model_h.value = 0 } else { diff --git a/src/components/FusionSettings/FourPointCalibration.vue b/src/components/FusionSettings/FourPointCalibration.vue index b8a2593..a70a2dc 100644 --- a/src/components/FusionSettings/FourPointCalibration.vue +++ b/src/components/FusionSettings/FourPointCalibration.vue @@ -62,7 +62,9 @@ import { watch, nextTick, onBeforeUnmount, - defineExpose + defineExpose, +toRefs, +inject } from "vue"; import { useStore } from "src/store"; import { useI18n } from "vue-i18n"; @@ -83,13 +85,22 @@ export default defineComponent({ components: { Vue3DraggableResizable }, - setup() { + props: { + col: { + type: String, + }, + row: { + type: String, + } + }, + setup(props) { + const now_selsect_projector:any = inject("now_selsect_projector"); let set = GlobalData.getInstance().getCurrentClient(); let $store = useStore(); let $t = useI18n(); const ste_status = ref(0); let allconfig = JSON.parse($store.state.fusion_configuration); - let config = JSON.parse($store.state.fusion_configuration).projectors[0]; + const configselsect = computed(() => { return $store.state.selected_projector; }); @@ -104,7 +115,7 @@ export default defineComponent({ $store.getters.GetTheCurrentlySelectedCamera[1] ); }); - + let config = JSON.parse($store.state.fusion_configuration).projectors[selectedprojector.value]; const value_point_amount = ref(5) @@ -227,12 +238,38 @@ export default defineComponent({ let tmp = coordinate_transformation_xy_to_value(obj_x, obj_y) value.value[index].x = Math.round(tmp.x) value.value[index].y = Math.round(tmp.y) - send_value(index, Math.round(tmp.x), Math.round(tmp.y)) + /** + * 判断摄像机 + */ + if(now_selsect_projector?.value=='0-0'){ + + if(index==1||index==3){ + value.value[index].x = Math.round(tmp.x)>allconfig.projector_width?allconfig.projector_width:Math.round(tmp.x) + } + } + if(now_selsect_projector?.value=='0-1'){ + if(index==0||index==2){ + value.value[index].x = Math.round(tmp.x)<0?0:Math.round(tmp.x) + } + } + + send_value(index, value.value[index].x , value.value[index].y) save_set_cache() } const chang = (index: number, $event: any, type: string) => { index = Number(index) + if (now_selsect_projector?.value == '0-0'&&props.col=='2') { + + if (index == 1 || index == 3) { + value.value[index].x > allconfig.projector_width ? value.value[index].x =allconfig.projector_width : value.value[index].x + } + } + if (now_selsect_projector?.value == '0-1'&&props.col=='2') { + if (index == 0 || index == 2) { + value.value[index].x < 0 ? value.value[index].x= 0 : value.value[index].x + } + } let tmp = coordinate_transformation_value_to_xy(value.value[index].x, value.value[index].y) value_point.value[index].y = Math.round(tmp.y) value_point.value[index].x = Math.round(tmp.x) @@ -296,6 +333,9 @@ export default defineComponent({ onMounted(() => { Proportion.value.x = allconfig.projector_width / (div.value.offsetWidth - point.value.w) Proportion.value.y = allconfig.projector_height / (div.value.offsetHeight - point.value.h) + set?.GetBlendingConfig("").then((res) => { + allconfig=JSON.parse(res?.config??"") + }) start_point() start() use_server_config() @@ -365,7 +405,7 @@ export default defineComponent({ */ const details_selsect=(details:any) => { let spt=details.deltaY/100 - if(spt<0){ + if(spt>0){ if(options_model.value>=value_point.value.length-1){ options_model.value=0 }else{ @@ -389,9 +429,27 @@ export default defineComponent({ switch (type) { case 'x': if (spt < 0) { - value.value[options_model.value].x++ + if(now_selsect_projector?.value=='0-0'&&props.col=='2'){ + if(options_model.value==1||options_model.value==3){ + value.value[options_model.value].x>allconfig.projector_width?value.value[options_model.value].x = allconfig.projector_width:value.value[options_model.value].x++ + }else{ + value.value[options_model.value].x++ + } + }else{ + value.value[options_model.value].x++ + } } else { - value.value[options_model.value].x-- + + if(now_selsect_projector?.value=='0-1'&&props.col=='2'){ + if(options_model.value==0||options_model.value==2){ + value.value[options_model.value].x <0?value.value[options_model.value].x = 0:value.value[options_model.value].x -- + }else{ + value.value[options_model.value].x-- + } + }else{ + value.value[options_model.value].x -- + } + } break; default: @@ -409,6 +467,7 @@ export default defineComponent({ options_model, }); return { + now_selsect_projector, details_selsect, resetall, div, diff --git a/src/components/FusionSettings/FusionLocale.vue b/src/components/FusionSettings/FusionLocale.vue index 8516039..0300021 100644 --- a/src/components/FusionSettings/FusionLocale.vue +++ b/src/components/FusionSettings/FusionLocale.vue @@ -184,6 +184,7 @@ import { onBeforeUnmount, reactive, onMounted, +toRefs, } from "vue"; import { useStore } from "src/store"; import { useI18n } from "vue-i18n"; @@ -207,7 +208,7 @@ export default defineComponent({ { alpha: 0, p: 0, gamma: 0, isshow: false, value: 0 }, { alpha: 0, p: 0, gamma: 0, isshow: false, value: 0 }, ]); - const auto_sync = ref(false) + const auto_sync = ref(true) const auxiliary_line = ref(false) const send_auxiliary_line = (val: boolean) => { set?.SetBlendingOption("blending_grids_assistant_lines", val ? "1" : "0"); @@ -258,7 +259,7 @@ export default defineComponent({ set_cache.value[selectedprojector.value] = JSON.stringify(array); }; - let config = JSON.parse($store.state.fusion_configuration).projectors[0]; + let config = JSON.parse($store.state.fusion_configuration).projectors[selectedprojector.value]; const configselsect = computed(() => { return $store.state.selected_projector; }); @@ -390,7 +391,7 @@ export default defineComponent({ onMounted(() => { set?.GetBlendingConfig("").then((res) => { let tmp = JSON.parse(res ? res.config : ""); - config = tmp.projectors[0]; + config = tmp.projectors[selectedprojector.value]; ste_status.value = 1; startconfig(); setTimeout(() => { diff --git a/src/components/FusionSettings/GridSettings.vue b/src/components/FusionSettings/GridSettings.vue index bc3aa3c..6660458 100644 --- a/src/components/FusionSettings/GridSettings.vue +++ b/src/components/FusionSettings/GridSettings.vue @@ -130,7 +130,7 @@ export default defineComponent({ const index = ref(0); const color = reactive(["#ffffff", "#CCCCCC", "#000", "#000"]); let model = reactive([20, 40, 20]); - let options = ref([10, 20, 30, 40, 50]); + let options = ref([10, 20, 30, 40, 50, 60 ,80]); let line_width_options = ref([2,4,6,8,10, 20, 30, 40, 50]); const submit = () => { switch (index.value) { diff --git a/src/components/FusionSettings/SurfaceCorrection.vue b/src/components/FusionSettings/SurfaceCorrection.vue index 4bbf3c2..5edf7f7 100644 --- a/src/components/FusionSettings/SurfaceCorrection.vue +++ b/src/components/FusionSettings/SurfaceCorrection.vue @@ -26,7 +26,7 @@
-
@@ -61,7 +61,7 @@
- +
{{ $t('confirm delete') }}
@@ -78,7 +78,7 @@ - +
{{ $t('Whether to add control points') }}
@@ -150,7 +150,7 @@ export default defineComponent({ let $t = useI18n(); const ste_status = ref(0); let allconfig = JSON.parse($store.state.fusion_configuration); - let config = JSON.parse($store.state.fusion_configuration).projectors[0]; + const configselsect = computed(() => { return $store.state.selected_projector; }); @@ -163,7 +163,7 @@ export default defineComponent({ $store.getters.GetTheCurrentlySelectedCamera[1] ); }); - + let config = JSON.parse($store.state.fusion_configuration).projectors[selectedprojector.value]; const value_point_amount = ref(9) const del_dialog = ref(false) const add_dialog = ref(false) @@ -183,8 +183,8 @@ export default defineComponent({ }; const use_server_config = () => { - value_point_amount.value = 9 - let a = 9 + value_point_amount.value = Number(Object.keys(config.multi_curved_surface)[0]) + let a = value_point_amount.value value.value = [] value_point.value = [] for (let index = 0; index < config.multi_curved_surface[a].length; index++) { @@ -360,6 +360,7 @@ export default defineComponent({ } value_point.value.push(tmp_point) } + save_set_cache() } @@ -372,9 +373,11 @@ export default defineComponent({ onMounted(() => { Proportion.value.x = allconfig.projector_width / (div.value.offsetWidth - point.value.w) Proportion.value.y = allconfig.projector_height / (div.value.offsetHeight - point.value.h) - start_point(9) + start() use_server_config() + options_value_point_amount.value = Object.keys(config.multi_curved_surface) + start_point(Number(options_value_point_amount.value[0])) if ( sessionStorage.SurfaceCorrection && sessionStorage.SurfaceCorrection.length > 0 @@ -382,7 +385,6 @@ export default defineComponent({ set_cache.value = JSON.parse(sessionStorage.SurfaceCorrection); use_set_cache(); } - options_value_point_amount.value = Object.keys(config.multi_curved_surface) window.onresize = () => { return (() => { if (div != null) { @@ -506,6 +508,7 @@ export default defineComponent({ value_point.value.push(tmp_point) } }); + save_set_cache() } const del_control_points = (amount: number) => { let tmp = amount @@ -536,9 +539,9 @@ export default defineComponent({ for (let key in tmpconfig.multi_curved_surface) { options_value_point_amount.value.push(key) } - value_point_amount.value = 9 - amount = 9 - now_amount.value = 9 + value_point_amount.value = Number(options_value_point_amount.value[0]) + amount = Number(options_value_point_amount.value[0]) + now_amount.value = Number(options_value_point_amount.value[0]) $store.commit("setfusion_configuration", res?.config); value.value = [] value_point.value = [] @@ -558,6 +561,7 @@ export default defineComponent({ } }); + save_set_cache() } const add = () => { let tmpconfig: any = null @@ -605,6 +609,7 @@ export default defineComponent({ } }); set?.SetBlendingOption("blending_grids_control_point_count", `${value_point_amount.value}`) + save_set_cache() } const preview = (val: number) => { val = Number(val) @@ -634,6 +639,7 @@ export default defineComponent({ now_amount.value = val ** 2 value_point_amount.value = val ** 2 options_model.value = 1 + save_set_cache() } /** @@ -642,7 +648,7 @@ export default defineComponent({ */ const details_selsect=(details:any) => { let spt=details.deltaY/100 - if(spt<0){ + if(spt>0){ if(options_model.value>=value_point.value.length-1){ options_model.value=0 }else{ diff --git a/src/components/FusionSettingsDialog.vue b/src/components/FusionSettingsDialog.vue index 6a0efdc..e8d614a 100644 --- a/src/components/FusionSettingsDialog.vue +++ b/src/components/FusionSettingsDialog.vue @@ -50,10 +50,10 @@
@@ -71,7 +71,7 @@ ]" />
- +
@@ -93,7 +93,7 @@ + @click="$store.commit('setSelectedProjector', '0/0');clear()" /> @@ -167,12 +167,12 @@ - +
{{ $t('Do you confirm the modification') }}
- {{ $t('Do you confirm the modification') }} + {{ dialog_data.type=='resolution'?$t('Whether to modify the resolution to') + options_resolution[dialog_data.parameter].label:$t('Whether to change the projector layout to') + projectorlayout[dialog_data.parameter].label }} @@ -203,6 +203,7 @@ import { computed, onMounted, onBeforeMount, +provide, } from "vue"; import { useStore } from "src/store"; import { useQuasar, copyToClipboard } from "quasar"; @@ -422,11 +423,18 @@ export default defineComponent({ case 'FourPointCalibration': tmp = '4' set?.SetBlendingOption("blending_grids_control_point_count", `4`) + set?.SetBlendingOption("blending_grids_select_point", `4:1`) break; case 'SurfaceCorrection': tmp = '9' - //set?.SetBlendingOption("blending_grids_control_point_count", `${child.value!.value_point_amount}`) - set?.SetBlendingOption("blending_grids_select_point", `9:1`) + /** + * 延迟发送不然获取不到值 + */ + setTimeout(() => { + set?.SetBlendingOption("blending_grids_control_point_count", `${child.value!.value_point_amount}`) + set?.SetBlendingOption("blending_grids_select_point", `${child.value!.value_point_amount}:1`) + }, 100); + break; case 'DensityCorrection': tmp = 'hor_density' @@ -472,6 +480,7 @@ export default defineComponent({ } else { optionsstr.value = "FourPointCalibration"; } + now_selsect_projector.value="0-0" }; /** @@ -509,12 +518,7 @@ export default defineComponent({ config.value.col = tmp.col; config.value.row = tmp.row; $store.commit("setfusion_configuration", res?.config); - - if(config.value.col==1&&config.value.row==1){ - optionsstr.value = "FourPointCalibration" - }else{ - optionsstr.value = "FusionLocale"; - } + optionsstr.value = "FourPointCalibration"; allconfig = JSON.parse($store.state.fusion_configuration); if(allconfig.resolution){ for (let index = 0; index < allconfig.resolution.length; index++) { @@ -618,8 +622,12 @@ export default defineComponent({ const currently_selected_projector = (value: string) => { set?.SetBlendingOption('blending_grids_select_projector', value); now_selsect_projector.value=value - } + } + /** + * 依赖注入 + */ + provide("now_selsect_projector",now_selsect_projector); /** * 设置投影机布局 */ @@ -635,6 +643,12 @@ export default defineComponent({ message: 'Loading please wait' }) $store.commit("setfusion_configuration", res?.config); + for (let index = 0; index < projectorlayout.length; index++) { + let arr = projectorlayout[index].label.split('x'); + if(tmpp.col==Number(arr[0])&&tmpp.row==Number(arr[1])){ + now_select_projectorlayout.value=index + } + } let tmp = options.value options.value = "" $store.commit("setSelectedProjector", "0/0"); @@ -673,16 +687,21 @@ export default defineComponent({ * 浅拷贝 */ const confirm=ref(false) - let dialog_data:any=null - const dialog=(parameter:any,fun:any)=>{ + let dialog_data:any={parameter:"",fun:"",type:""} + const dialog=(parameter:any,fun:any,type:string)=>{ confirm.value=true - dialog_data={parameter,fun} + dialog_data.parameter=parameter + dialog_data.fun=fun + dialog_data.type=type + console.log("🚀 ~ file: FusionSettingsDialog.vue:696 ~ dialog ~ type:", type) + //dialog_data={parameter,fun,type} } const trigger_dialog=()=>{ dialog_data.fun(dialog_data.parameter) + console.log(dialog_data.fun) } const re_match_data=()=>{ - let tmp=allconfig + let tmp = JSON.parse($store.state.fusion_configuration); for (let index = 0; index < options_resolution.value.length; index++) { let arr = options_resolution.value[index].label.split('*'); if(tmp.projector_width==Number(arr[0])&&tmp.projector_height==Number(arr[1])){ @@ -691,12 +710,16 @@ export default defineComponent({ } for (let index = 0; index < projectorlayout.length; index++) { let arr = projectorlayout[index].label.split('x'); + if(tmp.row==Number(arr[0])&&tmp.col==Number(arr[1])){ now_select_projectorlayout.value=index } } } return { + dialog_data, + allconfig, + now_selsect_projector, re_match_data, trigger_dialog, confirm, diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index 4941719..46e9989 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -500,5 +500,7 @@ export default { "Please enter the square number": "Please enter the square number", "Change projector layout": "Change projector layout", "reset all":"reset all", - "Do you confirm the modification":"Do you confirm the modification" + "Do you confirm the modification":"Do you confirm the modification", + "Whether to modify the resolution to":"Whether to modify the resolution to", + "Whether to change the projector layout to":"Whether to change the projector layout to" }; diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts index 634f544..3a77806 100644 --- a/src/i18n/zh-CN/index.ts +++ b/src/i18n/zh-CN/index.ts @@ -767,5 +767,7 @@ export default { "Please enter the square number":"请输入平方数", "Change projector layout":"更改投影机布局", "reset all":"重置所有", - "Do you confirm the modification":"是否确认修改" + "Do you confirm the modification":"是否确认修改", + "Whether to modify the resolution to":"是否将分辨率修改到", + "Whether to change the projector layout to":"是否更改投影机布局为" };