如何構(gòu)建高復(fù)用性的交互組件庫(kù)?

78 評(píng)論 42743 瀏覽 432 收藏 24 分鐘

有一天,當(dāng)你幾乎完成了一個(gè)項(xiàng)目全套的交互設(shè)計(jì)稿后。

PM:「那個(gè)……把底欄第二和第三個(gè)Tab對(duì)調(diào)一下位置吧?!?/p>

你嚇得坐到了地上:「為什么!不是一個(gè)月前評(píng)審時(shí)就定好的嗎?」

PM嘆了口氣,用八百字痛陳了客戶(hù)的壓力和他的歉意。

你哭:「有200多個(gè)頁(yè)面要改,明天評(píng)審還來(lái)得及嗎?」

PM沒(méi)有說(shuō)話(huà),只是同情地拍了拍你的肩膀……

而如果你的導(dǎo)航欄是通過(guò)組件統(tǒng)一搭建的,完成這一改動(dòng)只需要1秒。

什么是組件庫(kù)

1、組件庫(kù)的概念

組件庫(kù)就是界面設(shè)計(jì)常用控件或元素的集合,從某種意義上說(shuō),交互設(shè)計(jì)線(xiàn)框圖的組件庫(kù)比視覺(jué)設(shè)計(jì)階段的UI組件庫(kù)價(jià)值更高。UI設(shè)計(jì)階段,不同產(chǎn)品、不同項(xiàng)目的常用組件即使有共通之處,也一定是不完全相同的。而在交互設(shè)計(jì)的線(xiàn)框圖階段,一個(gè)優(yōu)秀的組件庫(kù)可以同時(shí)在許多項(xiàng)目中發(fā)光發(fā)熱。

一個(gè)好的組件庫(kù),衡量標(biāo)準(zhǔn)主要包括靈活性、復(fù)用性、全面性。靈活性指一個(gè)組件的字段、icon、配色都應(yīng)該可以靈活改寫(xiě),以應(yīng)對(duì)多樣化的需求。復(fù)用性指對(duì)于通用組件,應(yīng)當(dāng)是可以在不同項(xiàng)目間復(fù)用的。全面性則指一套組件庫(kù)應(yīng)當(dāng)覆蓋盡可能多的常用元素。

組件化的初衷并非提高一致性、利于團(tuán)隊(duì)合作這些高大上的目的,而是人類(lèi)進(jìn)步的第一生產(chǎn)力——「懶」。消滅重復(fù)勞動(dòng)是提高效率的主要途徑,勤勞如小蜜蜂的設(shè)計(jì)師也不例外,那么組件化就是無(wú)論交互還是UI設(shè)計(jì)中我們不得不思考的問(wèn)題。

雖然之前總是強(qiáng)調(diào)大家不要過(guò)分關(guān)注工具,對(duì)交互設(shè)計(jì)師而言,業(yè)務(wù)目標(biāo)、流程和信息架構(gòu)上的思考才是我們的核心價(jià)值所在。但這不代表工具就不需要思考和積累,一把更鋒利的工具才能幫助我們把有限的時(shí)間和精力放在上面所說(shuō)的核心思考上,而不是淪為埋頭畫(huà)圖的線(xiàn)框仔。

2、復(fù)用性:組件庫(kù)的意義

上面說(shuō)到組件化是源于「懶」,并不是說(shuō)組件化的作用僅限于簡(jiǎn)化重復(fù)操作。除了提高設(shè)計(jì)師個(gè)人的設(shè)計(jì)效率這一顯而易見(jiàn)的好處之外,在交互設(shè)計(jì)階段對(duì)常見(jiàn)的元素控件進(jìn)行組件化,還有很多更深層次的意義:

  1. 一致性「從娃娃抓起」:從交互稿階段開(kāi)始,就讓整個(gè)項(xiàng)目的產(chǎn)出物具有高度的一致性,使用同一組件庫(kù)畫(huà)的每個(gè)頂欄、每個(gè)列表、每個(gè)彈框都是遵循同一規(guī)則的。
  2. 與視覺(jué)設(shè)計(jì)無(wú)縫銜接:Sketch為交互設(shè)計(jì)和視覺(jué)設(shè)計(jì)階段的無(wú)縫銜接提供了最好的平臺(tái),交互組件庫(kù)可以直接交付視覺(jué)設(shè)計(jì)師進(jìn)行視覺(jué)設(shè)計(jì),形成真正的UI組件庫(kù)(UI Kit)。
  3. 有助于形成設(shè)計(jì)規(guī)范:當(dāng)UI組件庫(kù)形成后,「設(shè)計(jì)規(guī)范的積淀」——這個(gè)貫穿交互和UI設(shè)計(jì)管理工作中的老大難問(wèn)題,就已經(jīng)解決了一大半了,經(jīng)過(guò)評(píng)審確認(rèn)的UI組件庫(kù)可以直接作為視覺(jué)設(shè)計(jì)規(guī)范的一部分。
  4. 利于團(tuán)隊(duì)合作:無(wú)論是交互設(shè)計(jì)組件庫(kù)還是UI組件庫(kù),經(jīng)過(guò)整理和完善,在項(xiàng)目或者團(tuán)隊(duì)中推行開(kāi)來(lái),對(duì)項(xiàng)目?jī)?nèi),或者不同項(xiàng)目間設(shè)計(jì)成果的一致性、合作效率都大有裨益,也有助于讓整個(gè)品牌形成有效的辨識(shí)度。

既然組件化有這么多的好處,哪些元素可以進(jìn)行組件化呢?其實(shí)很簡(jiǎn)單,凡是你覺(jué)得已經(jīng)重復(fù)畫(huà)了很多次的元素,不同場(chǎng)景下都會(huì)用到的元素,都可以考慮將其單獨(dú)拿出來(lái)進(jìn)行組件化。

3、靈活性:「Symbol套Symbol」

Sketch 41的一個(gè)讓設(shè)計(jì)效率產(chǎn)生質(zhì)變的更新就是Symbol可以?xún)?nèi)嵌Symbol了,尺寸相同的符號(hào)可以在Symbol Override的下拉列表中直接選擇切換——想必大家已經(jīng)等這個(gè)功能很久了。

有了「Symbol套Symbol」的功能后,在組件化時(shí)進(jìn)行合理的拆分和嵌套,可以讓你做出一個(gè)很”聰明“的Symbol——可以幫你「以一敵十」的那種。

雖然在第一次建立Symbol時(shí),需要仔細(xì)考慮怎樣的拆分和嵌套是最有利于設(shè)計(jì)效率的,也許會(huì)覺(jué)得太費(fèi)腦子,還不如直接畫(huà)多個(gè)Symbol方便。但當(dāng)一個(gè)通用性很強(qiáng)的Symbol通過(guò)各種內(nèi)嵌Symbol組合而成后,毫不夸張地說(shuō),你會(huì)發(fā)現(xiàn)它替代的是以往成十上百個(gè)Symbol的功能。

而當(dāng)你為常用的控件制作并積累了許多這些高通用性的Symbol后,一套復(fù)用性極佳的組件庫(kù)庫(kù)逐漸積淀成型后,你一定會(huì)驚嘆于把一個(gè)方案構(gòu)想呈現(xiàn)在線(xiàn)框圖上原來(lái)可以這么快。

4、全面性:循序漸進(jìn)的積累過(guò)程

在積累一個(gè)個(gè)的組件,逐漸形成組件庫(kù)的過(guò)程中,不要想一下子做得非常全面。組件庫(kù)的積累是一個(gè)不斷在項(xiàng)目中補(bǔ)充、維護(hù)和更新的過(guò)程。而且,即使一個(gè)資深的設(shè)計(jì)師經(jīng)過(guò)幾年的工作也很難說(shuō)能積累出絕對(duì)「全面」的組件庫(kù),每個(gè)項(xiàng)目都有各自的特色,一個(gè)能幫我們解決70%問(wèn)題的組件庫(kù)已經(jīng)算得上是復(fù)用性很棒的了。

同時(shí),Sketch的Symbol可以通過(guò)命名中的「/」符號(hào)自動(dòng)形成目錄結(jié)構(gòu),這有助于使用組件庫(kù)的設(shè)計(jì)師快速找到想要的組件,也有助于制作或維護(hù)組件庫(kù)的人隨時(shí)審視一個(gè)類(lèi)型的組件是否有重復(fù)或者不完善的情況。

