codeMan 1 năm trước cách đây
mục cha
commit
113a7ff230
52 tập tin đã thay đổi với 366 bổ sung213 xóa
  1. 1 1
      dist/assets/Htabs-b6dfecdb.js
  2. 0 0
      dist/assets/base-13cd6180.js
  3. 0 0
      dist/assets/index-06b789ba.js
  4. 0 0
      dist/assets/index-1c4a66bd.js
  5. 0 1
      dist/assets/index-1cc3311f.js
  6. 0 0
      dist/assets/index-222529f6.js
  7. 0 0
      dist/assets/index-2693a8a5.js
  8. 0 0
      dist/assets/index-28408950.js
  9. 0 0
      dist/assets/index-2b303e8e.js
  10. 0 0
      dist/assets/index-2ca7bbb6.js
  11. 0 0
      dist/assets/index-2f87168d.js
  12. 0 0
      dist/assets/index-3949d87d.js
  13. 0 0
      dist/assets/index-4416906b.js
  14. 1 1
      dist/assets/index-44307ddd.js
  15. 0 0
      dist/assets/index-4f62c971.js
  16. 0 0
      dist/assets/index-529c9ada.js
  17. 0 0
      dist/assets/index-5b516a64.js
  18. 0 0
      dist/assets/index-5bbbf5b4.js
  19. 0 0
      dist/assets/index-5d8f2bf9.js
  20. 0 0
      dist/assets/index-5fab14ab.js
  21. 0 0
      dist/assets/index-64336783.js
  22. 0 0
      dist/assets/index-68559b3b.js
  23. 0 0
      dist/assets/index-6e7bf0a4.js
  24. 0 0
      dist/assets/index-73fd21d3.js
  25. 0 0
      dist/assets/index-83181d5b.js
  26. 0 0
      dist/assets/index-8828a025.js
  27. 0 0
      dist/assets/index-899e26c7.js
  28. 0 0
      dist/assets/index-90ac6961.js
  29. 1 1
      dist/assets/index-afbd5bf9.js
  30. 1 0
      dist/assets/index-b9dad402.js
  31. 0 0
      dist/assets/index-c44c7c71.js
  32. 0 0
      dist/assets/index-cbeaf412.js
  33. 1 1
      dist/assets/index-d23effb8.js
  34. 0 0
      dist/assets/index-d8fae49a.js
  35. 1 1
      dist/assets/index-daf849e5.js
  36. 0 0
      dist/assets/index-e34a78b0.js
  37. 0 0
      dist/assets/index-e89cfa0d.js
  38. 0 0
      dist/assets/index-ec5d5c7f.js
  39. 0 0
      dist/assets/index-eec3f7d1.js
  40. 0 0
      dist/assets/index-f3716a9d.js
  41. 1 1
      dist/assets/login-340b3836.js
  42. 1 1
      dist/index.html
  43. 14 0
      src/App.vue
  44. 44 0
      src/assets/LOGO.svg
  45. BIN
      src/assets/wallhaven-0pq8gm.jpeg
  46. 1 1
      src/components/layout/modules/header.vue
  47. 1 2
      src/operation/moduleNormal/roleManage/detail/modules/addAuth.vue
  48. 1 1
      src/stores/modules/auth.js
  49. 3 0
      src/system/IOT/firmwareMag/index.vue
  50. 1 2
      src/system/moduleNormal/roleManage/detail/modules/addAuth.vue
  51. 8 0
      src/system/moduleNormal/userManage/index.vue
  52. 285 199
      src/views/login/login.vue

+ 1 - 1
dist/assets/Htabs-3d9fd702.js → dist/assets/Htabs-b6dfecdb.js

@@ -1 +1 @@
-import{e as i,r}from"./index-7688c5b5.js";const u=i("routeTabs",{state:()=>({historyRoutes:[],activeKey:0}),persist:{enabled:!0,strategies:[{storage:localStorage,paths:["historyRoutes","activeKey"]}]},getters:{},actions:{saveRoute(e){if(!this.historyRoutes.some(o=>o.name==e.name))return this.historyRoutes.push(e)},delRoute(e,s){if(r.options.routes[1].children.forEach(t=>{t.name==e&&(t.keepAlive=!1)}),this.historyRoutes=this.historyRoutes.filter(t=>{if(t.name!==e)return t}),e==s&&this.historyRoutes.length>0)return r.replace({name:this.historyRoutes[0].meta.name})}}});export{u};
+import{e as i,r}from"./index-73fd21d3.js";const u=i("routeTabs",{state:()=>({historyRoutes:[],activeKey:0}),persist:{enabled:!0,strategies:[{storage:localStorage,paths:["historyRoutes","activeKey"]}]},getters:{},actions:{saveRoute(e){if(!this.historyRoutes.some(o=>o.name==e.name))return this.historyRoutes.push(e)},delRoute(e,s){if(r.options.routes[1].children.forEach(t=>{t.name==e&&(t.keepAlive=!1)}),this.historyRoutes=this.historyRoutes.filter(t=>{if(t.name!==e)return t}),e==s&&this.historyRoutes.length>0)return r.replace({name:this.historyRoutes[0].meta.name})}}});export{u};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/base-13cd6180.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-06b789ba.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-1c4a66bd.js


+ 0 - 1
dist/assets/index-1cc3311f.js

@@ -1 +0,0 @@
-import{d as c}from"./index-85147fa5.js";import{_ as m}from"./index-4bca9dd2.js";import{u as v}from"./vue-router-d343d91b.js";import{A as d}from"./index-7688c5b5.js";import{a,o as b,V as p,W as _,j as r,X as f,u as D,$ as i}from"./vue-34edc67f.js";import"./base-a8aaa91c.js";import"./_plugin-vue_export-helper-c27b6911.js";const C=i("div",{class:"defaultInfo"},[i("span",null,"基本信息")],-1),V={__name:"index",setup(h){const l=v(),t=a({}),s=async()=>{const e=await d.requested({id:"20230619142003",content:{w_iotcardid:l.currentRoute.value.query.id}});t.value=e.data,n(e.data)},o=a([]),u=a([]),n=e=>{o.value=[{label:"ICCID",value:e.iccid},{label:"绑定设备",value:e.devicename},{label:"运营商",value:e.telecomoperator=="CM"?"移动":e.telecomoperator=="CT"?"电信":e.telecomoperator=="CU"?"联通":""},{label:"总流量",value:e.totalAmount},{label:"使用流量",value:e.useAmount},{label:"剩余流量",value:e.remainAmount},{label:"激活日期",value:e.activationdate},{label:"余额",value:e.amount},{label:"状态",value:e.status},{label:"站点",value:e.siteid}],u.value=[{label:"ICCID",value:e.iccid},{label:"绑定设备",value:e.devicename},{label:"运营商",value:e.telecomoperator},{label:"状态",value:e.status},{label:"激活日期",value:e.activationdate},{label:"站点",value:e.siteid}]};return b(()=>{s()}),(e,w)=>(p(),_("div",null,[r(c,{headData:o.value,title:"卡号:"+t.value.msisdn,tabs:["详细信息"],ownertable:"w_iotcard",delParam:{id:"20230619142203",content:{w_iotcardid:D(l).currentRoute.value.query.id}}},{tab0:f(()=>[C,r(m,{data:u.value},null,8,["data"])]),_:1},8,["headData","title","delParam"])]))}};export{V as default};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-222529f6.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-2693a8a5.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-28408950.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-2b303e8e.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-2ca7bbb6.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-2f87168d.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-3949d87d.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-4416906b.js


