Compare commits

...

2 Commits

Author SHA1 Message Date
chengdandan a7fa70532c 搭建主页 2024-07-01 16:16:38 +08:00
chengdandan 6888028201 启动器功能,模型管理 2024-06-25 16:14:11 +08:00
172 changed files with 3637 additions and 12306 deletions

3
dist/APP/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}

BIN
dist/APP/Build/APP.data.unityweb vendored Normal file

Binary file not shown.

16
dist/APP/Build/APP.json vendored Normal file
View File

@ -0,0 +1,16 @@
{
"companyName": "DefaultCompany",
"productName": "FuZhou_FirstPage",
"productVersion": "1.0",
"dataUrl": "APP.data.unityweb",
"wasmCodeUrl": "APP.wasm.code.unityweb",
"wasmFrameworkUrl": "APP.wasm.framework.unityweb",
"graphicsAPI": ["WebGL 2.0","WebGL 1.0"],
"webglContextAttributes": {"preserveDrawingBuffer": false},
"splashScreenStyle": "Dark",
"backgroundColor": "#231F20",
"cacheControl": {"default": "must-revalidate"},
"developmentBuild": false,
"multithreading": false,
"unityVersion": "2019.4.9f1"
}

BIN
dist/APP/Build/APP.wasm.code.unityweb vendored Normal file

Binary file not shown.

Binary file not shown.

4
dist/APP/Build/UnityLoader.js vendored Normal file

File diff suppressed because one or more lines are too long

24
dist/APP/TemplateData/UnityProgress.js vendored Normal file
View File

@ -0,0 +1,24 @@
function UnityProgress(unityInstance, progress) {
if (!unityInstance.Module)
return;
if (!unityInstance.logo) {
unityInstance.logo = document.createElement("div");
unityInstance.logo.className = "logo " + unityInstance.Module.splashScreenStyle;
unityInstance.container.appendChild(unityInstance.logo);
}
if (!unityInstance.progress) {
unityInstance.progress = document.createElement("div");
unityInstance.progress.className = "progress " + unityInstance.Module.splashScreenStyle;
unityInstance.progress.empty = document.createElement("div");
unityInstance.progress.empty.className = "empty";
unityInstance.progress.appendChild(unityInstance.progress.empty);
unityInstance.progress.full = document.createElement("div");
unityInstance.progress.full.className = "full";
unityInstance.progress.appendChild(unityInstance.progress.full);
unityInstance.container.appendChild(unityInstance.progress);
}
unityInstance.progress.full.style.width = (100 * progress) + "%";
unityInstance.progress.empty.style.width = (100 * (1 - progress)) + "%";
if (progress == 1)
unityInstance.logo.style.display = unityInstance.progress.style.display = "none";
}

BIN
dist/APP/TemplateData/bg.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
dist/APP/TemplateData/favicon.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
dist/APP/TemplateData/fullscreen.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

40
dist/APP/TemplateData/protocolcheck.js vendored Normal file
View File

@ -0,0 +1,40 @@
function _registerEvent (target, eventType, cb) {
if (target.addEventListener) {
target.addEventListener(eventType, cb)
return {
remove: function () {
target.removeEventListener(eventType, cb)
}
}
} else {
target.attachEvent(eventType, cb)
return {
remove: function () {
target.detachEvent(eventType, cb)
}
}
}
}
export function openUriWithTimeoutHack (uri, failCb, successCb) {
const timeout = setTimeout(function () {
failCb()
handler.remove()
}, 1500)
// handle page running in an iframe (blur must be registered with top level window)
let target = window
while (target != target.parent) {
target = target.parent
}
var handler = _registerEvent(target, 'blur', onBlur)
function onBlur () {
clearTimeout(timeout)
handler.remove()
successCb()
}
window.location = uri
}

24
dist/APP/TemplateData/style.css vendored Normal file
View File