以上講述了組件庫(kù)的概念和意義之后,下文將主要介紹如何構(gòu)建一套具有復(fù)用性的組件庫(kù),即側(cè)重「庫(kù)」的層面而不是「?jìng)€(gè)體」的層面——會(huì)講的是組件庫(kù)應(yīng)該涵蓋哪些類(lèi)型的元素、每類(lèi)元素在組件化時(shí)要考慮哪些方面、有哪些Tips需要注意,而不是一篇具體如何在Sketch中進(jìn)行組件化的教程——當(dāng)然,如果有朋友對(duì)這個(gè)教程有興趣的話(huà),后面有時(shí)間時(shí)我會(huì)考慮寫(xiě)一寫(xiě)。

因此,有Sketch使用基礎(chǔ)的同學(xué)閱讀本文應(yīng)該會(huì)更明白我在說(shuō)什么,也更明白做出各種拆分的原因。但在組件庫(kù)中需要涵蓋的組件類(lèi)型和拆分方式上,希望這篇文章對(duì)使用Axure、OG、AI、ID等工具設(shè)計(jì)交互稿的同學(xué)同樣有用。

組件庫(kù)的內(nèi)容

再優(yōu)秀的組件庫(kù)也沒(méi)法「一招鮮吃遍天」,何況Symbol數(shù)目過(guò)多會(huì)影響Sketch的流暢度。因此,一個(gè)全面的設(shè)計(jì)師或者一個(gè)優(yōu)秀的設(shè)計(jì)團(tuán)隊(duì),需要針對(duì)不同平臺(tái)和不同的產(chǎn)品類(lèi)型準(zhǔn)備不同的組件庫(kù)。

在準(zhǔn)備針對(duì)某一產(chǎn)品類(lèi)型的組件庫(kù)時(shí),該類(lèi)型的產(chǎn)品中那些口碑最好的競(jìng)品,在設(shè)計(jì)規(guī)范方面自然是我們最寶貴的學(xué)習(xí)資源。例如下面這套組件庫(kù)的積累過(guò)程中,除了學(xué)習(xí)和參考iOS平臺(tái)的原生設(shè)計(jì)規(guī)范外,也部分參考了IM類(lèi)的經(jīng)典產(chǎn)品——微信的設(shè)計(jì)規(guī)范。

下面,將基于我在實(shí)際項(xiàng)目中淺薄的個(gè)人經(jīng)驗(yàn),以其中一個(gè)iOS平臺(tái)下、適用于IM或內(nèi)容性平臺(tái)APP的組件庫(kù)作為例子,逐一介紹我認(rèn)為比較常見(jiàn)和重要、也比較適合進(jìn)行組件化的12類(lèi)組件。

  1. 頂部導(dǎo)航欄(含狀態(tài)欄)
  2. 底欄
  3. 鍵盤(pán)
  4. 表單
  5. 按鈕
  6. 會(huì)話(huà)
  7. 彈框
  8. Toast
  9. 上拉菜單(ActionSheet)
  10. 發(fā)布
  11. 內(nèi)容
  12. Icon

1、頂部導(dǎo)航欄(含狀態(tài)欄)

  • 建議同時(shí)準(zhǔn)備淺色和深色兩套組件,絕大多數(shù)產(chǎn)品的需求在線(xiàn)框圖階段均可以通過(guò)這兩套方案滿(mǎn)足。
  • 導(dǎo)航欄左端、右端的控件可以分別作為Symbol嵌套進(jìn)導(dǎo)航欄,”加號(hào)/返回/搜索/拍照/用戶(hù)/更多“等圖標(biāo)按鈕和文字按鈕可以方便地直接切換,而不用重繪整個(gè)導(dǎo)航欄。
  • 導(dǎo)航欄主要需要考慮的形式包括:普通、最小化(頁(yè)面向下滾動(dòng)后)、直接作為搜索欄、直接作為T(mén)ab控件等形式。
  • 二級(jí)導(dǎo)航需要考慮不同形式的搜索欄(及其獲得焦點(diǎn)時(shí)的狀態(tài))和Tab頁(yè)(一般同時(shí)準(zhǔn)備分段式和標(biāo)簽式兩種)。

2、底欄

  • 同樣,建議同時(shí)準(zhǔn)備淺色和深色兩套底欄,以應(yīng)對(duì)絕大多數(shù)產(chǎn)品的需求。
  • 以四分式的底欄為例,4種不同激活狀態(tài)可以直接命名為4-1、4-2、4-3、4-4四個(gè)Symbol,繪制不同一級(jí)頁(yè)面時(shí)可以直接切換。
  • 圖標(biāo)建議單獨(dú)作為內(nèi)嵌Symbol,這樣在需要修改圖標(biāo)時(shí)只要修改一個(gè)地方就可以實(shí)現(xiàn)全部更新。
  • 紅點(diǎn)提醒同樣建議作為內(nèi)嵌Symbol,需要準(zhǔn)備共4種狀態(tài):一位數(shù)、兩位數(shù)、無(wú)數(shù)字(小紅點(diǎn))、無(wú)。除了底欄外,產(chǎn)品中任何出現(xiàn)紅點(diǎn)提示的地方(例如聊天列表等)都可以直接嵌入這些Symbol,實(shí)現(xiàn)4種狀態(tài)間的快速切換。

3、鍵盤(pán)

  • 一般以下11種鍵盤(pán)可以滿(mǎn)足大多數(shù)場(chǎng)景使用:默認(rèn)鍵盤(pán)(Default)、密碼鍵盤(pán)(ASCIICapable)、數(shù)字符號(hào)鍵盤(pán)(NumbersAndPunctuation)、數(shù)字鍵盤(pán)(NumberPad)
    搜索鍵盤(pán)(Search)、小數(shù)鍵盤(pán)(DecimalPad)、推特鍵盤(pán)(Twitter)、文本數(shù)字鍵盤(pán)(NamePhonePad,特殊在于次鍵盤(pán),主鍵盤(pán)與默認(rèn)鍵盤(pán)相同)。
  • 鍵盤(pán)的Enter按鈕可能有換行(Return)、搜索(Search)、完成(Done)、發(fā)送(Send)等多種可能,因此建議單獨(dú)拆出作為Symbol嵌套在鍵盤(pán)組件中,便于切換。
  • 輸入條、輸入提示、表情面板(及相應(yīng)的分頁(yè)器)在同一產(chǎn)品內(nèi)也可以進(jìn)行組件化處理。

4、表單

  • 需要考慮的列表項(xiàng)類(lèi)型:?jiǎn)涡惺?,雙行式(帶副標(biāo)題或描述文字)、文章摘要式(純文字/圖文式)、列表標(biāo)題和腳注、”查看更多“項(xiàng)、輸入框(單行/多行,輸入前/輸入中/輸入后)、滑塊。
  • 廣義而言,與社交相關(guān)的聯(lián)系人列表、聊天列表也是表單的一種,同樣可以歸為這類(lèi)組件。
  • 建議作為內(nèi)嵌Symbol單獨(dú)繪制的左端元素:文字前的icon(或空白縮進(jìn))、勾選控件(單選/多選,選中/未選中)、用戶(hù)頭像(單用戶(hù)頭像/群聊頭像)等。
  • 建議作為內(nèi)嵌Symbol單獨(dú)繪制的右端元素:小箭頭(向右/向上/向下)、詳細(xì)信息(居左對(duì)齊/居右對(duì)齊)、各類(lèi)圖標(biāo)(如用于提示的”i“圖標(biāo)、如輸入框的刪除圖標(biāo)等)、開(kāi)關(guān)控件(開(kāi)/關(guān),可用/不可用)、星級(jí)控件。
  • 列表組內(nèi),各項(xiàng)之間的分隔線(xiàn)都是有縮進(jìn)的,第一項(xiàng)的上分隔線(xiàn)和最后一項(xiàng)的下分隔線(xiàn)除外。因此,這里特別建議的是將列表項(xiàng)的上分隔線(xiàn)、下分隔線(xiàn)也單獨(dú)繪制為內(nèi)嵌Symbol,每條分隔線(xiàn)都設(shè)置全寬(Full)、縮進(jìn)90/30/20(Retract90/30/20)共4個(gè)子類(lèi),加上每個(gè)內(nèi)嵌Symbol都可以設(shè)置為None(不顯示)狀態(tài),即可應(yīng)對(duì)一個(gè)列表項(xiàng)出現(xiàn)在一個(gè)列表組中時(shí)的任意情況。在Sketch提供Symbol內(nèi)嵌功能前,如果要準(zhǔn)確地呈現(xiàn)分隔線(xiàn),對(duì)每一類(lèi)列表項(xiàng)都要繪制4種可能性:位于列表組首項(xiàng)、位于列表組末項(xiàng)、位于列表組中間項(xiàng)、自己?jiǎn)为?dú)作為一個(gè)列表組(此時(shí)上下分隔線(xiàn)都是全寬的),而在這一重要功能更新后,只需要靈活切換上下分隔線(xiàn)的Symbol即可。
  • 列表項(xiàng)如果支持左滑操作時(shí),也可以對(duì)正常狀態(tài)和左滑狀態(tài)進(jìn)行組件化處理。

5、按鈕

這里的按鈕特指容易組件化、也容易在各產(chǎn)品間復(fù)用的文字按鈕,而icon按鈕一般在設(shè)計(jì)相應(yīng)的產(chǎn)品時(shí),在產(chǎn)品內(nèi)部相應(yīng)地制定規(guī)范即可。

對(duì)這類(lèi)按鈕,按尺寸可以分為全寬、半寬、小型、表單式共4種,按功能樣式同樣可以分為主要操作、次要操作、警告操作、線(xiàn)型按鈕4種,按照以上兩個(gè)維度的組合,基本可以滿(mǎn)足一般產(chǎn)品中常見(jiàn)的文字按鈕需求。

6、會(huì)話(huà)

  • 對(duì)話(huà)氣泡、時(shí)間戳、長(zhǎng)按菜單均可以進(jìn)行組件化處理。
  • 對(duì)話(huà)氣泡需要考慮的情形:左還是右,行數(shù)和寬度(線(xiàn)框圖階段考慮一到兩行即可,其中兩行的寬度是穩(wěn)定的,而一行的寬度會(huì)隨字?jǐn)?shù)變化)、頭像帶不帶用戶(hù)名(一般而言,右側(cè)也就是自己的頭像肯定是不帶用戶(hù)名的,而左側(cè)也就是對(duì)方的頭像,需要考慮帶用戶(hù)名和不帶用戶(hù)名的兩種情況)。圓角氣泡和小箭頭可以分別作為Symbol進(jìn)行更靈活的組合。
  • 時(shí)間戳:主要考慮的是不同字?jǐn)?shù)對(duì)應(yīng)的寬度。
  • 長(zhǎng)按菜單:以一種常見(jiàn)的圓角水平菜單為例,最左項(xiàng)的左端和最右項(xiàng)的右端是有圓角的,中間項(xiàng)沒(méi)有圓角,而如果菜單只有一項(xiàng)時(shí),左右兩端都有圓角,因此,可以將其拆分成最左項(xiàng)、最右項(xiàng)、中間項(xiàng)、全圓角共4類(lèi)Symbol,同時(shí)小箭頭也作為一個(gè)Symbol,與菜單項(xiàng)自由組合。
  • 文章推送也是一種會(huì)話(huà)的形式,同樣可以作為一個(gè)組件。

7、彈框

  • 彈框需要考慮的情形:帶不帶標(biāo)題、有幾行提示文字、有幾個(gè)按鈕、帶不帶圖片,對(duì)可能用到的彈框形式均可以設(shè)計(jì)相應(yīng)的Symbol。
  • 遮罩層同樣可以作為一個(gè)組件,一般準(zhǔn)備全屏遮罩層和露出導(dǎo)航欄的遮罩層2種即可。

8、Toast

常見(jiàn)的Toast形式需要考慮居中型(帶icon)、頂端型(帶icon)、底端型(純文字)三類(lèi)。帶icon的Toast,在線(xiàn)框圖階段準(zhǔn)備以下4類(lèi)即可應(yīng)對(duì)絕大多數(shù)場(chǎng)景:成功型、失敗型、警告型和等待型。

9、上拉菜單(ActionSheet)

菜單標(biāo)題、普通按鈕、取消按鈕、Gap(普通按鈕組與取消按鈕之間的間距)等Symbol即可組合出滿(mǎn)足大多數(shù)需要的ActionSheet。其中,普通按鈕需要考慮居中、居左、帶icon居左這三種形式,其中主文字居左時(shí)還要考慮右端是否有描述文字。

此外,導(dǎo)航欄”更多”按鈕調(diào)出的下拉菜單實(shí)際上也是可以考慮組件化的控件,但ActionSheet作為一個(gè)有平臺(tái)規(guī)范約束的控件,一致性和復(fù)用性較好,在設(shè)計(jì)師個(gè)人的組件積淀中更有組件化的價(jià)值,而對(duì)下拉菜單、分享菜單等其他形式,在有針對(duì)性地設(shè)計(jì)一個(gè)產(chǎn)品時(shí)再對(duì)其進(jìn)行組件化設(shè)計(jì)也來(lái)得及。因此本文的介紹中暫不涉及這些菜單。

10、發(fā)布

  • 這里主要指類(lèi)似社交或內(nèi)容平臺(tái)中,編輯或用戶(hù)發(fā)布的卡片式Timeline,以微信、易信等IM中朋友圈模塊為例,看似這類(lèi)模塊的情形較多、難以組件化,但如果仔細(xì)按行分解的話(huà),無(wú)非是以下這些元素行的組合:頭像ID行、文字內(nèi)容行、鏈接內(nèi)容行、圖片內(nèi)容行(單圖、多圖)、時(shí)間地點(diǎn)信息行、互動(dòng)控件行、點(diǎn)贊名單行(單行、多行)、評(píng)論行。

11、內(nèi)容

與在A(yíng)xure中習(xí)慣用一個(gè)叉號(hào)表示圖片的占位符類(lèi)似,這里實(shí)際上就是將這類(lèi)圖片占位符根據(jù)產(chǎn)品需要,細(xì)化成多種更具體的類(lèi)型,從而讓交互稿更有效地傳達(dá)設(shè)計(jì)師的意圖。

比較通用的可以考慮以下幾種:地圖、一般性照片(風(fēng)景等)、飲食、圖書(shū)、人物、統(tǒng)計(jì)圖表(柱狀圖、趨勢(shì)圖、餅圖)、用戶(hù)頭像,以及音視頻的播放器。其他的可以根據(jù)自己當(dāng)前產(chǎn)品的需要,自行添加。

12、Icon

當(dāng)做過(guò)的產(chǎn)品比較多時(shí)我們很容易感覺(jué)到,常見(jiàn)的icon無(wú)非界面、社交、電商支付、檔案、書(shū)影音、文字編輯、飲食、設(shè)備、交通、天氣等類(lèi)型,如果隨時(shí)整理和積累,在新項(xiàng)目中找icon時(shí),就可以不知不覺(jué)享受到信手拈來(lái)的快感。

一般而言,建議每個(gè)icon準(zhǔn)備以下4類(lèi):淺色線(xiàn)性、淺色實(shí)心、深色線(xiàn)性、深色實(shí)心。

不過(guò)icon集不一定要全部放進(jìn)項(xiàng)目的Symbol庫(kù),尤其是當(dāng)積累了一定數(shù)目時(shí),Symbol數(shù)量過(guò)大會(huì)顯著拖慢Sketch的響應(yīng)速度。因此更建議icon集單獨(dú)在一個(gè)文件中積累,項(xiàng)目需要時(shí)再按需選擇即可。

示例:用組件庫(kù)設(shè)計(jì)頁(yè)面

最后,基于第二節(jié)示例中的組件庫(kù),簡(jiǎn)單地舉幾個(gè)通過(guò)組件繪制頁(yè)面的小例子吧。頁(yè)面內(nèi)容本身不用細(xì)看,只是作為簡(jiǎn)單的示例罷了。
以下界面的所有設(shè)計(jì)都是用上面介紹的組件完成的。組件中所有文本都可以直接改寫(xiě)成設(shè)計(jì)中需要的內(nèi)容,內(nèi)嵌的Symbol也可以通過(guò)下拉列表方便地切換,更是大大提高了組件的使用效率。

  1. 「聯(lián)系人」頁(yè)

    頂欄、底欄組件使用示例:

  2. 「我的收藏」頁(yè)
    表單組件使用示例:
  3. 「設(shè)置」頁(yè)
    彈框組件使用示例:
  4. 「發(fā)現(xiàn)」頁(yè)
    發(fā)布組件使用示例:
  5. 會(huì)話(huà)頁(yè)
    會(huì)話(huà)組件使用示例:

 

作者:Qinsman

本文由@Qinsman 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,請(qǐng)勿轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App