基于Java+SpringBoot+vue+elementui圖書商城系統(tǒng)設(shè)計實現(xiàn)

2023-2-2    前端達(dá)人

目錄

一、前言介紹:

二、系統(tǒng)分析:

2.1 可行性分析

2.1.1 技術(shù)可行性

2.1.2 經(jīng)濟可行性 

2.1.3 操作可行性

2.2 系統(tǒng)性能分析

2.3 系統(tǒng)功能需求分析

2.3.1管理員用例需求如圖所示

2.3.2 用戶功能需求如圖所示:

2.3.3用戶登錄注冊時序圖

2.4 系統(tǒng)的功能結(jié)構(gòu)圖

 2.5 系統(tǒng)數(shù)據(jù)庫設(shè)計

 2.5.1 圖書回收管理實體E-R圖

2.5.2 回收預(yù)約管理實體E- R圖

 三、功能截圖: 

3.1 登錄注冊模塊:

3.2 前端首頁功能:

3.2.1 首頁模塊:

3.2.2 新書榜:

3.2.3 特價區(qū):

3.2.4 舊書回收:

3.2.5 公告資訊:

3.2.6 個人中心:

3.2.7 后臺管理:

3.2.8 客服管理:

3.3 后臺管理模塊:

3.3.1 圖書分類顧客:

3.3.2 回收類型管理:

3.3.3 新書榜管理:

3.3.4 圖書詳情

3.3.6 用戶信息管理:

3.3.7 訂單模塊管理:

3.3.8 系統(tǒng)模塊管理 :

四、代碼實現(xiàn):

五、文檔目錄:

六、項目總結(jié): 

八、源碼獲?。?/a>


一、前言介紹:

        隨著現(xiàn)在網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)上管理系統(tǒng)也逐漸快速發(fā)展起來,網(wǎng)上管理模式很快融入到了許多商家的之中,隨之就產(chǎn)生了“網(wǎng)上圖書購物系統(tǒng)”,這樣就讓網(wǎng)上圖書購物系統(tǒng)更加方便簡單。

        對于本網(wǎng)上圖書購物系統(tǒng)的設(shè)計來說,系統(tǒng)開發(fā)主要是采用java語言技術(shù),在整個系統(tǒng)的設(shè)計中應(yīng)用MySQL數(shù)據(jù)庫來完成數(shù)據(jù)存儲,具體根據(jù)網(wǎng)上圖書購物系統(tǒng)的現(xiàn)狀來進行開發(fā)的,具體根據(jù)現(xiàn)實的需求來實現(xiàn)網(wǎng)上圖書購物系統(tǒng)網(wǎng)絡(luò)化的管理,各類信息有序地進行存儲,進入網(wǎng)上圖書購物系統(tǒng)頁面之后,方可開始操作主控界面,主要功能包括管理員:首頁、個人中心、圖書分類管理、回收類別管理新書榜管理、特價區(qū)管理舊書回收管理、用戶管理、訂單評價管理、回收預(yù)約管理、圖書回收管理、管理員管理、系統(tǒng)管理、訂單管理。前臺使用首頁、新書榜、特價區(qū)、舊書回收、公告資訊、個人中心、后臺管理、購物車、客服。用戶首頁、個人中心、訂單評價管理、回收預(yù)約管理、圖書回收管理、我的收藏管理、訂單管理等功能。

        本系統(tǒng)主要講述了網(wǎng)上圖書購物系統(tǒng)開發(fā)背景,該系統(tǒng)它主要是對需求分析和功能需求做了介紹,并且對系統(tǒng)做了詳細(xì)的測試和總結(jié)。具體從業(yè)務(wù)流程、數(shù)據(jù)庫設(shè)計和系統(tǒng)結(jié)構(gòu)等多方面的問題。望能利用先進的計算機技術(shù)和網(wǎng)絡(luò)技術(shù)來改變目前的網(wǎng)上圖書購物系統(tǒng)狀況,提高管理效率。

二、系統(tǒng)分析:

2.1 可行性分析

        可行性分析主要是針對這個項目開發(fā)是否有意義和價值觀來進行的全面分析,在分析的過程當(dāng)中發(fā)現(xiàn)這個系統(tǒng)所存在的不足之處。就拿這次網(wǎng)上圖書購物系統(tǒng)的設(shè)計與實現(xiàn)來說主要是針對一些用戶在發(fā)布網(wǎng)上圖書購物系統(tǒng)信息時遇到不方便的操作和問題來進行解決問題的,最后能夠讓網(wǎng)上圖書購物系統(tǒng)開發(fā)得到最大的用處。而且對于用戶方面我們可以提供給一個簡單方便操作的網(wǎng)上圖書購物系統(tǒng)。所以我們要計算開發(fā)這個系統(tǒng)它能否有效的解決好這個系統(tǒng)經(jīng)濟問題,在開發(fā)完成以后所帶來的利益是否大于開發(fā)過成當(dāng)中的成本。所以可行性的研究與分析是這個系統(tǒng)在開發(fā)和設(shè)計上是必不可缺少的一部分。從該系統(tǒng)文章的全部來看,我們要從以下幾個方面進行分析:

技術(shù)可行性:在技術(shù)方面我們要從現(xiàn)有自己掌握的技術(shù)能否設(shè)計出我們當(dāng)初所預(yù)定的目標(biāo)。

經(jīng)濟可行性:在這次系統(tǒng)開發(fā)和設(shè)計過程當(dāng)中所用的經(jīng)費是否大于以后給社會帶來的價值觀。

操作可行性:系統(tǒng)在用戶使用過程當(dāng)中是否方便、簡單,能否達(dá)到大部分的用戶會使用。

2.1.1 技術(shù)可行性

        技術(shù)的可行性分析主要是針對開發(fā)該系統(tǒng)所用到技術(shù)進行分析,對于網(wǎng)上圖書購物系統(tǒng)的設(shè)計,可以在任何一個地方都進行使用和管理。通過當(dāng)前我們所學(xué)的程序開發(fā)和語言介紹利用以上的技術(shù)開發(fā)該系統(tǒng)是比較合適的。而且我們在使用的數(shù)據(jù)庫也是要保證這個系統(tǒng)的完整性、數(shù)據(jù)安全性好的條件。

2.1.2 經(jīng)濟可行性 

        經(jīng)濟可行性主要是決定這個系統(tǒng)是否具有價值存在,是否具有開發(fā)意義,如果開發(fā)的項目不能夠節(jié)約物品和資源,反而使用的大量的人力、財力和物力不成正比甚至小于投資成本,那么該項目是不具備開發(fā)意義和價值的。在開發(fā)本項目的初期,節(jié)約成本是最基本的,設(shè)計和開發(fā)都是由本人一人完成的,并且在開發(fā)中使我學(xué)習(xí)到了很多的知識,也開拓了自己的眼界,在通過可行性分析之后,該項目的利大于弊,所以該項目是具有開發(fā)意義和價值的。

2.1.3 操作可行性

        網(wǎng)上圖書購物系統(tǒng)的開發(fā)登錄界面它是我們最常見的一種登錄窗口來完成的,用戶可以使電腦來進行登錄并簡單的訪問不需要做任何的操作。對于此次的系統(tǒng)開發(fā)它主要是基于B/S結(jié)構(gòu)和java技術(shù)及MySQL數(shù)據(jù)庫來完成,讓系統(tǒng)開發(fā)更加完美和完善,所以我們開出的系統(tǒng)界面更加人性化,用戶使用也更加方便。而且系統(tǒng)在使用過程當(dāng)中也擁有方便操作、易管理等特點。

經(jīng)過以上的敘述,所以開發(fā)此系統(tǒng)在經(jīng)濟上、技術(shù)上是滿足開發(fā)條件的。

2.2 系統(tǒng)性能分析

1.如果我們想要對前后臺處理的層次分明那么我們就要采用B/S模式來進行系統(tǒng)的開發(fā)這樣就可以方便用戶的使用。

2.對于系統(tǒng)的開發(fā)和設(shè)計我們就要采用大家日常所需要的要求,這樣一來可以提高系統(tǒng)的適用性也能保證系統(tǒng)利用價值。對于一個系統(tǒng)來說一個好的框架是很重要的,因為一個好的框架它可以提高系統(tǒng)的穩(wěn)定和高效性。

3.在系統(tǒng)界面上也要設(shè)計一個方便快捷的登錄界面,這樣就可以提高用戶對系統(tǒng)操作性和適用性。

4.在系統(tǒng)模塊設(shè)計當(dāng)中我們要對系統(tǒng)各個模塊進行合理簡化和設(shè)計,這樣就能提高系統(tǒng)使用性。

5.對于一個完整的系統(tǒng)來說對于它的測評和測試是比較重要的,所以我們在軟件設(shè)計程序中要保持軟件占用的時間和速度快的特點。

6.對于這個系統(tǒng)來說我們首先要考慮所設(shè)計出的系統(tǒng)它具有那些突破和體現(xiàn),所以我們盡力去改進這個系統(tǒng)去適應(yīng)用戶。

2.3 系統(tǒng)功能需求分析

        對于一個新的網(wǎng)站來說開發(fā)新網(wǎng)站我們就要做出這個系統(tǒng)的任務(wù)需求分析,因為對系統(tǒng)分析的質(zhì)量好壞它可以決定這個網(wǎng)站開發(fā)的意義,俗話說得好一個好的開頭是成功的一半,對于開發(fā)這個網(wǎng)上圖書購物系統(tǒng)來說前期的分析是比較重要的,所以任務(wù)分析它可以決定這系統(tǒng)的開展和設(shè)計,這樣就可以保證用戶滿意性。

任務(wù)的需求它能決定這個系統(tǒng)開發(fā)過程當(dāng)中一個重要環(huán)節(jié),所以我們在系統(tǒng)開發(fā)過程所用質(zhì)量是比較重要的,因為我們在系統(tǒng)應(yīng)用過程當(dāng)中不一定那會出現(xiàn)問題,所以我們在進行對系統(tǒng)分析是比較重要的,因為它可以決定這個系統(tǒng)功能和需求。

本課題要求實現(xiàn)一套網(wǎng)上圖書購物系統(tǒng)的開發(fā)與實現(xiàn),主要實現(xiàn)功能包括管理員:首頁、個人中心、圖書分類管理、回收類別管理、新書榜管理、特價區(qū)管理、舊書回收管理、用戶管理、訂單評價管理、回收預(yù)約管理、圖書回收管理、管理員管理、系統(tǒng)管理、訂單管理,

前臺使用:首頁、新書榜、特價區(qū)、舊書回收、公告資訊、個人中心、后臺管理、購物車、客服

用戶:首頁、個人中心、訂單評價管理、回收預(yù)約管理、圖書回收管理、我的收藏管理、訂單管理  網(wǎng)上圖書購物系統(tǒng)。

2.3.1管理員用例需求如圖所示

2.3.2 用戶功能需求如圖所示:

2.3.3用戶登錄注冊時序圖

前端用戶發(fā)送登錄請求-驗證輸入的賬號虛線-執(zhí)行數(shù)據(jù)查詢-返回查詢結(jié)果-判斷用戶是否存在-前端根據(jù)結(jié)果集執(zhí)行不同的操作。

2.4 系統(tǒng)的功能結(jié)構(gòu)圖

        通過系統(tǒng)需求分析,本網(wǎng)上圖書購物系統(tǒng)主要實現(xiàn)功能包括;管理員:首頁、個人中心、圖書分類管理、回收類別管理、新書榜管理、特價區(qū)管理、舊書回收管理、用戶管理、訂單評價管理、回收預(yù)約管理、圖書回收管理、管理員管理、系統(tǒng)管理、訂單管理。用戶:首頁、個人中心、訂單評價管理、回收預(yù)約管理、圖書回收管理、我的收藏管理、訂單管理等功能。其功能結(jié)構(gòu)圖如下圖所示。

 2.5 系統(tǒng)數(shù)據(jù)庫設(shè)計

        在該系統(tǒng)的信息中,由于數(shù)據(jù)庫的支持,我們可以對數(shù)據(jù)庫進行收集、整理、更新和加工等操作。由于數(shù)據(jù)庫的存儲功能強大,所以數(shù)據(jù)庫已經(jīng)成為了計算機必不可少的,一個數(shù)據(jù)庫的好壞直接影響該系統(tǒng)的質(zhì)量和效率。一個系統(tǒng)中的數(shù)據(jù)庫是必不可少的,并且起著決定性因素。通過之前的系統(tǒng)分析,可以規(guī)劃出本系統(tǒng)中使用的主要等,下面設(shè)計出這幾個關(guān)鍵實體的實體關(guān)系圖。

訂單管理實體E-R圖如圖4-2所示

 2.5.1 圖書回收管理實體E-R圖如圖所示

2.5.2 回收預(yù)約管理實體E- R圖,如圖所示:

 三、功能截圖: 

3.1 登錄注冊模塊:

通過填寫用戶名、密碼、角色等信息,輸入完成后選擇登錄即可進入網(wǎng)上圖書購物系統(tǒng)。

3.2 前端首頁功能:

網(wǎng)上圖書購物系統(tǒng),在系統(tǒng)首頁可以查看首頁、新書榜、特價區(qū)、舊書回收、公告資訊、個人中心、后臺管理、購物車、客服等內(nèi)容。

3.2.1 首頁模塊:

3.2.2 新書榜:

新書榜,新書榜頁面可以填寫圖書名稱、分類、標(biāo)簽、圖片、作者、出版社、發(fā)行日期、價格等內(nèi)容進行立即購買。

 圖書頁面,可以收藏,加入購物車,查看詳情以及評論和購買等操作。

 購物車詳情,可以添加數(shù)量和刪除。點擊購買進行模擬支付結(jié)賬。

選擇收貨地址后點擊支付下單:

 支付成功后查看物流狀態(tài)信息:

3.2.3 特價區(qū):

3.2.4 舊書回收:

查看回收詳情,點擊回收預(yù)約填寫相關(guān)信息,完成后管理員進行審核。 

3.2.5 公告資訊:

3.2.6 個人中心:

個人中心可以查看修改個人信息,查看訂單得各種狀態(tài),以及對收貨地址進行查看修改和收藏進行查看。也可以收貨地址頁面可以填寫聯(lián)系人、手機號碼、地址、默認(rèn)等內(nèi)容進行添加地址

3.2.7 后臺管理:

普通用戶后臺管理:

3.2.8 客服管理:

可以對客服進行留言聊天。

3.3 后臺管理模塊:

3.3.1 圖書分類顧客:

3.3.2 回收類型管理:

3.3.3 新書榜管理:

管理員對新書榜管理查看圖書名稱、分類、標(biāo)簽、圖片、作者、出版社、發(fā)行日期、價格等信息進行詳情、刪除、修改、查看等操作。

3.3.4 圖書詳情

3.3.6 用戶信息管理:

3.3.7 訂單模塊管理:

3.3.8 系統(tǒng)模塊管理 :

四、代碼實現(xiàn):


  1. /**
  2. * 新書榜
  3. * 后端接口
  4. * @author
  5. * @email
  6. * @date 2022-01-18 07:36:34
  7. */
  8. @RestController
  9. @RequestMapping("/xinshubang")
  10. public class XinshubangController {
  11. @Autowired
  12. private XinshubangService xinshubangService;
  13. /**
  14. * 后端列表
  15. */
  16. @RequestMapping("/page")
  17. public R page(@RequestParam Map<String, Object> params,XinshubangEntity xinshubang, HttpServletRequest request){
  18. EntityWrapper<XinshubangEntity> ew = new EntityWrapper<XinshubangEntity>();
  19. PageUtils page = xinshubangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xinshubang), params), params));
  20. return R.ok().put("data", page);
  21. }
  22. /**
  23. * 查詢
  24. */
  25. @RequestMapping("/query")
  26. public R query(XinshubangEntity xinshubang){
  27. EntityWrapper< XinshubangEntity> ew = new EntityWrapper< XinshubangEntity>();
  28. ew.allEq(MPUtil.allEQMapPre( xinshubang, "xinshubang"));
  29. XinshubangView xinshubangView = xinshubangService.selectView(ew);
  30. return R.ok("查詢新書榜成功").put("data", xinshubangView);
  31. }
  32. /**
  33. * 后端詳情
  34. */
  35. @RequestMapping("/info/{id}")
  36. public R info(@PathVariable("id") Long id){
  37. XinshubangEntity xinshubang = xinshubangService.selectById(id);
  38. xinshubang.setClicknum(xinshubang.getClicknum()+1);
  39. xinshubang.setClicktime(new Date());
  40. xinshubangService.updateById(xinshubang);
  41. return R.ok().put("data", xinshubang);
  42. }
  43. /**
  44. * 前端保存
  45. */
  46. @RequestMapping("/add")
  47. public R add(@RequestBody XinshubangEntity xinshubang, HttpServletRequest request){
  48. xinshubang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
  49. //ValidatorUtils.validateEntity(xinshubang);
  50. xinshubangService.insert(xinshubang);
  51. return R.ok();
  52. }
  53. /**
  54. * 刪除
  55. */
  56. @RequestMapping("/delete")
  57. public R delete(@RequestBody Long[] ids){
  58. xinshubangService.deleteBatchIds(Arrays.asList(ids));
  59. return R.ok();
  60. }
  61. /**
  62. * 前端智能排序
  63. */
  64. @IgnoreAuth
  65. @RequestMapping("/autoSort")
  66. public R autoSort(@RequestParam Map<String, Object> params,XinshubangEntity xinshubang, HttpServletRequest request,String pre){
  67. EntityWrapper<XinshubangEntity> ew = new EntityWrapper<XinshubangEntity>();
  68. Map<String, Object> newMap = new HashMap<String, Object>();
  69. Map<String, Object> param = new HashMap<String, Object>();
  70. Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
  71. while (it.hasNext()) {
  72. Map.Entry<String, Object> entry = it.next();
  73. String key = entry.getKey();
  74. String newKey = entry.getKey();
  75. if (pre.endsWith(".")) {
  76. newMap.put(pre + newKey, entry.getValue());
  77. } else if (StringUtils.isEmpty(pre)) {
  78. newMap.put(newKey, entry.getValue());
  79. } else {
  80. newMap.put(pre + "." + newKey, entry.getValue());
  81. }
  82. }
  83. params.put("sort", "clicknum");
  84. params.put("order", "desc");
  85. PageUtils page = xinshubangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xinshubang), params), params));
  86. return R.ok().put("data", page);
  87. }
  88. }

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="utf-8">
  5. <title>新書榜</title>
  6. <meta name="keywords" content="" />
  7. <meta name="description" content="" />
  8. <meta name="renderer" content="webkit">
  9. <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  10. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  11. <link rel="stylesheet" href="../../layui/css/layui.css">
  12. <link rel="stylesheet" href="../../xznstatic/css/common.css"/>
  13. <link rel="stylesheet" href="../../xznstatic/css/style.css"/>
  14. <script type="text/javascript" src="../../xznstatic/js/jquery-1.11.3.min.js"></script>
  15. <script type="text/javascript" src="../../xznstatic/js/jquery.SuperSlide.2.1.1.js"></script>
  16. </head> </div>
  17. <div class="pager" id="pager" :style="{textAlign:1==1?'left':1==2?'center':'right'}"></div>
  18. </div>
  19. </div
  20. </div>
  21. <script src="../../layui/layui.js"></script>
  22. <script src="../../js/vue.js"></script>
  23. <script src="../../js/config.js"></script>
  24. <script src="../../modules/config.js"></script>
  25. <script src="../../js/utils.js"></script>
  26. <script>
  27. // 獲取輪播圖 數(shù)據(jù)
  28. http.request('config/list', 'get', {
  29. page: 1,
  30. limit: 5
  31. }, function(res) {
  32. if (res.data.list.length > 0) {
  33. let swiperList = [];
  34. res.data.list.forEach(element => {
  35. if (element.value != null) {
  36. swiperList.push({
  37. img: element.value
  38. });
  39. }
  40. });
  41. vue.swiperList = swiperList;
  42. vue.$nextTick(() => {
  43. carousel.render({
  44. elem: '#test1',
  45. width: '100%',
  46. height: '430px',
  47. arrow: 'hover',
  48. anim: 'default',
  49. autoplay: 'true',
  50. interval: '3000',
  51. indicator: 'inside'
  52. });
  53. });
  54. //類型查詢
  55. categoryList();
  56. //類型搜索
  57. $(document).on("click", ".category-search", function(e){
  58. vue.swiperIndex = $(this).attr('index')
  59. pageList(e.target.innerText);
  60. });
  61. // 獲取列表數(shù)據(jù)
  62. http.request('xinshubang/list', 'get', param, function(res) {
  63. vue.dataList = res.data.list
  64. // 分頁
  65. laypage.render({
  66. elem: 'pager',
  67. count: res.data.total,
  68. limit: limit,
  69. groups: 3,
  70. layout: ["prev","page","next"],
  71. theme: '#065279',
  72. jump: function(obj, first) {
  73. param.page = obj.curr;
  74. //首次不執(zhí)行
  75. if (!first) {
  76. http.request('xinshubang/list', 'get', param, function(res) {
  77. vue.dataList = res.data.list
  78. })
  79. }
  80. });
  81. window.xznSlide = function() {
  82. jQuery(".banner").slide({mainCell:".bd ul",autoPlay:true,interTime:5000});
  83. jQuery("#ifocus").slide({ titCell:"#ifocus_btn li", mainCell:"#ifocus_piclist ul",effect:"leftLoop", delayTime:200, autoPlay:true,triggerTime:0});
  84. jQuery("#ifocus").slide({ titCell:"#ifocus_btn li", mainCell:"#ifocus_tx ul",delayTime:0, autoPlay:true});
  85. jQuery(".product_list").slide({mainCell:".bd ul",autoPage:true,effect:"leftLoop",autoPlay:true,vis:5,trigger:"click",interTime:4000});
  86. };
  87. </script>
  88. </body>
  89. </html>

五、文檔目錄:

六、項目總結(jié): 

         對于本次的系統(tǒng)開發(fā)來看,它主要是把我以前所學(xué)的知識進行了一次綜合的應(yīng)用。經(jīng)過這次畢業(yè)設(shè)計的制作它主要是把我以前所學(xué)的理論知識應(yīng)用到社會實踐當(dāng)中。通過這一次的網(wǎng)上圖書購物系統(tǒng)的設(shè)計與實現(xiàn)它能夠有效把計算機知識與實際問題相互應(yīng)用,通過計算機網(wǎng)絡(luò)技術(shù)來解決用戶生活當(dāng)中的實際問題,從而提高我的編程能力。雖然在這次畢業(yè)設(shè)計當(dāng)中我遇到了很多的問題和困難,但是通過不斷的調(diào)試和老師的幫助讓我圓滿的完成了這次畢業(yè)設(shè)計。通過這次畢業(yè)設(shè)計的制作讓我對計算機實際應(yīng)用得到了很強的鍛煉,同時也大大的提高了我的動手動腦能力,讓我也感受到了其中的樂趣和喜悅。

        通過這次項目設(shè)計的撰寫把我在大學(xué)期間所學(xué)到的東西都應(yīng)用上了,但是我覺得還是微不足道的,因為在這次畢業(yè)設(shè)計當(dāng)中讓我深深的了解到對于軟件開發(fā)和學(xué)習(xí)理論知識它是兩個完全不同的概念。但是通過這次軟件的開發(fā)讓我在以后的工作當(dāng)中打下了良好的基礎(chǔ)。


藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進入一起成長學(xué)習(xí),請加藍(lán)小助,微信號:ben_lanlan,報下信息,藍(lán)小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系01063334945。


分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責(zé)聲明:藍(lán)藍(lán)設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。


藍(lán)藍(lán)設(shè)計www.bouu.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)、UI設(shè)計公司、界面設(shè)計公司、UI設(shè)計服務(wù)公司、數(shù)據(jù)可視化設(shè)計公司、UI交互設(shè)計公司、高端網(wǎng)站設(shè)計公司、UI咨詢、用戶體驗公司、軟件界面設(shè)計公司

分享本文至:

日歷

鏈接

個人資料

存檔