+ 1 - 1
dist/assets/index-28ed3808.js → dist/assets/index-44307ddd.js

@@ -1 +1 @@
-import{l as d}from"./index-5946525c.js";import{A as m}from"./index-7688c5b5.js";import{u}from"./vue-router-d343d91b.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";import{a as s,U as x,V as r,W as y,j as g,X as n,u as c,G as h,a5 as k,$ as b,a2 as w,a3 as B}from"./vue-34edc67f.js";import"./base-a8aaa91c.js";const N={class:"y-container"},v=["onClick"],A={__name:"index",setup(S){u();let i=s([]);s([]);let p=s({content:{pageNumber:1,pageSize:20,systemappid:JSON.parse(sessionStorage.getItem("app")).systemappid},id:20221213094401});const l=()=>{let t=window.location.href,e=t.indexOf("/"),a=0;for(;e!=-1;)if(a++,e=t.indexOf("/",e+1),a++==3)return t.slice(0,e)},_=async t=>{console.log("http://60.204.153.188/");let e=await m.requested({id:20221213094501,content:{sys_reportid:t.sys_reportid,dataid:0}});window.open(l()+e.data)};return(t,e)=>{const a=x("a-button");return r(),y("div",N,[g(d,{columns:c(i),param:c(p),tableName:"reportcenterTable"},{operation:n(()=>[h(" 报表中心 ")]),tb_cell:n(({data:o})=>[o.column.dataIndex=="name"?(r(),k(a,{key:0,type:"link"},{default:n(()=>[b("span",{class:"btn-link",onClick:C=>_(o.record)},w(o.record.name),9,v)]),_:2},1024)):B("",!0)]),_:1},8,["columns","param"])])}}},P=f(A,[["__scopeId","data-v-caca61d5"]]);export{P as default};
+import{l as d}from"./index-5fab14ab.js";import{A as m}from"./index-73fd21d3.js";import{u}from"./vue-router-d343d91b.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";import{a as s,U as x,V as r,W as y,j as g,X as n,u as c,G as h,a5 as k,$ as b,a2 as w,a3 as B}from"./vue-34edc67f.js";import"./base-13cd6180.js";const N={class:"y-container"},v=["onClick"],A={__name:"index",setup(S){u();let i=s([]);s([]);let p=s({content:{pageNumber:1,pageSize:20,systemappid:JSON.parse(sessionStorage.getItem("app")).systemappid},id:20221213094401});const l=()=>{let t=window.location.href,e=t.indexOf("/"),a=0;for(;e!=-1;)if(a++,e=t.indexOf("/",e+1),a++==3)return t.slice(0,e)},_=async t=>{console.log("http://60.204.153.188/");let e=await m.requested({id:20221213094501,content:{sys_reportid:t.sys_reportid,dataid:0}});window.open(l()+e.data)};return(t,e)=>{const a=x("a-button");return r(),y("div",N,[g(d,{columns:c(i),param:c(p),tableName:"reportcenterTable"},{operation:n(()=>[h(" 报表中心 ")]),tb_cell:n(({data:o})=>[o.column.dataIndex=="name"?(r(),k(a,{key:0,type:"link"},{default:n(()=>[b("span",{class:"btn-link",onClick:C=>_(o.record)},w(o.record.name),9,v)]),_:2},1024)):B("",!0)]),_:1},8,["columns","param"])])}}},P=f(A,[["__scopeId","data-v-caca61d5"]]);export{P as default};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-4f62c971.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-529c9ada.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-5b516a64.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-5bbbf5b4.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-5d8f2bf9.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-5fab14ab.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-64336783.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-68559b3b.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-6e7bf0a4.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-73fd21d3.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-83181d5b.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-8828a025.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-899e26c7.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-90ac6961.js


+ 1 - 1
dist/assets/index-c986ce1a.js → dist/assets/index-afbd5bf9.js

@@ -1 +1 @@
-import{M as o,A as c,f as m}from"./index-7688c5b5.js";import{U as l,V as u,a5 as p,X as y,G as d,a2 as g,u as S}from"./vue-34edc67f.js";const N={__name:"index",props:{type:String,btnName:String,message:String,idName:String,keyName:String,id:[String,Number],paramData:{type:Array,default(){return[]}},size:String},emits:["onSuccess"],setup(e,{emit:r}){const t=e;let i=()=>{o.confirm({title:t.message||"确定操作当前数据吗?",async onOk(){let a={content:{}};a.id=t.idName,a.content[t.keyName]=t.id,t.paramData.forEach(n=>{a.content[n.key]=n.value});let s=await c.requested(a);m.message(s,"操作成功",()=>{r("onSuccess")})},onCancel(){}})};return(a,s)=>{const n=l("a-button");return u(),p(n,{type:e.type?e.type:"primary",onClick:S(i),size:e.size||"small"},{default:y(()=>[d(g(e.btnName),1)]),_:1},8,["type","onClick","size"])}}};export{N as _};
+import{M as o,A as c,f as m}from"./index-73fd21d3.js";import{U as l,V as u,a5 as p,X as y,G as d,a2 as g,u as S}from"./vue-34edc67f.js";const N={__name:"index",props:{type:String,btnName:String,message:String,idName:String,keyName:String,id:[String,Number],paramData:{type:Array,default(){return[]}},size:String},emits:["onSuccess"],setup(e,{emit:r}){const t=e;let i=()=>{o.confirm({title:t.message||"确定操作当前数据吗?",async onOk(){let a={content:{}};a.id=t.idName,a.content[t.keyName]=t.id,t.paramData.forEach(n=>{a.content[n.key]=n.value});let s=await c.requested(a);m.message(s,"操作成功",()=>{r("onSuccess")})},onCancel(){}})};return(a,s)=>{const n=l("a-button");return u(),p(n,{type:e.type?e.type:"primary",onClick:S(i),size:e.size||"small"},{default:y(()=>[d(g(e.btnName),1)]),_:1},8,["type","onClick","size"])}}};export{N as _};

+ 1 - 0
dist/assets/index-b9dad402.js

@@ -0,0 +1 @@
+import{d as c}from"./index-eec3f7d1.js";import{_ as m}from"./index-4bca9dd2.js";import{u as v}from"./vue-router-d343d91b.js";import{A as b}from"./index-73fd21d3.js";import{a,o as d,V as p,W as _,j as r,X as f,u as D,$ as n}from"./vue-34edc67f.js";import"./base-13cd6180.js";import"./_plugin-vue_export-helper-c27b6911.js";const C=n("div",{class:"defaultInfo"},[n("span",null,"基本信息")],-1),V={__name:"index",setup(h){const l=v(),t=a({}),s=async()=>{const e=await b.requested({id:"20230619142003",content:{w_iotcardid:l.currentRoute.value.query.id}});t.value=e.data,i(e.data)},o=a([]),u=a([]),i=e=>{o.value=[{label:"ICCID",value:e.iccid},{label:"绑定设备",value:e.devicename},{label:"运营商",value:e.telecomoperator=="CM"?"移动":e.telecomoperator=="CT"?"电信":e.telecomoperator=="CU"?"联通":""},{label:"总流量",value:e.totalAmount},{label:"使用流量",value:e.useAmount},{label:"剩余流量",value:e.remainAmount},{label:"激活日期",value:e.activationdate},{label:"余额",value:e.amount},{label:"状态",value:e.status},{label:"站点",value:e.sitename}],u.value=[{label:"ICCID",value:e.iccid},{label:"绑定设备",value:e.devicename},{label:"运营商",value:e.telecomoperator},{label:"状态",value:e.status},{label:"激活日期",value:e.activationdate},{label:"站点",value:e.sitename}]};return d(()=>{s()}),(e,w)=>(p(),_("div",null,[r(c,{headData:o.value,title:"卡号:"+t.value.msisdn,tabs:["详细信息"],ownertable:"w_iotcard",delParam:{id:"20230619142203",content:{w_iotcardid:D(l).currentRoute.value.query.id}}},{tab0:f(()=>[C,r(m,{data:u.value},null,8,["data"])]),_:1},8,["headData","title","delParam"])]))}};export{V as default};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-c44c7c71.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-cbeaf412.js


+ 1 - 1
dist/assets/index-805b7522.js → dist/assets/index-d23effb8.js

@@ -1 +1 @@
-import{l as n}from"./index-5946525c.js";import{a as e,o as s,V as p,W as i,j as c,X as l,u as a}from"./vue-34edc67f.js";import"./vue-router-d343d91b.js";import"./index-7688c5b5.js";import"./base-a8aaa91c.js";import"./_plugin-vue_export-helper-c27b6911.js";const g={__name:"index",setup(m){const t=e();let r=e([{label:"范围",key:"isnext",type:"select",dataSource:[{remarks:"今年",value:"0"},{remarks:"明年",value:"1"}]},{label:"时间范围",key:"dateRange",type:"datepickerRange",objKeys:["begindate","enddate"]}]),o=e({content:{pageNumber:1,pageSize:20,where:{condition:""}},id:20221215165504});return s(()=>{}),(u,d)=>(p(),i("div",null,[c(n,{ref_key:"list",ref:t,keyRouteName:"accountno",param:a(o),tableName:"vacationTable",searchType:a(r)},{operation:l(()=>[]),_:1},8,["param","searchType"])]))}};export{g as default};
+import{l as n}from"./index-5fab14ab.js";import{a as e,o as s,V as p,W as i,j as c,X as l,u as a}from"./vue-34edc67f.js";import"./vue-router-d343d91b.js";import"./index-73fd21d3.js";import"./base-13cd6180.js";import"./_plugin-vue_export-helper-c27b6911.js";const g={__name:"index",setup(m){const t=e();let r=e([{label:"范围",key:"isnext",type:"select",dataSource:[{remarks:"今年",value:"0"},{remarks:"明年",value:"1"}]},{label:"时间范围",key:"dateRange",type:"datepickerRange",objKeys:["begindate","enddate"]}]),o=e({content:{pageNumber:1,pageSize:20,where:{condition:""}},id:20221215165504});return s(()=>{}),(u,d)=>(p(),i("div",null,[c(n,{ref_key:"list",ref:t,keyRouteName:"accountno",param:a(o),tableName:"vacationTable",searchType:a(r)},{operation:l(()=>[]),_:1},8,["param","searchType"])]))}};export{g as default};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-d8fae49a.js


+ 1 - 1
dist/assets/index-50caf6c7.js → dist/assets/index-daf849e5.js

@@ -1 +1 @@
-import{n as k}from"./index-7467dfa5.js";import{m as v}from"./index-7688c5b5.js";import{a as r,U as D,V as m,W as c,j as d,X as u,ab as R,R as f,F as p,G as _,a2 as x,u as l,H as y}from"./vue-34edc67f.js";const B={__name:"index",props:{title:String,wdith:String},emits:["selectRowData","close"],setup(o,{expose:b,emit:n}){let s=r(),e=r(!1),g=()=>{if(!s.value.tableRecord.length)return v.warning("请选择数据");e.value=!1,n("selectRowData",s.value.tableRecord)},w=()=>{n("close")};return b({modeVisible:e}),(a,i)=>{const h=D("a-modal");return m(),c(p,null,[d(h,{visible:l(e),"onUpdate:visible":i[0]||(i[0]=t=>y(e)?e.value=t:e=t),class:"custom-class",title:o.title||"标题",placement:"right",width:o.wdith||"1000px",closable:!1,onClose:l(w),onOk:l(g)},{default:u(()=>[d(k,R(a.$attrs,{ref_key:"list",ref:s,size:"small",onListData:a.listData}),{tb_cell:u(({data:t})=>[t.column.dataIndex==="operation"?f(a.$slots,"handleBtn",{key:0}):(m(),c(p,{key:1},[_(x(t.record[t.column.dataIndex]),1)],64))]),_:3},16,["onListData"])]),_:3},8,["visible","title","width","onClose","onOk"]),f(a.$slots,"slot1")],64)}}};export{B as _};
+import{n as k}from"./index-83181d5b.js";import{m as v}from"./index-73fd21d3.js";import{a as r,U as D,V as m,W as c,j as d,X as u,ab as R,R as f,F as p,G as _,a2 as x,u as l,H as y}from"./vue-34edc67f.js";const B={__name:"index",props:{title:String,wdith:String},emits:["selectRowData","close"],setup(o,{expose:b,emit:n}){let s=r(),e=r(!1),g=()=>{if(!s.value.tableRecord.length)return v.warning("请选择数据");e.value=!1,n("selectRowData",s.value.tableRecord)},w=()=>{n("close")};return b({modeVisible:e}),(a,i)=>{const h=D("a-modal");return m(),c(p,null,[d(h,{visible:l(e),"onUpdate:visible":i[0]||(i[0]=t=>y(e)?e.value=t:e=t),class:"custom-class",title:o.title||"标题",placement:"right",width:o.wdith||"1000px",closable:!1,onClose:l(w),onOk:l(g)},{default:u(()=>[d(k,R(a.$attrs,{ref_key:"list",ref:s,size:"small",onListData:a.listData}),{tb_cell:u(({data:t})=>[t.column.dataIndex==="operation"?f(a.$slots,"handleBtn",{key:0}):(m(),c(p,{key:1},[_(x(t.record[t.column.dataIndex]),1)],64))]),_:3},16,["onListData"])]),_:3},8,["visible","title","width","onClose","onOk"]),f(a.$slots,"slot1")],64)}}};export{B as _};

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-e34a78b0.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-e89cfa0d.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-ec5d5c7f.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-eec3f7d1.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-f3716a9d.js


+ 1 - 1
dist/assets/login-fc7f6a5d.js → dist/assets/login-340b3836.js

@@ -1,4 +1,4 @@
-import{u as useRouter}from"./vue-router-d343d91b.js";import{c as commonjsGlobal,u as useAuthStore,s as storeToRefs,A as Api,m as message}from"./index-7688c5b5.js";import{u as useRouteTabsStore}from"./Htabs-3d9fd702.js";import{_ as _export_sfc}from"./_plugin-vue_export-helper-c27b6911.js";import{d as defineComponent,U as resolveComponent,V as openBlock,W as createElementBlock,$ as createBaseVNode,j as createVNode,X as withCtx,r as reactive,a as ref,G as createTextVNode,a0 as pushScopeId,a1 as popScopeId}from"./vue-34edc67f.js";var md5Exports={},md5$1={get exports(){return md5Exports},set exports(e){md5Exports=e}};/**
+import{u as useRouter}from"./vue-router-d343d91b.js";import{c as commonjsGlobal,u as useAuthStore,s as storeToRefs,A as Api,m as message}from"./index-73fd21d3.js";import{u as useRouteTabsStore}from"./Htabs-b6dfecdb.js";import{_ as _export_sfc}from"./_plugin-vue_export-helper-c27b6911.js";import{d as defineComponent,U as resolveComponent,V as openBlock,W as createElementBlock,$ as createBaseVNode,j as createVNode,X as withCtx,r as reactive,a as ref,G as createTextVNode,a0 as pushScopeId,a1 as popScopeId}from"./vue-34edc67f.js";var md5Exports={},md5$1={get exports(){return md5Exports},set exports(e){md5Exports=e}};/**
  * [js-md5]{@link https://github.com/emn178/js-md5}
  *
  * @namespace md5

+ 1 - 1
dist/index.html

@@ -5,7 +5,7 @@
     <link rel="icon" type="image/svg+xml" href="./vite.svg" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>班尼戈水务管理</title>
-    <script type="module" crossorigin src="./assets/index-7688c5b5.js"></script>
+    <script type="module" crossorigin src="./assets/index-73fd21d3.js"></script>
     <link rel="modulepreload" crossorigin href="./assets/vue-34edc67f.js">
     <link rel="modulepreload" crossorigin href="./assets/vue-router-d343d91b.js">
     <link rel="stylesheet" href="./assets/index-c3e25a87.css">

+ 14 - 0
src/App.vue

@@ -17,6 +17,20 @@
 </script>
 
 <style>
+@font-face {
+  font-family: 'iconfont';  /* Project id 4102028 */
+  src: url('//at.alicdn.com/t/c/font_4102028_lfautcw6p4a.woff2?t=1687834420731') format('woff2'),
+       url('//at.alicdn.com/t/c/font_4102028_lfautcw6p4a.woff?t=1687834420731') format('woff'),
+       url('//at.alicdn.com/t/c/font_4102028_lfautcw6p4a.ttf?t=1687834420731') format('truetype');
+}
+.iconfont{
+  font-family:"iconfont" !important;
+  color: #ffffff;
+  font-size:16px;font-style:normal;
+  -webkit-font-smoothing: antialiased;
+  -webkit-text-stroke-width: 0.2px;
+  -moz-osx-font-smoothing: grayscale;
+}
 #app{
   height: 100%;
   width: 100%;