@ -0,0 +1,24 @@
body {
overflow: hidden;
height: 100%;
width: 100%;
}
.webgl-content * {border: 0; margin: 0; padding: 0 ;background: url('bg.jpg');}
.webgl-content {position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.webgl-content .logo, .progress {position: absolute; left: 50%; top: 30%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
/* .webgl-content .logo {background: url('progressLogo.Light.png') no-repeat center / contain; width: 154px; height: 130px;} */
.webgl-content .progress {height: 18px; width: 141px; margin-top: 90px;}
.webgl-content .progress .empty {background: url('progressEmpty.Light.png') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;}
.webgl-content .progress .full {background: url('progressFull.Light.png') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;}
.webgl-content .logo.Dark {background-image: url('progressLogo.Dark.png');}
.webgl-content .progress.Dark .empty {background-image: url('progressEmpty.Dark.png');}
.webgl-content .progress.Dark .full {background-image: url('progressFull.Dark.png');}
.webgl-content .footer {margin-top: 5px; height: 38px; line-height: 38px; font-family: Helvetica, Verdana, Arial, sans-serif; font-size: 18px;}
.webgl-content .footer .webgl-logo, .title, .fullscreen {height: 100%; display: inline-block; background: transparent center no-repeat;}
.webgl-content .footer .webgl-logo {background-image: url('webgl-logo.png'); width: 204px; float: left;}
.webgl-content .footer .title {margin-right: 10px; float: right;}
.webgl-content .footer .fullscreen {background-image: url('fullscreen.png'); width: 38px; float: right;}

BIN
dist/APP/TemplateData/webgl-logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

92
dist/APP/index.html vendored Normal file
View File

@ -0,0 +1,92 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity WebGL Player | FuZhou_FirstPage</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script src="TemplateData/UnityProgress.js"></script>
<script src="Build/UnityLoader.js"></script>
<script src="TemplateData/protocolcheck.js" type="module"></script>
<!-- <script src="../../src/utils/protocolcheck.js" type="module"></script>
<script src="../../src/api/map.js"></script> -->
<!-- import {exitAppApi, generateTrainingTicket, getLatestStarterVersion} from "../api/business/training"; -->
<!-- import {openUriWithTimeoutHack} from "./protocolcheck"; -->
<script>
// import { openUriWithTimeoutHack } from 'TemplateData/protocolcheck.js';
// import {openUriWithTimeoutHack} from "../../src/utils/protocolcheck.js";
// import {GetLatestVersion} from "../../src/api/map.js";
var unityInstance = UnityLoader.instantiate("unityContainer", "Build/APP.json", {onProgress: UnityProgress});
function OnWake(){
const href = window.location.href
const regex = /^https?:\/\/([^/:]+):?(\d+)?/i
const match = href.match(regex)
console.log('match', match)
// const dialogImageUrl = match[1]
const dialogImageUrl = '172.16.1.253'
unityInstance.SendMessage('FirstPanel','InitUnity',dialogImageUrl)
}
function StartModel(data){
console.log("data",data)
window.parent.openUriWithTimeoutHackN(JSON.parse(data));
// openUriWithTimeoutHackN(data)
}
// function openUriWithTimeoutHackN(data) {
// console.log('cscs', data)
// const href = window.location.href
// const regex = /^https?:\/\/([^/:]+):?(\d+)?/i
// const match = href.match(regex)
// console.log('match', match)
// // const dialogImageUrl = match[0]
// // const dialogImageUrl2 = match[1]
// const dialogImageUrl = 'http://172.16.1.253:4000'
// const dialogImageUrl2 = '172.16.1.253'
// const ModelResourcesE = encodeURIComponent(dialogImageUrl + data.ModelResources)
// console.log('ModelResourcesE', ModelResourcesE)
// //
// openUriWithTimeoutHack(
// 'starter://' + `;${ModelResourcesE};${data.ModelResourcesPath};${data.RegistryName};${data.MONITOR_ID};${data.VersionNumber};${data.CUSTOMS_CODE};${data.ModelName};${data.TrainingSize};${dialogImageUrl2};`,
// () => {
// ElMessageBox.confirm('启动器未安装,启动应用前需要先安装启动器,现在去下载吗?', '提示', {
// confirmButtonText: '下载',
// cancelButtonText: '取消',
// type: 'warning'
// })
// .then(() => {
// // debugger
// // 打开启动器下载路径
// GetLastVersion().then((res) => {
// console.log('res', res)
// window.open(dialogImageUrl + res.data.LauncherResources)
// }).catch(() => {
// // exitApp(startParams.trainingId)
// ElMessage.error('获取启动器下载路径失败')
// })
// })
// .catch(() => {
// // exitApp(startParams.trainingId)
// console.log('取消下载')
// })
// },
// () => {
// console.log('已安装,自动唤起')
// }
// )
// }
// 启动启动器
</script>
</head>
<body>
<div class="webgl-content" style="height: 100%;width: 100%;" >
<div id="unityContainer" style="height: 100%;width: 100%;" ></div>
<!-- <div class="footer">
<div class="webgl-logo"></div>
<div class="fullscreen" onclick="unityInstance.SetFullscreen(1)"></div>
<div class="title">FuZhou_FirstPage</div>
</div> -->
</div>
</body>
</html>

BIN
dist/assets/D-DIN-Bold-Bzmc2g8M.otf vendored Normal file

Binary file not shown.

BIN
dist/assets/DouyinSansBold-DN5llgv1.otf vendored Normal file

Binary file not shown.

BIN
dist/assets/Login-CCT4jEB2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Binary file not shown.

BIN
dist/assets/bg-模块-DQMDFInH.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

1
dist/assets/index-BeHht3ar.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/index-BfDzLcJQ.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as S,q as B,u as b,r as x,m as T,b as c,c as C,d as k,F as w,s as N,v as j,w as n,i as A,t as I,x as $,f as a,e as i,g as p,p as E,j as F}from"./index-DNLxjT0X.js";const r=[{path:"ExaminationManagement",meta:{sort:1,title:"启动器管理",icon:"icon-kaoshi"}},{path:"home",meta:{sort:1,title:"模型管理",icon:"icon-chengji"}}],L={class:"tag-list"},O={__name:"Tab",setup(d){const g=B(),v=b(),s=x([]),e=x(1),o=(t,u)=>{v.push(t.path),e.value=u},f=t=>{const u=s.value[e.value].path;if(s.value.splice(t,1),e.value===t)e.value=t>0?t-1:1,v.push(s.value[e.value].path);else{const _=s.value.findIndex(l=>l.path===u);e.value=_}};return T(()=>g,(t,u)=>{s.value.findIndex(l=>l.path===t.path)<0&&t.meta.title!==""&&(s.value.push({name:t.meta.title,path:t.path}),e.value=s.value.length-1)},{immediate:!0,deep:!0}),(t,u)=>{const _=c("el-tag");return C(),k("div",L,[(C(!0),k(w,null,N(s.value,(l,m)=>(C(),j(_,{key:l.name,closable:"",class:$({isActive:e.value===m}),onClick:h=>o(l,m),onClose:h=>f(m)},{default:n(()=>[A(I(l.name),1)]),_:2},1032,["class","onClick","onClose"]))),128))])}}},R=S(O,[["__scopeId","data-v-bf4a46ed"]]),q=d=>(E("data-v-0910c239"),d=d(),F(),d),z={class:"common-layout"},D=q(()=>i("div",{class:"img"},null,-1)),M={class:"Sidebar"},V={class:"Tool"},G={__name:"index",setup(d){b();const g=x(!1),v=(e,o)=>{console.log(e,o)},s=(e,o)=>{console.log(e,o)};return(e,o)=>{const f=c("el-header"),t=c("el-menu-item"),u=c("el-menu"),_=c("el-aside"),l=c("router-view"),m=c("el-main"),h=c("el-container");return C(),k("section",z,[a(h,{class:"layout"},{default:n(()=>[a(f,null,{default:n(()=>[a(f,null,{default:n(()=>[D]),_:1})]),_:1}),a(h,{class:"ContainerConent"},{default:n(()=>[a(_,null,{default:n(()=>[i("aside",null,[i("div",M,[a(u,{"default-active":"0",class:"el-menu-vertical-demo",collapse:g.value,onOpen:v,onClose:s},{default:n(()=>[a(t,{index:String(0),onClick:o[0]||(o[0]=y=>e.$router.push(p(r)[0].path))},{title:n(()=>[i("i",{class:$(["iconfont",p(r)[0].meta.icon])},null,2),i("span",null,I(p(r)[0].meta.title),1)]),_:1},8,["index"]),a(t,{index:String(1),onClick:o[1]||(o[1]=y=>e.$router.push(p(r)[1].path))},{title:n(()=>[i("i",{class:$(["iconfont",p(r)[1].meta.icon])},null,2),i("span",null,I(p(r)[1].meta.title),1)]),_:1},8,["index"])]),_:1},8,["collapse"])])])]),_:1}),a(h,{class:"mainContent"},{default:n(()=>[i("div",V,[a(R)]),a(m,null,{default:n(()=>[a(l)]),_:1})]),_:1})]),_:1})]),_:1})])}}},J=S(G,[["__scopeId","data-v-0910c239"]]);export{J as default};

1
dist/assets/index-CAsqwRwR.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/index-CG9XgBuF.css vendored Normal file
View File

@ -0,0 +1 @@
.loginPage[data-v-64ec6f24]{width:100vw;height:100vh;overflow:hidden}.loginLayout[data-v-64ec6f24]{width:100%;height:100%;background:url(./Login-CCT4jEB2.png) no-repeat;background-size:100% 100%;display:flex;align-items:center;justify-content:center}.loginTitle[data-v-64ec6f24]{display:flex;justify-content:center;margin-bottom:36px}.loginTitle img[data-v-64ec6f24]{width:60px;height:60px;margin-right:24px}.loginTitle p[data-v-64ec6f24]{height:46px;line-height:46px;font-family:DouyinSansBold;font-weight:700;font-size:38px;color:#0d867f;margin-top:11px;letter-spacing:1px}.loginInput[data-v-64ec6f24]{width:506px;height:402px;background:#fdfffd;box-shadow:0 0 12px #a0c2b64a;border-radius:10px;padding:0 63px;overflow:hidden}.loginInput p[data-v-64ec6f24]{width:100%;text-align:center;font-weight:400;font-size:20px;color:#333;line-height:30px;margin-top:50px;margin-bottom:52px}.loginInput .el-button[data-v-64ec6f24]{width:380px;height:50px;background:#0d867f;border:none;border-radius:2px;font-weight:400;font-size:16px;color:#fff;line-height:24px}.login_from .el-input[data-v-64ec6f24]{height:50px;border:1px solid #0d867f}.login_from .el-form-item--default[data-v-64ec6f24]{margin-bottom:30px}.login_from[data-v-64ec6f24] .el-input__wrapper{border-radius:0!important;box-shadow:none!important}.login_from[data-v-64ec6f24] .el-input__wrapper:hover{box-shadow:none!important}[data-v-64ec6f24] .el-input{--el-input-focus-border-color: transparent !important}

1
dist/assets/index-Ce7_pOhk.css vendored Normal file
View File

@ -0,0 +1 @@
.PageContent[data-v-bbb4b702]{width:100%;height:100%}.WebToolbar[data-v-bbb4b702]{width:100%;height:72px;background-color:#fff;padding:20px;display:flex;justify-content:space-between}.WebToolbar[data-v-bbb4b702] .el-form-item__content{width:256px!important;height:32px!important}.WebToolbar[data-v-bbb4b702] .el-input,.WebToolbar[data-v-bbb4b702] .el-select{width:256px!important}.WebToolbar[data-v-bbb4b702] .el-form-item__label{color:#666!important}.ButtonAssembly .el-button[data-v-bbb4b702]{width:84px;height:32px;border:none;font-weight:400;font-size:14px;border-radius:2px}.ButtonAssembly .el-button img[data-v-bbb4b702]{width:16px;height:16px;margin-right:8px}.ButtonAssembly .el-button[data-v-bbb4b702]:nth-child(1){background-color:#0d867f}.ButtonAssembly .el-button[data-v-bbb4b702]:nth-child(2){background-color:#f2f3f5}.Tabulation[data-v-bbb4b702]{width:100%;height:calc(100% - 72px);background-color:#fff;margin-top:14px;padding:20px}.Tabulation .actionBar[data-v-bbb4b702]{display:flex;justify-content:space-between}.Tabulation .actionBar h1[data-v-bbb4b702]{font-weight:500;font-size:20px;color:#1d2129;line-height:28px;font-family:Microsoft YaHei,Microsoft YaHei}.Tabulation .Worktop .el-button[data-v-bbb4b702]{border:1px solid #0d867f;font-weight:400;font-size:14px;color:#0d867f}.Tabulation .Worktop .el-button[data-v-bbb4b702]:hover{background-color:transparent}.Tabulation .Worktop .BlueBack[data-v-bbb4b702]{background:#0d867f;border-radius:2px;font-weight:400;font-size:14px;color:#fff;line-height:22px}.Tabulation .Worktop .BlueBack img[data-v-bbb4b702]{width:16px;height:16px;margin-right:8px}.Tabulation .Worktop .BlueBack[data-v-bbb4b702]:hover{background-color:#0d867f}.Tabulation .Worktop .Delete[data-v-bbb4b702]{background:#f2f3f5;border-radius:2px;font-weight:400;font-size:14px;color:#1d2129;line-height:22px;border:none}.Tabulation .Worktop .Delete img[data-v-bbb4b702]{width:16px;height:16px;margin-right:8px}.Tabulation .Worktop .Delete[data-v-bbb4b702]:hover{background-color:#f2f3f5}.Tabulation .ExaminationForm[data-v-bbb4b702]{margin-top:16px;background-color:#07a}.Tabulation .el-table tr[data-v-bbb4b702],.Tabulation .el-table td[data-v-bbb4b702]{height:41px}.Tabulation[data-v-bbb4b702] th{background-color:#e5e6eb}.el-pagination[data-v-bbb4b702]{float:right;background-color:#fff!important;margin-top:18px}[data-v-bbb4b702] .el-pager li.is-active{background-color:#e7f9f8!important;font-weight:400;color:#0d867f!important}[data-v-bbb4b702] .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#e7f9f8!important}[data-v-bbb4b702] .el-select,[data-v-bbb4b702] .el-input{width:280px!important}.example[data-v-bbb4b702]{margin-left:20px;color:red}.backInformation[data-v-bbb4b702] .el-input{width:280px!important;height:120px!important}.dialog-footer[data-v-bbb4b702]{width:100%;text-align:center}[data-v-bbb4b702] .el-textarea__inner{width:280px!important}.user-name[data-v-bbb4b702],.register[data-v-bbb4b702]{cursor:pointer}.functionalUnit[data-v-bbb4b702]{margin-left:20px;display:flex}.functionalUnit .el-button[data-v-bbb4b702]{width:84px;height:32px;border:none;font-weight:400;font-size:14px;border-radius:2px;color:#fff}.functionalUnit .el-button img[data-v-bbb4b702]{width:16px;height:16px;margin-right:8px}.functionalUnit .el-button[data-v-bbb4b702]:nth-child(1){background-color:#2192ba}.functionalUnit .el-button[data-v-bbb4b702]:nth-child(2){background-color:#17c85f}.TabularTitle[data-v-bbb4b702]{font-size:14px;color:#747272;font-weight:700;margin-bottom:10px}.pagination[data-v-bbb4b702]{width:100%;height:30px}.pagination[data-v-bbb4b702] .el-pagination{margin-top:9px!important}.addSlip .el-button[data-v-bbb4b702]{border:none;background-color:#07a;margin-top:8px;color:#fff}.addSlip[data-v-bbb4b702] .el-pagination{margin-top:8px!important}.ml-3[data-v-bbb4b702]{margin-left:20px}.upload-file-uploader[data-v-bbb4b702]{width:50%}.el-upload-list .el-upload-list__item[data-v-bbb4b702]{width:33%!important;float:left;margin-left:-385px;margin-top:25px}.el-upload-list .el-upload-list__item[data-v-bbb4b702] .horizontal-list ul .el-upload-list__item{width:33%;float:left;margin-top:25px}

63
dist/assets/index-Cl0xzWdw.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/index-CocOxO6h.css vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/index-CzSEl6_6.css vendored Normal file
View File

@ -0,0 +1 @@
.PageContent[data-v-a2431556]{width:100%;height:100%}.WebToolbar[data-v-a2431556]{width:100%;height:72px;background-color:#fff;padding:20px;display:flex;justify-content:space-between}.WebToolbar[data-v-a2431556] .el-form-item__content{width:256px!important;height:32px!important}.WebToolbar[data-v-a2431556] .el-input,.WebToolbar[data-v-a2431556] .el-select{width:256px!important}.WebToolbar[data-v-a2431556] .el-form-item__label{color:#666!important}.ButtonAssembly .el-button[data-v-a2431556]{width:84px;height:32px;border:none;font-weight:400;font-size:14px;border-radius:2px}.ButtonAssembly .el-button img[data-v-a2431556]{width:16px;height:16px;margin-right:8px}.ButtonAssembly .el-button[data-v-a2431556]:nth-child(1){background-color:#0d867f}.ButtonAssembly .el-button[data-v-a2431556]:nth-child(2){background-color:#f2f3f5}.Tabulation[data-v-a2431556]{width:100%;height:calc(100% - 72px);background-color:#fff;margin-top:14px;padding:20px}.Tabulation .actionBar[data-v-a2431556]{display:flex;justify-content:space-between}.Tabulation .actionBar h1[data-v-a2431556]{font-weight:500;font-size:20px;color:#1d2129;line-height:28px;font-family:Microsoft YaHei,Microsoft YaHei}.Tabulation .Worktop .el-button[data-v-a2431556]{border:1px solid #0d867f;font-weight:400;font-size:14px;color:#0d867f}.Tabulation .Worktop .el-button[data-v-a2431556]:hover{background-color:transparent}.Tabulation .Worktop .BlueBack[data-v-a2431556]{background:#0d867f;border-radius:2px;font-weight:400;font-size:14px;color:#fff;line-height:22px}.Tabulation .Worktop .BlueBack img[data-v-a2431556]{width:16px;height:16px;margin-right:8px}.Tabulation .Worktop .BlueBack[data-v-a2431556]:hover{background-color:#0d867f}.Tabulation .Worktop .Delete[data-v-a2431556]{background:#f2f3f5;border-radius:2px;font-weight:400;font-size:14px;color:#1d2129;line-height:22px;border:none}.Tabulation .Worktop .Delete img[data-v-a2431556]{width:16px;height:16px;margin-right:8px}.Tabulation .Worktop .Delete[data-v-a2431556]:hover{background-color:#f2f3f5}.Tabulation .ExaminationForm[data-v-a2431556]{margin-top:16px;background-color:#07a}.Tabulation .el-table tr[data-v-a2431556],.Tabulation .el-table td[data-v-a2431556]{height:41px}.Tabulation[data-v-a2431556] th{background-color:#e5e6eb}.el-pagination[data-v-a2431556]{float:right;background-color:#fff!important;margin-top:18px}[data-v-a2431556] .el-pager li.is-active{background-color:#e7f9f8!important;font-weight:400;color:#0d867f!important}[data-v-a2431556] .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#e7f9f8!important}[data-v-a2431556] .el-select,[data-v-a2431556] .el-input{width:280px!important}.example[data-v-a2431556]{margin-left:20px;color:red}.backInformation[data-v-a2431556] .el-input{width:280px!important;height:120px!important}.dialog-footer[data-v-a2431556]{width:100%;text-align:center}[data-v-a2431556] .el-textarea__inner{width:280px!important}.user-name[data-v-a2431556],.register[data-v-a2431556]{cursor:pointer}.functionalUnit[data-v-a2431556]{margin-left:20px;display:flex}.functionalUnit .el-button[data-v-a2431556]{width:84px;height:32px;border:none;font-weight:400;font-size:14px;border-radius:2px;color:#fff}.functionalUnit .el-button img[data-v-a2431556]{width:16px;height:16px;margin-right:8px}.functionalUnit .el-button[data-v-a2431556]:nth-child(1){background-color:#2192ba}.functionalUnit .el-button[data-v-a2431556]:nth-child(2){background-color:#17c85f}.TabularTitle[data-v-a2431556]{font-size:14px;color:#747272;font-weight:700;margin-bottom:10px}.pagination[data-v-a2431556]{width:100%;height:30px}.pagination[data-v-a2431556] .el-pagination{margin-top:9px!important}.addSlip .el-button[data-v-a2431556]{border:none;background-color:#07a;margin-top:8px;color:#fff}.addSlip[data-v-a2431556] .el-pagination{margin-top:8px!important}.ml-3[data-v-a2431556]{margin-left:20px}.upload-file-uploader[data-v-a2431556]{width:50%}.el-upload-list .el-upload-list__item[data-v-a2431556]{width:33%!important;float:left;margin-left:-385px;margin-top:25px}.el-upload-list .el-upload-list__item[data-v-a2431556] .horizontal-list ul .el-upload-list__item{width:33%!important;float:left;margin-top:25px}.el-upload-list .el-upload-list__item[data-v-a2431556] .el-link__inner{display:inline-flex;justify-content:center;align-items:center;width:200px}

1
dist/assets/index-D3FLTpgs.css vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/index-DLT9DgJV.css vendored Normal file
View File

@ -0,0 +1 @@
@charset "UTF-8";.tag-list .el-tag[data-v-bf4a46ed]{background:#4555521a;color:#455552;margin-right:10px;cursor:pointer}.tag-list .el-tag.isActive[data-v-bf4a46ed]{background:#4555521a;color:#455552}.tag-list .el-tag.isActive[data-v-bf4a46ed] .el-icon{color:#455552}[data-v-bf4a46ed] .el-tag__close{color:#455552!important}[data-v-bf4a46ed] .el-tag__close:hover{background-color:transparent!important}.common-layout[data-v-0910c239]{width:100vw;height:100vh;overflow:hidden}.layout[data-v-0910c239]{width:100%;height:100%}.el-menu[data-v-0910c239]{border:none}.el-header[data-v-0910c239]{width:100%;height:60px;background-color:#fff;padding:0}.el-header .img[data-v-0910c239]{width:90px;height:55px;margin-top:5px;margin-left:10px;background:url(./海关logo-BEdWl9eU.ico) no-repeat;background-size:100% 100%}.ContainerConent[data-v-0910c239]{width:100%;height:calc(100% - 60px);background-color:#f6f9f8}.el-aside[data-v-0910c239]{width:200px;height:100%;background-color:#fff}.mainContent[data-v-0910c239]{width:100%;height:100%;display:block;padding:17px 20px}.Tool[data-v-0910c239],.Tool .el-tabs[data-v-0910c239]{width:100%;height:24px}.Tool[data-v-0910c239] .el-tabs__header{border:none!important}.Tool[data-v-0910c239] .el-tabs__item{width:88px;height:24px;background-color:#4555521a}.el-main[data-v-0910c239]{padding:0;height:calc(100% - 34px);width:100%;margin-top:16px;overflow:hidden}.el-menu-item.is-active[data-v-0910c239]{color:#0d867f}.iconfont[data-v-0910c239]{margin-right:16px}.Administrator[data-v-0910c239]{float:right;height:100%;display:flex;align-items:center;justify-content:center;margin-right:40px;cursor:pointer}[data-v-0910c239] .el-dropdown-link{border:none!important}[data-v-0910c239] .example-showcase .el-dropdown-link{cursor:pointer;color:var(--el-color-primary);display:flex;align-items:center}

74
dist/assets/index-DNLxjT0X.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/index-DcMlPKcm.js vendored Normal file
View File

@ -0,0 +1 @@
import{g as e,p as a,u as r}from"./request-DbWxdC3O.js";const o=t=>a("/api/Login",t),n=t=>e("/api/GetStarterList",t),p=t=>e("/api/GetModelList",t),l=t=>e("/api/GetModelDetails",t),d=t=>a("/api/EditStarter",t),u=(t,i)=>r("/api/Upload"+t,i),c=t=>e("/api/DeleteFile",t),G=t=>a("/api/EditModel",t);export{c as D,G as E,p as G,o as a,u as b,l as c,n as d,d as e};

26
dist/assets/index-Sc3iWBoV.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
dist/assets/msyh-ZX47rxZH.ttc vendored Normal file

Binary file not shown.

6
dist/assets/request-DbWxdC3O.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
dist/assets/优设标题黑-fahbdFno.ttf vendored Normal file

Binary file not shown.

BIN
dist/assets/堆场1-CFe-UpLQ.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
dist/assets/堆场2-CYle_h25.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
dist/assets/小地图-BoGv7XqU.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
dist/assets/海关logo-BEdWl9eU.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

BIN
dist/assets/进口总量1-BCE2rsse.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
dist/assets/进口总量2-B5cekx5C.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

16
dist/index.html vendored Normal file
View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="./vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>LKJCpowerSupplyOfficeSimulationSystem</title>
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_4490429_ym69s57vxr.css">
<script type="module" crossorigin src="./assets/index-DNLxjT0X.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CocOxO6h.css">
</head>
<body>
<div id="app"></div>
</body>
</html>

1
dist/vite.svg vendored Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 111 KiB

3
public/APP/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}

Binary file not shown.

16
public/APP/Build/APP.json Normal file
View File

@ -0,0 +1,16 @@
{
"companyName": "DefaultCompany",
"productName": "FuZhou_FirstPage",
"productVersion": "1.0",
"dataUrl": "APP.data.unityweb",
"wasmCodeUrl": "APP.wasm.code.unityweb",
"wasmFrameworkUrl": "APP.wasm.framework.unityweb",
"graphicsAPI": ["WebGL 2.0","WebGL 1.0"],
"webglContextAttributes": {"preserveDrawingBuffer": false},
"splashScreenStyle": "Dark",
"backgroundColor": "#231F20",
"cacheControl": {"default": "must-revalidate"},
"developmentBuild": false,
"multithreading": false,
"unityVersion": "2019.4.9f1"
}

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,24 @@
function UnityProgress(unityInstance, progress) {
if (!unityInstance.Module)
return;
if (!unityInstance.logo) {
unityInstance.logo = document.createElement("div");
unityInstance.logo.className = "logo " + unityInstance.Module.splashScreenStyle;
unityInstance.container.appendChild(unityInstance.logo);
}
if (!unityInstance.progress) {
unityInstance.progress = document.createElement("div");
unityInstance.progress.className = "progress " + unityInstance.Module.splashScreenStyle;
unityInstance.progress.empty = document.createElement("div");
unityInstance.progress.empty.className = "empty";
unityInstance.progress.appendChild(unityInstance.progress.empty);
unityInstance.progress.full = document.createElement("div");
unityInstance.progress.full.className = "full";
unityInstance.progress.appendChild(unityInstance.progress.full);
unityInstance.container.appendChild(unityInstance.progress);
}
unityInstance.progress.full.style.width = (100 * progress) + "%";
unityInstance.progress.empty.style.width = (100 * (1 - progress)) + "%";
if (progress == 1)
unityInstance.logo.style.display = unityInstance.progress.style.display = "none";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,40 @@
function _registerEvent (target, eventType, cb) {
if (target.addEventListener) {
target.addEventListener(eventType, cb)
return {
remove: function () {
target.removeEventListener(eventType, cb)
}
}
} else {
target.attachEvent(eventType, cb)
return {
remove: function () {
target.detachEvent(eventType, cb)
}
}
}
}
export function openUriWithTimeoutHack (uri, failCb, successCb) {
const timeout = setTimeout(function () {
failCb()
handler.remove()
}, 1500)
// handle page running in an iframe (blur must be registered with top level window)
let target = window
while (target != target.parent) {
target = target.parent
}
var handler = _registerEvent(target, 'blur', onBlur)
function onBlur () {
clearTimeout(timeout)
handler.remove()
successCb()
}
window.location = uri
}

View File

@ -0,0 +1,24 @@
body {
overflow: hidden;
height: 100%;
width: 100%;
}
.webgl-content * {border: 0; margin: 0; padding: 0 ;background: url('bg.jpg');}
.webgl-content {position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.webgl-content .logo, .progress {position: absolute; left: 50%; top: 30%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
/* .webgl-content .logo {background: url('progressLogo.Light.png') no-repeat center / contain; width: 154px; height: 130px;} */
.webgl-content .progress {height: 18px; width: 141px; margin-top: 90px;}
.webgl-content .progress .empty {background: url('progressEmpty.Light.png') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;}
.webgl-content .progress .full {background: url('progressFull.Light.png') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;}
.webgl-content .logo.Dark {background-image: url('progressLogo.Dark.png');}
.webgl-content .progress.Dark .empty {background-image: url('progressEmpty.Dark.png');}
.webgl-content .progress.Dark .full {background-image: url('progressFull.Dark.png');}
.webgl-content .footer {margin-top: 5px; height: 38px; line-height: 38px; font-family: Helvetica, Verdana, Arial, sans-serif; font-size: 18px;}
.webgl-content .footer .webgl-logo, .title, .fullscreen {height: 100%; display: inline-block; background: transparent center no-repeat;}
.webgl-content .footer .webgl-logo {background-image: url('webgl-logo.png'); width: 204px; float: left;}
.webgl-content .footer .title {margin-right: 10px; float: right;}
.webgl-content .footer .fullscreen {background-image: url('fullscreen.png'); width: 38px; float: right;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

96
public/APP/index.html Normal file
View File

@ -0,0 +1,96 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity WebGL Player | FuZhou_FirstPage</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script src="TemplateData/UnityProgress.js"></script>
<script src="Build/UnityLoader.js"></script>
<!-- <script type="module" src="./TemplateData/protocolcheck.js"></script> -->
<!-- <script type="module" >
import { openUriWithTimeoutHack } from './TemplateData/protocolcheck.js'
window.openUriWithTimeoutHack = openUriWithTimeoutHack;
</script> -->
<script >
var unityInstance = UnityLoader.instantiate("unityContainer", "Build/APP.json", {onProgress: UnityProgress});
function OnWake(){
const href = window.location.href
const regex = /^https?:\/\/([^/:]+):?(\d+)?/i
const match = href.match(regex)
console.log('match', match)
// const dialogImageUrl = match[1]
const dialogImageUrl = '172.16.1.253'
unityInstance.SendMessage('FirstPanel','InitUnity',dialogImageUrl)
}
function StartModel(data){
console.log("data",data)
window.parent.blur(JSON.parse(data));
// blur(data)
}
// document.getElementsByTagName("a")[0].getAttribute("target")
function blur(data) {
console.log('cscs', data)
const href = window.location.href
const regex = /^https?:\/\/([^/:]+):?(\d+)?/i
const match = href.match(regex)
console.log('match', match)
// const dialogImageUrl = match[0]
// const dialogImageUrl2 = match[1]
const dialogImageUrl = 'http://172.16.1.253:4000'
const dialogImageUrl2 = '172.16.1.253'
const ModelResourcesE = encodeURIComponent(dialogImageUrl + data.ModelResources)
console.log('ModelResourcesE', ModelResourcesE)
openUriWithTimeoutHack(
'starter://' + `;${ModelResourcesE};${data.ModelResourcesPath};${data.RegistryName};${data.MONITOR_ID};${data.VersionNumber};${data.CUSTOMS_CODE};${data.ModelName};${data.TrainingSize};${dialogImageUrl2};`,
() => {
console.log('111' )
ElMessageBox.confirm('启动器未安装,启动应用前需要先安装启动器,现在去下载吗?', '提示', {
confirmButtonText: '下载',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
// debugger
// 打开启动器下载路径
GetLastVersion().then((res) => {
console.log('res', res)
window.open(dialogImageUrl + res.data.LauncherResources)
}).catch(() => {
// exitApp(startParams.trainingId)
ElMessage.error('获取启动器下载路径失败')
})
})
.catch(() => {
// exitApp(startParams.trainingId)
console.log('取消下载')
})
},
() => {
console.log('已安装,自动唤起')
}
) // 调用export的方法
//
}
// 启动启动器
</script>
<script type="module">
</script>
</head>
<body>
<div class="webgl-content" style="height: 100%;width: 100%;" >
<div id="unityContainer" style="height: 100%;width: 100%;" ></div>
<!-- <div class="footer">
<div class="webgl-logo"></div>
<div class="fullscreen" onclick="unityInstance.SetFullscreen(1)"></div>
<div class="title">FuZhou_FirstPage</div>
</div> -->
</div>
</body>
</html>

View File

@ -16,7 +16,7 @@ export const GetModelList = (params) => {
export const GetModelDetails = (params) => {
return get('/api/GetModelDetails', params)
}
//
// 新增成绩管理列表
export const AddExam = (params) => {
return post('/api/AddExam', params)
@ -25,7 +25,18 @@ export const AddExam = (params) => {
export const EditExamList = (params) => {
return post('/api/EditExam', params)
}
// 编辑启动器
export const EditStarter = (params) => {
return post('/api/EditStarter', params)
}
// 上传文件接口
export const apiUploadList = (url, params) => {
return uploadFile('/api/Upload' + url, params)
}
// 删除文件
export const DeleteFile = (params) => {
return get('/api/DeleteFile', params)
}
// 编辑器树结构
export const GetFaultTree = (params) => {
return get('/api/GetFaultTree', params)
@ -92,9 +103,9 @@ export const GetPlatformArea = (params) => {
export const GetLine = (params) => {
return get('/api/GetLine', params)
}
export const EditExam = (params) => {
return post('/api/EditExam', params)
// 编辑模型
export const EditModel = (params) => {
return post('/api/EditModel', params)
}
export const GetExamDetails = (params) => {
return get('/api/GetExamDetails', params)

41
src/api/map.js Normal file
View File

@ -0,0 +1,41 @@
import { get, post, download, uploadFile } from './request'
// 获取福州海关所有监管企
export const getCorporation = (params) => {
return get('/api/Corporation/GetNum', params)
}
// 获取堆场总数
export const getAllInfo = (params) => {
return get('/api/Yard/GetAllInfo', params)
}
// 获取年度进口总量
export const getStorage = (params) => {
return get('/api/Storage/GetInNumWithCurrent', params)
}
// 获取年度进口总量
export const GetInNumYear = (params) => {
return get('/api/Storage/GetInNumByYear', params)
}
// 获取全年累计进出口传播艘次
export const GetByYear = (params) => {
return get('/api/Storage/GetBoCiByYear', params)
}
// 获取全年累计进出口传播艘次
export const GetLastVersion = (params) => {
return get('/api/GetLastVersion', params)
}
// export const apiUpload = (url, params) => {
// return uploadFile('/api/ImportExam', params)
// }
// 获取左侧进出口商品种类总数
export const GetGoodNumByYear = (params) => {
return get('api/Storage/GetGoodNumByYear', params)
}
// 在库总量
export const GetLastNum = (params) => {
return get('api/Storage/GetLastNum', params)
}

File diff suppressed because it is too large Load Diff

View File

@ -1,333 +1,333 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
<style>
.main .logo {
margin-top: 0;
height: auto;
}
.main .logo a {
display: flex;
align-items: center;
}
.main .logo .sub-title {
margin-left: 0.5em;
font-size: 22px;
color: #fff;
background: linear-gradient(-45deg, #3967FF, #B500FE);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4490429" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe61d;</span>
<div class="name">分析管理</div>
<div class="code-name">&amp;#xe61d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6d2;</span>
<div class="name">实训管理</div>
<div class="code-name">&amp;#xe6d2;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe821;</span>
<div class="name">学习管理</div>
<div class="code-name">&amp;#xe821;</div>
</li>
<!-- 新增客户端管理 -->
<li class="dib">
<span class="icon iconfont">&#xe821;</span>
<div class="name">客户端管理</div>
<div class="code-name">&amp;#xe821;</div>
</li>
<!-- 新增客户端管理 end-->
<li class="dib">
<span class="icon iconfont">&#xe601;</span>
<div class="name">grade</div>
<div class="code-name">&amp;#xe601;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe602;</span>
<div class="name">exam</div>
<div class="code-name">&amp;#xe602;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe603;</span>
<div class="name">system</div>
<div class="code-name">&amp;#xe603;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持两种方式引用多色图标SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1716193171193') format('woff2'),
url('iconfont.woff?t=1716193171193') format('woff'),
url('iconfont.ttf?t=1716193171193') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-fenxiguanli"></span>
<div class="name">
分析管理
</div>
<div class="code-name">.icon-fenxiguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shixunguanli"></span>
<div class="name">
实训管理
</div>
<div class="code-name">.icon-shixunguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xuexiguanli"></span>
<div class="name">
学习管理
</div>
<div class="code-name">.icon-xuexiguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-chengji"></span>
<div class="name">
grade
</div>
<div class="code-name">.icon-chengji
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-kaoshi"></span>
<div class="name">
exam
</div>
<div class="code-name">.icon-kaoshi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xitong"></span>
<div class="name">
system
</div>
<div class="code-name">.icon-xitong
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fenxiguanli"></use>
</svg>
<div class="name">分析管理</div>
<div class="code-name">#icon-fenxiguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shixunguanli"></use>
</svg>
<div class="name">实训管理</div>
<div class="code-name">#icon-shixunguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xuexiguanli"></use>
</svg>
<div class="name">学习管理</div>
<div class="code-name">#icon-xuexiguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-chengji"></use>
</svg>
<div class="name">grade</div>
<div class="code-name">#icon-chengji</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-kaoshi"></use>
</svg>
<div class="name">exam</div>
<div class="code-name">#icon-kaoshi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xitong"></use>
</svg>
<div class="name">system</div>
<div class="code-name">#icon-xitong</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
<style>
.main .logo {
margin-top: 0;
height: auto;
}
.main .logo a {
display: flex;
align-items: center;
}
.main .logo .sub-title {
margin-left: 0.5em;
font-size: 22px;
color: #fff;
background: linear-gradient(-45deg, #3967FF, #B500FE);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4490429" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe61d;</span>
<div class="name">分析管理</div>
<div class="code-name">&amp;#xe61d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6d2;</span>
<div class="name">实训管理</div>
<div class="code-name">&amp;#xe6d2;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe821;</span>
<div class="name">学习管理</div>
<div class="code-name">&amp;#xe821;</div>
</li>
<!-- 新增客户端管理 -->
<li class="dib">
<span class="icon iconfont">&#xe821;</span>
<div class="name">客户端管理</div>
<div class="code-name">&amp;#xe821;</div>
</li>
<!-- 新增客户端管理 end-->
<li class="dib">
<span class="icon iconfont">&#xe601;</span>
<div class="name">grade</div>
<div class="code-name">&amp;#xe601;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe602;</span>
<div class="name">exam</div>
<div class="code-name">&amp;#xe602;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe603;</span>
<div class="name">system</div>
<div class="code-name">&amp;#xe603;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持两种方式引用多色图标SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1716193171193') format('woff2'),
url('iconfont.woff?t=1716193171193') format('woff'),
url('iconfont.ttf?t=1716193171193') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-fenxiguanli"></span>
<div class="name">
分析管理
</div>
<div class="code-name">.icon-fenxiguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shixunguanli"></span>
<div class="name">
实训管理
</div>
<div class="code-name">.icon-shixunguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xuexiguanli"></span>
<div class="name">
学习管理
</div>
<div class="code-name">.icon-xuexiguanli
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-chengji"></span>
<div class="name">
grade
</div>
<div class="code-name">.icon-chengji
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-kaoshi"></span>
<div class="name">
exam
</div>
<div class="code-name">.icon-kaoshi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xitong"></span>
<div class="name">
system
</div>
<div class="code-name">.icon-xitong
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fenxiguanli"></use>
</svg>
<div class="name">分析管理</div>
<div class="code-name">#icon-fenxiguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shixunguanli"></use>
</svg>
<div class="name">实训管理</div>
<div class="code-name">#icon-shixunguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xuexiguanli"></use>
</svg>
<div class="name">学习管理</div>
<div class="code-name">#icon-xuexiguanli</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-chengji"></use>
</svg>
<div class="name">grade</div>
<div class="code-name">#icon-chengji</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-kaoshi"></use>
</svg>
<div class="name">exam</div>
<div class="code-name">#icon-kaoshi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xitong"></use>
</svg>
<div class="name">system</div>
<div class="code-name">#icon-xitong</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>

View File

@ -1,39 +1,39 @@
@font-face {
font-family: "iconfont"; /* Project id 4490429 */
src: url('iconfont.woff2?t=1716193171193') format('woff2'),
url('iconfont.woff?t=1716193171193') format('woff'),
url('iconfont.ttf?t=1716193171193') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-fenxiguanli:before {
content: "\e61d";
}
.icon-shixunguanli:before {
content: "\e6d2";
}
.icon-xuexiguanli:before {
content: "\e821";
}
.icon-chengji:before {
content: "\e601";
}
.icon-kaoshi:before {
content: "\e602";
}
.icon-xitong:before {
content: "\e603";
}
@font-face {
font-family: "iconfont"; /* Project id 4490429 */
src: url('iconfont.woff2?t=1716193171193') format('woff2'),
url('iconfont.woff?t=1716193171193') format('woff'),
url('iconfont.ttf?t=1716193171193') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-fenxiguanli:before {
content: "\e61d";
}
.icon-shixunguanli:before {
content: "\e6d2";
}
.icon-xuexiguanli:before {
content: "\e821";
}
.icon-chengji:before {
content: "\e601";
}
.icon-kaoshi:before {
content: "\e602";
}
.icon-xitong:before {
content: "\e603";
}

View File

@ -1,60 +1,60 @@
{
"id": "4490429",
"name": "LKJC",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "9096254",
"name": "分析管理",
"font_class": "fenxiguanli",
"unicode": "e61d",
"unicode_decimal": 58909
},
{
"icon_id": "11101584",
"name": "实训管理",
"font_class": "shixunguanli",
"unicode": "e6d2",
"unicode_decimal": 59090
},
{
"icon_id": "36656926",
"name": "学习管理",
"font_class": "xuexiguanli",
"unicode": "e821",
"unicode_decimal": 59425
},
//
{
"icon_id": "36656927",
"name": "客户端管理",
"font_class": "kehuduanguanli",
"unicode": "e821",
"unicode_decimal": 59427
},
// end
{
"icon_id": "39758479",
"name": "grade",
"font_class": "chengji",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "39758508",
"name": "exam",
"font_class": "kaoshi",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "39758529",
"name": "system",
"font_class": "xitong",
"unicode": "e603",
"unicode_decimal": 58883
}
]
}
{
"id": "4490429",
"name": "LKJC",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "9096254",
"name": "分析管理",
"font_class": "fenxiguanli",
"unicode": "e61d",
"unicode_decimal": 58909
},
{
"icon_id": "11101584",
"name": "实训管理",
"font_class": "shixunguanli",
"unicode": "e6d2",
"unicode_decimal": 59090
},
{
"icon_id": "36656926",
"name": "学习管理",
"font_class": "xuexiguanli",
"unicode": "e821",
"unicode_decimal": 59425
},
//
{
"icon_id": "36656927",
"name": "客户端管理",
"font_class": "kehuduanguanli",
"unicode": "e821",
"unicode_decimal": 59427
},
// end
{
"icon_id": "39758479",
"name": "grade",
"font_class": "chengji",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "39758508",
"name": "exam",
"font_class": "kaoshi",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "39758529",
"name": "system",
"font_class": "xitong",
"unicode": "e603",
"unicode_decimal": 58883
}
]
}

Binary file not shown.

Binary file not shown.

View File

@ -1,12 +1,27 @@
@font-face {
font-family: 'Microsoft-YaHei';
src: url('./msyh.ttc') format('truetype');
}
@font-face {
font-family: 'D-DIN-Bold';
src: url('./D-DIN-Bold.otf') format('opentype');
}
@font-face {
font-family: 'DouyinSansBold';
src: url('./DouyinSansBold.otf') format('opentype');
}
@font-face {
font-family: 'Microsoft-YaHei';
src: url('./msyh.ttc') format('truetype');
}
@font-face {
font-family: 'D-DIN-Bold';
src: url('./D-DIN-Bold.otf') format('opentype');
}
@font-face {
font-family: 'DouyinSansBold';
src: url('./DouyinSansBold.otf') format('opentype');
}
@font-face {
font-family: '思源黑体 CN Heavy';
src: url('./SourceHanSansCN-Heavy.ttf') format('opentype');
}
@font-face {
font-family: '思源黑体 CN Regular';
src: url('./SourceHanSansCN-Regular.ttf') format('opentype');
}
@font-face {
font-family: '优设标题黑';
src: url('./优设标题黑.ttf') format('opentype');
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/assets/imgurl/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Some files were not shown because too many files have changed in this diff Show More