From 8191c1684e787f786b461dee04a7b7936e82b6e8 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期一, 28 七月 2025 18:00:00 +0800 Subject: [PATCH] 1.首页联调 --- src/views/index.vue | 1550 +++++++++++++++++++++++++++++++---------------------------- 1 files changed, 812 insertions(+), 738 deletions(-) diff --git a/src/views/index.vue b/src/views/index.vue index 9092735..852ef6a 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,738 +1,812 @@ -<template> - <div class="app-container home"> - <el-row :gutter="20"> - <el-col :sm="24" :lg="24"> - <blockquote class="text-warning" style="font-size: 14px"> - 棰嗗彇闃块噷浜戦�氱敤浜戜骇鍝�1888浼樻儬鍒� - <br /> - <el-link - href="https://www.aliyun.com/minisite/goods?userCode=brki8iof" - type="primary" - target="_blank" - >https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link - > - <br /> - 棰嗗彇鑵捐浜戦�氱敤浜戜骇鍝�2860浼樻儬鍒� - <br /> - <el-link - href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console" - type="primary" - target="_blank" - >https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link - > - <br /> - 闃块噷浜戞湇鍔″櫒鎶樻墸鍖� - <el-link href="http://aly.ruoyi.vip" type="primary" target="_blank" - >>鈽涒槢鐐规垜杩涘叆鈽氣槡</el-link - > - 鑵捐浜戞湇鍔″櫒绉掓潃鍖� - <el-link href="http://txy.ruoyi.vip" type="primary" target="_blank" - >>鈽涒槢鐐规垜杩涘叆鈽氣槡</el-link - ><br /> - <h4 class="text-danger"> - 浜戜骇鍝侀�氱敤绾㈠寘锛屽彲鍙犲姞瀹樼綉甯歌浼樻儬浣跨敤銆�(浠呴檺鏂扮敤鎴�) - </h4> - </blockquote> - - <hr /> - </el-col> - </el-row> - <el-row :gutter="20"> - <el-col :sm="24" :lg="12" style="padding-left: 20px"> - <h2>鑻ヤ緷鍚庡彴绠$悊妗嗘灦</h2> - <p> - 涓�鐩存兂鍋氫竴娆惧悗鍙扮鐞嗙郴缁燂紝鐪嬩簡寰堝浼樼鐨勫紑婧愰」鐩絾鏄彂鐜版病鏈夊悎閫傝嚜宸辩殑銆備簬鏄埄鐢ㄧ┖闂蹭紤鎭椂闂村紑濮嬭嚜宸卞啓涓�濂楀悗鍙扮郴缁熴�傚姝ゆ湁浜嗚嫢渚濈鐞嗙郴缁熴�傦紝濂瑰彲浠ョ敤浜庢墍鏈夌殑Web搴旂敤绋嬪簭锛屽缃戠珯绠$悊鍚庡彴锛岀綉绔欎細鍛樹腑蹇冿紝CMS锛孋RM锛孫A绛夌瓑锛屽綋鐒讹紝鎮ㄤ篃鍙互瀵瑰ス杩涜娣卞害瀹氬埗锛屼互鍋氬嚭鏇村己绯荤粺銆傛墍鏈夊墠绔悗鍙颁唬鐮佸皝瑁呰繃鍚庡崄鍒嗙簿绠�鏄撲笂鎵嬶紝鍑洪敊姒傜巼浣庛�傚悓鏃舵敮鎸佺Щ鍔ㄥ鎴风璁块棶銆傜郴缁熶細闄嗙画鏇存柊涓�浜涘疄鐢ㄥ姛鑳姐�� - </p> - <p> - <b>褰撳墠鐗堟湰:</b> <span>v{{ version }}</span> - </p> - <p> - <el-tag type="danger">¥鍏嶈垂寮�婧�</el-tag> - </p> - <p> - <el-button - type="primary" - size="mini" - icon="el-icon-cloudy" - plain - @click="goTarget('https://gitee.com/y_project/RuoYi-Vue')" - >璁块棶鐮佷簯</el-button - > - <el-button - size="mini" - icon="el-icon-s-home" - plain - @click="goTarget('http://ruoyi.vip')" - >璁块棶涓婚〉</el-button - > - </p> - </el-col> - - <el-col :sm="24" :lg="12" style="padding-left: 50px"> - <el-row> - <el-col :span="12"> - <h2>鎶�鏈�夊瀷</h2> - </el-col> - </el-row> - <el-row> - <el-col :span="6"> - <h4>鍚庣鎶�鏈�</h4> - <ul> - <li>SpringBoot</li> - <li>Spring Security</li> - <li>JWT</li> - <li>MyBatis</li> - <li>Druid</li> - <li>Fastjson</li> - <li>...</li> - </ul> - </el-col> - <el-col :span="6"> - <h4>鍓嶇鎶�鏈�</h4> - <ul> - <li>Vue</li> - <li>Vuex</li> - <li>Element-ui</li> - <li>Axios</li> - <li>Sass</li> - <li>Quill</li> - <li>...</li> - </ul> - </el-col> - </el-row> - </el-col> - </el-row> - <el-divider /> - <el-row :gutter="20"> - <el-col :xs="24" :sm="24" :md="12" :lg="8"> - <el-card class="update-log"> - <template v-slot:header> - <div class="clearfix"> - <span>鑱旂郴淇℃伅</span> - </div> - </template> - <div class="body"> - <p> - <i class="el-icon-s-promotion"></i> 瀹樼綉锛�<el-link - href="http://www.ruoyi.vip" - target="_blank" - >http://www.ruoyi.vip</el-link - > - </p> - <p> - <i class="el-icon-user-solid"></i> QQ缇わ細<s>婊�937441</s> - <s>婊�887144332</s> <s>婊�180251782</s> <s>婊�104180207</s> - <s>婊�186866453</s> <s>婊�201396349</s> <s>婊�101456076</s> - <a href="https://jq.qq.com/?_wv=1027&k=KmQbXyJ6" target="_blank"> - 101539465</a - > - </p> - <p> - <i class="el-icon-chat-dot-round"></i> 寰俊锛�<a - href="javascript:;" - >/ *鑻ヤ緷</a - > - </p> - <p> - <i class="el-icon-money"></i> 鏀粯瀹濓細<a - href="javascript:;" - class="鏀粯瀹濅俊鎭�" - >/ *鑻ヤ緷</a - > - </p> - </div> - </el-card> - </el-col> - <el-col :xs="24" :sm="24" :md="12" :lg="8"> - <el-card class="update-log"> - <template v-slot:header> - <div class="clearfix"> - <span>鏇存柊鏃ュ織</span> - </div> - </template> - <el-collapse accordion> - <el-collapse-item title="v3.7.0 - 2021-09-13"> - <ol> - <li>鍙傛暟绠$悊鏀寔閰嶇疆楠岃瘉鐮佸紑鍏�</li> - <li>鏂板鏄惁寮�鍚敤鎴锋敞鍐屽姛鑳�</li> - <li>瀹氭椂浠诲姟鏀寔鍦ㄧ嚎鐢熸垚cron琛ㄨ揪寮�</li> - <li>鑿滃崟绠$悊鏀寔閰嶇疆璺敱鍙傛暟</li> - <li>鏀寔鑷畾涔夋敞瑙e疄鐜版帴鍙i檺娴�</li> - <li>Excel娉ㄨВ鏀寔Image鍥剧墖瀵煎叆</li> - <li>鑷畾涔夊脊灞傛孩鍑烘粴鍔ㄦ牱寮�</li> - <li>鑷畾涔夊彲鎷栧姩寮圭獥瀹藉害鎸囦护</li> - <li>鑷畾涔夊彲鎷栧姩寮圭獥楂樺害鎸囦护</li> - <li>淇浠绘剰璐︽埛瓒婃潈闂</li> - <li>淇敼鏃舵鏌ョ敤鎴锋暟鎹潈闄愯寖鍥�</li> - <li>淇淇濆瓨閰嶇疆涓婚棰滆壊澶辨晥闂</li> - <li>鏂板鏆楄壊鑿滃崟椋庢牸涓婚</li> - <li>鑿滃崟&閮ㄩ棬鏂板灞曞紑/鎶樺彔鍔熻兘</li> - <li>椤电鏂板鍏抽棴宸︿晶&娣诲姞鍥炬爣</li> - <li>椤堕儴鑿滃崟鎺掗櫎闅愯棌鐨勯粯璁よ矾鐢�</li> - <li>椤堕儴鑿滃崟鍚屾绯荤粺涓婚鏍峰紡</li> - <li>璺宠浆璺敱楂樹寒鐩稿搴旂殑鑿滃崟鏍�</li> - <li>浠g爜鐢熸垚涓诲瓙琛ㄥ閫夎鏁版嵁</li> - <li>鏃ユ湡鑼冨洿鏀寔娣诲姞澶氱粍</li> - <li>鍗囩骇element-ui鍒版渶鏂扮増鏈�2.15.5</li> - <li>鍗囩骇oshi鍒版渶鏂扮増鏈瑅5.8.0</li> - <li>鍗囩骇commons.io鍒版渶鏂扮増鏈瑅2.11.0</li> - <li>瀹氭椂浠诲姟灞忚斀ldap杩滅▼璋冪敤</li> - <li>瀹氭椂浠诲姟灞忚斀http(s)杩滅▼璋冪敤</li> - <li>琛ュ厖瀹氭椂浠诲姟琛ㄥ瓧娈垫敞閲�</li> - <li>瀹氭椂浠诲姟瀵规鏌ュ紓甯歌繘琛屼簨鍔″洖婊�</li> - <li>鍚敤鐖堕儴闂ㄧ姸鎬佹帓闄ら《绾ц妭鐐�</li> - <li>瀵屾枃鏈柊澧炰笂浼犳枃浠跺ぇ灏忛檺鍒�</li> - <li>榛樿棣栭〉浣跨敤keep-alive缂撳瓨</li> - <li>淇敼浠g爜鐢熸垚瀛楀吀鍥炴樉鏍峰紡</li> - <li>鑷畾涔夊垎椤靛悎鐞嗗寲浼犲叆鍙傛暟</li> - <li>淇瀛楀吀缁勪欢鍊间负鏁村舰涓嶆樉绀洪棶棰�</li> - <li>淇瀹氭椂浠诲姟鏃ュ織鎵ц鐘舵�佹樉绀�</li> - <li>瑙掕壊&鑿滃崟鏂板瀛楁灞炴�ф彁绀轰俊鎭�</li> - <li>淇瑙掕壊鍒嗛厤鐢ㄦ埛椤甸潰鍙傛暟绫诲瀷閿欒鎻愰啋</li> - <li>浼樺寲甯冨眬璁剧疆鍔ㄧ敾鐗规晥</li> - <li>浼樺寲寮傚父澶勭悊淇℃伅</li> - <li>浼樺寲閿欒token瀵艰嚧鐨勮В鏋愬紓甯�</li> - <li>瀵嗙爜妗嗘柊澧炴樉绀哄垏鎹㈠瘑鐮佸浘鏍�</li> - <li>瀹氭椂浠诲姟鏂板鏇村鎿嶄綔</li> - <li>鏇村鎿嶄綔鎸夐挳娣诲姞鏉冮檺鎺у埗</li> - <li>瀵煎叆鐢ㄦ埛鏍峰紡浼樺寲</li> - <li>鎻愬彇閫氱敤鏂规硶鍒板熀绫绘帶鍒跺櫒</li> - <li>浼樺寲浣跨敤鏉冮檺宸ュ叿鑾峰彇鐢ㄦ埛淇℃伅</li> - <li>浼樺寲鐢ㄦ埛涓嶈兘鍒犻櫎鑷繁</li> - <li>浼樺寲XSS璺ㄧ珯鑴氭湰杩囨护</li> - <li>浼樺寲浠g爜鐢熸垚妯℃澘</li> - <li>楠岃瘉鐮侀粯璁�20s瓒呮椂</li> - <li>BLOB涓嬭浇鏃舵竻闄RL瀵硅薄寮曠敤</li> - <li>浠g爜鐢熸垚瀵煎叆琛ㄦ寜鍒涘缓鏃堕棿鎺掑簭</li> - <li>淇浠g爜鐢熸垚椤甸潰鏁版嵁缂栬緫淇濆瓨涔嬪悗鎬绘槸璺宠浆绗竴椤电殑闂</li> - <li>淇甯afari娴忚鍣ㄦ棤娉曟牸寮忓寲utc鏃ユ湡鏍煎紡yyyy-MM-dd'T'HH:mm:ss.SSS闂</li> - <li>澶氬浘涓婁紶缁勪欢绉婚櫎澶氫綑鐨刟pi鍦板潃&楠岃瘉澶辫触瀵艰嚧鍥剧墖鍒犻櫎闂&鏃犳硶鍒犻櫎鐩稿簲鍥剧墖淇</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v3.6.0 - 2021-07-12"> - <ol> - <li>瑙掕壊绠$悊鏂板鍒嗛厤鐢ㄦ埛鍔熻兘</li> - <li>鐢ㄦ埛绠$悊鏂板鍒嗛厤瑙掕壊鍔熻兘</li> - <li>鏃ュ織鍒楄〃鏀寔鎺掑簭鎿嶄綔</li> - <li>浼樺寲鍙傛暟&瀛楀吀缂撳瓨鎿嶄綔</li> - <li>绯荤粺甯冨眬閰嶇疆鏀寔鍔ㄦ�佹爣棰樺紑鍏�</li> - <li>鑿滃崟璺敱閰嶇疆鏀寔鍐呴摼璁块棶</li> - <li>榛樿璁块棶鍚庣棣栭〉鏂板鎻愮ず璇�</li> - <li>瀵屾枃鏈粯璁や笂浼犺繑鍥瀠rl绫诲瀷</li> - <li>鏂板鑷畾涔夊脊绐楁嫋鎷芥寚浠�</li> - <li>鍏ㄥ眬娉ㄥ唽甯哥敤閫氱敤缁勪欢</li> - <li>鍏ㄥ眬鎸傝浇瀛楀吀鏍囩缁勪欢</li> - <li>ImageUpload缁勪欢鏀寔澶氬浘鐗囦笂浼�</li> - <li>FileUpload缁勪欢鏀寔澶氭枃浠朵笂浼�</li> - <li>鏂囦欢涓婁紶缁勪欢娣诲姞鏁伴噺闄愬埗灞炴��</li> - <li>瀵屾枃鏈紪杈戠粍浠舵坊鍔犵被鍨嬪睘鎬�</li> - <li>瀵屾枃鏈粍浠跺伐鍏锋爮閰嶇疆瑙嗛</li> - <li>灏佽閫氱敤iframe缁勪欢</li> - <li>闄愬埗瓒呯骇绠$悊鍛樹笉鍏佽鎿嶄綔</li> - <li>鐢ㄦ埛淇℃伅闀垮害鏍¢獙闄愬埗</li> - <li>鍒嗛〉缁勪欢鏂板pagerCount灞炴��</li> - <li>娣诲姞bat鑴氭湰鎵ц搴旂敤</li> - <li>鍗囩骇oshi鍒版渶鏂扮増鏈瑅5.7.4</li> - <li>鍗囩骇element-ui鍒版渶鏂扮増鏈�2.15.2</li> - <li>鍗囩骇pagehelper鍒版渶鏂扮増1.3.1</li> - <li>鍗囩骇commons.io鍒版渶鏂扮増鏈瑅2.10.0</li> - <li>鍗囩骇commons.fileupload鍒版渶鏂扮増鏈瑅1.4</li> - <li>鍗囩骇swagger鍒版渶鏂扮増鏈瑅3.0.0</li> - <li>淇鍏抽棴confirm鎻愮ず妗嗘帶鍒跺彴鎶ラ敊闂</li> - <li>淇瀛樺湪鐨凷QL娉ㄥ叆婕忔礊闂</li> - <li>瀹氭椂浠诲姟灞忚斀rmi杩滅▼璋冪敤</li> - <li>淇鐢ㄦ埛鎼滅储鍒嗛〉鍙橀噺閿欒</li> - <li>淇瀵煎嚭瑙掕壊鏁版嵁鑼冨洿缈昏瘧缂哄皯浠呮湰浜�</li> - <li>淇琛ㄥ崟鏋勫缓閫夋嫨涓嬫媺閫夋嫨鎺у埗鍙版姤閿欓棶棰�</li> - <li>浼樺寲鍥剧墖宸ュ叿绫昏鍙栨枃浠�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v3.5.0 - 2021-05-25"> - <ol> - <li>鏂板鑿滃崟瀵艰埅鏄剧ず椋庢牸TopNav锛坒alse涓哄乏渚у鑸彍鍗曪紝true涓洪《閮ㄥ鑸彍鍗曪級</li> - <li>甯冨眬璁剧疆鏀寔淇濆瓨&閲嶇疆閰嶇疆</li> - <li>淇鏍戣〃鏁版嵁鏄剧ず涓嶅叏&鍔犺浇鎱㈤棶棰�</li> - <li>鏂板IE娴忚鍣ㄧ増鏈繃浣庢彁绀洪〉闈�</li> - <li>鐢ㄦ埛鐧诲綍鍚庤褰曟渶鍚庣櫥褰旾P&鏃堕棿</li> - <li>椤甸潰瀵煎嚭鎸夐挳鐐瑰嚮涔嬪悗娣诲姞閬僵</li> - <li>瀵屾枃鏈紪杈戝櫒鏀寔鑷畾涔変笂浼犲湴鍧�</li> - <li>瀵屾枃鏈紪杈戠粍浠舵柊澧瀝eadOnly灞炴��</li> - <li>椤电TagsView鏂板鍏抽棴鍙充晶鍔熻兘</li> - <li>鏄鹃殣鍒楃粍浠跺姞杞藉垵濮嬮粯璁ら殣钘忓垪</li> - <li>鍏抽棴澶村儚涓婁紶绐楀彛杩樺師榛樿鍥剧墖</li> - <li>涓汉淇℃伅娣诲姞鎵嬫満&閭閲嶅楠岃瘉</li> - <li>浠g爜鐢熸垚妯℃澘瀵煎嚭鎸夐挳鐐瑰嚮鍚庢坊鍔犻伄缃�</li> - <li>浠g爜鐢熸垚妯℃澘鏍戣〃鎿嶄綔鍒楁坊鍔犳柊澧炴寜閽�</li> - <li>浠g爜鐢熸垚妯℃澘淇涓诲瓙琛ㄥ瓧娈甸噸鍚嶉棶棰�</li> - <li>鍗囩骇fastjson鍒版渶鏂扮増1.2.76</li> - <li>鍗囩骇druid鍒版渶鏂扮増鏈瑅1.2.6</li> - <li>鍗囩骇mybatis鍒版渶鏂扮増3.5.6 闃绘杩滅▼浠g爜鎵ц婕忔礊</li> - <li>鍗囩骇oshi鍒版渶鏂扮増鏈瑅5.6.0</li> - <li>velocity鍓旈櫎commons-collections鐗堟湰锛岄槻姝�3.2.1鐗堟湰鐨勫弽搴忓垪鍖栨紡娲�</li> - <li>鏁版嵁鐩戞帶椤甸粯璁よ处鎴峰瘑鐮侀槻姝㈣秺鏉冭闂�</li> - <li>淇firefox涓嬭〃鍗曟瀯寤烘嫋鎷戒細鏂版墦鍗′竴涓�夐」鍗�</li> - <li>淇鍚庣瀵煎叆琛ㄦ潈闄愭爣璇�</li> - <li>淇鍓嶇鎿嶄綔鏃ュ織&鐧诲綍鏃ュ織鏉冮檺鏍囪瘑</li> - <li>璁剧疆Redis閰嶇疆HashKey搴忓垪鍖�</li> - <li>鍒犻櫎鎿嶄綔鏃ュ織璁板綍淇℃伅</li> - <li>涓婁紶濯掍綋绫诲瀷娣诲姞瑙嗛鏍煎紡</li> - <li>淇璇锋眰褰㈠弬鏈紶鍊艰褰曟棩蹇楀紓甯搁棶棰�</li> - <li>浼樺寲xss鏍¢獙json璇锋眰鏉′欢</li> - <li>鏍戠骇缁撴瀯鏇存柊瀛愯妭鐐逛娇鐢╮eplaceFirst</li> - <li>浼樺寲ExcelUtil绌哄�煎鐞�</li> - <li>鏃ュ織璁板綍杩囨护BindingResult瀵硅薄锛岄槻姝㈠紓甯�</li> - <li>淇敼涓婚鍚巑ini绫诲瀷鎸夐挳鏃犳晥闂</li> - <li>浼樺寲閫氱敤涓嬭浇瀹屾垚鍚庡垹闄よ妭鐐�</li> - <li>閫氱敤Controller娣诲姞鍝嶅簲杩斿洖娑堟伅</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v3.4.0 - 2021-02-22"> - <ol> - <li>浠g爜鐢熸垚妯℃澘鏀寔涓诲瓙琛�</li> - <li>琛ㄦ牸鍙充晶宸ュ叿鏍忕粍浠舵敮鎸佹樉闅愬垪</li> - <li>鍥剧墖缁勪欢娣诲姞棰勮&绉婚櫎鍔熻兘</li> - <li>Excel娉ㄨВ鏀寔Image鍥剧墖瀵煎嚭</li> - <li>鎿嶄綔鎸夐挳缁勮皟鏁翠负鏈寸礌鎸夐挳鏍峰紡</li> - <li>浠g爜鐢熸垚鏀寔鏂囦欢涓婁紶缁勪欢</li> - <li>浠g爜鐢熸垚鏃ユ湡鎺т欢鍖哄垎鑼冨洿</li> - <li>浠g爜鐢熸垚鏁版嵁搴撴枃鏈被鍨嬬敓鎴愯〃鍗曟枃鏈煙</li> - <li>鐢ㄦ埛鎵嬫満閭&鑿滃崟缁勪欢淇敼鍏佽绌哄瓧绗︿覆</li> - <li>鍗囩骇SpringBoot鍒版渶鏂扮増鏈�2.2.13 鎻愬崌鍚姩閫熷害</li> - <li>鍗囩骇druid鍒版渶鏂扮増鏈瑅1.2.4</li> - <li>鍗囩骇fastjson鍒版渶鏂扮増1.2.75</li> - <li>鍗囩骇element-ui鍒版渶鏂扮増鏈�2.15.0</li> - <li>淇IE11娴忚鍣ㄦ姤閿欓棶棰�</li> - <li>浼樺寲澶氱骇鑿滃崟涔嬮棿鍒囨崲鏃犳硶缂撳瓨鐨勯棶棰�</li> - <li>淇鍥涚骇鑿滃崟鏃犳硶鏄剧ず闂</li> - <li>淇渚ц竟鏍忛潤鎬佽矾鐢变涪澶遍棶棰�</li> - <li>淇瑙掕壊绠$悊-缂栬緫瑙掕壊-鍔熻兘鏉冮檺鏄剧ず寮傚父</li> - <li>閰嶇疆鏂囦欢鏂板redis鏁版嵁搴撶储寮曞睘鎬�</li> - <li>鏉冮檺宸ュ叿绫诲鍔燼dmin鍒ゆ柇</li> - <li>瑙掕壊闈炶嚜瀹氫箟鏉冮檺鑼冨洿娓呯┖閫夋嫨鍊�</li> - <li>淇瀵煎叆鏁版嵁涓鸿礋娴偣鏁版椂涓㈠け绮惧害闂</li> - <li>绉婚櫎path-to-regexp姝e垯鍖归厤鎻掍欢</li> - <li>淇鐢熸垚鏍戣〃浠g爜寮傚父</li> - <li>淇敼ip瀛楁闀垮害闃叉ipv6鍦板潃闀垮害涓嶅</li> - <li>闃叉get璇锋眰鍙傛暟鍊间负false鎴�0绛夌壒娈婂�间細瀵艰嚧鏃犳硶姝g‘鐨勪紶鍙�</li> - <li>鐧诲綍鍚巔ush娣诲姞catch闃叉鍑虹幇妫�鏌ラ敊璇�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v3.3.0 - 2020-12-14"> - <ol> - <li>鏂板缂撳瓨鐩戞帶鍔熻兘</li> - <li>鏀寔涓婚椋庢牸閰嶇疆</li> - <li>淇澶氱骇鑿滃崟涔嬮棿鍒囨崲鏃犳硶缂撳瓨鐨勯棶棰�</li> - <li>澶氱骇鑿滃崟鑷姩閰嶇疆缁勪欢</li> - <li>浠g爜鐢熸垚棰勮鏀寔楂樹寒鏄剧ず</li> - <li>鏀寔Get璇锋眰鏄犲皠Params鍙傛暟</li> - <li>鍒犻櫎鐢ㄦ埛鍜岃鑹茶В缁戝叧鑱�</li> - <li>鍘婚櫎鐢ㄦ埛鎵嬫満閭閮ㄩ棬蹇呭~楠岃瘉</li> - <li>Excel鏀寔娉ㄨВalign瀵归綈鏂瑰紡</li> - <li>Excel鏀寔瀵煎叆Boolean鍨嬫暟鎹�</li> - <li>浼樺寲澶村儚鏍峰紡锛岄紶鏍囩Щ鍏ユ偓鍋滈伄缃�</li> - <li>浠g爜鐢熸垚棰勮鎻愪緵婊氬姩鏈哄埗</li> - <li>浠g爜鐢熸垚鍒犻櫎澶氫綑鐨勬暟瀛梖loat绫诲瀷</li> - <li>淇杞崲瀛楃涓茬殑鐩爣瀛楃闆嗗睘鎬�</li> - <li>鍥炴樉鏁版嵁瀛楀吀闃叉绌哄�兼姤閿�</li> - <li>鏃ュ織璁板綍澧炲姞杩囨护澶氭枃浠跺満鏅�</li> - <li>淇敼缂撳瓨Set鏂规硶鍙兘瀵艰嚧宓屽鐨勯棶棰�</li> - <li>绉婚櫎鍓嶇涓�浜涘浣欑殑渚濊禆</li> - <li>闃叉瀹夊叏鎵弿YUI鍑虹幇鐨勯闄╂彁绀�</li> - <li>淇敼node-sass涓篸art-sass</li> - <li>鍗囩骇SpringBoot鍒版渶鏂扮増鏈�2.1.18</li> - <li>鍗囩骇poi鍒版渶鏂扮増鏈�4.1.2</li> - <li>鍗囩骇oshi鍒版渶鏂扮増鏈瑅5.3.6</li> - <li>鍗囩骇bitwalker鍒版渶鏂扮増鏈�1.21</li> - <li>鍗囩骇axios鍒版渶鏂扮増鏈�0.21.0</li> - <li>鍗囩骇element-ui鍒版渶鏂扮増鏈�2.14.1</li> - <li>鍗囩骇vue鍒版渶鏂扮増鏈�2.6.12</li> - <li>鍗囩骇vuex鍒版渶鏂扮増鏈�3.6.0</li> - <li>鍗囩骇vue-cli鍒扮増鏈�4.5.9</li> - <li>鍗囩骇vue-router鍒版渶鏂扮増鏈�3.4.9</li> - <li>鍗囩骇vue-cli鍒版渶鏂扮増鏈�4.4.6</li> - <li>鍗囩骇vue-cropper鍒版渶鏂扮増鏈�0.5.5</li> - <li>鍗囩骇clipboard鍒版渶鏂扮増鏈�2.0.6</li> - <li>鍗囩骇core-js鍒版渶鏂扮増鏈�3.8.1</li> - <li>鍗囩骇echarts鍒版渶鏂扮増鏈�4.9.0</li> - <li>鍗囩骇file-saver鍒版渶鏂扮増鏈�2.0.4</li> - <li>鍗囩骇fuse.js鍒版渶鏂扮増鏈�6.4.3</li> - <li>鍗囩骇js-beautify鍒版渶鏂扮増鏈�1.13.0</li> - <li>鍗囩骇js-cookie鍒版渶鏂扮増鏈�2.2.1</li> - <li>鍗囩骇path-to-regexp鍒版渶鏂扮増鏈�6.2.0</li> - <li>鍗囩骇quill鍒版渶鏂扮増鏈�1.3.7</li> - <li>鍗囩骇screenfull鍒版渶鏂扮増鏈�5.0.2</li> - <li>鍗囩骇sortablejs鍒版渶鏂扮増鏈�1.10.2</li> - <li>鍗囩骇vuedraggable鍒版渶鏂扮増鏈�2.24.3</li> - <li>鍗囩骇chalk鍒版渶鏂扮増鏈�4.1.0</li> - <li>鍗囩骇eslint鍒版渶鏂扮増鏈�7.15.0</li> - <li>鍗囩骇eslint-plugin-vue鍒版渶鏂扮増鏈�7.2.0</li> - <li>鍗囩骇lint-staged鍒版渶鏂扮増鏈�10.5.3</li> - <li>鍗囩骇runjs鍒版渶鏂扮増鏈�4.4.2</li> - <li>鍗囩骇sass-loader鍒版渶鏂扮増鏈�10.1.0</li> - <li>鍗囩骇script-ext-html-webpack-plugin鍒版渶鏂扮増鏈�2.1.5</li> - <li>鍗囩骇svg-sprite-loader鍒版渶鏂扮増鏈�5.1.1</li> - <li>鍗囩骇vue-template-compiler鍒版渶鏂扮増鏈�2.6.12</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v3.2.1 - 2020-11-18"> - <ol> - <li>闃绘浠绘剰鏂囦欢涓嬭浇婕忔礊</li> - <li>浠g爜鐢熸垚鏀寔涓婁紶鎺т欢</li> - <li>鏂板鍥剧墖涓婁紶缁勪欢</li> - <li>璋冩暣榛樿棣栭〉</li> - <li>鍗囩骇druid鍒版渶鏂扮増鏈瑅1.2.2</li> - <li>mapperLocations閰嶇疆鏀寔鍒嗛殧绗�</li> - <li>鏉冮檺淇℃伅璋冩暣</li> - <li>璋冩暣sql榛樿鏃堕棿</li> - <li>瑙e喅浠g爜鐢熸垚娌℃湁bit绫诲瀷鐨勯棶棰�</li> - <li>鍗囩骇pagehelper鍒版渶鏂扮増1.3.0</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v3.2.0 - 2020-10-10"> - <ol> - <li>鍗囩骇springboot鐗堟湰鍒�2.1.17 鎻愬崌瀹夊叏鎬�</li> - <li>鍗囩骇oshi鍒版渶鏂扮増鏈瑅5.2.5</li> - <li>鍗囩骇druid鍒版渶鏂扮増鏈瑅1.2.1</li> - <li>鍗囩骇jjwt鍒扮増鏈�0.9.1</li> - <li>鍗囩骇fastjson鍒版渶鏂扮増1.2.74</li> - <li>淇敼sass涓簄ode-sass锛岄伩鍏峞l-icon鍥炬爣涔辩爜</li> - <li>浠g爜鐢熸垚鏀寔鍚屾鏁版嵁搴�</li> - <li>浠g爜鐢熸垚鏀寔瀵屾枃鏈帶浠�</li> - <li>浠g爜鐢熸垚椤甸潰鏃朵笉蹇界暐remark灞炴��</li> - <li>浠g爜鐢熸垚娣诲姞select蹇呭~閫夐」</li> - <li>Excel瀵煎嚭绫诲瀷NUMERIC鏀寔绮惧害娴偣绫诲瀷</li> - <li>Excel瀵煎嚭targetAttr浼樺寲鑾峰彇鍊硷紝闃叉get鏂规硶涓嶈鑼�</li> - <li>Excel娉ㄨВ鏀寔鑷姩缁熻鏁版嵁鎬诲拰</li> - <li>Excel娉ㄨВ鏀寔璁剧疆BigDecimal绮惧害&鑸嶅叆瑙勫垯</li> - <li>鑿滃崟&鏁版嵁鏉冮檺鏂板锛堝睍寮�/鎶樺彔 鍏ㄩ��/鍏ㄤ笉閫� 鐖跺瓙鑱斿姩锛�</li> - <li>鍏佽鐢ㄦ埛鍒嗛厤鍒伴儴闂ㄧ埗鑺傜偣</li> - <li>鑿滃崟鏂板鏄惁缂撳瓨keep-alive</li> - <li>琛ㄦ牸鎿嶄綔鍒楅棿璺濊皟鏁�</li> - <li>闄愬埗绯荤粺鍐呯疆鍙傛暟涓嶅厑璁稿垹闄�</li> - <li>瀵屾枃鏈粍浠朵紭鍖栵紝鏀寔鑷畾涔夐珮搴�&鍥剧墖鍐茬獊闂</li> - <li>瀵屾枃鏈伐鍏锋爮鏍峰紡瀵归綈</li> - <li>瀵煎叆excel鏁村舰鍊兼牎楠屼紭鍖�</li> - <li>淇椤电鍏抽棴鎵�鏈夋椂鍥哄畾鏍囩璺敱涓嶅埛鏂伴棶棰�</li> - <li>琛ㄥ崟鏋勫缓甯冨眬鍨嬬粍浠舵柊澧炴寜閽�</li> - <li>宸︿晶鑿滃崟鏂囧瓧杩囬暱鏄剧ず鐪佺暐鍙�</li> - <li>淇鏍硅妭鐐逛负瀛愰儴闂ㄦ椂锛屾爲鐘剁粨鏋勬樉绀洪棶棰�</li> - <li>淇璋冪敤鐩爣瀛楃涓叉渶澶ч暱搴�</li> - <li>淇鑿滃崟鎻愮ず淇℃伅閿欒</li> - <li>淇瀹氭椂浠诲姟鎵ц涓�娆℃潈闄愭爣璇�</li> - <li>淇鏁版嵁搴撳瓧绗︿覆绫诲瀷nvarchar</li> - <li>浼樺寲閫掑綊瀛愯妭鐐�</li> - <li>浼樺寲鏁版嵁鏉冮檺鍒ゆ柇</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - - <el-collapse-item title="v3.1.0 - 2020-08-13"> - <ol> - <li>琛ㄦ牸宸ュ叿鏍忓彸渚ф坊鍔犲埛鏂�&鏄鹃殣鏌ヨ缁勪欢</li> - <li>鍚庣鏀寔CORS璺ㄥ煙璇锋眰</li> - <li>浠g爜鐢熸垚鏀寔閫夋嫨涓婄骇鑿滃崟</li> - <li>浠g爜鐢熸垚鏀寔鑷畾涔夎矾寰�</li> - <li>浠g爜鐢熸垚鏀寔澶嶉�夋</li> - <li>Excel瀵煎嚭瀵煎叆鏀寔dictType瀛楀吀绫诲瀷</li> - <li>Excel鏀寔鍒嗗壊瀛楃涓茬粍鍐呭</li> - <li>楠岃瘉鐮佺被鍨嬫敮鎸侊紙鏁扮粍璁$畻銆佸瓧绗﹂獙璇侊級</li> - <li>鍗囩骇vue-cli鐗堟湰鍒�4.4.4</li> - <li>淇敼 node-sass 涓� dart-sass</li> - <li>琛ㄥ崟绫诲瀷涓篒nteger/Long璁剧疆鏁村舰榛樿鍊�</li> - <li>浠g爜鐢熸垚鍣ㄩ粯璁apper璺緞涓庨粯璁apperScan璺緞涓嶄竴鑷�</li> - <li>浼樺寲闃查噸澶嶆彁浜ゆ嫤鎴櫒</li> - <li>浼樺寲涓婄骇鑿滃崟涓嶈兘閫夋嫨鑷繁</li> - <li>淇瑙掕壊鐨勬潈闄愬垎閰嶅悗锛屾湭瀹炴椂鐢熸晥闂</li> - <li>淇鍦ㄧ嚎鐢ㄦ埛鏃ュ織璁板綍绫诲瀷</li> - <li>淇瀵屾枃鏈┖鏍煎拰缂╄繘淇濆瓨鍚庝笉鐢熸晥闂</li> - <li>淇鍦ㄧ嚎鐢ㄦ埛鍒ゆ柇閫昏緫</li> - <li>鍞竴闄愬埗鏉′欢鍙繑鍥炲崟鏉℃暟鎹�</li> - <li>娣诲姞鑾峰彇褰撳墠鐨勭幆澧冮厤缃柟娉�</li> - <li>瓒呮椂鐧诲綍鍚庨〉闈㈣烦杞埌棣栭〉</li> - <li>鍏ㄥ眬寮傚父鐘舵�佹眽鍖栨嫤鎴鐞�</li> - <li>HTML杩囨护鍣ㄦ敼涓哄皢html杞箟</li> - <li>妫�鏌ュ瓧绗︽敮鎸佸皬鏁扮偣&闄嶇骇鏀规垚寮傚父鎻愰啋</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - - <el-collapse-item title="v3.0.0 - 2020-07-20"> - <ol> - <li>鍗曞簲鐢ㄨ皟鏁翠负澶氭ā鍧楅」鐩�</li> - <li>鍗囩骇element-ui鐗堟湰鍒�2.13.2</li> - <li>鍒犻櫎babel锛屾彁楂樼紪璇戦�熷害銆�</li> - <li>鏂板鑿滃崟榛樿涓荤被鐩�</li> - <li>缂栫爜鏂囦欢鍚嶄慨鏀逛负uuid鏂瑰紡</li> - <li>瀹氭椂浠诲姟cron琛ㄨ揪寮忛獙璇�</li> - <li>瑙掕壊鏉冮檺淇敼鏃跺凡鏈夋潈闄愭湭鑷姩鍕鹃�夊紓甯镐慨澶�</li> - <li>闃叉鍒囨崲鏉冮檺鐢ㄦ埛鍚庣櫥褰曞嚭鐜�404</li> - <li>Excel鏀寔sort瀵煎嚭鎺掑簭</li> - <li>鍒涘缓鐢ㄦ埛涓嶅厑璁搁�夋嫨瓒呯骇绠$悊鍛樿鑹�</li> - <li>淇浠g爜鐢熸垚瀵煎叆琛ㄧ粨鏋勫嚭鐜板紓甯搁〉闈笉鎻愰啋闂</li> - <li>淇浠g爜鐢熸垚鐐瑰嚮澶氭琛ㄤ慨鏀规暟鎹笉鍙樺寲鐨勯棶棰�</li> - <li>淇澶村儚涓婁紶鎴愬姛浜屾鎵撳紑鏃犳硶鏀瑰彉瑁佸壀妗嗗ぇ灏忓拰浣嶇疆闂</li> - <li>淇甯冨眬涓簊mall鑰卪ini鐢ㄦ埛琛ㄥ崟鏄剧ず閿欎綅闂</li> - <li>淇鐑儴缃插鑷寸殑寮烘崲寮傚父闂</li> - <li>淇敼鐢ㄦ埛绠$悊澶嶉�夋瀹藉害锛岄槻姝㈤儴鍒嗘祻瑙堝櫒鍑虹幇鐪佺暐鍙�</li> - <li>IpUtils宸ュ叿锛屾竻闄ss鐗规畩瀛楃锛岄槻姝ff娉ㄥ叆鏀诲嚮</li> - <li>鐢熸垚domain 濡傛灉鏄诞鐐瑰瀷 缁熶竴鐢˙igDecimal</li> - <li>瀹氭椂浠诲姟璋冩暣label-width锛岄槻姝㈤儴缃插嚭鐜伴敊浣�</li> - <li>璋冩暣琛ㄥご鍥哄畾鍒楅粯璁ゆ牱寮�</li> - <li>浠g爜鐢熸垚妯℃澘璋冩暣锛屽瓧娈典负String骞朵笖蹇呭~鍒欏姞绌轰覆鏉′欢</li> - <li>浠g爜鐢熸垚瀛楀吀Integer/Long浣跨敤parseInt</li> - <li> - 淇dict_sort涓嶅彲update涓�0鐨勯棶棰�&鏌ヨ杩斿洖澧炲姞dict_sort鍗囧簭鎺掑簭 - </li> - <li>淇宀椾綅瀵煎嚭鏉冮檺娉ㄨВ</li> - <li>绂佹鍔犲瘑瀵嗘枃杩斿洖鍓嶇</li> - <li>淇浠g爜鐢熸垚椤甸潰涓殑鏌ヨ鏉′欢鍒涘缓鏃堕棿鏈敓鏁堢殑闂</li> - <li>淇棣栭〉鎼滅储鑿滃崟澶栭摼鏃犳硶鐐瑰嚮璺宠浆闂</li> - <li>淇鑿滃崟绠$悊閫夋嫨鍥炬爣锛宐ackspace鍒犻櫎鏃朵笉杩囨护鏁版嵁</li> - <li>鐢ㄦ埛绠$悊閮ㄩ棬鍒嗘敮鑺傜偣涓嶅彲妫�鏌�&鏄剧ず璁℃暟</li> - <li>鏁版嵁鑼冨洿杩囨护灞炴�ц皟鏁�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - - <el-collapse-item title="v2.3.0 - 2020-06-01"> - <ol> - <li>鍗囩骇fastjson鍒版渶鏂扮増1.2.70 淇楂樺嵄瀹夊叏婕忔礊</li> - <li>dev鍚姩榛樿鎵撳紑娴忚鍣�</li> - <li>vue-cli浣跨敤榛樿source-map</li> - <li>slidebar eslint鎶ラ敊浼樺寲</li> - <li>褰搕ags-view婊氬姩鍏抽棴鍙抽敭鑿滃崟</li> - <li>瀛楀吀绠$悊娣诲姞缂撳瓨璇诲彇</li> - <li>鍙傛暟绠$悊鏀寔缂撳瓨鎿嶄綔</li> - <li>鏀寔涓�绾ц彍鍗曪紙鍜屼富椤靛悓绾э級鍦╩ain鍖哄煙鏄剧ず</li> - <li>闄愬埗澶栭摼鍦板潃蹇呴』浠ttp(s)寮�澶�</li> - <li>tagview & sidebar 涓婚棰滆壊涓巈lement ui(鍏ㄥ眬)鍚屾</li> - <li>淇敼鏁版嵁婧愮被鍨嬩紭鍏堢骇锛屽厛鏍规嵁鏂规硶锛屽啀鏍规嵁绫�</li> - <li>鏀寔鏄惁闇�瑕佽缃畉oken灞炴�э紝鑷畾涔夎繑鍥炵爜娑堟伅銆�</li> - <li>swagger璇锋眰鍓嶇紑鍔犲叆閰嶇疆銆�</li> - <li>鐧诲綍鍦扮偣璁剧疆鍐呭杩囬暱鍒欓殣钘忔樉绀�</li> - <li>淇瀹氭椂浠诲姟鎵ц涓�娆℃寜閽悗涓嶆彁绀烘秷鎭棶棰�</li> - <li>淇敼涓婄骇閮ㄩ棬锛堥�夋嫨椤规帓闄ゆ湰韬拰涓嬬骇锛�</li> - <li>閫氱敤http鍙戦�佹柟娉曞鍔犲弬鏁� contentType 缂栫爜绫诲瀷</li> - <li>鏇存崲IP鍦板潃鏌ヨ鎺ュ彛</li> - <li>淇椤电鍙橀噺undefined</li> - <li>娣诲姞鏍¢獙閮ㄩ棬鍖呭惈鏈仠鐢ㄧ殑瀛愰儴闂�</li> - <li>淇敼瀹氭椂浠诲姟璇︽儏涓嬫鎵ц鏃堕棿鏃ユ湡鏄剧ず閿欒</li> - <li>瑙掕壊绠$悊鏌ヨ璁剧疆榛樿鎺掑簭瀛楁</li> - <li>swagger娣诲姞enable鍙傛暟鎺у埗鏄惁鍚敤</li> - <li>鍙json绫诲瀷璇锋眰鏋勫缓鍙噸澶嶈鍙杋nputStream鐨剅equest</li> - <li>淇敼浠g爜鐢熸垚瀛楀吀瀛楁int绫诲瀷娌℃湁鑷姩閫変腑闂</li> - <li>vuex鐢ㄦ埛鍚嶅彇鍊间慨姝�</li> - <li>琛ㄦ牸鏍戞ā鏉垮幓鎺夊浣欑殑)</li> - <li>浠g爜鐢熸垚搴忓彿淇</li> - <li>鍏ㄥ睆鎯呭喌涓嬩笉璋冩暣涓婂杈硅窛</li> - <li>浠g爜鐢熸垚Date瀛楁娣诲姞榛樿鏍煎紡</li> - <li>鐢ㄦ埛绠$悊瑙掕壊閫夋嫨鏉冮檺鎺у埗</li> - <li>淇璺敱鎳掑姞杞芥姤閿欓棶棰�</li> - <li>妯℃澘sql.vm娣诲姞鑿滃崟鐘舵��</li> - <li>璁剧疆鐢ㄦ埛鍚嶇О涓嶈兘淇敼</li> - <li>dialog娣诲姞append-to-body灞炴�э紝闃叉ie閬僵</li> - <li>鑿滃崟鍖哄垎鐘舵�佸拰鏄剧ず闅愯棌鍔熻兘</li> - <li>鍗囩骇fastjson鍒版渶鏂扮増1.2.68 淇瀹夊叏鍔犲浐</li> - <li>淇浠g爜鐢熸垚濡傛灉閫夋嫨瀛楀吀绫诲瀷缂哄け閫楀彿闂</li> - <li>鐧诲綍璇锋眰params鏇存崲涓篸ata锛岄槻姝㈡毚闇瞮rl</li> - <li>鏃ュ織杩斿洖鏃堕棿鏍煎紡澶勭悊</li> - <li>娣诲姞handle鎺у埗鍏佽鎷栧姩鐨勫厓绱�</li> - <li>甯冨眬璁剧疆鐐瑰嚮鎵╁ぇ鑼冨洿</li> - <li>浠g爜鐢熸垚鍒楀睘鎬ф帓搴忔煡璇�</li> - <li>浠g爜鐢熸垚鍒楁敮鎸佹嫋鍔ㄦ帓搴�</li> - <li>淇鏃堕棿鏍煎紡涓嶆敮鎸乮os闂</li> - <li>琛ㄥ崟鏋勫缓娣诲姞鐖剁骇class锛岄槻姝㈠啿绐�</li> - <li>瀹氭椂浠诲姟骞跺彂灞炴�т慨姝�</li> - <li>瑙掕壊绂佺敤&鑿滃崟闅愯棌涓嶆煡璇㈡潈闄�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - - <el-collapse-item title="v2.2.0 - 2020-03-18"> - <ol> - <li>绯荤粺鐩戞帶鏂板瀹氭椂浠诲姟鍔熻兘</li> - <li>娣诲姞涓�涓墦鍖匴eb宸ョ▼bat</li> - <li>淇椤电榧犳爣婊氳疆鎸変笅鐨勬椂鍊欙紝鍙互鍏抽棴涓嶅彲鍏抽棴鐨則ag</li> - <li>淇鐐瑰嚮閫�鍑虹櫥褰曟湁鏃朵細鏃犳彁绀洪棶棰�</li> - <li>淇闃查噸澶嶆彁浜ゆ敞瑙f棤鏁堥棶棰�</li> - <li>淇閫氱煡鍏憡鎵归噺鍒犻櫎寮傚父闂</li> - <li>娣诲姞鑿滃崟鏃惰矾鐢卞湴鍧�蹇呭~闄愬埗</li> - <li>浠g爜鐢熸垚瀛楁鎻忚堪鍙紪杈�</li> - <li>淇鐢ㄦ埛淇敼涓汉淇℃伅瀵艰嚧缂撳瓨涓嶈繃鏈熼棶棰�</li> - <li>涓汉淇℃伅鍒涘缓鏃堕棿鑾峰彇姝g‘灞炴�у��</li> - <li>鎿嶄綔鏃ュ織璇︾粏鏄剧ず姝g‘绫诲瀷</li> - <li>瀵煎叆琛ㄥ崟鍑昏鏁版嵁鏃堕�変腑瀵瑰簲鐨勫閫夋</li> - <li>鎵归噺鏇挎崲琛ㄥ墠缂�閫昏緫璋冩暣</li> - <li>鍥哄畾閲嶅畾鍚戣矾寰勮〃杈惧紡</li> - <li>鍗囩骇element-ui鐗堟湰鍒�2.13.0</li> - <li>鎿嶄綔鏃ュ織鎺掑簭璋冩暣</li> - <li>淇charts鍒囨崲渚ц竟鏍忔垨鑰呯缉鏀剧獥鍙f樉绀篵ug</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - - <el-collapse-item title="v2.1.0 - 2020-02-24"> - <ol> - <li>鏂板琛ㄥ崟鏋勫缓</li> - <li>浠g爜鐢熸垚鏀寔鏍戣〃缁撴瀯</li> - <li>鏂板鐢ㄦ埛瀵煎叆</li> - <li>淇鍔ㄦ�佸姞杞借矾鐢遍〉闈㈠埛鏂伴棶棰�</li> - <li>淇鍦板潃寮�鍏虫棤鏁堥棶棰�</li> - <li>姹夊寲閿欒鎻愮ず椤甸潰</li> - <li>浠g爜鐢熸垚宸茬煡闂淇敼</li> - <li>淇澶氭暟鎹簮涓嬮厤缃叧闂嚭鐜板紓甯稿鐞�</li> - <li>娣诲姞HTML杩囨护鍣紝鐢ㄤ簬鍘婚櫎XSS婕忔礊闅愭偅</li> - <li>淇涓婁紶澶村儚鎺у埗鍙板嚭鐜板紓甯�</li> - <li>淇敼鐢ㄦ埛绠$悊鍒嗛〉涓嶆纭殑闂</li> - <li>淇楠岃瘉鐮佽褰曟彁绀洪敊璇�</li> - <li>淇request.js缂哄皯Message寮曠敤</li> - <li>淇琛ㄦ牸鏃堕棿涓虹┖鍑虹幇鐨勫紓甯�</li> - <li>娣诲姞Jackson鏃ユ湡鍙嶅簭鍒楀寲鏃跺尯閰嶇疆</li> - <li>璋冩暣鏍规嵁鐢ㄦ埛鏉冮檺鍔犺浇鑿滃崟鏁版嵁鏍戝舰缁撴瀯</li> - <li>璋冩暣鎴愬姛鐧诲綍涓嶆仮澶嶆寜閽紝闃叉澶氭鐐瑰嚮</li> - <li>淇敼鐢ㄦ埛涓汉璧勬枡鍚屾缂撳瓨淇℃伅</li> - <li>淇椤甸潰鍚屾椂鍑虹幇el-upload鍜孍ditor涓嶆樉绀哄鐞�</li> - <li>淇鍦ㄨ鑹茬鐞嗛〉淇敼鑿滃崟鏉冮檺鍋跺皵鏈�変腑闂</li> - <li>閰嶇疆鏂囦欢鏂板redis瀵嗙爜灞炴��</li> - <li>璁剧疆mybatis鍏ㄥ眬鐨勯厤缃枃浠�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - - <el-collapse-item title="v2.0.0 - 2019-12-02"> - <ol> - <li>鏂板浠g爜鐢熸垚</li> - <li>鏂板@RepeatSubmit娉ㄨВ锛岄槻姝㈤噸澶嶆彁浜�</li> - <li>鏂板鑿滃崟涓荤洰褰曟坊鍔�/鍒犻櫎鎿嶄綔</li> - <li>鏃ュ織璁板綍杩囨护鐗规畩瀵硅薄锛岄槻姝㈣浆鎹㈠紓甯�</li> - <li>淇敼浠g爜鐢熸垚璺敱鑴氭湰閿欒</li> - <li>鐢ㄦ埛涓婁紶澶村儚瀹炴椂鍚屾缂撳瓨锛屾棤闇�閲嶆柊鐧诲綍</li> - <li>璋冩暣鍒囨崲椤电鍚庝笉閲嶆柊鍔犺浇鏁版嵁</li> - <li>娣诲姞jsencrypt瀹炵幇鍙傛暟鐨勫墠绔姞瀵�</li> - <li>绯荤粺閫�鍑哄垹闄ょ敤鎴风紦瀛樿褰�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v1.1.0 - 2019-11-11"> - <ol> - <li>鏂板鍦ㄧ嚎鐢ㄦ埛绠$悊</li> - <li>鏂板鎸夐挳缁勫姛鑳藉疄鐜帮紙鎵归噺鍒犻櫎銆佸鍑恒�佹竻绌猴級</li> - <li>鏂板鏌ヨ鏉′欢閲嶇疆鎸夐挳</li> - <li>鏂板Swagger鍏ㄥ眬Token閰嶇疆</li> - <li>鏂板鍚庣鍙傛暟鏍¢獙</li> - <li>淇瀛楀吀绠$悊椤甸潰鐨勬棩鏈熸煡璇㈠紓甯�</li> - <li>淇敼鏃堕棿鍑芥暟鍛藉悕闃叉鍐茬獊</li> - <li>鍘婚櫎鑿滃崟涓婄骇鏍¢獙锛岄粯璁や负椤剁骇</li> - <li>淇鐢ㄦ埛瀵嗙爜鏃犳硶淇敼闂</li> - <li>淇鑿滃崟绫诲瀷涓烘寜閽椂涓嶆樉绀烘潈闄愭爣璇�</li> - <li>鍏朵粬缁嗚妭浼樺寲</li> - </ol> - </el-collapse-item> - <el-collapse-item title="v1.0.0 - 2019-10-08"> - <ol> - <li>鑻ヤ緷鍓嶅悗绔垎绂荤郴缁熸寮忓彂甯�</li> - </ol> - </el-collapse-item> - </el-collapse> - </el-card> - </el-col> - <el-col :xs="24" :sm="24" :md="12" :lg="8"> - <el-card class="update-log"> - <template v-slot:header> - <div class="clearfix"> - <span>鎹愯禒鏀寔</span> - </div> - </template> - <div class="body"> - <img - src="https://oscimg.oschina.net/oscnet/up-d6695f82666e5018f715c41cb7ee60d3b73.png" - alt="donate" - style="width:100%" - /> - <span style="display: inline-block; height: 30px; line-height: 30px" - >浣犲彲浠ヨ浣滆�呭枬鏉挅鍟¤〃绀洪紦鍔�</span - > - </div> - </el-card> - </el-col> - </el-row> - </div> -</template> - -<script setup name="Index"> -const version = ref('3.7.0') - -function goTarget(url) { - window.open(url, '__blank') -} -</script> - -<style scoped lang="scss"> -.home { - blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; - } - hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; - } - .col-item { - margin-bottom: 20px; - } - - ul { - padding: 0; - margin: 0; - } - - font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - color: #676a6c; - overflow-x: hidden; - - ul { - list-style-type: none; - } - - h4 { - margin-top: 0px; - } - - h2 { - margin-top: 10px; - font-size: 26px; - font-weight: 100; - } - - p { - margin-top: 10px; - - b { - font-weight: 700; - } - } - - .update-log { - ol { - display: block; - list-style-type: decimal; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0; - margin-inline-end: 0; - padding-inline-start: 40px; - } - } -} -</style> - +<template> + <div class="dashboard"> + <!-- 椤堕儴妯悜涓ゆ爮 --> + <div class="dashboard-top"> + <!-- 宸︼細浼佷笟淇℃伅+涓夊ぇ鏁版嵁鍗$墖锛堜笂涓嬫帓鍒楋級 --> + <div class="top-left"> + <div class="company-info"> + <div class="section-title">鐧婚檰淇℃伅</div> + <div style="display: flex;align-items: center;gap: 20px"> + <img :src="userStore.avatar" class="avatar" alt=""/> + <div class="company-card"> + <div class="company-name">{{userStore.name}}</div> + <div class="company-meta">{{userStore.roleName}}</div> + </div> + <div style="display: flex;align-items: center;gap: 8px"> + <el-icon color="#5053B5" size="22"><Clock /></el-icon> + <span>鐧婚檰鏃ユ湡锛歿{userStore.currentLoginTime}}</span> + </div> + </div> + </div> + <div class="data-cards"> + <div class="data-card sales"> + <div class="data-title">閿�鍞暟鎹�</div> + <div class="data-num"> + <div> + <div class="data-desc">鏈湀閿�鍞/鍏�</div> + <div class="data-value">{{businessInfo.monthSaleMoney}}</div> + </div> + <div> + <div class="data-desc">鏈紑绁ㄩ噾棰�/鍏�</div> + <div class="data-value">{{businessInfo.monthSaleHaveMoney}}</div> + </div> + </div> + + </div> + <div class="data-card purchase"> + <div class="data-title">閲囪喘鏁版嵁</div> + <div class="data-num"> + <div> + <div class="data-desc">鏈湀閲囪喘棰�/鍏�</div> + <div class="data-value">{{businessInfo.monthPurchaseMoney}}</div> + </div> + <div> + <div class="data-desc">寰呬粯娆鹃噾棰�/鍏�</div> + <div class="data-value">{{businessInfo.monthPurchaseHaveMoney}}</div> + </div> + </div> + </div> + <div class="data-card inventory"> + <div class="data-title">搴撳瓨鏁版嵁</div> + <div class="data-num"> + <div> + <div class="data-desc">褰撳墠搴撳瓨鎬婚噺/浠�</div> + <div class="data-value">{{businessInfo.inventoryNum}}</div> + </div> + <div> + <div class="data-desc">浠婃棩鍏ュ簱/浠�</div> + <div class="data-value">{{businessInfo.todayInventoryNum}}</div> + </div> + </div> + </div> + </div> + </div> + <!-- 鍙筹細寰呭姙浜嬮」 --> + <div class="todo-panel"> + <div class="section-title">寰呭姙浜嬮」</div> + <ul class="todo-list" v-if="todoList.length > 0"> + <li v-for="item in todoList" :key="item.id"> + <div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px"> + <div style="display: flex;justify-content: space-between;align-items: center;"> + <div class="todo-title">娴佺▼缂栧彿锛歿{item.approveId}}</div> + <div class="todo-division">鐢宠閮ㄩ棬锛歿{item.approveDeptName}}</div> + <div class="todo-time">{{item.approveTime}}</div> + </div> + <div class="todo-division">瀹℃壒浜嬬敱锛歿{item.approveReason}}</div> + </div> + </li> + </ul> + <div v-else style="text-align: center"> + 鏆傛棤鏁版嵁 + </div> + </div> + </div> + + <!-- 涓儴妯悜涓ゆ爮 --> + <div class="dashboard-row"> + <div class="main-panel"> + <div class="section-title">瀹㈡埛鍚堝悓閲戦鍒嗘瀽</div> + <div class="contract-summary"> + <div class="contract-info"> + <img src="../assets/images/khtitle.png" alt="" style="width: 42px"/> + <div class="contract-card"> + <div class="contract-name">鎬诲悎鍚岄噾棰�(鍏�)</div> + <div class="contract-meta"> + <div class="main-amount">{{sum}}</div> + <div>鍛ㄥ悓姣�: <span class="up">{{yny}}% </span> 鏃ョ幆姣�: <span class="up">{{chain}}% </span></div> + </div> + </div> + </div> + </div> + <div style="display: flex;align-items: center;gap: 20px;justify-content: space-evenly;height: 180px;margin-top: 20px"> + <div> + <Echarts ref="chart" :legend="pieLegend" :chartStyle="chartStylePie" + :series="materialPieSeries" + :tooltip="pieTooltip"></Echarts> + </div> + <ul class="contract-list"> + <li v-for="item in materialPieSeries[0].data" :key="item.name"> + <div style="display: flex;align-items: center;justify-content: space-between;width: 100%"> + <div class="line" :style="{color: item.itemStyle.color}">鈼弡{item.name}}</div> + <div style="width: 70px">{{item.rate}}%</div> + <div>锟{item.value}}</div> + </div> + </li> + </ul> + </div> + </div> + <div class="main-panel"> + <div style="display: flex;justify-content: space-between;"> + <div class="section-title">搴旀敹搴斾粯缁熻</div> + <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable"> + <el-radio-button label="鎸夊懆" :value="1" /> + <el-radio-button label="鎸夋湀" :value="2" /> + <el-radio-button label="鎸夊搴�" :value="3" /> + </el-radio-group> + </div> + <Echarts ref="chart" + :color="barColors2" + :chartStyle="chartStyle" + :grid="grid" + :series="barSeries" + :tooltip="tooltip" + :xAxis="xAxis" + :yAxis="yAxis" + style="height: 260px"></Echarts> + </div> + </div> + + <!-- 搴曢儴妯悜涓ゆ爮 --> + <div class="dashboard-row"> + <div class="main-panel"> + <div class="section-title">璐ㄩ噺缁熻</div> + <div class="quality-cards"> + <div class="quality-card one">鍘熸潗鏂欏凡妫�娴嬫暟 <span>{{qualityStatisticsObject.supplierNum}}浠�</span></div> + <div class="quality-card two">杩囩▼妫�楠屾暟閲� <span>{{qualityStatisticsObject.processNum}}浠�</span></div> + <div class="quality-card three">鍑哄巶宸叉鏁伴噺 <span>{{qualityStatisticsObject.factoryNum}}浠�</span></div> + </div> + <Echarts ref="chart" + :chartStyle="chartStyle" + :grid="grid" + :legend="barLegend" + :series="barSeries1" + :tooltip="tooltip" + :xAxis="xAxis1" + :yAxis="yAxis1" + style="height: 260px"></Echarts> + </div> + <div class="main-panel"> + <div class="section-title">鍥炴涓庡紑绁ㄥ垎鏋�</div> + <Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries" + :tooltip="tooltipLine" :xAxis="xAxis2" :yAxis="yAxis2" style="height: 270px;"></Echarts> + </div> + </div> + </div> +</template> + +<script setup> +import { ref, onMounted } from 'vue' +import Echarts from "@/components/Echarts/echarts.vue"; +import * as echarts from 'echarts'; +import useUserStore from "@/store/modules/user.js"; +import { + analysisCustomerContractAmounts, getAmountHalfYear, + getBusiness, + homeTodos, + qualityStatistics, + statisticsReceivablePayable +} from "@/api/viewIndex.js"; + +const userStore = useUserStore() + +const businessInfo = ref({ + inventoryNum: 0, + monthPurchaseHaveMoney: 0, + monthPurchaseMoney: 0, + monthSaleHaveMoney: 0, + monthSaleMoney: 0, + todayInventoryNum: 0, +}) +const qualityStatisticsObject = ref({ + supplierNum: 0, + processNum: 0, + factoryNum: 0, +}) +const sum = ref(0) +const yny = ref(0) +const chain = ref(0) + +const pieLegend = reactive({ + show: false, +}) +const barSeries = ref([ + { + type: 'bar', + data: [], + label: { + show: true, + } + }, +]) +const barSeries1 = ref([ + { + name: '鍘熸潗鏂欎笉鍚堟牸鏁�', + type: 'bar', + barGap: 0, + emphasis: { + focus: 'series' + }, + data: [] + }, + { + name: '杩囩▼涓嶅悎鏍兼暟', + type: 'bar', + emphasis: { + focus: 'series' + }, + data: [] + }, + { + name: '鍑哄巶涓嶅悎鏍兼暟', + type: 'bar', + emphasis: { + focus: 'series' + }, + data: [] + }, +]) +const chartStyle = { + width: '100%', + height: '100%' // 璁剧疆鍥捐〃瀹瑰櫒鐨勯珮搴� +} +const chartStylePie = { + width: '140%', + height: '140%' // 璁剧疆鍥捐〃瀹瑰櫒鐨勯珮搴� +} +const grid = { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true +} +const barLegend = { + show: true, + data: ['鍘熸潗鏂欎笉鍚堟牸鏁�', '杩囩▼涓嶅悎鏍兼暟', '鍑哄巶涓嶅悎鏍兼暟'] +} +const barLegend1 = { + show: true, + data: ['棰勪粯璐︽', '搴斾粯璐︽', '棰勬敹璐︽', '搴旀敹璐︽'] +} +const lineLegend = { + show: true, + data: ['寮�绁�', '鍥炴'] +} +const tooltip = { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } +} +const xAxis = [{ + type: 'value', +}] +const xAxis1 = ref([{ + type: 'category', + axisTick: { show: false }, + data: [] +}]) +const yAxis = [{ + type: 'category', + data: ['棰勪粯璐︽', '搴斾粯璐︽', '棰勬敹璐︽', '搴旀敹璐︽',] +}] +const yAxis1 = [{ + type: 'value' +}] +const pieTooltip = reactive({ + trigger: 'item', + formatter: function (params) { + // 鍔ㄦ�佺敓鎴愭彁绀轰俊鎭紝鍩轰簬鏁版嵁椤圭殑 name 灞炴�� + const description = params.name === '鏈湀鍥炴閲戦' ? '鏈湀鍥炴閲戦' : '搴旀敹娆鹃噾棰�'; + return `${description} ${formatNumber(params.value)}鍏� ${params.percent}%`; + }, + position: 'right' +}) +const materialPieSeries = ref([ + { + type: 'pie', + radius: ['66%', '90%'], + avoidLabelOverlap: false, + itemStyle: { + borderColor: '#fff', + borderWidth: 2 + }, + label: { + show: false + }, + data: [] + } +]) +const lineSeries = ref([ + { + type: 'line', + data: [], + label: { + show: true + }, + showSymbol: true, // 鏄剧ず鍦嗙偣 + }, +]) +const tooltipLine = { + trigger: 'axis', +} +const yAxis2 = ref([ + { + type: 'value', + } +]) +const xAxis2 = ref([ + { + type: 'category', + data: [], + axisLabel: { + interval: 0, + formatter: function(value) { + return value.replace(/~/g, '\n'); + }, + } + } +]) + +// 鍚堝悓閲戦鍒嗘瀽鏁版嵁 +const contractList = [ + { name: '娣卞湷绉戞妧鏈夐檺鍏徃', percent: 36, value: 4544, color: '#4fc3f7' }, + { name: '鍖椾含绉戞妧鏈夐檺鍏徃', percent: 20, value: 4000, color: '#81c784' }, + { name: '骞垮窞绉戞妧鏈夐檺鍏徃', percent: 16, value: 3113, color: '#ffb74d' }, + { name: '涓婃捣绉戞妧鏈夐檺鍏徃', percent: 10, value: 2341, color: '#ba68c8' }, + { name: '鍗椾含绉戞妧鏈夐檺鍏徃', percent: 9, value: 1231, color: '#e57373' }, + { name: '鍖椾含鏈潵绉戞妧鏈夐檺鍏徃', percent: 9, value: 1231, color: '#64b5f6' } +] + +// 寰呭姙浜嬮」 +const todoList = ref([]) +const radio1 = ref(1) + +// 鍥捐〃寮曠敤 +const barChart = ref(null) +const lineChart = ref(null) +const barColors2 = ['#5181DB', '#D369E0', '#F2CA6D', '#60CCA8'] + +// 闅忔満棰滆壊鐢熸垚鍑芥暟 +const getRandomColor = () => { + return '#' + Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, '0'); +} + +onMounted(() => { + getBusinessData() + analysisCustomer() + todoInfoS() + statisticsReceivable() + qualityStatisticsInfo() + getAmountHalfYearNum() +}) +// 鏁版嵁缁熻 +const getBusinessData = () => { + getBusiness().then((res) => { + businessInfo.value = {...res.data} + }) +} +// 鍚堝悓閲戦 +const analysisCustomer = () => { + analysisCustomerContractAmounts().then((res) => { + sum.value = res.data.sum + yny.value = res.data.yny + chain.value = res.data.chain + // 涓烘瘡涓暟鎹」鍒嗛厤闅忔満棰滆壊 + materialPieSeries.value[0].data = res.data.item.map(item => ({ + ...item, + itemStyle: { color: getRandomColor() } + })) + }) +} +// 寰呭姙浜嬮」 +const todoInfoS = () => { + homeTodos().then((res) => { + todoList.value = res.data + }) +} +// 搴斾粯搴旀敹缁熻 +const statisticsReceivable = (type) => { + console.log(type) + statisticsReceivablePayable({type: radio1.value}).then((res) => { + barSeries.value[0].data = [ + { value: res.data.prepayMoney, itemStyle: { color: barColors2[0] } }, + { value: res.data.payableMoney, itemStyle: { color: barColors2[1] } }, + { value: res.data.advanceMoney, itemStyle: { color: barColors2[2] } }, + { value: res.data.receivableMoney, itemStyle: { color: barColors2[3] } } + ] + }) +} +// 璐ㄦ缁熻 +const qualityStatisticsInfo = () => { + qualityStatistics().then((res) => { + res.data.item.forEach(item => { + xAxis1.value[0].data.push(item.date) + barSeries1.value[0].data.push(item.supplierNum) + barSeries1.value[1].data.push(item.processNum) + barSeries1.value[2].data.push(item.factoryNum) + }) + qualityStatisticsObject.value.supplierNum = res.data.supplierNum + qualityStatisticsObject.value.processNum = res.data.processNum + qualityStatisticsObject.value.factoryNum = res.data.factoryNum + }) +} +const getAmountHalfYearNum = async () => { + const res = await getAmountHalfYear() + console.log(res) + const monthName = [] + const receiptAmount = [] + const invoiceAmount = [] + res.data.forEach(item => { + monthName.push(item.month) + receiptAmount.push(item.receiptAmount) + invoiceAmount.push(item.invoiceAmount) + }) + // 姝g‘鍝嶅簲寮忚祴鍊硷細鍒涘缓鏂扮殑 xAxis 鍜� series 瀵硅薄 + xAxis2.value[0].data = monthName + xAxis2.value[0].data = monthName.map(item => item.replace(/~/g, '\n~')); + lineSeries.value = [ + { + name: '寮�绁�', + type: 'line', + data: receiptAmount, + stack: 'Total', + areaStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: 'rgba(131, 207, 255, 1)' + }, + { + offset: 1, + color: 'rgba(186, 228, 255, 1)' + } + ]) + }, + itemStyle: { + color: '#2D99FF', + borderColor: '#2D99FF' + }, + emphasis: { + focus: 'series' + }, + lineStyle: { + width: 0 + }, + showSymbol: true, + }, + { + name: '鍥炴', + type: 'line', + data: invoiceAmount, + stack: 'Total', + lineStyle: { + width: 0 + }, + itemStyle: { + color: '#83CFFF', + borderColor: '#83CFFF' + }, + showSymbol: true, + areaStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: 'rgba(54, 153, 255, 1)' + }, + { + offset: 1, + color: 'rgba(89, 169, 254, 1)' + } + ]) + }, + emphasis: { + focus: 'series' + }, + } + ] +} +</script> + +<style scoped> +.dashboard { + background: #f5f7fa; + min-height: 100vh; + padding: 20px; + box-sizing: border-box; +} +.dashboard-top { + display: flex; + gap: 20px; + margin-bottom: 20px; +} +.company-info { + display: flex; + flex-direction: column; + gap: 8px; + padding: 20px; + min-width: 0; + background-color: #EFF2FB; /* 浣跨敤鎸囧畾鐨勮儗鏅鑹� */ + background-image: url("../assets/images/denglu.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 12px; + height: 138px; +} +.avatar { + width: 60px; + height: 60px; + border-radius: 50%; + object-fit: contain; + background: #fff; + border: 1px solid #eee; +} +.company-card { + display: flex; + flex-direction: column; + gap: 10px; + position: relative; + padding-right: 15px; +} + +.company-card::after { + content: ''; + position: absolute; + right: 0; + top: 0; + bottom: 0; + width: 1px; + background-color: #C9C5C5; + border-radius: 2px; +} +.company-name { + font-weight: 400; + font-size: 16px; + color: #161A9A; +} +.company-meta { + font-weight: 400; + font-size: 12px; + color: #818185; +} +.data-cards { + display: flex; + gap: 16px; + justify-content: flex-start; + background: #ffffff; + border-radius: 12px; + padding: 20px; +} +.data-title { + font-weight: 700; + font-size: 26px; + color: #FFFFFF; +} +.data-num { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 20px; +} +.data-card { + background: #fff; + border-radius: 12px; + padding: 14px 10px 10px 10px; + min-width: 160px; + box-shadow: 0 2px 8px #eee; + display: flex; + flex-direction: column; + width: 32%; + height: 140px; +} +.data-card.sales { + background-image: url("../assets/images/xioashoushuju.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.data-card.purchase { + background-image: url("../assets/images/caigou.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.data-card.inventory { + background-image: url("../assets/images/kucun.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.data-desc { + font-weight: 500; + font-size: 13px; + color: #FFFFFF; +} +.data-value { + font-size: 18px; + font-weight: 500; + margin: 10px 0; + color: #FFFFFF; +} +.top-left { + display: flex; + flex-direction: column; + gap: 20px; + width: 50%; +} +.todo-panel { + background: #fff; + border-radius: 12px; + padding: 20px; + width: 50%; +} +.todo-list { + list-style: none; + padding: 0; + margin: 0; + font-size: 15px; + overflow-y: auto; + height: 260px; +} +.todo-list li { + border-radius: 8px; + margin-bottom: 12px; + padding: 8px 20px; + height: 74px; + display: flex; + justify-content: space-between; + align-items: center; + background: rgba(225,227,250,0.62); +} +.todo-title { + font-weight: 400; + font-size: 12px; + color: #000000; + position: relative; +} +.todo-title::before { + content: ''; /* 蹇呴渶锛岃〃绀鸿繖閲屾湁涓�涓唴瀹� */ + position: absolute; + left: -10px; /* 瀹氫綅鍒板乏渚� */ + top: 50%; /* 鍨傜洿灞呬腑 */ + transform: translateY(-50%); /* 寰皟鍨傜洿灞呬腑 */ + width: 6px; /* 鍦嗙殑鐩村緞 */ + height: 6px; /* 鍦嗙殑鐩村緞 */ + background: #498CEB; + border-radius: 50%; /* 璁╁叾鍙樻垚鍦嗗舰 */ +} +.todo-division { + font-weight: 400; + font-size: 12px; + color: #000000; +} +.todo-time { + font-weight: 400; + font-size: 12px; + color: #000000; +} +.todo-meta { + color: #888; + font-size: 13px; +} +.dashboard-row { + display: flex; + gap: 20px; + margin-bottom: 20px; +} +.main-panel { + background: #fff; + border-radius: 12px; + padding: 20px; + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; +} +.section-title { + position: relative; + font-size: 18px; + color: #333; + padding-left: 10px; + margin-bottom: 10px; + font-weight: 700; +} + +.section-title::before { + position: absolute; + left: 0; + top: 4px; + content: ''; + width: 4px; + height: 18px; + background-color: #002FA7; + border-radius: 2px; +} +.contract-info { + display: flex; + align-items: center; + gap: 20px; + height: 90px; + background: rgba(245,245,245,0.59); + width: 100%; + border-radius: 10px; + padding: 10px 30px; +} +.contract-summary { + display: flex; + align-items: center; + gap: 30px; +} +.contract-card { + display: flex; + flex-direction: column; + gap: 10px; +} +.contract-name { + font-weight: 400; + font-size: 14px; + color: #050505; +} +.contract-meta { + display: flex; + align-items: center; + width: 100%; + gap: 80px; +} +.main-amount { + font-size: 24px; + color: rgba(51,50,50,0.85); +} +.up { color: #e57373; } +.contract-list { + margin-top: 16px; + font-size: 14px; + color: #666; + list-style: none; + padding: 0; +} +.line { + position: relative; + width: 250px; +} +.line::after { + content: ''; + position: absolute; + right: 12px; + top: 0; + bottom: 0; + width: 1px; + background-color: #C9C5C5; + border-radius: 2px; +} +.contract-list li { + margin-top: 10px; +} +.quality-cards { + display: flex; + gap: 12px; + margin-bottom: 12px; +} +.quality-card { + border-radius: 8px; + padding: 15px 10px 10px 50px; + font-weight: 400; + font-size: 12px; + color: rgba(0,0,0,0.67); + width: 236px; + height: 49px; + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.quality-card.one { + background-image: url("../assets/images/yuancailiao.png"); +} +.quality-card.two { + background-image: url("../assets/images/guocheng.png"); +} +.quality-card.three { + background-image: url("../assets/images/chuchang.png"); + +} +.quality-card span { + color: #4fc3f7; + font-weight: bold; + margin-left: 6px; +} +.chart { + width: 100%; + height: 220px; + margin-top: 10px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3