+ 44 - 0
src/assets/LOGO.svg

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="_图层_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 385.8 55.6" style="enable-background:new 0 0 385.8 55.6;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+</style>
+<path class="st0" d="M172.3,43.3c-4.9,0-8.9-0.8-11.6-2.2V5.3c2.4-1.3,6.4-2.2,11.1-2.2c9.4,0,14.1,4.3,14.1,10.1
+	c0,5.3-4,8.1-7.3,8.9v0.1c3.6,0.8,8.6,4.2,8.6,9.9C187.3,39.9,181.3,43.3,172.3,43.3 M171.9,7.2c-1.7,0-3,0.2-4.3,0.7v12.7l2.2,0.1
+	c6.9,0.2,9.3-2.2,9.3-6.9C179,9.4,176.6,7.2,171.9,7.2L171.9,7.2z M169.8,24.1l-2.2,0.1v14c1.2,0.5,2.6,0.7,4.6,0.7
+	c4.7,0,7.9-1.9,7.9-6.9C180.1,26.6,177.2,23.9,169.8,24.1z"/>
+<path class="st0" d="M201.6,43.3c-8.4,0-12.5-3.4-12.5-9.3c0-8.1,7.8-10.4,17.1-11.3v-1.6c0-4-2.5-5.1-6.1-5.1c-3,0-5.8,1-7.7,1.9
+	l-1.6-4c2-1,5.7-2.3,10.5-2.3c6.3,0,11.3,2.7,11.3,10.6v19C210.2,42.4,206.4,43.3,201.6,43.3 M196.9,8.2c-1.8,0-3.2-1.3-3.2-2.9
+	s1.4-2.9,3.2-2.9s3.3,1.2,3.3,2.9S198.6,8.2,196.9,8.2z M206.2,26c-6.5,0.8-10.6,2.2-10.6,7.8c0,4,2.4,5.7,6.4,5.7
+	c1.6,0,3.1-0.3,4.1-0.8L206.2,26L206.2,26z M207.1,8.2c-1.8,0-3.2-1.3-3.2-2.9s1.4-2.9,3.2-2.9s3.2,1.2,3.2,2.9S208.9,8.2,207.1,8.2
+	z"/>
+<path class="st0" d="M234.4,42.8V21.1c0-2.5-1.1-5.1-5.5-5.1c-2.3,0-3.5,0.3-4.8,0.9v26h-6.9v-29c2.9-1.4,6.8-2.2,12-2.2
+	c9.1,0,12.2,4.4,12.2,9.4v21.8H234.4"/>
+<path class="st0" d="M263.1,42.8V21.1c0-2.5-1.1-5.1-5.5-5.1c-2.3,0-3.5,0.3-4.8,0.9v26h-6.9v-29c2.9-1.4,6.8-2.2,12-2.2
+	c9.1,0,12.2,4.4,12.2,9.4v21.8H263.1"/>
+<path class="st0" d="M278.3,6.9c-2.1,0-3.8-1.5-3.8-3.4s1.7-3.5,3.8-3.5s3.8,1.5,3.8,3.5S280.5,6.9,278.3,6.9 M274.8,42.8V12.2h6.9
+	v30.6L274.8,42.8L274.8,42.8z"/>
+<path class="st0" d="M303.8,42.8V21.1c0-2.5-1.1-5.1-5.5-5.1c-2.3,0-3.5,0.3-4.8,0.9v26h-6.9v-29c2.9-1.4,6.8-2.2,12-2.2
+	c9.1,0,12.2,4.4,12.2,9.4v21.8H303.8"/>
+<path class="st0" d="M326.3,55.6c-4.4,0-8.2-0.8-10.5-2.2l1.9-4.5c1.8,1,4.5,1.8,7.3,1.8c5.1,0,7-2.8,7-6.9v-1.9
+	c-1.2,0.7-3.1,1.1-5.7,1.1c-7.3,0-12.3-5.7-12.3-14.9c0-9.9,4.9-16.5,14.8-16.5c4.5,0,8,1,9.9,2.2v29.4
+	C338.9,51.4,333.9,55.6,326.3,55.6 M332.1,16.4c-0.9-0.5-2.1-0.7-3.6-0.7c-5.4,0-7.6,4.4-7.6,12.1s2.2,11.3,7.3,11.3
+	c1.6,0,3-0.4,3.9-1L332.1,16.4L332.1,16.4z"/>
+<path class="st0" d="M348.9,29.9c0.6,5.7,3.4,8.6,8.4,8.6c3.5,0,6.1-0.8,7.7-1.7l1.6,4.4c-2.2,1.1-5.5,2.2-10.1,2.2
+	c-8.7,0-14.2-5.6-14.2-16s5.1-15.8,13.1-15.8s12.3,5.3,12.3,14.8v0.9L348.9,29.9 M355.1,15.9c-4,0-6.8,3.3-6.6,10.6l12.7-1.9
+	C361.1,18.4,358.9,15.9,355.1,15.9L355.1,15.9z"/>
+<path class="st0" d="M384.4,16.7c-2.3-0.8-4.9-0.7-6.5,0.2v25.9H371v-29c3.2-1.5,7-2.4,14.8-2.2L384.4,16.7"/>
+<path class="st0" d="M15,43.5c-9.9,0-15-9.3-15-20.1S5.1,3.3,15.1,3.3c3.6,0,6.2,0.8,8.1,2.2l-1.6,4.3c-1.1-0.7-2.7-1.4-5.1-1.4
+	c-6.7,0-9,7.4-9,14.9s2.6,14.7,9,14.7c2.3,0,3.6-0.5,4.9-1.4l1.7,4.7C21.3,42.8,18.5,43.6,15,43.5"/>
+<path class="st0" d="M36.1,43.5c-8.6,0-12.7-6.8-12.7-15.9s4.1-15.9,12.7-15.9s12.7,6.8,12.7,15.9S44.7,43.5,36.1,43.5 M36.1,16.2
+	c-4.9,0-5.9,5.6-5.9,11.5s1.1,11.2,5.9,11.2S42,33.4,42,27.6S41.1,16.2,36.1,16.2z"/>
+<path class="st0" d="M69.5,43V21.3c0-2.5-1.1-5.1-5.5-5.1c-2.3,0-3.5,0.3-4.8,0.9v26h-6.9V14c2.9-1.4,6.8-2.2,12-2.2
+	c9.2,0,12.2,4.4,12.2,9.4V43H69.5"/>
+<path class="st0" d="M86.4,30.1c0.6,5.7,3.3,8.6,8.3,8.6c3.5,0,6.1-0.8,7.7-1.7l1.7,4.4c-2.2,1.1-5.5,2.2-10.1,2.2
+	c-8.7,0-14.2-5.6-14.2-16s5.1-15.8,13.1-15.8s12.3,5.3,12.3,14.8v0.9L86.4,30.1 M92.6,16c-4,0-6.8,3.3-6.6,10.6l12.7-1.9
+	C98.7,18.6,96.5,16,92.6,16z"/>
+<polyline class="st0" points="123.6,43 117.8,31.8 117.7,31.8 111.9,43 104.8,43 114.3,27.1 105.8,12.3 113.1,12.3 118.2,22.3 
+	118.3,22.3 123.7,12.3 130.3,12.3 121.6,26.7 131.2,43 123.6,43 "/>
+</svg>

BIN
src/assets/wallhaven-0pq8gm.jpeg


+ 1 - 1
src/components/layout/modules/header.vue

@@ -2,7 +2,7 @@
   <div class="sw-header">
     <a-space>
       <div style="width:216px">
-        <img height="30" src="@/assets/logo_slices/logo@2x.png" alt="">
+        <img height="30" src="@/assets/LOGO.svg" alt="">
       </div>
       <weather/>
     </a-space>

+ 1 - 2
src/operation/moduleNormal/roleManage/detail/modules/addAuth.vue

@@ -82,8 +82,7 @@
   }
   const addOptions = async ()=>{
     const res = await Api.requested({
-      classname:"manager.role.role",
-      method:"add_appauth",
+      id:20230608102702,
       content:{
         roleid:router.currentRoute.value.query.id,
         systemapps:[{systemappid: appParam.value.content.systemappid, optionids:optionSelect.value.map(e=>e.optionid), hiddenfields: []}]

+ 1 - 1
src/stores/modules/auth.js

@@ -124,7 +124,7 @@ export const useAuthStore = defineStore('auth', {
 
       this.systemAuthData()
 
-      fn()
+      fn && fn()
     },
     /**
      * 切换站点以后刷新数据

+ 3 - 0
src/system/IOT/firmwareMag/index.vue

@@ -21,6 +21,9 @@
       <template v-else-if="data.column.dataIndex === 'isused'">
         <span :style="{color:utils.statusAndColor(data.record.isused ? '启用' : '停用')}">{{ data.record.isused ? '启用' : '停用' }}</span>
       </template>
+      <template v-else-if="data.column.dataIndex === 'sitename'">
+        <a-tag>{{ data.record.siteid }}</a-tag>
+      </template>
     </template>
   </listTemp>
 </template>

+ 1 - 2
src/system/moduleNormal/roleManage/detail/modules/addAuth.vue

@@ -82,8 +82,7 @@
   }
   const addOptions = async ()=>{
     const res = await Api.requested({
-      classname:"manager.role.role",
-      method:"add_appauth",
+      id:20230608102702,
       content:{
         roleid:router.currentRoute.value.query.id,
         systemapps:[{systemappid: appParam.value.content.systemappid, optionids:optionSelect.value.map(e=>e.optionid), hiddenfields: []}]

+ 8 - 0
src/system/moduleNormal/userManage/index.vue

@@ -1,6 +1,14 @@
 <template>
   <div>
     <listTemp ref="list" keyRouteName="accountno" :param="param" :tableName="'accountTable'" :searchType="searchType" :detailPage="{name:'accountManageDetail',idname:'userid'}">
+      <template #tb_cell="{data}">
+        <template v-if="data.column.dataIndex == 'status'">
+          {{ data.record.status == 'ACTIVE' ? '启用' : '停用' }}
+        </template>
+        <template v-if="data.column.dataIndex == 'userrole'">
+          <a-tag v-for="item in data.record.userrole">{{ item.rolename }}</a-tag>
+        </template>
+      </template>
       <template #operation>
         <add @onSuccess="onSuccess"></add>
       </template>

+ 285 - 199
src/views/login/login.vue

@@ -1,210 +1,296 @@
 <template>
-<div class="conatiner">
-    <!-- <p class="introduce">楚楚E-订单系统&nbsp;<small>是一个便捷、高效的供应链管理软件。我们的系统为您提供基于云端的物流和供应链、库存管理、产品管理等功能,让订货变得无比简单。通过本系统,您可以随时下单或查看订单状态,轻松跟踪进度并且及时调整采购计划。</small></p> -->
-    <div class="login-form">
-      <p class="color-info">欢迎登录</p>
-      <div>
-        <p class="title">班尼戈水务-总控端</p>
-      </div>
-      <a-form
-        :model="formState"
-        name="basic"
-        layout="vertical"
-        autocomplete="off"
-        @finish="onFinish"
-        @finishFailed="onFinishFailed"
-      >
-        <a-form-item
-          label="账号"
-          name="phonenumber"
-          :rules="[{ required: true, message: '请输入账号' }]"
-        >
-          <a-input v-model:value="formState.phonenumber" size="large" placeholder="请输入账号"/>
-        </a-form-item>
-
-        <a-form-item
-          label="密码"
-          name="password"
-          :rules="[{ required: true, message: '请输入密码!' }]"
+  <div class="conatiner">
+      <!-- <p class="introduce">楚楚E-订单系统&nbsp;<small>是一个便捷、高效的供应链管理软件。我们的系统为您提供基于云端的物流和供应链、库存管理、产品管理等功能,让订货变得无比简单。通过本系统,您可以随时下单或查看订单状态,轻松跟踪进度并且及时调整采购计划。</small></p> -->
+      <div class="login-form">
+        <!-- <p class="color-info">欢迎登录</p> -->
+        <div style="text-align: center;">
+          <div style="display: inline-block;">
+            <p class="title">
+              <img height="30" src="@/assets/LOGO.svg" alt="">
+            </p>
+          </div>
+        </div>
+        <a-form
+          :model="formState"
+          name="basic"
+          layout="vertical"
+          autocomplete="off"
+          @finish="onFinish"
+          @finishFailed="onFinishFailed"
         >
-          <a-input-password v-model:value="formState.password" size="large" placeholder="请输入密码"/>
-        </a-form-item>
-
-        <a-form-item name="remember">
-          <a-checkbox v-model:checked="formState.remember">记住密码</a-checkbox>
-        </a-form-item>
-
-        <a-form-item>
-          <a-button :loading="loading" type="primary" html-type="submit" size="large" block>登录</a-button>
-        </a-form-item>
-      </a-form>
-      <!-- <a-divider><span style="color:#999;font-weight:300">其他登录方式</span></a-divider>
-      <span>敬请期待</span> -->
-    </div>
-    <div class="login-wrap">
-      <div class="top">
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="#1890ff" fill-opacity="1" d="M0,288L48,266.7C96,245,192,203,288,202.7C384,203,480,245,576,245.3C672,245,768,203,864,202.7C960,203,1056,245,1152,272C1248,299,1344,309,1392,314.7L1440,320L1440,0L1392,0C1344,0,1248,0,1152,0C1056,0,960,0,864,0C768,0,672,0,576,0C480,0,384,0,288,0C192,0,96,0,48,0L0,0Z"></path></svg>
+          <!--账号登录-->
+          <div :style="{display: loginWrp == 'account' ? 'block' : 'none'}">
+            <a-form-item
+              name="phonenumber"
+              :rules="[{ required: true, message: '请输入账号' }]"
+              style="margin-bottom: 32px;"
+            >
+              <a-input v-model:value="formState.phonenumber" size="large" placeholder="请输入账号">
+                <template #prefix>
+                  <i class="iconfont" style="margin-right: 4px;">&#xe6a5;</i>
+                </template>
+              </a-input>
+            </a-form-item>
+  
+            <a-form-item
+              name="password"
+              :rules="[{ required: true, message: '请输入密码!' }]"
+            >
+              <a-input-password v-model:value="formState.password" size="large" placeholder="请输入密码">
+              <template #prefix>
+                <i class="iconfont" style="margin-right: 4px;">&#xe6a4;</i>
+              </template>
+            </a-input-password>
+            </a-form-item>
+  
+            <a-form-item name="remember">
+              <div style="display: flex;justify-content: space-between;align-items: center;">
+                <a-checkbox v-model:checked="formState.remember"><span style="color:#ffffff">记住密码</span></a-checkbox>
+                <a-button type="link" style="color: #ffffff !important;">忘记密码?</a-button>
+              </div>
+            </a-form-item>
+  
+            <a-form-item>
+              <a-button :loading="loading" type="primary" style="background: #143B88 !important;border: none;" html-type="submit" size="large" block>登录</a-button>
+            </a-form-item>
+          </div>
+          <!--手机号登录-->
+          <div :style="{display: loginWrp == 'phone' ? 'block' : 'none'}">
+            <a-form-item
+              name="phonenumber"
+              :rules="[{ required: true, message: '请输入手机号' }]"
+              style="margin-bottom: 32px;"
+            >
+              <a-input v-model:value="formState.phonenumber" size="large" placeholder="请输入手机号">
+                <template #prefix>
+                  <i class="iconfont" style="margin-right: 4px;">&#xe6a0;</i>
+                </template>
+              </a-input>
+            </a-form-item>
+  
+            <a-form-item
+              name="password"
+              :rules="[{ required: true, message: '请输入验证码!' }]"
+            >
+              <div style="display:flex">
+                <a-input v-model:value="formState.password" size="large" placeholder="请输入验证码">
+                  <template #prefix>
+                    <i class="iconfont" style="margin-right: 4px;">&#xe6a1;</i>
+                  </template>
+                </a-input>
+                <a-button type="primary" style="background: #143B88 !important;border: none;width: 120px;margin-left: 10px;" size="large" block>获取验证码</a-button>
+              </div>
+              
+            </a-form-item>
+  
+            <a-form-item>
+              <a-button :loading="loading" type="primary" style="background: #143B88 !important;border: none;" html-type="submit" size="large" block>登录</a-button>
+            </a-form-item>
+          </div>
+        </a-form>
+        <a-divider style="color: #ffffff;border-color: #ffffff;">其他登录方式</a-divider>
+        <div class="login-item">
+          <img src="@/assets/loginIcon.png" alt="" style="margin-right: 32px;cursor: pointer;" v-if="loginWrp == 'phone'" @click="loginWrp = 'account'">
+          <img src="@/assets/phone.png" alt="" style="margin-right: 32px;cursor: pointer;" v-else  @click="loginWrp = 'phone'">
+          <img src="@/assets/wechat.png" alt="" style="cursor: pointer;">
+        </div>
+        <!-- <a-divider><span style="color:#999;font-weight:300">其他登录方式</span></a-divider>
+        <span>敬请期待</span> -->
+      </div>
+      <div class="login-wrap">
+        <div class="top">
+          <!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="#1890ff" fill-opacity="1" d="M0,288L48,266.7C96,245,192,203,288,202.7C384,203,480,245,576,245.3C672,245,768,203,864,202.7C960,203,1056,245,1152,272C1248,299,1344,309,1392,314.7L1440,320L1440,0L1392,0C1344,0,1248,0,1152,0C1056,0,960,0,864,0C768,0,672,0,576,0C480,0,384,0,288,0C192,0,96,0,48,0L0,0Z"></path></svg> -->
+        </div>
       </div>
+      <a-layout-footer class="footer" style="background: #143B88 !important;">
+        浙CP备2023011622号-1
+      </a-layout-footer>
     </div>
-    <a-layout-footer class="footer">
-      Copyright © 2023 嘉兴市云链信息技术有限公司
-    </a-layout-footer>
-  </div>
-</template>
-<script>
-import { defineComponent, reactive,ref } from 'vue';
-import { useRouter } from "vue-router";
-import Api  from '@/api/api'
-import md5 from 'js-md5'
-import { message } from 'ant-design-vue';
-import { useAuthStore } from '@/stores/modules/auth'
-import { useRouteTabsStore } from '@/stores/modules/Htabs'
-import { storeToRefs } from 'pinia'
-const rotTabs = useRouteTabsStore()
-const store = useAuthStore()
-let { accountList } = storeToRefs(store)
-let { historyRoutes } = storeToRefs(rotTabs)
-export default defineComponent({
-  setup() {
-    const router = useRouter()
-    const formState = reactive({
-      phonenumber: 'admin',
-      password: '123456',
-      remember: true,
-    });
-    let loading = ref(false)
-    const onFinish = (values) => {
-      login()
-    };
-
-    const onFinishFailed = (errorInfo) => {
-      console.log('Failed:', errorInfo);
-    };
-
-    const login = async ()=>{
-      loading.value = true
-      const res = await Api.loginbyaccount({
-        "accountno":formState.phonenumber,
-        "password":md5(formState.password),
-        "systemclient": "cweb"
-      })
-      if (res.code === 1) {
-        if (res.account_list[0].status == 'INACTIVE')
-          return message.error('当前账号已停用!')
-        loading.value = false
-        accountList.value = res.account_list
-        store.defaultAccount(res.account_list[0],()=>{
-          router.replace({path:'/home'})
+  </template>
+  <script>
+  import { defineComponent, reactive,ref } from 'vue'
+  import { useRouter } from "vue-router"
+  import Api  from '@/api/api'
+  import md5 from 'js-md5'
+  import { message } from 'ant-design-vue'
+  import { useAuthStore } from '@/stores/modules/auth'
+  import { useRouteTabsStore } from '@/stores/modules/Htabs'
+  import { storeToRefs } from 'pinia'
+  const rotTabs = useRouteTabsStore()
+  const store = useAuthStore()
+  let { accountList } = storeToRefs(store)
+  let { historyRoutes } = storeToRefs(rotTabs)
+  export default defineComponent({
+    setup() {
+      let loginWrp = ref('account')
+      const router = useRouter()
+      const formState = reactive({
+        phonenumber: 'admin',
+        password: '123456',
+        remember: true,
+      });
+      let loading = ref(false)
+      const onFinish = (values) => {
+        login()
+      };
+  
+      const onFinishFailed = (errorInfo) => {
+        console.log('Failed:', errorInfo);
+      };
+  
+      const login = async ()=>{
+        loading.value = true
+        const res = await Api.loginbyaccount({
+          "accountno":formState.phonenumber,
+          "password":md5(formState.password),
+          "systemclient": "cweb"
         })
-      } else {
-        loading.value = false
-        message.error(res.msg)
+        if (res.code === 1) {
+          if (res.account_list[0].status == 'INACTIVE')
+            return message.error('当前账号已停用!')
+          loading.value = false
+          accountList.value = res.account_list
+          store.defaultAccount(res.account_list[0])
+          router.replace({path:'/home'})
+  
+        } else {
+          loading.value = false
+          message.error(res.msg)
+        }
       }
+      return {
+        formState,
+        onFinish,
+        onFinishFailed,
+        loading,
+        loginWrp
+      };
+    },
+    mounted () {
+      sessionStorage.clear()
+      localStorage.clear();
+      historyRoutes.value = []
     }
-    return {
-      formState,
-      onFinish,
-      onFinishFailed,
-      loading
-    };
-  },
-  mounted () {
-    sessionStorage.clear()
-    localStorage.clear();
-    historyRoutes.value = []
-  }
-});
-</script>
-
-<style scoped>
-.conatiner{
-  background: url('@/assets/bg.png');
-  background-size: cover;
-}
-.title{
-  height: 33px;
-  margin: 0 0 30px;
-  color: #202d40;
-  font-size: 1.25rem;
-  font-weight: 600;
-  animation: showup 3s forwards ;
-}
-.login-wrap{
-  overflow: hidden;
-}
-.login-wrap .top{
-  width:100%;
-  background:#f3f4f591
-}
-.login-wrap .top{
-  height:calc(100vh - 70px);
-  width:100%;
-}
-.login-wrap svg{
-  height: 70%;
-}
-.login-form{
-  position: absolute;
-  right: 50%;
-  top:50vh;
-  width: 500px;
-  margin-right: -250px;
-  margin-top: -244px;
-  padding: 30px;
-  background-color: rgba(255,255,255,1);
-  border-radius: 5px;
-  box-shadow: 0 0 12px rgb(0 0 0 / 10%);
-  z-index: 9999;
-}
-.input-wrap{
-  width: 100%;
-}
-.color-info{
-  color:#999;
-  font-weight:300
-}
-.introduce{
-  position: absolute;
-  left: 10%;
-  top:10vh;
-  font-size: 20px;
-  color:#fff;
-  text-indent: 3rem;
-  line-height: 3rem;
-  text-shadow: 0 0px 5px #666;
-}
-.introduce {
-  white-space: pre-wrap; /* 允许换行 */
-  overflow: hidden; /* 隐藏超出部分 */
-  max-width: 700px; /* 固定宽度为 200 像素 */
-  animation: typingH 5s forwards;
-
-  display: inline-block; /* 让行内元素可以自适应宽度、允许换行 */
-}
-
-/* 伪元素来实现光标 */
-.introduce::after {
-  content: "";
-  display: inline-block;
-  width: 5px;
-  height: 1.2em;
-  margin-left: 5px; /* 调整光标与文本的距离 */
-}
-@keyframes typingH {
-  0% {
-    height: 0px;
-  }
-  100% {
-    height: 300px;
-  }
-}
-
-@media(max-width: 1600px) {
+  });
+  </script>
+  
+  <style scoped>
+  
+  
+  .conatiner{
+    background: url('@/assets/wallhaven-0pq8gm.jpeg');
+    background-size: cover;
+  }
+  .title{
+    height: 33px;
+    margin: 0 0 48px;
+    color: #ffffff;
+    font-size: 2rem;
+    font-weight: 500;
+    animation: showup 3s forwards ;
+    display: flex;
+    align-items: center;
+  }
+  .login-wrap{
+    overflow: hidden;
+  }
+  .login-wrap .top{
+    width:100%;
+    /* background:#f3f4f591 */
+  }
+  .login-wrap .top{
+    height:calc(100vh - 70px);
+    width:100%;
+  }
+  .login-wrap svg{
+    height: 70%;
+  }
   .login-form{
-    transform: scale(.8);
+    position: absolute;
+    right: 50%;
+    top:50vh;
+    width: 500px;
+    margin-right: -250px;
+    margin-top: -244px;
+    padding: 50px 80px;
+    background-color: rgba(255,255,255,.2);
+    border-radius: 5px;
+    box-shadow: 0 0 12px rgb(0 0 0 / 10%);
+    z-index: 9999;
+  }
+  
+  .login-item {
+    text-align: center;
+  }
+  
+  .input-wrap{
+    width: 100%;
+  }
+  .color-info{
+    color:#999;
+    font-weight:300
   }
   .introduce{
-    font-size: 15px;
+    position: absolute;
+    left: 10%;
+    top:10vh;
+    font-size: 20px;
+    color:#fff;
+    text-indent: 3rem;
+    line-height: 3rem;
+    text-shadow: 0 0px 5px #666;
+  }
+  .introduce {
+    white-space: pre-wrap; /* 允许换行 */
+    overflow: hidden; /* 隐藏超出部分 */
+    max-width: 700px; /* 固定宽度为 200 像素 */
+    animation: typingH 5s forwards;
+  
+    display: inline-block; /* 让行内元素可以自适应宽度、允许换行 */
+  }
+  
+  /deep/.ant-input {
+    color: #ffffff;
+    background: none !important;
+  }
+  
+  /deep/.ant-input-affix-wrapper {
+    background: rgba(43, 141, 195, 1) !important;
+    border: none;
+  }
+  
+  /deep/.ant-input-affix-wrapper input {
+    background: none;
+  }
+  
+  /deep/.anticon {
+    color: #ffffff;
+  }
+  
+  /* 伪元素来实现光标 */
+  .introduce::after {
+    content: "";
+    display: inline-block;
+    width: 5px;
+    height: 1.2em;
+    margin-left: 5px; /* 调整光标与文本的距离 */
+  }
+  @keyframes typingH {
+    0% {
+      height: 0px;
+    }
+    100% {
+      height: 300px;
+    }
+  }
+  
+  @media(max-width: 1600px) {
+    .login-form{
+      transform: scale(.8);
+    }
+    .introduce{
+      font-size: 15px;
+    }
   }
-}
-</style>
+  </style>
+  

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác