feat(build): add icon generation and external binary bundling

- Add scripts to generate application icons in multiple formats (ICO, ICNS, PNG)
- Implement download scripts for uv and Node.js binaries for cross-platform support
- Update build configuration to use new icon resources and bundled binaries
- Remove old loading screen and unused build configurations
- Fix application icon path resolution to use app resources directory
This commit is contained in:
duanshuwen
2026-04-08 07:25:25 +08:00
parent 49a8c0c1d6
commit eb9acae071
132 changed files with 1289 additions and 817920 deletions

View File

@@ -1 +0,0 @@
import{a8 as $,a9 as k,aa as B,ab as S,e as u,f as p,j as t,F as v,z as E,k as g,v as l,A,D as m,E as y,t as h,m as C,n as b,h as c,ac as N,w as i,H as _,o as L,g as z,s as V,_ as M,ad as D}from"./index-Vy2R4VLt.js";import{_ as F}from"./index.vue_vue_type_script_setup_true_lang-DFmKtA1a.js";const R=[{id:1,name:"账号",icon:$,color:"#525866",activeColor:"#2B7FFF",componentName:"AccountSetting"},{id:2,name:"渠道管理",icon:k,color:"#525866",activeColor:"#2B7FFF",componentName:"ChannelSetting"},{id:3,name:"房型管理",icon:B,color:"#525866",activeColor:"#2B7FFF",componentName:"RoomTypeSetting"},{id:4,name:"通用设置",icon:S,color:"#525866",activeColor:"#2B7FFF",componentName:"Version"}],T={class:"w-[136px] h-full box-border border-r-[1px] border-r-[#E5E8EE] py-[12px] px-[8px] flex flex-col gap-[4px] select-none"},j=["onClick"],P={class:"box-border px-[8px] text-[14px] font-medium text-[#525866]"},H=u({__name:"index",emits:["change"],setup(d,{emit:r}){const e=C(1),a=r,n=async o=>{e.value=o.id,a("change",o)};return(o,x)=>(l(),p("div",T,[x[0]||(x[0]=t("div",{class:"text-[12px] text-[#99A0AE] p-[4px]"},"系统设置",-1)),(l(!0),p(v,null,E(g(R),s=>(l(),p("div",{class:A(["box-border flex items-center py-[10px] px-[12px] rounded-[6px] cursor-pointer",s.id===e.value?"bg-[#EFF6FF]":""]),key:s.id,onClick:w=>n(s)},[(l(),m(y(s.icon),{color:s.id===e.value?s.activeColor:s.color,class:"w-[20px] h-[20px]"},null,8,["color"])),t("span",P,h(s.name),1)],10,j))),128))]))}}),I={class:"flex-1 h-full p-[20px] select-none"},q={class:"w-full flex items-center py-[20px] box-border border-b-[1px] border-dashed border-b-[#E5E8EE]"},G={class:"border-[1px] border-[#E5E8EE] rounded-[6px] px-[6px] py-[4px] flex items-center ml-[24px]"},f=u({__name:"index",setup(d){return(r,e)=>{const a=b("el-button");return l(),p("div",I,[c(F,{title:"账号设置",desc:"请关联PMS和渠道房型名称可使用智能对标"}),e[4]||(e[4]=t("div",{class:"w-full flex items-center mt-[20px] py-[20px] box-border border-b-[1px] border-dashed border-b-[#E5E8EE]"},[t("div",{class:"label w-[64px] text-[16px] font-medium text-[#171717] mr-[24px]"},"账号"),t("div",{class:"value text-[14px] font-medium text-[#171717]"},"1234567890")],-1)),t("div",q,[e[2]||(e[2]=t("div",{class:"label w-[64px] text-[16px] font-medium text-[#171717] mr-[24px]"},"登录密码",-1)),e[3]||(e[3]=t("div",{class:"value text-[14px] text-[#99A0AE]"},"保障投资者登录操作时使用上次登录时间2022-11-09 16:24:30",-1)),t("div",G,[c(g(N),{class:"w-[16px] h-[16px]",color:"#1FC16B"}),e[0]||(e[0]=t("span",{class:"text-[12px] text-[#525866] ml-[2px]"},"已设置",-1))]),c(a,{type:"text",class:"ml-auto"},{default:i(()=>[...e[1]||(e[1]=[_("修改密码",-1)])]),_:1})])])}}}),J={class:"flex-1 h-full p-[20px] select-none"},K={class:"w-full flex items-center mt-[20px] py-[20px] box-border border-b-[1px] border-dashed border-b-[#E5E8EE]"},O={class:"w-full flex items-center mt-[20px] py-[20px] box-border border-b-[1px] border-dashed border-b-[#E5E8EE]"},Q={class:"value flex gap-2"},U=u({__name:"index",setup(d){const r=[{code:"zh",label:"中文"},{code:"en",label:"English"},{code:"ja",label:"日本語"}],e=C("zh");L(()=>{e.value=z()});const a=async n=>{n!==e.value&&(await V(n),e.value=n)};return(n,o)=>{const x=b("el-button");return l(),p("div",J,[c(F,{title:"账号设置",desc:"请关联PMS和渠道房型名称可使用智能对标"}),t("div",K,[o[1]||(o[1]=t("div",{class:"label w-[64px] text-[16px] font-medium text-[#171717] mr-[24px]"},"当前版本",-1)),o[2]||(o[2]=t("div",{class:"value text-[16px] font-medium text-[#171717]"},"1.0.0",-1)),c(x,{type:"text",class:"ml-auto"},{default:i(()=>[...o[0]||(o[0]=[_("检查更新",-1)])]),_:1})]),t("div",O,[o[3]||(o[3]=t("div",{class:"label w-[64px] text-[16px] font-medium text-[#171717] mr-[24px]"},"语言设置",-1)),t("div",Q,[(l(),p(v,null,E(r,s=>c(x,{key:s.code,type:e.value===s.code?"primary":"text",onClick:w=>a(s.code),class:"px-4"},{default:i(()=>[_(h(s.label),1)]),_:2},1032,["type","onClick"])),64))])])])}}}),W={};function X(d,r){return null}const Y=M(W,[["render",X]]),Z={class:"bg-white box-border w-full h-full flex"},oe=u({__name:"index",setup(d){const r=D(f),e={AccountSetting:f,RoomTypeSetting:Y,Version:U},a=({componentName:n})=>r.value=e[n];return(n,o)=>{const x=b("layout");return l(),m(x,null,{default:i(()=>[t("div",Z,[c(H,{onChange:a}),(l(),m(y(r.value)))])]),_:1})}}});export{oe as default};

