rootfs_enc1v2_hi3520d_20231229
This commit is contained in:
parent
a593839f20
commit
9f42b6e939
Binary file not shown.
Binary file not shown.
|
@ -29,5 +29,6 @@
|
|||
"wifi",
|
||||
"dongle",
|
||||
"other"
|
||||
]
|
||||
],
|
||||
"gw":"eth0"
|
||||
}
|
||||
|
|
|
@ -1,4 +1,15 @@
|
|||
[
|
||||
{
|
||||
"version": "2.9.0 build 20231229",
|
||||
"logs": [
|
||||
"经典版:修复切换指定输入源的布局,有概率输入源切入无效问题",
|
||||
"标准版:修复集成通信页面未绑定导播软件,导致的页面加载异常问题",
|
||||
"标准版:修复设置LPH后,切换版本后设置无效的问题",
|
||||
"标准版:解码设置页面新增一键hdmi输出的功能",
|
||||
"移除LPH设置水印接口多余的返回值",
|
||||
"网络管理功能优化"
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "2.8.0 build 20231130",
|
||||
"logs": [
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"app": "2.0.0 build 20220512_869",
|
||||
"sdk": "2.0.0 build 20220518_20716",
|
||||
"sys": "2.8.0 build 20231130"
|
||||
"sys": "2.9.0 build 20231229"
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@ if [ -f /link/config/auto/webVer.json ] && web=$(jq -r ".web" /link/config/auto/
|
|||
sed -i '/<div class=".*d-flex.*">/,/<\/div>/ s/>[^<]*</>'"${footer}"'</g' /link/webflex/public/footfoot.inc
|
||||
rm -rf /link/webflex/assets/img
|
||||
ln -s /link/web/img /link/webflex/assets/
|
||||
rm -rf /link/webflex/.htaccess
|
||||
ln -s /link/web/.htaccess /link/webflex/
|
||||
cp /link/web/favicon.ico /link/webflex/
|
||||
sync
|
||||
/link/shell/net.sh &
|
||||
|
@ -22,13 +24,14 @@ else
|
|||
fi
|
||||
|
||||
if [ -d /sys/class/net/eth1 ]; then
|
||||
/link/shell/setMac2.sh
|
||||
if [ -d /sys/class/net/eth2 ];then
|
||||
if [ "$fac" == "ENC2" ] || [ "$fac" == "ENC2V2" ] || [ "$fac" == "ENC2_SS528" ]; then
|
||||
/link/shell/setMac2.sh eth2
|
||||
/link/shell/setNetwork2.sh eth2
|
||||
fi
|
||||
else
|
||||
if [ "$fac" != "ENC2" ] && [ "$fac" != "ENC2V2" ] && [ "$fac" != "ENC2V2_SS528" ]; then
|
||||
/link/shell/setMac2.sh eth1
|
||||
/link/shell/setNetwork2.sh eth1
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
{
|
||||
"files": {
|
||||
"main.css": "./mixer/static/css/main.375af961.chunk.css",
|
||||
"main.js": "./mixer/static/js/main.84be4e27.chunk.js",
|
||||
"main.js.map": "./mixer/static/js/main.84be4e27.chunk.js.map",
|
||||
"main.js": "./mixer/static/js/main.5f5e49d2.chunk.js",
|
||||
"main.js.map": "./mixer/static/js/main.5f5e49d2.chunk.js.map",
|
||||
"runtime-main.js": "./mixer/static/js/runtime-main.c45edf70.js",
|
||||
"runtime-main.js.map": "./mixer/static/js/runtime-main.c45edf70.js.map",
|
||||
"static/css/2.0b7c8b97.chunk.css": "./mixer/static/css/2.0b7c8b97.chunk.css",
|
||||
"static/js/2.f2aad125.chunk.js": "./mixer/static/js/2.f2aad125.chunk.js",
|
||||
"static/js/2.f2aad125.chunk.js.map": "./mixer/static/js/2.f2aad125.chunk.js.map",
|
||||
"index.html": "./mixer/index.html",
|
||||
"precache-manifest.58ca0a035d7d4a54ca84834ef500469e.js": "./mixer/precache-manifest.58ca0a035d7d4a54ca84834ef500469e.js",
|
||||
"precache-manifest.1a06c0869ff880086e3a9be9dac86c16.js": "./mixer/precache-manifest.1a06c0869ff880086e3a9be9dac86c16.js",
|
||||
"service-worker.js": "./mixer/service-worker.js",
|
||||
"static/css/2.0b7c8b97.chunk.css.map": "./mixer/static/css/2.0b7c8b97.chunk.css.map",
|
||||
"static/css/main.375af961.chunk.css.map": "./mixer/static/css/main.375af961.chunk.css.map",
|
||||
"static/js/2.f2aad125.chunk.js.LICENSE.txt": "./mixer/static/js/2.f2aad125.chunk.js.LICENSE.txt",
|
||||
"static/js/main.84be4e27.chunk.js.LICENSE.txt": "./mixer/static/js/main.84be4e27.chunk.js.LICENSE.txt"
|
||||
"static/js/main.5f5e49d2.chunk.js.LICENSE.txt": "./mixer/static/js/main.5f5e49d2.chunk.js.LICENSE.txt"
|
||||
},
|
||||
"entrypoints": [
|
||||
"static/js/runtime-main.c45edf70.js",
|
||||
"static/css/2.0b7c8b97.chunk.css",
|
||||
"static/js/2.f2aad125.chunk.js",
|
||||
"static/css/main.375af961.chunk.css",
|
||||
"static/js/main.84be4e27.chunk.js"
|
||||
"static/js/main.5f5e49d2.chunk.js"
|
||||
]
|
||||
}
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./mixer/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./mixer/logo192.png"/><link rel="manifest" href="./mixer/manifest.json"/><title>React App</title><link href="./mixer/static/css/2.0b7c8b97.chunk.css" rel="stylesheet"><link href="./mixer/static/css/main.375af961.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],f=r[1],a=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var f=t[l];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./mixer/";var l=this.webpackJsonpmixer=this.webpackJsonpmixer||[],f=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a++)r(l[a]);var p=f;t()}([])</script><script src="./mixer/static/js/2.f2aad125.chunk.js"></script><script src="./mixer/static/js/main.84be4e27.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./mixer/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./mixer/logo192.png"/><link rel="manifest" href="./mixer/manifest.json"/><title>React App</title><link href="./mixer/static/css/2.0b7c8b97.chunk.css" rel="stylesheet"><link href="./mixer/static/css/main.375af961.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],f=r[1],a=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var f=t[l];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./mixer/";var l=this.webpackJsonpmixer=this.webpackJsonpmixer||[],f=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a++)r(l[a]);var p=f;t()}([])</script><script src="./mixer/static/js/2.f2aad125.chunk.js"></script><script src="./mixer/static/js/main.5f5e49d2.chunk.js"></script></body></html>
|
|
@ -0,0 +1,34 @@
|
|||
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||
{
|
||||
"revision": "17cea485705a58e350102e3a5d2effcb",
|
||||
"url": "./mixer/index.html"
|
||||
},
|
||||
{
|
||||
"revision": "25cc111d980ef7eb4b05",
|
||||
"url": "./mixer/static/css/2.0b7c8b97.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "be6c0e6e77d1c21ca23f",
|
||||
"url": "./mixer/static/css/main.375af961.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "25cc111d980ef7eb4b05",
|
||||
"url": "./mixer/static/js/2.f2aad125.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "4390933dc3b3a92d4f565fd4f47c3cd7",
|
||||
"url": "./mixer/static/js/2.f2aad125.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "be6c0e6e77d1c21ca23f",
|
||||
"url": "./mixer/static/js/main.5f5e49d2.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "5c84e2504d745b1010aeb6ce2aad7554",
|
||||
"url": "./mixer/static/js/main.5f5e49d2.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "96af6c8d9af51963848a",
|
||||
"url": "./mixer/static/js/runtime-main.c45edf70.js"
|
||||
}
|
||||
]);
|
|
@ -14,7 +14,7 @@
|
|||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||
|
||||
importScripts(
|
||||
"./mixer/precache-manifest.58ca0a035d7d4a54ca84834ef500469e.js"
|
||||
"./mixer/precache-manifest.1a06c0869ff880086e3a9be9dac86c16.js"
|
||||
);
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,26 @@
|
|||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.4
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2019-04-08
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.4.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2019-05-01T21:04Z
|
||||
*/
|
||||
|
||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@ -759,7 +759,7 @@ input[type="password"]::-ms-reveal{
|
|||
}
|
||||
|
||||
.lp-cursor-pointer {
|
||||
cursor: pointer;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
.lp-display-hide {
|
||||
|
@ -880,9 +880,22 @@ input[type="password"]::-ms-reveal{
|
|||
background-clip: unset;
|
||||
}
|
||||
|
||||
.login .input-group-text {
|
||||
width: 46px;
|
||||
}
|
||||
|
||||
.login .input-group-text i {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.login .input-group input {
|
||||
line-height: 2.1rem;
|
||||
font-size: 1.3rem;
|
||||
line-height: 2.5rem;
|
||||
font-size: 1.2rem;
|
||||
border-left-width: 2px !important;
|
||||
}
|
||||
|
||||
.login .form-check-input:focus {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.dashboard .w_chart {
|
||||
|
|
|
@ -558,6 +558,10 @@
|
|||
border-color: transparent;
|
||||
}
|
||||
|
||||
[data-bs-theme=dark] .mix .lay-border {
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
[data-bs-theme=dark] .sys .input-group-text {
|
||||
color: var(--bs-body-color-semi);
|
||||
border: 2px solid var(--bs-border-color-translucent) !important;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
--bs-default-auth-border-color:#495057;
|
||||
--bs-default-body-color:#555;
|
||||
--bs-default-bg-color:#212529;
|
||||
--bs-default-txt-color:#555;
|
||||
--bs-default-active-bg-color:#ffbb00;
|
||||
--bs-default-acitve-color:#eeaa00;
|
||||
--bs-default-hr-color:#bbbbbb;
|
||||
|
@ -58,8 +59,7 @@
|
|||
}
|
||||
|
||||
[data-bs-theme=default] .sidebar-wrapper .sidebar-bottom .dropdown-menu {
|
||||
|
||||
background-color: var(--bs-default-bg-color-2);
|
||||
/*background-color: var(--bs-default-bg-color);*/
|
||||
border-color:var(--bs-border-color-translucent);
|
||||
}
|
||||
|
||||
|
@ -373,8 +373,17 @@
|
|||
}
|
||||
|
||||
[data-bs-theme=default] .login .input-group-text {
|
||||
color: var(--bs-body-color-semi);
|
||||
background-color: var(--bs-body-bg-color);
|
||||
color: var(--bs-default-txt-color);
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
[data-bs-theme=default] .login .input-group-text:nth-child(3) {
|
||||
color: var(--bs-default-txt-color);
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
[data-bs-theme=default] .login .input-group input {
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
[data-bs-theme=default] .login ::placeholder {
|
||||
|
@ -420,6 +429,10 @@
|
|||
color: #ddd;
|
||||
}
|
||||
|
||||
[data-bs-theme=default] .mix .lay-border {
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
[data-bs-theme=default] .record .rec-file-title {
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
|
|
|
@ -8,5 +8,4 @@ Promise.all([queryData("config/lang.json"),queryData("config/theme_standard.json
|
|||
html.setAttribute('data-bs-theme', themeConf.used);
|
||||
document.body.style.display = "block";
|
||||
html.dispatchEvent(new Event("loaded"));
|
||||
});
|
||||
|
||||
});
|
|
@ -98,22 +98,29 @@ export const statusTemperatureComponent = {
|
|||
</div>
|
||||
</div>
|
||||
</div>`,
|
||||
props: ['value','color'],
|
||||
props: {
|
||||
modelValue: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
activeColor: {
|
||||
type: String,
|
||||
default: "#fb0"
|
||||
}
|
||||
},
|
||||
setup(props, context) {
|
||||
|
||||
const tmp_mask = ref(null);
|
||||
const tmp_text = ref(null);
|
||||
|
||||
const { value } = toRefs(props);
|
||||
const { modelValue,activeColor } = toRefs(props);
|
||||
|
||||
watch(value,()=>{
|
||||
tmp_mask.value.style.bottom = props.value + '%';
|
||||
tmp_text.value.textContent = props.value + '℃';
|
||||
watch(modelValue,()=>{
|
||||
tmp_mask.value.style.bottom = modelValue.value + '%';
|
||||
tmp_text.value.textContent = modelValue.value + '℃';
|
||||
})
|
||||
|
||||
onMounted(()=>{
|
||||
tmp_mask.value.parentElement.style.background = props.color;
|
||||
})
|
||||
onMounted(() => tmp_mask.value.parentElement.style.background = activeColor.value);
|
||||
|
||||
return { tmp_mask,tmp_text }
|
||||
}
|
||||
|
@ -883,7 +890,16 @@ export const vueColorPickerComponent = {
|
|||
<div class="arrow" data-popper-arrow></div>
|
||||
</div>
|
||||
</div>`,
|
||||
props: ['modelValue','direct'],
|
||||
props: {
|
||||
modelValue: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
direct: {
|
||||
type: String,
|
||||
default: "bottom"
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"sketch-picker": defineAsyncComponent(() => {
|
||||
return import('../plugins/vueColor/vue3.color.esm.js').then(module => {
|
||||
|
@ -993,10 +1009,39 @@ export const uploadModalComponent = {
|
|||
</div>
|
||||
</div>
|
||||
</div>`,
|
||||
props:['modalTitle','modalShow','modalFade','uploadTip',"uploadAction",'uploadAllow','uploadCount'],
|
||||
props:{
|
||||
modalTitle: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
modalShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
modalFade: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
uploadTip: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
uploadAction: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
uploadAllow: {
|
||||
type: Array,
|
||||
default: ""
|
||||
},
|
||||
uploadCount: {
|
||||
type: [Number,String],
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
setup(props,context) {
|
||||
|
||||
const { modalShow,modalFade } = toRefs(props);
|
||||
const { modalShow,modalFade,uploadAllow } = toRefs(props);
|
||||
|
||||
const state = {
|
||||
modal : ref(null),
|
||||
|
@ -1058,7 +1103,7 @@ export const uploadModalComponent = {
|
|||
dropZoneTitle: state.uploadTip,
|
||||
showClose: false,
|
||||
browseClass:"btn btn-primary btn-df",
|
||||
allowedFileExtensions: eval('('+props.uploadAllow+')'),
|
||||
allowedFileExtensions: uploadAllow.value,
|
||||
uploadUrl: props.uploadAction,
|
||||
maxFileCount: isNaN(Number(props.uploadCount)) ? 1 : Number(props.uploadCount)
|
||||
});
|
||||
|
@ -1085,6 +1130,15 @@ export const uploadModalComponent = {
|
|||
initBsModal();
|
||||
initUploadFile();
|
||||
})
|
||||
const observer = new mutationObserver(() => {
|
||||
updateLangText();
|
||||
});
|
||||
const config = {
|
||||
attributes: true,
|
||||
attributeFilter: ["data-bs-language"],
|
||||
subtree: false
|
||||
};
|
||||
observer.observe(html, config);
|
||||
})
|
||||
|
||||
return { ...state,modalFade }
|
||||
|
@ -1161,19 +1215,21 @@ export const upgradeModalComponent = {
|
|||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="lp-cursor-pointer" @click="handleUpdatePatch(index)">
|
||||
<a v-if="item.allow" class="lp-cursor-pointer" @click="handleUpdatePatch(index)">
|
||||
<div v-if="upgradePatch.id === item.id && hadUpdate">{{updatePercent}}%</div>
|
||||
<div v-else>
|
||||
<cn>更新</cn>
|
||||
<en>Update</en>
|
||||
</div>
|
||||
</a>
|
||||
<a v-else>/</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="lp-cursor-pointer" @click="handleDownloadPatch(index)">
|
||||
<a v-if="item.allow" class="lp-cursor-pointer" @click="handleDownloadPatch(index)">
|
||||
<cn>下载</cn>
|
||||
<en>Download</en>
|
||||
</a>
|
||||
<a v-else>/</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -1203,7 +1259,24 @@ export const upgradeModalComponent = {
|
|||
</div>
|
||||
</div>
|
||||
</div>`,
|
||||
props:['modalShow','modalFade','checkUpgrade','patchSn'],
|
||||
props: {
|
||||
modalShow: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
modalFade: {
|
||||
type:Boolean,
|
||||
default: true
|
||||
},
|
||||
checkUpgrade: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
patchSn: {
|
||||
type: String,
|
||||
default:""
|
||||
}
|
||||
},
|
||||
setup(props,context) {
|
||||
|
||||
const { modalFade,checkUpgrade,patchSn } = toRefs(props);
|
||||
|
@ -1256,6 +1329,16 @@ export const upgradeModalComponent = {
|
|||
}
|
||||
state.systemPatchs.splice(0);
|
||||
state.systemPatchs.push(...result.data);
|
||||
let hadImpact = false;
|
||||
for(let i=0;i<state.systemPatchs.length;i++) {
|
||||
state.systemPatchs[i].allow = true;
|
||||
if(!hadImpact) {
|
||||
const impact = state.systemPatchs[i].impact;
|
||||
hadImpact = impact === "1";
|
||||
} else {
|
||||
state.systemPatchs[i].allow = false;
|
||||
}
|
||||
}
|
||||
|
||||
result = await func("/upgrade/checkVersionMaster");
|
||||
if (result.status === "error") {
|
||||
|
@ -1309,6 +1392,16 @@ export const upgradeModalComponent = {
|
|||
}
|
||||
state.systemPatchs.splice(0);
|
||||
state.systemPatchs.push(...result.data);
|
||||
let hadImpact = false;
|
||||
for(let i=0;i<state.systemPatchs.length;i++) {
|
||||
state.systemPatchs[i].allow = true;
|
||||
if(!hadImpact) {
|
||||
const impact = state.systemPatchs[i].impact;
|
||||
hadImpact = impact === "1";
|
||||
} else {
|
||||
state.systemPatchs[i].allow = false;
|
||||
}
|
||||
}
|
||||
state.bsModal.show();
|
||||
}
|
||||
}
|
||||
|
@ -1398,25 +1491,6 @@ export const upgradeModalComponent = {
|
|||
type = "update";
|
||||
}
|
||||
|
||||
const params = {
|
||||
action:"download", name:name,
|
||||
chip:chip, type:type
|
||||
}
|
||||
|
||||
// const fileName = name;
|
||||
// axios_post('/link/upgrade.php',params, { responseType: 'arraybuffer' })
|
||||
// .then(data => {
|
||||
// const blob = new Blob([data], { type: 'application/octet-stream' });
|
||||
// const url = URL.createObjectURL(blob);
|
||||
// const a = document.createElement('a');
|
||||
// a.href = url;
|
||||
// a.download = fileName;
|
||||
// document.body.appendChild(a);
|
||||
// a.click();
|
||||
// document.body.removeChild(a);
|
||||
// URL.revokeObjectURL(url);
|
||||
// })
|
||||
|
||||
const url = "http://help.linkpi.cn:5735/upgrade/"+chip+"/"+type+"/"+name;
|
||||
const downName = "";
|
||||
const a = document.createElement('a');
|
||||
|
@ -1614,16 +1688,23 @@ export const loadingButtonComponent = {
|
|||
<slot></slot>
|
||||
</span>
|
||||
</button>`,
|
||||
props:['customClass','hadLoading'],
|
||||
props: {
|
||||
customClass: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
hadLoading: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
setup(props,context) {
|
||||
|
||||
const { hadLoading } = toRefs(props);
|
||||
|
||||
const onButtonClick = () => {
|
||||
context.emit("button-click","click")
|
||||
}
|
||||
|
||||
return { hadLoading,onButtonClick }
|
||||
return { onButtonClick }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ export const useNetManagerConf = (tip = "tip") => {
|
|||
|
||||
const [conf,mac, mac2] = await Promise.all([
|
||||
queryData("config/netManager.json"),
|
||||
queryData("config/mac",{responseType: 'text'}),
|
||||
await checkFileExists("config/mac") ? queryData("config/mac",{responseType: 'text'}) : Promise.resolve(""),
|
||||
await checkFileExists("config/mac2") ? queryData("config/mac2",{responseType: 'text'}) : Promise.resolve("")
|
||||
]);
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
/**
|
||||
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
||||
* Original file: /npm/default-passive-events@2.0.0/dist/index.module.js
|
||||
*
|
||||
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||
*/
|
||||
var e,t=["scroll","wheel","touchstart","touchmove","touchenter","touchend","touchleave","mouseout","mouseleave","mouseup","mousedown","mousemove","mouseenter","mousewheel","mouseover"];if(function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}()){var o=EventTarget.prototype.addEventListener;e=o,EventTarget.prototype.addEventListener=function(o,r,n){var s,a="object"==typeof n&&null!==n,i=a?n.capture:n;(n=a?function(e){var t=Object.getOwnPropertyDescriptor(e,"passive");return t&&!0!==t.writable&&void 0===t.set?Object.assign({},e):e}(n):{}).passive=void 0!==(s=n.passive)?s:-1!==t.indexOf(o)&&!0,n.capture=void 0!==i&&i,e.call(this,o,r,n)},EventTarget.prototype.addEventListener._original=e}
|
||||
//# sourceMappingURL=/sm/9e4a60b7470909b12cee41c1a75bf776dfc8fdd591416e18f74ab92915ed263e.map
|
|
@ -34,7 +34,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<tmp-compt :value="tmp" :color="theme_color"></tmp-compt>
|
||||
<tmp-compt v-model="tmp" :active-color="theme_color"></tmp-compt>
|
||||
<div>
|
||||
<cn>核心温度</cn>
|
||||
<en>Core temperature</en>
|
||||
|
@ -113,7 +113,7 @@
|
|||
|
||||
<script type="module">
|
||||
import { rpc } from "./assets/js/lp.utils.js";
|
||||
import { useDefaultConf,useHardwareConf } from "./assets/js/vue.hooks.js";
|
||||
import { useDefaultConf } from "./assets/js/vue.hooks.js";
|
||||
import { ignoreCustomElementPlugin,bootstrapSwitchComponent,statusPieChartComponent,statusTemperatureComponent,netFlotChartComponent } from "./assets/js/vue.helper.js"
|
||||
import vue from "./assets/js/vue.build.js";
|
||||
import mutationObserver from './assets/plugins/polyfill/mutationobserver.esm.js';
|
||||
|
@ -151,7 +151,6 @@
|
|||
}
|
||||
|
||||
const { defaultConf } = useDefaultConf();
|
||||
const { hardwareConf } = useHardwareConf();
|
||||
|
||||
const getData1 = (d) => {
|
||||
state.data1.shift();
|
||||
|
|
|
@ -162,6 +162,10 @@
|
|||
<cn>开关</cn>
|
||||
<en>enable</en>
|
||||
</div>
|
||||
<div class="col text-center">
|
||||
<cn>HDMI</cn>
|
||||
<en>HDMI</en>
|
||||
</div>
|
||||
</div>
|
||||
<hr >
|
||||
<div class="row mt-1" v-for="(item,index) in handleNetConf" :key="item.id">
|
||||
|
@ -202,6 +206,12 @@
|
|||
<div class="col lp-align-center">
|
||||
<bs-switch v-model="item.enable"></bs-switch>
|
||||
</div>
|
||||
<div class="col lp-align-center">
|
||||
<button type="button" class="btn btn-primary border-1 px-3" @click="onDisplayHdmi(item.id,item.enable)">
|
||||
<cn>输出</cn>
|
||||
<en>display</en>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr >
|
||||
</div>
|
||||
|
@ -225,7 +235,11 @@
|
|||
<cn>开关</cn>
|
||||
<en>enable</en>
|
||||
</div>
|
||||
<div class="col-7"></div>
|
||||
<div class="col text-center">
|
||||
<cn>HDMI</cn>
|
||||
<en>HDMI</en>
|
||||
</div>
|
||||
<div class="col-6"></div>
|
||||
</div>
|
||||
<hr >
|
||||
<div class="row mt-1">
|
||||
|
@ -243,7 +257,13 @@
|
|||
<div class="col lp-align-center">
|
||||
<bs-switch v-model="handleVideoFileConf.enable"></bs-switch>
|
||||
</div>
|
||||
<div class="col-7"></div>
|
||||
<div class="col lp-align-center">
|
||||
<button type="button" class="btn btn-primary border-1 px-3" @click="onDisplayHdmi(handleVideoFileConf.id,handleVideoFileConf.enable)">
|
||||
<cn>输出</cn>
|
||||
<en>display</en>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-6"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -331,7 +351,7 @@
|
|||
<?php include ("./public/foot.inc") ?>
|
||||
<script type="module">
|
||||
|
||||
import { rpc,extend,deepCopy,confirm,swap,clearReactiveArray,clearReactiveObject,formatTime } from "./assets/js/lp.utils.js";
|
||||
import { rpc, extend, deepCopy, confirm, swap, clearReactiveArray, clearReactiveObject, formatTime, alertMsg } from "./assets/js/lp.utils.js";
|
||||
import { useDefaultConf,useUsbFilesConf,useHardwareConf } from "./assets/js/vue.hooks.js";
|
||||
import { ignoreCustomElementPlugin,bootstrapSwitchComponent,multipleSelectComponent,nouiSliderComponent,languageOptionDirective } from "./assets/js/vue.helper.js"
|
||||
import vue from "./assets/js/vue.build.js";
|
||||
|
@ -373,6 +393,17 @@
|
|||
})
|
||||
})
|
||||
|
||||
const onDisplayHdmi = (chnId,chnEnable) => {
|
||||
if(chnEnable) {
|
||||
const mix = defaultConf.find(item => item.type === "mix");
|
||||
mix.output.src = chnId;
|
||||
updateDefaultConf("noTip").then(()=>{
|
||||
alertMsg("<cn>输出至HDMI成功</cn><en>Display hdmi successfully!</en>","success");
|
||||
})
|
||||
} else
|
||||
alertMsg("<cn>通道未开启</cn><en>Display hdmi successfully!</en>","error");
|
||||
}
|
||||
|
||||
const handleVideoFileConf = computed(()=>{
|
||||
if(defaultConf.length > 0) {
|
||||
return defaultConf.find(item => {
|
||||
|
@ -501,7 +532,7 @@
|
|||
});
|
||||
|
||||
return {...state,defaultConf,hardwareConf,handleVideoFileConf,handleUsbMp4File,onAddVideoFile, onVideoFileOption,formatTime,onTimelineSliderEnd,
|
||||
onHandleFileDuration,onHandleFilePostion,handleNetConf,saveGlobalConfByLocal,saveDefaultConf}
|
||||
onHandleFileDuration,onHandleFilePostion,onDisplayHdmi,handleNetConf,saveGlobalConfByLocal,saveDefaultConf}
|
||||
}
|
||||
});
|
||||
app.use(ignoreCustomElementPlugin);
|
||||
|
|
|
@ -387,7 +387,9 @@
|
|||
dev.title = intercomConf.intercom.name;
|
||||
dev.talking = state.intercomState.talking;
|
||||
}
|
||||
const count = state.intercomState.tally.length;
|
||||
let count = 0;
|
||||
if(state.intercomState.tally)
|
||||
count = state.intercomState.tally.length;
|
||||
if(idx < count)
|
||||
dev.state = state.intercomState.tally[idx];
|
||||
else
|
||||
|
|
|
@ -46,13 +46,23 @@ class Layout extends Verify
|
|||
$result['srcA'] = $item['srcA'];
|
||||
foreach ($defLays as $defLay)
|
||||
{
|
||||
$layList = [];
|
||||
$layList = [];$layList1=[];
|
||||
$layouts = $defLay['layouts'];
|
||||
foreach ($layouts as $layout)
|
||||
{
|
||||
$pos = $layout['pos'];
|
||||
//按顺序生成新对象,方便后面对比
|
||||
$lay = array(
|
||||
'a' => $pos['a'],
|
||||
'x' => $pos['x'],
|
||||
'y' => $pos ['y'],
|
||||
'w' => $pos['w'],
|
||||
'h' => $pos['h'],
|
||||
'index' => $pos['index']
|
||||
);
|
||||
array_push($layList,$lay);
|
||||
|
||||
$lay1 = array(
|
||||
'a' => $pos['a'],
|
||||
'h' => $pos['h'],
|
||||
'index' => $pos['index'],
|
||||
|
@ -60,9 +70,9 @@ class Layout extends Verify
|
|||
'x' => $pos['x'],
|
||||
'y' => $pos ['y']
|
||||
);
|
||||
array_push($layList,$lay);
|
||||
array_push($layList1,$lay1);
|
||||
}
|
||||
if(json_encode($item['layout']) == json_encode($layList))
|
||||
if(json_encode($item['layout']) == json_encode($layList) || json_encode($item['layout']) == json_encode($layList1))
|
||||
{
|
||||
$result['curLayId'] = $defLay['layId'];
|
||||
$result['curLayName'] = $defLay['layName'];
|
||||
|
|
|
@ -128,7 +128,7 @@ class Root extends Basic
|
|||
$ctx = 'location /link {rewrite ^(.*)/link/([a-zA-Z0-9\_]+)/([a-zA-Z0-9\_]+)$ $1/link/monitor.php?class=$2&func=$3&verify=false&login=true last;}';
|
||||
if($param == '3')
|
||||
$ctx = 'location /link {rewrite ^(.*)/link/([a-zA-Z0-9\_]+)/([a-zA-Z0-9\_]+)$ $1/link/monitor.php?class=$2&func=$3&verify=false&login=false last;}';
|
||||
file_put_contents('/link/web/.htaccess',$ctx);
|
||||
file_put_contents('/link/webflex/.htaccess',$ctx);
|
||||
exec('/usr/nginx/sbin/nginx -p /usr/nginx -s reload');
|
||||
return $this->handleRet($param, 'success', '保存成功', 'save successfully');
|
||||
}
|
||||
|
|
|
@ -59,11 +59,10 @@ foreach ($configFiles as $historyFile) {
|
|||
continue;
|
||||
|
||||
if(!strpos($currentFile, ".json") || strpos($currentFile, "version.json") ||
|
||||
strpos($currentFile, "net.json") || strpos($currentFile, "net2.json") || strpos($currentFile, "netEx.json"))
|
||||
strpos($currentFile, "net.json") || strpos($currentFile, "net2.json") ||
|
||||
strpos($currentFile, "netEx.json") || strpos($currentFile,"netManager.json"))
|
||||
continue;
|
||||
|
||||
echo $currentFile."\n";
|
||||
|
||||
$historyCtx = json_decode(file_get_contents($historyFile));
|
||||
$currentCtx = json_decode(file_get_contents($currentFile));
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<div class="container-fluid login auth-cover lp-align-center" id="app">
|
||||
<div class="card border-3" style="width: 430px">
|
||||
<div class="card border-3" style="width: 400px">
|
||||
<div class="card-body p-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
|
@ -17,20 +17,20 @@
|
|||
<form @submit.prevent="handleSubmit" class="row g-3" action="/link/action.php" method="post" ref="form" autocomplete="off">
|
||||
<div class="col-12">
|
||||
<div class="input-group">
|
||||
<div class="input-group-text border-0 lp-cursor-pointer input-group-title"><i class="fa-solid fa-user font-17"></i></div>
|
||||
<div class="input-group-text border-0 lp-cursor-pointer"><i class="fa-solid fa-user"></i></div>
|
||||
<input v-model.trim.lazy="username" type="text" class="form-control border-0 border-start" name="username">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div class="input-group">
|
||||
<div class="input-group-text border-0 lp-cursor-pointer input-group-title"><i class="fa-solid fa-key font-17"></i></div>
|
||||
<div class="input-group-text border-0 lp-cursor-pointer"><i class="fa-solid fa-key"></i></div>
|
||||
<input v-model.trim.lazy="password" :type="!showPasswd ? 'password' : 'text'" class="form-control border-0 border-start input-passwd" name="password">
|
||||
<div class="input-group-text border-0 lp-cursor-pointer font-16" @click="showPasswd = !showPasswd"><i :class="['fa-regular',{'fa-eye-slash':showPasswd},{'fa-eye ':!showPasswd}]"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-check form-switch form-check-primary border-0">
|
||||
<input class="form-check-input" type="checkbox" v-model="remember">
|
||||
<input class="form-check-input lp-cursor-pointer" type="checkbox" v-model="remember">
|
||||
<label class="form-check-label"><cn>记住密码</cn><en>Remember Me</en></label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -61,7 +61,7 @@
|
|||
form: ref(null),
|
||||
username: ref(""),
|
||||
password: ref(""),
|
||||
remember: ref(true),
|
||||
remember: ref(false),
|
||||
showPasswd:ref(false)
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@
|
|||
let param = getUrlParam("u");
|
||||
if(param === "e") {
|
||||
alertMsg("<cn>账号或密码错误</cn><en>The account or password is incorrect</en>","error")
|
||||
//removeUrlParam();
|
||||
removeUrlParam();
|
||||
}
|
||||
})
|
||||
return { ...state,handleSubmit }
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<div class="card-body pb-4" >
|
||||
<div class="lp-aspect-ratio">
|
||||
<div class="aspect-ratio-content bg-black">
|
||||
<div v-for="(item,index) in handleActiveDefLayConf.layouts" :style="{position:'absolute',width:item.pos.w * 100+'%',height:item.pos.h*100+'%',left:item.pos.x*100+'%',top:item.pos.y*100+'%'}">
|
||||
<div class="lay-border" v-for="(item,index) in handleActiveDefLayConf.layouts" :style="{position:'absolute',width:item.pos.w * 100+'%',height:item.pos.h*100+'%',left:item.pos.x*100+'%',top:item.pos.y*100+'%'}">
|
||||
<div :style="{width:'100%',height:'100%',backgroundColor: handleLayBackColor(index)}">
|
||||
<div class="d-flex align-items-center gap-1 border-0 px-2 py-1">
|
||||
<div class="flex-grow-1">
|
||||
|
@ -147,8 +147,10 @@
|
|||
});
|
||||
|
||||
const handleActiveVolume = index => {
|
||||
const idx = defaultConf[state.mixIndex.value].srcV[index].toString();
|
||||
return !defaultConf[state.mixIndex.value].srcA.includes(idx) && !defaultConf[state.mixIndex.value].srcA.includes(Number(idx));
|
||||
if(index < defaultConf[state.mixIndex.value].srcV.length) {
|
||||
const idx = defaultConf[state.mixIndex.value].srcV[index].toString();
|
||||
return !defaultConf[state.mixIndex.value].srcA.includes(idx) && !defaultConf[state.mixIndex.value].srcA.includes(Number(idx));
|
||||
}
|
||||
};
|
||||
|
||||
const onUpdateActiveVolume = chnId => {
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
{
|
||||
"files": {
|
||||
"main.css": "./mixer/static/css/main.375af961.chunk.css",
|
||||
"main.js": "./mixer/static/js/main.84be4e27.chunk.js",
|
||||
"main.js.map": "./mixer/static/js/main.84be4e27.chunk.js.map",
|
||||
"main.js": "./mixer/static/js/main.5f5e49d2.chunk.js",
|
||||
"main.js.map": "./mixer/static/js/main.5f5e49d2.chunk.js.map",
|
||||
"runtime-main.js": "./mixer/static/js/runtime-main.c45edf70.js",
|
||||
"runtime-main.js.map": "./mixer/static/js/runtime-main.c45edf70.js.map",
|
||||
"static/css/2.0b7c8b97.chunk.css": "./mixer/static/css/2.0b7c8b97.chunk.css",
|
||||
"static/js/2.f2aad125.chunk.js": "./mixer/static/js/2.f2aad125.chunk.js",
|
||||
"static/js/2.f2aad125.chunk.js.map": "./mixer/static/js/2.f2aad125.chunk.js.map",
|
||||
"index.html": "./mixer/index.html",
|
||||
"precache-manifest.58ca0a035d7d4a54ca84834ef500469e.js": "./mixer/precache-manifest.58ca0a035d7d4a54ca84834ef500469e.js",
|
||||
"precache-manifest.1a06c0869ff880086e3a9be9dac86c16.js": "./mixer/precache-manifest.1a06c0869ff880086e3a9be9dac86c16.js",
|
||||
"service-worker.js": "./mixer/service-worker.js",
|
||||
"static/css/2.0b7c8b97.chunk.css.map": "./mixer/static/css/2.0b7c8b97.chunk.css.map",
|
||||
"static/css/main.375af961.chunk.css.map": "./mixer/static/css/main.375af961.chunk.css.map",
|
||||
"static/js/2.f2aad125.chunk.js.LICENSE.txt": "./mixer/static/js/2.f2aad125.chunk.js.LICENSE.txt",
|
||||
"static/js/main.84be4e27.chunk.js.LICENSE.txt": "./mixer/static/js/main.84be4e27.chunk.js.LICENSE.txt"
|
||||
"static/js/main.5f5e49d2.chunk.js.LICENSE.txt": "./mixer/static/js/main.5f5e49d2.chunk.js.LICENSE.txt"
|
||||
},
|
||||
"entrypoints": [
|
||||
"static/js/runtime-main.c45edf70.js",
|
||||
"static/css/2.0b7c8b97.chunk.css",
|
||||
"static/js/2.f2aad125.chunk.js",
|
||||
"static/css/main.375af961.chunk.css",
|
||||
"static/js/main.84be4e27.chunk.js"
|
||||
"static/js/main.5f5e49d2.chunk.js"
|
||||
]
|
||||
}
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./mixer/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./mixer/logo192.png"/><link rel="manifest" href="./mixer/manifest.json"/><title>React App</title><link href="./mixer/static/css/2.0b7c8b97.chunk.css" rel="stylesheet"><link href="./mixer/static/css/main.375af961.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],f=r[1],a=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var f=t[l];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./mixer/";var l=this.webpackJsonpmixer=this.webpackJsonpmixer||[],f=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a++)r(l[a]);var p=f;t()}([])</script><script src="./mixer/static/js/2.f2aad125.chunk.js"></script><script src="./mixer/static/js/main.84be4e27.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./mixer/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./mixer/logo192.png"/><link rel="manifest" href="./mixer/manifest.json"/><title>React App</title><link href="./mixer/static/css/2.0b7c8b97.chunk.css" rel="stylesheet"><link href="./mixer/static/css/main.375af961.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],f=r[1],a=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var f=t[l];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./mixer/";var l=this.webpackJsonpmixer=this.webpackJsonpmixer||[],f=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a++)r(l[a]);var p=f;t()}([])</script><script src="./mixer/static/js/2.f2aad125.chunk.js"></script><script src="./mixer/static/js/main.5f5e49d2.chunk.js"></script></body></html>
|
|
@ -0,0 +1,34 @@
|
|||
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||
{
|
||||
"revision": "17cea485705a58e350102e3a5d2effcb",
|
||||
"url": "./mixer/index.html"
|
||||
},
|
||||
{
|
||||
"revision": "25cc111d980ef7eb4b05",
|
||||
"url": "./mixer/static/css/2.0b7c8b97.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "be6c0e6e77d1c21ca23f",
|
||||
"url": "./mixer/static/css/main.375af961.chunk.css"
|
||||
},
|
||||
{
|
||||
"revision": "25cc111d980ef7eb4b05",
|
||||
"url": "./mixer/static/js/2.f2aad125.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "4390933dc3b3a92d4f565fd4f47c3cd7",
|
||||
"url": "./mixer/static/js/2.f2aad125.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "be6c0e6e77d1c21ca23f",
|
||||
"url": "./mixer/static/js/main.5f5e49d2.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "5c84e2504d745b1010aeb6ce2aad7554",
|
||||
"url": "./mixer/static/js/main.5f5e49d2.chunk.js.LICENSE.txt"
|
||||
},
|
||||
{
|
||||
"revision": "96af6c8d9af51963848a",
|
||||
"url": "./mixer/static/js/runtime-main.c45edf70.js"
|
||||
}
|
||||
]);
|
|
@ -14,7 +14,7 @@
|
|||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||
|
||||
importScripts(
|
||||
"./mixer/precache-manifest.58ca0a035d7d4a54ca84834ef500469e.js"
|
||||
"./mixer/precache-manifest.1a06c0869ff880086e3a9be9dac86c16.js"
|
||||
);
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,26 @@
|
|||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.4
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2019-04-08
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.4.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2019-05-01T21:04Z
|
||||
*/
|
||||
|
||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@ -305,7 +305,7 @@
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<picker-color v-model="handleEditData.color" direct="bottom"></picker-color>
|
||||
<picker-color v-model="handleEditData.color" :direct="'bottom'"></picker-color>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-4" v-if="handleEditData.type === 'text' || handleEditData.type === 'time'">
|
||||
|
@ -316,7 +316,7 @@
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<picker-color v-model="handleEditData.bgColor" direct="bottom"></picker-color>
|
||||
<picker-color v-model="handleEditData.bgColor" :direct="'bottom'"></picker-color>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-4" v-if="handleEditData.type === 'text' || handleEditData.type === 'time' || handleEditData.type === 'pic'">
|
||||
|
@ -390,9 +390,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<upload-modal modal-title="上传资源&Upload" :modal-show="showModal" modal-fade="true"
|
||||
upload-allow="['png','ttf']" upload-action="/link/upd/uploadRes.php" upload-count="2"
|
||||
upload-tip="请把资源拖到此处,仅支持png图片,ttf格式字体...&Please drag the resourse here..."
|
||||
<upload-modal :modal-title="'上传资源&Upload'" :modal-show="showModal" :modal-fade="true"
|
||||
:upload-allow="['png','ttf']" :upload-action="'/link/upd/uploadRes.php'" :upload-count="2"
|
||||
:upload-tip="'请把资源拖到此处,仅支持png图片,ttf格式字体...&Please drag the resourse here...'"
|
||||
@upload-success="uploadSuccess" @upload-error="uploadError">
|
||||
</upload-modal>
|
||||
</main>
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
<script src="assets/js/lp.loader.js" type="module"></script>
|
||||
<script src="assets/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="assets/plugins/pace/js/pace.min.js"></script>
|
||||
<script src="assets/plugins/simplebar/js/simplebar.min.js"></script>
|
||||
<script src="assets/plugins/simplebar/js/simplebar.min.js"></script>
|
||||
<script src="assets/plugins/passive/passive.events.min.js"></script>
|
|
@ -24,7 +24,7 @@
|
|||
<i v-else class="fa-regular fa-sun" @click="updateThemeConf('default')"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<li class="nav-item" v-if="Object.keys(hardwareConf).length > 0 && hardwareConf.fac !== 'REC1'">
|
||||
<a class="nav-link" style="font-size: 19px;" @click="changeWeb">
|
||||
<i class="fa-solid fa-arrow-right-arrow-left"></i>
|
||||
</a>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<ul class="nav nav-tabs nav-primary" role="tablist">
|
||||
<li class="nav-item" role="presentation" v-if="Object.keys(netAdapter).length > 0 && Object.keys(netManagerConf).length > 0" v-for="(item,index) in Object.values(netAdapter)" :key="index">
|
||||
<a v-if="netManagerConf.interface.hasOwnProperty(item.dev)" :class="['nav-link',{'active':index===0}]" data-bs-toggle="tab" :href="'#tab'+(index+1)" role="tab" aria-selected="true">
|
||||
<div v-if="item.type === 'lan'" class="d-flex align-items-center">
|
||||
<div v-if="item.type === 'lan' || item.type === 'other'" class="d-flex align-items-center">
|
||||
<div class="tab-icon"><i :class="['fa-solid me-1',{'fa-code-merge':index%2===1},{'fa-code-fork':index%2===0}]"></i></i></div>
|
||||
<div class="tab-title">
|
||||
<cn>网口</cn>
|
||||
|
@ -66,7 +66,7 @@
|
|||
|
||||
<div class="tab-content py-3 pe-2 ps-2">
|
||||
<div v-if="Object.keys(netAdapter).length > 0 && Object.keys(netManagerConf).length > 0" v-for="(item,index) in Object.values(netAdapter)" :class="['tab-pane fade',{'show active':index===0}]" :key="index" :id="'tab'+(index+1)" role="tabpanel">
|
||||
<div v-if="netManagerConf.interface.hasOwnProperty(item.dev) && item.type === 'lan'">
|
||||
<div v-if="netManagerConf.interface.hasOwnProperty(item.dev) && (item.type === 'lan' || item.type === 'other')">
|
||||
<div v-if="Object.keys(hardwareConf).length > 0 && hardwareConf.function.dhcp" class="row mt-3">
|
||||
<div class="col-lg-2 offset-lg-1 lp-align-center">
|
||||
<label>
|
||||
|
@ -374,8 +374,10 @@
|
|||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="input-group">
|
||||
<input class="form-control" :type="!showPasswd.oldpwd ? 'password' : 'text'" v-model.trim.lazy="userPasswd.oldpwd">
|
||||
<span class="input-group-text input-group-addon lp-cursor-pointer" @click="showPasswd.oldpwd = !showPasswd.oldpwd"><i :class="['fa-regular',{'fa-eye-slash':!showPasswd.oldpwd},{'fa-eye':showPasswd.oldpwd}]"></i></span>
|
||||
<form>
|
||||
<input class="form-control" :type="!showPasswd.oldpwd ? 'password' : 'text'" v-model.trim.lazy="userPasswd.oldpwd" autocomplete="off">
|
||||
</form>
|
||||
<span class="input-group-text input-group-addon lp-cursor-pointer" @click="showPasswd.oldpwd = !showPasswd.oldpwd"><i :class="['fa-regular',{'fa-eye-slash':showPasswd.oldpwd},{'fa-eye':!showPasswd.oldpwd}]"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -390,8 +392,10 @@
|
|||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="input-group">
|
||||
<input class="form-control" :type="!showPasswd.newpwd ? 'password' : 'text'" v-model.trim.lazy="userPasswd.newpwd">
|
||||
<span class="input-group-text input-group-addon lp-cursor-pointer" @click="showPasswd.newpwd = !showPasswd.newpwd"><i :class="['fa-regular',{'fa-eye-slash':!showPasswd.newpwd},{'fa-eye':showPasswd.newpwd}]"></i></span>
|
||||
<form>
|
||||
<input class="form-control" :type="!showPasswd.newpwd ? 'password' : 'text'" v-model.trim.lazy="userPasswd.newpwd" autocomplete="off">
|
||||
</form>
|
||||
<span class="input-group-text input-group-addon lp-cursor-pointer" @click="showPasswd.newpwd = !showPasswd.newpwd"><i :class="['fa-regular',{'fa-eye-slash':showPasswd.newpwd},{'fa-eye':!showPasswd.newpwd}]"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -404,8 +408,10 @@
|
|||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="input-group">
|
||||
<input class="form-control" :type="!showPasswd.confirm ? 'password' : 'text'" v-model.trim.lazy="userPasswd.confirm">
|
||||
<span class="input-group-text input-group-addon lp-cursor-pointer" @click="showPasswd.confirm = !showPasswd.confirm"><i :class="['fa-regular',{'fa-eye-slash':!showPasswd.confirm},{'fa-eye':showPasswd.confirm}]"></i></span>
|
||||
<form>
|
||||
<input class="form-control" :type="!showPasswd.confirm ? 'password' : 'text'" v-model.trim.lazy="userPasswd.confirm" autocomplete="off">
|
||||
</form>
|
||||
<span class="input-group-text input-group-addon lp-cursor-pointer" @click="showPasswd.confirm = !showPasswd.confirm"><i :class="['fa-regular',{'fa-eye-slash':showPasswd.confirm},{'fa-eye':!showPasswd.confirm}]"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -918,9 +924,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<upload-modal modal-title="上传升级包&Upload" :modal-show="showUploadModal" modal-fade="true"
|
||||
upload-allow="['bin']" upload-action="/link/upd/uploadPatch.php" upload-count="1"
|
||||
upload-tip="请把升级包拖动到此处...&Please drag the upgrade package here..."
|
||||
<upload-modal :modal-title="'上传升级包&Upload'" :modal-show="showUploadModal" :modal-fade="true"
|
||||
:upload-allow="['bin']" :upload-action="'/link/upd/uploadPatch.php'" :upload-count="1"
|
||||
:upload-tip="'请把升级包拖动到此处...&Please drag the upgrade package here...'"
|
||||
@upload-success="uploadSuccess" @upload-error="uploadError">
|
||||
</upload-modal>
|
||||
|
||||
|
@ -961,7 +967,7 @@
|
|||
</div>
|
||||
</search-modal>
|
||||
|
||||
<upgrade-modal v-model:check-upgrade="checkUpgrade" :patch-sn="patchSN" modal-fade="true"></upgrade-modal>
|
||||
<upgrade-modal v-model:check-upgrade="checkUpgrade" :patch-sn="patchSN" :modal-fade="true"></upgrade-modal>
|
||||
</main>
|
||||
</div>
|
||||
<?php include ("./public/foot.inc") ?>
|
||||
|
@ -1093,17 +1099,6 @@
|
|||
const getAdapterNetState = () => {
|
||||
rpc2("net.getState").then(data => {
|
||||
clearReactiveObject(state.netAdapter);
|
||||
const ignoreAry = [];
|
||||
if(hardwareConf.fac === "ENC5V2") {
|
||||
Object.values(data.interface).forEach(item => {
|
||||
if(item.type === "lan" && item.dev.includes("eth"))
|
||||
ignoreAry.push(item.dev);
|
||||
})
|
||||
}
|
||||
ignoreAry.forEach(item => {
|
||||
if(item !== "eth0")
|
||||
delete data.interface[item];
|
||||
})
|
||||
Object.assign(state.netAdapter,data.interface);
|
||||
});
|
||||
setTimeout(getAdapterNetState,2000);
|
||||
|
@ -1117,8 +1112,8 @@
|
|||
|
||||
const updateDefNetwork = (dev) => {
|
||||
updateNetManagerConf().then(()=>{
|
||||
if(dev === "eth0")
|
||||
setTimeout(() => window.location.href="http://"+netManagerConf["interface"]["eth0"]["ip"]+"/sys.php",1000)
|
||||
if(dev === netManagerConf["gw"])
|
||||
setTimeout(() => window.location.href="http://"+netManagerConf["interface"][dev]["ip"]+"/sys.php",1000)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue