注册细分产品
This commit is contained in:
parent
6c304fdfe6
commit
53ca6af019
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "media_player_client",
|
||||
"version": "1.5.8",
|
||||
"version": "1.5.9",
|
||||
"description": "A Quasar Framework app",
|
||||
"productName": "MediaPlayerClient",
|
||||
"author": "fangxiang <fangxiang@cloudview.work>",
|
||||
|
|
|
@ -41,7 +41,11 @@ module.exports = configure(function (ctx) {
|
|||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
||||
build: {
|
||||
vueRouterMode: "hash", // available values: 'hash', 'history'
|
||||
|
||||
uglifyOptions: {
|
||||
compress: {
|
||||
drop_console: true,
|
||||
},
|
||||
},
|
||||
// transpile: false,
|
||||
// Add dependencies for transpiling with Babel (Array of string/regex)
|
||||
// (from node_modules, which are by default not transpiled).
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
}
|
||||
"
|
||||
>
|
||||
<q-card class="overflow-hidden" style="overflow-y: scroll; max-width: 35vw">
|
||||
<q-card class="overflow-hidden" style="overflow-y: scroll; max-width: 40vw">
|
||||
<q-form>
|
||||
<q-card-section class="q-ma-none q-pa-sm">
|
||||
<div class="row">
|
||||
|
@ -37,8 +37,67 @@
|
|||
|
||||
<q-separator />
|
||||
|
||||
<q-card-section style="max-height: 50vh; width: 35vw" class="scroll">
|
||||
<q-card-section style="max-height: 60vh; width: 40vw" class="scroll">
|
||||
<q-list>
|
||||
<q-item>
|
||||
<q-item-section avatar>{{ $t("product") }}</q-item-section>
|
||||
<q-item-section>
|
||||
<q-radio
|
||||
v-model="selected_product"
|
||||
val=""
|
||||
:label="$t('normal')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-radio
|
||||
v-model="selected_product"
|
||||
val="magic_wall"
|
||||
:label="$t('magic wall')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-radio
|
||||
v-model="selected_product"
|
||||
val="fusion"
|
||||
:label="$t('fusion')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="selected_product == 'fusion'">
|
||||
<q-item-section avatar>{{ $t("fusion") }}</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row" v-for="(row, row_index) in 3" :key="row">
|
||||
<q-radio
|
||||
v-for="(item, item_index) in 3"
|
||||
:key="row_index * 3 + item"
|
||||
v-model="function_fusion_count"
|
||||
:val="row_index * 3 + item"
|
||||
:label="
|
||||
(row_index * 3 + item).toString() +
|
||||
$t(' ') +
|
||||
$t('fusion out')
|
||||
"
|
||||
color="cyan"
|
||||
class="col"
|
||||
:class="item_index ? 'offset-md-1 ' : ''"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item>
|
||||
<q-item-section avatar>{{ $t("function") }}</q-item-section>
|
||||
<q-item-section>
|
||||
|
@ -69,7 +128,6 @@
|
|||
:disable="loading"
|
||||
/>
|
||||
</q-item-section>
|
||||
|
||||
</q-item>
|
||||
<q-item>
|
||||
<q-item-section avatar></q-item-section>
|
||||
|
@ -83,40 +141,22 @@
|
|||
:disable="loading"
|
||||
/>
|
||||
</q-item-section>
|
||||
|
||||
</q-item>
|
||||
<q-item>
|
||||
<q-item-section> </q-item-section>
|
||||
<q-item-section>
|
||||
<q-checkbox
|
||||
v-model="function_magic_wall"
|
||||
@update:model-value="changeMagic()"
|
||||
:label="$t('magic wall')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-checkbox
|
||||
v-model="function_fusion"
|
||||
@update:model-value="changeFusion()"
|
||||
:label="$t('fusion')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-btn
|
||||
@click="setDeviceAttribute"
|
||||
@click="setDeviceAttributeAndProduct"
|
||||
:label="$t('commit')"
|
||||
no-caps
|
||||
outline
|
||||
class="q-px-lg"
|
||||
color="primary"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section> </q-item-section>
|
||||
</q-item>
|
||||
<q-separator />
|
||||
<q-item>
|
||||
<q-item-section avatar>
|
||||
{{ $t("language") }}
|
||||
|
@ -153,7 +193,6 @@
|
|||
/>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-separator class="q-mt-md" />
|
||||
|
||||
<q-item class="q-mt-md">
|
||||
|
@ -199,8 +238,10 @@ import { useStore } from "src/store";
|
|||
import { useQuasar, date as $date } from "quasar";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import GlobalData from "src/common/GlobalData";
|
||||
import { Protocol } from "src/entities/WSProtocol";
|
||||
import { EDeviceAttribute } from "src/entities/EDeviceAttribute";
|
||||
import {
|
||||
EDeviceAttribute,
|
||||
EDeviceAttributeHelper,
|
||||
} from "src/entities/EDeviceAttribute";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ComponentAdvancedDebugDialog",
|
||||
|
@ -226,10 +267,44 @@ export default defineComponent({
|
|||
const function_magic_wall = ref(
|
||||
$store.state.custom_defines.function_magic_wall
|
||||
);
|
||||
const function_fusion = ref(
|
||||
$store.state.custom_defines.function_magic_wall
|
||||
);
|
||||
const function_fusion = ref($store.state.custom_defines.function_fusion);
|
||||
const function_fusion_count = ref(0);
|
||||
const target_language = ref("zh-CN");
|
||||
const selected_product = ref("");
|
||||
|
||||
watch(
|
||||
() => selected_product.value,
|
||||
(newValue) => {
|
||||
function_fusion.value = newValue == "fusion";
|
||||
function_magic_wall.value = newValue == "magic_wall";
|
||||
}
|
||||
);
|
||||
|
||||
const getFinalAttribute = () => {
|
||||
let attribute = EDeviceAttribute.None;
|
||||
if (function_center_control.value) {
|
||||
attribute |= EDeviceAttribute.CenterControl;
|
||||
}
|
||||
if (function_output_board.value) {
|
||||
attribute |= EDeviceAttribute.OutputBoard;
|
||||
}
|
||||
if (function_mirroring_output.value) {
|
||||
attribute |= EDeviceAttribute.MirroringOutput;
|
||||
}
|
||||
|
||||
if (function_custom_ISV.value) {
|
||||
attribute |= EDeviceAttribute.CustomISV;
|
||||
}
|
||||
if (function_magic_wall.value) {
|
||||
attribute |= EDeviceAttribute.ProductMagicWall;
|
||||
}
|
||||
if (function_fusion.value) {
|
||||
attribute |= EDeviceAttributeHelper.getProdictFusionAttributeByIndex(
|
||||
function_fusion_count.value
|
||||
);
|
||||
}
|
||||
return attribute;
|
||||
};
|
||||
|
||||
return {
|
||||
show_dialog,
|
||||
|
@ -239,8 +314,10 @@ export default defineComponent({
|
|||
function_custom_ISV,
|
||||
function_magic_wall,
|
||||
function_fusion,
|
||||
function_fusion_count,
|
||||
function_mirroring_output,
|
||||
target_language,
|
||||
selected_product,
|
||||
|
||||
showDialog() {
|
||||
show_dialog.value = true;
|
||||
|
@ -254,8 +331,18 @@ export default defineComponent({
|
|||
$store.state.custom_defines.function_mirroring_output;
|
||||
function_magic_wall.value =
|
||||
$store.state.custom_defines.function_magic_wall;
|
||||
function_fusion.value =
|
||||
$store.state.custom_defines.function_fusion;
|
||||
function_fusion.value = $store.state.custom_defines.function_fusion;
|
||||
function_fusion_count.value =
|
||||
EDeviceAttributeHelper.getProductFusionOutputCountDefault(
|
||||
$store.state.device_attribute,
|
||||
1
|
||||
);
|
||||
|
||||
if (function_magic_wall.value) {
|
||||
selected_product.value = "magic_wall";
|
||||
} else if (function_fusion.value) {
|
||||
selected_product.value = "fusion";
|
||||
}
|
||||
},
|
||||
resetData() {
|
||||
loading.value = false;
|
||||
|
@ -264,8 +351,9 @@ export default defineComponent({
|
|||
function_output_board.value = false;
|
||||
function_mirroring_output.value = false;
|
||||
function_custom_ISV.value = false;
|
||||
function_magic_wall.value=false;
|
||||
function_fusion.value=false
|
||||
function_magic_wall.value = false;
|
||||
function_fusion.value = false;
|
||||
selected_product.value = "";
|
||||
},
|
||||
|
||||
restartDevice() {
|
||||
|
@ -343,27 +431,22 @@ export default defineComponent({
|
|||
</div>`,
|
||||
});
|
||||
},
|
||||
setDeviceAttribute() {
|
||||
let attribute = EDeviceAttribute.None;
|
||||
if (function_center_control.value) {
|
||||
attribute |= EDeviceAttribute.CenterControl;
|
||||
}
|
||||
if (function_output_board.value) {
|
||||
attribute |= EDeviceAttribute.OutputBoard;
|
||||
}
|
||||
if (function_mirroring_output.value) {
|
||||
attribute |= EDeviceAttribute.MirroringOutput;
|
||||
}
|
||||
setDeviceAttributeAndProduct() {
|
||||
let attribute = getFinalAttribute();
|
||||
GlobalData.getInstance()
|
||||
.getCurrentClient()
|
||||
?.setDeviceAttribute(attribute);
|
||||
|
||||
if (function_custom_ISV.value) {
|
||||
attribute |= EDeviceAttribute.CustomISV;
|
||||
}
|
||||
if (function_magic_wall.value) {
|
||||
attribute |= EDeviceAttribute.ProductMagicWall;
|
||||
}
|
||||
if (function_fusion.value) {
|
||||
attribute |= EDeviceAttribute.ProductFusion;
|
||||
}
|
||||
$q.notify({
|
||||
color: "positive",
|
||||
icon: "done",
|
||||
message: $t.t("set device function") + $t.t("success") + "!",
|
||||
position: "top",
|
||||
timeout: 1500,
|
||||
});
|
||||
},
|
||||
setDeviceAttribute() {
|
||||
let attribute = getFinalAttribute();
|
||||
|
||||
GlobalData.getInstance()
|
||||
.getCurrentClient()
|
||||
|
@ -389,16 +472,16 @@ export default defineComponent({
|
|||
timeout: 1500,
|
||||
});
|
||||
},
|
||||
changeMagic(){
|
||||
if(function_magic_wall.value){
|
||||
function_fusion.value=false;
|
||||
changeMagic() {
|
||||
if (function_magic_wall.value) {
|
||||
function_fusion.value = false;
|
||||
}
|
||||
},
|
||||
changeFusion(){
|
||||
if(function_fusion.value){
|
||||
function_magic_wall.value=false;
|
||||
changeFusion() {
|
||||
if (function_fusion.value) {
|
||||
function_magic_wall.value = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
|
|
|
@ -73,286 +73,346 @@
|
|||
<q-separator />
|
||||
|
||||
<q-card-section class="scroll" style="width: 70vw">
|
||||
<q-list>
|
||||
<q-item v-if="ext_flag">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("register type") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-model="register_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="offline"
|
||||
:label="$t('offline register')"
|
||||
class="offset-md-1 col"
|
||||
<q-scroll-area style="height: 65vh">
|
||||
<q-list>
|
||||
<q-item v-if="ext_flag">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("register type") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-model="register_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="offline"
|
||||
:label="$t('offline register')"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="register_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="online"
|
||||
:label="$t('online register')"
|
||||
class="col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'offline'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("register code") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div style="word-break: break-all">
|
||||
{{ register_code }}
|
||||
</div>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<qrcode-vue
|
||||
:value="register_code"
|
||||
level="H"
|
||||
render-as="svg"
|
||||
:size="160"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-btn
|
||||
round
|
||||
flat
|
||||
icon="content_copy"
|
||||
color="green"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="register_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="online"
|
||||
:label="$t('online register')"
|
||||
class="col"
|
||||
@click="
|
||||
copyToClipboard(register_code).then(() =>
|
||||
$q.notify({
|
||||
color: 'positive',
|
||||
icon: 'done',
|
||||
message: $t('copy') + $t('success'),
|
||||
position: 'top',
|
||||
timeout: 1500,
|
||||
})
|
||||
)
|
||||
"
|
||||
>
|
||||
<q-tooltip>
|
||||
{{ $t("copy") }}{{ $t("register code") }}
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'offline'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("active code") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input
|
||||
type="textarea"
|
||||
v-model="active_code"
|
||||
lazy-rules
|
||||
autofocus
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
:rules="[
|
||||
(val) =>
|
||||
(val && val.length > 0) || $t('Please type something'),
|
||||
]"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'offline'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("register code") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div style="word-break: break-all">
|
||||
{{ register_code }}
|
||||
</div>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<qrcode-vue
|
||||
:value="register_code"
|
||||
level="H"
|
||||
render-as="svg"
|
||||
:size="195"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-btn
|
||||
round
|
||||
flat
|
||||
icon="content_copy"
|
||||
color="green"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
@click="
|
||||
copyToClipboard(register_code).then(() =>
|
||||
$q.notify({
|
||||
color: 'positive',
|
||||
icon: 'done',
|
||||
message: $t('copy') + $t('success'),
|
||||
position: 'top',
|
||||
timeout: 1500,
|
||||
})
|
||||
)
|
||||
"
|
||||
>
|
||||
<q-tooltip>
|
||||
{{ $t("copy") }}{{ $t("register code") }}
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'offline'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("active code") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input
|
||||
type="textarea"
|
||||
v-model="active_code"
|
||||
lazy-rules
|
||||
autofocus
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
:rules="[
|
||||
(val) =>
|
||||
(val && val.length > 0) || $t('Please type something'),
|
||||
]"
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-btn
|
||||
icon="attach_file"
|
||||
round
|
||||
flat
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
class="rotate-90"
|
||||
color="green"
|
||||
@click="$refs.select_file_dialog.pickFiles($event)"
|
||||
>
|
||||
<q-tooltip>
|
||||
{{ $t("open file") }}
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="false && register_type == 'offline'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("secret key") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input v-model="secret_key"> </q-input>
|
||||
</q-item-section>
|
||||
<q-item-section avatar> ({{ $t("optional") }}) </q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'online'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("server ipaddress") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input
|
||||
v-model="server_address"
|
||||
autofocus
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
lazy-rules
|
||||
:rules="[
|
||||
(val) =>
|
||||
isIpAddress(val) || $t('Please input vaild ip address'),
|
||||
]"
|
||||
/>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'online'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("active type") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-model="active_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="forever"
|
||||
:label="$t('forever active')"
|
||||
class="offset-md-1 col"
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-btn
|
||||
icon="attach_file"
|
||||
round
|
||||
flat
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="active_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="limit"
|
||||
:label="$t('time limit active')"
|
||||
class="col"
|
||||
class="rotate-90"
|
||||
color="green"
|
||||
@click="$refs.select_file_dialog.pickFiles($event)"
|
||||
>
|
||||
<q-tooltip>
|
||||
{{ $t("open file") }}
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="false && register_type == 'offline'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("secret key") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input v-model="secret_key"> </q-input>
|
||||
</q-item-section>
|
||||
<q-item-section avatar> ({{ $t("optional") }}) </q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'online'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("server ipaddress") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input
|
||||
v-model="server_address"
|
||||
autofocus
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
lazy-rules
|
||||
:rules="[
|
||||
(val) =>
|
||||
isIpAddress(val) || $t('Please input vaild ip address'),
|
||||
]"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="active_type == 'limit'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("active time") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input
|
||||
v-model="active_hour"
|
||||
type="number"
|
||||
min="1"
|
||||
max="120"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
>
|
||||
<template v-slot:append>
|
||||
{{ $t("day") }}
|
||||
</template>
|
||||
</q-input>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="register_type == 'online'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("active type") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-model="active_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="forever"
|
||||
:label="$t('forever active')"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="active_type"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="limit"
|
||||
:label="$t('time limit active')"
|
||||
class="col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="active_type == 'limit'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("active time") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-input
|
||||
v-model="active_hour"
|
||||
type="number"
|
||||
min="1"
|
||||
max="120"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
>
|
||||
<template v-slot:append>
|
||||
{{ $t("day") }}
|
||||
</template>
|
||||
</q-input>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-separator class="q-mt-md" />
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("product") }}
|
||||
</q-item-section>
|
||||
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("function") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-checkbox
|
||||
v-model="function_output_board"
|
||||
:label="$t('output board')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-checkbox
|
||||
v-model="function_center_control"
|
||||
:label="$t('center control')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-checkbox
|
||||
v-model="function_mirroring_output"
|
||||
:label="$t('mirroring output')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-model="selected_product"
|
||||
val=""
|
||||
:label="$t('normal')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label"> </q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-checkbox
|
||||
v-model="function_custom_ISV"
|
||||
:label="$t('Custom ISV')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-checkbox
|
||||
v-model="function_magic_wall"
|
||||
@update:model-value="changeMagic()"
|
||||
:label="$t('magic wall')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-checkbox
|
||||
v-model="function_fusion"
|
||||
@update:model-value="changeFusion()"
|
||||
:label="$t('fusion')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-radio
|
||||
v-model="selected_product"
|
||||
val="magic_wall"
|
||||
:label="$t('magic wall')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-radio
|
||||
v-model="selected_product"
|
||||
val="fusion"
|
||||
:label="$t('fusion')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="selected_product == 'fusion'">
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("fusion") }}
|
||||
</q-item-section>
|
||||
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("language") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
color="cyan"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
class="offset-md-1 col"
|
||||
v-model="target_language"
|
||||
val="zh-CN"
|
||||
:label="$t('chinese')"
|
||||
/>
|
||||
<q-radio
|
||||
color="cyan"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
class="offset-md-1 col"
|
||||
v-model="target_language"
|
||||
val="en-US"
|
||||
:label="$t('english')"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-for="item of 5"
|
||||
:key="item"
|
||||
v-model="function_fusion_count"
|
||||
:val="item"
|
||||
:label="item.toString() + $t(' ') + $t('fusion out')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
v-for="item of 4"
|
||||
:key="5 + item"
|
||||
v-model="function_fusion_count"
|
||||
:val="5 + item"
|
||||
:label="
|
||||
(5 + item).toString() + $t(' ') + $t('fusion out')
|
||||
"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<div class="offset-md-1 col"></div>
|
||||
</div>
|
||||
</q-item-section>
|
||||
<q-item-section avatar> </q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("function") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-checkbox
|
||||
v-model="function_output_board"
|
||||
:label="$t('output board')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-checkbox
|
||||
v-model="function_center_control"
|
||||
:label="$t('center control')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
<q-checkbox
|
||||
v-model="function_mirroring_output"
|
||||
:label="$t('mirroring output')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label"> </q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-checkbox
|
||||
v-model="function_custom_ISV"
|
||||
:label="$t('Custom ISV')"
|
||||
color="cyan"
|
||||
class="offset-md-1 col"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-item>
|
||||
<q-item-section avatar class="header_label">
|
||||
{{ $t("language") }}
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="row q-gutter-sm">
|
||||
<q-radio
|
||||
color="cyan"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
class="offset-md-1 col"
|
||||
v-model="target_language"
|
||||
val="zh-CN"
|
||||
:label="$t('chinese')"
|
||||
/>
|
||||
<q-radio
|
||||
color="cyan"
|
||||
:loading="loading"
|
||||
:disable="loading"
|
||||
class="offset-md-1 col"
|
||||
v-model="target_language"
|
||||
val="en-US"
|
||||
:label="$t('english')"
|
||||
/>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item> </q-list
|
||||
></q-scroll-area>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator />
|
||||
|
@ -406,7 +466,10 @@ import { useI18n } from "vue-i18n";
|
|||
import GlobalData from "src/common/GlobalData";
|
||||
import QrcodeVue from "qrcode.vue";
|
||||
import { Protocol } from "src/entities/WSProtocol";
|
||||
import { EDeviceAttribute } from "src/entities/EDeviceAttribute";
|
||||
import {
|
||||
EDeviceAttribute,
|
||||
EDeviceAttributeHelper,
|
||||
} from "src/entities/EDeviceAttribute";
|
||||
import ValidationUtil from "src/common/ValidationUtil";
|
||||
|
||||
export default defineComponent({
|
||||
|
@ -440,6 +503,16 @@ export default defineComponent({
|
|||
const function_custom_ISV = ref(false);
|
||||
const function_magic_wall = ref(false);
|
||||
const function_fusion = ref(false);
|
||||
const function_fusion_count = ref(1);
|
||||
const selected_product = ref("");
|
||||
|
||||
watch(
|
||||
() => selected_product.value,
|
||||
(newValue) => {
|
||||
function_fusion.value = newValue == "fusion";
|
||||
function_magic_wall.value = newValue == "magic_wall";
|
||||
}
|
||||
);
|
||||
|
||||
const trial_days = ref(0);
|
||||
const last_days = ref(0);
|
||||
|
@ -457,6 +530,7 @@ export default defineComponent({
|
|||
trial_days.value = 0;
|
||||
register_date.value = "";
|
||||
last_days.value = 0;
|
||||
selected_product.value = "";
|
||||
|
||||
function_center_control.value = false;
|
||||
function_output_board.value = false;
|
||||
|
@ -497,7 +571,18 @@ export default defineComponent({
|
|||
$store.state.custom_defines.function_mirroring_output;
|
||||
function_magic_wall.value =
|
||||
$store.state.custom_defines.function_magic_wall;
|
||||
function_magic_wall.value = $store.state.custom_defines.function_fusion;
|
||||
function_fusion.value = $store.state.custom_defines.function_fusion;
|
||||
function_fusion_count.value =
|
||||
EDeviceAttributeHelper.getProductFusionOutputCountDefault(
|
||||
$store.state.device_attribute,
|
||||
1
|
||||
);
|
||||
|
||||
if (function_magic_wall.value) {
|
||||
selected_product.value = "magic_wall";
|
||||
} else if (function_fusion.value) {
|
||||
selected_product.value = "fusion";
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
|
@ -521,8 +606,10 @@ export default defineComponent({
|
|||
function_custom_ISV,
|
||||
function_magic_wall,
|
||||
function_fusion,
|
||||
function_fusion_count,
|
||||
function_center_control,
|
||||
function_mirroring_output,
|
||||
selected_product,
|
||||
target_language,
|
||||
copyToClipboard,
|
||||
isShow() {
|
||||
|
@ -653,7 +740,10 @@ export default defineComponent({
|
|||
attribute |= EDeviceAttribute.ProductMagicWall;
|
||||
}
|
||||
if (function_fusion.value) {
|
||||
attribute |= EDeviceAttribute.ProductFusion;
|
||||
attribute |=
|
||||
EDeviceAttributeHelper.getProdictFusionAttributeByIndex(
|
||||
function_fusion_count.value
|
||||
);
|
||||
}
|
||||
|
||||
GlobalData.getInstance()
|
||||
|
@ -694,16 +784,6 @@ export default defineComponent({
|
|||
isIpAddress(str: string) {
|
||||
return ValidationUtil.isIpAddress(str);
|
||||
},
|
||||
changeMagic() {
|
||||
if (function_magic_wall.value) {
|
||||
function_fusion.value = false;
|
||||
}
|
||||
},
|
||||
changeFusion() {
|
||||
if (function_fusion.value) {
|
||||
function_magic_wall.value = false;
|
||||
}
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
|
|
|
@ -1,38 +1,145 @@
|
|||
export enum EDeviceAttribute {
|
||||
None_UnKNow = 0x0000,
|
||||
None = 0x0000000000000001,
|
||||
OutputBoard = 0x0000000000000002,
|
||||
CenterControl = 0x0000000000000004,
|
||||
MirroringOutput = 0x0000000000000008,
|
||||
CustomISV = 0x0000000000000010,
|
||||
Reserve5 = 0x0000000000000020,
|
||||
Reserve6 = 0x0000000000000040,
|
||||
Reserve7 = 0x0000000000000080,
|
||||
Reserve8 = 0x0000000000000100,
|
||||
Reserve9 = 0x0000000000000200,
|
||||
Reserve10 = 0x0000000000000400,
|
||||
Reserve11 = 0x0000000000000800,
|
||||
Reserve12 = 0x0000000000001000,
|
||||
Reserve13 = 0x0000000000002000,
|
||||
Reserve14 = 0x0000000000004000,
|
||||
Reserve15 = 0x0000000000008000,
|
||||
Reserve16 = 0x0000000000010000,
|
||||
Reserve17 = 0x0000000000020000,
|
||||
Reserve18 = 0x0000000000040000,
|
||||
Reserve19 = 0x0000000000080000,
|
||||
Reserve20 = 0x0000000000100000,
|
||||
ProductMagicWall = 0x0000000000200000,
|
||||
ProductFusion_1 = 0x0000000000400000,
|
||||
ProductFusion_2 = 0x0000000000800000,
|
||||
ProductFusion_3 = 0x0000000001000000,
|
||||
ProductFusion_4 = 0x0000000002000000,
|
||||
ProductFusion_5 = 0x0000000004000000,
|
||||
ProductFusion_6 = 0x0000000008000000,
|
||||
ProductFusion_7 = 0x0000000010000000,
|
||||
ProductFusion_8 = 0x0000000020000000,
|
||||
ProductFusion_9 = 0x0000000040000000,
|
||||
Reserve31 = 0x0000000080000000,
|
||||
Reserve32 = 0x0000000100000000,
|
||||
Reserve33 = 0x0000000200000000,
|
||||
Reserve34 = 0x0000000400000000,
|
||||
Reserve35 = 0x0000000800000000,
|
||||
Reserve36 = 0x0000001000000000,
|
||||
Reserve37 = 0x0000002000000000,
|
||||
Reserve38 = 0x0000004000000000,
|
||||
Reserve39 = 0x0000008000000000,
|
||||
Reserve40 = 0x0000010000000000,
|
||||
Reserve41 = 0x0000020000000000,
|
||||
Reserve42 = 0x0000040000000000,
|
||||
Reserve43 = 0x0000080000000000,
|
||||
Reserve44 = 0x0000100000000000,
|
||||
Reserve45 = 0x0000200000000000,
|
||||
Reserve46 = 0x0000400000000000,
|
||||
Reserve47 = 0x0000800000000000,
|
||||
Reserve48 = 0x0001000000000000,
|
||||
Reserve49 = 0x0002000000000000,
|
||||
Reserve50 = 0x0004000000000000,
|
||||
Reserve51 = 0x0008000000000000,
|
||||
Reserve52 = 0x0010000000000000,
|
||||
Reserve53 = 0x0020000000000000,
|
||||
Reserve54 = 0x0040000000000000,
|
||||
Reserve55 = 0x0080000000000000,
|
||||
Reserve56 = 0x0100000000000000,
|
||||
Reserve57 = 0x0200000000000000,
|
||||
Reserve58 = 0x0400000000000000,
|
||||
Reserve59 = 0x0800000000000000,
|
||||
Reserve60 = 0x1000000000000000,
|
||||
Reserve61 = 0x2000000000000000,
|
||||
Reserve62 = 0x4000000000000000,
|
||||
Reserve63 = 0x8000000000000000,
|
||||
|
||||
None = 0x00000001,
|
||||
OutputBoard = 0x00000002,
|
||||
CenterControl = 0x00000004,
|
||||
MirroringOutput = 0x00000008,
|
||||
CustomISV = 0x00000010,
|
||||
Reserve5 = 0x00000020,
|
||||
Reserve6 = 0x00000040,
|
||||
Reserve7 = 0x00000080,
|
||||
Reserve8 = 0x00000100,
|
||||
Reserve9 = 0x00000200,
|
||||
Reserve10 = 0x00000400,
|
||||
Reserve11 = 0x00000800,
|
||||
Reserve12 = 0x00001000,
|
||||
Reserve13 = 0x00002000,
|
||||
Reserve14 = 0x00004000,
|
||||
Reserve15 = 0x00008000,
|
||||
Reserve16 = 0x00010000,
|
||||
Reserve17 = 0x00020000,
|
||||
Reserve18 = 0x00040000,
|
||||
Reserve19 = 0x00080000,
|
||||
Reserve20 = 0x00100000,
|
||||
ProductMagicWall = 0x00200000,
|
||||
ProductFusion = 0x00400000,
|
||||
Reserve23 = 0x00800000,
|
||||
Reserve24 = 0x01000000,
|
||||
Reserve25 = 0x02000000,
|
||||
Reserve26 = 0x04000000,
|
||||
Reserve27 = 0x08000000,
|
||||
Reserve28 = 0x10000000,
|
||||
Reserve29 = 0x20000000,
|
||||
Reserve30 = 0x40000000,
|
||||
Reserve31 = 0x80000000,
|
||||
|
||||
All = 0xffffffff,
|
||||
StandMediaControl = OutputBoard | CenterControl,
|
||||
All = 0xffffffffffffffff,
|
||||
}
|
||||
|
||||
export class EDeviceAttributeHelper {
|
||||
public static isProductFusion(attribute: number) {
|
||||
return (
|
||||
(attribute & EDeviceAttribute.ProductFusion_1) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_2) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_3) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_4) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_5) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_6) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_7) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_8) != 0 ||
|
||||
(attribute & EDeviceAttribute.ProductFusion_9) != 0
|
||||
);
|
||||
}
|
||||
|
||||
public static getProductFusionOutputCount(attribute: number) {
|
||||
if (attribute & EDeviceAttribute.ProductFusion_1) {
|
||||
return 1;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_2) {
|
||||
return 2;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_3) {
|
||||
return 3;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_4) {
|
||||
return 4;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_5) {
|
||||
return 5;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_6) {
|
||||
return 6;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_7) {
|
||||
return 7;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_8) {
|
||||
return 8;
|
||||
} else if (attribute & EDeviceAttribute.ProductFusion_9) {
|
||||
return 9;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static getProductFusionOutputCountDefault(
|
||||
attribute: number,
|
||||
default_Value: number
|
||||
) {
|
||||
const ret = EDeviceAttributeHelper.getProductFusionOutputCount(attribute);
|
||||
if (ret == 0) {
|
||||
return default_Value;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static getProdictFusionAttributeByIndex(index: number) {
|
||||
switch (index) {
|
||||
case 1:
|
||||
return EDeviceAttribute.ProductFusion_1;
|
||||
case 2:
|
||||
return EDeviceAttribute.ProductFusion_2;
|
||||
case 3:
|
||||
return EDeviceAttribute.ProductFusion_3;
|
||||
case 4:
|
||||
return EDeviceAttribute.ProductFusion_4;
|
||||
case 5:
|
||||
return EDeviceAttribute.ProductFusion_5;
|
||||
case 6:
|
||||
return EDeviceAttribute.ProductFusion_6;
|
||||
case 7:
|
||||
return EDeviceAttribute.ProductFusion_7;
|
||||
case 8:
|
||||
return EDeviceAttribute.ProductFusion_8;
|
||||
case 9:
|
||||
return EDeviceAttribute.ProductFusion_9;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -470,8 +470,9 @@ export default {
|
|||
"Please enter the points you need to add":
|
||||
"Please enter the points you need to add",
|
||||
"Whether to add control points": "Whether to add control points",
|
||||
"Reset all program control points":"Reset all program control points",
|
||||
"Reset the current program control point":"Reset the current program control point",
|
||||
"Reset all program control points": "Reset all program control points",
|
||||
"Reset the current program control point":
|
||||
"Reset the current program control point",
|
||||
"device verify key": "Device Verify Key",
|
||||
"use wss": "Use Wss",
|
||||
"server address": "Server Address",
|
||||
|
@ -490,6 +491,12 @@ export default {
|
|||
"export magic": "Export",
|
||||
"raster graph": "Raster Graph",
|
||||
"the folder name cannot start with a '.'":
|
||||
"The Folder Name Cannot Start With a '.'",
|
||||
"change resolution": "change resolution",
|
||||
"Loading please wait": "Loading please wait",
|
||||
product: "Product",
|
||||
normal: "Normal",
|
||||
"fusion out": "Out",
|
||||
"The Folder Name Cannot Start With a '.'",
|
||||
"change resolution":"change resolution",
|
||||
"Loading please wait":"Loading please wait",
|
||||
|
|
|
@ -761,6 +761,9 @@ export default {
|
|||
"Version Mismatch !": "版本不匹配!",
|
||||
"Version Mismatch ! Please Upgrade The Software Again ! Otherwise, The File Function Cannot Be Used !":
|
||||
"版本不匹配!请重新升级软件!否则文件功能无法正常使用!",
|
||||
product: "产品",
|
||||
normal: "普通",
|
||||
"fusion out": "出",
|
||||
"Please enter the square number":"请输入平方数",
|
||||
"Change projector layout":"更改投影机布局"
|
||||
};
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { EDeviceAttributeHelper } from "./../entities/EDeviceAttribute";
|
||||
import { ConnectTableEntity } from "src/entities/ConnectTableEntity";
|
||||
import {
|
||||
PollingEntity,
|
||||
|
@ -440,7 +441,7 @@ export default store(function (/* { ssrContext } */) {
|
|||
state.custom_defines.function_magic_wall =
|
||||
(state.device_attribute & EDeviceAttribute.ProductMagicWall) != 0;
|
||||
state.custom_defines.function_fusion =
|
||||
(state.device_attribute & EDeviceAttribute.ProductFusion) != 0;
|
||||
EDeviceAttributeHelper.isProductFusion(state.device_attribute);
|
||||
}
|
||||
},
|
||||
setAvancedDebug(state: StateInterface, playload?: any) {
|
||||
|
|
Loading…
Reference in New Issue