View File

@@ -1 +0,0 @@
.login-bg[data-v-302a5eb6]{background:url(./login_bg-li_X9Vjs.png) 0 0/100% 100% no-repeat}[data-v-302a5eb6] .el-input__wrapper{border-radius:10px}[data-v-302a5eb6] .el-form-item__error{padding-top:8px}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{_ as t,D as n,w as s,j as a,n as l,v as c}from"./index-Vy2R4VLt.js";const r={};function f(_,e){const o=l("layout");return c(),n(o,null,{default:s(()=>[...e[0]||(e[0]=[a("div",{class:"bg-white h-full flex flex-col p-[20px]"}," 任务中心 ",-1)])]),_:1})}const u=t(r,[["render",f]]);export{u as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{e as p,ae as x,f as _,j as e,k as o,D as f,w as m,h as u,af as b,I as k,t as a,J as h,n as v,v as n}from"./index-Vy2R4VLt.js";const E={class:"flex justify-between items-center box-border border-b-[1px] border-b-[#E5E8EE] mb-[20px] pb-[20px]"},g={class:"flex"},B={class:"flex items-center"},C={class:"text-[24px] font-500 text-[#171717] leading-[32px] mr-[8px]"},w={class:"text-[12px] font-400 text-[#99A0AE] leading-[16px]",style:{"align-self":"flex-end"}},y={class:"flex items-center"},V=p({__name:"index",props:{title:{default:""},desc:{default:""}},emits:["update:back-to"],setup(t,{emit:r}){const c=r,l=x();return(i,s)=>{const d=v("el-icon");return n(),_("div",E,[e("div",g,[e("div",B,[o(l).onBackTo?(n(),f(d,{key:0,onClick:s[0]||(s[0]=A=>c("back-to",!0)),size:"18px",color:"#525866",class:"mr-[15px] cursor-pointer"},{default:m(()=>[u(o(b))]),_:1})):k("",!0),e("span",C,a(t.title),1)]),e("span",w,a(t.desc),1)]),e("div",y,[h(i.$slots,"right")])])}}});export{V as _};

File diff suppressed because one or more lines are too long

4
dist/index.html vendored
View File

@@ -8,8 +8,8 @@
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' http://8.138.234.141 https://one-feel-bucket.oss-cn-guangzhou.aliyuncs.com; connect-src 'self' http://8.138.234.141 https://api.iconify.design wss://onefeel.brother7.cn"
/>
<script type="module" crossorigin src="./assets/index-Vy2R4VLt.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-DFEBNx6z.css">
<script type="module" crossorigin src="./assets/index-C4Gb4VF1.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CZoyThnd.css">
</head>
<body>
<div id="app"></div>

44
dist/loading.html vendored
View File

@@ -1,44 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Security-Policy" content="script-src 'self';">
<style>
:root {
--stop-color-start: #3b82f6;
--stop-color-end: #1d4ed8;
}
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: transparent;
}
</style>
</head>
<body>
<svg width="30" height="30" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="gradient" x1="8.042%" y1="0%" x2="65.682%" y2="23.865%">
<stop stop-color="var(--stop-color-start)" offset="0%" />
<stop stop-color="var(--stop-color-end)" offset="100%" />
</linearGradient>
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(1 1)" stroke-width="2">
<circle stroke-opacity=".2" cx="18" cy="18" r="18" />
<path d="M36 18c0-9.94-8.06-18-18-18" stroke="url(#gradient)">
<animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s"
repeatCount="indefinite" />
</path>
</g>
</g>
</svg>
</body>
</html>

BIN
dist/logo.icns vendored

Binary file not shown.

BIN
dist/logo.ico vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB